前言
本文主要通过实现github上的tensorrt_demos项目达到实时检测效果。
参考原文:Jetson Nano实现基于YOLO-V4及TensorRT的实时目标检测。感谢知乎博主Lynn在此文中提供的宝贵思路,此文全当是对其操作内容的补充。
刚开始接触嵌入式和深度学习实战,对很多工程步骤都还不了解,这三天反复尝试对深度学习框架使用TensorLite和tensorRT进行加速,以达到实时检测的效果,多次尝试最后实现的TensorLite + mobilev1-300效果并不理想,在JetsonNano上只有5~10fps的速度,但是使用tensorRT + yolov4-tiny的组合可以成功达到40~50fps的检测速度。
.
正文
环境说明
- Jetpack 4.4
- CUDA 10.2
- ONNX
1.4.1
基本思路
yolo模型(.weights + .cfg) → onnx文件(.onnx) → tensorRT模型(.trt)
项目代码
https://github.com/jkjung-avt/tensorrt_demos
操作步骤
下载完项目代码后提取解压,进入yolo
文件夹中,可以看到如下文件
读文件的名字不难猜到各个文件的作用:requirements.txt
文件中注明了python各个库(比如numpy)的最低版本,如果没有满足需求需要手动更新库。而download_yolo.sh
打开就可以看出来是下载各个模型和生成模型文件的批处理文件。
运行download_yolo.sh
文件
sh download_yolo.sh
然后会从darknet的github代码库下载.weights和.cfg模型文件,以及生成不同尺度的模型文件,如下(此处本人修改了download_yolo.sh
,仅下载和生成yolov4-tiny相关的文件)
模型文件准备完毕,如果此时直接运行yolo_to_onnx.py
文件会报错
ERROR: failed to load ../plugins/libyolo_layer.so.
Did you forget to do a "make" in the "../plugins/" subdirectory?
原因是没有编译部分文件,那么根据提示,进入到上一级的plugins
文件夹中进行编译
make
没报错就说明你运气好 没有问题了。
在这之后,再执行yolo_to_onnx.py
文件,将之前得到的模型生成文件传入,此处选用的是yolov4-tiny-288
python3 yolo_to_onnx.py -m yolov4-tiny-288
之后就会生成一个.onnx
格式的文件,此时再运行onnx_to_tensorrt.py
文件,指定.onnx
文件的模型名字(还是yolov4-tiny-288
没变)
python3 onnx_to_tensorrt.py -m yolov4-tiny-288
就可以生成最终我们需要的.trt
文件,这个文件就是经过tensorRT优化后的模型文件
回到上一级文件夹中,运行trt_yolo.py
文件,输入模型的视频输入方式和模型名称就可以开始执行检测任务。由于我使用的是usb摄像头,所以输入的参数如--usb
,如果使用的是csi或者视频,可以直接到utils/camera.py
文件中翻阅对应的说明
python3 trt_yolo.py --usb 0 -m yolov4_tiny-288
检测结果
检测结果如下:
差不多达到40fps,实时性很好;在没有调节摄像头导致欠曝的情况下还能准确地识别出显示器和键盘(基于coco数据集),整体水平表现良好。
.
写在最后
记录思路——这是花时间写这篇文章的目的之一。 如果你也刚接触深度学习实践,那么不妨看看
- 提到深度学习应用落实,对于我这种新手,前几天都是漫无目的地在百度上找各种帖子,跟着各种教程帖来,出问题搜不到解决方案就卡死了。花了一天找到一个时间近些、跑的通的教程帖就算没有一无所获——总的来说,不清楚一个大致的解决问题的方向是最大的问题。
- 这个过程经过几天的反复后,才逐渐发现一种以教程帖 - Github/OfficialGuidance - ManualOperating的“标准流程”:先筛选一些带有Github和官方(如tf官方)指导内容的教程贴(少参阅一些直接贴代码或者无法索引源头的帖子),再去Github或者官网进行文献代码查阅,然后再在跑通例程的基础上自己编程实现需要的功能,一定要多看一些官方(Github/官网)的代码的项目,节约生命。
版权声明:本文为CSDN博主「照亮星星的人们」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ZeyiRTangent/article/details/114983804
暂无评论