许可优化
许可优化
产品
产品
解决方案
解决方案
服务支持
服务支持
关于
关于
软件库
当前位置:服务支持 >  软件文章 >  Jetson Xavier NX上部署YOLOv5目标检测

Jetson Xavier NX上部署YOLOv5目标检测

阅读数 4
点赞 0
article_banner

大部分过程非原创,写这篇文章主要是因为设备不同出的问题也各不相同,需要到处去找解决方法,因此我把配置过程中遇到的全部问题以及解决方法记录在此。

注:该博客原文来自Jetson nano/NX 部署Yolo v5过程记录

一、配置cuda环境

烧录Jetpack时已经内置好了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

保存退出并查看cuda是否配置成功

   终端依次输入:

source ~/.bashrc
nvcc -V

输出以下即可:
在这里插入图片描述

二、安装pip3并配置需要的库

sudo apt-get update
sudo apt-get install python3-pip python3-dev -y
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

四、安装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

五、更新CMake

这一步是必须的,因为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

更新.bashrc:

source ~/.bashrc

我遇到的问题:

   在CMake上找不到CURL(缺少:CURL_LIBRARY CURL_INCLUDE_DIR)

   其实是前面下载依赖和库的时候少了下面这些,补上就好了:

sudo apt-get install curl
sudo apt-get install libssl-dev libcurl4-openssl-dev
一个小提示: Jetson设备会出现大容量设备无法挂载的情况,一条安装命令解决
sudo apt-get install exfat-utils

六、安装pytorch

失去显卡的开发板算力暴跌!这里的pytorch以及接下来的torchvision等包都需要安装Nvidia官网给出的版本

1.下载pytorch1.8

https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-9-0-now-available/72048

或借用博主:IamYZD的链接:

#BaiDu

  https://pan.baidu.com/s/1Nfm9w1DfE2k_cZQ1zTykMQ

   提取码:zpsa

#CSND

  https://download.csdn.net/download/IamYZD/21027946

2.安装pytorch1.8

进入pytorch-torchvison,在里面执行

sudo pip3 install torch-1.8.0-cp36-cp36m-linux_aarch64.whl

七、安装torchvision 0.9.0版本

注:pytorch和torchvision版本是需要对应的!

1.提前打上我们需要的依赖(是我踩过的大坑没错了)
sudo apt-get install libopenmpi2
sudo apt-get install libopenblas-dev
sudo apt-get install libjpeg-dev zlib1g-dev
2.安装
这里我按照其他教程执行“python3 setup.py install”出现了illegal instruction(core dumped)的错误。 错误原因是没有添加系统变量因为jetson系列板块核心架构非常规。

终端打开:

gedit ~/.bashrc

将下面这段加到最底部:

export OPENBLAS_CORETYPE=ARMV8

退出并更新:

source ~/.bashrc

进入到torchvision这个包:

cd torchvision	

执行:

export BUILD_VERSION=0.9.0
python3 setup.py install --user
3.检验一下是否成功安装
python3
import torch
import torchvision
print(torch.cuda.is_available())	  # 这一步如果输出True那么就成功了!
quit()	                              # 最后退出python编译

注:若出现跟pillow有关的错误,应该是当前版本过高

   可执行卸载命令 (慎重)

pip3 uninstall pillow

重新安装需要的版本

sudo pip3 install pillow==8.4.0

八、下载 yolov5 -5.0源码

再借博主:IamYZD的链接:

#BaiDu

  https://pan.baidu.com/s/1UGJX7d2sSx04whjbQb3RTA

   提取码:q0f3

九、安装yolov5需要的包

sudo pip3 install matplotlib==3.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
sudo pip3 install --upgrade Cython	                            #更新一下这个包
numpy有些特殊,已经自带了,但是是apt-get安装的,所以先卸掉原来的,也方便之后包的管理
sudo apt-get remove python-numpy
sudo pip3 install numpy==1.19.4
sudo pip3 install scipy==1.4.1.	     # 巨慢,二十多分钟好像
这之后的一些包我在安装时都没有指定版本,这里的指令是根据之后pip3 list补上的(需执行) 安装以下时间会很长,耐心等
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

注:若出现protobuf requires Python ‘>=3.7‘ but the running Python is 3.6.9的情况, 执行

python3 -m pip install --upgrade pip 

或者

python -m pip install --upgrade pip 

最后

经过以上配置,不出意外的话各位的Jetson Xavier NX  上已经可以正常跑yolov5了

   在源码的detect.py同目录下

python3 detect.py

免责声明:本文系网络转载或改编,未找到原创作者,版权归原作者所有。如涉及版权,请联系删


相关文章
技术文档
QR Code
微信扫一扫,欢迎咨询~
customer

online

联系我们
武汉格发信息技术有限公司
湖北省武汉市经开区科技园西路6号103孵化器
电话:155-2731-8020 座机:027-59821821
邮件:tanzw@gofarlic.com
Copyright © 2023 Gofarsoft Co.,Ltd. 保留所有权利
遇到许可问题?该如何解决!?
评估许可证实际采购量? 
不清楚软件许可证使用数据? 
收到软件厂商律师函!?  
想要少购买点许可证,节省费用? 
收到软件厂商侵权通告!?  
有正版license,但许可证不够用,需要新购? 
联系方式 board-phone 155-2731-8020
close1
预留信息,一起解决您的问题
* 姓名:
* 手机:

* 公司名称:

姓名不为空

姓名不为空

姓名不为空
手机不正确

手机不正确

手机不正确
公司不为空

公司不为空

公司不为空