71 目標(biāo)檢測(cè)競(jìng)賽總結(jié)【動(dòng)手學(xué)深度學(xué)習(xí)v2】

目標(biāo)檢測(cè)競(jìng)賽(牛仔裝備檢測(cè))
- https://www.kaggle.com/c/cowboyoutfits/
任務(wù)
- 檢測(cè)牛仔夾克、墨鏡、靴子、牛仔帽、腰帶
- 6937 張訓(xùn)練圖片,12660 標(biāo)注框
- 數(shù)據(jù)使用 MS-COCO 格式,評(píng)測(cè)使用 mAP(可以簡(jiǎn)單理解為評(píng)測(cè)每個(gè)類(lèi)的 bounding box 質(zhì)量的好壞),均可直接調(diào)用 pycocotools
- 挑戰(zhàn):類(lèi)別不平衡(五個(gè)類(lèi)別出現(xiàn)的次數(shù)不均衡)

結(jié)果
- 開(kāi)源代碼:https://www.kaggle.com/c/cowboyoutfits/code
數(shù)據(jù)重采樣
- 當(dāng)有類(lèi)別樣本嚴(yán)重不足時(shí),可以人工干預(yù)提升它們對(duì)模型的影響力(采樣小批量的時(shí)候會(huì)發(fā)現(xiàn)每次采樣到樣本較少的類(lèi)別的概率會(huì)比較小,最終導(dǎo)致模型朝著樣本較多的類(lèi)別方向訓(xùn)練)
- 最簡(jiǎn)單的做法是將不足的類(lèi)別樣本復(fù)制多次(對(duì)于目標(biāo)檢測(cè)來(lái)說(shuō),可以將文本文件中的標(biāo)號(hào)多復(fù)制幾次;對(duì)于圖像分類(lèi)來(lái)說(shuō),可以將圖片多復(fù)制幾次)
- 在隨機(jī)采樣小批量時(shí)對(duì)每個(gè)類(lèi)別使用不同采樣頻率:對(duì)樣本數(shù)比較少的類(lèi)別采用更高的采樣頻率,對(duì)樣本數(shù)比較多的類(lèi)別采用更低的采樣頻率,使得在小批量中各種類(lèi)別出現(xiàn)的概率相差不大:一般的做法是可以求取每個(gè)類(lèi)別在數(shù)據(jù)集中出現(xiàn)的概率,然后對(duì)每個(gè)概率求得其 p 次方作為新的采樣頻率(p是一個(gè)很小的數(shù),當(dāng)取到特別小的數(shù)的時(shí)候,最終的結(jié)果都變成 1 ,每個(gè)類(lèi)別的采樣頻率都變成 1 了)
- 在計(jì)算損失時(shí)增大不足類(lèi)別樣本的權(quán)重:深度學(xué)習(xí)中的 Cross Entropy Loss 損失函數(shù)中可以給每個(gè)樣本分配權(quán)重,因此可以給樣本較少的類(lèi)別分配一個(gè)比較大的權(quán)重
- 改變采樣的頻率或者損失函數(shù)的權(quán)重這兩種算法在一定程度上是等價(jià)的
- 有的同學(xué)使用了 SMOTE (在不足類(lèi)樣本中選擇相近的做差值,將這兩個(gè)相近數(shù)據(jù)的范圍內(nèi)挑選數(shù)據(jù)作為新的樣本,從而在小樣本的類(lèi)別中找出一些新的樣本出來(lái))
模型
1、YOLOX
- YOLOv3 + anchor free
2、YOLOV5
- YOLOv3 Pytorch 版本的改進(jìn)版:YOLOv4 和 YOLOv5 均是社區(qū)改進(jìn)版,命名有爭(zhēng)議
3、Detectron2
- Faster RCNN
4、大都采用了多模型、k 則融合
總結(jié)
- 目標(biāo)檢測(cè)代碼實(shí)現(xiàn)復(fù)雜,訓(xùn)練代價(jià)大,上手仍以找到容易上手的庫(kù)為主
- 因?yàn)?strong>超參數(shù)多,一般需要較長(zhǎng)時(shí)間探索
----end----
其他參考
1、《動(dòng)手學(xué)深度學(xué)習(xí)》,課程安排,https://courses.d2l.ai/zh-v2/assets/pdfs/part-4_1.pdf
標(biāo)簽: