示例代码:GitHub - jkjung-avt/tensorrt_demos: TensorRT MODNet, YOLOv4, YOLOv3, SSD, MTCNN, and GoogLeNet
参考博客在Jetson Nano上进行实时目标检测:使用tensorRT加速yolov3 v4-tiny (tensorrt_demos)_照亮星星的人们的博客-CSDN博客
基本思路
yolo模型(.weights + .cfg) → onnx文件(.onnx) → tensorRT模型(.trt)
根据环境要求先配置环境。
环境要求:
numpy>=1.151
onnx>=1.4.1
pycuda>=2017.1.1
从github上下载示例代码,解压。
打开yolo文件夹
将yolov4-tiny.cfg与yolov4-tiny.weights添加到此目录下。
步骤1:返回到上一级的plugins文件夹中进行编译
Make
步骤2:到yolo文件夹目录下,执行脚本
python3 yolo_to_onnx.py -m yolov4-tiny
值得注意的是,-m 后面根据自己的权重文件名称修改。(权重文件与cfg文件名称保持一致)
通过原始yolov4-tiny.weights生成yolov4-tiny.onnx文件
步骤3:执行脚本onnx_to_tensorrt.py
python3 onnx_to_tensorrt.py -m yolov4-tiny
生成yolov4-tiny.trt文件,该文件就是经过经过tensorRT优化后的模型文件。
步骤4:返回上一级文件夹中,运行trt_yolo.py文件
python3 trt_yolo.py –image person.jpg -m yolov4_tiny
(图片与模型前面根据自己的文件位置添加文件路径)
支持5种不同图像视频/输入
--image test_image.jpg :图像文件,例如jpg或png。
--video test_video.mp4 :视频文件,例如mp4或ts。可选--视频循环如果需要,可以启用标志。
--usb 0 USB网络摄像头(/dev/video0)。
--rtsp rtsp://admin:[email protected]/live.sdp:RTSP源,例如IP摄像机。一个可选的--rtsp U延迟在这种情况下,参数可用于调整延迟设置。
--onboard 0:Jetson车载摄像头。
运行结果:
感谢前辈们的分享!