RK-reComputer J2022 (安裝Jetson Xavier NX 16GB運算模組) 使用YOLOv5 進行物件辨識

前言

之前已介紹過 Jetson 平台如何安裝與執行 YOLOv4 物件辨識框架,本文要介紹 YOLOv5 在 RK-reComputer J2022,也就是16GB記憶體的Jetson Xavier NX 的執行效果如何。

撰寫/攝影 郭俊廷
時間 2小時 材料表

 

難度 3(滿分5)

本文

安裝所需套件

首先您才剛安裝好 Jetson 的系統,請先更新系統以及安裝 pip git 等套件,如果是使用 CAVEDU 為您安裝好的RK-reComputer J2022(安裝Jetson Xavier NX 16GB運算模組)套件,則相關內容都已經更新好了,可以直接執行。

本文所用的 RK-reComputer J2022(安裝Jetson Xavier NX 16GB運算模組)是使用Jetpack4.6版本。

以下是系統更新及安裝指令:

sudo apt-get update && sudo apt-get -y upgrade
sudo apt-get install python3-pip
sudo apt-get install git-all -y

接著下載YOLOv5 的Github並移動到資料夾裡面:

git clone https://github.com/ultralytics/yolov5.git
cd ~/yolov5

可以看到 yolov5 目錄裡面有個requirements.txt,那是安裝yolov5所需相關套件的檔案清單。在此要先把一些檔案註解掉不要安裝,否則會出現錯誤無法正常安裝。
opencv已包含在Jetpack裡面,torch 跟 torchvision 在Jetson載板無法使用pip安裝,setuptools 與 wheel 則是不能安裝他指定的版本。

請在該列語法最前面加上 # 字號就可以註解了,以下五個套件請記得前面都加上# 字號註解掉就不會安裝了(如下圖紅框所示)

# opencv-python>=4.1.1
# torch>=1.7.0  # see https://pytorch.org/get-started/locally (recommended)
# torchvision>=0.8.1
# setuptools>=65.5.1 # Snyk vulnerability fix
# wheel>=0.38.0 # Snyk vulnerability fix

安裝缺失的套件

sudo apt install -y libfreetype6-dev

安裝YOLOv5所需套件

pip3 install -r requirements.txt

最後要補安裝PyTorch v1.10.0 以及 Torchvision v0.11.1
以下是 JetPack 4.6 所需要 PyTorch v1.10.0以及Torchvision v0.11.1
PyTorch 所對應的Torchvision版本跟下載點如下:

安裝 PyTorch v1.10.0

PyTorch是一個由Facebook開發的開源深度學習框架,提供了用於構建運算圖的Python API,可以有效地進行梯度計算、最佳化與微分等重要運算。PyTorch 已被廣泛用於深度學習領域的研究和應用。

install pytorch 1.10.0
cd ~
sudo apt-get install -y libopenblas-base libopenmpi-dev
wget https://nvidia.box.com/shared/static/fjtbno0vpo676a25cgvuqc1wty0fkkg6.whl -O torch-1.10.0-cp36-cp36m-linux_aarch64.whl
pip3 install torch-1.10.0-cp36-cp36m-linux_aarch64.whl

安裝完可以使用以下指令查看pytorch版本

check torch version
python3 -c "import torch; print(torch.__version__)"

安裝 torchvision v0.11.1

torchvision 是 PyTorch的一個影像處理與機器視覺函式庫。它提供了各種常用的影像資料集集,包括MNIST、CIFAR-10、ImageNet等,也支援影像預處理和增強,如裁剪、縮放、旋轉、翻轉、顏色調整等。此外,torchvision 還包括一些經典的機器視覺預訓練模型,如AlexNet、ResNet、VGG等,可以快速用於圖像分類、物體檢測、分割等任務。

安裝 torchvision 需要十分鐘左右,請稍等:

install torchvision
sudo apt install -y libjpeg-dev zlib1g-dev
git clone --branch v0.11.1 https://github.com/pytorch/vision torchvision
cd torchvision
sudo python3 setup.py install

查看torchvision版本:

check torchvision version
python3 -c "import torchvision; print(torchvision.__version__)"

都安裝好了就會顯示如下對應的版本。

執行YOLOv5的範例程式

使用 yolo Github 所提供的範例程式 detect.py,範例程式主要會用到的參數如下:

  • --source:圖片、影片目錄或是 0 開啟攝影機
  • --weights:權重,有s、m、l、x之分

接著執行 detect.py,我們先使用官網提供的範例圖片來測試:

移動到 /yolov5 資料夾,接著辨識 /yolov5/data/images/ 中的圖片,可自由換成其他圖片路徑即可。

run yolo to inference single image
cd ~/yolov5
python3 detect.py --source data/images/ --weights weights/yolov5s.pt

最後是用攝影機來做即時辨識的效果,一樣是在 /yolov5 資料夾底下執行以下指令(--source 0 代表使用攝影機編號video 0的攝影機):

run real-time yolo inference
cd ~/yolov5
python3 detect.py --weights yolov5s.pt --source 0

本文介紹到此結束,yolo 作為近年非常熱門的物件辨識框架,不但準確率高而且執行速度相當好。希望大家都順利根據本文說明在您的 Jetson NX 安裝成功喔!

參考資料

 

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *