1. 程式人生 > >論文閱讀筆記二十六:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks(CVPR 2016)

論文閱讀筆記二十六: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

摘要

      目標檢測依賴於區域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.