关于Jetson nano (B02)如何部署Yolov8以及一些必要的知识点
一、前言
记录一个简单的安装和部署过程,尽管笔者也是按照教程来的,但奈何参考了很多教程,虽然写的都非常好,但是却很散,因此笔者这里想把这些教程的精华提炼出来,汇总并且写在正文处。还是老规矩,笔者也在学习,如有错误,请在评论区及时指出!感谢!也欢迎评论区一起讨论!
二、正文
0.bashrc
不知道大家有没有发现,一些安装教程总是写着sudo gedit ~/.bashrc
,然后也不告诉你为啥这么做,我这里就简单的交代一下。[3]
.bashrc
是home目录下的一个shell文件,用于储存用户的个性化设置。在bash每次启动时都会加载.bashrc文件中的内容,并根据内容定制当前bash的配置和环境。
1.类似于?
这就类似于windows的快捷方式,不用每次进入都需要重新输入路径,这就是在bashrc文件修改后能够做到的事情之一。
环境变量就等于一个路径,这个路径由你而定。
如果我们把环境变量比作一个地址簿:
export
就像把地址簿中重要的地址标记为“全家可用”,每个人(子进程)都可以查阅。
快捷方式
就像给某个地址做一个备忘录,任何人可以通过它找到目标,但备忘录本身不能改变目标的内容。
2.怎么用?
PATH=$PATH:路径
export PATH
export PATH=$PATH:路径
最后再source ~/.bashrc
一下,就是让上面你改的这些立即生效。
当然还可以自定义快捷键:
alias yyds="cd home/java/"
或者
alias ikun="conda deactivate"
等等(不小心露出只因脚了)
三、安装
0.clion远程主机(可选择,可不折腾)
实现在主机PC上使用Clion就可以在Jetson上面编程了,类似与你在ubuntu上使用VScode这种。
博客地址:[参考链接]
(https://blog.csdn.net/weixin_74027669/article/details/142391303 "参考链接")
(抱歉又让你跳来跳去了,不过上面文章写的超级详细!)
不过我还是更喜欢在ubuntu上直接用vscode
1.Jetpack镜像烧录
英伟达官方给Jetson开发板系列(Nano, NX, Xavier)配备了一个用于AI开发的集合包Jetpack,包含以下包:
Cuda
cuDNN
OpenCV4
TensorRT
VPI
VisionWorks
Vulkan
所以你不用再傻乎乎的装什么TensorRT了啥的。。。这就是为啥叫你装系统的时候不要执着装Ubuntu新系统了,而是要去官网下载Jetpack了,因为人家把包的封装好了,哈哈哈哈。虽然JetPack也是基于ubuntu系统。。。
并且提供了已装好Jetpack的Ubuntu系统镜像官方Jetpack镜像。不过不同板子的镜像不一定能混用(部分板子架构不同)。
烧录后,可以查看Jetpack的版本:
cat /etc/nv_tegra_release
出现信息:
# R32 (Release), REVISION: 6.1
意思是大版本为32
, 小版本为4.6.1
,即v32.4.6.1
,就说明没问题了
2.安装jtop(可跳过,不过尽量安装)
jtop是一个很开门的检测工具,用来查看cuda的型号、tensorRT的版本等,还能实时的看cpu和gpu的使用率等。
首先安装pip
sudo apt install python-pip python3-pip #安装Pip
pip3 install --upgrade pip #这俩哥们是来给pip进行升级的
pip install --upgrade pip
pip换源:请参考这篇博客 为啥换源,不还是原来的下载速度太慢了嘛。。。
安装jtop
sudo -H pip3 install jetson-stats
使用:
sudo jtop
安装成功后的结果是这个样子的:
还可以查看版本的信息:
按Q
退出。
也可以
free -h
查看内存的使用情况,首先要知道直接从物理内存读写数据比硬盘读写数据要快的多,但是内存是有限的,所以就引出了物理内存和虚拟内存,物理内存是系统硬件提供的内存,是真正的内存,虚拟内存是为了满足物理内存不足时而提出的策略,他是利用磁盘空间虚拟出的逻辑内存,用作虚拟内存的磁盘空间被称为交换空间(swap space)
在这里很方便的就可以看到是否和指定的安装环境是否匹配了。相当开门的开源软件了。
在这里其实可以看到,我已经默认安装完毕了TensorRT
和OpenCV
了
3..pt转换为ONNX
为了将模型部署到jetson nano当中,我们首先需要将需要转换的模型导出为onnx格式。首先,你需要下载YOLOv8的模型文件: 代码点击此处跳转
由于jetson nano的GPU计算能力较弱,在这里我使用了YOLOv8n模型,并将输入图像的尺寸缩小为原来的四分之一。转换的代码如下所示:(自己随便写个脚本,运行下就ok)
from ultralytics import YOLO
model = YOLO("yolov8n.pt")
model.export(imgsz=320, format='onnx')
这样,我们就得到了onnx格式的YOLOv8模型了。
4.ONNX转换为Engine
在 Jetson Nano 上,我们可以使用 TensorRT 对模型进行加速并部署。由于 TensorRT 对模型的优化与硬件有关,因此需要将 ONNX 模型上传至 Jetson Nano,并通过 trtexec
工具进行模型的转换。以下是模型转换的命令:
trtexec --onnx=<ONNX file> --saveEngine=<output file>
我这边用的方法是:
先切到yolo.onnx所在的目录里面,然后打开控制台:
trtexec --onnx=yolov8n.onnx --saveEngine=yolov8n.engine
通过以上操作,即可将YOLOv8模型转换为jetson nano支持的格式了。
5.导入模型,运行
这里有开源的github代码,带入即可,下面两个图我指定了在哪里进行替换,实在不会的也可以看“写在最后”部分的引用链接的原文章的教程。。
参考代码下载,里面readme写的很详细了,我这篇博客可以作为一个辅助进行参考
希望多给原作者star!
6. 什么你不会运行??简单交代下Cmake编译的原理
CMake主要是编写CMakeLists.txt文件,然后用cmake命令将CMakeLists.txt文件转化为make所需要的makefile文件,最后用make命令编译源码生成可执行程序或共享库(so(shared object))。因此CMake的编译基本就两个步骤:
1. cmake
2. make
cmake 指向CMakeLists.txt所在的目录,例如cmake … 表示CMakeLists.txt在当前目录的上一级目录。cmake后会生成很多编译的中间文件以及makefile文件,所以一般建议新建一个新的目录,专门用来编译,例如
mkdir build
cd build
cmake ..
make
make根据生成makefile文件,编译程序。
按照下图新建build文件夹
然后照我的上文进行编译,最终将生成一个可执行文件
控制台运行
./yolov8_tensorrt
文件名称对用CmakeList这个地方
下次别再不懂了!
7.Cmakelist文件解释
简略解释以下一些关键地方的指令的含义,这里再网上找了一个例子:
cmake_minimum_required (VERSION 2.8)
project(dome CXX)
aux_source_directory(. DIR_SRC)
add_executable (demo ${DIR_SRC})
(1)project
中的CXX指的是C++,如果不特别指定,则支持所有语言 ;工程名称中的dome可以自由指定。
(2)aux_source_directory
作用是自动搜索指定路径下的全部源文件,指定的路径由关键字提供,且与之前的“.”之间有空格,表示DIR_SRC的上一级目录为指定的搜索路径。
(3)add_executable
中的第一个名字dome是我们编译后生成的可执行文件的名字,可以自由指定,不要求必须与工程同名。
四、写在最后
我按照自己的理解和原始博客没有标注的一些坑进行了我自己的总结和思考。
这篇博客只是一个过程记录以及一些知识点的总结,与其像一些教程直接把结论给你,我更想把结论为什么也给你,不但知道怎么安装的,而且还可以知道为什么这么安装。当然,只是笔者的个人总结,会有很多错误和不恰当之处,希望和读者共勉!
五、参考文献
重点参考这篇大佬的博客:
同时特此鸣谢以下参考博客!
[4].关于Jetson nano系统安装前的一些需要知道的事情
[7].下载完的Vscode怎么总是感觉终端输出字母之间有空格??
关于Jetson nano (B02)如何部署Yolov8以及一些必要的知识点的更多相关文章
- Jetson Nano Developer Kit
The Jetson Nano Developer Kit is an AI computer for learning and for making. 一个推理框架,用于部署模型到嵌入式设备. ...
- jetson nano开发使用的基础详细分享
前言: 最近拿到一块jetson nano 2GB版本的板子,折腾了一下,从烧录镜像.修改配件等,准备一篇开箱基础文章给大家介绍一下这块AI开发板. 作者:良知犹存 转载授权以及围观:欢迎关注微信公众 ...
- Jetson Nano系列教程3:GPIO
摘要: JetsonTX1,TX2,AGXXavier和Nano开发板包含一个40引脚的GPIO头,类似于Raspberry PI中的40引脚头.这些GPO可以通过JetsonGPIOLibrary包 ...
- Jetson Nano 系列教程2:串口调试接口登录Jetson Nano
连接Jetson Nano可以有多种方法,这里我们一一介绍一下.开始本章节前,请先参考上一章,烧写好镜像 直接连接 所谓直接连接,就是将Jetson Nano当做主机,连接HDMI屏幕,连接键盘和鼠标 ...
- Jetson Nano系列教程1:烧写系统镜像
下载镜像 NVIDIA官方为Jetson Nano Developer Kit (后面统称为Jetson Nano了)提供了SD卡版本的系统镜像,并且根据JetPack版本不断得在更新.所以你可以直接 ...
- Jetson Nano系列教程0:初识Jetson Nano
关于Jetson Nano Developer Kit Jetson nano搭载四核Cortex-A57 MPCore 处理器,采用128 核 Maxwell™ GPU.支持JetPack SDK ...
- Darknet YOLOv3 on Jetson Nano
推荐比较好的博客:https://ai4sig.org/2019/06/jetson-nano-darknet-yolov3/ 用的AlexeyAB的版本,并且给出了yolov3和tiny的效果对比. ...
- jetson nano 安装 snowboy 遇到的问题及处理
Snowboy 是 KITT.AI 开发的一个高度可定制的热词检测引擎,当笔者的 jetson nano 加上话筒后,就立马尝试安装,但在安装过程中却发生了错误,所以把处理方式记录了下来以作备忘. 首 ...
- [Jetson Nano]Jetson Nano快速入门
NVIDIAJetsonNano开发套件是适用于制造商,学习者和开发人员的小型AI计算机.相比Jetson其他系列的开发板,官方报价只要99美金,可谓是相当有性价比.本文如何是一个快速入门的教程,主要 ...
- 1、Jetson Nano 远程桌面XP问题
jeston nano上网 方法3(最简单的方法) 最简单的方法真的特简单,用USB数据线连接主板的USB接口以及手机,打开手机的USB共享即可,若要使用静态IP,可在主板上修改配置文件,接口一般为u ...
随机推荐
- MySQL数据的导出
有时需要将MySQL数据库中的数据导出到外部存储文件中,MySQL数据库中的数据可以导出成sql文本文件.xml文件或者html文件.本节将介绍数据导出的常用方法. 11.4.1 使用SELECT- ...
- 妙用编辑器:把EverEdit变成计算器
妙用编辑器:把EverEdit变成计算器 应用场景 日常工作过程中,会存在需要计算一些数据的场景,调用系统的计算器当然可以完成这项工作,但是需要来回切换,且系统自带的计算器没有表达式计算功能,真是不方 ...
- Qunar 云原生容器化落地实践
作者|邹晟 去哪儿网基础平台技术专家 背景 近几年,云原生和容器技术非常火爆,且日趋成熟,众多企业慢慢开始容器化建设,并在云原生技术方向上不断的探索和实践.基于这个大的趋势, 2020 年底 Quna ...
- Awesome Tools,程序员常用高效实用工具、软件资源精选,办公效率提升利器!
前言 在当今这个技术日新月异的时代,开发者只有持续学习,才能紧跟时代的浪潮.为了助力开发者在高效学习与工作中实现平衡(告别996的束缚),众多卓越且实用的开发工具应运而生,它们如同强大的助力器,极大地 ...
- 玩黑悟空要配什么显卡?ToDesk云电脑一招搞定!
近期国产游戏大作<黑神话·悟空>的预售开启,许多玩家对于如何配置自己的电脑以畅玩这款画质卓越.支持全景光追的3A大作产生了浓厚的兴趣. 尤其是显卡的选择,成为了玩家们关注的焦点.<黑 ...
- OGRE 渲染引擎 Windows 平台构建及编译
0 OGRE 机器人领域常见的Rviz和Gazebo可视化的渲染后端. 1 无数的坑 这东西真的可恶,官方教程文档以及项目构建的方式是真的繁琐,在Windows上. CMake 的构建必须要使用 CM ...
- H5移动端字体自适应(也适用于宽高)
原文地址: https://mp.weixin.qq.com/s/hhmav2sbAgb7w17ipVZiTw 方法一:纯css方法, 精确度高,IOS 和 安卓 字体大小同等比例1.1 以16px为 ...
- AI赋能-《用ChatGPT做软件测试》新书上市
图书链接京东: https://item.jd.com/10121763192532.html当当: http://product.dangdang.com/29797547.html内容简介本书以目 ...
- Paypal绑定招商银行 —— Paypal绑定收款银行账户的注意事项
地址: https://code.newban.cn/446.html
- 2. jenkins的安装
Docker方式: 如果在安装社区推荐插件时报错,网络延迟,则建议采用官方yum安装 遇到一个问题:公司局域网openstack虚拟机安装时,修改了镜像仍报错,但是自己电脑vmware虚拟机正常,暂时 ...