兩階經典檢測器: Faster RCNN (一) 發展史綜述


     RCNN全稱為Regions with CNN Features, 是將深度學習應用到物體檢測領域的經典之作, 並憑借卷積網絡出色的特征提取能力, 大幅度提升了物體檢測的效果。 而隨后基於RCNNFast RCNNFaster RCNN將物體檢測問題進一步優化, 在實現方式、 速度、 精度上均有了大幅度提升。

     物體檢測領域出現的新成果很大一部分也是基於RCNN系列的思想, 尤其是Faster RCNN, 並且在解決小物體、 擁擠等較難任務時,RCNN系列仍然具有較強的優勢。 因此, 想要學習物體檢測, RCNN系列是第一個需要全面掌握的算法。

1. RCNN系列發展歷程
     在2014RCNN算法問世之后, 經歷了眾多版本的改進, 但具有里程碑式意義的當屬Fast RCNNFaster RCNN算法。 本節主要講述這3種算法的思想、 優點及存在的問題。

 1.1 開山之作: RCNN
    RCNN算法由Ross Girshick等人發表在CVPR 2014, 將卷積神經網絡應用於特征提取, 並借助於CNN良好的特征提取性能, 一舉將PASCAL VOC數據集的檢測率從35.1%提升到了53.7%

    RCNN算法流程如圖4.1所示, RCNN仍然延續傳統物體檢測的思想, 將物體檢測當做分類問題處理, 即先提取一系列的候選區域, 然后對候選區域進行分類。

   具體過程主要包含4步:
  (1) 候選區域生成。 采用Region Proposal提取候選區域, 例如Selective Search算法, 先將圖像分割成小區域, 然后合並包含同一物體可能性高的區域, 並輸出, 在這一步需要提取約2000個候選區域。 在提取完后, 還需要將每一個區域進行歸一化處理, 得到固定大小的圖像。

    (2) CNN特征提取。 將上述固定大小的圖像, 利用CNN網絡得到固定維度的特征輸出。

  (3SVM分類器。 使用線性二分類器對輸出的特征進行分類, 得到是否屬於此類的結果, 並采用難樣本挖掘來平衡正負樣本的不平衡。
  (4) 位置精修。 通過一個回歸器, 對特征進行邊界回歸以得到更為精確的目標區域。

 

   RCNN雖然顯著提升了物體檢測的效果, 但仍存在3個較大的問題:

           首先RCNN需要多步訓練, 步驟煩瑣且訓練速度較慢;

           其次, 由於涉及分類中的全連接網絡, 因此輸入尺寸是固定的, 造成了精度的降低;

           最后, 候選區域需要提前提取並保存, 占用空間較大。

 1.2 端到端: Fast RCNN
    RCNN之后, SPPNet算法解決了重復卷積計算與固定輸出尺度的兩個問題, 但仍然存在RCNN的其他弊端。 在2015年, Ross Girshick獨自提出了更快、 更強的Fast RCNN算法, 不僅訓練的步驟可以實現端到端, 而且算法基於VGG16網絡, 在訓練速度上比RCNN快了近9倍, 在測試速度上快了213倍, 並在VOC 2012數據集上達到了68.4%的檢測率。

    Fast RCNN算法框架圖如圖4.2所示, 相比起RCNN, 主要有3點改進:

       ·共享卷積: 將整幅圖送到卷積網絡中進行區域生成, 而不是像RCNN那樣一個個的候選區域, 雖然仍采用Selective Search方法, 但共享卷積的優點使得計算量大大減少。
       ·RoI Pooling: 利用特征池化(RoI Pooling) 的方法進行特征尺度變換, 這種方法可以有任意大小圖片的輸入, 使得訓練過程更加靈活、 准確。

       ·多任務損失: 將分類與回歸網絡放到一起訓練, 並且為了避免SVM分類器帶來的單獨訓練與速度慢的缺點, 使用了Softmax函數進行分類。

                                                   

 

    Fast RCNN算法雖然取得了顯著的成果, 但在該算法中, Selective Search需要消耗2~3秒, 而特征提取僅需要0.2秒, 因此這種區域生成方法限制了Fast RCNN算法的發揮空間, 這也為后來的Faster RCNN算法提供了改進方向。

1.3 走向實時: Faster RCNN

     Faster RCNN算法發表於NIPS 2015, 該算法最大的創新點在於提出了RPNRegion Proposal Network) 網絡, 利用Anchor機制將區域生成與卷積網絡聯系到一起, 將檢測速度一舉提升到了17 FPSFrames PerSecond) , 並在VOC 2012測試集上實現了70.4%的檢測結果。
     Anchor可以看做是圖像上很多固定大小與寬高的方框, 由於需要檢測的物體本身也都是一個個大小寬高不同的方框, 因此Faster RCNNAnchor當做強先驗的知識, 接下來只需要將Anchor與真實物體進行匹配, 進行分類與位置的微調即可。 相比起沒有Anchor的物體檢測算法,這樣的先驗無疑降低了網絡收斂的難度, 再加上一系列的工程優化, 使得Faster RCNN達到了物體檢測中的一個高峰。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM