開啟Pycharm新專案:
1.1 點擊New Project開啟新專案
1.2 點擊New enviroment using,選擇Vitualenv後輸入專案名稱,再點擊Create。
到Github下載WongKinYiu/ScaledYOLOv4 yolov4-scp
解壓縮後將ScaledYOLOv4-yolov4-csp資料夾移動到Pycharm專案資料夾內。
在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
預訓練模型yolov4-csp權重
1.1 下載預訓練模型yolov4-csp權重
1.2 放到ScaledYOLOv4-yolov4-csp資料夾,用以執行detect.py測試是否部署環境成功。
在data資料夾中,創建samples資料夾。下載AlexeyAB/darknet/data/person.jpg。將person.jpg複製成8張,可測試單張及多張照片的GPU推論速度。
在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
執行結果
推論結果
3.3 參數說明
YOLO txt格式
1.1 資料集下載
下載datasets1:從coco128中擷取部分資料。
將datasets1資料集解壓縮,並移到ScaledYOLOv4-yolov4-csp下的data資料夾內。
1.2 下載預訓練模型yolov4-csp權重,並放到YOLOv4資料夾內。
1.3 修改coco.yaml參數檔檔
1.4 修改coco.names
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)」,分享如何設置環境,並進行訓練與推論。
讓我們繼續看下去...