YOLO的一些訓練筆記

因為論文實驗需要用到YOLO做偵測,這篇主要是給自己看的一些Tips,有提到幾個之前我對YOLO在整個運作或是訓練上一些好奇的點,因此才寫在這裡。

但是整個篇幅也不長,所以沒有甚麼整理就是了


作者AlexeyAB提供訓練小物件的方法,以下是改.cfg部分: 

yolov3.cfg

https://github.com/AlexeyAB/darknet/issues/1329

yolov4.cfg

https://github.com/AlexeyAB/darknet/issues/5776


訓練資料的影像,你要偵測的物件要和測試影像所要偵測的物件,比例要一樣。

例如: training image的偵測物件佔整張影像的5%~10%,那麼測試影像所要偵測的物件也要佔測試影像的5%~10%比例,否則無法偵測(就像用tiling image做訓練,然後predict整張影像,一定會偵測不出來,scale不一樣)


[學長之前的做法]但是可以用tiled image做training,然後testing時,複製一份training(A.cfg)的.cfg檔(B.cfg),並把B.cfg的[net]部分做width = XXX , height = XXX,修改完拿給testing用

https://github.com/AlexeyAB/darknet/issues/5273


https://www.ccoderun.ca/programming/2020-01-04_neural_network_training/

這個人提到一些觀察:

1.訓練YOLO時,.cfg檔的max_batches次數會影響模型的效果。

2.當訓練的max_batches很大,且標記的資料集數量夠多,則train/validation切割的%數(如70%/20%、85%/10%、90%/10%等等),基本上不太會影響模型的訓練效果。

3.用不同的max_batches做訓練,雖然都可以偵測到目標,但是預測時的信心度也會有所不同。像下圖同樣都可以偵測到狗,但是預測到狗的紅色框框,其機率也會隨著max_batches增加而增加其預測的信心度。


Q:到底YOLOv4有沒有在訓練時將照片resize後,並保持原本圖片的長寬比呢?

A:若使用yolov4.cfg,沒有! 沒有! 沒有! 很重要所以說三次

資料來源:darknet俄羅斯大神的issue回復







留言

這個網誌中的熱門文章

Windows 10 64bits安裝Spyder (Anaconda)

在Spyder IDE 使用Python + OpenCV

Raspberry Pi - 利用AnyDesk遠端到樹莓派,並保持螢幕解析度不縮放