目標檢測系列(3):OverFeat和DeepMutliBox
Object detection 之 OverFeat
OverFeat: Integrated Recognition, Localization and Detection using Convolutional Networks
OverFeat:利用卷積網路進行識別、定位和檢測
ICLR’ 14
摘要
文章提出一個基於卷積神經網路的綜合框架,用來解決分類、定位和檢測任務。文章展示瞭如何用卷積網路實現多尺寸的滑窗法,此外通過深度學習的方法預測物體的邊框來進行定位,對邊框進行累計而不是抑制來提升檢測的置信度。本文發現,不同的任務可以在一個共享權重的CNN上同時進行學習。本文提出的方法獲得了ILSVRC2013的定位比賽冠軍,並且在分類和檢測比賽中也獲得具有競爭性的結果。 按照作者原話OverFeat是一個運算元,類似LBP、HOG。
[Finally, we release a feature extractor from our best model called OverFeat]
主要觀點
- 多工的訓練可以同時提高所有任務的表現力,多工之間有互補的關係。分類、定位、檢測。
- 通過積累accumulate目標預測框,而不是抑制suppress,可以在目標檢測中取得更好的結果。
- 提出了offset pool,類似於SPP想解決多尺度輸入問題。
Classification分類任務
model design and training模型設計和訓練
用的網路結果類似與AlexNet,做了幾處微小的改進,提出了兩種模型,一個是快速模型fast model
Multi-Scale Classification
這小節堪稱這篇論文的核心,作者提出了一個叫offset pool的池化原理,先放圖。 這張圖是offset pool的一維解釋。 目的和SPP的想法一樣,多尺度的input經過卷積層後得到多尺度的feature maps,但是這些不同尺度的feature maps不能送進全連線層,需要但是對所有feature maps經過平均後,最終的就是類別數
ConvNets and Sliding Window Efficiency
討論了文章的檢測速度比普通的滑窗法快的原因,就是和R-CNN比,不需要對每個proposals進行一次CNN,這樣速度就提升了很多。歸功於設計了offset pool,可以輸入多尺度。
Localization 定位任務
主要把分類任務的最後一個分類層換成迴歸層,然後預測bounding boxes。定位任務的網路最後3個全連線層的節點數分別維4096、1024、4,4代表描述bounding box的4個座標。最後一層4是和類別有關的class-specific,對於每一個類都要單獨訓練。用的loss是L2
combining predictions 綜合預測
之前提到了本文的一個main contribution是積累預測,而不是抑制。 對於每個尺度預測的結果,通過一種貪婪演算法進行綜合-平均:
- 在6個尺度上進行分類任務,每個尺度取top-k個結果,對圖片類別進行標定
- 同樣的,在6個尺度上進行定位任務,得到bounding box結果
- 將所有尺度的取並集得到大的
- 將中的bounding box進行整合/抑制,具體做法:選取兩個box ,計算match_score(),如果match_score<閾值,則把從刪除,並將的融合放進;如果match_score>閾值,stop。
Object detection 之 DeepMultiBox
Scalable Object Detection using Deep Neural Networks
利用深度神經網路實現可擴充套件的目標檢測
2014 CVPR,Google出品
摘要
文章指出之前的目標檢測模型存在的問題:無法處理同類物體的多個例項cannot handle multiple instances of the same object。本文提出一種用於目標檢測的深度神經網路,產生和物體種類無關的bounding box,並且每個box都有一個置信度表示存在任務目標的可能性。實驗結果表明,文章提出的DeepMutliBox方法不僅能夠檢測同一物體的不同例項,而且對未出現過的目標具有不錯的泛化能力。
主要亮點
- 本文將目標檢測問題歸納為Bounding Box的迴歸問題,並且對Box存在目標的可能性用置信度進行量化。
- 將分類和檢測兩個task結合,多工共用一個深度卷積網路。
- 提出class-agnositc與物體類別無關的矩形框,對未見過的目標有很好的泛化能力。
Approach
通過預測一系列可能存在目標的Bbox,以及每個Bbox的置信度(這個置信度表示存在任何目標的可能,不針對具體目標種類) 模型:為了得到Bbox和置信度,需要將模型進行一定的修改。 Bbox包含4個值,可以用4維向量表示。在DNN的最後一個隱含層後加一個fc得到。 置信度用一個[0,1]之間的小數表示。在DNN的最後一個隱含層加一個fc和Sigmoid函式得到。文章中用於分類的網路是AlexNet Loss function:網路的優化方向有2個
- 對於和Ground truth最吻合的點,希望其置信度越大越好,即這個bbox中確實存在目標;
- 對於和Ground truth不吻合的點,希望其置信度越小越好,即這些bbox中不存在目標;
因此,提出2個損失函式: L2迴歸損失: 只有當時才有會有loss,即最吻合的bbox和ground truth的L-2差,顯然希望最吻合的bbox和ground truth是一樣的,這樣loss最小,越小說明產生的bbox越準確。 cross-entropy 分類損失: 但是僅僅有L2迴歸損失是不夠的,還需要加入分類損失,用交叉熵損失。 對於前一項,當時即分類正確,希望越大越好; 對於後一項。當即分類錯誤,希望越大,即越小越好。 最終的損失函式包括迴歸損失和分類損失: 訓練時
Optimization:作者訓練CNN用的時經典的反向傳播BP。 Training Details:採用了3個modification提升訓練的速度和精度
- perform clustering of ground truth locations and find K such clusters/centroids.
- using priors in the matching process
- 【還有啥】