天天看點

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