王子愉,袁 春,黎健成
1(清華大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)系,北京 100084)
2(清華大學(xué) 深圳研究生院,廣東 深圳 518000)
實(shí)例分割是計(jì)算機(jī)視覺中的一項(xiàng)具有挑戰(zhàn)性的任務(wù),它結(jié)合了目標(biāo)檢測[1,2]和語義分割[3-9]的任務(wù).目標(biāo)檢測要求在實(shí)例層級上進(jìn)行分類和定位,而語義分割在像素層級上進(jìn)行分類.實(shí)例分割不僅需要每個實(shí)例的邊界框,還需要精確的分割掩碼.
實(shí)例分割領(lǐng)域的早期方法,如Deepmask[10]、Sharpmask[11]和InstanceFCN[12],都使用了Faster R-CNN對實(shí)例進(jìn)行分類和定位.它們在興趣區(qū)域(region of interest)的基礎(chǔ)上利用全卷積網(wǎng)絡(luò)生成分割掩碼.給定一個圖像片段,Deepmask做兩件事:生成一個可以分辨每個像素是否屬于某一個實(shí)例的掩碼;獲取表示此圖像片段中心是否包含實(shí)例的置信度的分?jǐn)?shù).Deepmask的關(guān)鍵是同時預(yù)測掩碼和實(shí)例的得分.Sharpmask通過生成具有不同深度的圖像特征的更高質(zhì)量掩模來改進(jìn)Deepmask.它首先從高層次特征生成實(shí)例的掩碼,并使用較低層次的特征逐步加以細(xì)化.InstanceFCN[12]提出了位置敏感評分圖,以保證分割任務(wù)的平移可變性.位置敏感評分圖被整合以生成每個實(shí)例的分割掩碼.另一種稱為多任務(wù)網(wǎng)絡(luò)級聯(lián)(MNC)的方法將實(shí)例劃分為3個階段:包圍盒提議、掩碼生成和實(shí)例分類.每個階段都以前一階段的結(jié)果作為輸入,整個網(wǎng)絡(luò)是端到端的.
上述方法的一個共同缺點(diǎn)是它們以類不可知的方式分割實(shí)例,這可能導(dǎo)致不準(zhǔn)確的分割.為了解決上述問題,一種端到端的解決方案 FCIS[13]被提了出來.FCIS繼承使用了位置敏感評分圖的方法,將其擴(kuò)展到內(nèi)外位置敏感評分圖,充分利用了上下文信息.另一方面,它為分割子任務(wù)中的每個類生成掩碼候選項(xiàng),以使最終掩碼更準(zhǔn)確.基于FCIS,Biseg[14]利用語義分割的結(jié)果作為實(shí)例分割的先驗(yàn)信息.多尺度的位置敏感評分圖在Biseg中也被證明是有效的.通過這兩項(xiàng)技巧,Biseg比FCIS有了顯著的提高.
最近,由何明凱提出的Mask R-CNN[15]是一種簡單、靈活、通用的對象實(shí)例分割框架.作者在Faster R-CNN中加入了一個分割分支,在檢測的同時對實(shí)例進(jìn)行分割.Mask R-CNN改進(jìn)了分割的損失函數(shù),由原來常用的基于單像素softmax的多項(xiàng)式交叉熵變?yōu)榱嘶趩蜗袼豷igmod二值交叉熵,二值交叉熵會使得每一類的掩碼不相互競爭,而不是與其他類別的掩碼比較.另外一點(diǎn)改進(jìn)在于,作者加入了 RoIAlign層,利用雙線性插值使得興趣區(qū)域的池化結(jié)果更加接近未池化前的特征,從而降低了誤差.盡管結(jié)構(gòu)簡單,但在 FPN[2]等一系列實(shí)用技術(shù)的幫助下,Mask R-CNN取得了良好的效果.Mask R-CNN需要在至少8個GPU的實(shí)驗(yàn)環(huán)境下才能復(fù)現(xiàn)出與論文結(jié)果相近的表現(xiàn),GPU的數(shù)量直接影響實(shí)驗(yàn)中批處理的數(shù)量,而大的批量能夠帶來穩(wěn)定的批量歸一化(batch normalization)效果,從而帶來好的實(shí)驗(yàn)結(jié)果.受限于實(shí)驗(yàn)環(huán)境,我們的 GPU 數(shù)量目前無法滿足要求,因此復(fù)現(xiàn)的Mask R-CNN效果與原論文相差較大,失去了比較的意義.出于這個原因,我們不能在Mask R-CNN上進(jìn)行實(shí)驗(yàn),只能作為參考,相關(guān)實(shí)驗(yàn)留待進(jìn)一步研究.
本文繼承使用了位置敏感評分圖的思想,提出了一種比FCIS更復(fù)雜、更精確的模型.我們的方法充分利用了目標(biāo)檢測和語義分割的最新進(jìn)展,在檢測子任務(wù)中加入更有效的檢測框架,設(shè)計(jì)了一個具有邊界細(xì)化模塊和多級特征的復(fù)雜分割分支.最后,在 PASCAL VOC數(shù)據(jù)集上對該方法的性能進(jìn)行了評價.我們在mAPr@0.5和mAPr@0.7中分別達(dá)到69.1%和54.9%,顯著高于我們的基準(zhǔn)線方法FCIS.本文的主要貢獻(xiàn)總結(jié)如下.
(1) 利用具有大型卷積核的可分離卷積改進(jìn)了檢測分支,得到了更精確的包圍盒.
(2) 利用可分離卷積和邊界細(xì)化操作改進(jìn)了分割分支,得到了更精確的分割邊界.
(3) 我們的模型融合了Resnet-101的低、中、高3個層次的特征.實(shí)驗(yàn)驗(yàn)證了融合后特征的有效性.
這項(xiàng)工作是以InstanceFCN為基礎(chǔ)的.InstanceFCN引入了位置敏感評分圖,在一定程度上保持了平移可變性.InstanceFCN主要用于生成掩碼,但也存在一些不足,如不能判斷語義類別,需要后續(xù)的網(wǎng)絡(luò)輔助判別,這意味著它不是端到端的結(jié)構(gòu).
基于InstanceFCN,全卷積實(shí)例感知網(wǎng)絡(luò)(FCIS)被提了出來,InstanceFCN只有單個對象輸出,沒有類別信息,需要單獨(dú)的網(wǎng)絡(luò)完成類別信息,FCIS一個網(wǎng)絡(luò)同時輸出實(shí)例掩碼和類別信息.FCIS的兩個子任務(wù)(目標(biāo)檢測和分割)不僅共享卷積特征,而且共享位置敏感評分圖.
在實(shí)例分割中,相同像素可以是目標(biāo)的前景或另一目標(biāo)的背景.僅僅通過為每個類別輸出單個得分圖來區(qū)分這兩種情況是不夠的.因此,FCIS的主要創(chuàng)新之一就是提出了內(nèi)外位置敏感評分圖.在FCIS中,對于一個類別,每個像素在每個分區(qū)中具有兩個分?jǐn)?shù),表示在目標(biāo)邊界內(nèi)部(或外部)的可能性.通過這種方法,FCIS中位置敏感得分圖記錄了更多的語義信息并生成了更精確的掩碼.輸入圖像,使用卷積神經(jīng)網(wǎng)絡(luò)提取特征,用區(qū)域提議網(wǎng)絡(luò)(RPN)提取候選區(qū)域矩形框,計(jì)算這些矩形框的部件內(nèi)外位置敏感評分圖,就是部件對象邊界內(nèi)的概率圖和對象邊界外的概率圖.通過整合得到完整對象的對象邊界內(nèi)的概率圖和對象邊界外的概率圖,通過逐像素的softmax操作得到實(shí)例掩碼,通過逐像素的max操作得到類別概率.
Fig.1 Separable convolution圖1 可分離卷積
為了減小卷積運(yùn)算中的參數(shù),可分離卷積的概念被提了出來.利用可分離卷積,卷積運(yùn)算可以分成多個步驟.假設(shè)卷積運(yùn)算由y=conv(x,k)表示,其中,輸出圖像是y,輸入圖像是x,卷積核大小是k.接下來,假設(shè)k可以通過以下等式計(jì)算:k=k1.dot(k2).這實(shí)現(xiàn)了可分離的卷積運(yùn)算,因?yàn)槎S卷積運(yùn)算不是由卷積核大小為k的一維卷積運(yùn)算執(zhí)行的,而是由卷積核大小為k1和k2的兩個一維卷積運(yùn)算代替.這樣就減少了大量的參數(shù),因?yàn)橥ǔ1×k2比k1+k2大得多.可分離卷積如圖1所示.
在目標(biāo)檢測和語義分割任務(wù)中,具有大型卷積核的卷積運(yùn)算被證明是有效的,因?yàn)榇蟮木矸e核帶來了大而有效的感知域[7,16,17].對于目標(biāo)檢測和語義分割任務(wù),大的感知域能夠使得大物體的信息被完整地傳遞到更深層的網(wǎng)絡(luò),對于目標(biāo)包圍框的定位更加準(zhǔn)確.例如,在后文所示的圖 5中,FCIS方法檢測出來的火車在車尾部分明顯丟失了一小段,這就是因?yàn)楦惺芤安粔虼蠖鴮?dǎo)致的.用具有大卷積核的可分離卷積擴(kuò)大感受野后,目標(biāo)包圍框明顯擴(kuò)大,這部分缺失的內(nèi)容被彌補(bǔ)了回來.
擴(kuò)大感受野的效果是由進(jìn)行大卷積核卷積帶來的,而大卷積核的卷積操作的問題在于參數(shù)會變得非常多,通常計(jì)算資源不能滿足.可分離卷積的目的在于大幅度減少參數(shù),從而使得大卷積核的卷積操作能夠可行,利用可分離卷積,可以用較少的參數(shù)和較快的速度進(jìn)行大型卷積核卷積運(yùn)算.
在流行的兩階段檢測框架(如Faster R-CNN和R-FCN)中,第1步是生成足夠的候選對象,稱其為主體;第2步是識別候選框,即頭部.為了獲得最佳精度,頭部通常被設(shè)計(jì)得非常繁重,這需要大量的參數(shù)和復(fù)雜的計(jì)算.為了解決這個問題,使用具有大型卷積核的可分離卷積來生成一個較薄的分?jǐn)?shù)圖,稱為輕頭部.為了減少信息丟失,Light-Head RCNN刪除了Faster R-CNN或R-FCN中的全局平均池化層.在這之后,就沒有辦法直接得到最終的結(jié)果.然而,通過添加一個全連接層則可以獲得分類和回歸的最終結(jié)果.實(shí)驗(yàn)中,我們用 10代替了原本的類別數(shù),因此降低了位置敏感的興趣區(qū)域池化層和全連接層的計(jì)算量.此外,我們使用了具有大卷積核的分離卷積代替1×1卷積,將k×k的卷積轉(zhuǎn)化為1×k和k×1,最后加上了一個全連接層作通道變換,再進(jìn)行分類和回歸.通過實(shí)驗(yàn)我們還發(fā)現(xiàn),在通道數(shù)少的特征圖譜上作興趣區(qū)域的池化,不僅準(zhǔn)確率提高,還會節(jié)約內(nèi)存及計(jì)算量資源.通過這種方法,Light-Head R-CNN提高了檢測的速度和精度.
通常大量的物體會有復(fù)雜且不規(guī)則的邊界形狀,邊界形狀的精確預(yù)測對于整個實(shí)例的分割影響重大.在最近的語義分割工作中,為了提高邊緣的分割精度,有研究者提出一種帶殘差結(jié)構(gòu)的邊界細(xì)化[7]模塊.這種邊界細(xì)化模塊在初步得到實(shí)例的分割掩碼之后使用,以進(jìn)一步擬合實(shí)例邊界.由于實(shí)例分割的分割子分支中使用的方法與語義分割有大量的相似之處,這種方法在實(shí)例分割中也是有用的.該模型采用邊界細(xì)化模塊對生成的掩模進(jìn)行細(xì)化.詳情如圖2和圖3所示.
Fig.2 Boundary refinement圖2 邊界細(xì)化
Fig.3 Segmentation module圖3 分割模塊
在該模型中,網(wǎng)絡(luò)輸入任意大小的圖像并輸出實(shí)例分割結(jié)果.該網(wǎng)絡(luò)具有多個子網(wǎng)絡(luò),它們分享共同的卷積特征:區(qū)域提議、邊界框回歸、實(shí)例分割.區(qū)域建議子網(wǎng)絡(luò)根據(jù)區(qū)域建議網(wǎng)絡(luò)(RPN)[1]的工作生成興趣區(qū)域.邊界框回歸子網(wǎng)絡(luò)對初始輸入的興趣區(qū)域進(jìn)行細(xì)化,以產(chǎn)生更精確的檢測結(jié)果.實(shí)例分割子網(wǎng)絡(luò)估計(jì)實(shí)例掩碼.我們的模型如圖4所示.
Fig.4 Network architecture圖4 網(wǎng)絡(luò)結(jié)構(gòu)
我們使用 ResNet-101[18]模型作為卷積主干結(jié)構(gòu)進(jìn)行特征提取.Resnet-101模型可分為 5個階段,每個階段產(chǎn)生不同深度的特征.特別地,在基準(zhǔn)線方法FCIS的實(shí)現(xiàn)過程中,Resnet-101的第5級特征與第4級特征具有相同的大小輸出.在我們的模型中,第2層、第3層和第4層的特征通過1×1的卷積操作被下采樣到與第5層相同的大小,然后這些特征被組合成新的4層特征,具體的操作方法為,從第5層到第2層的特征逐層進(jìn)行對應(yīng)位置上的元素加法,4次操作得到 4層新的特征,這些特征圖有著相同的大小和深度,但是特征融合的信息由少到多.每個新的特征圖將作為實(shí)例分割子網(wǎng)絡(luò)的輸入.
如上所述,采用Light Head R-CNN的結(jié)構(gòu)作為我們的子網(wǎng)絡(luò).在Resnet-101的conv5層特征圖上進(jìn)行大型卷積核的分離卷積,得到輕頭部.我們將內(nèi)核大小設(shè)置為15,這與原始Light Head R-CNN中的大小相同.在輕頭部中對于每個候選框進(jìn)行位置敏感的興趣區(qū)域池化,這樣,每個候選框的特征就被提取出來.將結(jié)果通過一個全連接層轉(zhuǎn)化為4 096維的向量,通過全連接層進(jìn)行分類和邊界框回歸.
對于第 3.1節(jié)中描述的每個新特征,我們都執(zhí)行相同的一系列操作,這些操作可以歸納為一個分割模塊.分割模塊的細(xì)節(jié)如圖 4所示.與語義分割不同,我們發(fā)現(xiàn)具有大型卷積核的可分離卷積在實(shí)例分割中并不那么有效,原因是實(shí)例分割中每個實(shí)例在圖像中的面積不一定很大,這導(dǎo)致大的感受野只對大的物體具有積極效應(yīng),而對于小的物體無效甚至有負(fù)面效果.在我們的實(shí)驗(yàn)中,通過多次的實(shí)驗(yàn)驗(yàn)證,最終把卷積核大小定為 3,得到了最好的結(jié)果.
實(shí)驗(yàn)使用的損失函數(shù)為實(shí)例分割任務(wù)中常用的聯(lián)合訓(xùn)練損失函數(shù):
其中,Lcls為目標(biāo)檢測任務(wù)中對于興趣區(qū)域目標(biāo)類別預(yù)測的交叉熵,Ldet為目標(biāo)檢測中對于興趣區(qū)域的位置修正損失函數(shù),Lmask為語義分割任務(wù)中預(yù)測的掩碼與實(shí)際掩碼的逐像素交叉熵之和.由于實(shí)驗(yàn)采用的是端到端的訓(xùn)練方式,因此這3種損失函數(shù)同步計(jì)算并回傳梯度,3種損失函數(shù)直接相加,不進(jìn)行加權(quán).
我們在VOC 2012訓(xùn)練集(5 623張圖片)上對模型進(jìn)行了訓(xùn)練,并對VOC 2012驗(yàn)證集進(jìn)行了評估(5 732張圖片).我們使用的評估度量是區(qū)域上的平均精度,稱為mAPr.使用0.5和0.7的交并比閾值下的mAPr指標(biāo),在預(yù)測區(qū)域和真實(shí)區(qū)域上計(jì)算交并比.
實(shí)驗(yàn)環(huán)境:顯卡為2×Titan X(Pascal),訓(xùn)練時的學(xué)習(xí)率設(shè)置為0.000 5,共訓(xùn)練22次迭代,訓(xùn)練時的批處理數(shù)量為1,其他實(shí)驗(yàn)設(shè)置與官方開源的代碼相同.
FCIS*:此基準(zhǔn)線方法基于FCIS的開源實(shí)現(xiàn).由于實(shí)驗(yàn)使用的代碼是在基于FCIS作者開源的官方代碼上修改實(shí)現(xiàn)的,在運(yùn)行官方代碼時,原代碼使用了4個GPU運(yùn)行,而我們的實(shí)驗(yàn)環(huán)境只有2個GPU,前文在介紹中已經(jīng)解釋了 GPU數(shù)量對于實(shí)驗(yàn)結(jié)果的影響,使用較少的 GPU數(shù)量通常都會帶來結(jié)果上的略微下降.由于使用的VOC 2012數(shù)據(jù)集圖片數(shù)量較少,因此,雖然復(fù)現(xiàn)的結(jié)果略低于論文結(jié)果,但是差距較小,有一定的比較意義.實(shí)際上,在 Biseg[14]中,作者復(fù)現(xiàn)的實(shí)驗(yàn)結(jié)果同樣略低于論文結(jié)果,這并不是由于實(shí)驗(yàn)方法或者實(shí)驗(yàn)設(shè)置上的錯誤造成的.參考 Biseg[14],我們將運(yùn)行 FCIS的結(jié)果標(biāo)記為 FCIS*,這個結(jié)果是由 5次運(yùn)行官方代碼平均得到的結(jié)果,偶然性較小.我們的工作基于此.
我們的方法:與作為對照實(shí)驗(yàn)的FCIS*相同,我們使用在ImageNet上預(yù)先訓(xùn)練的ResNet-101模型,同時并不在我們的模型上應(yīng)用在線硬示例挖掘(OHEM).將模型中的ROIPooling和位置敏感ROIPooling(PSROI Pooling)改為ROIAlign方法,取得了較好的效果,分別為64.8%和51.1%.多層次的特征幫助我們達(dá)到了65.9%和52.1%的效果.將Light Head R-CNN的結(jié)構(gòu)改進(jìn)到我們的模型中之后,結(jié)果分別為68.6%和53.8%.最后對網(wǎng)絡(luò)結(jié)構(gòu)進(jìn)行了調(diào)整,得到了最好的效果,分別為 69.1%和 54.9%.我們將本文模型與最近的方法進(jìn)行了比較,結(jié)果顯示在表1中.這證明了我們模型的有效性和高效性.
圖 5展示了我們的一些結(jié)果.通過邊界細(xì)化和融合特征,我們的方法在邊界線處產(chǎn)生了高質(zhì)量的掩碼.有了更好的檢測器,從而避免了一些丟失或冗余多余的部件.
Table 1 Comparison of results on PASCAL VOC2012表1 PASCAL VOC2012實(shí)例分割結(jié)果比較
Fig.5 FCIS(top) vs. Our Model(bottom). FCIS shows missing,redundancy and rough boundary圖5 FCIS(上)vs.我們的模型(下).FCIS表現(xiàn)出缺失、冗余和粗糙的邊界
實(shí)例分割是物體檢測+語義分割的綜合體.相對物體檢測的邊界框,實(shí)例分割可精確到物體的邊緣;相對語義分割,實(shí)例分割可以標(biāo)注出圖上同一物體的不同個體.我們提出了一種有效且復(fù)雜的端到端全卷積解決方案以解決實(shí)例分割問題.該方法利用Light Head R-CNN方法對邊界盒進(jìn)行檢測,并利用邊界細(xì)化模塊和多級特征來生成分割掩模.在PASCAL VOC數(shù)據(jù)集上取得了69.0%和54.9%的最佳結(jié)果,顯著高于FCIS上的結(jié)果.在以后的工作中,我們打算在檢測分支和分割分支之間建立一個直接的連接,以加強(qiáng)它們之間的交流,使共同的特征充分共享.