基于YOLOv5s的火焰检测在jetson nano边缘计算设备上的部署(使用tensorrt加速,Deepstream视频推流SDK)

前情提要:本文章是我自己一点点的小感悟,是整个大框架的分析与大的流程,不是你们想要的具体过程,但是如果你们仔细阅读下这篇文章,有一个大局的观念,会对项目流程有一个清晰的认识与想法,效果可能比那些细的流程的文章要好些,也因人而异吧,所以提前告知下大家。

咱们来说下这次课设让做的一个基于人体关键点检测的姿势识别或者跌倒检测的一个项目,我打算基于openpose这个算法做,需要用什么VGA网络训练啥的,我这次没研究怎么训练,时间不够了好吧,这次任务就是如何在jetson nano板子上部署是这次的重点,同样说过了jetson xavier最重要的是什么,是jetpack版本,最基本的生态就是Ubuntu18.04这个默认不多说了,为什么之前tx2那么难用,系统储存在emmc里,要虚拟机烧系统nvidia sdk传输,电脑空间不够用了,还要专用USB线,懒得弄了,而且内存还不足,还得挂载sd卡,解锁,写入开机自启动vim命令,空间不足开不了机,命令行都调不出来,你也亲身经过的,花了150,记得奥别忘了。deepstream版本和jetpack版本根本匹配不了,网上生态还没有,没法搞。好了,言归正传,咱们说这回,问王老师借了个nano和USB摄像头,买了两个sd卡,一个tensorflow,一个pytorch。这回吃一堑长一智,先说tensorflow框架,openpose得用tensorflow框架去搞,你说你在板子上肯定用gpu跑吧,谁部署板子用cpu对吧,查了下,对于nano只有一个jetpack版本4.3适用,为什么听我细细道来,首先查询tensorflow适配的cuda版本,一看没有cuda10.2,寄了一大半哈哈哈,最后一看只有cuda10版本,整10版本,那好了,只有一个适合nano的jetpack版本,卡的死死的,(备注:首先我肯定是在windows上部署的,这个毋庸置疑,才能知道版本问题信息),好了,准备sd卡,清空,烧录分区 flash successful,wohooo!!!成功,这个很简单不多说了,进去一系列先设置英文语言,装jtop。sudo upgrade,pip安装,更新一系列东西,装一堆编译的库之类的,这里可以参考下这位博主的博客:Jetson nano部署Yolov5 ——从烧录到运行 1:1复刻全过程_nano yolo_IamYZD的博客-CSDN博客

参考这个做初始部署操作,写的很好,谢谢这位大佬,可以引用下么,如果有侵权请及时联系我,我立刻删除。好了,装好了后,我查了下,tensorflow-gpu还不好装,甚至可能要编译,一提到编译cmake就头大,我很希望找到whl轮文件直接装,这样就会很简单了,wuhooo,你猜怎么着,我找到了,这里参考我的干爹英伟达官网:

Index of /compute/redist/jp/v43/tensorflow-gpu

4.3jetpack版本的tensorflow-gpu轮文件,给大家啦,这样就简单多了我刚好像看了下,通过命令也能直接装,我当时好像没装成功,算了你们自己再看看,反正whl是最简单的方法了,途中有个h5py还是啥的库老版本不匹配,建议先装这个库,再tensorflow-gpu whl文件,这样就装好了,反正也不容易,装好了,就可以拷贝程序直接运行了,记得使用python3命令,pip也用pip3命令,phthon默认指的2版本,再装些库,运行出来帧率低到爆炸,即使是gpu跑的,我觉得大部分原因是poenpose这个算法的原因(因为我只用pytorch框架跑一个项目的时候帧率都没有这样,还没有tensorrt加速加上deepstream),卡成ppt,如下图:

基于YOLOv5s的火焰检测在jetson nano边缘计算设备上的部署(使用tensorrt加速,Deepstream视频推流SDK)_第1张图片

其实还有个程序,检测跌倒的,不过他的tensorflow用的1,你想想,我要用gpu跑,jetpack只能4.3版本,好了满足tensorflow使用gpu了,现在需要torch也用gpu,查官网傻眼了,如下图:

你猜猜看发生什么了, torch最高1.4,能用么,不可能啦,它检测跌倒的用的yolov5,yolov5我印象中最低torch1.6还是多少,反正一定不能1.4,因为与现在的版本差别太大,很多class或者函数都找不到,靠你手往上解决,根本没法的,我在之前tx2试过,你又要1.4的torch使用gpu,又要跑yolov5,不可能的奥,所以这个程序没法在nano上部署,索性放弃了。

下面补充下我在windows如何部署tensorflow-gpu吧,牵扯到tensorflow框架部署都不简单,因为1版本和2版本区别太大了,contrib这个库,

你可能感兴趣的:(python,深度学习,YOLO,边缘计算,人工智能)