YOLOv4-tiny在jetson NANO\TX2\NX下的实时目标检测(从装系统到功能实现)
本文最后更新于:2022年2月28日 上午
YOLOv4-tiny在jetson NANO\TX2\NX下的实时目标检测(从装系统到功能实现)
* 目的
- 在nvidia jetson系列的嵌入式平台上,运用YOLOv4-tiny算法以及TensorRT加速框架,实现实时的目标检测.
- 环境
- Jetpack 4.4
- CUDA 10.2
- ONNX 1.4.1
* 实践
* 烧系统
- 准备系统镜像.img(jetpack4.4:实测nx和nano不通用,用nano的img烧进去nx不识别)
- 官网下载jetpack4.4. tips:英伟达官网下载有时会很慢:改.com为.cn


- 准备三大件(提取码:8848):1、格式化内存卡:SD Card Formatter 2.烧写工具:balenaEtcher 3.备用烧写工具Win32DiskImager。烧写失败时,这两个工具换着用。
- 格式化卡

* 烧写系统


* 把SD卡插到板子上,开机后初始化下系统就可以“愉快的”配置环境了
* 配环境
* CUDA 10.2
1 | |
1 | |
1 | |
* 换源
1 | |
1 | |
1 | |
* pip安装及更新


1 | |
pip已经安装,但是/usr/bin/pip: No such file or directory
pip: No such file or directory
- setpool报错

python 版本切换
- 1 删除原有链接
1
sudo rm /usr/bin/python- 2 建立软连接
1
sudo ln -s /usr/bin/python3.6 /usr/bin/python //3.6 3.5 2.7 可以根据需求更改curl:
- 安装curl时报错 curl : Depends: libcurl3-gnutls (= 7.47.0-1ubuntu2.12) but 7.58.0-2ubuntu3.6 is to be installed
- 提示安装curl依赖的libcurl版本不一致,这个时候用purge命令重新安装就好了
部署YOLO+TRT
- 下载源码:
1
git clone [https://github.com/jkjung-avt/tensorrt_demos.git](https://github.com/jkjung-avt/tensorrt_demos.git)
* 安装onnx模型:
1
2
sudo apt-get install protobuf-compiler libprotoc-dev
sudo pip3 install onnx==1.4.1
* 编译下plugins文件夹里的相关文件
1
make
* 转换yolo文件
* 1.将.weight模型文件转换成 .onnx 格式
1
python3 yolo_to_onnx.py -m yolov4-tiny-416
* 2.再将 .onnx文件转换成 .trt 格式
1
python3 onnx_to_tensorrt.py -m yolov4-tiny-416
* 3.启用摄像头实时检测
1
python3 trt_yolo.py --usb 0 -m yolov4-tiny-416
- 结果
- 实时检测帧数在40左右,下一篇接着总结NMS、精准度等调参问题


- 结论
- 网上的教程鱼龙混杂,推荐一篇不错的博文。起初在nano上部署成功,后来尝试按照自己总结的这套方法在NX上复现。没有啥大问题的话,不到一个小时环境部署就可以完成,祝你好运!
本博客所有文章除特别声明外,均采用 CC BY-SA 4.0 协议 ,转载请注明出处!

