• jetson nx (jetpack4.6)部署 Yolov5 过程记录


    前言
    本文大部分非原创,这篇文章仅代表个人记录。
    一、配置cuda 环境
    烧录 jetpack时已经内置了cuda10.2,但需要配置环境才能调用,打开终端:

    sudo vi ~/.bashrc
    
    • 1

    到达底部,在最后添加:

    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
    
    • 1
    • 2
    • 3

    保存退出并查看是否配置成功,在终端输入:

    source ~/.bashrc
    nvcc -V
    
    • 1
    • 2

    出现以下截图则为正确

    在这里插入图片描述
    二、安装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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    三、安装所需的依赖

    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 curl
    sudo apt-get install libssl-dev libcurl4-openssl-dev
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6

    四、安装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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    五、更新 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
    source ~/.bashrc #更新.bashrc
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7

    如果遇到问题 在cmake 上找不到CURL(缺少: CURL_LIBRARY CURL_INCLUDE_DIR)
    其实就是上面下载安装依赖和库的时候没安装这两项,补上就好了:

    sudo apt-get install curl
    sudo apt-get install libssl-dev libcurl4-openssl-dev
    
    • 1
    • 2

    安装完成,查看安装是否成功:
    在这里插入图片描述

    一个小tips:
    jetson 设备会出现大容量设备无法挂载的情况,一条安装命令解决:

    sudo apt-get install exfat-utils
    
    • 1

    六、安装 pytorh
    失去gpu的开发板算力暴跌!这里的pytorch以及接下来的 torchvision 等包都需要安装 nvidia 官网给出的版本
    注意为啥不使用torch官网给出的命令安装,只要cpu是arm芯片,无论是windows linux maxos都不能使用官网命令!

    下载pytorch1.8 nvidia 官网torch 带cuda 版本的whl文件下载地址
    这个whl文件 在torch 官网是找不到 aarch 版本的,在github上也有 aarch 别的各个版本的 aarch离线whl 文件下载网址,但是这些都不带 cuda,都是cpu 版本。
    下载不好的,可以去下载下面的,借用博主 lamYZD 的链接:

    #BaiDu
    https://pan.baidu.com/s/1Nfm9w1DfE2k_cZQ1zTykMQ 
    提取码:zpsa
    #CSND
    https://download.csdn.net/download/IamYZD/21027946
    
    • 1
    • 2
    • 3
    • 4
    • 5

    把下载好的whl 拷贝到开发板上,sudo pip3 install [name].whl 就行了

    七、安装 torchvision 0.9.0版本
    pytroch 和 torchvision 版本是需要对应的!对应的表格参考以下,更新时间2022年6月30日:
    在这里插入图片描述
    提前安装好依赖:

    sudo apt-get install libopenmpi2
    sudo apt-get install libopenblas-dev
    sudo apt-get install libjpeg-dev zlib1g-dev
    
    • 1
    • 2
    • 3

    然后进行安装:

    cd torchvision
    python3 setup.py install --user
    
    • 1
    • 2

    如果这里出现了 illegal instruction(core dumped)错误
    错误的原因是没有添加系统变量,因为jetson系列开发板的核心架构非常规。
    终端打开:

    sudo vi ~/.bashrc
    
    • 1

    在最底部加上:

    export OPENBLAS_CORETYPE=ARMV8
    
    • 1

    然后:source ~/.bashrc 一下,再进行操作:

    cd torchvision	# 进入到这个包的目录下
    export BUILD_VERSION=0.9.0
    python3 setup.py install --user
    
    • 1
    • 2
    • 3

    可能会自动安装 pillow 9.2.0版本,这时候pillow 的版本过高
    在python3 环境中导入 torchvision 时报错如下:

    SyntaxError: future feature annotations is not defined
    
    • 1

    这时候需要卸载pillow ,pip3 uninstall pillow, 然后重新安装版本8.4.0的就行

    pip3 install pillow==8.4.0
    
    • 1

    检验一下,是否安装成功:

    python3
    import torch
    import torchvision
    print(torch.cuda.is_available())	# 这一步如果输出True那么就成功了!
    exit()	# 最后退出python编译
    
    • 1
    • 2
    • 3
    • 4
    • 5

    如图是正确安装的结果:
    在这里插入图片描述

    八、下载 yolov5-5.0源码
    再借博主 lamYZD 的链接:

    #BaiDu
    https://pan.baidu.com/s/1UGJX7d2sSx04whjbQb3RTA 
    提取码:q0f3
    
    • 1
    • 2
    • 3

    九、安装yolov5 需要的包

    sudo pip3 install matplotlib==3.2.2 -i https://pypi.tuna.tsinghua.edu.cn/simple
    sudo pip3 install --upgrade Cython	#更新一下这个包
    
    • 1
    • 2

    numpy 有些特殊,已经自带了,但是apt-get安装的,所以先卸掉原来的,也方便之后的包管理。

    sudo apt-get remove python-numpy
    sudo pip3 install numpy==1.19.4
    sudo pip3 install scipy==1.4.1.	# 巨慢,二十多分钟好像
    
    • 1
    • 2
    • 3

    然后补上一些包:

    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
    
    • 1
    • 2
    • 3
    • 4
    • 5
    • 6
    • 7
    • 8

    最后
    经过以上配置,不出意外的话各位的jetson nano上已经可以正常跑yolov5了
    在源码的detect.py同目录下

    python3 detect.py
    
    • 1
  • 相关阅读:
    【工作技术栈】【源码解读】一次springboot注入bean失败问题的排查过程
    微信小程序实现左滑删除
    net-java-php-python-网上书店管理系统设计计算机毕业设计程序
    如何将jpg转化为png?
    我的周刊(第055期)
    C++:类的六个默认成员函数
    python venv在linux上激活环境无效,没反应
    女生做测试工程师好还是需求分析师好?
    JS数据算法
    JAVA基础(八)
  • 原文地址:https://blog.csdn.net/tao_292/article/details/126761343