對話CVPR2016:目標檢測新進展
大家好,我是孔濤。在知乎裡邊的名字是孔巴巴,從今天開始,我將在這個專欄里分享一些我見過的在AI、互聯網領域的見聞、體會和知識。
今天我與大家分享的是CVPR2016年會議中關於目標檢測的部分相關工作,這一篇文章首先在 深度學習大講堂 發出,這裡算是轉載吧,在此也給深度學習大講堂做個廣告。文章所提到的內容不涉及具體的實現細節,更多是從整個工作的出發點和解決問題的思路出發進行討論,下邊是具體的內容。
2016年的CVPR會議目標檢測(在這裡討論的是2D的目標檢測,如圖1所示)的方法主要是基於卷積神經網路的框架,代表性的工作有ResNet[1](KaimingnHe等)、YOLO[5](JosephnRedmon等)、LocNet[7](SpyrosnGidaris等)、HyperNet[3](Tao Kong等)、ION[2](SeannBell等)、G-CNN[6](MahyarnNajibi等)。在這裡之所以把ResNet也放進來,是因為有效的特徵對於目標檢測領域是極為重要的。
圖1:2D目標檢測示意圖
在目標檢測中,以下幾個指標非常重要:(a)識別精度;(b)識別效率;(c)定位準確性。以上的幾個工作或者側重識別率和效率,或者通過某種方式提高定位的準確性,下面分別展開進行描述。
一、識別精度
說起識別精度,不得不提目標檢測中衡量檢測精度的指標mAP(mean average precision)。簡單來講就是在多個類別的檢測中,每一個類別都可以根據recall和precision繪製一條曲線,那麼AP就是該曲線下的面積,而mAP是多個類別AP的平均值,這個值介於0到1之間,且越大越好。具有代表性的工作是ResNet、ION和HyperNet。
ResNet:何凱明的代表作之一,獲得了今年的best paper。文章不是針對目標檢測來做的,但其解決了一個最根本的問題:更有力的特徵。檢測時基於FasternR-CNN的目標檢測框架,使用ResNet替換VGG16網路可以取得更好的檢測結果。(實際上,使用ResNet網路代替ZF, VGG,nGoogleNet等網路模型無論在圖像分類、目標檢測還是圖像分割等任務上都可以大大提高識別的準確率)。
圖2:ResNet獲得CVPR2016的best paper
ION(inside-outside-network):這個工作的主要貢獻有兩個,第一個是如何在FastnR-CNN的基礎之上增加context信息,所謂context在目標檢測領域是指感興趣的ROI周圍的信息,可以是局部的,也可以是全局的。為此,作者提出了IRNN的概念,這也就是outside-network。第二個貢獻是所謂skip-connection,通過將deepnConvNet的多層ROI特徵進行提取和融合,利用該特徵進行每一個位置的分類和進一步回歸,這也就是inside-network。
依靠這兩個改進,ION可以在Pascal VOC 2007數據集上邊提高大約5個百分點。同時也獲得了COCOn2015 detection競賽的best student entry。
圖3:Inside-Outside Net (ION)
HyperNet:文章的出發點為一個很重要的觀察:神經網路的高層信息體現了更強的語義信息,對於識別問題較為有效;而低層的特徵由於解析度較高,對於目標定位有天然的優勢,而檢測問題恰恰是識別+定位,因此作者的貢獻點在於如何將deepnConvNet的高低層特徵進行融合,進而利用融合後的特徵進行regionnproposal提取和進一步目標檢測。不同於FasternR-CNN,文章的潛在Anchor是用類似於BING[4]的方法通過掃描窗口的方式生成的,但利用的是CNN的特徵,因此取得了更好的性能。
通過以上的改進策略,HyperNet可以在產生大約100個regionnproposal的時候保證較高的recall,同時目標檢測的mAP相對於FastnR-CNN也提高了大約6個百分點。
圖4:HyperNet 框架
二、識別效率
YOLO:這是今年的oral。這個工作在識別效率方面的優勢很明顯,可以做到每秒鐘45幀圖像,處理視頻是完全沒有問題的。YOLO最大貢獻是提出了一種全新的檢測框架——直接利用CNN的全局特徵預測每個位置可能的目標,相比於R-CNN系列的regionnproposal+CNN 這種兩階段的處理辦法可以大大提高檢測速度。今年新出來的SSD[11]方法雖然在識別率上邊有了很大的提升,但YOLO的先驅作用是顯而易見的。
圖5:YOLO識別框架
G-CNN:不管是Fast R-CNN[9],還是Faster R-CNN,或者像HyperNet這樣的變種,都需要考慮數以萬計的潛在框來進行目標位置的搜索,這種方式的一個潛在問題是負樣本空間非常大,因此需要一定的策略來進行抑制(不管是OHEM[8]還是regionnproposal方法,其本質上還是一種抑制負樣本的工作)。G-CNN從另一個角度來克服這個問題。G-CNN在在初始化的時候不需要那麼多框,而是通過對圖像進行劃分(有交疊),產生少量的框(大約180個),通過一次回歸之後得到更接近物體的位置。然後以回歸之後的框作為原始窗口,不斷進行迭代回歸調整,得到最終的檢測結果。
經過五次調整之後,G-CNN可以達到跟Fast R-CNN相當的識別性能,但速度是FastnR-CNN的5倍(3fps)。
圖6:G-CNN示意圖
圖7:G-CNN訓練過程
三、準確性
LocNet:以上提到的工作都是在做整個目標檢測的框架,而LocNet在做另一件事情—如何產生更準確的boundingnbox?
圖8:LocNet 示意圖
在目標檢測的評價體系中,有一個參數叫做IoU,簡單來講就是模型產生的目標窗口和原來標記窗口的交疊率。在PascalnVOC中,這個值為0.5。而2014年以來出現的MSnCOCO競賽規則把這個IoU變成了0.5-1.0之間的綜合評價值,也就是說,定位越準確,其得分越高,這也側面反映了目標檢測在評價指標方面的不斷進步。
回到這個話題,如何產生更準確的目標位置呢?LocNet的解決方案是:針對每一個給定的初始框進行適當的放大,然後用一個CNN的網路回歸出這個放大後的框包含的那個正確框的位置。為了達到這個目標,需要定義回歸方式,網路以及模型,具體的細節參見[7]。
經過把原始的框(比如selective search生成的)進行再一次回歸之後,再放入FastnR-CNN進行檢測,在IoU=0.5的情況下,在PascalnVOC 數據集上mAP可以提升大約5個百分點,而IoU=0.7時可以達到13個百分點的提升,效果還是挺驚人的。
結語
目標檢測是計算機視覺中基礎而且熱門的領域,最近兩年的由於深度學習的影響產生了巨大的進步,相信在未來的一兩年時間有更優秀的工作出現。
註:以上提到的內容僅代表作者自己的觀點,如有錯誤之處歡迎批評指正。
[1] He K, Zhang X, Ren S, etnal. Deep residual learning for image recognition. In CVPR 2016
[2] Bell S, Zitnick C L,nBala K, et al. Inside-outside net: Detecting objects in context with skipnpooling and recurrent neural networks. In CVPR 2016
[3] Kong T, Yao A, Chen Y,net al. HyperNet: Towards Accurate Region Proposal Generation and Joint ObjectnDetection. In CVPR 2016
[4] Cheng M M, Zhang Z, LinnW Y, et al. BING: Binarized normed gradients for objectness estimation atn300fps. In CVPR 2014
[5] Redmon J, Divvala S,nGirshick R, et al. You only look once: Unified, real-time object detection. InnCVPR 2016
[6] Najibi M, Rastegari M,nDavis L S. G-CNN: an Iterative Grid Based Object Detector. In CVPR 2016
[7] Gidaris S, Komodakis N.nLocNet: Improving Localization Accuracy for Object Detection. In CVPR 2016
[8] Shrivastava A, Gupta A,nGirshick R. Training region-based object detectors with online hard examplenmining. In CVPR 2016
[9] Girshick R. Fast R-CNN.nIn ICCV 2015
[10] Ren S, He K, Girshick R, et al. Faster R-CNN: Towardsnreal-time object detection with region proposal networks. In NIPS 2015
[11] Liu W, Anguelov D, Erhan D, et al. SSD: Single ShotnMultiBox Detector[J]. arXiv preprint arXiv:1512.02325, 2015.
推薦閱讀:
※人工智慧的第三次泡沫
※這個AI,能預知自己的未來。
※做NLP演算法工程師是一種什麼樣的體驗,以及日常工作是什麼?
※資訊理論與機器學習