Nvidia jetson nano 部署yolov5_技术文档
每天一句小姜格言:我行,我不是一般人儿
部署开始:
1、通过FileZilla,将window文件传输至jetson nano 上的nano文件夹下。
2、查看cuda
我买的jetson nano是带有配置好的镜像。系统配置如下
查看cuda指令
nvcc -V
可能会报错, nvcc:command not found
解决办法:
cd /usr/local/cuda/bin
vi ~/.bashrc
#添加代码,保存并退出
export PATH=“/usr/local/cuda/bin/usr/local/cuda/bin:$PATH”
source ~/.bashrc
再次运行 nvcc -V,应该就可以出结果了
3、配置环境
我的 yolov5 文件夹路径 /home/nano/yolov5/
在yolov5文件夹下,执行以下操作:
#安装requirement.txt文件里的依赖包
sudo pip install -r requirement.txt
#如果不能直接安装的话,就一个一个安装
sudo pip install xxx
环境安装后,python3 detect.py可以运行
but but but 不是GPU加载,而是CPU,这是由于torch的版本不对,yolov5中torch>=1.7.0,所以换成高版本的就可以了
这里真的要科普一下,arm架构和x86架构
(1)本质区别:X86使用CISC(Complex Instruction Set Computer,复杂指令集计算机),ARM使用RISC(Reduced Instruction Set Computer,精简指令集计算机),ARM英文全称Advanced RISC Machine。
(2)各自追求:X86追求性能最优,缺点是功耗大,不节能(和ARM对比);ARM追求低功耗(节能),缺点是采用精简指令集,导致编译器处理复杂,因此性能相对X86差。
(3)应用领域:X86主要是PC机(Intel、AMD),X86服务器;ARM主要是应用于移动设备(手机、平板电脑等嵌入式领域)。
(4)典型代表:X86结构主要是Intel、AMD等PC电脑;ARM主要是移动终端,IBM的Power PC。
源自:
【架构知多少】谈谈X86架构与ARM架构区别
针对arm架构的jetson ,nvidia官网有对应的torch 文件,需要翻墙,挺难下载的,官网地址
我下载的版本是torch-1.8.0
接着是torchvision-0.9.0,直接使用指令安装
我的安装代码
#这里注意一下,zlib1g-dev这个包,可能会出现 Unable to locate package zlib1g-dev
#出现这个报错,先看看你的字母写错没有,第一个是字母 l ,第二个是数字 1$ sudo apt-get install libjpeg-dev zlib1g-dev libpython3-dev libavcodec-dev libavformat-dev libswscale-dev
$ git clone --branch v0.9.0 https://github.com/pytorch/vision torchvision # see below for version of torchvision to download
$ cd torchvision
$ export BUILD_VERSION=0.x.0 # where 0.x.0 is the torchvision version
$ python3 setup.py install --user
$ cd …/
$ pip install ‘pillow<7’
安装torchvision这个包可能还会出现另一个报错
OSError: libmpi_cxx.so.20: cannot open shared object file: No such file or directory
解决办法,登录https://pkgs.org/网址,搜索libmpi_cxx.so.20
一直往下滑,直到找到 Install How to
sudo apt-get update
sudo apt-get install libopenmpi2