2024年8月14日 星期三

[Raspberry Pi]如何在Ubuntu的python venv虛擬環境中,運行YOLOv5 物件辨識功能?

延續<[Python]如何在Ubuntu中建置python venv虛擬環境,並安裝TensorFlow和OpenCV函式庫?>文章,當建置 TensorFlow (2.10.0) 和 OpenCV (4.9.0) 的 Python 虛擬環境後,接續進一步安裝 YOLOv5 的相關套件,並在 Raspberry Pi 4B 上完成物件辨識功能,步驟如下。

1. Update and upgrade

sudo apt update 
sudo apt upgrade

2.安裝YOLO視覺相關安裝依賴包

sudo apt install build-essential cmake pkg-config 
sudo apt install libjpeg-dev libtiff5-dev libpng-dev 
sudo apt install libavcodec-dev libavformat-dev libswscale-dev libv4l-dev 
sudo apt install libxvidcore-dev libx264-dev 
sudo apt install libgtk-3-dev sudo apt install libatlas-base-dev gfortran 
sudo apt install python3-dev

安裝依賴包的說明如下:

- build-essential: 包含了一些用於編譯 C/C++ 軟體包的基本工具(如 gcc, g++, make)。
- cmake: 一個跨平台的編譯器,能自動產生用於建置、測試和打包軟體的腳本。
- pkg-config: 一個用來管理編譯時所需的函式庫路徑的工具。
- libjpeg-dev: 支援 JPEG 影像格式的開發庫。
- libtiff5-dev: 支援 TIFF 影像格式的開發庫。
- libjasper-dev: 支援 JPEG-2000 影像格式的開發庫。
- libpng-dev: 支援 PNG 映像格式的開發庫。
- libavcodec-dev: 包含音視頻編解碼庫,來自 FFmpeg。
- libavformat-dev: 支援不同格式的音視頻容器檔案。
- libswscale-dev: 用於視訊縮放和格式轉換。
- libv4l-dev: 視訊擷取庫,用於支援攝影機等視訊裝置。
- libxvidcore-dev: Xvid 影片編解碼庫的開發庫。
- libx264-dev: H.264/MPEG-4 AVC 視訊編碼庫的開發庫。
- libgtk-3-dev: GTK+ 3 圖形使用者介面庫的開發文件,用於影像介面的顯示。
- libatlas-base-dev: 用於線性代數運算的 ATLAS 函式庫。
- gfortran: GNU Fortran 編譯器,用於科學計算函式庫的編譯。
- python3-dev: Python 開發頭檔和函式庫,用於編譯需要與 Python 進行介面的 C 擴充模組。

3.安裝PyTorch和YOLOv5

利用source指令進入已建立的python 虛擬環境(以本文為例,即為tensorflow_env),並在該虛擬環境中安裝PyTorch和YOLOv5,如此一來,可運行YOLOv5的獨立虛擬環境就被建立完成了。 
 
source tensorflow_env/bin/activate 
#Install PyTorch and other necessary Python packages 
pip install torch torchvision
# Clone the YOLOv5 repository and install requirements 
git clone https://github.com/ultralytics/yolov5 
cd yolov5 
pip install -r requirements.txt

4.驗證是否安裝成功

利用USB攝像頭做為影像輸入源(source 0),並選擇yolov5s.pt模型來運行detect.py,若有出現上述視頻的辨識影像效果,即是完成安裝。

python detect.py --source 0 --weights yolov5s.pt


這僅是建置YOLOv5環境的方式之一,同時其尚有不同模型可做測試,包含yolov5s.pt, yolov5m.pt, yolov5l.pt,另外,還可進一步訓練客製化數據,完成屬於客製化的場景應用。若有需求,可自行參考YOLOv5手冊


沒有留言:

張貼留言