yolov5 部署jetson nano(通用) 保姆级教学
Jetson nano从配置环境到yolov5成功推理检测全过程
文章目录
一、烧录镜像
官网的官方镜像下载地址:https://developer.nvidia.com/embedded/downloads
不一定能下载的下来,所以我提供了百度云链接下载,下载地址如下:
链接:https://pan.baidu.com/s/1njWhDqNquyUqnDRCp31y8w
提取码:6qqh
1.需要下载两个烧录的配置软件,这里推荐下面两个软件,一个软件是格式化SD卡(SD卡推荐至少64G),一个是烧录软件
1.1 SD Card Formatter:格式化SD卡(格式化完再烧录镜像)
1.2 Win32 Diskimg:把镜像写入SD卡中 (一定要把下载好的镜像解压,看到.img文件就可以按照下面步骤进行烧录镜像,可能需要半个小时)
(忽略俩张图片英文和中文的不同,按照上述步骤烧录即可)
二、配置环境并成功推理
1.更新系统和包
打开一个终端,依次输入以下代码
sudo apt-get update
sudo apt-get upgrade
可能还需要安装一下中文输入法
ibus-pinyin
sudo apt-get install ibus-pinyin
重启一下,才可以在language support里面看到
reboot
也可以按照下面这个链接去安装中文输入法
https://blog.csdn.net/weixin_41275422/article/details/104500683
http://www.360doc.com/content/20/0501/13/40492717_909598661.shtml
2、配置环境
2.1 配置CUDA
打开终端,输入
sudo gedit ~/.bashrc
在打开的文档的最后面添加下面代码:
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
ctrl+s保存文档,然后退出文档,再上面的终端执行以下:
source ~/.bashrc
查看是否成功,成功就会出现CUDA的版本号:
nvcc -V #如果配置成功可以看到CUDA的版本号
如果配置成功可以看到CUDA的版本号
2.2 修改Nano板的显存
1.打开终端输入:
sudo gedit /etc/systemd/nvzramconfig.sh
2.修改nvzramconfig.sh文件:
在打开的文档中找到mem值,修改mem的值,如下:
找到的 mem = $((("${totalmem}"/2/"${NRDEVICES}")*1024))
我们修改的 mem = $((("${totalmem}"*2/"${NRDEVICES}")*1024))
把 / 修改为 *
3.重启:
reboot
4.终端输入:
free -h
可查看到swap已经变为7.7G
3、安装archiconda(也就是jetson nano板上的anaconda)
因为Anaconda不支持arm64架构,因此Jetson Nano开发板无法成功安装Anaconda(这是一个巨大的坑,本人就是在踩了好久这个坑才找到Anaconda是无法在jetson nano上运行的)Archiconda是用于64位ARM平台的Conda发行版,安装好了archiconda我们就可以运用win10系统上流畅使用conda的思想来安装包和运行脚本了,是不是感觉很熟悉。
1.下载地址:
https://github.com/Archiconda/build-tools/releases
2.安装:
找到你下载archiconda包的文件夹位置,打开的终端要在你这个文件夹内,或者cd进行这个文件夹,然后执行:
sudo apt-get install Archiconda3-0.2.3-Linux-aarch64.sh
(如果上面命令無法安裝 使用下面命令安裝)
bash Archiconda3-0.2.3-Linux-aarch64.sh
安装的时候需要一直确定,按enter,全部默认即可,可能需要一点时间
3.测试conda:
关闭上述安装终端,在桌面打开一个新的终端,进入conda环境:
source archiconda3/bin/activate
如果无法进入base环境,则需要配置环境变量
配置过程如下:
sudo gedit ~/.bashrc
在打开的文档最后一行添加下面代码:
export PATH=~/archiconda3/bin:$PATH
4.创建运行yolov5的虚拟环境:
进入conda 的base环境后:
conda create -n yolov5_py36 python=3.6 #创建一个python3.6环境
conda info --envs # 查看所有环境
conda activate yolov5_py36 #进入环境
conda deactivate # 退出环境
5.在conda中添加清华源镜像
依次输入以下代码:
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/pkgs/free/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/conda-forge
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/msys2/
conda config --add channels https://mirrors.tuna.tsinghua.edu.cn/anaconda/cloud/pytorch/
添加清华源镜像为默认网址
先安装一下pip:
sudo apt-get update
sudo apt-get upgrade
sudo apt-get dist-upgrade
sudo apt-get install python3-pip libopenblas-base libopenmpi-dev
pip3 install --upgrade pip #如果pip已是最新,可不执行
再添加清华源为默认网址
pip config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple
如果我们在后面安装包报通道错误的时候,我们可以移除清华源镜像,这里提供移除命令,安装好出错的包或环境再重新依次添加上述代码:
查看镜像源命令:conda config --show channels
移除镜像源命令:conda config --remove-key channels
4、安装pytorch和trochvision(最重要的地方)
百度云下载链接:
链接:https://pan.baidu.com/s/11NpLUKKDKbudn_JM6W4aGg
提取码:3rpi
下载完你会看到一个whl文件和torchvision文件,pytorch直接是一个安装包可以直接安装,torchvision是一个文件夹,需要
手动安装。
1.安装pytorch
进入我们的yolov5运行环境
conda activate yolov5_py36
然后找到下载好的torch-1.8.0-cp36-cp36m-linux_aarch64.whl包的所在文件夹,进入文件夹中,输入安装命令:
pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl #注意安装包的位置
2.测试pytorch是否安装成功:
python #进入python编码
输入:
import torch
再输入:
print(torch.__version__)
看到torch的版本号,torch安装成功
3.安装trochvision
进入trochvision文件夹中,
执行命令:
export BUILD_VERSION=0.9.0
然后执行安装命令:
python setup.py install
等待等待,需要比较长时间
4.测试trochvision是否安装成功
进入python编码:
python
执行:
import torchvision
再执行:
print(torchvision.__version__)
看到torchvision版本号,成功。安装到这里就差不多成功了,下面只要进入yolov5文件夹中去就大功告成。
5、搭建YOLOv5环境
还是在我们yolov5_py36环境当中
进入YOLOv5代码文件夹中,这里提供作者这一版本的代码,百度云下载链接:
链接:https://pan.baidu.com/s/1USNqOdzgiHLbfkiaXonjog
提取码:oq81
文件夹中已经放入了yolov5s.pt权重文件,不需要另外下载了。
cd 进入我们的yolov5-maser文件夹
然后执行下面命令来安装其他运行环境:
pip install -r requirements.txt
因为我们前面更换了清华源镜像所以下载速度还是很快的,等待安装完成。
1.测试yolov5
python detect.py --weights yolov5s.pt
等待等待,运行成功如下:
作者还尝试了调用摄像头检测,图像分辨率设在480大小,对每一帧图像的推理速度可达0.09秒左右,比i7系统上纯CPU快上几倍。
6、参考
1.https://blog.csdn.net/carrymingteng/article/details/120978053
2.https://blog.csdn.net/weixin_41275422/article/details/104500683
3.https://qianbin.blog.csdn.net/article/details/103760640
总结
完成部署,踩坑了很多,网上部署教程也很多,作者也是第一次部署这个玩意,也是一个纯小白,其中会出现很多错误,希望各位大佬指正,大家一起学习,一起进步。
后续应该会尝试tensorrtx进行加速推理,以及对轻量级网络的YOLOv3-Tiny的部署。
更多推荐
所有评论(0)