### ex2-1:安裝 YOLOv5 環境 ### (myenv_39) >>> deactivate # 先關閉目前的虛擬環境 >>> conda create -n yolov5env --clone myenv_39 # 複製虛擬環境 myenv,新的虛擬環境為 myenv_new >>> activate yolov5env # 啟動 yolov5 的虛擬環境 ### ex2-2:下載 YOLOv5 檔案 ### # git for Windows 的網址 https://gitforwindows.org/ (yolov5env) >>> git clone https://github.com/ultralytics/yolov5 # 下載 YOLOv5 原始碼 (yolov5env) >>> cd yolov5 # 進入 yolov5 目錄 (yolov5env) >>> pip install -r requirements.txt # 安裝 YOLOv5 所需環境 ### ex2-3:使用 YOLOv5 模型偵測物件 ### (yolov5env) >>> python detect.py --source ./data/images/zidane.jpg # 以 YOLOv5 模型偵測圖片物件 (yolov5env) >>> python detect.py --source https://www.youtube.com/watch?v=te09w4vbQiY # 以 YOLOv5 模型偵測 Youtube 物件 (yolov5env) >>> python detect.py --source 0 # 以 YOLOv5 模型偵測攝影機物件 (yolov5env) >>> python detect.py --source 0 --weight yolov5n.pt # 以 yolov5n 的模型偵測攝影機物件 (yolov5env) >>> python detect.py --help # 查詢參數用法 ### ex2-4:匯入 torch 來使用 YOLOv5 模型偵測物件 (2-1.py) ### import torch model = torch.hub.load('ultralytics/yolov5', 'yolov5s') # 從 PyTorch Hub 下載 YOLOv5s 預訓練模型,可選用的模型有 yolov5s, yolov5m, yolov5x 等 img = 'https://ultralytics.com/images/zidane.jpg' # 影像來源,支援檔案、路徑、PIL、OpenCV, NumPy, list 等 results = model(img) # 進行物件偵測 results.print() # 顯示結果摘要 results.show() # 顯示結果圖片 results.save() # 儲存結果圖片 print(results.pandas().xyxy[0]) # 顯示物件列表 ### ex2-5:自行訓練 YOLO 模型 ### # 安裝 labelImg 標註工具 (yolov5env) >>> pip install labelImg # 從 PyPI 下載與安裝 labelImg (yolov5env) >>> start /min labelImg # 執行 labelImg,start /min 為背景執行 ### ex2-6:標註圖片 ### # 到 MakeML 下載訓練照片檔 https://makeml.app/datasets/road-signs # coco128 資料集 的目錄結構 https://www.kaggle.com/datasets/ultralytics/coco128 # YOLOv5 官方網頁上的建議 https://github.com/ultralytics/yolov5/wiki/Tips-for-Best-Training-Results ### ex2-7:資料集 YAML 設定檔 (road.yaml) ### # 設定圖檔路徑 path: ./datasets/road # 資料根目錄 train: images/train # 訓練用資料集(相對於 path) val: images/train # 驗證用資料集(相對於 path) test: # 測試用資料集(相對於 path,可省略) # 物件類別設定 nc: 4 # 類別數量 names: ['trafficlight', 'speedlimit', 'crosswalk', 'stop'] # 類別名稱 ### ex2-8:訓練 YOLOv5 模型 ### # 進行 YOLOv5s 模型訓練 (yolov5env) >>> python train.py --img-size 640 --batch 16 --epochs 500 --data road.yaml --weights yolov5s.pt ### ex2-9:使用 Google Colab 來訓練模型 ### # 登入 Googe Drive from google.colab import drive drive.mount('/content/gdrive') # 此處需要登入 google 帳號 >>> %cd gdrive/MyDrive/ # 進入掛載的雲端硬碟資料夾 >>> !unzip yolov5-master.zip # 解壓縮 yolov5-master.zip >>> %cd yolov5-master # 進入掛載的雲端硬碟目錄 >>> !python train.py --img-size 640 --batch 16 --epochs 500 --data road.yaml --weights yolov5s.pt # 進行 YOLOv5s 模型訓練 ### ex2-10:使用自己的模型進行預測:detect.py 指令稿 ### # 自己訓練出來的 YOLO 模型也可以直接套用 detect.py 指令稿進行預測 (yolov5env) >>> python detect.py --weight runs/train/exp/weights/best.pt --source datasets\road\images\train\road0.png --iou-thres 0.3 --conf-thres 0.5 # 以自行訓練的 YOLO 模型偵測攝影機物件 (yolov5env) >>> python detect.py --weight runs/train/exp/weights/best.pt --source 0 # 以自行訓練的 YOLO 模型偵測 Youtube 的影片 (yolov5env) >>> python detect.py --weight runs/train/exp/weights/best.pt --source https://www.youtube.com/watch?v=7BwW2dH6ZI0 ### ex2-11:使用自己的模型進行預測:自行撰寫 Python ### import torch model = torch.hub.load('ultralytics/yolov5', 'custom', path = 'runs/train/exp/weights/best.pt') # 載入自行訓練的 YOLOv5 模型 img = 'datasets/road/images/train/road6.png' # 影像來源 model.conf = 0.5 # 設定信心門檻值 results = model(img) # 進行物件偵測 results.print() # 顯示結果摘要