Yolov5学习笔记(2)——部署在jetson nano上

   日期:2024-12-29    作者:shwxzs 移动:http://oml01z.riyuangf.com/mobile/quote/80771.html

本教程系列将从模型训练开始,从0开始带领你部署Yolov5模型到jetson nano上

这是本系列的第二部分内容

目录

 1.Jetson nano的使用

1.1Jetson nano的供电

1.2镜像的烧录

1.2.1sd卡的格式化

1.2.2镜像写入

1.3jetson nano初始化配置

1.4jetson nano联网

2.Jetson nano的环境配置

2.1更换源

2.2更改环境变量

 2.3测试CUDA

 2.4安装pip3

2.5安装GPU版的tensorflow

 2.6安装pycuda 

3.利用TRT加速部署模型

3.1下载tensorrtx的源码

3.2模型测试 


Jetson Nano 是英伟达 Jetson 系列的一款开发板,也是性价比最高的一款板子,平台上提供了现代 AI 的强大功能,你可以理解成当前 AI 领域的树莓派,当你拿到或者意外获得一张新的jetson nano,却不知如何开始,于是就有了这样的几期教程,以供小白参考 

首先你得知道你买的是 Nano 2GB、Nano A02 还是Nano B01 4G版本(笔者是这款) 。

jetson nano官方给了几种供电的方式

2、使用 DC 供电,官方认证的DC电源是5V 4A,一定要插上跳线帽J48

3、使用引脚供电
两个5V的power引脚都可以供3A的供电,如果使用的带电源的扩展板就可以很容易的供电了,至于J48引脚,有无跳线帽均可(GND要连)。

笔者建议采用前两种,毕竟第三种IO口反向供电还是有一定风险的 

来到选择 Jetson Nano 开发者套件的 SD 卡镜像下载。当然大多数情况下,因为某些原因,这些网站你是进不去的,因此笔者将镜像和所需要的软件放到了网盘里面,供大家参考

提取码:2n2w

1.2.1sd卡的格式化

首先需要将拿到的SD卡格式化,用这个软件,具体步骤如图所示

 

1.2.2镜像写入

点开这个绿色图标的镜像烧录软件

 点击我同意,来到选择界面,点击Flash from file,选择刚刚下载的镜像文件 

 

选择烧录的位置, 点击Flash!等待10~15分钟等待烧录完成

 

烧录完成后有时出现failed是正常现象,可以暂时忽略

 如果你遇到了和我一样的状况,不用在意,忽略就行了,具体的原因好像跟文件存储的格式有关 

将SD卡插入jetson nano的卡槽中,连接电源,用HDMI线连接显示器,出现这个界面即代表镜像烧录成功

接下来就是一路点过去,接触过Ubuntu的同学对下面的这个界面肯定是再熟悉不过了 

下面就是英伟达的界面了 

来到桌面,第一件事当然就是联网了,谁不希望有一个能随身携带能上网的小型电脑呢

 我这里介绍两种联网的方式

第一种就是去购买(加钱)支持lunix的usb免驱无线网卡,这种方式无疑能满足无线上网的需求

第二种利用网线连接你的主机和nano共享主机的网络

首先将网线的一端与nano相连, 另一端与主机相连

打开控制面板,点击网络和Internet选项 

 点击网络和共享中心

选择你本地已经连接好的网络 

 打开浏览器,你将惊奇的发现,你的nano已经能够成熟的打开b站看小姐姐了

Ubuntu跟Windows不同,能从官方指定的源服务器上下载安装各种软件,不用满世界找,但是默认的源可能在国外,速度很慢,有

的包无法安装。所谓换源就是更改源服务器,一般换成国内的。

简单通俗点来说就是,如果你希望加快下载各种包的速度要做的事情

我用的一般都是清华源,也有用中科大的源

先备份本身的源,防止误操作后无法删除

这里没有用vim,gedit更加方便

 

然后删除所有内容,复制以下内容,保存

 
 

别忘记更新一下哦

 
 

在更改环境变量之前,记得确定好cuda的版本,在添加环境变量的时候,因为cuda的版本原因导致的错误很常见,输入下面路径查看cuda版本

 

如上图所示cuda版本为10.2,那么路径也为cuda-10.2现在就可以添加环境变量了

 

在文本的最后添加以下三行

 
 

重新执行.bashrc文件,可以直接生效

 

 输入nvcc -V命令测试环境变量是否正确

 
 
 

依次输入下面的命令测试cuda

 
 

 等待片刻后,出现test passed表明成功(如下图

可能有同学要问了,pip是个啥,其实这不重要,你可以把他当作一个下载器,pip是Python 的包管理器,python已经来到了3.0版本,如果用pip的话,下载下来的包会保存在python2.7版本的路径下,总之,最后用pip3来下载安装python的各类包,避免后期出现麻烦

 

如果在使用的过程中出现报不能导入’main’错误

 打开路径 "/usr/bin/"下的pip3文件
将内容

 

修改为

 
 

首先得安装一些依赖

 

安装GPU版本的tensorflow

 

如果说你对自己安装的tensorflow版本不太放心,或者在下载过程中网络断开的话,不妨用下面的代码测试一下 

 

安装一些机器学习常用的库

 
 

点击下载pycuda2019版本, 这里有pycuda的github源码,里面有各种pycuda版本,但是可能会出现一些版本不兼容的问题

https://github.com/inducer/pycuda

 下载完成后来到下载好的路径下,终端打开,依次输入下解压安装

 
 

 安装过程中出现类似下图中的内容可以暂时忽略

 稍作等待几分钟,直到出现安装完成

很高兴你能来到这里,到这里已经完成了一半,是不是觉得很麻烦,别担心,当你完成了部署结果一定会让你很兴奋的

进入tensorrtx的,下载你训练时对应的yolov5的版本,点击左上角的master-->tags-->yolov5

:yolov5-4.0版本的模型,要下载yolo5版本的tensorrtx进行部署,否则在生成引擎文件时会出现报错

点击右边绿色的Code,然后Download ZIP

下载完成后,来到下载目录下,输入以下命令解压,我这里是v5.0版本

 
 

 把之前训练的模型生成的wts权重文件放到tensorrtx的yolov5文件夹中

没有wts文件只是想体验强大的jetson nano的同学可以先下载一下我的权重文件

链接: https://pan.baidu.com/s/1nciB7Xn1vXj9ZfBAoj39Bw 提取码: r74h 

 来到tensorrtx的yolov5文件夹,打开yololayer.h的代码,修改CLASS_NUM

创建进入文件夹buildcmake ..

 
 
 
 

 生成引擎文件

 

这一段模型引擎生成的命令解释如下

sudo https://blog.csdn.net/xiaoyuan2157/article/details/yolov5 -s/ [.wts文件路径] [.engine文件名称] [s/m/l/x/s6/m6/l6/x6 or c/c6 gd gw]

稍作等待后,出现Build engine successfully!表示生成完成,这时build文件夹里面会多出一个best.engine文件

到这里,恭喜你已经完成了模型的部署,我们放自己根据官方的yolov5_trt改的代码来测试一下 

是不是很棒

 

参考文章

jetson nano安装pycuda!_帅的发光发亮的博客-CSDN博客_jetson nano安装pycuda


特别提示:本信息由相关用户自行提供,真实性未证实,仅供参考。请谨慎采用,风险自负。


举报收藏 0评论 0
0相关评论
相关最新动态
推荐最新动态
点击排行
{
网站首页  |  关于我们  |  联系方式  |  使用协议  |  隐私政策  |  版权隐私  |  网站地图  |  排名推广  |  广告服务  |  积分换礼  |  网站留言  |  RSS订阅  |  违规举报  |  鄂ICP备2020018471号