iT邦幫忙

2022 iThome 鐵人賽

DAY 21
0
AI & Data

Object Detection and Image Processing with Python系列 第 21

《第21天》Scaled YOLOv4本地端訓練(Windows)

  • 分享至 

  • xImage
  •  

環境安裝

  1. 開啟Pycharm新專案:

    1.1 點擊New Project開啟新專案

    1.2 點擊New enviroment using,選擇Vitualenv後輸入專案名稱,再點擊Create。

  2. 到Github下載WongKinYiu/ScaledYOLOv4 yolov4-scp

  3. 解壓縮後將ScaledYOLOv4-yolov4-csp資料夾移動到Pycharm專案資料夾內。

  1. 在Pycharm內點選Terminal,並依序輸入以下指令

    4.1 進入ScaledYOLOv4-yolov4-csp資料夾:cd '.\ScaledYOLOv4-yolov4-csp\'

    4.2 建立requirements.txt,如下。

    numpy == 1.17
    opencv-python >= 4.1
    -f https://download.pytorch.org/whl/cu113/torch_stable.html
    torch==1.10.0+cu113
    -f https://download.pytorch.org/whl/cu113/torch_stable.html
    torchvision==0.11.1+cu113
    -f https://download.pytorch.org/whl/cu113/torch_stable.html
    torchaudio===0.10.0+cu113
    matplotlib
    pycocotools
    tqdm
    pillow
    tensorboard >= 1.14
    pyyaml
    scipy
    

    4.3 安裝需求套件:pip install -r requirements.txt


模型推論(detect.py檔)

  1. 預訓練模型yolov4-csp權重

    1.1 下載預訓練模型yolov4-csp權重

    1.2 放到ScaledYOLOv4-yolov4-csp資料夾,用以執行detect.py測試是否部署環境成功。

  2. 在data資料夾中,創建samples資料夾。下載AlexeyAB/darknet/data/person.jpg。將person.jpg複製成8張,可測試單張及多張照片的GPU推論速度。

  3. 在Terminal輸入推論指令

    3.1 單張照片gpu推論:python detect.py --source data/samples/person1.jpg --cfg models/yolov4-csp.cfg --weights yolov4-csp.weights --conf 0.25 --img-size 640 --device 0

    • 執行結果:載入模型+1張圖片推論,花費了0.047秒。

    • 推論結果

    3.2 多張照片gpu推論:python detect.py --source data/samples --cfg models/yolov4-csp.cfg --weights yolov4-csp.weights --conf 0.25 --img-size 640 --device 0

    • 執行結果

      • 載入模型+第1張圖片推論,花費0.051秒
      • 第2~8張圖片,1張圖片推論平均時間為0.0261秒。

    • 推論結果

    3.3 參數說明

    • --cfg 後面放參數設定的檔案路徑,如:models/yolov4-csp.cfg
    • --weights 後面放推論時讀取的weight檔案路徑,如:yolov4-csp.weights
    • --source 後面放要推論的圖片或資料夾路徑,如:data/samples
    • --conf 後面放confidence的閾值,如:0.25
    • --iou-thres後面放NMS的閾值,如:默認0.5
    • --img-size 待推論圖片輸入模型的尺寸,如:640
    • --save_result 是否儲存圖片推論結果,如:True
    • --device 指定推論GPU的編號,如:0

模型訓練(train.py檔)

  1. YOLO txt格式

    1.1 資料集下載

    • 下載datasets1:從coco128中擷取部分資料。

    • 將datasets1資料集解壓縮,並移到ScaledYOLOv4-yolov4-csp下的data資料夾內。

    1.2 下載預訓練模型yolov4-csp權重,並放到YOLOv4資料夾內。

    1.3 修改coco.yaml參數檔檔

    • train與val資料夾路徑。(編號1)
    • nc:dataset1中共有80個類別。(編號2)
    • names:字串格式輸入類別名稱。(編號3)

    1.4 修改coco.names

    • 模型訓練完成後,會讀取val資料集與coco.name進行驗證,並計算mAP。
    • dataset1中共有80個類別,換行輸入所有類別。

    1.5 修改models/yolov4-csp.cfg

    • classes:dataset1有80個類別,故第1029、1138、1247行需為80。

    • filters:dataset1有80個類別,filters=(類別數量+5)*3,故第1022、1131、1240行需為255。

    1.6 執行訓練:python train.py --batch-size 2 --img 640 640 --data coco.yaml --cfg models/yolov4-csp.cfg --weights yolov4-csp.weight --device 0 --name yolov4-csp --epochs 10 --notest

    • 訓練過程(若顯存低於8G,建議使用--notest,僅在最後一回合訓練結束後,執行test)

    • 訓練結果

    1.7 Demo測試:python detect.py --source data/samples --cfg models/yolov4-csp.cfg --weights runs/train/yolov4-csp2/weights/last.pt --conf 0.25 --img-size 640 --device 0

    • 推論過程


小結

下一站,我們前往「YOLOR本地端訓練(Windows)」,分享如何設置環境,並進行訓練與推論。

讓我們繼續看下去...


參考資料

  1. WongKinYiu/ScaledYOLOv4

上一篇
《第20天》YOLOv4本地端訓練(Windows)
下一篇
《第22天》YOLOR本地端訓練(Windows)
系列文
Object Detection and Image Processing with Python30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言