Jetson Nano B01 初始化环境
在成功刷完机后,我们首先使用putty工具用串口进入设备,对设备进行初始化
说明
1、engine模型预测,我们必须使用设备自带的python版本,即:python3.6.9。
2、pt转engine模型,必须使用python3.7,因为yolov5要求python版本不能低于3.7,python3.8也是不能用的,会报错。
3、yolov5使用的yolov5-7.0版本,因为yolov5-master要求python版本不得低于python3.8,所以没法用。
4、按当前部署的环境tensorrtx-master和tensorrtx-yolov5-v7.0两个工程的yolov5_det_trt.py文件都能运行
5、windows上转换的engine模型模型在设备上貌似不能用。
安装Python3.7
我们模型转换用python3.7,engine模型预测用系统自带的python3.6.9,为了方便后面安装pip等环境,我们先把python3软连接到python3.7,等会模型转换环境安装完了,可以再切换到3.6.9
# 更新源
sudo apt-get update
# 更新已安装包,遇到需要输入的,全选“Y”
sudo apt-get upgrade
# 安装Python3.7
sudo apt-get install python3.7
# 将原先的Python3.6替换成Python3.7
sudo rm -rf /usr/bin/python3
sudo ln -s /usr/bin/python3.7 /usr/bin/python3
# 安装pip3
sudo apt-get install python3-pip
pip3 install --upgrade pip
# 查看python安装情况
ll /usr/bin/python3*
其他命令
# 卸载python3.7
sudo apt autoremove python3.7
# 查看设备支持的所有安装包格式
pip3 debug --verbose
# 查看python版本
python3.7 --version
pt转engine模型环境搭建
模型转换需要用到yolov5-7.0工程,该工程最低只支持python7.0,所以我们必须安装python7.0的运行环境
Torch、Torchvision安装
# 在线安装,下载有点慢,可以将连接复制出来,手动下载,这样会快点
pip3 install torch==1.12.0 -f https://download.pytorch.org/whl/torch_stable.html
pip3 install torchvision==0.13.0 -i https://mirror.baidu.com/pypi/simple
# 或者手动下载后,进行离线安装
pip3 install torch-1.12.0-cp37-cp37m-manylinux2014_aarch64.whl
pip3 install torchvision==0.13.0 -i https://mirror.baidu.com/pypi/simple
torchvision和PyTorch版本对应如下:
PyTorch v1.0 - torchvision v0.2.2 PyTorch v1.1 - torchvision v0.3.0 PyTorch v1.2 - torchvision v0.4.0 PyTorch v1.3 - torchvision v0.4.2 PyTorch v1.4 - torchvision v0.5.0 PyTorch v1.5 - torchvision v0.6.0 PyTorch v1.6 - torchvision v0.7.0 PyTorch v1.7 - torchvision v0.8.1 PyTorch v1.8 - torchvision v0.9.0 PyTorch v1.9 - torchvision v0.10.0 PyTorch v1.10 - torchvision v0.11.1 PyTorch v1.11 - torchvision v0.12.0 PyTorch v1.12 - torchvision v0.13.0 PyTorch v1.13 - torchvision v0.13.0 PyTorch v1.14 - torchvision v0.14.1 PyTorch v2.0.0 - torchvision v0.15.1 |
按顺序安装需要的包
sudo apt-get install python3.7-dev
# 一个个单独安装
pip3 install numpy==1.21.6 -i https://mirror.baidu.com/pypi/simple
pip3 install opencv-python==4.9.0.80 -i https://mirror.baidu.com/pypi/simple
pip3 install pandas==1.3.5 -i https://mirror.baidu.com/pypi/simple
pip3 install IPython -i https://mirror.baidu.com/pypi/simple
pip3 install matplotlib==3.5.3 -i https://mirror.baidu.com/pypi/simple
pip3 install tqdm -i https://mirror.baidu.com/pypi/simple
pip3 install seaborn -i https://mirror.baidu.com/pypi/simple
pip3 install psutil==5.9.8 -i https://mirror.baidu.com/pypi/simple
# 或者一次性全部安装,都行的
pip3 install numpy==1.21.6 opencv-python==4.9.0.80 pandas==1.3.5 IPython matplotlib==3.5.3 tqdm seaborn psutil==5.9.8 -i https://mirror.baidu.com/pypi/simple
下载tensorrtx-yolov5-v7.0和yolov5-7.0两个工程,注意,下载的两个版本要一致,下载完之后,将文件通过winscp工具上传到设备上。
https://github.com/wang-xinyu/tensorrtx
https://github.com/ultralytics/yolov5

把 tensorrtx-yolov5-v7.0/yolov5 下的gen_wts.py复制到yolov5-7.0的文件夹下
执行 gen_wts.py 生成.wts 文件。
python3 gen_wts.py -w yolov5s.pt -o yolov5s.wts
转换成功

到目录 tensorrtx-yolov5-v7.0/yolov5 文件夹,创建一个 build 文件,并进入
mkdir build
cd build
cmake ..
执行 makeFile
make -j2
从 yoloV5 的文件路径下的 wts 文件复制到 tensorrtx-master/yolov5 里。
生成.engine 文件
sudo ./yolov5_det -s ../yolov5s.wts yolov5s.engine s
转换成功!!

运行测试
sudo ./yolov5_det -d yolov5s.engine ../../yolov3-spp/samples
然后我们就可以看到输出的两个图像了~~

安装engine模型预测环境
经过前面步骤,我们还不能运行yolov5_det_trt.py文件,我们还需要安装pycuda才行。
查看cuda版本,并安装pycuda
参考博客:https://blog.csdn.net/weixin_44750512/article/details/123156020
官网地址:https://www.lfd.uci.edu/~gohlke/pythonlibs/
# 查看cuda的bin目录下是否有nvcc
cd /usr/local/cuda/bin
# 如果存在,直接将cuda路径加入系统路径即可,进入配置文件
sudo vim ~/.bashrc
# 添加以下配置,在/.bashrc中配置PATH路径,完整配置如下
export PATH=$PATH:/usr/local/cuda/bin
# webapi需要的设置(不是必须)
export FLASK_ENV=development
# 更新配置文件
source ~/.bashrc
# 查看nvcc版本
nvcc -V
再次执行nvcc -V 就可以看到相应cuda版本了,如下

确认系统cuda版本,安装pycuda
参考博客:https://blog.csdn.net/qq_27278957/article/details/123068094
博主这里是cuda10.2版本,按道理说应该安装2021.1版本或者2019.1.2
2021.1博主试过了,安装不成功,所以只能安装2019.1.2
# 切换python3的软连接为python3.6.9,我们需要将pycuda安装到python3.6.9环境中才行
sudo rm -rf /usr/bin/python3
sudo ln -s /usr/bin/python3.6 /usr/bin/python3
# 安装pycuda
python3 -m pip install pycuda==2019.1.2 -i https://mirror.baidu.com/pypi/simple
板子有自带安装tensorrt,可以通过下面命令确认tensorrt版本,之前博主不知道,用python3.7死活无法安装高版本的tensorrt,导致py程序就是找不到tensorrt库,其实tensorrt可以不用安装的,系统自带了。
dpkg -l tensorrt

运行测试
然后直接运行“tensorrtx-yolov5-v7.0\yolov5\olov5_det_trt.py”文件
删除ensorrtx-yolov5-v7.0\yolov5\images文件,然后把yolov5的data/images文件夹拷贝到“tensorrtx-yolov5-v7.0\yolov5”目录下。
python3 yolov5_det_trt.py

其他
自定义数据集种类数设置位置如下:

给python3.6环境升级opencv(注意,这里python3软连接的是opencv3.6,博主没升级成功,卡了几个小时了没动静~~)
python3 -m pip install scikit-build -i https://mirror.baidu.com/pypi/simple
python3 -m pip install opencv-python==4.9.0.80 -i https://mirror.baidu.com/pypi/simple
# json包
python3 -m pip install flask -i https://mirror.baidu.com/pypi/simple
# 其他设置
export FLASK_ENV=development