ECCV 2018 | CornerNet:目標檢測演算法新思路

極市平臺發表於2018-08-30

本文由極市部落格原創,作者陳泰紅。
複製程式碼


1目標檢測演算法概述

CornerNet(arxiv.org/abs/1808.01…)是密歇根大學Hei Law等人在發表ECCV2018的一篇論文,主要實現目標檢測。在開始介紹CornerNet論文之前,先複習一下目標檢測領域的主流演算法,因為作者提出的演算法和主流演算法很多不一樣。


深度方法主要分為one-stage(e.g. SSD, YOLO)和two-stage(e.g. RCNN系列)兩種。single-stage直接在圖片上經過計算生成detections。two-stage先提取proposal, 再基於proposal做二次修正。相對來說single-stage速度快, 精度低. 而two-stage精度高, 速度慢。


2012年, 基於深度學習CNN網路的AlexNet在ILSVRC競賽的ImageNet上大放異彩, 2014年Ross Girshick利用CNN成功取代了HOG、DPM等特徵提取, ross等人把目標檢測分成了三個步驟,首先是對影象提取detection proposal,其實就是影象中一些可能是檢測物體的區域,然後使用cnn對這些proposal進行特徵提取,最後用svm對這些提取到的特徵進行分類,從而完成檢測的任務,這是 Two-stage object detectors鼻祖。


從RCNN、SPPNet到fast RCNN,再到Faster RCNN,目標檢測的三個步驟(區域選擇,特徵提取,分類迴歸)被統一到一個深度網路框架之內,大大提高了執行速度。FCN,FPN, RoI Align, Mask Branch等技術把Faster R-CNN往前極大的推進。之後又出現了FCN, IoU, NMS,ION,FPN, RoI Align和Mask Branch等技術淵源和YOLO, SSD, AttratioNet, G-CNN, R-FCN, Mask R-CNN, Mask ^X R-CNN等的進化關係!


ECCV 2018 | CornerNet:目標檢測演算法新思路

圖 1 Faster RCNN演算法框架


one-stage檢測演算法,其不需要region proposal階段,直接產生物體的類別概率和位置座標值,經過單次檢測即可直接得到最終的檢測結果,因此有著更快的檢測速度,比較典型的演算法如YOLO,SSD,Retina-Net。YOLO 使用了分治思想,將輸入圖片分為 SxS 的網格,不同網格用效能優良的分類器去分類。SSD 將 YOLO 和 Anchor 思想融合起來,並創新使用 Feature Pyramid 結構。YOLO, YOLO-v2, YOLO-v3, SSD、DSSD等實時模型的推出, 讓目標檢測變得更快。


2.Motivation

CornerNet認為Two-stage目標檢測最明顯的缺點是 Region Proposal 階段需要提取的anchor boxes。(1)、提取的anchor boxes數量較多,比如DSSD使用40k, RetinaNet使用100k,anchor boxes眾多造成anchor boxes征服樣本均衡。(2)、anchor boxes需要調整很多超引數,比如anchor boxes數量、尺寸、比率,影響模型的訓練和推斷速率。


論文提出one-stage的檢測方法,捨棄傳統的 anchor boxes思路,提出CornerNet模型預測目標邊界框的左上角和右下角一對頂點,即 使用單一卷積模型生成熱點圖和連線向量:所有目標的左上角和所有目標的右下角熱點圖,每個頂點的連線向量(embedding vector)。

ECCV 2018 | CornerNet:目標檢測演算法新思路

圖 2 CornerNet框架


作者的思路其實來源於一篇多人姿態估計的論文[1]。基於CNN的2D多人姿態估計方法,通常有2個思路(Bottom-Up Approaches和Top-Down Approaches):

(1)Top-Down framework,就是先進行行人檢測,得到邊界框,然後在每一個邊界框中檢測人體關鍵點,連線成每個人的姿態,缺點是受人體檢測框影響較大,代表演算法有RMPE。

(2)Bottom-Up framework,就是先對整個圖片進行每個人體關鍵點部件的檢測,再將檢測到的人體部位拼接成每個人的姿態,代表方法就是openpose。


論文的第一個創新是講目標檢測上升到方法論,基於多人姿態估計的Bottom-Up思想,首先同時預測定位框的頂點對(左上角和右下角)熱點圖和embedding vector,根據embedding vector對頂點進行分組。


論文第二個創新是提出了corner pooling用於定位頂點。自然界的大部分目標是沒有邊界框也不會有矩形的頂點,依top-left corner pooling 為例,對每個channel,分別提取特徵圖的水平和垂直方向的最大值,然後求和。

ECCV 2018 | CornerNet:目標檢測演算法新思路

圖 3 corner pooling計算方式


論文認為corner pooling之所以有效,是因為(1)目標定位框的中心難以確定,和邊界框的4條邊相關,但是每個頂點只與邊界框的兩條邊相關,所以corner 更容易提取。(2)頂點更有效提供離散的邊界空間,實用O(wh)頂點可以表示O(w2h2) anchor boxes。


論文的第三個創新是模型基於hourglass架構,使用focal loss[5]的變體訓練神經網路。


論文提出的CornerNet在MS COCO測試驗證,達到42.1% AP,完勝所有的one-stage目標檢測方法,同時在git公佈基於PyTorch原始碼:

github.com/umich-vl/Co…


3.Architecture

3.1 Overview

ECCV 2018 | CornerNet:目標檢測演算法新思路

圖 4CornerNet模型架構


如圖 4所示,CornerNet模型架構包含三部分,Hourglass[7] Network,Bottom-right corners&Top-left Corners Heatmaps和Prediction Module。


Hourglass Network是人體姿態估計的典型架構,論文堆疊兩個Hourglass Network生成Top-left和Bottom-right corners,每一個corners都包括corners Pooling,以及對應的Heatmaps, Embeddings vector和offsets。embedding vector使相同目標的兩個頂點(左上角和右下角)距離最短, offsets用於調整生成更加緊密的邊界定位框。


3.2Detecting Corners

論文模型生成的heatmaps包含C channels(C是目標的類別,沒有background channel),每個channel是二進位制掩膜,表示相應類別的頂點位置。


對於每個頂點,只有一個ground-truth,其他位置都是負樣本。在訓練過程,模型減少負樣本,在每個ground-truth頂點設定半徑r區域內都是正樣本,這是因為落在半徑r區域內的頂點依然可以生成有效的邊界定位框,論文中設定IoU=0.7。


pcij表示類別為c,座標是(i,j)的預測熱點圖,ycij表示相應位置的ground-truth,論文提出變體Focal loss表示檢測目標的損失函式:


ECCV 2018 | CornerNet:目標檢測演算法新思路


由於下采樣,模型生成的熱點圖相比輸入影象解析度低。論文提出偏移的損失函式,用於微調corner和ground-truth偏移。


ECCV 2018 | CornerNet:目標檢測演算法新思路


3.3Grouping Corners

輸入影象會有多個目標,相應生成多個目標的左上角和右下角頂點。對頂點進行分組,論文引入[1] Associative Embedding的思想,模型在訓練階段為每個corner預測相應的embedding vector,通過embedding vector使同一目標的頂點對距離最短,既模型可以通過embedding vector為每個頂點分組。


模型訓練Lpull損失函式使同一目標的頂點進行分組, Lpush損失函式用於分離不同目標的頂點。


ECCV 2018 | CornerNet:目標檢測演算法新思路


3.4Hourglass Network

Hourglass Network同時包含了bottom-up(from high resolutions to low resolutions)和top-down (from low resolutions to high resolutions)。而且,整個網路有多個bottom-up和top-down過程。這樣設計的目的是在各個尺度下抓取資訊。針對目標檢測任務,論文調整了Hourglass一些策略。


4.Experiments

論文的訓練損失函式包含了第三部分介紹的4個損失函式,α, β γ用於調整相應損失函式的權重:


ECCV 2018 | CornerNet:目標檢測演算法新思路


模型訓練過程中使用10個Titan X (PASCAL) GPUs,詳細的訓練引數可參考原論文。模型的推斷時間是244ms/ image (Titan XPASCAL GPU)。


CornerNet相比其它one-stage目標檢測演算法,MS COCO資料集測試AP有明顯提高,雖然效能接近於Two-stage檢測演算法,但是推斷時間無明顯優勢。


ECCV 2018 | CornerNet:目標檢測演算法新思路

Table 4MS COCO test-dev資料集效能對比


5.Discussion

個人觀點:CornerNet創新來自於多人姿態估計的Bottom-Up思路,預測corner的heatmps,根據Embeddings vector對corner進行分組,其主幹網路也來自於姿態估計的Hourglass Network。模型的原始碼在github已經公佈,可以放心大膽的研究測試。


CV的很多工之間是相通的,CVPR2018 best paper [8]也印證這一觀點,在不同的子領域尋找相似性,遷移不同領域的演算法,是CV行業一個趨勢。


多人姿態估計的Hourglass Network演算法也不斷改進中,其實論文模型的推斷速率受限於Hourglass Network的特徵提取,有志青年也可以沿著這個思路取得更好的效能。

以上僅為個人閱讀論文後的理解、總結和思考。觀點難免偏差,望讀者以懷疑批判態度閱讀,歡迎交流指正。


6.參考文獻

  • Newell, A., Huang, Z., Deng, J.: Associative embedding: End-to-end learning for joint detection and grouping. In: Advances in Neural Information Processing Systems. pp. 2274{2284 (2017)
  • Hei Law, Jia Deng :CornerNet: Detecting Objects as Paired Keypoints.ECCV2018
  • Girshick, R.: Fast r-cnn. arXiv preprint arXiv:1504.08083 (2015)
  • Girshick, R., Donahue, J., Darrell, T., Malik, J.: Rich feature hierarchies for accurate object detection and semantic segmentation. In: Proceedings of the IEEE conference on computer vision and pattern recognition. pp. 580{587 (2014)
  • Lin, T.Y., Goyal, P., Girshick, R., He, K., Doll´ar, P.: Focal loss for dense object detection. arXiv preprint arXiv:1708.02002 (2017)
  • Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C.Y., Berg, A.C.:SSD: Single shot multibox detector. In: European conference on computer vision.pp. 21{37. Springer (2016)
  • Newell, A., Yang, K., Deng, J.: Stacked hourglass networks for human pose estimation. In: European Conference on Computer Vision. pp. 483{499. Springer (2016)
  • Amir R. Zamir , Alexander Sax Taskonomy: Disentangling Task Transfer Learning.CVPR2018


本文為極市平臺原創文章,更多技術分享和專案需求合作請關注極市平臺微訊號(extrememart)


相關文章