Bootstrap

jetson nano配置yolov5(超详细)

前言:本文是本人经过无数踩坑之后做出的总结

一、需要的工具

1、SD卡:推荐使用闪迪或者金士顿的SD卡,使用其他牌子的SD卡在使用时可能会造成系统崩溃。

2、读卡器:使用电脑烧录镜像时使用

3、网线:假如板子不带网卡就需要使用网线联网。

二、镜像烧录

首先需要对SD卡进行格式化,

1、下载镜像文件:

Jetson Download Center | NVIDIA Developer

选择需要的镜像文件,由于采用SD卡烧录镜像,所以需要下载名称中带SD Card的镜像文件,我这里下载的是这个:

点击即可下载。

2、下载烧录软件:

balenaEtcher - Flash OS images to SD cards & USB drives

具体版本根据自己电脑的系统下载,我使用的是Windows系统,下载的版本为:

3、烧录文件

打开安装好的软件,选择下载的镜像文件进行烧录:

烧录成功后电脑无法查看SD卡是正常现象。

4、将SD卡插入jetson nano的卡槽即可开机,然后自行配置ubuntu系统即可。

三、环境配置

1、换源

系统默认源为ubuntu,更新下载速度奇慢,需要更新为国内源。

首先需要备份一下然后打开源文件:

sudo cp /etc/apt/sources.list /etc/apt/sources.list.bak
sudo gedit /etc/apt/sources.list

删除里面全部内容,替换为:

deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe

保存并关闭窗口,更新软件包:

sudo apt-get update
sudo apt-get upgrade

2、配置CUDA环境

jetson nano中已经内置好了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

保存,查看是否配置成功。

nvcc -V

输出这些就表示配置成功了:

3、安装U盘挂载:

大容量设备可能会出现无法挂载,使用此命令后可使用U盘拷贝文件。

sudo apt-get install exfat-utils

4、配置conda

jetson nano的架构是aarch64,与windows和liunx不同不同,所以不能安装Anaconda、Miniconda和anconda,可以安装一个替代它的Archiconda。

下载网址:https://github.com/Archiconda/build-tools/releases

打开下载archiconda包的文件夹位置,使用终端cd进行这个文件夹,然后执行:

sudo apt-get install Archiconda3-0.2.3-Linux-aarch64.sh

若是使用上面指令报错则采用:

bash Archiconda3-0.2.3-Linux-aarch64.sh

安装时一直按enter键默认安装即可。

执行完上述指令后需要添加进环境变量:

sudo gedit ~/.bashrc

在文档最后一行后面添加:

export PATH=~/archiconda3/bin:$PATH

输入以下指令创建虚拟环境:

conda create -n  yolov5 python=3.6 #创建一个python3.6环境

在虚拟环境中输入以下指令添加国内源:

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 config set global.index-url https://pypi.tuna.tsinghua.edu.cn/simple

5、安装pytorch和torchvision

1、安装pytorch

去英伟达官网下载所需版本,我这里是1.8.0,网址如下:

PyTorch for Jetson - Jetson & Embedded Systems / Announcements - NVIDIA Developer Forums

由于jetson nano板使用的是ubuntu18.04,只能安装JetPack 4以下的pytorch包,采用JetPack 5以上的包会造成兼容性错误。

点击即可自动下载,若是下载不能进行,则需使用科学上网进行下载。

下载完成后在torchvision文件夹的目录下右键,进入终端,然后进入你创建的虚拟环境,输入以下命令:

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev 
pip install torch-1.8.0-cp36-cp36m-linux_aarch64.whl

安装torch时,一定要安装numpy,不然的话显示你安装torch成功,但是你conda list是找不到的。

sudo apt install python3-numpy

输入

export OPENBLAS_CORETYPE=ARMV8

输入python,进入python环境,在python环境下输入下方代码查看是否安装成功

import torch 
print(torch.__version__)

2、安装torchvision

torchvision的版本需要和pytorch版本对应。

torchvision包已放到百度网盘链接:

链接:https://pan.baidu.com/s/1KToQaGkuozp6LtHPaS48zg?pwd=ucg0 
提取码:ucg0

将包下载到板子上,使用终端进入该包,输入:

sudo apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev
python3 -m pip install -i https://mirrors.aliyun.com/pypi/simple pillow
export BUILD_VERSION=0.9.0
python setup.py install

以上便是pytorch安装全部步骤了。

四、安装yolov5

1、去官网上下载需要的版本

网址:ultralytics/yolov5 at v6.0 (github.com)

注:由于yolov5-6.1及以上版本已不再支持python3.6,而jetson nano的pytorch包最高支持版本为python3.6,所以只能下载6.0及以下版本,否则会出现报错。

点击左上角选择版本:

下载权重:Releases · ultralytics/yolov5 (github.com)

选择对应版本,我使用的是yolov5-6.0:

下载完后放入下载的yolo包里面。之后再进行依赖下载:

首先将numpy版本降低:

pip install numpy==1.19.4 -i https://pypi.tuna.tsinghua.edu.cn/simple

使用终端打开下载的yolov5包,输入:

pip install -r requirements.txt

等待依赖安装完成即可。

2、测试

输入

python3 detect.py

可以看到结果输出到了runs/detect/exp中,打开文件夹可查看结果:

五、jetson nano远程连接

使用ssh远程连接可以更方便的进行配置。

首先在jetson nano中下载putty配置,输入ifconfig查看ip地址,对于有线网络,我们查看eth0下面的IP地址;对于无线网卡,我们查看wlan0下面的IP地址。

;