摘要
????????最先進的目標檢測網絡依靠區(qū)域提出算法來假設目標的位置嘉涌。SPPnet[1]和Fast R-CNN[2]等研究已經減少了這些檢測網絡的運行時間,使得區(qū)域提出計算成為一個瓶頸尝艘。在這項工作中蚜退,我們引入了一個區(qū)域提出網絡(RPN)整胃,該網絡與檢測網絡共享全圖像的卷積特征赋秀,從而使近乎零成本的區(qū)域提出成為可能。RPN是一個全卷積網絡待榔,可以同時在每個位置預測目標邊界和目標分數(shù)逞壁。RPN經過端到端的訓練,可以生成高質量的區(qū)域提出锐锣,由Fast R-CNN用于檢測腌闯。我們將RPN和Fast R-CNN通過共享卷積特征進一步合并為一個單一的網絡——使用最近流行的具有“注意力”機制的神經網絡術語,RPN組件告訴統(tǒng)一網絡在哪里尋找雕憔。對于非常深的VGG-16模型[3]姿骏,我們的檢測系統(tǒng)在GPU上的幀率為5fps(包括所有步驟),同時在PASCAL VOC 2007斤彼,2012和MS COCO數(shù)據集上實現(xiàn)了最新的目標檢測精度分瘦,每個圖像只有300個提出。在ILSVRC和COCO 2015競賽中畅卓,F(xiàn)aster R-CNN和RPN是多個比賽中獲得第一名輸入的基礎擅腰。代碼可公開獲得。
1. 引言
????????目標檢測的最新進展是由區(qū)域提出方法(例如[4])和基于區(qū)域的卷積神經網絡(R-CNN)[5]的成功驅動的翁潘。盡管在[5]中最初開發(fā)的基于區(qū)域的CNN計算成本很高趁冈,但是由于在各種提議中共享卷積,所以其成本已經大大降低了[1]拜马,[2]渗勘。忽略花費在區(qū)域提議上的時間,最新版本Fast R-CNN[2]利用非常深的網絡[3]實現(xiàn)了接近實時的速率×┟В現(xiàn)在旺坠,提議是最新的檢測系統(tǒng)中測試時間的計算瓶頸。
????????區(qū)域提議方法通常依賴廉價的特征和簡練的推斷方案扮超。選擇性搜索[4]是最流行的方法之一取刃,它貪婪地合并基于設計的低級特征的超級像素蹋肮。然而,與有效的檢測網絡[2]相比璧疗,選擇性搜索速度慢了一個數(shù)量級坯辩,在CPU實現(xiàn)中每張圖像的時間為2秒。EdgeBoxes[6]目前提供了在提議質量和速度之間的最佳權衡崩侠,每張圖像0.2秒漆魔。盡管如此,區(qū)域提議步驟仍然像檢測網絡那樣消耗同樣多的運行時間却音。
????????有人可能會注意到改抡,基于區(qū)域的快速CNN利用GPU,而在研究中使用的區(qū)域提議方法在CPU上實現(xiàn)系瓢,使得運行時間比較不公平阿纤。加速區(qū)域提議計算的一個顯而易見的方法是將其在GPU上重新實現(xiàn)。這可能是一個有效的工程解決方案八拱,但重新實現(xiàn)忽略了下游檢測網絡阵赠,因此錯過了共享計算的重要機會。
????????在本文中肌稻,我們展示了算法的變化——用深度卷積神經網絡計算區(qū)域提議——導致了一個優(yōu)雅和有效的解決方案清蚀,其中在給定檢測網絡計算的情況下區(qū)域提議計算接近領成本。為此爹谭,我們引入了新的區(qū)域提議網絡(RPN)枷邪,它們共享最先進目標檢測網絡的卷積層[1],[2]诺凡。通過在測試時共享卷積东揣,計算區(qū)域提議的邊際成本很小(例如腹泌,每張圖像10ms)嘶卧。
? ??????我們的觀察是,基于區(qū)域的檢測器所使用的卷積特征映射凉袱,如Fast R-CNN芥吟,也可以用于生成區(qū)域提議。在這些卷積特征之上专甩,我們通過添加一些額外的卷積層來構建RPN钟鸵,這些卷積層同時在規(guī)則網格上的每個位置上回歸區(qū)域邊界和目標分數(shù)。因此RPN是一種全卷積網絡(FCN)[7]涤躲,可以針對生成檢測區(qū)域建議的任務進行端到端的訓練棺耍。
????????RPN旨在有效預測具有廣泛尺度和長寬比的區(qū)域提議。與使用圖像金字塔(圖1种樱,a)或濾波器金字塔(圖1蒙袍,b)的流行方法[8]俊卤,[9],[1]相比左敌,我們引入新的“錨”盒作為多種尺度和長寬比的參考瘾蛋。我們的方案可以被認為是回歸參考金字塔(圖1俐镐,c)矫限,它避免了枚舉多種比例或長寬比的圖像或濾波器。這個模型在使用單尺度圖像進行訓練和測試時運行良好佩抹,從而有利于運行速度叼风。
????????為了將RPN與Fast R-CNN 2]目標檢測網絡相結合孽鸡,我們提出了一種訓練方案,在微調區(qū)域提議任務和微調目標檢測之間進行交替栏豺,同時保持區(qū)域提議的固定彬碱。該方案快速收斂,并產生兩個任務之間共享的具有卷積特征的統(tǒng)一網絡奥洼。
????????我們在PASCAL VOC檢測基準數(shù)據集上[11]綜合評估了我們的方法巷疼,其中具有Fast R-CNN的RPN產生的檢測精度優(yōu)于使用選擇性搜索的Fast R-CNN的強基準。同時灵奖,我們的方法在測試時幾乎免除了選擇性搜索的所有計算負擔——區(qū)域提議的有效運行時間僅為10毫秒嚼沿。使用[3]的昂貴的非常深的模型,我們的檢測方法在GPU上仍然具有5fps的幀率(包括所有步驟)瓷患,因此在速度和準確性方面是實用的目標檢測系統(tǒng)骡尽。我們還報告了在MS COCO數(shù)據集上[12]的結果,并使用COCO數(shù)據研究了在PASCAL VOC上的改進擅编。代碼可公開獲得https://github.com/shaoqingren/faster_rcnn(在MATLAB中)和https://github.com/rbgirshick/py-faster-rcnn(在Python中)攀细。
????????這個手稿的初步版本是以前發(fā)表的[10]。從那時起沙咏,RPN和Faster R-CNN的框架已經被采用并推廣到其他方法辨图,如3D目標檢測[13],基于部件的檢測[14]肢藐,實例分割[15]和圖像標題[16]故河。我們快速和有效的目標檢測系統(tǒng)也已經在Pinterest[17]的商業(yè)系統(tǒng)中建立了,并報告了用戶參與度的提高吆豹。
????????在ILSVRC和COCO 2015競賽中鱼的,F(xiàn)aster R-CNN和RPN是ImageNet檢測理盆,ImageNet定位,COCO檢測和COCO分割中幾個第一名參賽者[18]的基礎凑阶。RPN完全從數(shù)據中學習提議區(qū)域猿规,因此可以從更深入和更具表達性的特征(例如[18]中采用的101層殘差網絡)中輕松獲益。Faster R-CNN和RPN也被這些比賽中的其他幾個主要參賽者所使用宙橱。這些結果表明姨俩,我們的方法不僅是一個實用合算的解決方案,而且是一個提高目標檢測精度的有效方法师郑。
2. 相關工作
目標提議环葵。目標提議方法方面有大量的文獻。目標提議方法的綜合調查和比較可以在[19]宝冕,[20]张遭,[21]中找到。廣泛使用的目標提議方法包括基于超像素分組(例如地梨,選擇性搜索[4]菊卷,CPMC[22],MCG[23])和那些基于滑動窗口的方法(例如窗口中的目標[24]宝剖,EdgeBoxes[6])洁闰。目標提議方法被采用為獨立于檢測器(例如,選擇性搜索[4]目標檢測器诈闺,R-CNN[5]和Fast R-CNN[2])的外部模塊渴庆。
????????用于目標檢測的深度網絡。R-CNN方法[5]端到端地對CNN進行訓練雅镊,將提議區(qū)域分類為目標類別或背景襟雷。R-CNN主要作為分類器,并不能預測目標邊界(除了通過邊界框回歸進行細化)仁烹。其準確度取決于區(qū)域提議模塊的性能(參見[20]中的比較)耸弄。一些論文提出了使用深度網絡來預測目標邊界框的方法[25],[9]卓缰,[26]计呈,[27]。在OverFeat方法[9]中征唬,訓練一個全連接層來預測假定單個目標定位任務的邊界框坐標捌显。然后將全連接層變成卷積層,用于檢測多個類別的目標总寒。MultiBox方法[26]扶歪,[27]從網絡中生成區(qū)域提議,網絡最后的全連接層同時預測多個類別不相關的邊界框摄闸,并推廣到OverFeat的“單邊界框”方式善镰。這些類別不可知的邊界框框被用作R-CNN的提議區(qū)域[5]妹萨。與我們的全卷積方案相比,MultiBox提議網絡適用于單張裁剪圖像或多張大型裁剪圖像(例如224×224)炫欺。MultiBox在提議區(qū)域和檢測網絡之間不共享特征乎完。稍后在我們的方法上下文中會討論OverFeat和MultiBox。與我們的工作同時進行的品洛,DeepMask方法[28]是為學習分割提議區(qū)域而開發(fā)的树姨。
????????卷積[9],[1]毫别,[29]娃弓,[7],[2]的共享計算已經越來越受到人們的關注岛宦,因為它可以有效而準確地進行視覺識別。OverFeat論文[9]計算圖像金字塔的卷積特征用于分類耍缴,定位和檢測砾肺。共享卷積特征映射的自適應大小池化(SPP)[1]被開發(fā)用于有效的基于區(qū)域的目標檢測[1],[30]和語義分割[29]防嗡。Fast R-CNN[2]能夠對共享卷積特征進行端到端的檢測器訓練变汪,并顯示出令人信服的準確性和速度。
3. FASTER R-CNN
????????我們的目標檢測系統(tǒng)蚁趁,稱為Faster R-CNN裙盾,由兩個模塊組成。第一個模塊是提議區(qū)域的深度全卷積網絡他嫡,第二個模塊是使用提議區(qū)域的Fast R-CNN檢測器[2]番官。整個系統(tǒng)是一個單個的,統(tǒng)一的目標檢測網絡(圖2)钢属。使用最近流行的“注意力”[31]機制的神經網絡術語徘熔,RPN模塊告訴Fast R-CNN模塊在哪里尋找。在第3.1節(jié)中淆党,我們介紹了區(qū)域提議網絡的設計和屬性酷师。在第3.2節(jié)中,我們開發(fā)了用于訓練具有共享特征模塊的算法染乌。
3.1 區(qū)域提議網絡
????????區(qū)域提議網絡(RPN)以任意大小的圖像作為輸入台颠,輸出一組矩形的目標提議,每個提議都有一個目標得分台谊。我們用全卷積網絡[7]對這個過程進行建模蓉媳,我們將在本節(jié)進行描述譬挚。因為我們的最終目標是與Fast R-CNN目標檢測網絡[2]共享計算,所以我們假設兩個網絡共享一組共同的卷積層酪呻。在我們的實驗中减宣,我們研究了具有5個共享卷積層的Zeiler和Fergus模型[32](ZF)和具有13個共享卷積層的Simonyan和Zisserman模型[3](VGG-16)。
????????為了生成區(qū)域提議玩荠,我們在最后的共享卷積層輸出的卷積特征映射上滑動一個小網絡漆腌。這個小網絡將輸入卷積特征映射的n×n空間窗口作為輸入。每個滑動窗口映射到一個低維特征(ZF為256維阶冈,VGG為512維闷尿,后面是ReLU[33])。這個特征被輸入到兩個子全連接層——一個邊界框回歸層(reg)和一個邊界框分類層(cls)女坑。在本文中填具,我們使用n=3,注意輸入圖像上的有效感受野是大的(ZF和VGG分別為171和228個像素)匆骗。圖3(左)顯示了這個小型網絡的一個位置劳景。請注意,因為小網絡以滑動窗口方式運行碉就,所有空間位置共享全連接層盟广。這種架構通過一個n×n卷積層,后面是兩個子1×1卷積層(分別用于reg和cls)自然地實現(xiàn)瓮钥。
3.1.1 錨點
????????在每個滑動窗口位置桨武,我們同時預測多個區(qū)域提議,其中每個位置可能提議的最大數(shù)目表示為k具被。因此玻募,reg層具有4k個輸出,編碼k個邊界框的坐標一姿,cls層輸出2k個分數(shù)七咧,估計每個提議是目標或不是目標的概率。相對于我們稱之為錨點的k個參考邊界框叮叹,k個提議是參數(shù)化的艾栋。錨點位于所討論的滑動窗口的中心,并與一個尺度和長寬比相關(圖3左)蛉顽。默認情況下蝗砾,我們使用3個尺度和3個長寬比,在每個滑動位置產生k=9個錨點。對于大小為W×H(通常約為2400)的卷積特征映射悼粮,總共有WHk個錨點闲勺。
平移不變的錨點
????????我們的方法的一個重要特性是它是平移不變的,無論是在錨點還是計算相對于錨點的區(qū)域提議的函數(shù)扣猫。如果在圖像中平移目標菜循,提議應該平移,并且同樣的函數(shù)應該能夠在任一位置預測提議申尤。平移不變特性是由我們的方法保證的癌幕。作為比較,MultiBox方法[27]使用k-means生成800個錨點昧穿,這不是平移不變的勺远。所以如果平移目標,MultiBox不保證會生成相同的提議时鸵。
????????平移不變特性也減小了模型的大小胶逢。MultiBox有(4+1)×800維的全連接輸出層,而我們的方法在k=9個錨點的情況下有(4+2)×9維的卷積輸出層寥枝。因此宪塔,對于VGG-16,我們的輸出層具有2.8×104個參數(shù)(對于VGG-16為512×(4+2)×9)囊拜,比MultiBox輸出層的6.1×106個參數(shù)少了兩個數(shù)量級(對于MultiBox [27]中的GoogleNet[34]為1536×(4+1)×800)。如果考慮到特征投影層比搭,我們的提議層仍然比MultiBox少一個數(shù)量級冠跷。我們期望我們的方法在PASCAL VOC等小數(shù)據集上有更小的過擬合風險。
多尺度錨點作為回歸參考
????????我們的錨點設計提出了一個新的方案來解決多尺度(和長寬比)身诺。如圖1所示蜜托,多尺度預測有兩種流行的方法。第一種方法是基于圖像/特征金字塔霉赡,例如DPM[8]和基于CNN的方法[9]橄务,[1],[2]中穴亏。圖像在多個尺度上進行縮放蜂挪,并且針對每個尺度(圖1(a))計算特征映射(HOG[8]或深卷積特征[9],[1]嗓化,[2])棠涮。這種方法通常是有用的,但是非常耗時刺覆。第二種方法是在特征映射上使用多尺度(和/或長寬比)的滑動窗口严肪。例如,在DPM[8]中,使用不同的濾波器大胁蹬础(例如5×7和7×5)分別對不同長寬比的模型進行訓練篇梭。如果用這種方法來解決多尺度問題,可以把它看作是一個“濾波器金字塔”(圖1(b))酝枢。第二種方法通常與第一種方法聯(lián)合采用[8]恬偷。
????????作為比較,我們的基于錨點方法建立在錨點金字塔上隧枫,這是更具成本效益的喉磁。我們的方法參照多尺度和長寬比的錨盒來分類和回歸邊界框。它只依賴單一尺度的圖像和特征映射官脓,并使用單一尺寸的濾波器(特征映射上的滑動窗口)协怒。我們通過實驗來展示這個方案解決多尺度和尺寸的效果(表8)。
????????由于這種基于錨點的多尺度設計,我們可以簡單地使用在單尺度圖像上計算的卷積特征桶良,F(xiàn)ast R-CNN檢測器也是這樣做的[2]座舍。多尺度錨點設計是共享特征的關鍵組件,不需要額外的成本來處理尺度陨帆。
3.1.2 損失函數(shù)
????????為了訓練RPN曲秉,我們?yōu)槊總€錨點分配一個二值類別標簽(是目標或不是目標)。我們給兩種錨點分配一個正標簽:(i)具有與實際邊界框的重疊最高交并比(IoU)的錨點疲牵,或者(ii)具有與實際邊界框的重疊超過0.7 IoU的錨點承二。注意,單個真實邊界框可以為多個錨點分配正標簽纲爸。通常第二個條件足以確定正樣本亥鸠;但我們仍然采用第一個條件,因為在一些極少數(shù)情況下识啦,第二個條件可能找不到正樣本负蚊。對于所有的真實邊界框,如果一個錨點的IoU比率低于0.3袁滥,我們給非正面的錨點分配一個負標簽盖桥。既不正面也不負面的錨點不會有助于訓練目標函數(shù)。
????????根據這些定義题翻,我們對目標函數(shù)Fast R-CNN[2]中的多任務損失進行最小化揩徊。我們對圖像的損失函數(shù)定義為:
????????其中腰鬼,i是一個小批量數(shù)據中錨點的索引,pi是錨點i作為目標的預測概率塑荒。如果錨點為正熄赡,真實標簽p\*i為1,如果錨點為負齿税,則為0彼硫。ti是表示預測邊界框4個參數(shù)化坐標的向量,而t\*i是與正錨點相關的真實邊界框的向量凌箕。分類損失Lcls是兩個類別上(目標或不是目標)的對數(shù)損失拧篮。對于回歸損失,我們使用Lreg(ti,t\*i)=R(ti?t\*i)牵舱,其中R是在[2]中定義的魯棒損失函數(shù)(平滑L1)串绩。項p\*iLreg表示回歸損失僅對于正錨點激活,否則被禁用(p\*i=0)芜壁。cls和reg層的輸出分別由{pi}和{ti}組成礁凡。
????????這兩個項用Ncls和Nreg進行標準化,并由一個平衡參數(shù)λ加權慧妄。在我們目前的實現(xiàn)中(如在發(fā)布的代碼中)顷牌,方程(1)中的cls項通過小批量數(shù)據的大小(即Ncls=256)進行歸一化塞淹,reg項根據錨點位置的數(shù)量(即窟蓝,Nreg~24000)進行歸一化。默認情況下饱普,我們設置λ=10疗锐,因此cls和reg項的權重大致相等。我們通過實驗顯示费彼,結果對寬范圍的λ值不敏感(表9)。我們還注意到口芍,上面的歸一化不是必需的箍铲,可以簡化。
對于邊界框回歸箱舞,我們采用[5]中的4個坐標參數(shù)化:
????????其中,x裤翩,y资盅,w和h表示邊界框的中心坐標及其寬和高。變量x,xa和x\*分別表示預測邊界框呵扛,錨盒和實際邊界框(類似于y,w,h)每庆。這可以被認為是從錨盒到鄰近的實際邊界框的回歸。
????????然而今穿,我們的方法通過與之前的基于RoI(感興趣區(qū)域)方法[1]缤灵,[2]不同的方式來實現(xiàn)邊界框回歸。在[1]蓝晒,[2]中腮出,對任意大小的RoI池化的特征執(zhí)行邊界框回歸,并且回歸權重由所有區(qū)域大小共享芝薇。在我們的公式中胚嘲,用于回歸的特征在特征映射上具有相同的空間大小(3×3)剩燥。為了說明不同的大小慢逾,學習一組k個邊界框回歸器。每個回歸器負責一個尺度和一個長寬比灭红,而k個回歸器不共享權重侣滩。因此,由于錨點的設計变擒,即使特征具有固定的尺度/比例君珠,仍然可以預測各種尺寸的邊界框。
3.1.3 訓練RPN
????????RPN可以通過反向傳播和隨機梯度下降(SGD)進行端對端訓練[35]娇斑。我們遵循[2]的“以圖像為中心”的采樣策略來訓練這個網絡策添。每個小批量數(shù)據都從包含許多正面和負面示例錨點的單張圖像中產生。對所有錨點的損失函數(shù)進行優(yōu)化是可能的毫缆,但是這樣會偏向于負樣本唯竹,因為它們是占主導地位的。取而代之的是苦丁,我們在圖像中隨機采樣256個錨點浸颓,計算一個小批量數(shù)據的損失函數(shù),其中采樣的正錨點和負錨點的比率可達1:1旺拉。如果圖像中的正樣本少于128個产上,我們使用負樣本填充小批量數(shù)據。
3.2 RPN和Fast R-CNN共享特征
????????到目前為止蛾狗,我們已經描述了如何訓練用于區(qū)域提議生成的網絡晋涣,沒有考慮將利用這些提議的基于區(qū)域的目標檢測CNN。對于檢測網絡沉桌,我們采用Fast R-CNN[2]谢鹊。接下來我們介紹一些算法算吩,學習由RPN和Fast R-CNN組成的具有共享卷積層的統(tǒng)一網絡(圖2)。
????????獨立訓練的RPN和Fast R-CNN將以不同的方式修改卷積層撇贺。因此赌莺,我們需要開發(fā)一種允許在兩個網絡之間共享卷積層的技術,而不是學習兩個獨立的網絡松嘶。我們討論三個方法來訓練具有共享特征的網絡: ??
(一)交替訓練艘狭。在這個解決方案中,我們首先訓練RPN翠订,并使用這些提議來訓練Fast R-CNN巢音。由Fast R-CNN微調的網絡然后被用于初始化RPN,并且重復這個過程尽超。這是本文所有實驗中使用的解決方案官撼。
(二)近似聯(lián)合訓練。在這個解決方案中似谁,RPN和Fast R-CNN網絡在訓練期間合并成一個網絡傲绣,如圖2所示。在每次SGD迭代中巩踏,前向傳遞生成區(qū)域提議秃诵,在訓練Fast R-CNN檢測器將這看作是固定的、預計算的提議塞琼。反向傳播像往常一樣進行菠净,其中對于共享層,組合來自RPN損失和Fast R-CNN損失的反向傳播信號彪杉。這個解決方案很容易實現(xiàn)毅往。但是這個解決方案忽略了關于提議邊界框的坐標(也是網絡響應)的導數(shù),因此是近似的派近。在我們的實驗中攀唯,我們實驗發(fā)現(xiàn)這個求解器產生了相當?shù)慕Y果革答,與交替訓練相比曙强,訓練時間減少了大約25?50%。這個求解器包含在我們發(fā)布的Python代碼中途茫。
(三)非近似的聯(lián)合訓練囊卜。如上所述娜扇,由RPN預測的邊界框也是輸入的函數(shù)错沃。Fast R-CNN中的RoI池化層[2]接受卷積特征以及預測的邊界框作為輸入枢析,所以理論上有效的反向傳播求解器也應該包括關于邊界框坐標的梯度醒叁。在上述近似聯(lián)合訓練中泊业,這些梯度被忽略吁伺。在一個非近似的聯(lián)合訓練解決方案中篮奄,我們需要一個關于邊界框坐標可微分的RoI池化層窟却。這是一個重要的問題间校,可以通過[15]中提出的“RoI扭曲”層給出解決方案憔足,這超出了本文的范圍。?????
????????四步交替訓練控妻。在本文中弓候,我們采用實用的四步訓練算法菇存,通過交替優(yōu)化學習共享特征依鸥。在第一步中贱迟,我們按照3.1.3節(jié)的描述訓練RPN衣吠。該網絡使用ImageNet的預訓練模型進行初始化缚俏,并針對區(qū)域提議任務進行了端到端的微調袍榆。在第二步中包雀,我們使用由第一步RPN生成的提議才写,由Fast R-CNN訓練單獨的檢測網絡赞草。該檢測網絡也由ImageNet的預訓練模型進行初始化厨疙。此時兩個網絡不共享卷積層沾凄。在第三步中撒蟀,我們使用檢測器網絡來初始化RPN訓練保屯,但是我們修正共享的卷積層姑尺,并且只對RPN特有的層進行微調。現(xiàn)在這兩個網絡共享卷積層衡楞。最后瘾境,保持共享卷積層的固定迷守,我們對Fast R-CNN的獨有層進行微調。因此礼华,兩個網絡共享相同的卷積層并形成統(tǒng)一的網絡拗秘。類似的交替訓練可以運行更多的迭代扮匠,但是我們只觀察到可以忽略的改進棒搜。
3.3 實現(xiàn)細節(jié)
????????我們在單尺度圖像上訓練和測試區(qū)域提議和目標檢測網絡[1]力麸,[2]克蚂。我們重新縮放圖像陨舱,使得它們的短邊是s=600像素[2]游盲。多尺度特征提纫娑小(使用圖像金字塔)可能會提高精度莺奔,但不會表現(xiàn)出速度與精度的良好折衷[2]令哟。在重新縮放的圖像上屏富,最后卷積層上的ZF和VGG網絡的總步長為16個像素狠半,因此在調整大猩衲辍(?500×375)之前已日,典型的PASCAL圖像上的總步長為?10個像素捂敌。即使如此大的步長也能提供良好的效果占婉,盡管步幅更小酌予,精度可能會進一步提高抛虫。
????????對于錨點建椰,我們使用了3個尺度棉姐,邊界框面積分別為128*128伞矩,256*256和512*512個像素乃坤,以及1:1湿诊,1:2和2:1的長寬比厅须。這些超參數(shù)不是針對特定數(shù)據集仔細選擇的,我們將在下一節(jié)中提供有關其作用的消融實驗例隆。如上所述镀层,我們的解決方案不需要圖像金字塔或濾波器金字塔來預測多個尺度的區(qū)域唱逢,節(jié)省了大量的運行時間坞古。圖3(右)顯示了我們的方法在廣泛的尺度和長寬比方面的能力劫樟。表1顯示了使用ZF網絡的每個錨點學習到的平均提議大小叠艳。我們注意到附较,我們的算法允許預測比基礎感受野更大徐勃。這樣的預測不是不可能的——如果只有目標的中間部分是可見的疏旨,那么仍然可以粗略地推斷出目標的范圍檐涝。
????????跨越圖像邊界的錨盒需要小心處理葛超。在訓練過程中绣张,我們忽略了所有的跨界錨點,所以不會造成損失芜飘。對于一個典型的1000×600的圖片嗦明,總共將會有大約20000(≈60×40×9)個錨點招狸∪瓜罚跨界錨點被忽略,每張圖像約有6000個錨點用于訓練壹罚。如果跨界異常值在訓練中不被忽略猖凛,則會在目標函數(shù)中引入大的虱岂,難以糾正的誤差項第岖,且訓練不會收斂蔑滓。但在測試過程中键袱,我們仍然將全卷積RPN應用于整張圖像。這可能會產生跨邊界的提議邊界框,我們剪切到圖像邊界倘屹。
????????一些RPN提議互相之間高度重疊。為了減少冗余烛缔,我們在提議區(qū)域根據他們的cls分數(shù)采取非????極大值抑制(NMS)践瓷。我們將NMS的IoU閾值固定為0.7晕翠,這就給每張圖像留下了大約2000個提議區(qū)域。正如我們將要展示的那樣樊卓,NMS不會損害最終的檢測準確性碌尔,但會大大減少提議的數(shù)量奢赂。在NMS之后膳灶,我們使用前N個提議區(qū)域來進行檢測。接下來毕箍,我們使用2000個RPN提議對Fast R-CNN進行訓練而柑,但在測試時評估不同數(shù)量的提議。
4. 實驗
4.1 PASCAL VOC上的實驗
????????我們在PASCAL VOC 2007檢測基準數(shù)據集[11]上全面評估了我們的方法涩澡。這個數(shù)據集包含大約5000張訓練評估圖像和在20個目標類別上的5000張測試圖像。我們還提供了一些模型在PASCAL VOC 2012基準數(shù)據集上的測試結果粥帚。對于ImageNet預訓練網絡茎辐,我們使用具有5個卷積層和3個全連接層的ZF網絡[32]的“快速”版本以及具有13個卷積層和3個全連接層的公開的VGG-16模型[3]。我們主要評估檢測的平均精度均值(mAP)依啰,因為這是檢測目標的實際指標(而不是關注目標提議代理度量)叹誉。
表2(頂部)顯示了使用各種區(qū)域提議方法進行訓練和測試的Fast R-CNN結果长豁。這些結果使用ZF網絡。對于選擇性搜索(SS)[4]酸舍,我們通過“快速”模式生成約2000個提議。對于EdgeBoxes(EB)[6]淮阐,我們通過調整0.7 IoU的默認EB設置生成提議枝嘶。SS在Fast R-CNN框架下的mAP為58.7%及刻,EB的mAP為58.6%缴饭。RPN與Fast R-CNN取得了有競爭力的結果担猛,使用多達300個提議傅联,mAP為59.9%。由于共享卷積計算比驻,使用RPN比使用SS或EB產生了更快的檢測系統(tǒng)狈茉;較少的建議也減少了區(qū)域方面的全連接層成本(表5)
RPN上的消融實驗。為了研究RPN作為提議方法的性能闰挡,我們進行了幾項消融研究锐墙。首先,我們顯示了RPN和Fast R-CNN檢測網絡共享卷積層的效果长酗。為此溪北,我們在四步訓練過程的第二步之后停止訓練。使用單獨的網絡將結果略微減少到58.7%(RPN+ZF夺脾,非共享之拨,表2)。我們觀察到咧叭,這是因為在第三步中蚀乔,當使用檢測器調整的特征來微調RPN時,提議質量得到了改善菲茬。
????????接下來吉挣,我們分析RPN對訓練Fast R-CNN檢測網絡的影響。為此婉弹,我們通過使用2000個SS提議和ZF網絡來訓練Fast R-CNN模型睬魂。我們固定這個檢測器,并通過改變測試時使用的提議區(qū)域來評估檢測的mAP镀赌。在這些消融實驗中汉买,RPN不與檢測器共享特征。
????????在測試階段用300個RPN提議替換SS提議得到了56.8%的MAP佩脊。mAP的損失是因為訓練/測試提議不一致蛙粘。這個結果作為以下比較的基準垫卤。
????????有些令人驚訝的是,RPN在測試時使用排名最高的100個提議仍然會導致有競爭力的結果(55.1%)出牧,表明排名靠前的RPN提議是準確的穴肘。相反的,使用排名靠前的6000個RPN提議(無NMS)具有相當?shù)膍AP(55.2%)舔痕,這表明NMS不會損害檢測mAP并可能減少誤報评抚。
????????接下來,我們通過在測試時分別關閉RPN的cls和reg輸出來調查RPN的作用伯复。當cls層在測試時被移除(因此不使用NMS/排名)慨代,我們從未得分的區(qū)域中隨機采樣N個提議。當N=1000(55.8?)時啸如,mAP幾乎沒有變化侍匙,但是當N=100時,會大大降低到44.6%叮雳。這表明cls分數(shù)考慮了排名最高的提議的準確性想暗。 ? ?????
????????另一方面,當在測試階段移除reg層(所以提議變成錨盒)時帘不,mAP將下降到52.1%说莫。這表明高質量的提議主要是由于回歸的邊界框。錨盒雖然具有多個尺度和長寬比寞焙,但不足以進行準確的檢測储狭。
????????我們還單獨評估了更強大的網絡對RPN提議質量的影響。我們使用VGG-16來訓練RPN捣郊,仍然使用上述的SS+ZF檢測器辽狈。mAP從56.8%(使用RPN+ZF)提高到59.2%(使用RPN+VGG)。這是一個很有希望的結果模她,因為這表明RPN+VGG的提議質量要好于RPN+ZF。由于RPN+ZF的提議與SS具有競爭性(當一致用于訓練和測試時懂牧,都是58.7%)侈净,所以我們可以預期RPN+VGG比SS更好。以下實驗驗證了這個假設僧凤。
VGG-16的性能畜侦。表3顯示了VGG-16的提議和檢測結果。使用RPN+VGG躯保,非共享特征的結果是68.5%旋膳,略高于SS的基準。如上所示途事,這是因為RPN+VGG生成的提議比SS更準確验懊。與預先定義的SS不同擅羞,RPN是主動訓練的并從更好的網絡中受益。對于特性共享的變種义图,結果是69.9%——比強壯的SS基準更好减俏,但幾乎是零成本的提議。我們在PASCAL VOC 2007和2012的訓練評估數(shù)據集上進一步訓練RPN和檢測網絡碱工。該mAP是73.2%娃承。圖5顯示了PASCAL VOC 2007測試集的一些結果。在PASCAL VOC 2012測試集(表4)中怕篷,我們的方法在VOC 2007的trainval+test和VOC 2012的trainval的聯(lián)合數(shù)據集上訓練的模型取得了70.4%的mAP历筝。表6和表7顯示了詳細的數(shù)字。
????????在表5中我們總結了整個目標檢測系統(tǒng)的運行時間酝惧。根據內容(平均大約1.5s),SS需要1-2秒伯诬,而使用VGG-16的Fast R-CNN在2000個SS提議上需要320ms(如果在全連接層上使用SVD[2]晚唇,則需要223ms)。我們的VGG-16系統(tǒng)在提議和檢測上總共需要198ms盗似。在共享卷積特征的情況下哩陕,單獨RPN只需要10ms計算附加層。我們的區(qū)域計算也較低赫舒,這要歸功于較少的提議(每張圖片300個)悍及。我們的采用ZF網絡的系統(tǒng),幀速率為17fps接癌。
對超參數(shù)的敏感度心赶。在表8中,我們調查錨點的設置缺猛。默認情況下缨叫,我們使用3個尺度和3個長寬比(表8中69.9%的mAP)。如果在每個位置只使用一個錨點荔燎,那么mAP的下降幅度將是3?4%耻姥。如果使用3個尺度(1個長寬比)或3個長寬比(1個尺度),則mAP更高有咨,表明使用多種尺寸的錨點作為回歸參考是有效的解決方案琐簇。在這個數(shù)據集上,僅使用具有1個長寬比(69.8%)的3個尺度與使用具有3個長寬比的3個尺度一樣好座享,這表明尺度和長寬比不是檢測準確度的解決維度婉商。但我們仍然在設計中采用這兩個維度來保持我們的系統(tǒng)靈活性。
????????在表9中征讲,我們比較了公式(1)中λ的不同值据某。默認情況下橡娄,我們使用λ=10诗箍,這使方程(1)中的兩個項在歸一化之后大致相等地加權。表9顯示挽唉,當λ在大約兩個數(shù)量級(1到100)的范圍內時滤祖,我們的結果只是稍微受到影響(~1%)筷狼。這表明結果對寬范圍內的λ不敏感。
分析IoU召回率匠童。接下來埂材,我們使用實際邊界框來計算不同IoU比率的提議召回率。值得注意的是汤求,Recall-to-IoU度量與最終的檢測精度的相關性是松散的[19俏险,20,21]扬绪。使用這個指標來診斷提議方法比評估提議方法更合適竖独。
????????在圖4中,我們顯示了使用300挤牛,1000和2000個提議的結果莹痢。我們與SS和EB進行比較,根據這些方法產生的置信度墓赴,N個提議是排名前N的提議竞膳。從圖中可以看出,當提議數(shù)量從2000個減少到300個時诫硕,RPN方法表現(xiàn)優(yōu)雅坦辟。這就解釋了為什么RPN在使用300個提議時具有良好的最終檢測mAP。正如我們之前分析過的痘括,這個屬性主要歸因于RPN的cls項长窄。當提議較少時,SS和EB的召回率下降的比RPN更快纲菌。
一階段檢測與兩階段提議+檢測胳徽。OverFeat論文[9]提出了一種在卷積特征映射的滑動窗口上使用回歸器和分類器的檢測方法。OverFeat是一個一階段,類別特定的檢測流程更舞,而我們的是兩階段級聯(lián),包括類不可知的提議和類別特定的檢測览绿。在OverFeat中窿祥,區(qū)域特征來自一個尺度金字塔上一個長寬比的滑動窗口。這些特征用于同時確定目標的位置和類別庇麦。在RPN中计技,這些特征來自正方形(3×3)滑動窗口,并且預測相對于錨點具有不同尺度和長寬比的提議山橄。雖然這兩種方法都使用滑動窗口垮媒,但區(qū)域提議任務只是Faster R-CNN的第一階段——下游的Fast R-CNN檢測器會致力于對提議進行細化。在我們級聯(lián)的第二階段,在更忠實覆蓋區(qū)域特征的提議框中睡雇,區(qū)域特征自適應地聚集[1]萌衬,[2]。我們相信這些功能會帶來更準確的檢測結果它抱。
????????為了比較一階段和兩階段系統(tǒng)秕豫,我們通過一階段Fast R-CNN來模擬OverFeat系統(tǒng)(從而也規(guī)避了實現(xiàn)細節(jié)的其他差異)。在這個系統(tǒng)中观蓄,“提議”是3個尺度(128混移,256,512)和3個長寬比(1:1侮穿,1:2沫屡,2:1)的密集滑動窗口。訓練Fast R-CNN來預測類別特定的分數(shù)撮珠,并從這些滑動窗口中回歸邊界框位置沮脖。由于OverFeat系統(tǒng)采用圖像金字塔,我們也使用從5個尺度中提取的卷積特征進行評估芯急。我們使用[1]勺届,[2]中5個尺度。
????????表10比較了兩階段系統(tǒng)和一階段系統(tǒng)的兩個變種娶耍。使用ZF模型免姿,一階段系統(tǒng)具有53.9%的mAP。這比兩階段系統(tǒng)(58.7%)低4.8%榕酒。這個實驗驗證了級聯(lián)區(qū)域提議和目標檢測的有效性胚膊。在文獻[2],[39]中報道了類似的觀察結果想鹰,在這兩篇論文中紊婉,用滑動窗取代SS區(qū)域提議會導致~6%的退化。我們也注意到辑舷,一階段系統(tǒng)更慢喻犁,因為它產生了更多的提議。
4.2 在MS COCO上的實驗
我們在Microsoft COCO目標檢測數(shù)據集[12]上提供了更多的結果碌廓。這個數(shù)據集包含80個目標類別传轰。我們用訓練集上的8萬張圖像,驗證集上的4萬張圖像以及測試開發(fā)集上的2萬張圖像進行實驗谷婆。我們評估了IoU∈[0.5:0.05:0.95]的平均mAP(COCO標準度量慨蛙,簡稱為mAP@[.5,.95])和mAP@0.5(PASCAL VOC度量)勃刨。
????????我們的系統(tǒng)對這個數(shù)據集做了一些小的改動。我們在8 GPU實現(xiàn)上訓練我們的模型股淡,RPN(每個GPU 1個)和Fast R-CNN(每個GPU 2個)的有效最小批大小為8個。RPN步驟和Fast R-CNN步驟都以24萬次迭代進行訓練廷区,學習率為0.003唯灵,然后以0.0003的學習率進行8萬次迭代。我們修改了學習率(從0.003而不是0.001開始)隙轻,因為小批量數(shù)據的大小發(fā)生了變化埠帕。對于錨點,我們使用3個長寬比和4個尺度(加上642)玖绿,這主要是通過處理這個數(shù)據集上的小目標來激發(fā)的敛瓷。此外,在我們的Fast R-CNN步驟中斑匪,負樣本定義為與實際邊界框的最大IOU在[0呐籽,0.5)區(qū)間內的樣本,而不是[1]蚀瘸,[2]中使用的[0.1,0.5)之間狡蝶。我們注意到,在SPPnet系統(tǒng)[1]中贮勃,在[0.1贪惹,0.5)中的負樣本用于網絡微調,但[0,0.5)中的負樣本仍然在具有難例挖掘SVM步驟中被訪問寂嘉。但是Fast R-CNN系統(tǒng)[2]放棄了SVM步驟奏瞬,所以[0,0.1]中的負樣本都不會被訪問。包括這些[0,0.1)的樣本泉孩,在Fast R-CNN和Faster R-CNN系統(tǒng)在COCO數(shù)據集上改進了mAP@0.5(但對PASCAL VOC的影響可以忽略不計)硼端。
????????其余的實現(xiàn)細節(jié)與PASCAL VOC相同。特別的是寓搬,我們繼續(xù)使用300個提議和單一尺度(s=600)測試显蝌。COCO數(shù)據集上的測試時間仍然是大約200ms處理一張圖像。
????????在表11中订咸,我們首先報告了使用本文實現(xiàn)的Fast R-CNN系統(tǒng)[2]的結果曼尊。我們的Fast R-CNN基準在test-dev數(shù)據集上有39.3%的mAP@0.5,比[2]中報告的更高脏嚷。我們推測造成這種差距的原因主要是由于負樣本的定義以及小批量大小的變化骆撇。我們也注意到mAP@[.5,.95]恰好相當父叙。
????????接下來我們評估我們的Faster R-CNN系統(tǒng)。使用COCO訓練集訓練涌乳,在COCO測試開發(fā)集上Faster R-CNNN有42.1%的mAP@0.5和21.5%的mAP@[0.5蜻懦,0.95]。與相同協(xié)議下的Fast R-CNN相比夕晓,mAP@0.5要高2.8%宛乃,mAP@[.5, .95]要高2.2%(表11)。這表明蒸辆,在更高的IoU閾值上征炼,RPN對提高定位精度表現(xiàn)出色。使用COCO訓練集訓練躬贡,在COCO測試開發(fā)集上Faster R-CNN有42.7%的mAP@0.5和21.9%的mAP@[.5, .95]谆奥。圖6顯示了MS COCO測試開發(fā)數(shù)據集中的一些結果。
在ILSVRC和COCO 2015比賽中的Faster R-CNN逢渔。我們已經證明,由于RPN通過神經網絡完全學習了提議區(qū)域乡括,F(xiàn)aster R-CNN從更好的特征中受益更多肃廓。即使將深度增加到100層以上,這種觀察仍然是有效的[18]诲泌。僅用101層殘差網絡(ResNet-101)代替VGG-16盲赊,F(xiàn)aster R-CNN系統(tǒng)就將mAP從41.5(VGG-16)增加到48.4%/27.2%(ResNet-101)。與其他改進正交于Faster R-CNN敷扫,何等人[18]在COCO測試開發(fā)數(shù)據集上獲得了單模型55.7%/34.9%的結果和59.0%/37.4%的組合結果哀蘑,在COCO 2015目標檢測競賽中獲得了第一名。同樣的系統(tǒng)[18]也在ILSVRC 2015目標檢測競賽中獲得了第一名葵第,超過第二名絕對的8.5%绘迁。RPN也是ILSVRC2015定位和COCO2015分割競賽第一名獲獎輸入的基石,詳情請分別參見[18]和[15]卒密。
4.3 從MS COCO到PASCAL VOC
????????大規(guī)模數(shù)據對改善深度神經網絡至關重要缀台。接下來,我們調查MS COCO數(shù)據集如何幫助改進在PASCAL VOC上的檢測性能哮奇。
????????作為一個簡單的基準數(shù)據膛腐,我們直接在PASCAL VOC數(shù)據集上評估COCO檢測模型睛约,而無需在任何PASCAL VOC數(shù)據上進行微調。這種評估是可能的哲身,因為COCO類別是PASCAL VOC上類別的超集辩涝。在這個實驗中忽略COCO專有的類別,softmax層僅在20個類別和背景上執(zhí)行勘天。這種設置下PASCAL VOC 2007測試集上的mAP為76.1%(表12)怔揩。即使沒有利用PASCAL VOC的數(shù)據,這個結果也好于在VOC07+12(73.2%)上訓練的模型的結果误辑。
????????然后我們在VOC數(shù)據集上對COCO檢測模型進行微調。在這個實驗中歌逢,COCO模型代替了ImageNet的預訓練模型(用于初始化網絡權重)巾钉,F(xiàn)aster R-CNN系統(tǒng)按3.2節(jié)所述進行微調。這樣做在PASCAL VOC 2007測試集上可以達到78.8%的mAP秘案。來自COCO集合的額外數(shù)據增加了5.6%的mAP砰苍。表6顯示,在PASCAL VOC 2007上阱高,使用COCO+VOC訓練的模型在每個類別上具有最好的AP值赚导。在PASCAL VOC 2012測試集(表12和表7)中也觀察到類似的改進。我們注意到獲得這些強大結果的測試時間速度仍然是每張圖像200ms左右赤惊。
5. 結論
????????我們已經提出了RPN來生成高效渺鹦,準確的區(qū)域提議。通過與下游檢測網絡共享卷積特征蛹含,區(qū)域提議步驟幾乎是零成本的海铆。我們的方法使統(tǒng)一的,基于深度學習的目標檢測系統(tǒng)能夠以接近實時的幀率運行挣惰。學習到的RPN也提高了區(qū)域提議的質量卧斟,從而提高了整體的目標檢測精度殴边。