本文來自公眾號“每日一醒”

在計算機視覺中,檢測小目標是最有挑戰的問題之一。

本文彙總了一些有效的策略。

AI大視覺(二十) | 小目標檢測的tricks彙總

為何小目標

(1)基於相對尺度

物體寬高是原圖寬高的1/10以下的可以視為小目標。

目標邊界框面積與影象面積的比值開方小於一定值(較為通用的值為0。03)的可以視為小目標。

(2)基於絕對尺度

通常認為絕對尺寸小於32×32的物體可以視為小目標。

AI大視覺(二十) | 小目標檢測的tricks彙總

小目標為什麼難檢測?

(1) 可利用特徵少

低解析度的小目標視覺化資訊少,難以提取到具有鑑別力的特徵,並且極易受到環境因素的干擾,進而導致了檢測模型難以精準定位和識別小目標。

(2) 定位精度要求高

小目標由於在影象中覆蓋面積小,因此其邊界框的定位相對於大/中尺度尺寸目標具有更大的挑戰性。

在預測過程中,預測邊界框框偏移一個畫素點,對小目標的誤差影響遠高於大/中尺度目標。

(3) 現有資料集中小目標占比少

(4) 樣本不均衡問題

在訓練的過程中,透過設定固定的閾值來判斷錨框屬於正樣本還是負樣本。

這種方式導致了模型訓練過程中不同尺寸目標的正樣本不均衡問題。

當人工設定的錨框與小目標的真實邊界框差異較大時,小目標的訓練正樣本將遠遠小於大/中尺度目標的正樣本,這將導致訓練的模型更加關注大/中尺度目標的檢測,而忽略小目標的檢測。

(5) 小目標聚集問題

相對於大/中尺度目標,小目標具有更大機率產生聚集現象。

當小目標聚集出現時,聚集區域相鄰的小目標透過多次降取樣後,反應到深層特徵圖上將聚合成一個點,導致檢測模型無法區分。

當同類小目標密集出現時,預測的邊界框還可能會因後處理的非極大值抑制操作將大量正確預測的邊界框過濾,從而導致漏檢情況。

另外,聚集區域的小目標之間邊界框距離過近,還將導致邊界框難以迴歸,模型難以收斂。

AI大視覺(二十) | 小目標檢測的tricks彙總

如何改進?

1、高解析度影象採集(影象源頭)(小目標變大系列)

2、高解析度影象模型輸入(模型源頭)(小目標變大系列)

3、影象分塊(小目標變大系列)

訓練的時候分塊訓練,預測的時候也分塊訓練。

比如一張大影象分成8塊,相當於一個batch size。

問題在於如何規避分塊時將目標分成兩部分。

4、Context資訊(打標技巧)

標的大點新增周邊的資訊輔助訓練。

上下文Context資訊,那麼目標就相當於變大了一些,上下文資訊加上檢測也就更容易了。

5、資料增強

複製並貼上每個影象中的小目標多次。

從而讓模型在訓練的過程中,也能夠有機會得到更多的小目標訓練樣本。

6、特徵提取

不同尺度的特徵融合,在擴大感受野的同時,也融合多個尺度的特徵,增強了模型對於小目標的檢測能力

7、損失函式

在bounding bbox損失上加一個針對小物體的權重2-w*h。

8、僅對小目標不設定過於嚴格的iou閾值

對小目標的Anchor使用比較寬鬆的匹配策略,儘量多的留下小目標。

9、小目標的過取樣

過取樣OverSampling策略。

對於資料集中含有小目標圖片較少的情況,使用過度取樣(oversample)的方式,即多次訓練這類樣本。

10、網路模型

降低下采樣率與空洞卷積,減少小物體特徵損失,同時在不改變網路解析度的前提下增加網路的感受野,減小對大物體檢測效能的損失。

11、 最佳化Anchor尺寸設計

利用邊框聚類進行anchor尺寸設計,邊框聚類時通常使用K-Means演算法,這也是YOLO採用的Anchor聚類方法,設計更好的Anchor可以有效提升Proposal的質量,設計貼近小物體尺寸的anchor能有效減小回歸量的variance,降低網路的學習難度,提高recall。

AI大視覺(二十) | 小目標檢測的tricks彙總

總結

另外,由於anchor free裡面樣本定位關係,小目標檢測會略好於anchor base的模型。

AI大視覺(二十) | 小目標檢測的tricks彙總

——————

淺談則止,細緻入微AI大道理

掃描下方“每日一醒”,選擇“關注”公眾號

—————————————————————

AI大視覺(二十) | 小目標檢測的tricks彙總

—————————————————————

|