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版本運行任務
- jetpack和cuda和torch和torchvision版本對應關系
- opencv的安裝
- python相關包的搜索下載,最后通過XXX pypi搜索來的最快
- 源碼編譯python的相關包,安裝的時候通過--prefix=~/XXX選擇安裝路徑
- torch安裝,下載的.whl文件無法使用3.7的環境安裝
- torchvision安裝,使用python setup.py install命令無法找到,但是用python3.6可以
- /etc/profile文件中加入export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/opt/OpenBLAS/lib
- 區分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