Ross Girshick Microsoft Research
摘要
????????本文提出了一種基于快速區(qū)域的卷積網(wǎng)絡(luò)方法(Fast R-CNN)用于物體檢測独泞。 Fast R-CNN建立在以前的工作基礎(chǔ)上,使用深度卷積網(wǎng)絡(luò)有效地對(duì)對(duì)象提議進(jìn)行分類遏匆。 與之前的工作相比肖揣,F(xiàn)ast R-CNN采用了多種創(chuàng)新技術(shù)來提高訓(xùn)練和測試速度,同時(shí)提高了檢測精度。 快速R-CNN訓(xùn)練深度的VGG16網(wǎng)絡(luò)比R-CNN快9倍叠纷,在測試時(shí)間快213倍肮蛹,并在PASCAL VOC 2012上實(shí)現(xiàn)更高的mAP勺择。與SPPnet相比,F(xiàn)ast R-CNN訓(xùn)練VGG16 3倍速更快 伦忠,測試速度快10倍省核,并且更準(zhǔn)確。 快速R-CNN在Python和C ++中實(shí)現(xiàn)(使用Caffe)昆码,可通過https://github.com/rbgirshick/fast-rcnn的開源MIT許可證獲得气忠。
1.簡介
? ? ? ? 最近,深度ConvNets [14,16]顯著改善了圖像分類[14]和物體檢測[9,19]的準(zhǔn)確性赋咽。與圖像分類相比旧噪,對(duì)象檢測是一項(xiàng)更具挑戰(zhàn)性的任務(wù),需要更復(fù)雜的方法來解決脓匿。由于這種復(fù)雜性淘钟,當(dāng)前的方法(例如,[9,11,19,25])在多級(jí)管道中訓(xùn)練模型亦镶,這些模型是緩慢且不優(yōu)雅的日月。
? ? ? ? 復(fù)雜性的產(chǎn)生是因?yàn)闄z測需要物體的精確定位焕蹄,從而產(chǎn)生兩個(gè)主要挑戰(zhàn)已烤。首先,必須處理許多候選對(duì)象位置(通常稱為“提議”)份汗。其次绊起,這些候選人只提供粗略的本地化精拟,必須對(duì)其進(jìn)行細(xì)化以實(shí)現(xiàn)精確定位。解決這些問題往往會(huì)影響速度,準(zhǔn)確性或簡單性蜂绎。
????????在本文中栅表,我們簡化了最先進(jìn)的基于ConvNet的物體探測器的訓(xùn)練過程[9,11]。我們提出了一個(gè)單階段訓(xùn)練算法师枣,該算法共同學(xué)習(xí)對(duì)對(duì)象提議進(jìn)行分類并改進(jìn)其空間位置怪瓶。
????????由此產(chǎn)生的方法可以訓(xùn)練一個(gè)非常深的檢測網(wǎng)絡(luò)(VGG16 [20])比R-CNN [9]快9倍,比SPPnet [11]快3倍践美。在運(yùn)行時(shí)洗贰,檢測網(wǎng)絡(luò)以0.3s處理圖像(不包括對(duì)象建議時(shí)間)
????????同時(shí)實(shí)現(xiàn)PASCAL VOC 2012 [7]的最高精度,mAP為66%(R-CNN為62%)
1.1 ?R-CNN和SPPnet
????????基于區(qū)域的卷積網(wǎng)絡(luò)方法(R-CNN)[9]通過使用深度ConvNet對(duì)對(duì)象提議進(jìn)行分類陨倡,實(shí)現(xiàn)了出色的對(duì)象檢測精度敛滋。 然而,R-CNN有明顯的缺點(diǎn):
????????1.訓(xùn)練是一個(gè)多階段的管道兴革。 R-CNN首先使用對(duì)數(shù)丟失對(duì)對(duì)象提議進(jìn)行ConvNet微調(diào)绎晃。 然后,它適應(yīng)SVM到ConvNet特征杂曲。 這些SVM充當(dāng)對(duì)象檢測器庶艾,取代了通過微調(diào)學(xué)習(xí)的softmax分類器。 在第三個(gè)訓(xùn)練階段解阅,學(xué)習(xí)邊界框回歸量落竹。
????????2.訓(xùn)練在空間和時(shí)間上都很昂貴。 對(duì)于SVM和邊界框回歸訓(xùn)練货抄,從每個(gè)圖像中的每個(gè)對(duì)象提議中提取特征并將其寫入磁盤。 對(duì)于深度網(wǎng)絡(luò)朱转,例如VGG16蟹地,這個(gè)過程需要2.5個(gè)GPU天才能獲得VOC07 trainval set的5k圖像。 這些功能需要數(shù)百GB的存儲(chǔ)空間藤为。
????????3.物體檢測很慢怪与。 在測試時(shí),從每個(gè)測試圖像中的每個(gè)對(duì)象提議中提取特征缅疟。 使用VGG16進(jìn)行檢測需要47秒/圖像(在GPU上)分别。
????????R-CNN很慢,因?yàn)樗鼮槊總€(gè)對(duì)象提議執(zhí)行ConvNet前向傳遞存淫,而不共享計(jì)算耘斩。 空間金字塔匯集網(wǎng)絡(luò)(SPPnets)[11]被提議通過共享計(jì)算來加速R-CNN。 SPPnet方法計(jì)算整個(gè)輸入圖像的卷積特征映射桅咆,然后使用從共享特征映射中提取的特征向量對(duì)每個(gè)對(duì)象提議進(jìn)行分類括授。 通過將提議內(nèi)的特征地圖的部分最大化為固定大小的輸出(例如,6×6)來提取特征以用于提議。 匯總多個(gè)輸出大小荚虚,然后在空間金字塔池中連接[15]薛夜。 SPPnet在測試時(shí)將R-CNN加速10到100倍。 由于更快的特征提取版述,訓(xùn)練時(shí)間也減少了3倍梯澜。
????????SPPnet也有明顯的缺點(diǎn)。 與R-CNN一樣渴析,訓(xùn)練是一個(gè)多階段管道晚伙,涉及提取特征,微調(diào)網(wǎng)絡(luò)損失檬某,訓(xùn)練SVM撬腾,最后擬合邊界框回歸量。 特征也寫入磁盤恢恼。 但與R-CNN不同民傻,[11]中提出的微調(diào)算法無法更新空間金字塔匯集之前的卷積層。 不出所料场斑,這種限制(固定卷積層)限制了深度網(wǎng)絡(luò)的準(zhǔn)確性漓踢。
1.2 ?改進(jìn)
????????我們提出了一種新的訓(xùn)練算法,可以修復(fù)R-CNN和SPPnet的缺點(diǎn)漏隐,同時(shí)提高它們的速度和準(zhǔn)確性喧半。 我們稱這種方法為快速R-CNN,因?yàn)樗?xùn)練和測試相對(duì)較快青责。 快速R-CNN方法有幾個(gè)優(yōu)點(diǎn):
????????1.比R-CNN挺据,SPPnet更高的檢測質(zhì)量(mAP)
????????2.訓(xùn)練是單階段的,使用多任務(wù)損失
????????3.訓(xùn)練可以更新所有網(wǎng)絡(luò)層
????????4.特征緩存不需要磁盤存儲(chǔ)
????????快速R-CNN是用Python和C ++編寫的(Caffe [13])脖隶,可以在開源MIT Li-cense下獲得扁耐,網(wǎng)址是https://github.com/rbgirshick/fast-rcnn。
2.Fast R-CNN架構(gòu)和訓(xùn)練
????????圖1說明了Fast R-CNN架構(gòu)产阱。 Fast R-CNN網(wǎng)絡(luò)將整個(gè)圖像和一組對(duì)象提議作為輸入婉称。 網(wǎng)絡(luò)首先使用幾個(gè)卷積(conv)和最大池化層處理整個(gè)圖像,以產(chǎn)生轉(zhuǎn)換特征圖构蹬。 然后王暗,對(duì)于每個(gè)對(duì)象提議,感興趣區(qū)域(RoI)池化層從特征圖中提取固定長度的特征向量庄敛。 每個(gè)特征向量被饋送到一系列完全連接的(fc)層俗壹,最終分支成兩個(gè)兄弟輸出層:一個(gè)產(chǎn)生在K個(gè)對(duì)象類上的softmax概率估計(jì)加上一個(gè)全能的“背景”類和另一個(gè)輸出的層 每個(gè)K對(duì)象類的四個(gè)實(shí)數(shù)值。 每組4個(gè)值對(duì)K類之一的精細(xì)邊界框位置進(jìn)行編碼铐姚。
2.1 RoI池層
????????RoI池化層使用最大池化將任何有效感興趣區(qū)域內(nèi)的特征轉(zhuǎn)換為具有固定空間范圍H×W(例如棺禾,7×7)的小特征映射缀蹄,其中H和W是層超參數(shù) 這與任何特定的RoI無關(guān)。 在本文中膘婶,RoI是一個(gè)轉(zhuǎn)換為轉(zhuǎn)換特征映射的矩形窗口缺前。 每個(gè)RoI由四元組(r,c悬襟,h衅码,w)定義,指定其左上角(r脊岳,c)及其高度和寬度(h逝段,w)。
????????RoI最大池化層通過將h×w RoI窗口劃分為大約h / H×w / W的子窗口的H×W網(wǎng)格割捅,然后將每個(gè)子窗口中的值最大匯集到相應(yīng)的輸出網(wǎng)格單元中來工作奶躯。 池化獨(dú)立應(yīng)用于每個(gè)要素圖通道,如標(biāo)準(zhǔn)最大池化所示亿驾。 RoI層只是SPPnets [11]中使用的空間金字塔池層的特例嘹黔,其中只有一個(gè)金字塔層。 我們使用[11]中給出的池化子窗口計(jì)算莫瞬。
2.2 ?從預(yù)先訓(xùn)練的網(wǎng)絡(luò)初始化
????????我們試驗(yàn)了三個(gè)經(jīng)過預(yù)先訓(xùn)練的ImageNet [4]網(wǎng)絡(luò)儡蔓,每個(gè)網(wǎng)絡(luò)有五個(gè)最大池化層和五到十三個(gè)卷積層(有關(guān)網(wǎng)絡(luò)細(xì)節(jié),請(qǐng)參見第4.1節(jié))疼邀。 當(dāng)預(yù)訓(xùn)練的網(wǎng)絡(luò)初始化Fast R-CNN網(wǎng)絡(luò)時(shí)浙值,它經(jīng)歷三次轉(zhuǎn)換。首先檩小,最后的最大池化層由RoI池化層替換,該池化層通過將H和W設(shè)置為與網(wǎng)絡(luò)的第一完全連接層(例如烟勋,H = W = 7forVGG16)兼容來配置规求。
????????其次,網(wǎng)絡(luò)的最后一個(gè)全連接層和soft-max(經(jīng)過1000路ImageNet分類培訓(xùn))被前面描述的兩個(gè)兄弟層替換(完全連接層和softmax卵惦,超過K + 1類別和類別) - 特定的邊界框回歸量)阻肿。
????????第三,修改網(wǎng)絡(luò)以獲取兩個(gè)數(shù)據(jù)輸入:圖像列表和那些圖像中的RoI列表沮尿。
2.3 ?檢測微調(diào)
????????使用反向傳播訓(xùn)練所有網(wǎng)絡(luò)權(quán)重是Fast R-CNN的重要功能丛塌。首先较解,讓我們闡明為什么SPPnet無法更新空間金字塔池池下的權(quán)重。
????????根本原因是當(dāng)每個(gè)訓(xùn)練樣本(即RoI)來自不同的圖像時(shí)赴邻,通過SPP層的反向傳播非常低效印衔,這正是R-CNN和SPPnet網(wǎng)絡(luò)的訓(xùn)練方式。效率低下源于這樣一個(gè)事實(shí)姥敛,即每個(gè)RoI可能具有非常大的感受野奸焙,通常跨越整個(gè)輸入圖像彤敛。由于前向傳播必須處理整個(gè)感受野与帆,因此訓(xùn)練輸入很大(通常是整個(gè)圖像)。
????????我們提出了一種更有效的訓(xùn)練方法墨榄,利用訓(xùn)練期間的特征共享玄糟。在Fast R-CNN訓(xùn)練中,隨機(jī)梯度下降(SGD)小批量分層采樣袄秩,首先采樣N個(gè)圖像阵翎,然后從每個(gè)圖像中采樣R / N RoI。重要的是播揪,來自相同圖像的RoI在前向和后向傳遞中共享計(jì)算和存儲(chǔ)器贮喧。使N小減少小批量計(jì)算。例如猪狈,當(dāng)使用N = 2且R = 128時(shí)箱沦,所提出的訓(xùn)練方案比從128個(gè)不同圖像采樣一個(gè)RoI(即,R-CNN和SPPnet策略)快大約64倍雇庙。
????????對(duì)此策略的一個(gè)擔(dān)憂是它可能導(dǎo)致慢速訓(xùn)練收斂谓形,因?yàn)閬碜酝粓D像的RoI是相關(guān)的。這個(gè)問題似乎不是一個(gè)實(shí)際問題疆前,我們使用比R-CNN更少的SGD迭代寒跳,使用N = 2和R = 128獲得了良好的結(jié)果。
????????除了分層采樣竹椒,F(xiàn)ast R-CNN使用簡化的訓(xùn)練過程和一個(gè)微調(diào)階段童太,共同優(yōu)化softmax分類器和邊界框緩解器,而不是在三個(gè)單獨(dú)的階段訓(xùn)練softmax分類器胸完,SVM和回歸器[9,11]书释。該程序的組成部分(損失,小批量采樣策略赊窥,通過RoI匯集層的反向傳播和SGD超參數(shù))如下所述爆惧。
多任務(wù)損失。Fast R-CNN網(wǎng)絡(luò)具有兩個(gè)同級(jí)輸出層锨能。 第一個(gè)輸出在個(gè)類別上的離散概率分布(每個(gè)RoI)扯再,芍耘。 通常,通過全連接層的個(gè)輸出上的Softmax來計(jì)算熄阻。第二個(gè)輸出層輸出檢測框回歸偏移斋竞,,對(duì)于由k索引的K個(gè)類別中的每一個(gè)饺律。 我們使用3中給出的的參數(shù)化窃页,其中指定相對(duì)于候選框的尺度不變轉(zhuǎn)換和對(duì)數(shù)空間高度/寬度移位。????????每個(gè)訓(xùn)練RoI都標(biāo)有真實(shí)分類類u和真實(shí)邊界框回歸目標(biāo)v复濒。我們在每個(gè)標(biāo)記的RoI上使用多任務(wù)損失L來聯(lián)合訓(xùn)練分類和邊界框回歸:
其中Lcls(p脖卖,u)= - log pu是真實(shí)類u的對(duì)數(shù)損失。
????????第二個(gè)任務(wù)損失Lloc是針對(duì)類u巧颈,v =(vx畦木,vy,vw砸泛,vh)的真實(shí)邊界框回歸目標(biāo)的元組定義的十籍,并且預(yù)測的元組tu =(tux,tuy唇礁,tuw勾栗,tuh) ,再次對(duì)u分類盏筐。 當(dāng)u≥1時(shí)围俘,艾弗森支架指示器函數(shù)[u≥1]評(píng)估為1,否則為0琢融。 按照慣例界牡,背景類被標(biāo)記為u = 0.對(duì)于背景RoI,沒有前景概念的邊界框漾抬,因此Lloc被忽略宿亡。 對(duì)于邊界框回歸,我們使用其中的損失是一種強(qiáng)大的L1損失纳令,對(duì)R-CNN和SPPnet中使用的L2損耗的異常值不太敏感挽荠。 當(dāng)回歸目標(biāo)無限制時(shí),L2損失訓(xùn)練可能需要仔細(xì)調(diào)整學(xué)習(xí)速率以防止爆炸梯度平绩。式3消除了這種敏感性坤按。
????????等式中的超參數(shù)λ1控制兩個(gè)任務(wù)損失之間的平衡。 我們將前景回歸目標(biāo)vi標(biāo)準(zhǔn)化為零均值和單位方差馒过。 所有實(shí)驗(yàn)都使用λ= 1。
????????我們注意到[6]使用相關(guān)的損失來訓(xùn)練一個(gè)與類無關(guān)的對(duì)象提議網(wǎng)絡(luò)酗钞。 與我們的方法不同腹忽,[6]提倡雙網(wǎng)絡(luò)系統(tǒng)来累,將本地化和分類分開。 OverFeat [19]窘奏,R-CNN [9]和SPPnet [11]也訓(xùn)練分類器和邊界框定位器嘹锁,但是這些方法使用階段式訓(xùn)練,我們表明它對(duì)于快速R-CNN來說是次優(yōu)的(第5.1節(jié))着裹。
小批量采樣领猾。在微調(diào)期間,每個(gè)SGD的小批量由個(gè)圖像構(gòu)成骇扇,均勻地隨機(jī)選擇(如通常的做法摔竿,我們實(shí)際上迭代數(shù)據(jù)集的排列)。 我們使用大小為的小批量少孝,從每個(gè)圖像采樣64個(gè)RoI继低。 如在3中,我們從候選框中獲取25%的RoI稍走,這些候選框與檢測框真值的IoU至少為0.5袁翁。 這些RoI只包括用前景對(duì)象類標(biāo)記的樣本,即婿脸。 剩余的RoI從候選框中采樣粱胜,該候選框與檢測框真值的最大IoU在區(qū)間上5。 這些是背景樣本狐树,并用標(biāo)記焙压。0.1的閾值下限似乎充當(dāng)難負(fù)樣本重訓(xùn)練的啟發(fā)式算法11。 在訓(xùn)練期間褪迟,圖像以概率0.5水平翻轉(zhuǎn)冗恨。不使用其他數(shù)據(jù)增強(qiáng)。
通過RoI池化層的反向傳播味赃。反向傳播通過RoI池化層掀抹。為了清楚起見,我們假設(shè)每個(gè)小批量()只有一個(gè)圖像心俗,擴(kuò)展到是顯而易見的傲武,因?yàn)榍跋騻鞑オ?dú)立地處理所有圖像。
????????令xi∈R為進(jìn)入RoI池層的第i個(gè)激活輸入城榛,并讓yrj為第r個(gè)RoI的層的第j個(gè)輸出揪利。 RoI池化層計(jì)算yrj = xi *(r,j)狠持,其中i *(r疟位,j)=argmaxi'∈R(r,j)xi'喘垂。 R(r甜刻,j)是指數(shù)輸出單元yrj max匯總的子窗口中的輸入集绍撞。 單個(gè)xi可以分配給幾個(gè)不同的輸出yrj。
????????RoI池化層反向傳播函數(shù)通過遵循argmax switches來計(jì)算關(guān)于每個(gè)輸入變量的損失函數(shù)的偏導(dǎo)數(shù):換句話說得院,對(duì)于每個(gè)小批量RoI?和對(duì)于每個(gè)池化輸出單元傻铣,如果是通過最大池化選擇的argmax,則將這個(gè)偏導(dǎo)數(shù)積累下來祥绞。在反向傳播中非洲,偏導(dǎo)數(shù)已經(jīng)由RoI池化層頂部的層的反向傳播函數(shù)計(jì)算。
SGD超參數(shù)蜕径。用于Softmax分類和檢測框回歸的全連接層的權(quán)重分別使用具有方差0.01和0.001的零均值高斯分布初始化两踏。偏置初始化為0。所有層的權(quán)重學(xué)習(xí)率為1倍的全局學(xué)習(xí)率丧荐,偏置為2倍的全局學(xué)習(xí)率缆瓣,全局學(xué)習(xí)率為0.001。 當(dāng)對(duì)VOC07或VOC12 trainval訓(xùn)練時(shí)虹统,我們運(yùn)行SGD進(jìn)行30k次小批量迭代弓坞,然后將學(xué)習(xí)率降低到0.0001,再訓(xùn)練10k次迭代车荔。當(dāng)我們訓(xùn)練更大的數(shù)據(jù)集渡冻,我們運(yùn)行SGD更多的迭代,如下文所述忧便。 使用0.9的動(dòng)量和0.0005的參數(shù)衰減(權(quán)重和偏置)族吻。
2.4 尺度不變性
????????我們探索兩種實(shí)現(xiàn)尺度不變對(duì)象檢測的方法:(1)通過“brute force”學(xué)習(xí)和(2)通過使用圖像金字塔。 這些策略遵循5中的兩種方法珠增。 在“brute force”方法中超歌,在訓(xùn)練和測試期間以預(yù)定義的像素大小處理每個(gè)圖像。網(wǎng)絡(luò)必須直接從訓(xùn)練數(shù)據(jù)學(xué)習(xí)尺度不變性目標(biāo)檢測蒂教。
????????相反巍举,多尺度方法通過圖像金字塔向網(wǎng)絡(luò)提供近似尺度不變性。 在測試時(shí)凝垛,圖像金字塔用于大致縮放-規(guī)范化每個(gè)候選框懊悯。 在多尺度訓(xùn)練期間,我們在每次圖像采樣時(shí)隨機(jī)采樣金字塔尺度梦皮,遵循5炭分,作為數(shù)據(jù)增強(qiáng)的形式。由于GPU內(nèi)存限制剑肯,我們只對(duì)較小的網(wǎng)絡(luò)進(jìn)行多尺度訓(xùn)練捧毛。
3?Fast R-CNN檢測
????????一旦Fast R-CNN網(wǎng)絡(luò)被微調(diào)完畢,檢測相當(dāng)于運(yùn)行前向傳播(假設(shè)候選框是預(yù)先計(jì)算的)。網(wǎng)絡(luò)將圖像(或圖像金字塔岖妄,編碼為圖像列表)和待計(jì)算概率的個(gè)候選框的列表作為輸入型将。在測試的時(shí)候,通常在2000左右荐虐,雖然我們將考慮將它變大(約45k)的情況。當(dāng)使用圖像金字塔時(shí)丸凭,每個(gè)RoI被縮放福扬,使其最接近5中的個(gè)像素。
????????對(duì)于每個(gè)測試的RoI?惜犀,正向傳播輸出類別后驗(yàn)概率分布和相對(duì)于的預(yù)測的檢測框框偏移集合(個(gè)類別中的每一個(gè)獲得其自己的精細(xì)檢測框預(yù)測)铛碑。我們使用估計(jì)的概率為每個(gè)對(duì)象類別分配的檢測置信度。然后虽界,我們使用R-CNN算法的設(shè)置和對(duì)每個(gè)類別獨(dú)立執(zhí)行非最大抑制3汽烦。
3.1?使用截?cái)嗟腟VD來進(jìn)行更快的檢測
????????對(duì)于整體圖像分類,與卷積層相比莉御,計(jì)算全連接層花費(fèi)的時(shí)間較小撇吞。相反,為了檢測礁叔,要處理的RoI的數(shù)量很大牍颈,并且接近一半的正向傳遞時(shí)間用于計(jì)算全連接層(參見圖2)。大的全連接層容易通過用截短的SVD壓縮來加速12?13琅关。
????????在這種技術(shù)中煮岁,層的權(quán)重矩陣通過SVD被近似分解為:在這種分解中,是一個(gè)的矩陣涣易,包括的前個(gè)左奇異向量画机,是對(duì)角矩陣,其包含的前個(gè)奇異值新症,并且是矩陣步氏,包括的前個(gè)右奇異向量。截?cái)郤VD將參數(shù)計(jì)數(shù)從減少到個(gè)账劲,如果遠(yuǎn)小于戳护,則SVD可能是重要的。 為了壓縮網(wǎng)絡(luò)瀑焦,對(duì)應(yīng)于的單個(gè)全連接層由兩個(gè)全連接層替代腌且,在它們之間沒有非線性。這些層中的第一層使用權(quán)重矩陣(沒有偏置)榛瓮,并且第二層使用(其中原始偏差與相關(guān)聯(lián))铺董。當(dāng)RoI的數(shù)量大時(shí),這種簡單的壓縮方法給出良好的加速。
4?主要結(jié)果
三個(gè)主要結(jié)果支持本文的貢獻(xiàn):
1. VOC07精续,2010和2012的最高的mAP坝锰。
2. 相比R-CNN,SPPnet重付,快速訓(xùn)練和測試顷级。
3. 在VGG16中微調(diào)卷積層改善了mAP。
4.1.實(shí)驗(yàn)配置
????????我們的實(shí)驗(yàn)使用了三個(gè)經(jīng)過預(yù)訓(xùn)練的ImageNet網(wǎng)絡(luò)模型确垫,這些模型可以在線獲得(https://github.com/BVLC/caffe/wiki/Model-Zoo)弓颈。第一個(gè)是來自R-CNN3的CaffeNet(實(shí)質(zhì)上是AlexNet1)。 我們將這個(gè)CaffeNet稱為模型S删掀,即小模型翔冀。第二網(wǎng)絡(luò)是來自14的VGG_CNN_M_1024,其具有與S相同的深度披泪,但是更寬纤子。 我們把這個(gè)網(wǎng)絡(luò)模型稱為M,即中等模型款票。最后一個(gè)網(wǎng)絡(luò)是來自15的非常深的VGG16模型控硼。由于這個(gè)模型是最大的,我們稱之為L徽职。在本節(jié)中象颖,所有實(shí)驗(yàn)都使用單尺度訓(xùn)練和測試(,詳見尺度不變性:暴力或精細(xì)姆钉?)说订。
4.2?VOC 2010和2012數(shù)據(jù)集結(jié)果
????????如上表(表2,表3)所示潮瓶,在這些數(shù)據(jù)集上陶冷,我們比較Fast R-CNN(簡稱FRCN)和公共排行榜中comp4(外部數(shù)據(jù))上的主流方法(http://host.robots.ox.ac.uk:8080/leaderboard?,訪問時(shí)間是2015.4.18)毯辅。對(duì)于NUS_NIN_c2000和BabyLearning方法埂伦,目前沒有其架構(gòu)的確切信息,它們是Network-in-Network的變體16思恐。所有其他方法從相同的預(yù)訓(xùn)練VGG16網(wǎng)絡(luò)初始化沾谜。
????????Fast R-CNN在VOC12上獲得最高結(jié)果,mAP為65.7%(加上額外數(shù)據(jù)為68.4%)胀莹。它也比其他方法快兩個(gè)數(shù)量級(jí)基跑,這些方法都基于比較“慢”的R-CNN網(wǎng)絡(luò)。在VOC10上描焰,SegDeepM?6獲得了比Fast R-CNN更高的mAP(67.2%對(duì)比66.1%)媳否。SegDeepM使用VOC12 trainval訓(xùn)練集訓(xùn)練并添加了分割的標(biāo)注,它被設(shè)計(jì)為通過使用馬爾可夫隨機(jī)場推理R-CNN檢測和來自17的語義分割方法的分割來提高R-CNN精度。Fast R-CNN可以替換SegDeepM中使用的R-CNN篱竭,這可以導(dǎo)致更好的結(jié)果力图。當(dāng)使用放大的07++12訓(xùn)練集(見表2標(biāo)題)時(shí),F(xiàn)ast R-CNN的mAP增加到68.8%掺逼,超過SegDeepM吃媒。
4.3?VOC 2007數(shù)據(jù)集上的結(jié)果
????????在VOC07數(shù)據(jù)集上,我們比較Fast R-CNN與R-CNN和SPPnet的mAP吕喘。 所有方法從相同的預(yù)訓(xùn)練VGG16網(wǎng)絡(luò)開始晓折,并使用邊界框回歸。 VGG16 SPPnet結(jié)果由5的作者提供兽泄。SPPnet在訓(xùn)練和測試期間使用五個(gè)尺度。Fast R-CNN對(duì)SPPnet的改進(jìn)說明漾月,即使Fast R-CNN使用單個(gè)尺度訓(xùn)練和測試病梢,卷積層微調(diào)在mAP中提供了大的改進(jìn)(從63.1%到66.9%)。R-CNN的mAP為66.0%梁肿。 作為次要點(diǎn)蜓陌,SPPnet在PASCAL中沒有使用被標(biāo)記為“困難”的樣本進(jìn)行訓(xùn)練。 除去這些樣本吩蔑,F(xiàn)ast R-CNN 的mAP為68.1%钮热。 所有其他實(shí)驗(yàn)都使用被標(biāo)記為“困難”的樣本。
4.4?訓(xùn)練和測試時(shí)間
????????快速的訓(xùn)練和測試是我們的第二個(gè)主要成果。表4比較了Fast RCNN遣臼,R-CNN和SPPnet之間的訓(xùn)練時(shí)間(小時(shí))性置,測試速率(每秒圖像數(shù))和VOC07上的mAP。對(duì)于VGG16揍堰,沒有截?cái)郤VD的Fast R-CNN處理圖像比R-CNN快146倍鹏浅,有截?cái)郤VD的R-CNN快213倍。訓(xùn)練時(shí)間減少9倍屏歹,從84小時(shí)減少到9.5小時(shí)隐砸。與SPPnet相比,沒有截?cái)郤VD的Fast RCNN訓(xùn)練VGG16網(wǎng)絡(luò)比SPPnet快2.7倍(9.5小時(shí)對(duì)25.5小時(shí))西采,測試時(shí)間快7倍凰萨,有截?cái)郤VD的Fast RCNN比的SPPnet快10倍。 Fast R-CNN還不需要數(shù)百GB的磁盤存儲(chǔ),因?yàn)樗痪彺嫣卣鳌?/p>
截?cái)郤VD胖眷。截?cái)嗟腟VD可以將檢測時(shí)間減少30%以上武通,同時(shí)在mAP中只有很小(0.3個(gè)百分點(diǎn))的下降珊搀,并且無需在模型壓縮后執(zhí)行額外的微調(diào)冶忱。
????????圖2示出了如何使用來自VGG16的fc6層中的矩陣的頂部1024個(gè)奇異值和來自fc7層的矩陣的頂部256個(gè)奇異值減少運(yùn)行時(shí)間,而在mAP中幾乎沒有損失劳淆。如果在壓縮之后再次微調(diào)链沼,則可以在mAP中具有更小的下降的情況下進(jìn)一步加速。
4.5?微調(diào)哪些層沛鸵?
????????對(duì)于在SPPnet論文5中考慮的不太深的網(wǎng)絡(luò)括勺,僅微調(diào)全連接層似乎足以獲得良好的精度。我們假設(shè)這個(gè)結(jié)果不適用于非常深的網(wǎng)絡(luò)曲掰。為了驗(yàn)證微調(diào)卷積層對(duì)于VGG16的重要性疾捍,我們使用Fast R-CNN微調(diào),但凍結(jié)十三個(gè)卷積層栏妖,以便只有全連接層學(xué)習(xí)乱豆。這種消融模擬單尺度SPPnet訓(xùn)練,將mAP從66.9%降低到61.4%(表5)吊趾。這個(gè)實(shí)驗(yàn)驗(yàn)證了我們的假設(shè):通過RoI池化層的訓(xùn)練對(duì)于非常深的網(wǎng)是重要的宛裕。 ? ??
????????這是否意味著所有卷積層應(yīng)該微調(diào)孵奶?沒有疲酌。在較小的網(wǎng)絡(luò)(S和M)中,我們發(fā)現(xiàn)conv1(第一個(gè)卷積層)是通用的和任務(wù)獨(dú)立的(一個(gè)眾所周知的事實(shí)1)了袁。允許conv1學(xué)習(xí)或不學(xué)習(xí)朗恳,對(duì)mAP沒有很有意義的影響。對(duì)于VGG16载绿,我們發(fā)現(xiàn)只需要更新conv3_1及以上(13個(gè)卷積層中的9個(gè))的層粥诫。這種觀察是實(shí)用的:(1)從conv2_1更新使訓(xùn)練變慢1.3倍(12.5小時(shí)對(duì)比9.5小時(shí))和(2)從conv1_1更新GPU內(nèi)存不夠用。當(dāng)從conv2_1學(xué)習(xí)時(shí)mAP僅為增加0.3個(gè)點(diǎn)(表5崭庸,最后一列)怀浆。 所有Fast R-CNN在本文中結(jié)果都使用VGG16微調(diào)層conv3_1及以上的層谊囚,所有實(shí)驗(yàn)用模型S和M微調(diào)層conv2及以上的層。
5?設(shè)計(jì)評(píng)估
????????我們通過實(shí)驗(yàn)來了解Fast RCNN與R-CNN和SPPnet的比較执赡,以及評(píng)估設(shè)計(jì)決策镰踏。按照最佳實(shí)踐,我們在PASCAL VOC07數(shù)據(jù)集上進(jìn)行了這些實(shí)驗(yàn)沙合。
5.1?多任務(wù)訓(xùn)練有用嗎奠伪?
????????多任務(wù)訓(xùn)練是方便的,因?yàn)樗苊夤芾眄樞蛴?xùn)練任務(wù)的流水線首懈。但它也有可能改善結(jié)果绊率,因?yàn)槿蝿?wù)通過共享的表示(ConvNet)18相互影響。多任務(wù)訓(xùn)練能提高Fast R-CNN中的目標(biāo)檢測精度嗎究履?
????????為了測試這個(gè)問題滤否,我們訓(xùn)練僅使用公式中的分類損失(即設(shè)置)的基準(zhǔn)網(wǎng)絡(luò)。這些基線是表6中每組的第一列最仑。請(qǐng)注意顽聂,這些模型沒有檢測框回歸。接下來(每組的第二列)盯仪,是我們采用多任務(wù)損失(公式,)訓(xùn)練的網(wǎng)絡(luò)蜜葱,但是我們在測試時(shí)禁用檢測框回歸全景。這隔離了網(wǎng)絡(luò)的分類準(zhǔn)確性,并允許與基準(zhǔn)網(wǎng)絡(luò)的apple to apple的比較牵囤。
????????在所有三個(gè)網(wǎng)絡(luò)中爸黄,我們觀察到多任務(wù)訓(xùn)練相對(duì)于單獨(dú)的分類訓(xùn)練提高了純分類精度酌壕。改進(jìn)范圍從+0.8到+1.1 個(gè)mAP點(diǎn)雅宾,顯示了多任務(wù)學(xué)習(xí)的一致的積極效果窜司。 ? ?????
????????最后这溅,我們采用基線模型(僅使用分類損失進(jìn)行訓(xùn)練)琢感,加上檢測回歸層嚼松,并使用訓(xùn)練它們八毯,同時(shí)保持所有其他網(wǎng)絡(luò)參數(shù)凍結(jié)绢涡。每組中的第三列顯示了這種逐級(jí)訓(xùn)練方案的結(jié)果:mAP相對(duì)于第一列改進(jìn)乓梨,但逐級(jí)訓(xùn)練表現(xiàn)不如多任務(wù)訓(xùn)練(每組第四列)鳖轰。 ? ?
5.2?尺度不變性:暴力或精細(xì)扶镀?
????????我們比較兩個(gè)策略實(shí)現(xiàn)尺度不變物體檢測:暴力學(xué)習(xí)(單尺度)和圖像金字塔(多尺度)蕴侣。在任一情況下,我們將圖像的尺度定義為其最短邊的長度臭觉。
????????所有單尺度實(shí)驗(yàn)使用像素昆雀,對(duì)于一些圖像辱志,可以小于600,因?yàn)槲覀儽3謾M縱比縮放圖像狞膘,并限制其最長邊為1000像素揩懒。選擇這些值使得VGG16在微調(diào)期間不至于GPU內(nèi)存不足。較小的模型占用顯存更少客冈,所以可受益于較大的值旭从。然而,每個(gè)模型的優(yōu)化不是我們的主要的關(guān)注點(diǎn)场仲。我們注意到PASCAL圖像是384×473像素的和悦,因此單尺度設(shè)置通常以1.6倍的倍數(shù)上采樣圖像。因此渠缕,RoI池化層的平均有效步進(jìn)為約10像素鸽素。
????????在多尺度設(shè)置中,我們使用5中指定的相同的五個(gè)尺度()以方便與SPPnet進(jìn)行比較亦鳞。但是馍忽,我們以2000像素為上限,以避免GPU內(nèi)存不足燕差。
????????表7顯示了當(dāng)使用一個(gè)或五個(gè)尺度進(jìn)行訓(xùn)練和測試時(shí)的模型S和M的結(jié)果遭笋。也許在5中最令人驚訝的結(jié)果是單尺度檢測幾乎與多尺度檢測一樣好。我們的研究結(jié)果能證明他們的結(jié)果:深度卷積網(wǎng)絡(luò)擅長直接學(xué)習(xí)尺度不變性徒探。多尺度方法消耗大量的計(jì)算時(shí)間僅帶來了很小的mAP增加(表7)瓦呼。在VGG16(模型L)的情況下,我們受限于實(shí)施細(xì)節(jié)僅能使用單個(gè)尺度测暗。然而央串,它得到了66.9%的mAP,略高于R-CNN的66.0%19碗啄,盡管R-CNN在每個(gè)候選區(qū)域被縮放為規(guī)范大小质和,在意義上使用了“無限”尺度。
????????由于單尺度處理提供速度和精度之間的最佳折衷稚字,特別是對(duì)于非常深的模型饲宿,本小節(jié)以外的所有實(shí)驗(yàn)使用單尺度訓(xùn)練和測試,像素胆描。
5.3?我們需要更多訓(xùn)練數(shù)據(jù)嗎剧蚣?
????????當(dāng)提供更多的訓(xùn)練數(shù)據(jù)時(shí)支竹,好的目標(biāo)檢測器應(yīng)該會(huì)得到改善旋廷。 Zhu等人20發(fā)現(xiàn)DPM11mAP在只有幾百到千個(gè)訓(xùn)練樣本的時(shí)候就飽和了。在這里我們增加VOC07 trainval訓(xùn)練集與VOC12 trainval訓(xùn)練集礼搁,大約增加到三倍的圖像饶碘,數(shù)量達(dá)到16.5k,以評(píng)估Fast R-CNN馒吴。擴(kuò)大訓(xùn)練集提高了VOC07測試的mAP扎运,從66.9%到70.0%(表1)。 當(dāng)對(duì)這個(gè)數(shù)據(jù)集進(jìn)行訓(xùn)練時(shí)饮戳,我們使用60k次小批量迭代而不是40k豪治。
????????我們對(duì)VOC10和2012進(jìn)行類似的實(shí)驗(yàn),我們用VOC07 trainval秸歧,test和VOC12 trainval構(gòu)造了21.5k圖像的數(shù)據(jù)集厨姚。當(dāng)訓(xùn)練這個(gè)數(shù)據(jù)集時(shí),我們使用100k次SGD迭代和每40k次迭代(而不是每30k次)降低學(xué)習(xí)率10倍键菱。對(duì)于VOC10和2012遣蚀,mAP分別從66.1%提高到68.8%和從65.7%提高到68.4%。
5.4?SVM分類是否優(yōu)于Softmax纱耻?
????????Fast R-CNN在微調(diào)期間使用softmax分類器學(xué)習(xí),而不是如在R-CNN和SPPnet中訓(xùn)練線性SVM险耀。為了理解這種選擇的影響弄喘,我們在Fast R-CNN中實(shí)施了具有難負(fù)采樣重訓(xùn)練的SVM訓(xùn)練。我們使用與R-CNN中相同的訓(xùn)練算法和超參數(shù)甩牺。 ? ?
????????對(duì)于所有三個(gè)網(wǎng)絡(luò),Softmax略優(yōu)于SVM贬派,mAP分別提高了0.1和0.8個(gè)點(diǎn)急但。這種效應(yīng)很小,但是它表明與先前的多級(jí)訓(xùn)練方法相比搞乏,“一次性”微調(diào)是足夠的波桩。我們注意到,Softmax请敦,不像SVM那樣镐躲,在分類RoI時(shí)引入類之間的競爭储玫。
5.5?更多的候選區(qū)域更好嗎?
????????存在(廣義地)兩種類型的目標(biāo)檢測器:使用候選區(qū)域的稀疏集合(例如萤皂,選擇性搜索21)和使用密集集合(例如DPM11)撒穷。分類稀疏提議是級(jí)聯(lián)的一種類型22,其中提議機(jī)制首先拒絕大量候選者裆熙,讓分類器來評(píng)估留下的小集合端礼。當(dāng)應(yīng)用于DPM檢測時(shí),該級(jí)聯(lián)提高了檢測精度21入录。我們發(fā)現(xiàn)提案分類器級(jí)聯(lián)也提高了Fast R-CNN的精度蛤奥。
????????使用選擇性搜索的質(zhì)量模式,我們掃描每個(gè)圖像1k到10k個(gè)候選框纷跛,每次重新訓(xùn)練和重新測試模型M.如果候選框純粹扮演計(jì)算的角色喻括,增加每個(gè)圖像的候選框數(shù)量不應(yīng)該損害mAP。
????????我們發(fā)現(xiàn)mAP上升唬血,然后隨著候選區(qū)域計(jì)數(shù)增加而略微下降(圖3,實(shí)線藍(lán)線)唤崭。這個(gè)實(shí)驗(yàn)表明拷恨,用更多的候選區(qū)域沒有幫助,甚至稍微有點(diǎn)傷害準(zhǔn)確性谢肾。
????????如果不實(shí)際運(yùn)行實(shí)驗(yàn)腕侄,這個(gè)結(jié)果很難預(yù)測。用于測量候選區(qū)域質(zhì)量的最先進(jìn)的技術(shù)是平均召回率(AR)23芦疏。當(dāng)對(duì)每個(gè)圖像使用固定數(shù)量的候選區(qū)域時(shí)冕杠,AR與使用R-CNN的幾種候選區(qū)域方法良好地相關(guān)。圖3示出了AR(實(shí)線紅線)與mAP不相關(guān)酸茴,因?yàn)槊總€(gè)圖像的候選區(qū)域數(shù)量是變化的分预。AR必須小心使用,由于更多的候選區(qū)域更高的AR并不意味著mAP會(huì)增加薪捍。幸運(yùn)的是笼痹,使用模型M的訓(xùn)練和測試需要不到2.5小時(shí)。因此酪穿,F(xiàn)ast R-CNN能夠高效地凳干,直接地評(píng)估目標(biāo)候選區(qū)域mAP,這優(yōu)于代理度量被济。
????????我們還調(diào)查Fast R-CNN當(dāng)使用密集生成框(在縮放救赐,位置和寬高比上),大約45k個(gè)框/圖像只磷。這個(gè)密集集足夠豐富净响,當(dāng)每個(gè)選擇性搜索框被其最近(IoU)密集框替換時(shí)少欺,mAP只降低1個(gè)點(diǎn)(到57.7%,圖3馋贤,藍(lán)色三角形)赞别。
????????密集框的統(tǒng)計(jì)數(shù)據(jù)與選擇性搜索框的統(tǒng)計(jì)數(shù)據(jù)不同。從2k個(gè)選擇性搜索框開始配乓,我們在添加的隨機(jī)樣本密集框時(shí)測試mAP仿滔。對(duì)于每個(gè)實(shí)驗(yàn),我們重新訓(xùn)練和重新測試模型M犹芹。當(dāng)添加這些密集框時(shí)崎页,mAP比添加更多選擇性搜索框時(shí)下降得更強(qiáng),最終達(dá)到53.0%腰埂。
????????我們還訓(xùn)練和測試Fast R-CNN只使用密集框(45k/圖像)飒焦。此設(shè)置的mAP為52.9%(藍(lán)色菱形)。最后屿笼,我們檢查是否需要使用難樣本重訓(xùn)練的SVM來處理密集框分布牺荠。 SVM做得更糟:49.3%(藍(lán)色圓圈)。
5.6?MS COCO初步結(jié)果
????????我們將fast R-CNN(使用VGG16)應(yīng)用于MS COCO數(shù)據(jù)集24驴一,以建立初步基線休雌。我們對(duì)80k圖像訓(xùn)練集進(jìn)行了240k次迭代訓(xùn)練,并使用評(píng)估服務(wù)器對(duì)“test-dev”集進(jìn)行評(píng)估肝断。 PASCAL標(biāo)準(zhǔn)下的mAP為35.9%;杈曲。新的COCO標(biāo)準(zhǔn)下的AP(也平均)為19.7%。
6?結(jié)論
????????本文提出Fast R-CNN胸懈,一個(gè)對(duì)R-CNN和SPPnet干凈担扑,快速的更新。 除了報(bào)告目前的檢測結(jié)果之外趣钱,我們還提供了詳細(xì)的實(shí)驗(yàn)涌献,希望提供新的見解。 特別值得注意的是羔挡,稀疏目標(biāo)候選區(qū)域似乎提高了檢測器的質(zhì)量。 過去探索這個(gè)問題過于昂貴(在時(shí)間上)间唉,但Fast R-CNN使其變得可能绞灼。當(dāng)然,可能存在允許密集盒執(zhí)行以及稀疏候選框的尚未發(fā)現(xiàn)的技術(shù)呈野。這樣的方法如果被開發(fā)低矮,可以幫助進(jìn)一步加速目標(biāo)檢測。