[譯]Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

摘要

??目前最先進(jìn)的目標(biāo)檢測網(wǎng)絡(luò)需要先用區(qū)域建議算法推測目標(biāo)位置,像 SPPnet[7] 和 Fast R-CNN[5] 這些網(wǎng)絡(luò)已經(jīng)減少了檢測網(wǎng)絡(luò)的運(yùn)行時(shí)間,這時(shí)計(jì)算區(qū)域建議就成了瓶頸問題。本文中,我們介紹一種區(qū)域建議網(wǎng)絡(luò)(Region Proposal Network, RPN),它和檢測網(wǎng)絡(luò)共享全圖的卷積特征,使得區(qū)域建議幾乎不花時(shí)間。RPN 是一個(gè)全卷積網(wǎng)絡(luò),在每個(gè)位置同時(shí)預(yù)測目標(biāo)邊界和 objectness 得分。RPN 是端到端訓(xùn)練的,生成高質(zhì)量區(qū)域建議框,用于 Fast R-CNN 來檢測。通過一種簡單的交替運(yùn)行優(yōu)化方法,RPN 和 Fast R-CNN 可以在訓(xùn)練時(shí)共享卷積特征。對于非常深的 VGG-16 模型 [19],我們的檢測系統(tǒng)在 GPU 上的幀率為 5fps(包含所有步驟),在 PASCAL VOC 2007 和 PASCAL VOC 2012 上實(shí)現(xiàn)了最高的目標(biāo)檢測準(zhǔn)確率(2007 是 73.2%mAP,2012 是 70.4%mAP),每個(gè)圖像用了 300 個(gè)建議框。代碼已公開。


  1. 引言

??最近在目標(biāo)檢測中取得的進(jìn)步都是由區(qū)域建議方法(例如 [22])和基于區(qū)域的卷積神經(jīng)網(wǎng)絡(luò)(R-CNN)[6] 取得的成功來推動(dòng)的?;趨^(qū)域的 CNN 在 [6] 中剛提出時(shí)在計(jì)算上消耗很大,幸好后來這個(gè)消耗通過建議框之間共享卷積 [7,5] 大大降低了。最近的 Fast R-CNN[5]用非常深的網(wǎng)絡(luò) [19] 實(shí)現(xiàn)了近實(shí)時(shí)檢測的速率,注意它忽略了生成區(qū)域建議框的時(shí)間?,F(xiàn)在,建議框是最先進(jìn)的檢測系統(tǒng)中的計(jì)算瓶頸。
??區(qū)域建議方法典型地依賴于消耗小的特征和經(jīng)濟(jì)的獲取方案。選擇性搜索(Selective Search, SS)[22]是最流行的方法之一,它基于設(shè)計(jì)好的低級特征貪心地融合超級像素。與高效檢測網(wǎng)絡(luò) [5] 相比,SS 要慢一個(gè)數(shù)量級,CPU 應(yīng)用中大約每個(gè)圖像 2s。EdgeBoxes[24]在建議框質(zhì)量和速度之間做出了目前最好的權(quán)衡,大約每個(gè)圖像 0.2s。但無論如何,區(qū)域建議步驟花費(fèi)了和檢測網(wǎng)絡(luò)差不多的時(shí)間。
??Fast R-CNN 利用了 GPU,而區(qū)域建議方法是在 CPU 上實(shí)現(xiàn)的,這個(gè)運(yùn)行時(shí)間的比較是不公平的。一種明顯提速生成建議框的方法是在 GPU 上實(shí)現(xiàn)它,這是一種工程上很有效的解決方案,但這個(gè)方法忽略了其后的檢測網(wǎng)絡(luò),因而也錯(cuò)失了共享計(jì)算的重要機(jī)會。
??本文中,我們改變了算法——用深度網(wǎng)絡(luò)計(jì)算建議框——這是一種簡潔有效的解決方案,建議框計(jì)算幾乎不會給檢測網(wǎng)絡(luò)的計(jì)算帶來消耗。為了這個(gè)目的,我們介紹新穎的區(qū)域建議網(wǎng)絡(luò)(Region Proposal Networks, RPN),它與最先進(jìn)的目標(biāo)檢測網(wǎng)絡(luò) [7,5] 共享卷積層。在測試時(shí),通過共享卷積,計(jì)算建議框的邊際成本是很小的(例如每個(gè)圖像 10ms)。
??我們觀察發(fā)現(xiàn),基于區(qū)域的檢測器例如 Fast R-CNN 使用的卷積(conv)特征映射,同樣可以用于生成區(qū)域建議。我們緊接著這些卷積特征增加兩個(gè)額外的卷積層,構(gòu)造 RPN:第一個(gè)層把每個(gè)卷積映射位置編碼為一個(gè)短的(例如 256-d)特征向量,第二個(gè)層在每個(gè)卷積映射位置,輸出這個(gè)位置上多種尺度和長寬比的 k 個(gè)區(qū)域建議的 objectness 得分和回歸邊界(k=9 是典型值)。
??我們的 RPN 是一種全卷積網(wǎng)絡(luò)(fully-convolutional network, FCN)[14],可以針對生成檢測建議框的任務(wù)端到端地訓(xùn)練。為了統(tǒng)一 RPN 和 Fast R-CNN[5] 目標(biāo)檢測網(wǎng)絡(luò),我們提出一種簡單的訓(xùn)練方案,即保持建議框固定,微調(diào)區(qū)域建議和微調(diào)目標(biāo)檢測之間交替進(jìn)行。這個(gè)方案收斂很快,最后形成可讓兩個(gè)任務(wù)共享卷積特征的標(biāo)準(zhǔn)網(wǎng)絡(luò)。
??我們在 PASCAL VOC 檢測標(biāo)準(zhǔn)集 [4] 上評估我們的方法, fast R-CNN 結(jié)合 RPN 的檢測準(zhǔn)確率超過了作為強(qiáng)大基準(zhǔn)的 fast R-CNN 結(jié)合 SS 的方法。同時(shí),我們的方法沒有了 SS 測試時(shí)的計(jì)算負(fù)擔(dān),對于生成建議框的有效運(yùn)行時(shí)間只有 10 毫秒。利用 [19] 中網(wǎng)絡(luò)非常深的深度模型,我們的檢測方法在 GPU 上依然有 5fps 的幀率(包括所有步驟),因此就速度和準(zhǔn)確率(PASCAL VOC 2007 上是 73.2%mAP,PASCAL VOC 2012 上是 70.4%)而言,這是一個(gè)實(shí)用的目標(biāo)檢測系統(tǒng)。代碼已公開。


  1. 相關(guān)工作

??最近幾篇文章中提出了用深度網(wǎng)絡(luò)定位類確定或類不確定的包圍盒 [21, 18, 3, 20] 的方法。在 OverFeat 方法[18] 中,訓(xùn)練全連接(fc)層,對假定只有一個(gè)目標(biāo)的定位任務(wù)預(yù)測包圍盒坐標(biāo)。fc 層再轉(zhuǎn)入卷積層來檢測多個(gè)類確定的目標(biāo)。MultiBox 方法 [3, 20] 從最后一個(gè) fc 層同時(shí)預(yù)測多個(gè)(如 800)包圍盒的網(wǎng)絡(luò)中生成區(qū)域建議,R-CNN[6]就是用的這個(gè)。他們的建議框網(wǎng)絡(luò)應(yīng)用于單個(gè)圖像或多個(gè)大圖像的切割部分(如 224x224)[20]。我們在后文中講我們的方法時(shí)會更深層次地討論 OverFeat 和 MultiBox。
??卷積的共享計(jì)算 [18, 7, 2, 5] 高效、精確,已經(jīng)在視覺識別方面吸引了越來越多的注意。OverFeat 論文 [18] 從圖像金字塔計(jì)算卷積特征,用于分類、定位、檢測。在共享的卷積特征映射上自適應(yīng)大小的 pooling(SPP)[7]能有效用于基于區(qū)域的目標(biāo)檢測 [7, 16] 和語義分割 [2]。Fast R-CNN[5] 實(shí)現(xiàn)了在共享卷積特征上訓(xùn)練的端到端檢測器,顯示出令人驚嘆的準(zhǔn)確率和速度。


  1. 區(qū)域建議網(wǎng)絡(luò)

??區(qū)域建議網(wǎng)絡(luò)(RPN)將一個(gè)圖像(任意大?。┳鳛檩斎?,輸出矩形目標(biāo)建議框的集合,每個(gè)框有一個(gè) objectness 得分。我們用全卷積網(wǎng)絡(luò) [14] 對這個(gè)過程構(gòu)建模型,本章會詳細(xì)描述。因?yàn)槲覀兊淖罱K目標(biāo)是和 Fast R-CNN 目標(biāo)檢測網(wǎng)絡(luò) [15] 共享計(jì)算,所以假設(shè)這兩個(gè)網(wǎng)絡(luò)共享一系列卷積層。在實(shí)驗(yàn)中,我們詳細(xì)研究 Zeiler 和 Fergus 的模型 [23](ZF),它有 5 個(gè)可共享的卷積層,以及 Simonyan 和 Zisserman 的模型 [19](VGG),它有 13 個(gè)可共享的卷積層。
??為了生成區(qū)域建議框,我們在最后一個(gè)共享的卷積層輸出的卷積特征映射上滑動(dòng)小網(wǎng)絡(luò),這個(gè)網(wǎng)絡(luò)全連接到輸入卷積特征映射的 nxn 的空間窗口上。每個(gè)滑動(dòng)窗口映射到一個(gè)低維向量上(對于 ZF 是 256-d,對于 VGG 是 512-d,每個(gè)特征映射的一個(gè)滑動(dòng)窗口對應(yīng)一個(gè)數(shù)值)。這個(gè)向量輸出給兩個(gè)同級的全連接的層——包圍盒回歸層(reg)和包圍盒分類層(cls)。本文中 n=3,注意圖像的有效感受野很大(ZF 是 171 像素,VGG 是 228 像素)。圖 1(左)以這個(gè)小網(wǎng)絡(luò)在某個(gè)位置的情況舉了個(gè)例子。注意,由于小網(wǎng)絡(luò)是滑動(dòng)窗口的形式,所以全連接的層(nxn 的)被所有空間位置共享(指所有位置用來計(jì)算內(nèi)積的 nxn 的層參數(shù)相同)。這種結(jié)構(gòu)實(shí)現(xiàn)為 nxn 的卷積層,后接兩個(gè)同級的 1x1 的卷積層(分別對應(yīng) reg 和 cls),ReLU[15] 應(yīng)用于 nxn 卷積層的輸出。

image

??圖 1:左:區(qū)域建議網(wǎng)絡(luò)(RPN)。右:用 RPN 建議框在 PASCAL VOC 2007 測試集上的檢測實(shí)例。我們的方法可以在很大范圍的尺度和長寬比中檢測目標(biāo)。

平移不變的 anchor

??在每一個(gè)滑動(dòng)窗口的位置,我們同時(shí)預(yù)測 k 個(gè)區(qū)域建議,所以 reg 層有 4k 個(gè)輸出,即 k 個(gè) box 的坐標(biāo)編碼。cls 層輸出 2k 個(gè)得分,即對每個(gè)建議框是目標(biāo) / 非目標(biāo)的估計(jì)概率(為簡單起見,是用二類的 softmax 層實(shí)現(xiàn)的 cls 層,還可以用 logistic 回歸來生成 k 個(gè)得分)。k 個(gè)建議框被相應(yīng)的 k 個(gè)稱為 anchor 的 box 參數(shù)化。每個(gè) anchor 以當(dāng)前滑動(dòng)窗口中心為中心,并對應(yīng)一種尺度和長寬比,我們使用 3 種尺度和 3 種長寬比,這樣在每一個(gè)滑動(dòng)位置就有 k=9 個(gè) anchor。對于大小為 WxH(典型值約 2,400)的卷積特征映射,總共有 WHk 個(gè) anchor。我們的方法有一個(gè)重要特性,就是平移不變性,對 anchor 和對計(jì)算 anchor 相應(yīng)的建議框的函數(shù)而言都是這樣。
??作為比較,MultiBox 方法 [20] 用 k-means 生成 800 個(gè) anchor,但不具有平移不變性。如果平移了圖像中的目標(biāo),建議框也應(yīng)該平移,也應(yīng)該能用同樣的函數(shù)預(yù)測建議框。此外,因?yàn)?MultiBox 的 anchor 不具有平移不變性,所以它需要(4+1)x800-d 的輸出層,而我們的方法只要(4+2)x9-d 的輸出層。我們的建議框?qū)由僖粋€(gè)數(shù)量級的參數(shù)(MultiBox 用 GoogleLeNet[20] 需要 2700 萬 vs.RPN 用 VGG-16 需要 240 萬),這樣在 PASCAL VOC 這種小數(shù)據(jù)集上出現(xiàn)過擬合的風(fēng)險(xiǎn)較小。

學(xué)習(xí)區(qū)域建議的損失函數(shù)

??為了訓(xùn)練 RPN,我們給每個(gè) anchor 分配一個(gè)二進(jìn)制的標(biāo)簽(是不是目標(biāo))。我們分配正標(biāo)簽給兩類 anchor:(i)與某個(gè) ground truth(GT)包圍盒有最高的 IoU(Intersection-over-Union,交集并集之比)重疊的 anchor(也許不到 0.7),(ii)與任意 GT 包圍盒有大于 0.7 的 IoU 交疊的 anchor。注意到一個(gè) GT 包圍盒可能分配正標(biāo)簽給多個(gè) anchor。我們分配負(fù)標(biāo)簽給與所有 GT 包圍盒的 IoU 比率都低于 0.3 的 anchor。非正非負(fù)的 anchor 對訓(xùn)練目標(biāo)沒有任何作用。
??有了這些定義,我們遵循 Fast R-CNN[5] 中的多任務(wù)損失,最小化目標(biāo)函數(shù)。我們對一個(gè)圖像的損失函數(shù)定義為

image

??這里,i 是一個(gè) mini-batch 中 anchor 的索引,Pi 是 anchor i 是目標(biāo)的預(yù)測概率。如果 anchor 為正,GT 標(biāo)簽 Pi* 就是 1,如果 anchor 為負(fù),Pi* 就是 0。ti 是一個(gè)向量,表示預(yù)測的包圍盒的 4 個(gè)參數(shù)化坐標(biāo),ti* 是與正 anchor 對應(yīng)的 GT 包圍盒的坐標(biāo)向量。分類損失 Lcls 是兩個(gè)類別(目標(biāo) vs. 非目標(biāo))的對數(shù)損失
image
。對于回歸損失 ,我們用
image
來計(jì)算,其中 R 是 [5] 中定義的魯棒的損失函數(shù)(smooth L1)。
image

??p_i* L_{reg} 這一項(xiàng)意味著只有正 anchor(Pi
=1)才有回歸損失,其他情況就沒有(Pi
=0)。cls 層和 reg 層的輸出分別由 {pi} 和{ti}組成,這兩項(xiàng)分別由 Ncls 和 Nreg 以及一個(gè)平衡權(quán)重λ歸一化(早期實(shí)現(xiàn)及公開的代碼中,λ=10,cls 項(xiàng)的歸一化值為 mini-batch 的大小,即 Ncls=256,reg 項(xiàng)的歸一化值為 anchor 位置的數(shù)量,即 Nreg~2,400,這樣 cls 和 reg 項(xiàng)差不多是等權(quán)重的。
??對于回歸,我們學(xué)習(xí) [6] 采用 4 個(gè)坐標(biāo):
image

??x,y,w,h 指的是包圍盒中心的(x, y)坐標(biāo)、寬、高。變量 x,xa,x * 分別指預(yù)測的包圍盒、anchor 的包圍盒、GT 的包圍盒(對 y,w,h 也是一樣)的 x 坐標(biāo)。可以理解為從 anchor 包圍盒到附近的 GT 包圍盒的包圍盒回歸。
??無論如何,我們用了一種與之前的基于特征映射的方法 [7, 5] 不同的方法實(shí)現(xiàn)了包圍盒算法。在 [7, 5] 中,包圍盒回歸在從任意大小的區(qū)域中 pooling 到的特征上執(zhí)行,回歸權(quán)重是所有不同大小的區(qū)域共享的。在我們的方法中,用于回歸的特征在特征映射中具有相同的空間大?。╪xn)??紤]到各種不同的大小,需要學(xué)習(xí)一系列 k 個(gè)包圍盒回歸量。每一個(gè)回歸量對應(yīng)于一個(gè)尺度和長寬比,k 個(gè)回歸量之間不共享權(quán)重。因此,即使特征具有固定的尺寸 / 尺度,預(yù)測各種尺寸的包圍盒仍然是可能的。

優(yōu)化

??RPN 很自然地實(shí)現(xiàn)為全卷積網(wǎng)絡(luò) [14],通過反向傳播和隨機(jī)梯度下降(SGD)[12] 端到端訓(xùn)練。我們遵循 [5] 中的 “image-centric” 采樣策略訓(xùn)練這個(gè)網(wǎng)絡(luò)。每個(gè) mini-batch 由包含了許多正負(fù)樣本的單個(gè)圖像組成。我們可以優(yōu)化所有 anchor 的損失函數(shù),但是這會偏向于負(fù)樣本,因?yàn)樗鼈兪侵饕摹R虼?,我們隨機(jī)地在一個(gè)圖像中采樣 256 個(gè) anchor,計(jì)算 mini-batch 的損失函數(shù),其中采樣的正負(fù) anchor 的比例是 1:1。如果一個(gè)圖像中的正樣本數(shù)小于 128,我們就用負(fù)樣本填補(bǔ)這個(gè) mini-batch。
??我們通過從零均值標(biāo)準(zhǔn)差為 0.01 的高斯分布中獲取的權(quán)重來隨機(jī)初始化所有新層(最后一個(gè)卷積層其后的層),所有其他層(即共享的卷積層)是通過對 ImageNet 分類 [17] 預(yù)訓(xùn)練的模型來初始化的,這也是標(biāo)準(zhǔn)慣例[6]。我們調(diào)整 ZF 網(wǎng)絡(luò)的所有層,以及 conv3_1,并為 VGG 網(wǎng)絡(luò)做準(zhǔn)備,以節(jié)約內(nèi)存[5]。我們在 PASCAL 數(shù)據(jù)集上對于 60k 個(gè) mini-batch 用的學(xué)習(xí)率為 0.001,對于下一 20k 個(gè) mini-batch 用的學(xué)習(xí)率是 0.0001。動(dòng)量是 0.9,權(quán)重衰減為 0.0005[11]。我們的實(shí)現(xiàn)使用了 Caffe[10]。

區(qū)域建議與目標(biāo)檢測共享卷積特征

??迄今為止,我們已經(jīng)描述了如何為生成區(qū)域建議訓(xùn)練網(wǎng)絡(luò),而沒有考慮基于區(qū)域的目標(biāo)檢測 CNN 如何利用這些建議框。對于檢測網(wǎng)絡(luò),我們采用 Fast R-CNN[5],現(xiàn)在描述一種算法,學(xué)習(xí)由 RPN 和 Fast R-CNN 之間共享的卷積層。
??RPN 和 Fast R-CNN 都是獨(dú)立訓(xùn)練的,要用不同方式修改它們的卷積層。因此我們需要開發(fā)一種允許兩個(gè)網(wǎng)絡(luò)間共享卷積層的技術(shù),而不是分別學(xué)習(xí)兩個(gè)網(wǎng)絡(luò)。注意到這不是僅僅定義一個(gè)包含了 RPN 和 Fast R-CNN 的單獨(dú)網(wǎng)絡(luò),然后用反向傳播聯(lián)合優(yōu)化它那么簡單。原因是 Fast R-CNN 訓(xùn)練依賴于固定的目標(biāo)建議框,而且并不清楚當(dāng)同時(shí)改變建議機(jī)制時(shí),學(xué)習(xí) Fast R-CNN 會不會收斂。雖然這種聯(lián)合優(yōu)化在未來工作中是個(gè)有意思的問題,我們開發(fā)了一種實(shí)用的 4 步訓(xùn)練算法,通過交替優(yōu)化來學(xué)習(xí)共享的特征。
??第一步,我們依上述訓(xùn)練 RPN,該網(wǎng)絡(luò)用 ImageNet 預(yù)訓(xùn)練的模型初始化,并端到端微調(diào)用于區(qū)域建議任務(wù)。第二步,我們利用第一步的 RPN 生成的建議框,由 Fast R-CNN 訓(xùn)練一個(gè)單獨(dú)的檢測網(wǎng)絡(luò),這個(gè)檢測網(wǎng)絡(luò)同樣是由 ImageNet 預(yù)訓(xùn)練的模型初始化的,這時(shí)候兩個(gè)網(wǎng)絡(luò)還沒有共享卷積層。第三步,我們用檢測網(wǎng)絡(luò)初始化 RPN 訓(xùn)練,但我們固定共享的卷積層,并且只微調(diào) RPN 獨(dú)有的層,現(xiàn)在兩個(gè)網(wǎng)絡(luò)共享卷積層了。第四步,保持共享的卷積層固定,微調(diào) Fast R-CNN 的 fc 層。這樣,兩個(gè)網(wǎng)絡(luò)共享相同的卷積層,構(gòu)成一個(gè)統(tǒng)一的網(wǎng)絡(luò)。

實(shí)現(xiàn)細(xì)節(jié)

??我們訓(xùn)練、測試區(qū)域建議和目標(biāo)檢測網(wǎng)絡(luò)都是在單一尺度的圖像上 [7, 5]。我們縮放圖像,讓它們的短邊 s=600 像素 [5]。多尺度特征提取可能提高準(zhǔn)確率但是不利于速度與準(zhǔn)確率之間的權(quán)衡 [5]。我們也注意到 ZF 和 VGG 網(wǎng)絡(luò),對縮放后的圖像在最后一個(gè)卷積層的總步長為 16 像素,這樣相當(dāng)于一個(gè)典型的 PASCAL 圖像(~500x375)上大約 10 個(gè)像素(600/16=375/10)。即使是這樣大的步長也取得了好結(jié)果,盡管若步長小點(diǎn)準(zhǔn)確率可能得到進(jìn)一步提高。
對于 anchor,我們用 3 個(gè)簡單的尺度,包圍盒面積為 128x128,256x256,512x512,和 3 個(gè)簡單的長寬比,1:1,1:2,2:1。注意到,在預(yù)測大建議框時(shí),我們的算法考慮了使用大于基本感受野的 anchor 包圍盒。這些預(yù)測不是不可能——只要看得見目標(biāo)的中間部分,還是能大致推斷出這個(gè)目標(biāo)的范圍。通過這個(gè)設(shè)計(jì),我們的解決方案不需要多尺度特征或者多尺度滑動(dòng)窗口來預(yù)測大的區(qū)域,節(jié)省了相當(dāng)多的運(yùn)行時(shí)間。圖 1(右)顯示了我們的算法處理多種尺度和長寬比的能力。下表是用 ZF 網(wǎng)絡(luò)對每個(gè) anchor 學(xué)到的平均建議框大?。╯=600)。

image

??跨越圖像邊界的 anchor 包圍盒要小心處理。在訓(xùn)練中,我們忽略所有跨越圖像邊界的 anchor,這樣它們不會對損失有影響。對于一個(gè)典型的 1000x600 的圖像,差不多總共有 20k(~60x40x9)anchor。忽略了跨越邊界的 anchor 以后,每個(gè)圖像只剩下 6k 個(gè) anchor 需要訓(xùn)練了。如果跨越邊界的異常值在訓(xùn)練時(shí)不忽略,就會帶來又大又困難的修正誤差項(xiàng),訓(xùn)練也不會收斂。在測試時(shí),我們還是應(yīng)用全卷積的 RPN 到整個(gè)圖像中,這可能生成跨越邊界的建議框,我們將其裁剪到圖像邊緣位置。
??有些 RPN 建議框和其他建議框大量重疊,為了減少冗余,我們基于建議區(qū)域的 cls 得分,對其采用非極大值抑制(non-maximum suppression, NMS)。我們固定對 NMS 的 IoU 閾值為 0.7,這樣每個(gè)圖像只剩 2k 個(gè)建議區(qū)域。正如下面展示的,NMS 不會影響最終的檢測準(zhǔn)確率,但是大幅地減少了建議框的數(shù)量。NMS 之后,我們用建議區(qū)域中的 top-N 個(gè)來檢測。在下文中,我們用 2k 個(gè) RPN 建議框訓(xùn)練 Fast R-CNN,但是在測試時(shí)會對不同數(shù)量的建議框進(jìn)行評價(jià)。


  1. 實(shí)驗(yàn)

??我們在 PASCAL VOC2007 檢測基準(zhǔn) [4] 上綜合評價(jià)我們的方法。此數(shù)據(jù)集包括 20 個(gè)目標(biāo)類別,大約 5k 個(gè) trainval 圖像和 5k 個(gè) test 圖像。我們還對少數(shù)模型提供 PASCAL VOC2012 基準(zhǔn)上的結(jié)果。對于 ImageNet 預(yù)訓(xùn)練網(wǎng)絡(luò),我們用 “fast” 版本的 ZF 網(wǎng)絡(luò)[23],有 5 個(gè)卷積層和 3 個(gè) fc 層,公開的 VGG-16 模型[19],有 13 個(gè)卷積層和 3 個(gè) fc 層。我們主要評估檢測的平均精度(mean Average Precision, mAP),因?yàn)檫@是對目標(biāo)檢測的實(shí)際度量標(biāo)準(zhǔn)(而不是側(cè)重于目標(biāo)建議框的代理度量)。
??表 1(上)顯示了使用各種區(qū)域建議的方法訓(xùn)練和測試時(shí) Fast R-CNN 的結(jié)果。這些結(jié)果使用的是 ZF 網(wǎng)絡(luò)。對于選擇性搜索(SS)[22],我們用 “fast” 模式生成了 2k 個(gè)左右的 SS 建議框。對于 EdgeBoxes(EB)[24],我們把默認(rèn)的 EB 設(shè)置調(diào)整為 0.7IoU 生成建議框。SS 的 mAP 為 58.7%,EB 的 mAP 為 58.6%。RPN 與 Fast R-CNN 實(shí)現(xiàn)了有競爭力的結(jié)果,當(dāng)使用 300 個(gè)建議框時(shí)的 mAP 就有 59.9%(對于 RPN,建議框數(shù)量,如 300,是一個(gè)圖像產(chǎn)生建議框的最大數(shù)量。RPN 可能產(chǎn)生更少的建議框,這樣建議框的平均數(shù)量也更少了)。使用 RPN 實(shí)現(xiàn)了一個(gè)比用 SS 或 EB 更快的檢測系統(tǒng),因?yàn)橛泄蚕淼木矸e計(jì)算;建議框較少,也減少了區(qū)域方面的 fc 消耗。接下來,我們考慮 RPN 的幾種消融,然后展示使用非常深的網(wǎng)絡(luò)時(shí),建議框質(zhì)量的提高。

??表 1 PASCAL VOC2007 年測試集的檢測結(jié)果(在 VOC2007 trainval 訓(xùn)練)。該檢測器是 Fast R-CNN 與 ZF,但使用各種建議框方法進(jìn)行訓(xùn)練和測試。

image

??消融試驗(yàn)。為了研究 RPN 作為建議框方法的表現(xiàn),我們進(jìn)行了多次消融研究。首先,我們展示了 RPN 和 Fast R-CNN 檢測網(wǎng)絡(luò)之間共享卷積層的影響。要做到這一點(diǎn),我們在 4 步訓(xùn)練過程中的第二步后停下來。使用分離的網(wǎng)絡(luò)時(shí)的結(jié)果稍微降低為 58.7%(RPN+ ZF,非共享,表 1)。我們觀察到,這是因?yàn)樵诘谌街?,?dāng)調(diào)整過的檢測器特征用于微調(diào) RPN 時(shí),建議框質(zhì)量得到提高。
??接下來,我們理清了 RPN 在訓(xùn)練 Fast R-CNN 檢測網(wǎng)絡(luò)上的影響。為此,我們用 2k 個(gè) SS 建議框和 ZF 網(wǎng)絡(luò)訓(xùn)練了一個(gè) Fast R-CNN 模型。我們固定這個(gè)檢測器,通過改變測試時(shí)使用的建議區(qū)域,評估檢測的 mAP。在這些消融實(shí)驗(yàn)中,RPN 不與檢測器共享特征。
??在測試時(shí)用 300 個(gè) RPN 建議框替換 SS,mAP 為 56.8%。mAP 的損失是訓(xùn)練 / 測試建議框之間的不一致所致。該結(jié)果作為以下比較的基準(zhǔn)。
有些奇怪的是,在測試時(shí)使用排名最高的 100 個(gè)建議框時(shí),RPN 仍然會取得有競爭力的結(jié)果(55.1%),表明這種高低排名的 RPN 建議框是準(zhǔn)確的。另一種極端情況,使用排名最高的 6k 個(gè) RPN 建議框(沒有 NMS)取得具有可比性的 mAP(55.2%),這表明 NMS 不會降低檢測 mAP,反而可以減少誤報(bào)。
接下來,我們通過在測試時(shí)分別移除 RPN 的 cls 和 reg 中的一個(gè),研究它們輸出的作用。當(dāng)在測試時(shí)(因此沒有用 NMS / 排名)移除 cls 層,我們從沒有計(jì)算得分的區(qū)域隨機(jī)抽取 N 個(gè)建議框。N =1k 時(shí) mAP 幾乎沒有變化(55.8%),但當(dāng) N=100 則大大降低為 44.6%。這表明,cls 得分是排名最高的建議框準(zhǔn)確的原因。
??另一方面,當(dāng)在測試時(shí)移除 reg 層(這樣的建議框就直接是 anchor 框了),mAP 下降到 52.1%。這表明,高品質(zhì)的建議框主要?dú)w功于回歸后的位置。單是 anchor 框不足以精確檢測。
??我們還評估更強(qiáng)大的網(wǎng)絡(luò)對 RPN 的建議框質(zhì)量的作用。我們使用 VGG-16 訓(xùn)練 RPN,并仍然使用上述 SS+ZF 檢測器。mAP 從 56.8%(使用 RPN+ZF)提高到 59.2%(使用 RPN+VGG)。這是一個(gè)滿意的結(jié)果,因?yàn)樗砻?,RPN+VGG 的建議框質(zhì)量比 RPN+ZF 的更好。由于 RPN+ZF 的建議框是可與 SS 競爭的(訓(xùn)練和測試一致使用時(shí)都是 58.7%),我們可以預(yù)期 RPN+VGG 比 SS 好。下面的實(shí)驗(yàn)證明這一假說。
??VGG-16 的檢測準(zhǔn)確率與運(yùn)行時(shí)間。表 2 展示了 VGG-16 對建議框和檢測的結(jié)果。使用 RPN+VGG,F(xiàn)ast R-CNN 對不共享特征的結(jié)果是 68.5%,比 SS 基準(zhǔn)略高。如上所示,這是因?yàn)橛?RPN+VGG 產(chǎn)生的建議框比 SS 更準(zhǔn)確。不像預(yù)先定義的 SS,RPN 是實(shí)時(shí)訓(xùn)練的,能從更好的網(wǎng)絡(luò)獲益。對特征共享的變型,結(jié)果是 69.9%——比強(qiáng)大的 SS 基準(zhǔn)更好,建議框幾乎無損耗。我們跟隨 [5],在 PASCAL VOC2007 trainval 和 2012 trainval 的并集上進(jìn)一步訓(xùn)練 RPN,mAP 是 73.2%。跟[5] 一樣在 VOC 2007 trainval+test 和 VOC2012 trainval 的并集上訓(xùn)練時(shí),我們的方法在 PASCAL VOC 2012 測試集上(表 3)有 70.4%的 mAP。

??表 2:在 PASCAL VOC 2007 測試集上的檢測結(jié)果,檢測器是 Fast R-CNN 和 VGG16。訓(xùn)練數(shù)據(jù):“07”:VOC2007 trainval,“07+12”:VOC 2007 trainval 和 VOC 2012 trainval 的并集。對 RPN,用于 Fast R-CNN 訓(xùn)練時(shí)的建議框是 2k。這在 [5] 中有報(bào)告;利用本文所提供的倉庫(repository),這個(gè)數(shù)字更高(68.0±0.3 在 6 次運(yùn)行中)。

image

??表 3:PASCAL VOC 2012 測試集檢測結(jié)果。檢測器是 Fast R-CNN 和 VGG16。訓(xùn)練數(shù)據(jù):“07”:VOC 2007 trainval,“07++12”: VOC 2007 trainval+test 和 VOC 2012 trainval 的并集。對 RPN,用于 Fast R-CNN 訓(xùn)練時(shí)的建議框是 2k。

image

??表 4 中我們總結(jié)整個(gè)目標(biāo)檢測系統(tǒng)的運(yùn)行時(shí)間。SS 需要 1~2 秒,取決于圖像內(nèi)容(平均 1.51s),采用 VGG-16 的 Fast R-CNN 在 2k 個(gè) SS 建議框上需要 320ms(若是用了 SVD 在 fc 層的話只用 223ms[5])。我們采用 VGG-16 的系統(tǒng)生成建議框和檢測一共只需要 198ms。卷積層共享時(shí),RPN 只用 10ms 來計(jì)算附加的幾層。由于建議框較少(300),我們的區(qū)域計(jì)算花費(fèi)也很低。我們的系統(tǒng)采用 ZF 網(wǎng)絡(luò)時(shí)的幀率為 17fps。

??表 4: K40 GPU 上的用時(shí)(ms),除了 SS 建議框是在 CPU 中進(jìn)行評價(jià)的?!皡^(qū)域方面” 包括 NMS,pooling,fc 和 softmax。請參閱我們發(fā)布的代碼運(yùn)行時(shí)間的分析。

image

??IoU 召回率的分析。接下來,我們計(jì)算建議框與 GT 框在不同的 IoU 比例時(shí)的召回率。值得注意的是,該 IoU 召回率度量標(biāo)準(zhǔn)與最終的檢測準(zhǔn)確率只是松散 [9, 8, 1] 相關(guān)的。更適合用這個(gè)度量標(biāo)準(zhǔn)來診斷建議框方法,而不是對其進(jìn)行評估。
??在圖 2 中,我們展示使用 300,1k,和 2k 個(gè)建議框的結(jié)果。我們將 SS 和 EB 作比較,并且這 N 個(gè)建議框是基于用這些方法生成的按置信度排名的前 N 個(gè)。該圖顯示,當(dāng)建議框數(shù)量由 2k 下降到 300 時(shí),RPN 方法的表現(xiàn)很好。這就解釋了使用少到 300 個(gè)建議框時(shí),為什么 RPN 有良好的最終檢測 mAP。正如我們前面分析的,這個(gè)屬性主要是歸因于 RPN 的 cls 項(xiàng)。當(dāng)建議框變少時(shí),SS 和 EB 的召回率下降的速度快于 RPN。

image

圖 2:PASCAL VOC 2007 測試集上的召回率 vs. IoU 重疊率

??** 單級的檢測 vs. 兩級的建議框 + 檢測。*OverFeat 論文 [18] 提出在卷積特征映射的滑動(dòng)窗口上使用回歸和分類的檢測方法。OverFeat 是一個(gè)單級的,類特定的檢測流程,我們的是一個(gè)兩級的,由類無關(guān)的建議框方法和類特定的檢測組成的級聯(lián)方法。在 OverFeat 中,區(qū)域方面的特征來自一個(gè)滑動(dòng)窗口,對應(yīng)一個(gè)尺度金字塔的一個(gè)長寬比。這些特征被用于同時(shí)確定物體的位置和類別。在 RPN 中,特征都來自相對于 anchor 的方形(33)滑動(dòng)窗口和預(yù)測建議框,是不同的尺度和長寬比。雖然這兩種方法都使用滑動(dòng)窗口,區(qū)域建議任務(wù)只是 RPN + Fast R-CNN 的第一級——檢測器致力于改進(jìn)建議框。在我們級聯(lián)方法的第二級,區(qū)域一級的特征自適應(yīng)地從建議框進(jìn)行 pooling[7, 5],更如實(shí)地覆蓋區(qū)域的特征。我們相信這些特征帶來更準(zhǔn)確的檢測。
??為了比較單級和兩級系統(tǒng),我們通過單級的 Fast R-CNN 模擬 OverFeat 系統(tǒng)(因而也規(guī)避實(shí)現(xiàn)細(xì)節(jié)的其他差異)。在這個(gè)系統(tǒng)中,“建議框”是稠密滑動(dòng)的,有 3 個(gè)尺度(128,256,512)和 3 個(gè)長寬比(1:1,1:2,2:1)。Fast R-CNN 被訓(xùn)練來從這些滑動(dòng)窗口預(yù)測特定類的得分和回歸盒的位置。由于 OverFeat 系統(tǒng)采用多尺度的特征,我們也用由 5 個(gè)尺度中提取的卷積特征來評價(jià)。我們使用 [7,5] 中一樣的 5 個(gè)尺度。
??表 5 比較了兩級系統(tǒng)和兩個(gè)單級系統(tǒng)的變體。使用 ZF 模型,單級系統(tǒng)具有 53.9%的 mAP。這比兩級系統(tǒng)(58.7%)低 4.8%。這個(gè)實(shí)驗(yàn)證明級聯(lián)區(qū)域建議方法和目標(biāo)檢測的有效性。類似的觀察報(bào)告在 [5,13] 中,在兩篇論文中用滑動(dòng)窗口取代 SS 區(qū)域建議都導(dǎo)致了約 6%的下降。我們還注意到,單級系統(tǒng)比較慢,因?yàn)樗邢喈?dāng)多的建議框要處理。

??表 5:單級檢測 vs. 兩級建議 + 檢測。檢測結(jié)果都是在 PASCAL VOC2007 測試集使用 ZF 模型和 Fast R-CNN。RPN 使用非共享的特征。

image
  1. 總結(jié)

??我們對高效和準(zhǔn)確的區(qū)域建議的生成提出了區(qū)域建議建議網(wǎng)絡(luò)(RPN)。通過與其后的檢測網(wǎng)絡(luò)共享卷積特征,區(qū)域建議的步驟幾乎是無損耗的。我們的方法使一個(gè)一致的,基于深度學(xué)習(xí)的目標(biāo)檢測系統(tǒng)以 5-17 fps 的速度運(yùn)行。學(xué)到的 RPN 也改善了區(qū)域建議的質(zhì)量,進(jìn)而改善整個(gè)目標(biāo)檢測的準(zhǔn)確性。

??表 6:Fast R-CNN 檢測器和 VGG16 在 PASCAL VOC 2007 測試集的結(jié)果。對于 RPN,F(xiàn)ast R-CNN 訓(xùn)練時(shí)的建議框是 2k 個(gè)。RPN* 表示非共享特征的版本。*

image

??表 7:Fast R-CNN 檢測器和 VGG16 在 PASCAL VOC 2012 測試集的結(jié)果。對于 RPN,F(xiàn)ast R-CNN 訓(xùn)練時(shí)的建議框是 2k 個(gè)。

image

image

image

image

image

image

image

??圖 3:對最終的檢測結(jié)果使用具有共享特征的 RPN + FastR-CNN 在 PASCAL VOC 2007 測試集上的例子。模型是 VGG16,訓(xùn)練數(shù)據(jù)是 07 + 12trainval。我們的方法檢測的對象具有范圍廣泛的尺度和長寬比。每個(gè)輸出框與一個(gè)類別標(biāo)簽和一個(gè)范圍在 [0,1] 的 softmax 得分相關(guān)聯(lián)。顯示這些圖像的得分閾值是 0.6。取得這些結(jié)果的運(yùn)行時(shí)間是每幅圖像 198ms,包括所有步驟。

引用

[1] N. Chavali, H. Agrawal, A. Mahendru, and D. Batra. Object-Proposal Evaluation Protocol is ’Gameable’. arXiv: 1505.05836, 2015.
[2] J. Dai, K. He, and J. Sun. Convolutional feature masking for joint object and stuff segmentation. In CVPR, 2015.
[3] D. Erhan, C. Szegedy, A. Toshev, and D. Anguelov. Scalable object detection using deep neural networks. In CVPR, 2014.
[4] M. Everingham, L. Van Gool, C. K. I. Williams, J. Winn, and A. Zisserman. The PASCAL Visual Object Classes Challenge 2007 (VOC2007) Results, 2007.
[5] R. Girshick. Fast R-CNN. arXiv:1504.08083, 2015.
[6] R. Girshick, J. Donahue, T. Darrell, and J. Malik. Rich feature hierarchies for accurate object detection and semantic segmentation. In CVPR, 2014.
[7] K. He, X. Zhang, S. Ren, and J. Sun. Spatial pyramid pooling in deep convolutional networks for visual recognition. In ECCV. 2014.
[8] J. Hosang, R. Benenson, P. Doll′ar, and B. Schiele. What makes for effective detection proposals? arXiv:1502.05082, 2015.
[9] J. Hosang, R. Benenson, and B. Schiele. How good are detection proposals, really? In BMVC, 2014.
[10] Y. Jia, E. Shelhamer, J. Donahue, S. Karayev, J. Long, R. Girshick, S. Guadarrama, and T. Darrell. Caffe: Convolutional architecture for fast feature embedding. arXiv:1408.5093, 2014.
[11] A. Krizhevsky, I. Sutskever, and G. Hinton. Imagenet classification with deep convolutional neural networks. In NIPS, 2012.
[12] Y. LeCun, B. Boser, J. S. Denker, D. Henderson, R. E. Howard,W. Hubbard, and L. D. Jackel. Backpropagation applied to handwritten zip code recognition. Neural computation, 1989.
[13] K. Lenc and A. Vedaldi. R-CNN minus R. arXiv:1506.06981, 2015.
[14] J. Long, E. Shelhamer, and T. Darrell. Fully convolutional networks for semantic segmentation. In CVPR, 2015.
[15] V. Nair and G. E. Hinton. Rectified linear units improve restricted boltzmann machines. In ICML, 2010.
[16] S. Ren, K. He, R. Girshick, X. Zhang, and J. Sun. Object detection networks on convolutional feature maps. arXiv:1504.06066, 2015.
[17] O. Russakovsky, J. Deng, H. Su, J. Krause, S. Satheesh, S. Ma, Z. Huang, A. Karpathy, A. Khosla, M. Bernstein, A. C. Berg, and L. Fei-Fei. ImageNet Large Scale Visual Recognition Challenge. arXiv:1409.0575, 2014.
[18] P. Sermanet, D. Eigen, X. Zhang, M. Mathieu, R. Fergus, and Y. LeCun. Overfeat: Integrated recognition, localization and detection using convolutional networks. In ICLR, 2014.
[19] K. Simonyan and A. Zisserman. Very deep convolutional networks for large-scale image recognition. In ICLR, 2015.
[20] C. Szegedy, S. Reed, D. Erhan, and D. Anguelov. Scalable, high-quality object detection. arXiv:1412.1441v2, 2015.
[21] C. Szegedy, A. Toshev, and D. Erhan. Deep neural networks for object detection. In NIPS, 2013.
[22] J. R. Uijlings, K. E. van de Sande, T. Gevers, and A.W. Smeulders. Selective search for object recognition. IJCV, 2013.
[23] M. D. Zeiler and R. Fergus. Visualizing and understanding convolutional neural networks. In ECCV, 2014.
[24] C. L. Zitnick and P. Doll′ar. Edge boxes: Locating object proposals from edges. In ECCV, 2014.

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

友情鏈接更多精彩內(nèi)容