摘要概述
小目標問題在物體檢測和語義分割等視覺任務中一直是存在的一個難點云头,小目標的檢測精度通常只有大目標的一半公壤。
CVPR2019論文: Augmentation for small object detection 提到了一些應對小目標檢測的方法,筆者結合這篇論文以及查閱其它資料,對小目標檢測相關技巧在本文進行了部分總結。
小目標的定義:在MS COCO數據集中贝室,面積小于 32*32 的物體被認為是小物體契讲。
在COCO數據集中,小目標的數量更多滑频,具體為:
41% of objects are small (area < 322)
34% are medium (322 < area < 962)
24% are large (area > 962)
area的計算方法:像素點的個數捡偏。
MS COCO Metrics 詳細介紹參考:https://blog.csdn.net/wangdongwei0/article/details/83033340
小目標難以檢測的原因:分辨率低,圖像模糊峡迷,攜帶的信息少银伟。由此所導致特征表達能力弱,也就是在提取特征的過程中绘搞,能提取到的特征非常少彤避,這不利于我們對小目標的檢測。
現有的比較流行的方法是如何解決小目標檢測問題的看杭?
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.zhihu.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。
進一步從量化的角度來分析(參考CVPR2019論文:Augmentation for small object detection ):
1苗缩、從COCO上的統(tǒng)計圖可以發(fā)現饵蒂,小目標的個數多,占到了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寞宫,可以發(fā)現有非常多的anchor能夠與其匹配。匹配的anchor數量越多捧灰,則此目標被檢出的概率也就越大淆九。
實現方法:
1、Oversampling :我們通過在訓練期間對這些圖像進行過采樣來解決包含小對象的相對較少圖像的問題(多用這類圖片)毛俏。在實驗中炭庙,我們改變了過采樣率和研究不僅對小物體檢測而且對檢測中大物體的過采樣效果
2、Copy-Pasting Strategies:將小物體在圖片中復制多分煌寇,在保證不影響其他物體的基礎上焕蹄,增加小物體在圖片中出現的次數(把小目標扣下來貼到原圖中去),提升被anchor包含的概率阀溶。
如上圖右下角腻脏,本來只有一個小目標鸦泳,對應的anchor數量為3個,現在將其復制三份永品,則在圖中就出現了四個小目標做鹰,對應的anchor數量也就變成了12個,大大增加了這個小目標被檢出的概率鼎姐。從而讓模型在訓練的過程中钾麸,也能夠有機會得到更多的小目標訓練樣本。
具體的實現方式如下圖:圖中網球和飛碟都是小物體炕桨,本來圖中只有一個網球饭尝,一個飛碟,通過人工復制的方式献宫,在圖像中復制多份钥平。同時要保證復制后的小物體不能夠覆蓋該原來存在的目標。
參考代碼:https://github.com/zhpmatrix/VisDrone2018/tree/master/DataAug_Patching
該部分參考文章:https://zhuanlan.zhihu.com/p/57760020
網上有人說可以試一下lucid data dreaming Lucid Data Dreaming for Multiple Object Tracking姊途,這是一種在視頻跟蹤/分割里面比較有效的數據增強手段涉瘾,據說對于小目標物體檢測也很有效。
參考代碼:https://github.com/ankhoreva/LucidDataDreaming
其他
基于無人機拍攝圖片的檢測目前也是個熱門研究點(難點是目標小吭净,密度大)睡汹。
相關論文:
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.zhihu.com/p/55824651
2:https://zhuanlan.zhihu.com/p/57760020
3:https://www.zhihu.com/question/269877902/answer/548594081
4:https://zhuanlan.zhihu.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