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回復
留言
張貼留言