当前位置:   article > 正文

Jetson nano部署Yolov5目标检测 + Tensor RT加速(超级详细版)_jetson nano yolov5

jetson nano yolov5

        一、准备工具

  二、烧录

        三、搭配环境

        四、试跑Yolov5

        五、tensorRT部署yolov5


前言:

在工作或学习中我们需要进行部署,下面这篇文章是我亲自部署jetson nano之后做出的总结,包括自己遇到一些报错和踩坑,希望对你们有所帮助 : )

一、准备工具

  1. 读卡器
  2. SD卡 
  3. 小螺丝刀
  4. 网线(更改语言需要网络)

二、烧录

烧录镜像就是要把SD卡里的东西给完全清除,好比我们电脑重装系统一样,把SD卡格式化。

 插上读卡器后会自动识别U盘,我的电脑会识别很多,弹出很多个U盘选项,这个是正常现象,只格式化一个就可以了。

1. 在本地的电脑上下载烧录的镜像,可以去官网自行下载,下载的时候需要看好版本,不然会出问题,我下载的版本是4.4.1,下载的网址如下:

  JetPack SDK 4.4.1 archive | NVIDIA Developer

2. 下载好之后进行解压:

3. 然后我们需要下载烧录SD卡的工具,网址如下:

Get Started With Jetson Nano Developer Kit | NVIDIA Developer

下载完之后是一个.exe可执行文件,运行安装就可以了。

4. 开始烧录镜像

运行上面下载好的Etcher之后是这样的,选择完镜像之后会自动识别SD卡,让后点击flash

 这个是正在烧录的界面,会自动烧录2遍(大约20分钟左右)

5.烧录完成,弹出读卡器,插卡开机。

6.开机之后,简单设置一下(密码、地区、时间),然后会就是和我们本地电脑Ubuntu界面差不多。

三、搭配环境

1.  配置CUDA

首先打开终端(ctrl+alt+t),输入以下命令:

sudo gedit ~/.bashrc

输入密码后进入文档:

鼠标滚轮滚到文档最下面,输入下面命令,然后按ctrl+s保存:

  1. export CUDA_HOME=/usr/local/cuda-10.2
  2. export LD_LIBRARY_PATH=/usr/local/cuda-10.2/lib64:$LD_LIBRARY_PATH
  3. export PATH=/usr/local/cuda-10.2/bin:$PATH

验证CUDA是否安装配置成功 :

nvcc -V

出现这个就证明配置成功了

 *报错*

我输出之后会出现读取异常,或者不允许保存的提示,然后运行nvcc -V的时候显示命令不可执行,这个多输入几次或者关闭终端再输入几次命令

2.  配置conda

jetson nanoB01的架构是aarch64,与windows和liunx不同不同,所以不能安装Anaconda,可以安装一个替代它的archiconda。

在终端输入以下下载命令:

wget https://github.com/Archiconda/build-tools/releases/download/0.2.3/Archiconda3-0.2.3-Linux-aarch64.sh

下载成功。 

* 报错*

遇到下载一半或者下载到99%之后报错的问题。

这个问题是因为堆栈小的原因,改一下堆栈大小就可以了。

先查一以下自己的系统堆栈大小,用这个命令:

ulimit -a

stack size是堆栈的大小,我原来是8192,需要改成102400

 

直接用代码 ulimit -s 102400 修改,改完之后:

下载好之后运行这个命令:

bash Archiconda3-0.2.3-Linux-aarch64.sh

接下来就是傻瓜式的安装:

安装完之后配置环境变量: 

sudo gedit ~/.bashrc

在最初打开的文档里的最后一行加上这个命令: 

export PATH=~/archiconda3/bin:$PATH

查看conda的版本号:

conda -V

3. 创建你自己的虚拟环境:

  1. conda create -n xxx(虚拟环境名) python=3.6 #创建一个python3.6的虚拟环境
  2. conda activate xxx #进入虚拟环境
  3. conda deactivate #(退出虚拟环境)

4. 换源

首先需要备份一下sources.list文件,执行后终端没有响应

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

进入sources.list内部

sudo gedit /etc/apt/sources.list

进入之后,ctrl+a删除所有内容,之后将以下内容复制进去保存退出。

  1. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
  2. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
  3. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
  4. deb http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe
  5. deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic main multiverse restricted universe
  6. deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-security main multiverse restricted universe
  7. deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-updates main multiverse restricted universe
  8. deb-src http://mirrors.tuna.tsinghua.edu.cn/ubuntu-ports/ bionic-backports main multiverse restricted universe

 然后更新软件列表,保存到本地:

sudo apt-get update

 更新软件:

sudo apt-get upgrade

升级所有的安装包,并解决依赖关系

sudo apt-get dist-upgrade

5. 安装pip

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev

更新pip到最新版本

pip3 install --upgrade pip		#如果pip已是最新,可不执行

 6. 下载torch和torchvision

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

PyTorch for Jetson - version 1.10 now available - Jetson Nano - NVIDIA Developer Forums

下载好后,这里推荐一个工具(MobaXterm)用于连接板子进行互传,当然你也可以直接下载到U盘,用U盘实现互传。

具体操作可以看这个博主的博客:MobaXterm(终端工具)下载&安装&使用教程_蜗牛也不慢......的博客-CSDN博客

连接成功后把可以在本地下载的东西解压后,传过去,建议传到home目录下。
 

7. 安装torch

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

sudo apt-get install python3-pip libopenblas-base libopenmpi-dev 

pip install torch-1.8.0-cp36-cp36m-linux_aarch64.whl

 如果遇到网络问题下载不了,就在第二个命令下载后面加上清华下载镜像:

-i https://pypi.tuna.tsinghua.edu.cn/simple

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

sudo apt install python3-numpy

 测试torch是否安装成功:

  1. import torch
  2. print(torch.__version__)

*报错*

在测试torch是否安装成功时报错:非法指令(核心已转储)

export OPENBLAS_CORETYPE=ARMV8

8. 安装torchvision,逐个执行以下命令(如果执行第三个命令报错,继续执行第四第五行命令,如果不报错就直接cd ..)

  1. cd torchvision
  2. export BUILD_VERSION=0.9.0
  3. sudo python setup.py install
  4. python setup.py build
  5. python setup.py install
  6. cd .. #(中间有个空格)

*报错*

在测试时如果报错PIL,就安装pillow,命令如下(在第二步如果报权限错误,就在开头加sudo,或在结尾加--user)

  1. sudo apt-get install libjpeg8 libjpeg62-dev libfreetype6 libfreetype6-dev
  2. python3 -m pip install -i https://mirrors.aliyun.com/pypi/simple pillow

  

 到这里为止环境就全部搭建完毕了,下面开始部署Yolo5。

 四、试跑Yolov5

1. 去官网上下载需要的版本,我这里下载的是5.0版本,下载的时候要把对应的权重也要下载。网址如下:

ultralytics/yolov5 at v5.0 (github.com)

在这里选择版本:

权重网址如下:

Releases · ultralytics/yolov5 (github.com)

2. 下载完或者使用工具将yolo5和权重文件拖到主目录之后,使用cd进入yolo5文件目录下,在终端下载依赖项:

pip install -r requirements.txt -i https://pypi.tuna.tsinghua.edu.cn/simple

 *报错*

遇到下面的问题是因为numpy版本过高导致的,降低以下版本就可以了。

把版本降低到1.19.4:

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

 解决完报错之后,在运行上面的命令,会自动下载需要的安装包,其他的都是很快的,但是到opencv的时候需要花费很长很长很长很长的时间......,当安装opencv时会出现Building wheel for opencv-python (pyroject.toml)...  这种情况正常现象,是opencv在编译,继续等就可以了,我编译了2个多小时...

3. 经过N长时间的等待,安装好所有依赖包后,将权重文件拖到yolov5文件夹根目录下,在yolov5的根目录下打开终端,执行以下命令:

python3 detect.py --weights yolov5s.pt 

测试一下是没问题的,接下来我们开始部署yolov5。

五、tensorRT部署yolov5

1. tensorRT官网下载yolov5,网址如下,确定下载是v5.0版本:

mirrors / wang-xinyu / tensorrtx · GitCode

mirrors / wang-xinyu / tensorrtx · GitCodeImplementation of popular deep learning networks with TensorRT network definition API 本文内容由网友自发贡献,转载请注明出处:https://www.wpsshop.cn/article/detail/42105

推荐阅读
相关标签