Python影像辨識筆記(十九):WongKinYiu/PyTorch_YOLOv4使用教學及注意事項

注意事項:

[1] 使用u3版本的原因在於u5版本是參考yolov5的repo而寫成的,使用的模型參數是yaml格式,與以往cfg格式完全不同,為了與官方darknet一致,故採用u3版本。[2] 目前原作者尚未開發出from pre-trained weight yolov4-tiny.conv.29檔案的訓練方式,仍在等待原作者回覆中
2020/12/01更新,已解決:
models.py中的load_darknet_weights()中加入下列程式即可解決:
elif file == 'yolov4-tiny.conv.29':
cutoff = 29
[3] 訓練時遇到No module named mish_cuda的問題,解決方法可參考這裡進行安裝,步驟7需要將檔案複製到site_package所在資料夾。可以透過以下指令顯示路徑位置:
python -c 'import site; print(site.getsitepackages())'
['/opt/conda/lib/python3.6/site-packages']
[4]2020/11/19更新
目前原作者已經將程式碼更新,大多問題都已經解決master branch的repo
[5]darknet和pytorch yolov4的learning rate scheduler差異
darknet用multi-steps decay, learning rate整個過程中只改變兩次, 大概會在 270 epochs左右開始over fitting, 但因為訓練快結束了 所以幾乎看不出來.
pytorch這用cosine annealing, learning rate一直在變, 大概在150~250間會開始發生over fitting, 愈大的model愈晚發生.
[6]train2017.txt/val2017.txt相對路徑的BUG
https://github.com/WongKinYiu/PyTorch_YOLOv4/pull/32

環境建置

wget https://github.com/WongKinYiu/PyTorch_YOLOv4/archive/u3_preview.zip && unzip u3_preview.zip && cd PyTorch_YOLOv4-u3_previewpip install -r requirements.txt# 安裝前請先檢查requirements.txt中的套件在自己的電腦裡面是否已經安裝了,建議只安裝沒有的#aiForge只需安裝pycocotools # pip install pycocotools# yolov4-tiny-conv.29
# wget https://github.com/AlexeyAB/darknet/releases/download/darknet_yolo_v4_pre/yolov4-tiny.conv.29
# yolov4.conv.137.pth
wget --load-cookies /tmp/cookies.txt "https://docs.google.com/uc?export=download&confirm=$(wget --quiet --save-cookies /tmp/cookies.txt --keep-session-cookies --no-check-certificate 'https://docs.google.com/uc?export=download&id=1fcbR0bWzYfIEdLJPzOsn4R5mlvR6IQyA' -O- | sed -rn 's/.*confirm=([0-9A-Za-z_]+).*/\1\n/p')&id=1fcbR0bWzYfIEdLJPzOsn4R5mlvR6IQyA" -O FILENAME && rm -rf /tmp/cookies.txt
# 在utils/parse_config.py的第40行supported(data type: list)加入'resize','group_id'# train.py修改第68行(64改成32)
這樣才能訓練以32為倍數的image size(如:416)

使用

CUDA_VISIBLE_DEVICES=0 python3 train.py --data coco2014.data --batch 16 --epochs 300 --img 416 --cfg yolov4.cfg --weights '' --name v4-from-scratchCUDA_VISIBLE_DEVICES=0 python test_half.py --data coco2014.data --cfg yolov4-twin-head.cfg --weights weights/best.pt --img 416 --augment

Written by

Machine Learning / Deep Learning / Python / Flutter cakeresume.com/yanwei-liu

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store