簡體   English   中英

為什么 yolov7 合並原始圖片來創建用於訓練的批次?

[英]Why does yolov7 merge the original pictures to create the batches for training?

我正在嘗試創建自定義的圖片檢測,例如 pl.nets。 我將所有圖片的大小都調整為 1280x1280px。 我使用以下輸入啟動 train.py:

python.\train.py --workers 1 --device 0 --batch-size 4 --epochs 100 --img-size 1280 1280 --data.\data\custom_data.yaml --hyp.\data\hyp.scratch.custom.yaml --cfg.\cfg\training\yolov7-custom.yaml --name yolov7-result --weights.\yolov7.pt

當查看我創建的訓練數據時,yolov7 似乎“合並”了這些圖片,因此它從中學習的圖片看起來像是來自原始數據的可憎內容。 在這里,看一下:

planets_train_batch

它拍攝了 4 張圖片(在 batch-size = 4 中設置),但它們不是原始圖片。 例如,pl.net_14.jp 看起來像這樣:

原始行星_14.jpg

如您所見,它與 train images 文件夾中來自 pl.nets 的其他圖片合並。 但這是為什么,我該如何防止它發生?

我用 640x640px 嘗試了同樣的方法,結果是一樣的,只是批量較小。 我試着用谷歌搜索,但沒有人遇到過類似的問題。

這是一種數據增強策略(我認為它是在YoloV4 論文中介紹的),他們稱之為mosaic 與任何數據增強策略一樣,概念非常簡單:您擁有有限數量的標記訓練數據。 在許多或大多數機器學習任務中,model 的性能與(適當獨特的)訓練數據量成比例。 通過操作有限的訓練數據(旋轉、縮放、遮罩、改變顏色、組合多張圖像等),您可以有效地增加訓練數據示例的數量。 (很難說這些增強數據示例是否與新的、獨特的數據示例一樣有用,但該討論可能不在該問題的 scope 范圍內。

無論如何,在不知道您正在使用的特定 model 實現的情況下,很難說出這種情況發生在何處(無論是在數據集中還是在模型中),但我猜它可能發生在數據集 object 的__getitem__方法中。你可能會在這里抑制各種數據增強策略。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM