jetson nano 安装yolov5并加速推理使用

1\查看下面的blog安装nano相关设置

yolov5 部署jetson nano(通用) 保姆级教学_奶茶不加冰的博客-CSDN博客_jetson nano yolov5

同时参照了

https://blog.csdn.net/qq_40630902/article/details/118356845 

2、注意适合于jetson nano的anaconda的资源

https://download.csdn.net/download/chencaw/86721598

2.1torchvision安装过程中的出错

我在Jetson nano上安装torchvision的时候报错(torchvision依赖pillow库):The headers or library files could not be found for jpeg,

sudo apt-get install libjpeg-dev zlib1g-dev

2.2torchvision  SyntaxError: future feature annotations is not defined出错

pip install pillow==8.4.0

 参考了

linux或Jetson nano上安装torchvision或安装pillow报错:The headers or library files could not be found for jpeg_点亮~黑夜的博客-CSDN博客_jetson nano 安装pillow

3/安装yolo5依赖的注意事项

好像matplotlib的版本有问题,所以

(1)

pip install matplotlib==3.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple

(2)安装yolo5的其它依赖

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

3、使用系统自带的tensorrt进行软链接

参考了

第三章 Jetson Nano 虚拟环境中使用PyQt5及TensorRT_时光机器人的博客-CSDN博客_jetson nano tensorrt安装

(1)建立软链接

TensorRT系统安装路径为:/usr/lib/python3.6/dist-packages/tensorrt/
执行以下命令,建立虚拟环境对应的软链接

ln -s /usr/lib/python3.6/dist-packages/tensorrt* /home/chen/archiconda3/envs/chenyolo_cp36/lib/python3.6/site-packages/

(2)测试查看版本

>>> import tensorrt
>>> tensorrt.__version__

(3)安装onnx

1)添加依赖

sudo apt-get install protobuf-compiler libprotoc-dev 

2)安装

pip install onnx=1.9.0 -i https://pypi.tuna.tsinghua.edu.cn/simple

-----------------------------
以下不用
---------------------------

如果不行
pip install onnx=1.4.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
如果不行
pip install onnx -i https://pypi.tuna.tsinghua.edu.cn/simple

(4)在yolov5下面转换模型并使用

1)转换

FP16精度,记得加上 --half

python export.py --weights weights/yolov5n-seg.pt --include engine --device 0

如果不加,则

python export.py --weights weights/yolov5n-seg.pt --include engine --device 0

2)使用

python segment/predict.py --weights weights/yolov5n-seg.engine --source 0  --device 0

--------------------------------------------------------------------------------------------------

上面的方法加速后在nano上速度只有下面方法的50%,考虑到速度还是要用下面的.

经过测试发现,下面的方法要快一些。上面的方法45ms每帧,下面的方法33ms每帧

上面的方法占用内存多了2个多G,以后还要优化

(0)下面的方法seg还有问题,上面方法seg采用-half产生模型可以给下面的方法直接调用

#(1)上面的方法产生模型
python export.py --weights weights/yolov5n-seg.pt --include engine --device 0 --half

#(2)下面的方法直接调用
python yolov5_trt_seg_XXX.py

(1)上面的方法使用--half参数后应该和下面的方法一样的速度

(2)下面的方法默认是FP16 

(3)下面的测试方法

(1)#yolov5,目录下面,修改文件参数
python yolov5_trt.py
(2)#yolov5的build目录下面
sudo ./yolov5 -d  yolov5n.engine ../images

-------------------------------------------------------------------------------------------------

4/安装tensort进行加速

参考了

https://www.jianshu.com/p/e9b77e1e1a19

4.1/安装 

 (1)安装所需要用到的库和环境依赖

sudo apt-get install build-essential make cmake cmake-curses-gui
sudo apt-get install git g++ pkg-config curl
sudo apt-get install libatlas-base-dev gfortran libcanberra-gtk-module libcanberra-gtk3-module
sudo apt-get install libhdf5-serial-dev hdf5-tools 
sudo apt-get install nano locate screen

sudo apt-get install libfreetype6-dev 
sudo apt-get install protobuf-compiler libprotobuf-dev openssl
sudo apt-get install libssl-dev libcurl4-openssl-dev
sudo apt-get install cython3

sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev
sudo apt-get install libxvidcore-dev libavresample-dev
sudo apt-get install libtiff-dev libjpeg-dev libpng-dev

(2)环境依赖配置好以后安装pycuda

注意指定版本好了

pip install pycuda==2020.1 -i https://pypi.tuna.tsinghua.edu.cn/simple
或者
pip install pycuda==2019.1.2  -i https://pypi.tuna.tsinghua.edu.cn/simple

下面的可能会出错

pip3 install pycuda

(3)获取tensorrt开源库

git clone https://github.com/wang-xinyu/tensorrtx.git

(4)进入到tensorrtx目录

cd ~/tensorrtx/yolov5/
如果是手动下载的则使用:
cd ~/tensorrtx-master/yolov5/

(5) 根据自己的情况修改yololayer.hyolov5.cpp

例如在yololayer.h修改检测类别数和输入图像尺寸,注意类别的修改

static constexpr int CLASS_NUM = 80;   // 类别种类
static constexpr int INPUT_H = 640;    // 输入图像的高
static constexpr int INPUT_W = 640;   // 输入图像的宽

(6)创建build目录并进入,注意还是在/tensorrtx/yolov5/目录下

mkdir build
cd build

(7)编译 

cmake ..

make -j4

3.3/编译测试  

(1)生成.wts文件

/tensorrtx/yolov5/中的gen_wts.py复制到yolov5项目的根目录下。自己手动复制

在终端中执行:
python3 gen_wts.py -w yolov5s.pt -o yolov5s.wts
-w:训练好的yolov5模型的路径
-o:输出的 .wts 文件路径

(2)生成engine文件

将上一步生成的.wts文件放入/tensorrtx/yolov5/build/目录下,在终端中执行

sudo ./yolov5 -s [.wts] [.engine] [n/s/m/l/x/n6/s6/m6/l6/x6 or c/c6 gd gw]

以yolov5s模型为例:
sudo ./yolov5 -s yolov5s.wts yolov5s.engine s

自己的例子

sudo ./yolov5 -s yolov5n-seg.wts yolov5n-seg.engine n
或在
sudo ./yolov5 -s yolov5s.wts yolovs.engine s

注意第一个参数都是s,后面的根据实际模型来

(3)测试

sudo ./yolov5 -d [.engine] [image folder]

例:
sudo ./yolov5 -d yolov5s.engine ../samples/
samples:图片的存放路径

另外如何通过Python调用

/tensorrtx/yolov5/tensorrtx作者给了两个python版本的示例分别是:yolov5_trt.pyyolov5_trt_cuda_python.py

4/yolo5测试

(1)

python detect.py --weights weights/yolov5s.pt --source data/images/zidane.jpg --device 0
python detect.py --weights weights/yolov5s.pt --source 0 

(2)

python segment/predict.py --weights weights/yolov5n-seg.pt --source 0  --device 0

(3)rt的测试

python segment/predict.py --weights weights/yolov5n-seg.engine --source 0  --device 0

-------------------------------------------------------------------------------------

以下操作都不行!!!!!!!!!!!!!!!!

--------------------------------------------------------------------------------------- 

2.1创建python3.7版本的环境

conda create -n chenyolo_python37 python=3.7
pip install --upgrade pip

3/下载对应python3.7版本的torch和torchvision

对应arrch64

(1)torch对应1.11.0 版本的

torch · PyPI

 (2)torchvision对应0.11.1版本的

torchvision · PyPI

 4/安装相关依赖

(1)下载yolov5

(2)安装matplotlib,注意(推荐的方法),下载地址

matplotlib · PyPI(

下载aarch64版本的最低对应python3.7,matplotlib的版本为3.5.3

对应资源如下

https://download.csdn.net/download/chencaw/86721840

 (3)然后暗自yolo5的依赖

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

------------------------------------------------------------------------------------------------------

以下为测试中的,不用!!!!

-------------------------------------------------------------------------

3/、安装pytorch和torchvision的方法一(推荐)

(1)从jetson nano官网下载对应的pytorch文件并安装,注意已下载

资源地址

https://download.csdn.net/download/chencaw/86721685

 pip install torch-1.11.0a0+17540c5+nv22.01-cp36-cp36m-linux_aarch64.whl 

(2)torchvision下载资源安装(方法一推荐)

https://download.csdn.net/download/qq_35000950/49826616?utm_source=bbsseo

(3)安装torchvision(方法二)

conda install torchvision cudatoolkit=10.2

(3)下载torchvision源码编译 (方法三)

4/、安装pytorch和torchvision的方法二(有问题)

conda install pytorch torchvision cudatoolkit=10.2

(3)下面方法下载的版本还是太低了

sudo apt-get install python-matplotlib

(4)安装matplotlib,注意可以直接指定版本(好像有问题)

pip3 install -i https://pypi.tuna.tsinghua.edu.cn/simple matplotlib==3.2.2

参照了

Jetson nano/NX 安装matplotlib3.3.4 失败_北极星~的博客-CSDN博客_jetson nano安装matplotlib

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值