姜世浩,齊蘇敏,王來花,賈 惠
(曲阜師范大學(xué) 軟件學(xué)院,山東 曲阜 273165)
實(shí)例分割[1-2]是指給定一個(gè)圖像,在正確檢測(cè)出圖像中所有目標(biāo)的同時(shí)對(duì)每一個(gè)目標(biāo)進(jìn)行分類以及像素級(jí)別的分割,是一項(xiàng)具有挑戰(zhàn)性的計(jì)算機(jī)視覺任務(wù),與計(jì)算機(jī)視覺中的兩個(gè)經(jīng)典任務(wù)—目標(biāo)檢測(cè)[3-5]與語義分割[6-9]密切相關(guān)。實(shí)例分割的結(jié)果中包含非常豐富的信息,在自動(dòng)駕駛、智能監(jiān)控、生物醫(yī)療、人機(jī)交互等領(lǐng)域有著極大的利用價(jià)值。
2014年Hariharan等人提出了SDS[10]模型,該模型使用多尺度可結(jié)合組(MCG)提取建議區(qū)域,對(duì)于每個(gè)區(qū)域,使用卷積神經(jīng)網(wǎng)絡(luò)(CNN)來提取前景特征,再對(duì)每個(gè)區(qū)域使用支持向量機(jī)(SVM)在CNN頂層特征上進(jìn)行分類。2015年P(guān)inheiro等人提出了基于單個(gè)卷積網(wǎng)絡(luò)的DeepMask[11]模型。給定一個(gè)圖像塊作為輸入,輸出一個(gè)與類別無關(guān)的掩模和該圖像塊完全包含一個(gè)物體的概率。同年,Dai等人提出了多任務(wù)網(wǎng)絡(luò)層級(jí)模型(MNC)[12]。該模型分為實(shí)例區(qū)分,掩模估計(jì),目標(biāo)分類三個(gè)子任務(wù),在共享特征的基礎(chǔ)上,形成層級(jí)的多任務(wù)結(jié)構(gòu)。2016年P(guān)inheiro等人又提出了SharpMask[13]模型,該模型利用底層信息優(yōu)化了DeepMask的輸出,產(chǎn)生具有更高保真度的掩模。上述方法中,分割先于識(shí)別,分割結(jié)果與目標(biāo)類別無關(guān),導(dǎo)致結(jié)果精度較低。2017年,Y Li等人基于全卷積網(wǎng)絡(luò)(FCN)[14]提出了一種可用于實(shí)例分割的端到端模型FCIS[15],該模型是首個(gè)全卷積、端到端的實(shí)例分割解決方案。2018年,He等人提出了一種簡(jiǎn)單通用且性能強(qiáng)大的實(shí)例分割模型Mask R-CNN[16]。該模型在Faster R-CNN[17]的基礎(chǔ)上加入了一個(gè)基于全卷積網(wǎng)絡(luò)(FCN)的掩模預(yù)測(cè)分支,并應(yīng)用了先進(jìn)的骨干網(wǎng)絡(luò)—深度殘差網(wǎng)絡(luò)(Resnet)[18]與特征金字塔(FPN)[19]。此外,提出ROIAlign代替了ROIPooling操作,解決了ROIPooling產(chǎn)生的對(duì)齊問題,使該模型能夠更好地適應(yīng)像素級(jí)別的分割任務(wù)。
Mask R-CNN雖然采用特征金字塔(FPN)結(jié)構(gòu)提取了多層次的豐富特征,但對(duì)各層信息尤其是邊緣細(xì)節(jié)信息與空間位置信息的利用仍不充分。文中在Mask R-CNN的基礎(chǔ)上提出了多特征融合的實(shí)例分割方法。首先,在Mask R-CNN結(jié)構(gòu)中加入一條基于HED[20]的邊緣檢測(cè)分支以及一條基于FCN的語義分割分支,分別提供邊緣細(xì)節(jié)信息與空間位置信息;其次,原始特征圖在進(jìn)行ROIAlign時(shí)將ROI映射到原先分配的特征層及其相鄰層,以充分利用特征金字塔的各層信息;最后,將各分支得到的特征圖進(jìn)行融合,融合得到的新特征中既包含了豐富的邊緣信息,能夠提升分割結(jié)果的邊緣精度以及使檢測(cè)器更好的區(qū)分鄰接或交錯(cuò)的物體,還包含了目標(biāo)的空間位置信息,能夠?qū)⒛繕?biāo)前景與自然界復(fù)雜的背景進(jìn)行有效的區(qū)分。實(shí)驗(yàn)結(jié)果表明,該模型與Mask R-CNN相比檢測(cè)和分割精度都得到了提升。
文中提出的網(wǎng)絡(luò)結(jié)構(gòu)分為三個(gè)部分:特征提取網(wǎng)絡(luò)、區(qū)域建議網(wǎng)絡(luò)以及檢測(cè)分割網(wǎng)絡(luò),整體結(jié)構(gòu)如圖1所示。其中,特征提取網(wǎng)絡(luò)在原有骨干網(wǎng)絡(luò)(Resnet-FPN)的基礎(chǔ)上增加了邊緣檢測(cè)分支與語義分割分支。新增的分支在骨干網(wǎng)絡(luò)的結(jié)果之上進(jìn)行構(gòu)建,與原網(wǎng)絡(luò)聯(lián)合訓(xùn)練,以重用骨干特征減少額外的參數(shù),如圖1左側(cè)虛線框所示。區(qū)域建議網(wǎng)絡(luò)和檢測(cè)分割網(wǎng)絡(luò)與Mask R-CNN相同。此外在ROIAlign操作之后加入了特征融合操作,如圖1右側(cè)虛線框中所示。
Mask R-CNN模型在Faster R-CNN模型的基礎(chǔ)上添加了一個(gè)基于FCN的掩模預(yù)測(cè)分支用于實(shí)例分割。如圖1所示,輸入圖像首先通過骨干網(wǎng)絡(luò)(Resnet-FPN)進(jìn)行特征提取得到特征圖,再通過區(qū)域建議網(wǎng)絡(luò)(RPN)在特征圖上生成感興趣區(qū)域(ROI),并將感興趣區(qū)域?qū)?yīng)位置的特征池化為固定尺寸的特征,最后由檢測(cè)分支進(jìn)行目標(biāo)框的分類和回歸,由掩模預(yù)測(cè)分支對(duì)目標(biāo)進(jìn)行像素級(jí)別的分割。
圖1 網(wǎng)絡(luò)結(jié)構(gòu)
在Faster R-CNN中,感興趣區(qū)域進(jìn)行池化(ROIPooling)時(shí)對(duì)區(qū)域劃分坐標(biāo)進(jìn)行了取整操作,在結(jié)果中引入了量化誤差,對(duì)像素級(jí)別的分割任務(wù)影響較大。針對(duì)該問題,Mask R-CNN作者提出了ROIAlign,保留了浮點(diǎn)數(shù)坐標(biāo)并通過雙線性插值求得各個(gè)坐標(biāo)點(diǎn)的值。
Mask R-CNN對(duì)于每一個(gè)ROI的損失函數(shù)定義為:
LMaskR-CNN=Lcls+Lbox+Lmask
(1)
式(1)中的Lcls為分類損失函數(shù):
Lcls=-logpu
(2)
其中,pu為目標(biāo)正確類別u的預(yù)測(cè)概率。
式(1)中的Lbox為邊框回歸損失函數(shù):
(3)
(4)
式(1)中的Lmask為分割損失:
(5)
logxi+(1-yi)·log(1-xi)
(6)
整體嵌套邊緣檢測(cè)(HED)是一種基于深度學(xué)習(xí)的邊緣檢測(cè)算法[21-22]。該模型是一種端到端的邊緣檢測(cè)模型,應(yīng)用了多層級(jí),多尺度預(yù)測(cè)的思想,將網(wǎng)絡(luò)的不同層級(jí)的結(jié)果側(cè)向輸出并分別應(yīng)用損失函數(shù)進(jìn)行監(jiān)督,最后用反卷積將高層輸出上采樣到原圖大小并通過一個(gè)可訓(xùn)練的權(quán)重將各層的結(jié)果融合得到最終輸出。
文中模型的邊緣檢測(cè)分支基于HED多層級(jí)預(yù)測(cè)的思想構(gòu)建,以特征金字塔的輸出結(jié)果作為輸入,其結(jié)構(gòu)如圖2所示。由于特征金字塔的最高層(第五層)分辨率過低,通過反卷積操作上采樣得到的結(jié)果過于模糊,對(duì)檢測(cè)準(zhǔn)確性的提升沒有幫助,故舍棄該層,以前四層的輸出結(jié)果作為輸入。首先,每一層通過兩個(gè)3×3的卷積層提取各層的邊緣信息,并經(jīng)過一個(gè)1×1的卷積層生成各自的邊緣預(yù)測(cè)結(jié)果。然后將各層的預(yù)測(cè)結(jié)果上采樣到最底層的大小,并通過一組可訓(xùn)練的權(quán)重將各層結(jié)果對(duì)應(yīng)元素相加得到最終的邊緣預(yù)測(cè)結(jié)果用于該分支的訓(xùn)練。最后,通過一個(gè)1×1的卷積層將該結(jié)果映射到原始特征的特征空間得到邊緣特征圖。
圖2 邊緣檢測(cè)分支
在HED模型中,對(duì)每個(gè)側(cè)邊輸出都應(yīng)用單獨(dú)的損失函數(shù)進(jìn)行監(jiān)督,使得邊緣檢測(cè)網(wǎng)絡(luò)更容易響應(yīng)物體內(nèi)部的邊緣紋理。而文中的邊緣檢測(cè)分支主要任務(wù)是識(shí)別物體的輪廓邊緣,物體內(nèi)部的邊緣紋理反而會(huì)對(duì)目標(biāo)檢測(cè)任務(wù)造成干擾。因此,文中僅對(duì)邊緣檢測(cè)分支的最終的融合結(jié)果進(jìn)行監(jiān)督,其損失函數(shù)表示為:
(7)
(8)
語義分割分支同樣以特征金字塔的各層輸出結(jié)果為輸入,其結(jié)構(gòu)如圖3所示。首先將每一層特征圖分別通過一個(gè)1×1的卷積層使得各層映射到相同的表示空間中,然后以第二層為基準(zhǔn),將高層特征圖上采樣,低層特征圖下采樣到第二層大小,并將各層特征圖通過對(duì)應(yīng)元素相加進(jìn)行融合以結(jié)合低層特征的定位信息與高層特征的語義信息用于像素級(jí)別的語義分割。權(quán)衡分割精度與額外參數(shù)開銷,以第二層為基準(zhǔn)是最合適的。最后,將融合得到的特征通過四個(gè)3×3的卷積層進(jìn)一步獲取語義信息,并分別通過兩個(gè)1×1的卷積層輸出,其中一個(gè)輸出語義分割的預(yù)測(cè)結(jié)果用于該分支的訓(xùn)練,另一個(gè)輸出最終的語義特征圖用于后續(xù)的特征融合。
圖3 語義分割分支
文中模型的語義分割分支損失函數(shù)表示為逐像素的交叉熵?fù)p失:
(9)
在Mask R-CNN中,特征金字塔在進(jìn)行ROIAlign操作時(shí),根據(jù)ROI的大小對(duì)ROI進(jìn)行分配,較大的ROI分配到低層,較小的ROI分配到高層。在此基礎(chǔ)上,文中將ROI同時(shí)分配給相鄰層進(jìn)行ROIAlign操作,得到多個(gè)特征圖,以充分利用特征金字塔的特征信息。最后,將前述分支得到的邊緣和語義特征圖經(jīng)過ROIAlign操作,并將所有特征圖通過元素相加進(jìn)行融合,生成信息更加豐富的邊框特征和掩模特征,用于后續(xù)的檢測(cè)和分割任務(wù)。此外,將所有ROI特征圖的分辨率提升到28×28以適應(yīng)邊緣和語義分割的細(xì)粒度特征。
整個(gè)模型以端到端的方式進(jìn)行訓(xùn)練,損失函數(shù)在原Mask R-CNN的損失函數(shù)的基礎(chǔ)上增加了邊緣損失與分割損失用來監(jiān)督邊緣檢測(cè)分支與語義分割分支的輸出結(jié)果。整體的損失函數(shù)如下:
L=LMaskR-CNN+αLedge+βLseg
(10)
其中,LMaskR-CNN為Mask R-CNN的損失函數(shù),如式(1)所示;Ledge為邊緣檢測(cè)分支的損失函數(shù),如式(7)所示;Lseg為語義分割分支的損失函數(shù),如式(9)所示。參數(shù)α和β分別表示邊緣誤差和語義分割誤差在整體誤差中的權(quán)重系數(shù),通過實(shí)驗(yàn)得出,預(yù)測(cè)精確度對(duì)α和β的變動(dòng)并不敏感,故這里將α和β默認(rèn)設(shè)置為0.5。
文中在COCO數(shù)據(jù)集上對(duì)模型進(jìn)行訓(xùn)練與測(cè)試。首先,利用COCO2017train對(duì)模型進(jìn)行訓(xùn)練,然后使用COCO2017test和COCO2017val對(duì)提出的模型進(jìn)行測(cè)試和驗(yàn)證。對(duì)于語義分割分支,文中使用COCO stuff數(shù)據(jù)集中的訓(xùn)練標(biāo)簽進(jìn)行訓(xùn)練。由于COCO數(shù)據(jù)集中并不包含邊緣檢測(cè)的標(biāo)簽信息,所以需要通過COCO數(shù)據(jù)集中的分割標(biāo)簽生成邊緣標(biāo)簽。對(duì)于每一張圖片,首先遍歷該圖片中所有目標(biāo)的掩模標(biāo)簽,并將每個(gè)掩模賦予不同的非零值后合并成與原圖像大小相同的掩模圖,未被掩模標(biāo)記的部分值為0。然后,基于掩模圖判斷圖中的每個(gè)像素是否為邊緣,若一個(gè)像素相鄰的四個(gè)像素(上,下,左,右)不為同一個(gè)值,則將該像素記為邊緣。對(duì)數(shù)據(jù)的其他處理與Mask R-CNN模型相同。文中以不同的IOU閾值(0.50~0.95,步長(zhǎng)為0.05)及不同大小目標(biāo)的平均精度(mAP)作為評(píng)價(jià)標(biāo)準(zhǔn)。
使用2個(gè)Tesla P100 GPU進(jìn)行實(shí)驗(yàn),實(shí)驗(yàn)?zāi)P褪褂肞ytorch進(jìn)行搭建。訓(xùn)練時(shí)使用隨機(jī)梯度下降(SGD)對(duì)模型進(jìn)行優(yōu)化,初始學(xué)習(xí)率設(shè)置為0.005,動(dòng)量設(shè)置為0.9,權(quán)重衰減系數(shù)設(shè)置為0.000 1,共迭代12次,學(xué)習(xí)率在第8和第11次迭代時(shí)降低為原來的0.1倍。用于對(duì)照的基線模型使用官方開源代碼在相同的實(shí)驗(yàn)環(huán)境下運(yùn)行,訓(xùn)練參數(shù)與官方代碼相同。文中模型與Mask R-CNN在實(shí)驗(yàn)中均使用Resnet-50-FPN作為骨干網(wǎng)絡(luò)。
為了進(jìn)一步驗(yàn)證文中提出模型的有效性,將其與Mask R-CNN模型進(jìn)行了比較,圖4展示了文中方法與Mask R-CNN分割效果的對(duì)比。可以看出,文中方法的分割結(jié)果邊緣上與目標(biāo)更加貼合,缺失和冗余更少,例如在對(duì)照組(a)中,與文中模型的長(zhǎng)頸鹿分割結(jié)果相比,Mask R-CNN的長(zhǎng)頸鹿分割結(jié)果在足部邊緣處有多處明顯的缺失,且脖頸處有較明顯的冗余。此外,文中模型的分割結(jié)果對(duì)相鄰目標(biāo)的邊界區(qū)分更加清晰,例如在對(duì)照組(d)中,Mask R-CNN的分割結(jié)果與文中模型相比,在左邊人物的肩膀和右邊人物手臂的交界處,兩個(gè)目標(biāo)的像素出現(xiàn)了嚴(yán)重的重疊,無法辨別出明顯的邊界。
圖4 Mask R-CNN(上)與文中模型(下)的分割效果對(duì)比
Mask R-CNN與文中模型檢測(cè)與分割的評(píng)價(jià)結(jié)果分別如表1和表2所示??梢钥闯觯闹心P拖啾萂ask R-CNN在檢測(cè)和分割的精度上都得到了提升,bbox與mask的mAP分別提升了1.2%與1.0%。其中對(duì)于大物體的分割精度提升最為顯著,mAPL與Mask R-CNN相比提升了1.6%,但對(duì)于小物體的檢測(cè)與分割精度提升較低。對(duì)該現(xiàn)象進(jìn)行了分析,認(rèn)為大物體所包含的邊緣輪廓特征較為豐富,且COCO數(shù)據(jù)集中大物體的分割標(biāo)簽在邊緣細(xì)節(jié)上刻畫得比較細(xì)致,因此邊緣檢測(cè)分支更容易在大物體中提取到豐富的邊緣信息,從而能夠在大物體的分割任務(wù)上取得較大的提升。而小物體的邊緣輪廓較為模糊,且COCO數(shù)據(jù)集中小物體的分割標(biāo)簽與大物體相比較為粗糙,因此邊緣檢測(cè)分支和語義分割分支在小物體上無法提取到更多的特征,故模型在小物體上的表現(xiàn)與原Mask R-CNN相比提升較小。
表1 COCO2017檢測(cè)結(jié)果比較
表2 COCO2017分割結(jié)果比較
基于Mask R-CNN提出了一種多特征融合的實(shí)例分割方案。該方法在Mask R-CNN的基礎(chǔ)上加入了邊緣檢測(cè)和語義分割分支,分別用于提取帶有更豐富邊緣信息和語義信息的特征圖,并融合特征金字塔的多級(jí)特征得到包含更多信息的新特征用于檢測(cè)和分割任務(wù),提高了檢測(cè)和分割的精度。實(shí)驗(yàn)結(jié)果表明,在COCO數(shù)據(jù)集上,與Mask R-CNN相比文中模型的box AP提升了1.2%,mask AP提升了1.0%。該模型對(duì)小目標(biāo)的檢測(cè)和分割精度提升較小,在今后的工作中將繼續(xù)探究并加以改進(jìn)。