㈠ 小目標檢測相關技巧總結
小目標問題在物體檢測和語義分割等視覺任務中一直是存在的一個難點,小目標的檢測精度通常只有大目標的一半。
CVPR2019論文: Augmentation for small object detection 提到了一些應對小目標檢測的方法,筆者結合這篇論文以及查閱其它資料,對小目標檢測相關技巧在本文進行了部分總結。
小目標的定義: 在MS COCO數據集中,面積小於 32*32 的物體被認為是小物體。
小目標難以檢測的原因: 解析度低,圖像模糊,攜帶的信息少。由此所導致特徵表達能力弱,也就是在提取特徵的過程中,能提取到的特徵非常少,這不利於我們對小目標的檢測。
1、由於小目標面積太小,可以放大圖片後再做檢測,也就是在尺度上做文章,如FPN(Feature Pyramid Networks for Object Detection),SNIP(An Analysis of Scale Invariance in Object Detection – SNIP)。
Feature-Fused SSD: Fast Detection for Small Objects, Detecting Small Objects Using a Channel-Aware Deconvolutional Network 也是在多尺度上做文章的論文。
2、在Anchor上做文章(Faster Rcnn,SSD, FPN都有各自的anchor設計),anchor在設置方面需要考慮三個因素:
anchor的密度: 由檢測所用feature map的stride決定,這個值與前景閾值密切相關。
anchor的范圍: RetinaNet中是anchor范圍是32~512,這里應根據任務檢測目標的范圍確定,按需調整anchor范圍,或目標變化范圍太大如MS COCO,這時候應採用多尺度測試。
anchor的形狀數量: RetinaNet每個位置預測三尺度三比例共9個形狀的anchor,這樣可以增加anchor的密度,但stride決定這些形狀都是同樣的滑窗步進,需考慮步進會不會太大,如RetinaNet框架前景閾值是0.5時,一般anchor大小是stride的4倍左右。
該部分anchor內容參考於: https://zhuanlan.hu.com/p/55824651
3、在ROI Pooling上做文章,文章SINet: A Scale-Insensitive Convolutional Neural Network for Fast Vehicle Detection 認為小目標在pooling之後會導致物體結構失真,於是提出了新的Context-Aware RoI Pooling方法。
4、用生成對抗網路(GAN)來做小目標檢測:Perceptual Generative Adversarial Networks for Small Object Detection。
1、從COCO上的統計圖可以發現,小目標的個數多,佔到了41.43%,但是含有小目標的圖片只有51.82%,大目標所佔比例為24.24%,但是含有大目標的圖像卻有82.28%。這說明有一半的圖像是不含小目標的,大部分的小目標都集中在一些少量的圖片中。這就導致在訓練的過程中,模型有一半的時間是學習不到小目標的特性的。
此外,對於小目標,平均能夠匹配的anchor數量為1個,平均最大的IoU為0.29,這說明很多情況下,有些小目標是沒有對應的anchor或者對應的anchor非常少的,即使有對應的anchor,他們的IoU也比較小,平均最大的IoU也才0.29。
如上圖,左上角是一個anchor示意圖,右上角是一個小目標所對應的anchor,一共有隻有三個anchor能夠與小目標配對,且配對的IoU也不高。左下角是一個大目標對應的anchor,可以發現有非常多的anchor能夠與其匹配。匹配的anchor數量越多,則此目標被檢出的概率也就越大。
實現方法:
1、Oversampling :我們通過在訓練期間對這些圖像進行過采樣來解決包含小對象的相對較少圖像的問題(多用這類圖片)。在實驗中,我們改變了過采樣率和研究不僅對小物體檢測而且對檢測中大物體的過采樣效果
2、Copy-Pasting Strategies:將小物體在圖片中復制多分,在保證不影響其他物體的基礎上,增加小物體在圖片中出現的次數(把小目標扣下來貼到原圖中去),提升被anchor包含的概率。
如上圖右下角,本來只有一個小目標,對應的anchor數量為3個,現在將其復制三份,則在圖中就出現了四個小目標,對應的anchor數量也就變成了12個,大大增加了這個小目標被檢出的概率。從而讓模型在訓練的過程中,也能夠有機會得到更多的小目標訓練樣本。
具體的實現方式如下圖:圖中網球和飛碟都是小物體,本來圖中只有一個網球,一個飛碟,通過人工復制的方式,在圖像中復制多份。同時要保證復制後的小物體不能夠覆蓋該原來存在的目標。
網上有人說可以試一下lucid data dreaming Lucid Data Dreaming for Multiple Object Tracking ,這是一種在視頻跟蹤/分割裡面比較有效的數據增強手段,據說對於小目標物體檢測也很有效。
基於無人機拍攝圖片的檢測目前也是個熱門研究點(難點是目標小,密度大)。
相關論文:
The Unmanned Aerial Vehicle Benchmark: Object Detection and Tracking(數據集)
Drone-based Object Counting by Spatially Regularized Regional Proposal Network
Simultaneously Detecting and Counting Dense Vehicles from Drone Images
Vision Meets Drones: A Challenge(數據集)
1: https://zhuanlan.hu.com/p/55824651
2: https://zhuanlan.hu.com/p/57760020
3: https://www.hu.com/question/269877902/answer/548594081
4: https://zhuanlan.hu.com/p/60033229
5: https://arxiv.org/abs/1902.07296
6: http://openaccess.thecvf.com/content_cvpr_2017/papers/Li_Perceptual_Generative_Adversarial_CVPR_2017_paper.pdf
7: http://openaccess.thecvf.com/content_cvpr_2017/papers/Lin_Feature_Pyramid_Networks_CVPR_2017_paper.pdf