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的部署。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐