0
本文作者: 深度學(xué)習(xí)大講堂 | 2017-01-11 10:40 |
雷鋒網(wǎng)注:本文作者李瑜,中科院計(jì)算所前瞻研究實(shí)驗(yàn)室跨媒體組碩博士生,碩士導(dǎo)師唐勝副研究員,博士導(dǎo)師李錦濤研究員。2016年,作為360+MCG-ICT-CAS_DET團(tuán)隊(duì)核心主力參加了ImageNet大規(guī)模視覺識(shí)別挑戰(zhàn)賽(ILSVRC)的 DET任務(wù)并獲得第四名。目標(biāo)檢測相關(guān)工作受邀在ECCV 2016 ImageNet和COCO視覺識(shí)別挑戰(zhàn)賽聯(lián)合工作組會(huì)議上做大會(huì)報(bào)告。
計(jì)算機(jī)視覺領(lǐng)域權(quán)威評(píng)測——ImageNet大規(guī)模圖像識(shí)別挑戰(zhàn)賽(Large Scale Visual Recognition Challenge)自2010年開始舉辦以來,一直備受關(guān)注。2016年,在該比賽的圖像目標(biāo)檢測任務(wù)中,國內(nèi)隊(duì)伍大放異彩,包攬?jiān)撊蝿?wù)前五名(如圖1所示)。我們將根據(jù)前五名參賽隊(duì)伍提交的摘要與公開發(fā)表的論文或技術(shù)文檔,簡析比賽中用到的圖像目標(biāo)檢測方法。
圖1. ILSVRC2016目標(biāo)檢測(無額外數(shù)據(jù))任務(wù)比賽結(jié)果
總體上說,參賽隊(duì)伍大多采用ResNet/Inception網(wǎng)絡(luò)+Faster R-CNN框架,注重網(wǎng)絡(luò)的預(yù)訓(xùn)練,改進(jìn)RPN,并利用Context信息,測試時(shí)結(jié)合普遍被使用的多尺度測試、水平翻轉(zhuǎn)、窗口投票等方法,最終融合多個(gè)模型得到結(jié)果。
下面我們將細(xì)數(shù)參賽方法中的諸多亮點(diǎn)。
一、利用Context信息
1、GBD-Net
GBD-Net(Gated Bi-Directional CNN)是CUImage團(tuán)隊(duì)的成果,也是今年DET任務(wù)中的一大亮點(diǎn)。該方法利用雙向門控的CNN網(wǎng)絡(luò)在不同尺度的上下文窗口中選擇性地傳遞信息,以此對(duì)context建模。
GBD-Net的研究動(dòng)機(jī)源于對(duì)context信息在候選窗口分類過程中起到的作用的仔細(xì)分析。首先,Context信息在對(duì)窗口分類時(shí)能起到關(guān)鍵的作用,如圖2(a)(b)所示,圖中的紅框必須結(jié)合Context信息才能準(zhǔn)確判斷其類別(包括判斷為背景)。所以很多時(shí)候,我們可以利用context信息作出如圖1(c)所示的判斷。但是如圖1(d)所示,并不是所有的context信息都能給我們正確的指導(dǎo),所以context信息需要選擇性的利用。
圖2. GBD-Net的研究動(dòng)機(jī)
基于這一點(diǎn),CUImage提出了GBD-Net。如圖3所示,GBD-Net采集Context信息的方式與[2][3]一脈相承,直接在目標(biāo)窗口基礎(chǔ)上放大窗口以獲得更多的context信息,或縮小窗口以保留更多的目標(biāo)細(xì)節(jié),以此得到多個(gè)support region,雙向連接的網(wǎng)絡(luò)讓不同尺度和分辨率的信息在每個(gè)support region之間相互傳遞,從而綜合學(xué)習(xí)到最優(yōu)的特征。然而如研究動(dòng)機(jī)中所說,并非所有的上下文信息都能給決策帶來“正能量”,所以在雙向互通的連接上都加了一個(gè)“門”,以此控制context信息的相互傳播。GBD-Net在ImageNet DET數(shù)據(jù)集上,在ResNet-269為基礎(chǔ)網(wǎng)絡(luò),帶來了2.2%的mAP提升。
圖3. GBD-Net框架圖
2、Dilation as context
360+MCG-ICG-CAS_DET團(tuán)隊(duì)將用膨脹卷積獲取context信息的方法遷移至目標(biāo)檢測任務(wù),將8個(gè)膨脹卷積層削減到3層,在ROI pooling前就組織好每個(gè)像素點(diǎn)對(duì)應(yīng)的context信息,如圖4,省去了對(duì)每個(gè)ROI反復(fù)提取context特征的操作。該方法在VOC07數(shù)據(jù)集上,以Res50為基礎(chǔ)網(wǎng)絡(luò),能獲得1.5%的提升。
圖4. Dilation as context方法示意圖
3、Global context
2015年提出利用ROI pooling對(duì)全圖進(jìn)行pooling獲取context信息的方法,Hikvision團(tuán)隊(duì)在此基礎(chǔ)上進(jìn)一步細(xì)化,提出了圖5(a)所示的global context方法,在ILSVRC DET驗(yàn)證集上獲得了3.8%的mAP性能提升。該方法此前的文章中有詳細(xì)描述,此處不再贅述。
除了基于ROI pooling的global context方法,CUImage沿用[6]中提到的global context方法,為每個(gè)ROI加入全局的分類結(jié)果信息,如圖5(b)示。該方法在GBD-net局部context的基礎(chǔ)上又加入了全局的context信息,進(jìn)一步將mAP提高了1.3%。
圖5. Global context方法示意圖
二、改進(jìn)分類損失
360+MCG-ICG-CAS_DET團(tuán)隊(duì)提出了兩種改進(jìn)的softmax損失:將背景類分成若干隱式子類別(Implicit sub-categories for background)、必要時(shí)加入sink類別(Sink class when necessary)。
Faster R-CNN中將所有與Ground Truth的IOU大于0.5的窗口當(dāng)做正樣本,IOU介于0.1~0.4之間的當(dāng)做背景類別樣本,所以雖然正常目標(biāo)類別的樣本之間有較大的相似性,但背景類別的樣本之間差異卻非常大,在這種情況下,仍然同等對(duì)待目標(biāo)類別和背景類別對(duì)背景類別來說是不公平的。所以背景隱式子類別方法將背景類別分為若干個(gè)子類別,想讓更多的參數(shù)去描述多變的背景,在softmax之前重新將所有子類別聚合為一個(gè)背景類,以避免顯式定義各個(gè)子類別的問題(如圖6(a)所示)。
圖6 改進(jìn)分類損失
另外,由于訓(xùn)練數(shù)據(jù)本身的一些沖突性(比如同樣的圖像內(nèi)容在不同場景下會(huì)同時(shí)成為正樣本和負(fù)樣本,或不同類別的樣本之間非常相似),對(duì)于某些窗口,ground truth類別的得分始終不是很高,而其他一些錯(cuò)誤類別的得分會(huì)超過ground truth類別。所以sink方法加入一個(gè)sink類,在ground truth得分不在Top-K時(shí),同時(shí)優(yōu)化sink類別和ground truth類別,否則正常優(yōu)化ground truth類別。以此將那些錯(cuò)誤類別上的得分引流到sink類別上,使得在對(duì)窗口分類時(shí),即使ground truth類別得分不是特別高,仍然可以高于其他類別,如圖6(b)所示。
三、改進(jìn)RPN
CUImage和Hikvision都提出改進(jìn)RPN,并且兩者的改進(jìn)策略都源于CRAFT(如圖7所示),在RPN之后再連接一個(gè)二分類的Fast R-CNN,進(jìn)一步減少窗口數(shù)量并提高定位精度。
圖7 CRAFT
CUImage進(jìn)一步將CRAFT升級(jí)為CRAFT-v3,訓(xùn)練過程加入隨機(jī)crop,測試中采取多尺度策略,并且平衡正負(fù)樣本比例,用2個(gè)模型進(jìn)行融合,將ILSVRC DET val2上的recall@300 proposal提升到95.3%。
Hikvision則是直接按照box refinement的思想,直接在RPN網(wǎng)絡(luò)基礎(chǔ)上進(jìn)行一次級(jí)聯(lián),如圖8所示。同時(shí)他們注意到,F(xiàn)aster R-CNN在理想情況下希望PRN的正負(fù)樣本比是1:1,而實(shí)際運(yùn)行中,正樣本數(shù)量往往較少,使得正負(fù)樣本比差異較大,所以將正負(fù)樣本比強(qiáng)制限制在不超過1:1.5后,recall提升3%。
圖8 級(jí)聯(lián)的RPN
四、網(wǎng)絡(luò)選擇與訓(xùn)練技巧
自ILSVRC2015后,ResNet和后續(xù)的Inception v4,Identity mapping由于其強(qiáng)大的分類性能,被廣泛使用到目標(biāo)檢測、場景分割等應(yīng)用中。不同的網(wǎng)絡(luò)通常能收斂到不同的極值點(diǎn),這種網(wǎng)絡(luò)差異性是模型融合獲得較大提升的關(guān)鍵。CUImage、Hikvision、Trimps Soushen、360+MCG-ICT-CAS_DET、NUIST都用不同的基礎(chǔ)網(wǎng)絡(luò)訓(xùn)練了多個(gè)模型用于融合。
在訓(xùn)練目標(biāo)檢測模型之前,具有針對(duì)性的模型預(yù)訓(xùn)練通常可以使得最后訓(xùn)練的目標(biāo)檢測模型能收斂到更優(yōu)的位置。Hikvision提到在初始化global context的分支時(shí)使用預(yù)訓(xùn)練的模型效果遠(yuǎn)遠(yuǎn)好于隨機(jī)初始化。另外,他們用ILSVRC LOC的數(shù)據(jù)首先在1000個(gè)類別上預(yù)訓(xùn)練一個(gè)精細(xì)分類的目標(biāo)檢測模型,再遷移到DET數(shù)據(jù)上訓(xùn)練200類的模型。CUImage同樣提到模型預(yù)訓(xùn)練的重要性。他們?cè)?000類Image-centric方式訓(xùn)練分類網(wǎng)絡(luò)后,又采取基于ROI-Pooling的Object-centric方式訓(xùn)練分類網(wǎng)絡(luò),預(yù)訓(xùn)練網(wǎng)絡(luò)使最終目標(biāo)檢測模型的mAP提升約1%。
此外,Hikvision提出在訓(xùn)練過程中強(qiáng)制平衡正負(fù)樣本比會(huì)產(chǎn)生積極的影響。OHEM、多尺度訓(xùn)練等技巧都是簡單有效的提高mAP的方式。
五、測試技巧
測試過程中可采用的技巧很多,會(huì)對(duì)最終目標(biāo)檢測結(jié)果起到錦上添花的作用。多尺度測試、水平翻轉(zhuǎn)、窗口微調(diào)與多窗口投票、多模型融合、NMS閾值調(diào)整、多模型融合等方法被廣泛使用,并經(jīng)過普遍驗(yàn)證證明了其有效性。
Trimps Soushen、360+MCG-ICT-CAS_DET采用了Feature Maxout的方法融入多尺度測試,盡量讓每個(gè)窗口都縮放到接近224x224的尺度上進(jìn)行測試,充分利用預(yù)訓(xùn)練網(wǎng)絡(luò)的性能。窗口微調(diào)與多窗口投票(box refinement and box voting)方法首先利用Fast R-CNN系列框架中對(duì)窗口進(jìn)行回歸的這個(gè)過程,反復(fù)迭代,然后用所有窗口投票,決定最終的目標(biāo)類別與位置。在往年比賽中很少提到目標(biāo)檢測如何進(jìn)行模型融合,ILSVRC2016中,CUImage、Hikvision、Trimps Soushen、360+MCG-ICT-CAS_DET都采用了幾乎一致的融合策略,即先用一個(gè)或多個(gè)模型的RPN網(wǎng)絡(luò)產(chǎn)生固定的ROI,再把這些ROI經(jīng)過不同模型得到的分類和回歸結(jié)果相加,得到最終的融合結(jié)果。經(jīng)過多種融合方法的實(shí)驗(yàn),分?jǐn)?shù)相加的方式能獲得較好的融合性能。
總結(jié)
本文對(duì)2016年ILSVRC DET任務(wù)中用到的方法進(jìn)行了概括性的歸納和介紹。目標(biāo)檢測系統(tǒng)步驟甚多,過程繁瑣,其中的每一個(gè)細(xì)節(jié)都非常重要。研究過程中,在把握整體結(jié)構(gòu)的同時(shí),如何處理好重要的細(xì)節(jié)會(huì)成為一種方法是否有效的關(guān)鍵。
雷峰網(wǎng)版權(quán)文章,未經(jīng)授權(quán)禁止轉(zhuǎn)載。詳情見轉(zhuǎn)載須知。