——CVPR2018,Best Student Entry in the COCO 2017 challenge
——小目標(biāo)檢測(cè),多尺度檢測(cè)
摘要
提出在極端尺度變化下檢測(cè)識(shí)別的不同技術(shù)的分析。通過(guò)使用不同尺度的數(shù)據(jù)進(jìn)行訓(xùn)練來(lái)比較檢測(cè)器的尺度特性和尺度變化設(shè)計(jì)。通過(guò)比較不同網(wǎng)絡(luò)結(jié)構(gòu)在分類(lèi)小目標(biāo)上的性能,得出CNN對(duì)圖像目標(biāo)尺度變化并不魯棒?;谶@個(gè)理論,本文提出在相同尺度的圖像金字塔上訓(xùn)練和測(cè)試檢測(cè)器。由于小對(duì)象和大對(duì)象很難在其對(duì)應(yīng)的尺度上識(shí)別,意即單獨(dú)在較大或較小的尺度上檢測(cè)大目標(biāo)和小目標(biāo)較為困難,故而提出一種新的訓(xùn)練策略,稱(chēng)之為SNIP(Scale Normalization for Image Pyramids),將目標(biāo)在不同大小下的梯度信息選擇性反向傳播。在COCO數(shù)據(jù)集上,單個(gè)模型達(dá)到45.7%的mAP,三個(gè)模型集成達(dá)到48.3%的mAP。
介紹
下圖橫坐標(biāo)表示對(duì)象大小所占圖像大小的比例,縱坐標(biāo)表示不同尺度的對(duì)象在數(shù)據(jù)集中所有對(duì)象中所占的比例,可見(jiàn)COCO數(shù)據(jù)集中90%的對(duì)象所占圖像大小比例都小于0.472,而Imagenet數(shù)據(jù)集中對(duì)象尺度分布比較均勻。因此Imagenet預(yù)訓(xùn)練模型遷移到COCO數(shù)據(jù)集會(huì)帶來(lái)較大的domain-shift。另外,在COCO數(shù)據(jù)集中對(duì)象尺度差異極大,最小的10%和最大的10%相差超過(guò)20倍。

為解決上述問(wèn)題,有許多解決辦法:如將低層特征與高層特征融合;使用空洞卷積、可形變卷積擴(kuò)張感受野使檢測(cè)器對(duì)scale跨度大的問(wèn)題適應(yīng)性更強(qiáng);在不同分辨率的層進(jìn)行獨(dú)立預(yù)測(cè);使用上采樣增加上下文信息;在多尺度圖像(圖像金字塔)上進(jìn)行訓(xùn)練或者測(cè)試等等。但是仍有一些問(wèn)題沒(méi)有解決:
1、用上采樣來(lái)達(dá)到好的檢測(cè)效果是否必要?檢測(cè)數(shù)據(jù)集的典型大小是480*640,為什么要將圖像上采樣為800*1200?是否可以用smaller strides來(lái)預(yù)訓(xùn)練ImageNet數(shù)據(jù)集中的低分辨率圖像,然后再遷移至目標(biāo)數(shù)據(jù)集?
2、在預(yù)訓(xùn)練時(shí),應(yīng)當(dāng)使訓(xùn)練集中所有大小的目標(biāo)都參與訓(xùn)練么?還是應(yīng)該只選取一部分大小的對(duì)象,如64*64~256*256。
對(duì)于尺度特定的檢測(cè)器,一個(gè)解決對(duì)象尺度變化的方法是為不同尺度的對(duì)象單獨(dú)訓(xùn)練檢測(cè)器,在對(duì)象大小接近的數(shù)據(jù)集上進(jìn)行遷移學(xué)習(xí)有助于減少domain shift,但是這種訓(xùn)練方法會(huì)減少每個(gè)尺度的訓(xùn)練樣本的數(shù)量,這也會(huì)造成性能下降。另一方面,用所有的訓(xùn)練樣本來(lái)訓(xùn)練一個(gè)單尺度的檢測(cè)器將使得網(wǎng)絡(luò)學(xué)習(xí)變得困難,因?yàn)榫W(wǎng)絡(luò)需要學(xué)習(xí)檢測(cè)大范圍尺度的對(duì)象。
基于此,本文提出一種新穎的訓(xùn)練策略:SNIP(Scale Normalization for Image Pyramids),通過(guò)圖像金字塔來(lái)克服尺度變化問(wèn)題。為了減小遷移學(xué)習(xí)中的domain shift,只對(duì)預(yù)訓(xùn)練模型對(duì)象尺度相似的RoI/anchors的梯度進(jìn)行回傳,由于上述約束,在對(duì)數(shù)據(jù)集中每個(gè)尺度進(jìn)行訓(xùn)練時(shí),可以有效利用所有訓(xùn)練對(duì)象,性能得到極大提升,打破了只要提供足夠數(shù)據(jù),深度CNN就能解決尺度變化的共識(shí)。利用Deformable-RFCN骨架網(wǎng)絡(luò),在COCO數(shù)據(jù)集上。
實(shí)際上,目前也有很多針對(duì)小目標(biāo)的措施和改良,如:
使用dilated/strous卷積來(lái)提高特征圖的分辨率,Dilated/deformable卷積擴(kuò)張/可變形的卷積保留了預(yù)訓(xùn)練網(wǎng)絡(luò)的權(quán)重和感受野,并且不會(huì)帶來(lái)大物體性能的下降;最常用的,Upsample來(lái)rezie網(wǎng)絡(luò)輸入圖像的大小,訓(xùn)練時(shí)將誒圖像放大1.5倍到2倍,測(cè)試時(shí)將圖像放大4倍;使用FPN(FPN,Mask-RCNN,RetinaNet)把淺層特征和深層特征融合的,或者最后在預(yù)測(cè)的時(shí)候,使用淺層特征和深層特征一起預(yù)測(cè);或者直接地在淺層和深層的特征圖上直接各自獨(dú)立做預(yù)測(cè)的(SDP,SSH,MS-CNN,SSD)。
《Finding tiny faces》將每個(gè)尺度的響應(yīng)值做最大池化之后,再進(jìn)行梯度的反向傳播,在分類(lèi)層中不同尺度的人臉使用不同的核,但是這樣的方法在對(duì)象檢測(cè)中有較大的局限性,因?yàn)槊恳活?lèi)的訓(xùn)練數(shù)據(jù)量將被限制,而且通用對(duì)象在外觀、姿態(tài)上比人臉更復(fù)雜。而且本文發(fā)現(xiàn)在R-FCN中為每一類(lèi)加入固定尺度的核將對(duì)性能造成損傷。
Image Classification at Multiple Scales
現(xiàn)在的很多檢測(cè)模型為了提升對(duì)小目標(biāo)的檢測(cè)精度,一般都會(huì)在 800×1200的分辨率上訓(xùn)練圖片,為了進(jìn)一步提升對(duì)小目標(biāo)的監(jiān)測(cè)精度,在inference時(shí)會(huì)進(jìn)一步放大圖片,比如在1400×2000的分辨率上檢測(cè)。也就是說(shuō) train和test(inference)之間是存在domain shift 的。本文從實(shí)驗(yàn)上來(lái)驗(yàn)證放大圖片對(duì)于檢測(cè)效果的影響:

CNN-B:是在高分辨率圖像的數(shù)據(jù)集上訓(xùn)練的(ImageNet 224),然后測(cè)試時(shí),先將ImageNet的圖像下采樣至 48x48, 64x64, 80x80, 96x96 和128x128 大小,然后再上采樣至224,將這個(gè)ImageNet稱(chēng)為ImageNet up-sampled low resolution images to 224(將低分辨率圖片上采樣至224)。
CNN-S:是在低分辨率圖像的數(shù)據(jù)集上訓(xùn)練的(ImageNet 48x48, 64x64, 80x80, 96x96 and 128x128, 通過(guò)降采樣完成),測(cè)試也是在相應(yīng)低分辨率上測(cè)試的。
CNN-B-FT:是在高分辨率圖像的數(shù)據(jù)集上訓(xùn)練(ImageNet 224),而后又在上采樣到224的低分辨率的數(shù)據(jù)集(ImageNet up-sampled low resolution images to 224數(shù)據(jù)集)上fine-tuning的,測(cè)試也是在ImageNet up-sampled low resolution images to 224數(shù)據(jù)集上。

(a)CNN-B 在不同分辨率圖像上的測(cè)試精度。CNN-B是在高分辨率圖像上訓(xùn)練的,然后在由不同低分辨率圖像上采樣構(gòu)成的 ImageNet上測(cè)試的。測(cè)試圖像與訓(xùn)練圖像的分辨率差別越大,效果越差。使用網(wǎng)絡(luò)沒(méi)有訓(xùn)練過(guò)的圖像進(jìn)行測(cè)試,結(jié)果只能是次優(yōu)的,至少對(duì)于分類(lèi)問(wèn)題來(lái)說(shuō)是這樣。
(b)、(c)三種訓(xùn)練好的模型在 48×48 (96×96)大小的低分辨率圖像上的測(cè)試精度,CNN-B的效果最差,CNN-S次之,CNN-B-FT最好。
直接用低分辨率圖像訓(xùn)練(CNN-S,減小第一個(gè)卷積步長(zhǎng)),然后低分辨率測(cè)試,效果是比較好的。直接啟發(fā)是如果檢測(cè)時(shí)想要提升對(duì)小目標(biāo)的檢測(cè)效果,應(yīng)該專(zhuān)門(mén)在低分辨率的ImageNet上訓(xùn)練一個(gè)對(duì)低分辨率圖像最優(yōu)的分類(lèi)模型(通過(guò)減小步長(zhǎng)),然后再遷移到檢測(cè)任務(wù)上,用于檢測(cè)小目標(biāo)。
先在高分辨率圖像訓(xùn)練然后再在上采樣后的低分辨率圖像上fine-tuning 效果最好,說(shuō)明分類(lèi)模型在高分辨率圖像中學(xué)習(xí)到了其他更有用的信息,上采樣是有用的。直接啟發(fā)是在高分辨率圖像上先預(yù)訓(xùn)練,然后再在低分辨率圖像上fine-tuning,對(duì)于分類(lèi)小目標(biāo)是有利的,應(yīng)該比前一條提到的方法更有效。
進(jìn)一步:
在高分辨率圖像上先預(yù)訓(xùn)練,然后再在低分辨率圖像上fine-tuning,對(duì)于分類(lèi)小目標(biāo)時(shí)有利的。
如果檢測(cè)時(shí)的proposals與ImageNet預(yù)訓(xùn)練模型的分辨率相近,那么可以減少domain shift。
上采樣確實(shí)是有用的。
Multi-scale Detection
D-RFCN作為baseline,ResNet101 作為backbone,在800*1200分辨率的圖像上進(jìn)行訓(xùn)練,5種anchor scales用于產(chǎn)生proposals。
train和test時(shí)分辨率不同將會(huì)存在domain shift,但是由于GPU現(xiàn)存的限制,這個(gè)差異一般都會(huì)存在。事實(shí)檢測(cè)模型經(jīng)常會(huì)在800×1000的分辨率上訓(xùn)練,然后再1400×2000的分辨率上測(cè)試。
在COCO數(shù)據(jù)集上關(guān)于scale-specific detector和scale invariant detector的實(shí)驗(yàn):固定測(cè)試時(shí)的分辨率為 1400×2000 ,然后通過(guò)調(diào)整不同的輸入來(lái)對(duì)比COCO數(shù)據(jù)集上小目標(biāo)(小于32×32的目標(biāo))的檢測(cè)精度。主要使用800×1000和1400×2000這兩種訓(xùn)練輸入分辨率,然后再梯度反向傳播時(shí),把所有scale的ROI的梯度回傳。因此下表 800all,1400all,就是代表這個(gè)意思。

800all和1400all分別表示檢測(cè)網(wǎng)絡(luò)基于800*1400和1400*2000大小的圖像進(jìn)行訓(xùn)練,從二者的mAP結(jié)果對(duì)比可以看出1400all的效果要更好一些,主要原因就在于訓(xùn)練圖像的分辨率和測(cè)試圖像的分辨率一致,這和前面基于ImageNet數(shù)據(jù)集的實(shí)驗(yàn)結(jié)果也吻合,但這個(gè)提升非常小,猜測(cè)原因在于雖然基于放大圖像(原始圖像約640*480,放大成1400*2000)訓(xùn)練的模型在訓(xùn)練過(guò)程中可以提高對(duì)小目標(biāo)物體的檢測(cè),但是由于訓(xùn)練數(shù)據(jù)中尺寸中等或較大的目標(biāo)經(jīng)過(guò)放大之后尺寸太大所以難以訓(xùn)練,這就影響了模型最終的效果。
1400<80px表示訓(xùn)練數(shù)據(jù)尺寸是1400*2000,但是訓(xùn)練過(guò)程中忽略中等尺寸和大尺寸的目標(biāo)(中等和大尺寸目標(biāo)的標(biāo)準(zhǔn)是在原始圖像中目標(biāo)寬高的像素點(diǎn)大于80),這就是scale-specific detector,也就是基于單一尺寸范圍的輸入進(jìn)行訓(xùn)練,這樣能夠減少所謂的domain-shift。因此做這個(gè)實(shí)驗(yàn)的目的是基于前面那個(gè)實(shí)驗(yàn)中的猜想:基于1400*2000大小的圖像訓(xùn)練時(shí)由于訓(xùn)練數(shù)據(jù)中尺寸中等及較大的目標(biāo)對(duì)模型訓(xùn)練有負(fù)作用,因此這里直接在訓(xùn)練過(guò)程中忽略這樣的數(shù)據(jù)。但是可以看出這個(gè)模型的效果非常差,猜想原因是忽略這些訓(xùn)練數(shù)據(jù)(占比大約30%)所帶來(lái)的數(shù)據(jù)損失對(duì)模型效果的影響更大。
Multi-Scale Training(MST)表示訓(xùn)練一個(gè)檢測(cè)器時(shí)采用不同尺度的圖像進(jìn)行訓(xùn)練(包括480*800),也就是scale invariant detector。照理來(lái)說(shuō)這個(gè)實(shí)驗(yàn)的效果應(yīng)該會(huì)比較好的,因?yàn)槊總€(gè)object都會(huì)有多種不同尺寸來(lái)訓(xùn)練檢測(cè)模型,但是可以看出該模型的效果和800all差不多,主要原因在于訓(xùn)練數(shù)據(jù)中那些尺寸非常大或非常小的object會(huì)影響訓(xùn)練效果,因此這篇文章在引入MST思想的同時(shí)限定了不同尺寸的object在訓(xùn)練過(guò)程中的梯度回傳,這就是SNIP。?

Object Detection on an Image Pyramid
Scale Normalization for Image Pyramids
SNIP是MST的改進(jìn)版本,只有當(dāng)對(duì)象的分辨率和預(yù)訓(xùn)練模型的訓(xùn)練數(shù)據(jù)即相近時(shí)(224*224),才使用它來(lái)訓(xùn)練檢測(cè)器。在MST中,每張圖片都被縮放到不同的尺度,在高分辨率圖像中,原本較大的對(duì)象變得更大,很難檢測(cè)到,在低分辨率圖像中,原本較小的對(duì)象變得更小,也很難檢測(cè)到。SNIP的做法就是只對(duì)尺寸在指定范圍內(nèi)的目標(biāo)回傳損失(該范圍需接近預(yù)訓(xùn)練模型的訓(xùn)練數(shù)據(jù)尺寸),也就是說(shuō)訓(xùn)練過(guò)程實(shí)際上只是針對(duì)這些目標(biāo)進(jìn)行的,這樣就能減少domain-shift帶來(lái)的影響。又因?yàn)橛?xùn)練過(guò)程采用了類(lèi)似MST的做法,所以每個(gè)目標(biāo)在訓(xùn)練時(shí)都會(huì)有幾個(gè)不同的尺寸,那么總有一個(gè)尺寸在指定的尺寸范圍內(nèi)。需要注意的是對(duì)目標(biāo)的尺寸做限制是在訓(xùn)練過(guò)程,而不是預(yù)先對(duì)訓(xùn)練數(shù)據(jù)做過(guò)濾,訓(xùn)練數(shù)據(jù)還是基于所有數(shù)據(jù)進(jìn)行。實(shí)驗(yàn)證明這種做法對(duì)小目標(biāo)物體的檢測(cè)非常有效。

某個(gè)ROI在訓(xùn)練中是否回傳梯度是和預(yù)訓(xùn)練模型的數(shù)據(jù)尺寸相關(guān)的,也就是說(shuō)當(dāng)某個(gè)ROI的面積在指定范圍內(nèi)時(shí),該ROI就是valid,也就是會(huì)在此次訓(xùn)練中回傳梯度,否則就是無(wú)效的,valid anchor的定義是和invalid ground truth的IOU小于0.3的anchor。
在前向時(shí),使用RPN在每個(gè)分辨率上生成候選區(qū)域,然后在每個(gè)分辨率上獨(dú)立分類(lèi),跟訓(xùn)練階段相似,在每個(gè)分辨率上,不將落在指定面積范圍之外的檢測(cè)結(jié)果剔除,在經(jīng)過(guò)分類(lèi)和回歸之后,使用soft-NMS來(lái)講不通分辨率上的檢測(cè)結(jié)果融合起來(lái)。
為了降低訓(xùn)練對(duì)GPU內(nèi)存的要求,將原圖進(jìn)行裁剪,目標(biāo)是在原圖裁剪盡可能少的1000x1000的區(qū)域,并且這些裁剪區(qū)域包含所有的小目標(biāo)具體方法:選擇一幅圖像;隨機(jī)生成50個(gè)1000x1000的裁剪區(qū)域;選擇包括目標(biāo)最多的裁剪區(qū)域;如果所有裁剪區(qū)沒(méi)有包含原圖所有的目標(biāo),繼續(xù)隨機(jī)生成50個(gè)1000x1000的裁剪區(qū)域;由于很多目標(biāo)在原圖邊界,再加上是隨機(jī)裁剪,為了加快速度,裁剪時(shí),保證裁剪區(qū)域的至少一個(gè)邊在原圖邊界上,對(duì)于分辨率小于1000*1000的,或者不包含小目標(biāo)的圖像,不進(jìn)行處理。實(shí)驗(yàn)證明裁剪原圖不是提高精度的原因。
對(duì)于分辨率為1400*2000的訓(xùn)練圖像,原圖中的有效尺寸的范圍為[0,80],800*1200的訓(xùn)練圖像,原圖中有效尺寸為[40,160],480*800的訓(xùn)練圖像有效尺寸為大于等于120。
關(guān)于RPN網(wǎng)絡(luò)中anchor的正負(fù)樣本比例。在RPN網(wǎng)絡(luò)中,一個(gè)anchor的標(biāo)簽是根據(jù)該anchor和ground truth的IOU來(lái)決定的,只有兩種情況下才會(huì)認(rèn)為某個(gè)anchor的標(biāo)簽是正樣本:1、假如該anchor和某個(gè)ground truth的IOU超過(guò)某個(gè)閾值(閾值默認(rèn)采用是0.7),那么該ancho就是正樣本;2、假如一個(gè)ground truth和所有anchor的IOU都沒(méi)超過(guò)該閾值,那么和該ground truth的IOU最大的那個(gè)anchor就是正樣本。將conv4的輸出作為RPN網(wǎng)絡(luò)的輸入,然后設(shè)置了15種anchor(5 scales,3 aspect ratios),發(fā)現(xiàn)在COCO數(shù)據(jù)集上(圖像大小為800*1200),只有30%的ground truth滿(mǎn)足前面第一種情況,即便將閾值調(diào)整為0.5,也只有58%的ground truth滿(mǎn)足第一種情況,說(shuō)明即便閾值等于0.5,仍有40%的正樣本anchor和ground truth的IOU小于0.5(這些anchor是因?yàn)闈M(mǎn)足前面的情況2才被定義為正樣本)。顯然,這樣的正樣本質(zhì)量不算很高。而引入多種分辨率的圖像作為輸入在一定程度上緩解了這種現(xiàn)象。
Experiments
