通用目標檢測

定義:
給定一個任意的圖像,確定是否有來自預定義類別的語義目標的實例,如果存在,返回空間位置和范圍.相比於目標類檢測,更側重於探測廣泛的自然類別的方法
發展歷程:


PASCAL VOC數據集, ILSVRC性能逐漸提高.
典型算法
基於卷積的神經網絡目標檢測方法,根據檢測速度可分為兩階段目標檢測和一階段目標檢測。
- 兩階段目標檢測算法:生成候選區域+分類和邊界框回歸
- 一階段目標檢測算法:僅一次前向傳遞一步到位


一般兩階段算法速度較慢精度較高,一階段算法速度較快精度較低。
針對上圖中算法,以后分開講解。
通用問題
對象的空間位置和范圍可以使用邊界框粗略地定義,邊界框被更廣泛地用於評估通用目標檢測算法.
發展趨勢正在走向深入的場景理解(從圖像級對象分類到單個對象定位,到通用對象檢測,再到像素級對象分割)。
主要涉及的問題如下:
(1)正負樣本不均衡問題
(2)定位精度低的問題
(3)目標特征不明顯問題
(4)檢測速度慢的問題
(5)Anchor—free問題
正負樣本不均衡
很多算法都有一個基本假設,那就是數據分布是均勻的。當把這些算法直接應用於實際數據時,大多數情況下都無法取得理想結果。因為實際數據往往分布得不均勻,都會存在“長尾現象”,也就是所謂的“二八原理”。
任何數據集上都有數據不平衡現象,這由問題本身決定,但我們只關注那些分布差別比較懸殊的部分;另外,雖然很多數據集都包含多個類別,但這里着重考慮二分類,因為解決了二分類中的數據不平衡問題后,推而廣之就能得到多分類情況下的解決方案。

大部分微博的總互動數在0-5之間,交互數多的微博(多於100)非常之少。如果去預測一條微博交互數所在檔位,預測器只需要把所有微博預測為第一檔(0-5)就能獲得非常高的准確率,而這樣的預測器沒有任何價值.
過抽樣通過增加分類中少數類樣本的數量來實現樣本均衡,最直接的方法是簡單復制少數類樣本形成多條記錄,這種方法的缺點是如果樣本特征少而可能導致過擬合的問題;
欠抽樣通過減少分類中多數類樣本的樣本數量來實現樣本均衡,最直接的方法是隨機地去掉一些多數類樣本來減小多數類的規模,缺點是會丟失多數類樣本中的一些重要信息。
總體上,過抽樣和欠抽樣更適合大數據分布不均衡的情況,尤其是過抽樣方法應用更加廣泛。
通過正負樣本的懲罰權重解決樣本不均衡的問題,算法中對於分類中不同樣本數量的類別分別賦予不同的權重(一般思路分類中的小樣本量類別權重高,大樣本量類別權重低),然后進行計算和建模。使用這種方法時需要對樣本本身做額外處理,需在算法模型的參數中進行相應設置。

很多模型和算法中都有基於類別參數的調整設置,針對不同類別來手動指定不同類別的權重,SVM默認方法會將權重設置為與不同類別樣本數量呈反比的權重來做自動均衡處理。
組合/集成方法是在每次生成訓練集時使用所有分類中的小樣本量,同時從分類中的大樣本量中隨機抽取數據來與小樣本量合並構成訓練集,反復多次會得到很多訓練集和訓練模型,最后使用組合方法(例如投票、加權投票等)產生分類預測結果。

如果計算資源充足,並且對於模型的時效性要求不高的話,這種方法比較合適。
樣本不均衡也會導致特征分布不均衡,但小類別樣本量具有一定規模,其特征值的分布較為均勻,通過選擇具有顯著型的特征配合參與解決樣本不均衡問題,稱為基於列的特征選擇方法。

分類是監督式方法,前期是基於帶有標簽的數據進行分類預測;無監督式方法,則是使用除標簽以外的其他特征進行模型擬合。上述四種方法的思路都是基於分類問題解決的。從大規模數據中尋找罕見數據,也可以使用非監督式的學習方法。
定位精度低的問題
定位和分類是目標檢測的兩大任務。在目標檢測評價指標中,定位精度是一個重要測量指標,提高定位精度可以顯著提高檢測性能。
(1)設計一種新的損失函數來測量預測箱的精度是提高定位精度的有效途徑。
(2)建立合理的目標檢測評價指標,例如IoU。

IoU是最常用的目標檢測評價指標,對於兩個邊界框,IoU可以計算為交集面積除以並集面積。該損失函數對不同形狀和尺度的物體具有較強的魯棒性,能在較短的時間內很好地收斂。
目標特征不明顯問題
從輸入圖像中提取有效特征是進一步精確分類和定位的前提,要充分利用連續的輸出特征圖譜骨干層。
FPN的目標是提取更豐富的特性,通過將這些產品分為不同級別大小不同的檢測目標。

左側整個過程是先對原始圖像構造圖像金字塔,然后在圖像金字塔的每一層提出不同的特征,然后進行相應的預測,可以獲得較好的檢測精度。
右側利用卷積網絡本身的特性,對原始圖像進行卷積和池化操作,獲得不同尺寸的feature map.
圖像中不同目標或區域之間的語義關系可以幫助檢測遮擋和小目標。圖像特征增強的方法有許多:
(1)利用組合的高級語義特征對目標進行分類定位,逐步將多區域特征結合起來;
(2)利用語義分割分支和全局激活模塊,豐富典型深度檢測器中目標檢測特征的語義;
(3)采用場景上下文信息進一步提高准確性,構建目標之間的建模關系;
(4)充分利用目標有效區域,網絡權值和采樣位置共同決定有效支撐區域。
(5)腦激發機制是進一步提高檢測性能的有力途徑。
檢測速度慢的問題
對於有限的計算能力和內存資源,如移動設備、實時設備、網絡攝像頭和自動駕駛鼓勵等研究有效的檢測架構設計。輕量化的目標檢測算法,基於FPGA的硬件加速芯片是加快檢測速度的重要方向。

針對輕量化算法,從模型設計時就采用一些輕量化的思想,例如采用深度可分離卷積、分組卷積等輕量卷積方式,減少卷積過程的計算量。此外,利用全局池化來取代全連接層,利用1×1卷積實現特征的通道降維,也可以降低模型的計算量。
對於輕量化的網絡設計,目前較為流行的有SqueezeNet、MobileNet及ShuffleNet等結構。SqueezeNet采用精心設計的壓縮再擴展的結構,MobileNet使用了效率更高的深度可分離卷積,而ShuffleNet提出了通道混洗的操作,進一步降低了模型的計算量。

以卷積層(conv1)開始,接着使用8個Fire modules (fire2-9),最后以卷積層(conv10)結束。每個兩個fire module中的filter數量逐漸增加,並且在conv1, fire4, fire8, 和 conv10這幾層之后使用步長為2的最大池化,即將池化層放在網絡相對靠后的層
Anchor—free問題
目前主流目標檢測算法包括多階段的各種RCNN和單階段的SSD、RetinaNet上都是基於Anchor來做的。Anchor的本質是候選框,在設計不同尺度和比例的候選框后,學習如何將這些候選框進行分類:是否包含目標和包含什么類別的目標,對於positive的anchor會學習如何將其回歸到正確的位置。但是,這種設計思路有很多問題:
(1)大部分目標形狀不規則,邊界框涵蓋了大量非目標區域,引入較多干擾;
(2)Anchor的設置需要手動去設計,不同數據集要不同設計;
(3)Anchor的匹配機制使極端尺度被匹配到的頻率相對於大小適中的目標被匹配到的頻率更低;
(4)Anchor的龐大數量存在嚴重的不平衡問題。
Anchor-Based存在上述的問題,提出了Anchor Free的方法。
anchor-free方法主要有兩種方法解決檢測問題:
(1)基於密集檢測的方法:這種方法將目標檢測分為兩個子問題,即確定物體中心和對四條邊框的預測,遵循區域分類回歸的思想。這兩個子問題是通過密集預測的方法解決的,因此與Segmentation相通,代表作有FCOS,Foveabox和FSAF等;
(2)基於關鍵點的方法:這種方法跳出了區域分類回歸的思想,通過解決關鍵點定位組合問題來檢測物體,代表的有CornerNet,CenterNet和ExtremeNet等。

anchor-free模型是改變了GT的定義,Cornernet定義為角點,Extremenet定義為極值點和中心點,FSAF、FoveaBox定義為矩形框的中間區域,FCOS雖然是矩形框,但是經過center-ness抑制掉低質量的框,也是一種將GT定義為矩形框中心區域。重新定義之后,需要檢測的目標語義變得更加明確,有利於分類和回歸。因此,anchor-free本質上是將anchor-based轉換成了keypoint-based /region-based。

紅色、藍色和其他顏色分別表示1、0和它們之間的值。計算中心度,當位置偏離物體中心時,中心度從1衰減到0。在測試時,網絡預測的中心度與分類得分相乘,從而可以降低由遠離對象中心的位置預測的低質量邊界框的權重。
趨勢
見下一節
