赞
踩
目录
Jetson nano配置环境和部署yolov5-seg全过程:
文件下载
(1)本文使用的jetpack包(4.6)和烧写软件:
链接:https://pan.baidu.com/s/1ae8Iz7FoRTlRyE3yUJwpmg?pwd=ie8n
提取码:ie8n
(2)本文使用的torch、torchvision、matplotlib包:
链接:https://pan.baidu.com/s/1R2eHjwkM1z7olhevoNw7eA
提取码:cdo7
可以在官网选择所需的Jetpack版本镜像进行下载:JetPack Archive | NVIDIA Developerhttps://developer.nvidia.com/embedded/jetpack-archive
本文选择的是jetpack4.6版本进行试验(4.61-4.64版本未在官网上找到版本对应的torch包)
准备工具:SD卡,读卡器。
使用balenaEtcher软件进行镜像烧写(烧写前需要格式化),打开软件后选择文件和插了SD卡的读卡器即可进行烧写,该过程需要十几分钟左右。烧写成功后将SD卡直接插入到nano上,配置一些基本信息即可正常使用。
Jtop可以实时监控jetson相关硬件使用情况的详情信息。在界面中可以显示CPU、GPU、内存、CUDA、Jetpack等的相关信息。
- sudo apt install python3-pip
- sudo -H pip3 install jetson-stats -i https://pypi.douban.com/simple/
- sudo jtop
(1)安装中文输入法软件
- sudo apt-get update
- sudo apt-get install fcitx fcitx-goolepinyin
(2)配置中文输入法
- im-config -n fcitx # 配置
- sudo reboot # 重启
(3)输入法设置:语言设置上选择goole拼音作为中文输入法(ctrl+空格切换中英文)
Jetson nano在烧录镜像的时候使用的jetpack包中已经包含了CUDA、CUDNN、TensorRT环境,但是还需要我们将CUDA信息写入环境变量中。
- sudo gedit ~/.bashrc
- #文档末尾添加(cuda后面数字为cuda对应版本)
- export CUDA_HOME=/usr/local/cuda-10.2
- export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
- export PATH=/usr/local/cuda-10.2/bin:$PATH
- #保存退出 (配置成功可看出cuda版本信息)
- source ~/.bashrc
- nvcc -V
- #(1)打开nvzramconfig.sh文件
- sudo gedit /etc/systemd/nvzramconfig.sh
- #(2)修改nvzramconfig.sh文件内容 ( / 2 ==> * 2)
- 修改mem = $((("${totalmem}"/2/"${NRDEVICES}")*1024))为mem = $((("${totalmem}"*2/"${NRDEVICES}")*1024))
- sudo reboot
- free -h # swap已经变为7.7G
Jetpack自带了两个python版本,jetpack4.6版本自带的python版本是2.7和3.6,但是默认使用2.7版本,所以我们需要管理系统使用的python版本。
- #(1)查看jetson自带python版本 (系统默认使用python2.7版本)
- ls /usr/bin/python*
- #(2)查看是否配置过python相关信息
- update-alternatives --list python
- #(3)配置python相关信息
- sudo update-alternatives --install /usr/bin/python python /usr/bin/python2.7 1
- sudo update-alternatives --install /usr/bin/python python /usr/bin/python3.6 2
- #(4)查看配置信息
- update-alternatives --list python
- #(5)切换python版本
- sudo update-alternatives --config python
Jetson nano安装可使用cuda的torch需要在官方下载对应jetpack版本的torch文件包,如果版本不对应会安装不上(torch版本也需要和torchvision版本相对应)。由于属于境外网站,所以下载难度较大,且容易在安装过程出现文件包损坏的情况,这边通过网盘提供torch1.7和torchvision0.8版本的whl文件。
官方网址:
- #(1)安装
- sudo apt-get install libopenblas-base libopenmpi-dev libomp-dev
- pip install Cython
- pip install numpy xxx.whl
- #(2)验证
- import torch
- print(torch.__version__)
- print(torch.version.cuda)
- print(torch.backends.cudnn.version())
(1)修改下载镜像
- mkdir ~/.pip
- sudo gedit ~/.pip/pip.conf
(2)在空白文件中输入如下内容保存并退出:
- [global]
- index-url=http://mirrors.aliyun.com/pypi/simple/
- [install]
- trusted-host=mirrors.aliyun.com
(3) 本文推荐将yolov5项目直接拉到Jetson nano中,然后安装yolov5的各种依赖包。有一些安装包会出现暗转失败的问题,可以直接下载符合版本的whl文件进行安装。笔者在实验过程中出现类似torch等一些文件已经安装的库在执行下面的指令后还会下载其他版本的包。解决方法注释掉requirements.txt中已经安装的包。
- cd yolov5
- pip3 install -r requirements.txt
-
- python3 detect.py --source data/images/bus.jpg --weights yolov5n.pt --img 640 #图片测试
(4)出现 “Illegal instruction(core dumped)”问题
- sudo gedit ~/.bashrc
- #末尾添加
- export OPENBLAS_CORETYPE=ARMV8
- #保存关闭
- source ~/.bashrc
(1)github官网下载的tensorrtx源码(注意:yolov5-v7版本的也需要选择tensorrtx中yolov5-v7版本进行下载,否则后续会报错,无法构建模型)
(2) 将xxx.pt权重文件转化为xxx.wts文件
将下载的tensorrtx项目中的yolov5/gen_wts.py复制到自己yolov5项目的文件下。打开终端:
- #1 生成wts文件,把自己的权重文件xxx.pt文件放至此处执行
- python3 gen_wts.py -w yolov5n.pt -o yolov5n.wts
(3) 编译
1.回到tensorrtx/yolov5目录下
- cd ~/tensorrts/yolov5/
- mkdir build
- cd build
2.将生成的wts文件移动到刚创建的build目录
- cmake ..
- make -j4
3.如果是自己的项目需要修改config文件的参数 ,将类别数修改自己项目的类别数
4. 生成engine文件
./yolov5为前面指令生成的可执行文件,可能是yolov5_seg/yolov5_cls/yolov5_det -s为序列化, n 代表yolov5n,s 为yolov5s。
sudo ./yolov5 -s xxx.wts xxx.engine n
5.测试图片查看效果
./yolov5解释同上,-d为检查,../samples为待检查的图片路径, xx.txt为你的模型参数解释
sudo ./yolov5 -d xxx.engine ../samples xx.txt
执行结果如下所示,推理基本可以做到42ms一张图片。
参考连接:
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。