部署yoloV5到JetsonNano流程
-
首先将SD卡进行格式化
-
重新烧录过程中,首先将卡进行删除
通过cmd获取磁盘:具体流程
http://www.taodudu.cc/news/show-3083269.html -
官方Nvidia 镜像地址:
-
使用Etcher软件通过堆下载的镜像进行烧录
-
配置CUDA
#打开终端,输入命令
vi .bashrc
在最后添加命令:
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
exportLD_LIBRARY_PATH=/usr/local/cuda10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_ROOT=/usr/local/cuda
更新配置
source ~/.bashrc
查看配置是否成功:nvcc-v
- 安装PIP3
sudo apt-get update
sudo apt-get install python3-pip python3-dev -y
升级PIP
python3 -m pip install --upgrade pip
-
Jetson nano上的Linux其实不是x86架构,而是类似手机的ARM架构,这也就导致它的很多包和普通的Linux上的不是通用的。也是踩过的坑之一,这里的PyTorch以及接下来的torchvision等包都需要安装Nvidia官网给出的版本。
参见教程: https://zhuanlan.zhihu.com/p/527866160JetPacK安装pytorch版本
https://forums.developer.nvidia.com/t/pytorch-for-jetson/72048
对应Python版本安装
torch 下载链接
https://nvidia.box.com/shared/static/p57jwntv436lfrd78inwl7iml6p13fzh.whl%20-O%20torch-1.10.0-cp36-cp36m-linux_aarch64.whl
安装对应的torchVision
9. 注意tensorRT要和YOLOv5之间的版本要匹配(yolov5_5.0, tensor_5.0)
https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5
- 将在云服务器端训练生成的YOLOv5 中的PTH文件进行转化成engine文件
先在windows系统下将yolov5的tensorRT下载
https://github.com/wang-xinyu/tensorrtx/tree/master/yolov5
复制tensorrt中的 gen_wts.py和.pt文件一个文件夹下
python3 gen_wts.py -w yolov5s.pt -o yolov5s.wts
文件内会生成一个文件:yolov5s.wts
build(在Jetson nano上弄)(这一步是生成引擎文件)
1.将上述生成的.wts文件用U盘复制到Jetson nano里的yolov5-5.0(Tensorrtx)\tensorrtx-yolov5-v5.0\yolov5文件夹中。
2.打开上述文件夹里的yololayer.h文件,修改CLASS_NUM的数量(根据自己训练模型的类的个数来设)。
3.此时上述文件夹里有(.wts 是在windows电脑上生成的)(yolov5.cpp 未进行过改动)(yololayer.h 已经改为自己训练的类数了)这三个。
4.在上述文件夹中打开终端,依次运行指令
```bash
mkdir build
cd build
cmake ..
make
- copy文件’yolov5s.wts’ 文件到tensorrtx/yolov5/build目录下
- 生成yolov5s.engine
// For example yolov5s
sudo ./yolov5 -s yolov5s.wts yolov5s.engine s
sudo ./yolov5 -d yolov5s.engine ../samples
#如果针对小模型yolov5的命令为
sudo ./yolov5 -s yolov5n.wts yolov5n.engine n `
这一步完成后,会生成两个文件 ‘yolov5s.engine’ and ‘libmyplugin.so’ ,这俩都很重要,后面会用到
- DeepStream 官方下载
https://developer.nvidia.com/embedded/deepstream-on-jetson-downloads-archived
安装DeepStream依赖
sudo apt install \
libssl1.0.0 \
libgstreamer1.0-0 \
gstreamer1.0-tools \
gstreamer1.0-plugins-good \
gstreamer1.0-plugins-bad \
gstreamer1.0-plugins-ugly \
gstreamer1.0-libav \
libgstrtspserver-1.0-0 \
libjansson4=2.11-1
将下载好的deepStream tar包进行安装
sudo tar -xvf deepstream_sdk_v5.1.0_jetson.tbz2 -C /
cd /opt/nvidia/deepstream/deepstream-5.1
sudo ./install.sh
sudo ldconfig
测试DeepStream
deepstream-app -c /opt/nvidia/deepstream/deepstream-5.1/samples/configs/deepstream-app/source4_1080p_dec_infer-resnet_tracker_sgie_tiled_display_int8.txt
建议还可测试Source中的yolo
- 部署DeepStream教程:
https://blog.csdn.net/Pcl2001/article/details/125957727
下载yoloV5的deepStream文件
git clone https://github.com/Glory-Peng/Yolov5-in-Deepstream-5.0.git
拷贝生成的文件
在DeepStream_5.0文件夹下(与engine和***.so一个文件夹下)新建labels文件(包含类别)
进入下一层文件夹
Cd nvdsinfer_custom_impl_Yolo
修改makeFile中的cuda_ver为当前版本
回上一层目录
运行代码:
LD_PRELOAD=./libmyplugins.so deepstream-app -c deepstream_app_config_yoloV5.txt
遇到的问题之一:打开pyhton失败
https://blog.csdn.net/xiaosongshine/article/details/114168235
二:https://blog.csdn.net/weixin_42388228/article/details/116739439
部署Jetson NaNO
https://blog.csdn.net/Pcl2001/article/details/125957727
Cmake 出错:
https://blog.csdn.net/qq_35398033/article/details/106457777
https://blog.csdn.net/weixin_42388228/article/details/116739439