CVPR論文解讀:非常高效的物體檢測Mimic方法
雷鋒網 AI科技評論按:CVPR 2017正在夏威夷火熱進行中,精彩論文層出不窮。下文是Momenta高級研發工程師蔣雲飛對會上 Mimicking Very Efficient Network for Object Detection 論文進行的解讀。
背景
Mimic作為一種模型小型化的方法,Hinton在 Distilling the Knowledge in a Neural Network一文中已經詳細定義並介紹過,但近些年來大部分有關於mimic的論文主要都是局限在較為簡單的classification 的任務中,而對於較為複雜一些的detection任務,直接套用以前的方案則顯得不行。本文提出了一種學習feature map來實現Object Detection任務上mimic的方法。
傳統的Mimic過程,一般使用一個已經訓練好的大模型,固定該模型的weights不變,設計一個小模型,學習大模型的soft targets 或者logits的輸出;大模型學習到有效的信息可以傳遞給小模型,使得小模型也可以有較為不錯的性能表現,其Loss函數如下:
其中W為小模型的weights,g(x;W) 為小模型的輸出,z為學習的大模型的輸出。
然而直接套用該方法在檢測任務中,效果很差,因此作者進行了進一步的探索。首先,對於常見的檢測網路如Faster-RCNN、RFCN、SSD等進行分析,可以發現,它們主要包含兩部分,分別為feature extractor以及feature decoder。而不同的大網路主要是feature extractor不同,因此作者認為對於feature map進行mimic,可以獲得較為有效的結果。
Mimic方法詳細敘述:
因此作者提出了本文的mimic演算法,在使用本身ground-truth監督小模型訓練的同時,加入大小模型之間feature map的監督,使得mimic的效果會更好。大致的流程如下圖所示:
但同時作者也指出,單純使小模型學習大模型的feature map並不能work,原因在於feature map的維度太高,包含太多全局的信息,而對於僅有少量object的feature map,通常只有微弱的響應。因此,該文中提出了一個新的卷積網路mimic方法,即將學習整個feature map變為學習proposal採樣之後的feature來簡化任務。
在由小網路生成的proposal中,使用spatial pyramid pooling方法在大小網路上進行局部特徵採樣(後經作者指正為直接使用pixel-wise的學習),然後通過L2 loss減小二者之間的差別,loss function定義如下:
總的loss主要由兩部分組成,分別為mimic loss 以及ground-truth loss,作者在實驗中發現,對於mimic loss進行normalization可以取得更為穩定的mimic結果:
同時,作者還提到了對於小網路與大網路feature map大小不同的情況(譬如小網路中輸入圖像減半),可以增加一個轉換層(deconvolution)使得大小網路最終mimic的層保持一致,如下圖所示:
另外,在faster rcnn中stage2 fast rcnn的訓練過程中,也可以添加大網路的監督信號(監督框的classification以及regression),使得小網路可以學習到更多大網路的有效信息,得到更好的結果。
結果分析:
作者在Caltech行人數據集以及PASCAL VOC 2007 數據集上進行了實驗。
Caltech使用log average Miss Rate on False Positive Per Image作為評價標準,作者首先訓練並得到了兩個baseline檢測網路:
同時,定義了mimic的小網路的結構為1/n-Inception 網路,網路的深度與層數沒有改變,減小每層conv的channel個數,使得網路變得更細。
可以看到直接使用傳統mimic方法訓練模型,結果非常糟糕,甚至不及直接使用數據集對小網路進行訓練:
而後作者使用本文方法進行Mimic訓練,取得了較為可觀的性能增長:
從上述結果中,可以看到使用mimic的結果取得了與原網路差不多甚至稍好的結果。
同理,在VOC數據集的測試結果中也可以看到,Mimic的方法取得了很有競爭力的結果。
現場問答
在2017 CVPR現場與論文的作者李全全進行的討論與交流:
Q:本文為何使用 spatial pyramid pooling進行feature map的sample,是否考慮使用其他方式例如ROI-pooling?
A:經過李全全確認,他後期是直接使用ROI,也即兩個feature map pixel-wise相減,而不是spatial pyramid pooling;使用SPP的效果理應是好於單size的pooling的(roi-pooling)。
Q:為何使用單層(最後一層)feature map進行mimic,是否可以融合多個feature map?
A:可以嘗試融合多個feature map 進行監督,理論上來說效果應該會比較好,但由於時間較為緊張,所以沒有做。文中使用的normalization是為了穩定,因為每次出來的proposal的size是不斷變化的,因此在計算loss的時候的pixel的數量也會發生較大的變化,因此需要使用normalization。
Q:為何使用 deconvolution,是否可以對feature map 直接進行線性縮放?
A:直接對於feature map進行縮放是可行的。同時,這樣的結構本身會在小物體的檢測上比較有用。如果把deconv層獨立成一個分支的話(deploy的時候去掉這個分支),效果可能比不上將這個小網路放大,目前看來,大的feature層對於小物體的檢測還是比較有好處的。
Q:為何使用小網路生成的 proposal ,有沒有嘗試過直接使用 ground-truth boxes?
A:希望模型更多的是關注object在feature map上有響應的地方,所以使用Top-proposal。具體來說,Top-proposal的方法中,proposal的數量設定在256或者512,正負樣本比例設定在1:1;而使用GroundTruth的框來做監督的效果並不好,作者有進行過類似的實驗:對於負樣本來說使用random的sample,正樣本直接使用GroundTruth,結果比使用top-proposal的方法差一些。
Q:有沒有嘗試過其他不同網路結構的mimic (更小或者更瘦長的)?
A:對於mimic來說,其實小網路本身有一個baseline,大網路有一個baseline,mimic的任務便是縮小兩者之間的差別;而對於小網路來說,相似的網路會有較好的學習能力,當然對於不同結構的小網路也可以使用deconv的方式來進行學習。
論文地址:http://openaccess.thecvf.com/content_cvpr_2017/papers/Li_Mimicking_Very_Efficient_CVPR_2017_paper.pdf
雷鋒網 AI科技評論編輯。
※聯合高通,HTC Vive 將如何打造中國版 Vive 一體機?
※全球頂級白帽黑客大會,騰訊安全獲白帽黑客奧斯卡提名彰顯中國安全力
※阿里巴巴安全第一人肖力:中國 90 %的企業安全只能得 0到1 分,這裡有四個趨勢
TAG:雷鋒網 |
※BigBasket與GMETRI合作推出VR購物體驗
※TensorFlow 物體檢測API全面升級,快來解鎖新姿勢
※一文讀懂物體分類AI演算法:LeNet-5 AlexNet VGG Inception ResNet MobileNet
※曠視科技提出DetNet:一個為物體檢測而生的Backbone
※用TensorFlow實現物體檢測的像素級分類
※用 TensorFlow 實現物體檢測的像素級分類
※Guided Anchoring: 物體檢測器也能自己學 Anchor
※提供全新購物體驗 FaceCake推出AR應用
※UCSD展示可輕鬆列印的LiveTag標籤 讓普通物體秒變智能
※把醬油瓶放進菜籃子:UC Berkeley提出高度逼真的物體組合網路Compositional GAN
※Facebook 開源 CV 開發平台 Detectron,打包支持各種物體識別演算法
※圖普科技:如何用TensorFlow實現物體檢測的像素級分類
※大新聞!Facebook 開源了物體檢測研究平台 Detectron
※大新聞!Facebook 開源了 Python 實現的物體檢測研究平台 Detectron
※教你在Python中構建物體檢測系統
※Facebook開源物體識別工具Detectron,加速計算機視覺研究
※eBay推出新功能「Interests」,聚焦用戶個性化購物體驗
※教你用 Python 做一個物體檢測系統
※VR廣告公司Vertebrae幫助零售商構建沉浸式購物體驗
※DeepIM:基於單張RGB圖像的物體姿態估計