天天看點

目标檢測之CornerNet-Lite

論文: CornerNet-Lite: Efficient Keypoint Based Object Detection

Github:https://github.com/princeton-vl/CornerNet-Lite

CornerNet作為無anchor檢測架構的典範,CornerNet-Lite依然是普林斯頓的幾位哥們的續集。

論文主要改進CornerNet推理速度慢的問題,提出了CornerNet-Lite。CornerNet-Lite主要由2個側重不同的網絡組成,分别是CornerNet-Saccade和CornerNet-Squeeze。CornerNet-Saccade适用于離線檢測,相比CornerNet在COCO資料集上提升了1%的準确性和6倍的速度。CornerNet-Squeeze适用于實時檢測,相比YOLOv3在coco資料集上提升1.4%。速度快5ms。

目标檢測之CornerNet-Lite

主要貢獻:

  1. 提出了CornerNet-Saccade和CornerNet-Squeeze兩個新穎的結構作為無anchor領域的檢測算法。
  2. CornerNet-Saccade相比CornerNet在coco資料集上将準确性從42.2%提升到43.2%,速度提升6倍。
  3. CornerNet-Squeeze相比CornerNet在coco資料集上将準确性從33.0%提升到34.4%,速度從39ms降低到30ms。

目标檢測中的視覺掃動(Saccades):

人類尋找物體是一個動态的過程,且尋找時間與場景的複雜度是直接相關的。當我們的眼神在不同的點之間漂移時,其他的區域會被我們有意忽視。

然而,現在的檢測算法是一種靜态的推理過程且圖像金字塔中的每個像素都受到了一樣的對待,這使得過程變得沒有效率。像selectivesearch或者RPN等,每一個像素區域都得到了公平的對待。而基于人眼掃動,這種attention機制的思想,卻可以減少好多無用的計算。直接提取到注意力關注區域。像AutoFocus算法,Autofocus: Efficient multi-scale inference,大大的提高了faster rcnn的訓練速度。

CornerNet-Saccade:

目标檢測之CornerNet-Lite

首先将輸入圖檔通過resize下采樣操作2次,分别得到2個圖像,分别為長邊255像素和長邊192像素。然後類似faster rcnn一樣,将192長邊的圖像上下左右補黑色像素至255大小,這樣這2個圖就可以走batch。當然和faster rcnn還有一點差別,faster中是直接從左上角開始對齊,不足的地方補充黑色像素。

然後基于一個沙漏子產品的編碼解碼子產品,在解碼子產品的不同層上可以分别得到3個不同大小的特征圖,分别預測小物體(少于32像素),中物體(32到96像素),大物體(大于96像素),每一個層分别接入3*3conv+RELU+1*1conv+Sigmoid,最終得到3個預測的attention特征圖。而在測試的時候隻處理門檻值大于0.3的特征圖區域。

基于這3個特征圖,可以得到在這3個特征圖上的物體坐标和縮放尺度,基于此,還原回原圖的坐标。而訓練的時候是在每一個物體的中心位置點作為attention點,并使用focal loss進行訓練。

然後基于得到的尚不精确的邊框,根據邊框得分進行排序,取前top-k的邊框。

最後基于這些邊框從原圖crop出這些區域,再經過2個沙漏結構的網絡,得到最終的預測的精确的邊框坐标。最後進行soft-nms操作,得到最終的結果。

和CornerNet的解構對比,

CornerNet,2個沙漏,104層

CornerNet-Saccade,3個沙漏,54層

CornerNet-Squeeze:

該網絡的改進思想源自SqueezeNet和MobileNets。

  1. 使用SqueezeNet中的firemodule替換CornerNet中的殘差子產品。包括squeeze layer中的1*1卷積替代3*3卷積進行通道的降維。expand layer中的3*3+1*1卷積替代3*3卷積。
  2. 使用3*3的depthwise conv替換firemodule中的傳統3*3 conv
目标檢測之CornerNet-Lite

實驗結果:

目标檢測之CornerNet-Lite
目标檢測之CornerNet-Lite

總結:

作為CornerNet的後續之作,貢獻了2個輕量級的無anchor檢測架構。

繼續閱讀