本文僅供個人學習使用,如有侵權立刻删除; 原文連結傳送:http://blog.csdn.net/u014696921/article/details/53767153 自2015以來,人工智能在計算機視覺領域(人臉識别\物體分類\圖檔描述)已經超越人類的識别正确率和速度,而關于速度的提升,不得不提RGB的開山之作(Faster-RCNN) . 先來個概述:Faster-RCNN通過交叉訓練方式,共享 卷積特征,進而大幅縮減了訓練參數(原文描述為RPN cost-free)------ 除了CNN網絡架構本身具有的權值共享,在RGB的論文裡我們再次感受到共享思想的偉大:通過交替訓練兩個類型的網絡達到(cost-free)! 當然,從實驗資料來看:也取得了近乎real-time的性能,真是“Deep learning 搞定一切vision task”.另外, 我也基于該技術做了一個實時場景分析和描述的人工智能系統:先進行場景中各類物體的識别(Faster-RCNN),再使用自然語言描述(LSTM),(即具備感覺(識别物體)和認知能力(學習如何去表達)). 點選打開連結 效果如論文所述"waives nearly all computational burdens of Selective Search at test-time—the effective running time for proposals is just 10 milliseconds."
INTRODUCTION
首先,論文回顧Fast-RCNN:與典型的RCNN不同的是,典型的RCNN使用Selective Search;而Fast-RCNN使用EdgeBoxes。直接取得性能上的優勢,論文給出的資料是,Selective Search:2 seconds per image,而使用EdgeBoxes是0.2 seconds per image,也就是Fast-RCNN提高了十倍的速度.
然後, 論文指出Faster-RCNN( 可以看做是對 Fast-RCNN 的再次改進版):主要解決的是如何在RPN網絡中快速獲得 proposal, 作者在他的論文中提出,卷積後的特征圖其實是可以用來生成 region proposals ! 是以,作者通過增加兩個獨立\平行的全連接配接層來實作 Region Proposal Networks (RPN) , 一個用來以回歸方式生成推薦區域(region bounds),另一個則是objectness score。
RPN的目的是實作"attention"機制,告訴後續的扮演檢測\識别\分類角色的Fast-RCNN應該注意哪些區域,它從任意尺寸的圖檔中得到一系列的帶有 objectness score 的 object proposals。具體流程是:使用一個小的網絡在已經進行通過卷積計算得到的feature map上進行滑動掃描,這個小的網絡每次在一個feature map上的一個視窗進行滑動(這個視窗大小為n*n----在這裡,再次看到神經網絡中用于縮減網絡訓練參數的局部感覺政策receptive field,通常n=228在VGG-16,而作者論文使用n=3),滑動操作後映射到一個低維向量(例如256D或512D,這裡說256或512是低維,有些同學發郵件問我:n=3,n*n=9,為什麼256是低維呢?那麼解釋一下:低維相對不是指視窗大小,視窗是用來滑動的!256相對的是a convolutional feature map of a size W × H (typically ∼2,400),而2400這個特征數很大,是以說256是低維.另外需要明白的是:這裡的256維裡的每一個數都是一個Anchor(由2400的特征數滑動後操作後,再進行壓縮))最後将這個低維向量送入到兩個獨立\平行的全連接配接層:box回歸層(a box-regression layer (reg))和box分類層(a box-classification layer (cls))。如下圖所示:
Faster RCNN算法詳解 思想 區域生成網絡:結構 區域生成網絡:訓練 共享特征 實驗
Translation-Invariant Anchors
在計算機視覺中的一個挑戰就是平移不變性:比如人臉識别任務中,小的人臉(24*24的分辨率)和大的人臉(1080*720)如何在同一個訓練好權值的網絡中都能正确識别. 傳統有兩種主流的解決方式,第一:對圖像或feature map層進行尺度\寬高的采樣;第二,對濾波器進行尺度\寬高的采樣(或可以認為是滑動視窗). 但作者的解決該問題的具體實作是:通過卷積核中心(用來生成推薦視窗的Anchor)進行尺度、寬高比的采樣。如上圖右邊,文中使用了3 scales and 3 aspect ratios (1:1,1:2,2:1), 就産生了 k = 9 anchors at each sliding position.
其中, pi 是預測其是一個 object 的 probability ,當其label 為 positive 時, p?i 為1,否則為0。 ti={tx,ty,tw,th} 是預測的 bounding box, t?i 是與這個 anchor 相對應的 ground-truth box 。 classification loss Lcls 是一個二分類(是或者不是object)的 softmax loss 。regression loss Lreg(ti,t?i)=R(ti?t?i) , R 是 Fast R-CNN 中定義的 robust loss function (smooth-L1) , p?iLreg 表示隻針對 positive anchors ( p?i = 1). 這裡還有一個平衡因子 λ , 文中設為10,表示更傾向于box location。
Optimization
使用 back-propagation(反向傳播) and stochastic gradient descent (随機梯度) 對這個RPN進行訓練,每張圖檔随機采樣了256個 anchors , 這裡作者認為如果使用所有的anchors來訓練的話,this will bias towards negative samples as they are dominate。是以這裡作者将采樣的正負positive and negative anchors have a ratio of 1:1. 新增的兩層使用高斯來初始化,其餘使用 ImageNet 的 model 初始化。
Sharing Convolutional Features for Region Proposal and Object Detection
通過交替優化來學習共享的特征,共四個步驟:
1. 用 ImageNet 的 model 初始化一個RPN,然後針對 region proposal task 進行微調。
每個 anchor , 使用 3 scales with box areas of 1282 , 2562 , and 5122 pixels, and 3 aspect ratios of 1:1, 1:2, and 2:1. 忽略了所有的 cross-boundary anchors 。在 proposal regions 上根據 cls scores 進行了 nonmaximum suppression (NMS) 。
Experiments
作者文中讨論的各種政策和參數進行各個資料集的實驗和對應的資料結果.
Conclusion
縱觀全文,詳述了如何使用 Region Proposal Networks (RPN) 來生成 region proposals(通過卷積核中心(用來生成推薦視窗的Anchor)尺度和比例采樣實作平移不變性) ,然後使用Fast-RCNN進行物體檢測, 接着使用交替訓練進而共享特征(也就是減少了網絡參有數)----再次強調大招在這裡!!!, 最終region proposal step is nearly cost-free,也就是近乎實時的性能.
Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2014. ↩
Girshick, Ross. “Fast r-cnn.” Proceedings of the IEEE International Conference on Computer Vision. 2015. ↩
M. D. Zeiler and R. Fergus, “Visualizing and understanding convolutional neural networks,” in European Conference on Computer Vision (ECCV), 2014. ↩
K. Simonyan and A. Zisserman, “Very deep convolutional networks for large-scale image recognition,” in International Conference on Learning Representations (ICLR), 2015. ↩