jetson|yolov5 部署jetson nano(通用) 保姆级教学

Jetson nano从配置环境到yolov5成功推理检测全过程
文章目录

    • Jetson nano从配置环境到yolov5成功推理检测全过程
  • 一、烧录镜像
  • 二、配置环境并成功推理
    • 1.更新系统和包
    • 2、配置环境
      • 2.1 配置CUDA
      • 2.2 修改Nano板的显存
        • 1.打开终端输入:
        • 2.修改nvzramconfig.sh文件:
        • 3.重启:
        • 4.终端输入:
    • 3、安装archiconda(也就是jetson nano板上的anaconda)
        • 1.下载地址:
        • 2.安装:
        • 3.测试conda:
        • 4.创建运行yolov5的虚拟环境:
        • 5.在conda中添加清华源镜像
    • 4、安装pytorch和trochvision(最重要的地方)
        • 1.安装pytorch
        • 2.测试pytorch是否安装成功:
        • 3.安装trochvision
        • 4.测试trochvision是否安装成功
    • 5、搭建YOLOv5环境
        • 1.测试yolov5
    • 6、参考
  • 总结

一、烧录镜像 官网的官方镜像下载地址:https://developer.nvidia.com/embedded/downloads
不一定能下载的下来,所以我提供了百度云链接下载,下载地址如下:
链接:https://pan.baidu.com/s/1njWhDqNquyUqnDRCp31y8w
提取码:6qqh
1.需要下载两个烧录的配置软件,这里推荐下面两个软件,一个软件是格式化SD卡(SD卡推荐至少64G),一个是烧录软件
1.1 SD Card Formatter:格式化SD卡(格式化完再烧录镜像)
jetson|yolov5 部署jetson nano(通用) 保姆级教学
文章图片

1.2 Win32 Diskimg:把镜像写入SD卡中 (一定要把下载好的镜像解压,看到.img文件就可以按照下面步骤进行烧录镜像,可能需要半个小时)
jetson|yolov5 部署jetson nano(通用) 保姆级教学
文章图片

jetson|yolov5 部署jetson nano(通用) 保姆级教学
文章图片

(忽略俩张图片英文和中文的不同,按照上述步骤烧录即可)
二、配置环境并成功推理 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
jetson|yolov5 部署jetson nano(通用) 保姆级教学
文章图片

2.安装: 找到你下载archiconda包的文件夹位置,打开的终端要在你这个文件夹内,或者cd进行这个文件夹,然后执行:
sudo apt-get install Archiconda3-0.2.3-Linux-aarch64.sh

安装的时候需要一直确定,按enter,全部默认即可,可能需要一点时间
3.测试conda: 关闭上述安装终端,在桌面打开一个新的终端,进入conda环境:
source archiconda3/bin/activate

如果无法进入base环境,则需要配置环境变量
配置过程如下:
sudo vim ~/.bashrc

在打开的文档最后一行添加下面代码:
export PATH=~/archiconda3/bin:$PATH

4.创建运行yolov5的虚拟环境: 进入conda 的base环境后:
conda create -nyolov5_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/

添加清华源镜像为默认网址
【jetson|yolov5 部署jetson nano(通用) 保姆级教学】先安装一下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的部署。

    推荐阅读