jetson nano 部署yolov5s
一、配置系统(列出来了步骤,详细内容网上很多)
下载系统
SD卡格式化
把下载的系统烧录进SD卡
插卡开机,进行一些初始化设计
我的系统是ubuntu 18.4 cuda 10.2 python是nano自带的3.6
二、使用官网的镜像,没有更换源,配置环境
1.更新系统和包
sudo apt-get update
sudo apt-get upgrade或sudo apt-get full-upgrade
可能报错:nvidia-l4t-bootloader的错误
解决办法:参照 jetson nano 部署yolov5s(从配置环境到推理) 2.安装pip3
sudo apt-get install python3-pip python3-dev -y
3.安装jtop,可以在终端查看自己电脑cpu和gpu情况
sudo -H pip3 install jetson-stats
sudo jtop
三、修改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
或sudo jtop
可查看到swap已经变为7.7G
四、配置cuda
我们下载完系统,是自带cuda的,但需要配置环境变量才能使用,打开命令行添加环境变量即可,我这里是cuda10.2如果不是使用我的镜像就需要根据自己的cuda版本去填写路径了
输入命令
gedit ~/.bashrc
在最下面添加,并保存
export PATH=/usr/local/cuda-10.2/bin${PATH:+:${PATH}}
export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64${LD_LIBRARY_PATH:+:${LD_LIBRARY_PATH}}
export CUDA_ROOT=/usr/local/cuda
输入命令进行应用
source ~/.bashrc
可以在终端输入nvcc - V ,就可以成功看到自己的cuda版本了
五.配置所需要的库(配置就完了,少配置了后面安装包会出错)
sudo apt-get install build-essential make cmake cmake-curses-gui -y
sudo apt-get install git g++ pkg-config curl -y
sudo apt-get install libatlas-base-dev gfortran libcanberra-gtk-module libcanberra-gtk3-module -y
sudo apt-get install libhdf5-serial-dev hdf5-tools -y
sudo apt-get install nano locate screen -y
sudo apt-get install libfreetype6-dev -y
sudo apt-get install protobuf-compiler libprotobuf-dev openssl -y
sudo apt-get install libssl-dev libcurl4-openssl-dev -y
sudo apt-get install cython3 -y
sudo apt-get install gfortran -y
sudo apt-get install libjpeg-dev -y
sudo apt-get install libopenmpi2 -y
sudo apt-get install libopenblas-dev -y
sudo apt-get install libjpeg-dev zlib1g-dev -y
安装opencv所需要的支持包
sudo apt-get install build-essential -y
sudo apt-get install cmake git libgtk2.0-dev pkg-config libavcodec-dev libavformat-dev libswscale-dev -y
sudo apt-get install python-dev python-numpy libtbb2 libtbb-dev libjpeg-dev libpng-dev libtiff5-dev libdc1394-22-dev -y
sudo apt-get install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev liblapacke-dev -y
sudo apt-get install libxvidcore-dev libx264-dev -y
sudo apt-get install libatlas-base-dev gfortran -y
sudo apt-get install ffmpeg -y
更新cmke,这一步是必须的,因为arm架构的很多东西都要从源码编译
wget http://www.cmake.org/files/v3.13/cmake-3.13.0.tar.gz
tar xpvf cmake-3.13.0.tar.gz cmake-3.13.0/ #解压
cd cmake-3.13.0/
./bootstrap --system-curl # 漫长的等待,做一套眼保健操...
make -j4 #编译 同样是漫长的等待...
echo 'export PATH=~/cmake-3.13.0/bin/:$PATH' >> ~/.bashrc
source ~/.bashrc #更新.bashrc
解决大容量U盘兼容的问题
之后的步骤可能需要使用U盘把文件拷入开发板,但是对于大容量设备可能会出现无法挂载,一条安装命令解决
sudo apt-get install exfat-utils
六、配置yolov5所需环境
1.安装torch和torchvision
我所配置的是1.8的torch和0.9的torchvision
文件我已经上传在下面链接,其中torch是编译好的直接安装就行了,torchvision需要我们编译一下
链接:https://pan.baidu.com/s/1cGS-gYdnEvT-9M0ve3hacg
提取码:01F6
下载好之后把里面的torch和torchvision文件夹弄到nano中
先在PC端下载torch,然后用U盘COPY到Nano中,再安装,见下
sudo pip3 install 把torch.whl拖到终端中
安装需要略漫长的等待…
2、然后对于torchvision这里没有现成的要编译
cd torchvision # 进入到这个包的目录下
export BUILD_VERSION=0.9.0
sudo python3 setup.py install # 安装(估计要20分钟不止吧)
3、检查一下我们的这俩东西下载好没
python3
import torch
import torchvision
print(torch.cuda.is_available()) # 这一步如果输出True那么就成功了!
quit() # 最后退出python编译
4、破坑指南
可能的错误,主要是依赖包问题,我在安装时并未遇到,应该是之前手动安装了包。
①import torchvision 出错,错误如下
原因:缺少pillow包
解决方法:sudo pip3 install pillow
②but我安装pillow报错
Command"/usr/bin/python3-u-c"importsetuptools,tokenize;__file__='/tmp/pip-build-pj404zn8/pillow/setup.py';f=getattr(tokenize,'open',open)(__file__);code=f.read().replace('\r\n','\n');f.close();exec(compile(code,__file__,'exec'))"install--record/tmp/pip-ch8hv_jb-record/install-record.txt--single-version-externally-managed--compile"failedwitherrorcode1in/tmp/pip-build-pj404zn8/pillow/
安装pillow时报错,
原因:缺少支持包
解决方法:安装支持包sudo apt-get install libjpeg-dev
5.安装剩下支持yolov5的requirement.txt中所需要的包
sudo pip3 install matplotlib==3.2.2
sudo pip3 install --upgrade Cython #更新一下这个包
sudo apt-get remove python-numpy
sudo pip3 install numpy==1.19.4
sudo pip3 install scipy==1.4.1. # 这个包安装巨慢,耐心等待
sudo pip3 install tqdm==4.61.2
sudo pip3 install seaborn==0.11.1
sudo pip3 install scikit-build==0.11.1 # 安装opencv需要这个包
sudo pip3 install opencv-python==4.5.3.56 # 不出意外也是一个相当漫长的过程
sudo pip3 install tensorboard==2.5.0 -i https://pypi.tuna.tsinghua.edu.cn/simple #这个用源的下载速度很快
sudo pip3 install --upgrade PyYAML # 我升级到了5.4.1 也可以sudo pip3 install PyYAML==5.4.1
sudo pip3 install thop
sudo pip3 install pycocotools
安装以上包的时候有的会很慢,不要以为是卡着了,其实实在努力安装中,耐心等待。
接下来就进行yolov5的测试,去github下载yolov5源码。
依旧是传输到nano板子上,进入目录运行detect.py。
减小内存损耗
关闭用户图形界面。
sudo systemctl set-default multi-user.target
sudo reboot
开启用户图形界面。
sudo systemctl set-default graphical.target
sudo reboot