• 英伟达Jetson xavier agx的GPU部署yolov5


    1、基础环境列表

    Jetpack 4.4
    CUDA 10.2
    python=3.6.9
    这两个版本比较重要,原因是需要装torch要大于1.7版本的,而大于1.7版本的torch需要装Jetpack,
    相关版本,可查看:https://forums.developer.nvidia.com/t/pytorch-for-jetson-version-1-9-0-now-available/72048
    对应版本的.whl下载地址:https://elinux.org/Jetson_Zoo#PyTorch_.28Caffe2.29
    查看方法可以通过jtop然后下面6INFO来看
    jtop安装方式为
    sudo -H pip install jetson-stats

     2、安装venv虚拟环境

    在这里没有使用conda因为我的conda环境出错了,没有找出来问题,
    如果没有问题可以看一下这篇博客:https://blog.csdn.net/qq_40691868/article/details/114379061
    下面安装venv虚拟环境
    $ sudo apt install python3-venv
    在这里说一下venv的使用:
    创建虚拟环境
      $ python3.6 -m venv yolov5venv
    
    进入虚拟环境
      $ source yolov5venv/bin/activate
    
    退出虚拟环境
      $ deactivate 
    
        除了venv和conda还有一种虚拟环境是Virtualenv,
    
     具体安装与使用方法参考:https://blog.csdn.net/u011119817/article/details/109622480

    3、下载和配置yolov5

    3.1、下载yolov5
      $ git clone -b v5.0 https://github.com/ultralytics/yolov5.git
      $ cd yolov5
    3.2、环境配置
      激活虚拟环境
        $ source ~/yolov5venv/bin/activate
        开始安装相关包(首先安装Cython用来源码安装其他的包)
        $ pip install Cython
      
      首先安装matplotlib
        $ pip install matplotlib==3.2.2
        如果安装不成功可以升级一下pip
        $ pip install --upgrade pip
        如果还不成功就源码编译,首先去下载相关版本源码
        搜索matplotlib pypi然后进入,点击左边release history,找到3.2.2然后点击,然后点击左边Download files然后找到最下面,
        下载 matplotlib-3.2.2.tar.gz这个文件,然后解压该文件,进入该文件夹内
        执行下面命令,(--prefix目的是将matplotlib安装到yolov5venv/lib/python3.6/site-packages/文件夹下)
        $ python setup.py install --prefix=~/yolov5venv
        我们可以通过pip list查看是否安装上
        $ pip list
      
      torch和torchvision这两个安装比较复杂
        首先解释torch这个安装的.whl文件在前面已有下载路径,(需要VPN,推荐扩展Hoxx扩展)
        本文下载了torch1.7.0版本的.whl文件,进入下载好的该文件夹下
        $ pip install torch-1.7.0-cp36-cp36m-linux_aarch64.whl

      下面我们开始安装torch1.7.0对应的torchvision,其中torchvision版本为0.8.1,可以通过git下载
        $ git clone --branch v0.8.1 https://github.com/pytorch/vision.git torchvision-0.8.1
        $ cd torchvision-0.8.1
          编译它之前我们需要下载一个OpenBLAS
          $ git clone https://github.com/xianyi/OpenBLAS.git
          $ cd OpenBLAS/
          安装gfortran
          $ sudo apt install gfortran
          编译OpenBLAS
          $ make FC=gfortran
          安装OpenBLAS
          $ sudo make install
          软连接
          $ sudo ln -s /opt/OpenBLAS/lib/libopenblas.so  /usr/lib/libblas.so.3
          $ sudo ln -s /opt/OpenBLAS/lib/liblapack.so.3 /usr/lib/liblapack.so.3
          配置环境变量,在~/.bashrc文件中加入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/OpenBLAS/lib
          $ sudo gedit ~/.bashrc
          $ source ~/.bashrc
          然后退出OpenBLAS文件夹,进入torchvision-0.8.1文件夹,
        输入下面命令,其中python是写python3.6,不然无法在pip list下面看到,也可以输入python然后 import torchvision,如果用python来装就会显示没有安装,其中--prefix是指定文件夹,本文安装后会在yolov5venv/lib/python3.6/site-packages下
        $ python3.6 setup.py install --prefix=~/yolov5venv
        同样,我们可以通过pip list查看是否已经安装了torchvision

      查看是否正确安装torch
        $ python
        >>import torch
        >>
        如果正常就会如上面所示,如果出现了Illegal instruction(core dumped)问题
        解决方式如下
        $ sudo gedit /etc/profile
        在文件后面加入
        export OPENBLAS_CORETPYE=ARMV8
        $ source /etc/profile
        这时可能退出了虚拟环境,然后再次source一下,然后再进入虚拟环境(记住上面的,可以要经常刷新一下,出现这个问题就刷新一下)
      然后就是安装cv相关的
        这里需要拷贝cv2.cpython-36m-aarch64-linux-gnu.so到~/yolov5venv/lib/python3.6/site-packages/文件夹下
        可以进入/usr/local/lib/python3.6/dist-packages文件夹下拷贝也可以通过命令
        $ cp /usr/local/lib/python3.6/dist-packages/cv2.cpython-36m-aarch64-linux-gnu.so ~/yolov5venv/lib/python3.6/site-packages/
        之后就可以通过pip安装其他包就可以了。

     4、运行yolov5

    本文使用的是相机进行更新的,可以通过命令
    $ ls /dev/vi*
    查看是否有video0,然后运行下面命令
    $ python3.6 detect.py --source 0 --weights weights/yolov5s.pt --conf 0.25

    5、总结

    本次的难点总结,其中遇到的问题也奇奇怪怪的,总之终于完成了这次yolov5的GPU版本运行任务
    1. jetpack和cuda和torch和torchvision版本对应关系
    2. opencv的安装
    3. python相关包的搜索下载,最后通过XXX pypi搜索来的最快
    4. 源码编译python的相关包,安装的时候通过--prefix=~/XXX选择安装路径
    5. torch安装,下载的.whl文件无法使用3.7的环境安装
    6. torchvision安装,使用python setup.py install命令无法找到,但是用python3.6可以
    7. /etc/profile文件中加入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/OpenBLAS/lib
    8. 区分venv和virtual虚拟环境区别

    6、参考链接

    【Jetson-Nano】1.基础安装环境配置

    https://blog.csdn.net/u011119817/article/details/109622480

    【Jetson-Nano】2.Tensorflow和Pytorch的安装

    https://blog.csdn.net/u011119817/article/details/109616474#t10

    Jetson AGX Xavier配置yolov5虚拟环境

    https://blog.csdn.net/qq_40691868/article/details/114379061

    Jetson AGX Xavier安装Archiconda虚拟环境管理器与在虚拟环境中调用opencv

    https://blog.csdn.net/qq_40691868/article/details/114362278

    OpenBLAS安装

    https://blog.csdn.net/mywmy/article/details/96993537

  • 相关阅读:
    文字对战小游戏~~~
    面向对象--类库、委托、is和as运算符、泛型集合
    推箱子
    算法训练 K好数
    用memset设置无穷大无穷小
    算法训练 关联矩阵
    未名湖边的烦恼
    数字三角形
    算法训练 最大最小公倍数
    算法训练 区间k大数查询
  • 原文地址:https://www.cnblogs.com/stacso/p/15130329.html
Copyright © 2020-2023  润新知