英偉達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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM