### ex4-1 ### # Step 1:安裝及更新 conda >>> python –V # 檢查目前 Python 版本 >>> pip list # 檢查目前 Python 環境安裝了那些 Package >>> conda –V # 檢查目前 conda 版本 >>> conda list # 檢查目前 conda 環境安裝了那些 Package >>> conda update conda # 若想要進行更新,可以輸入下列命令 (更新必須以系統管理員執行 Anaconda Prompt) # Step 2:建立虛擬環境 >>> conda env list # 看目前系統已經安裝幾個虛擬環境 >>> conda create --name myenv # 若要建立一個叫做 myenv 的虛擬環境,並且是安裝最新的 Python 的版本 >>> conda create --name myenv_27 python=2.7 # 若要建立一個叫做 myenv_27 的虛擬環境,並且指定 Python 2.7 的版本 >>> conda env list # 再次檢查目前虛擬環境 # Step 3:啟動虛擬環境 >>> activate myenv_27 # 啟動一個新的虛擬環境 (myenv_27) >>> conda list # 檢查目前此虛擬環境中的 Conda 安裝了那些東西 (myenv_27) >>> pip list # 檢查目前虛擬環境的 Python 環境,安裝了那些 Package (myenv_27) >>> conda install numpy # 要在此虛擬環境下安裝所需套件,例如:numpy ? # Step 4:離開虛擬環境 (myenv_27) >>> deactivate # 關閉目前的虛擬環境 # Step 5:刪除虛擬環境的 Package 或虛擬環境本身 (myenv_27) >>> conda remove --name myenv_27 numpy # 要刪除虛擬環境中某個 Package。(例如:虛擬環境 myenv_27 中的 numpy) (myenv_27) >>> deactivate # 關閉目前的虛擬環境 >>> conda env remove --name myenv_27 # 要刪除整個虛擬環境 (不能刪除當前的虛擬環境,必須先關閉目前的虛擬環境) # Step 6:複製虛擬環境 >>> conda create -n myenv_new --clone myenv # 複製虛擬環境 myenv,新的虛擬環境為 myenv_new # Step 7:為虛擬環境安裝 Anaconda >>> conda create --name myenv_39 python=3.9 & activate myenv_39 # 建一個 Python 3.9 的虛擬環境 myenv_39,並且切換至 myenv_39 (myenv_39) >>> conda install anaconda # 安裝 Anaconda ### ex4-2:安裝 YOLOv5 環境 ### (myenv_39) >>> deactivate # 先關閉目前的虛擬環境 >>> conda create -n yolov5env --clone myenv_39 # 複製虛擬環境 myenv,新的虛擬環境為 myenv_new >>> activate yolov5env # 啟動 yolov5 的虛擬環境 ### ex4-3:下載 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 所需環境 ### ex4-4:使用 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 # 查詢參數用法 ### ex4-5:匯入 torch 來使用 YOLOv5 模型偵測物件 (1-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]) # 顯示物件列表 ### ex4-6:自行訓練 YOLO 模型 ### # 安裝 labelImg 標註工具 (yolov5env) >>> pip install labelImg # 從 PyPI 下載與安裝 labelImg (yolov5env) >>> start /min labelImg # 執行 labelImg,start /min 為背景執行 ### ex4-7:標註圖片 ### # 到 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 ### ex4-8:資料集 YAML 設定檔 (road.yaml) ### # 設定圖檔路徑 path: ./datasets/road # 資料根目錄 train: images/train # 訓練用資料集(相對於 path) val: images/train # 驗證用資料集(相對於 path) test: # 測試用資料集(相對於 path,可省略) # 物件類別設定 nc: 4 # 類別數量 names: ['trafficlight', 'speedlimit', 'crosswalk', 'stop'] # 類別名稱 ### ex4-9:訓練 YOLOv5 模型 ### # 進行 YOLOv5s 模型訓練 (yolov5env) >>> python train.py --img-size 640 --batch 16 --epochs 500 --data road.yaml --weights yolov5s.pt ### ex4-10:使用 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 模型訓練 ### ex4-11:使用自己的模型進行預測: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 ### ex4-12:使用自己的模型進行預測:自行撰寫 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() # 顯示結果摘要