一、前期准备需要
1.一块jetson nano版
2.SD卡(已经烧录好了镜像资源)
3.电脑上下载XFPT7(对于学生完全免费)(方便从电脑上直接传输文件进入板子)
二、软件需求(在电脑上,因为在板子上直接下载github上下载资源包我一般都没能下载成功)
1.darknet(AB大神版,可直接make编译)地址:https://github.com/AlexeyAB/darknet
2.TRT-yolov3-master 地址:https://github.com/yqlbu/TRT-yolov3
3.yolov3-tiny.weights
三、开始工作
(1)换源:可在电脑上先将清华源放在txt文件中在通过xfpt7传到板子上就不用手打
打开终端输入 sudo cp /etx/apt/sources.list /eyc/apt/sources.list.bak(后面是备份)
sudo gedit /etc/apt/sources.list 用清华源复制替换掉其中的内容
sudo apt-get update
(2)下载pip sudo apt-get install python3-pip python3-dev(一定要是python3,否则默认下载的是python2)
(3)将darknet解压到板子的桌面 打开文件夹,将yolov3-tiny-weights文件复制进文件夹,在文件夹中右键打开终端输入make -j4
输入./darknet detector demo cfg/coco.data cfg/yolov3-tiny.cfg yolov3-tiny.weights 即可使用摄像头检测 但是帧率很低
(4)使用tensorrt前需要protobuf、onnx、pycuda、numpy,
首先下载protobuf:sudo pip3 install protobuf==3.8.0(注意可能会报错protobuf要求python>=3.7,此时需要更新pip3的版本,即可解决)
然后下载onnx与numpy:sudo pip3 install numpy==1.16.0
sudo pip3 install onnx==1.4.1
注意此时onnx可能会报错python的依赖库没有安装完 可参考博客:Jetson Nano 安装onnx_々云逸的博客-CSDN博客_jetson onnx
最后下载pycuda :博客:jetson nano安装pycuda_帅的发光发亮的博客-CSDN博客
注意最后运行博客中的矩阵时 可能报错:
-
import pycuda.autoinit
-
Traceback (most recent call last):
-
File "<stdin>", line 1, in <module>
-
File "/home/xiaor/pycuda-2019.1.2/pycuda/autoinit.py", line 2, in <module>
-
import pycuda.driver as cuda
-
File "/home/xiaor/pycuda-2019.1.2/pycuda/driver.py", line 62, in <module>
-
from pycuda._driver import * # noqa
-
ModuleNotFoundError: No module named 'pycuda._driver'
只要在import pycuda时候没有报错 可以不用管
(5)在TRT-YOLO-master中打开yolov3-onnx,将yolov3-tiny.cfg复制进去,在终端中输入python3 yolov3_to_onnx.py --model yolov3-tiny-416和python3 onnx_to_tensorrt.py --model yolov3-tiny-416产生一个trt文件
(6)从电脑中传入一个MP4文件,在终端执行:
python3 detector.py --file --filename ./data/文件名mp4 --model yolov3-tiny-416 --runtime开始识别视频
但是我在使用detector文件进行摄像头的实时监测时候,都会产生一个代码冗余的情况,还希望有大神可以指点我一下 。
我也是一个小白,刚开始玩jetson nano,也参考了CSDN上面的很多博客,如果有什么相同的地方,还请原谅。大家一起学习。
博客:trt-yolov3:Jetson Nano上的yolov3-tiny识别(已完结)_我肚子好饿的博客-CSDN博客
这个博客比我的详细一点,但是自己还是踩了很多坑,写这个 主要是为了回顾一下自己用jetson nano的过程