論文閱讀筆記二十七:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(CVPR 2016)


論文源址:https://arxiv.org/abs/1506.01497

tensorflow代碼:https://github.com/endernewton/tf-faster-rcnn

室友對Faster R-CNN的解讀:https://www.cnblogs.com/pursuiting/

摘要

      目標檢測依賴於區域proposals算法對目標的位置進行預測。SPPnet和Fast R-CNN已經減少了檢測網絡的運行時間。然而proposals的計算仍是一個重要的瓶頸。本文提出了一個Region Proposal Network(RPN),在檢測網路中共享卷積網絡得到的整張圖片的feature map。RPN是全卷積網絡可以同時預測目標物的邊界和每個位置出目標的分數。RPN是進行端到端的訓練用於產生高質量的候選區域。后送入Fast R-CNN進行檢測。該文通過共享卷積將RPN與Fast R-CNN進行融合為一個整體。基於注意力機制,RPN指明網絡需要注意觀察的地方。

介紹

      目標檢測的先進方法包含一系列的區域框,和基於區域的卷積網絡。由於proposals之間共享卷積的操作,使基於區域的卷積方法減少大量的計算資源。Fast R-CNN在忽略region proposal上的時間消耗外,可以近似實時的速率進行檢測。proposals的計算是測試時占用大部分時間的主要部分。

      候選區域的生成主要依賴於較簡單的特征和推理方法。Selective Search基於較低級的特征融合超像素的方式生成proposals。但SS的速度仍然很慢,在CPU上每張圖需要2s時間,EdgeBoxes能夠生成較高質量的proposal,同時,速度上也有一定的保證,處理每張圖的時間為0.2s。然而,region proposal的生成仍消耗與檢測網絡相同的時間。

       該文在生成候選區域方法上做了一些改進,用深度卷積網絡來獲得proposals。可以大幅度提升計算時間。RPN通過共享卷積使測試時,時間的占用十分少。基於區域的檢測器可以被卷積特征及逆行利用,用於產生region proposals。在卷積網絡的頂部通過增加一些額外的卷積層構建RPN用於同時回歸區域的邊界和在預測該區域類別的分數。因此RPN為全卷積網絡,同時可以進行端到端的訓練用於產生檢測區域框。

       RPN通過一個較大范圍的尺寸與比例系數來高效的預測候選區域。以前的方法是使用圖像金字塔,和不同大小的卷積核進行處理,本文提出了不同尺寸與比例系數組合得到的多個anchor 用於生成proposal作為參考,提高了測試的速度。如下圖,

        為了將RPN與Fast R-CNN融合在一起,本文,將proposals固定,交替的微調區域候選框生成任務和目標檢測部分的網絡。這樣可以快速收斂,同時,卷積特征在兩個任務之間共享可以實現網絡的整合。

相關工作

        目標候選區域生成的方法有:基於像素融合的SS,CPMC,MCG,基於滑動窗的EdgeBox等。目標區域框的被當作模型外的一部分,像基於SS的R-CNN和Fast R-CNN等。

        基於深度網絡的目標檢測:R-CNN訓練卷積網絡用於對proposals進行前景/背景的分類。R-CNN主要作為一個分類器。並不進行目標框的預測,除了通過框的回歸進行增強。其准確率主要依賴於proposal模型的表現。OverFeat基於全連接層對單個目標進行框坐標的預測。全連接層后接卷積層用於目標不同類別的確定。MultiBox方法從網絡中生成區域候選框,該網絡中的全連接層同時預測多個類別不確定的框。得到的類別不確定的框作為R-CNN的proposals。相比本文的全卷積機制,MultiBox網絡應用在一個固定尺寸的輸入圖片上。同時,MultiBox在proposal和檢測網絡之間並未共享特征。

Faster R-CNN

       該模型主要包含兩個部分:(1)用於生成區域候選框的深度全卷積網絡(2)Fast R-CNN用於作為檢測器。 模型為一個單獨一個整體用於目標檢測。結構如下。

region proposal networks

        RPN將任意尺寸大小的圖片作為輸入,輸出一系列的矩形目標框,每一個框都有一個類別的分數。該文使用一個全卷積網絡實現上述操作。由於要想與fast rcnn實現共享計算,假定兩個模型有一個公共的卷積層。

         為了生成區域候選框,在卷積層最后一層feature map上滑動一個小的網絡。該小型網絡將輸入的卷積特征映射到一個nxn的空間窗口作為輸入。每一個滑動窗口都映射為一個更低維的特征。得到的特征送入兩個分支中,一個用於框分類,另一個用於框回歸。mi-ni 網絡執行滑動窗口形式,所有空間位置都共享全連接層。該結構可以看作是一個nxn的卷積網絡后接兩個1x1的卷積層。

Anchors

         在滑動窗的每個位置,對多個候選區域同時進行預測,對於每個位置處,最大概率為目標proposal的個數記作k。因此,該部分模型輸出為4xk用於編碼k個框的坐標,和2xk個分數值用於表示k個框,前景/背景的概率。將kproposal叫做anchors。錨點處於滑動窗口的中心,並按照一定的尺寸及比例系數進行縮放。本文默認采用三種尺寸和比例系數,最終得到9個anchors在每個滑動位置處。對於一個大小為WxH的feature map,大約產生WHk個錨。

錨的平移不變性

         錨的一個重要屬性是平移不變性。如果圖片中的物體發生了偏移,則proposal應該也進行平移,而相同的函數可以在預測出任意位置的proposal。

而Multibox是基於k-means來生成800個anchors,不具有平移不變性。同時,該方法可以減少大量的參數。並在小數據集上較少風險會產生過擬合。

多尺寸的錨作為回歸准則

         錨可以解決多尺寸問題(通過尺寸與比例系數)。本文基於不同尺寸的錨進行分類與回歸操作。輸入圖片,與卷積核的尺寸都是固定的。

損失函數

         針對RPN的訓練,對每個anchor進行兩類標記,前景/背景(二分類)。按兩種方式對proposal進行正類標記:

                                    (1)將與一個ground Truth IOU值最大的proposal/proposals標記為正類。

                                    (2)一個anchor與任意IOU值高於0.7的標記為正類。

          值得注意的是,一個ground truth 可以對用多個anchors。上述第二種方式無法有效的確定正樣本。采用第一種方式進行標記,在少數情況下,第二種方式無法得到正樣本。將與任意ground truth IOU的值低於0.3的標記為負樣本。其中,既不是正樣本,也不是負樣本的proposal不考慮在訓練目標范圍內。

          對於單張圖片的損失函數定義如下:i代表一個batch中一個anchor的序列,pi代表預測為目標的概率,t_i為預測框的坐標,而t*代表positivate anchor的ground truth 框的坐標。

          分類采樣log損失,對於回歸損失,采用L1平滑處理,按如下定義,通過設置k個權重不共享的錨,雖然,特征圖相同,但可以預測出不同尺寸的bounding box。

RPN網絡的訓練

          RPN可以基於反向傳播與SGD進行端到端的訓練。每張圖包含許多正負樣本。因此會訓練所有樣本,但由於負樣本的數量占大多數,因此,會導致結果偏向於負樣本。對一張圖片隨機采樣256個樣本,如果,正樣本個數小於128個,則會用少量的負樣本進行填充。

RPN與Fast R-CNN之間的共享特征

          該文討論了共享特征訓練的三種方式:(1)交替訓練:首先訓練RPN,然后,用得到的proposals訓練fast R-CNN,通過fast R-CNN調試后的網絡初始化RPN網絡。整個過程重復進行,這是本文使用的訓練方法。(2)近似聯合訓練:此方法中,RPN與Fast R-CNN合為一個網絡。訓練時,每次SGD迭代,前向過程生成proposal,在訓練fast r-cnn時這些proposals可以被看作是固定的。反向傳播過程正常執行,當經過共享卷積層時,對RPN 與Fast R-CNN的損失函數正常進行。但此方法的反向傳播忽略了框坐標的優化。因此是近似的聯合訓練。(3)第三種方式是非近似的聯合訓練,將RPN預測框坐標的損失函數也要及進行考慮,但需要增加新的pooling 層和處理方法,超出本文的討論范圍。 

         整體訓練過程分為四步:

                                 I.訓練RPN網絡,用ImageNet 預訓練模型進行初始化,並用proposal進行迭代訓練。

                                 II.基於Fast R-CNN的檢測網絡的訓練,使用第一步RPN得到的proposals進行訓練。仍用ImageNet的預訓練模型進行初始化。目前,二者並未進行共享卷積的計算。

                                 III.用檢測網絡初始化RPN網絡訓練,將共享卷積層固定,只對RPN中的層進行微調。

                                 IV固定共享卷積層,對只屬於Fast R-CNN的層進行微調。  

         存在一些彼此高度重復的RPN框,基於類別分數采用NMS處理。將NMS的IOU設置為0.7,每張圖得到2000多個proposals。使用NMS並未降低准確率,同時會減少proposal的數量。

 實驗

 

 

Reference

         [1] K. He, X. Zhang, S. Ren, and J. Sun, “Spatial pyramid pooling in deep convolutional networks for visual recognition,” in European Conference on Computer Vision (ECCV), 2014.

          [2] R. Girshick, “Fast R-CNN,” in IEEE International Conference on Computer Vision (ICCV), 2015. 


免責聲明!

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



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