徐博文, 盧奕南
(吉林大學(xué) 計(jì)算機(jī)科學(xué)與技術(shù)學(xué)院, 長春 130012)
隨著深度學(xué)習(xí)方法的快速發(fā)展, 計(jì)算機(jī)視覺任務(wù)中的實(shí)例分割方法也取得了較大進(jìn)展. 實(shí)例分割在運(yùn)輸、 醫(yī)學(xué)病變組織分割、 工業(yè)缺損分割等領(lǐng)域應(yīng)用廣泛. 以目標(biāo)檢測(cè)任務(wù)為例, 其目的是實(shí)現(xiàn)目標(biāo)對(duì)象的準(zhǔn)確定位和識(shí)別功能, 而使用檢測(cè)框表示對(duì)象的方法并不準(zhǔn)確, 因?yàn)榭騼?nèi)包含了大量背景信息, 同時(shí)無法獲得對(duì)象的準(zhǔn)確邊界信息. 實(shí)例分割可逐像素地分離目標(biāo)對(duì)象, 并根據(jù)目標(biāo)對(duì)象的實(shí)例類別進(jìn)行聚類, 從而更準(zhǔn)確地分離場(chǎng)景中的目標(biāo)對(duì)象.
基于實(shí)例分割技術(shù)的發(fā)展, 無人駕駛技術(shù)也得到極大改進(jìn), 并開始應(yīng)用于交通領(lǐng)域. 通過匹配識(shí)別算法[1]或改進(jìn)實(shí)例分割方法[2]可以為無人駕駛技術(shù)獲取更廣泛而精確的環(huán)境信息, 如車輛、 行人和駕駛工具周圍的障礙物等, 以實(shí)現(xiàn)更安全、 更可靠的導(dǎo)航和控制. 常見的目標(biāo)檢測(cè)方法有YOLO[3]和Faster R-CNN[4]等, 其多數(shù)使用邊界框顯示或分割檢測(cè)結(jié)果, 但這種方法不能準(zhǔn)確地表示目標(biāo)在場(chǎng)景中的位置信息, 誤差較大.
傳統(tǒng)的實(shí)例分割方法有Mask R-CNN[5],Yolact[6]和PolarMask[7]等, 其多數(shù)先采用檢測(cè)方法區(qū)分不同的實(shí)例, 再利用語義分割方法在不同的實(shí)例區(qū)進(jìn)行逐像素地標(biāo)記劃分. 但這種方法在對(duì)高流量的車輛遮擋場(chǎng)景以及車輛遠(yuǎn)景的問題處理上, 通常效果較差. 針對(duì)上述問題, 本文提出一種基于改進(jìn)SOLO[8]模型的分割方法, 由于SOLO模型具有根據(jù)實(shí)例的位置和大小為實(shí)例中每個(gè)像素分配類別的特點(diǎn), 從而可將實(shí)例分割轉(zhuǎn)化為一個(gè)單次分類問題. 但SOLO模型的設(shè)計(jì)機(jī)制會(huì)出現(xiàn)當(dāng)兩個(gè)實(shí)例的中心都投影到同一個(gè)網(wǎng)格中時(shí), 只能識(shí)別出一個(gè)實(shí)例而忽略了另一個(gè)實(shí)例的問題. 針對(duì)該問題本文對(duì)其進(jìn)行改進(jìn), 利用注意力機(jī)制可幫助模型過濾特征信息, 并提高模型處理實(shí)例分割問題的能力, 通過設(shè)計(jì)聯(lián)合注意力模塊提高模型對(duì)區(qū)域內(nèi)相應(yīng)對(duì)象的關(guān)注能力, 同時(shí)也提高模型對(duì)多層次特征的表達(dá)能力, 從而進(jìn)一步過濾掉冗余或不相關(guān)的干擾信息, 提升模型對(duì)多尺度實(shí)例的分割性能. 模塊采用串聯(lián)的方式融合通道注意力和空間注意力, 從而更好地選擇特征信息, 提高模型對(duì)細(xì)節(jié)信息的掌握能力. 同時(shí), 注意力模塊采用殘差結(jié)構(gòu)動(dòng)態(tài)調(diào)整注意力模塊的復(fù)雜度, 以保證模型的高效性能. 通過在數(shù)據(jù)集Cityscapes上的實(shí)驗(yàn)結(jié)果表明, 本文模塊結(jié)構(gòu)可顯著提高模型的實(shí)例分割能力.
在語義分割中, 目前主流的方法是使用全卷積神經(jīng)網(wǎng)絡(luò)(FCN)[9]輸出N個(gè)通道的密集預(yù)測(cè). 每個(gè)輸出通道負(fù)責(zé)其中一個(gè)語義類別, 語義分割的目的是區(qū)分不同的語義類別. 而SOLO網(wǎng)絡(luò)[8]進(jìn)一步引入了實(shí)例類別的概念, 以區(qū)分圖像中的物體實(shí)例, 即量化中心位置和物體尺寸, 使利用位置分割物體成為可能. 該網(wǎng)絡(luò)首先將輸入圖像劃分為S×S個(gè)網(wǎng)格, 得到S2個(gè)中心位置類別. 根據(jù)對(duì)象中心, 每個(gè)對(duì)象實(shí)例被分配到其中一個(gè)網(wǎng)格作為其中心位置的類別. 然后將中心位置的類別編碼到通道軸上, 類似于語義分割中的語義類別. 每個(gè)輸出通道是對(duì)每個(gè)中心位置類別的響應(yīng), 對(duì)應(yīng)通道的特征圖可預(yù)測(cè)屬于該類別的實(shí)例掩碼. 因此, 結(jié)構(gòu)化的幾何信息自然存儲(chǔ)在空間矩陣中. 實(shí)際上, 實(shí)例類別類似于實(shí)例的對(duì)象中心位置. 因此, 通過將每個(gè)像素歸入其實(shí)例類別, 即相當(dāng)于使用回歸方法由每個(gè)像素預(yù)測(cè)對(duì)象中心. 將位置預(yù)測(cè)任務(wù)轉(zhuǎn)化為分類而不是回歸任務(wù)的原因是, 在使用分類時(shí), 用固定數(shù)量的通道對(duì)多個(gè)實(shí)例進(jìn)行建模更直接、 更容易, 且不需要依賴分組或?qū)W習(xí)嵌入向量等后續(xù)處理.
在每個(gè)特征金字塔網(wǎng)絡(luò)(FPN)特征層, 附加兩個(gè)子網(wǎng)絡(luò), 一個(gè)用于類別預(yù)測(cè), 一個(gè)用于掩碼分割. 在掩碼分支中, SOLO網(wǎng)絡(luò)連接了橫縱坐標(biāo)和原始特征編碼空間信息. 這里數(shù)字表示空間分辨率和通道. 圖1為假設(shè)了256個(gè)通道的頭部結(jié)構(gòu), 其中箭頭表示卷積或插值, Align表示雙線性插值. 在推理過程中, 掩碼(mask)分支輸出進(jìn)一步向上采樣到原始圖像大小.
圖1 頭部結(jié)構(gòu)
為區(qū)分實(shí)例, SOLO模型采用了按位置分割對(duì)象的基本概念. 輸入圖像在概念上劃分為S×S個(gè)網(wǎng)格.如果一個(gè)對(duì)象的中心落入一個(gè)網(wǎng)格單元, 則網(wǎng)格單元負(fù)責(zé)處理該對(duì)象的mask.因此, 如圖2所示, 模型最后會(huì)輸出S2個(gè)mask. 而第k個(gè)通道負(fù)責(zé)在坐標(biāo)(i,j)位置分割實(shí)例, 其中k=iS+j.
圖2 網(wǎng)絡(luò)結(jié)構(gòu)示意圖
SOLO模型的訓(xùn)練損失函數(shù)由分類損失與mask預(yù)測(cè)損失組成:
L=Lcate+λLmask,
(1)
其中Lcate是針對(duì)語義類別分類的傳統(tǒng)焦點(diǎn)損失(focal loss),Lmask是掩碼預(yù)測(cè)的損失:
(2)
掩碼預(yù)測(cè)損失中的i=k/S,j=k%S, 按從左到右和從上到下的順序索引網(wǎng)格單元格;Npos表示正樣本數(shù)量;p*和mask*分別表示類別目標(biāo)和mask目標(biāo); sgn是階躍函數(shù), 如果pi,j>0, 則其為1, 否則為0;dmask使用Dice損失, 定義為
LDice=1-D(p,q),
(3)
式中D是骰子系數(shù), 定義為
(4)
這里px,y,qx,y為預(yù)測(cè)軟掩碼p和ground truth掩碼q中位于(x,y)處的像素值.
SOLO方法由于其快速、 高效、 精準(zhǔn)的特點(diǎn), 作為當(dāng)前性能表現(xiàn)強(qiáng)大的實(shí)例分割方法, 已廣泛應(yīng)用于自動(dòng)駕駛、 增強(qiáng)現(xiàn)實(shí)、 醫(yī)學(xué)圖像分析和圖像視頻編輯等領(lǐng)域.
由于SOLO方法采用劃分網(wǎng)格的方式, 通過中心點(diǎn)采樣將各實(shí)例分配至各網(wǎng)格, 但在面對(duì)多個(gè)物體落在同一個(gè)網(wǎng)格的情形, 只簡(jiǎn)單地通過特征金字塔網(wǎng)絡(luò)進(jìn)行尺度分配. 因此, 為解決SOLO方法在面對(duì)多目標(biāo)場(chǎng)景下目標(biāo)重疊時(shí)處理效果較差的問題, 本文提出一種基于聯(lián)合注意力機(jī)制的分割方法.
輸入的圖像首先按SOLO方法的設(shè)計(jì)劃分為S×S個(gè)網(wǎng)格. 按照中心采樣的原則, 如果一個(gè)對(duì)象的中心落在一個(gè)網(wǎng)格單元格中, 則該網(wǎng)格負(fù)責(zé)對(duì)應(yīng)于該對(duì)象的mask. 所以該網(wǎng)絡(luò)模型會(huì)輸出S2個(gè)mask, 第k個(gè)通道負(fù)責(zé)坐標(biāo)(i,j)位置的分割實(shí)例, 整個(gè)網(wǎng)絡(luò)模型將掩碼分支分解為mask kernel分支和mask feature分支, 分別學(xué)習(xí)卷積核和卷積特征. 本文在特征金字塔后添加了本文設(shè)計(jì)的聯(lián)合注意力模塊, 相比SE(squeeze-and-excitation)注意力模塊[10], 增添了額外的并行操作以提升對(duì)融合處理后特征所包含的信息. 改進(jìn)的SOLO模型框架如圖3所示.
圖3 改進(jìn)的SOLO模型框架
Mask kernel分支用于學(xué)習(xí)卷積核, 即分類器的權(quán)重位于預(yù)測(cè)頭內(nèi), 與語義類別分支平行. 預(yù)測(cè)頭在FPN輸出的特征圖上預(yù)測(cè). 頭部結(jié)構(gòu)的2個(gè)分支均有4個(gè)卷積層提取特征, 最后一個(gè)卷積層做預(yù)測(cè). 頭部的權(quán)重在不同的特征圖層級(jí)上共享. 通過在kernel分支上的第一個(gè)卷積內(nèi)加入歸一化坐標(biāo), 即在輸入后加入兩個(gè)額外的通道增加空間性. 對(duì)于劃分的每個(gè)網(wǎng)格, kernel分支預(yù)測(cè)D維輸出, 表示預(yù)測(cè)的卷積核權(quán)重,D表示參數(shù)的數(shù)量.生成的權(quán)重取決于網(wǎng)格所在位置.若輸入圖像劃分為S×S個(gè)網(wǎng)格單元, 則輸出空間將為S×S×D.若輸入為H×W×C的特征F, 則輸出為卷積核S×S×D, 其中C是輸入特征的通道數(shù),S是劃分的網(wǎng)格數(shù),D是卷積核的通道數(shù).
Mask feature分支用于學(xué)習(xí)mask特征的表達(dá)能力, 如圖3所示. 由圖3可見, 首先通過骨干網(wǎng)絡(luò)和特征金字塔將提取到的不同層級(jí)特征經(jīng)過本文聯(lián)合注意力模塊處理后, 作為分支的輸入, 輸出是H×W×C的特征掩碼. 整個(gè)SOLO框架中一個(gè)重要的設(shè)計(jì)就是采用了FPN應(yīng)對(duì)不同的尺寸. 將不同層級(jí)的特征融合得到特征掩碼是一個(gè)重要的部分. 生成的特征圖是H×W×C, 再與kernel分支的結(jié)果相乘, 得到的輸出結(jié)果是H×W×S2.
經(jīng)過前兩個(gè)分支的輸出, 生成具體的mask: 對(duì)于在坐標(biāo)(i,j)處的每個(gè)網(wǎng)格, 先獲得卷積核G, 然后將其與特征F卷積得到實(shí)例mask, 最多生成S×S個(gè)mask; 然后使用矩陣非極大值抑制(NMS)方法得到最終的實(shí)例分割結(jié)果.
在前向預(yù)測(cè)過程中, 圖像通過骨干網(wǎng)絡(luò)和特征金字塔得到網(wǎng)格位置的類別分值P(i,j)后, 先用較低的置信度閾值(0.1)篩選一遍結(jié)果, 再進(jìn)行卷積提取mask特征. mask特征與預(yù)測(cè)得到的卷積核進(jìn)行卷積, 再經(jīng)過一個(gè)Sigmoid操作, 然后用0.5的閾值生成雙極型掩碼, 最后使用矩陣NMS, 得到結(jié)果.
注意力機(jī)制方法[10]通過關(guān)注重要的特征, 抑制不重要的特征, 廣泛應(yīng)用于目標(biāo)檢測(cè)任務(wù)中. 其中, 通道注意力旨在關(guān)注有意義的輸入圖像, 為有效計(jì)算通道注意力, 需對(duì)輸入特征圖的空間維度進(jìn)行壓縮, 對(duì)于空間信息的聚合, 常用的方法是平均池化. 而最大池化收集了物體的獨(dú)特特征, 可推斷在更細(xì)通道上的注意力. 所以同時(shí)使用平均池化和最大池化的特征效果更好. 而空間注意力機(jī)制旨在關(guān)注最具信息量的部分, 是對(duì)通道注意力機(jī)制的補(bǔ)充. 為計(jì)算空間注意力, 會(huì)沿通道維度進(jìn)行平均池化和最大池化操作, 然后將其連接生成一個(gè)有效的特征描述符, 再通過卷積層生成空間注意力圖. 受兩種注意力機(jī)制[11]的啟發(fā), 本文采用一種串聯(lián)形式的聯(lián)合注意力機(jī)制, 設(shè)計(jì)一個(gè)聯(lián)合注意力模塊, 融合空間注意力和通道注意力引導(dǎo)mask分支聚焦有意義的像素信息, 抑制無意義的像素信息.
本文設(shè)計(jì)的聯(lián)合注意力機(jī)制引導(dǎo)的mask頭, 是一種將通道注意力與空間注意力串聯(lián)的設(shè)計(jì). 通道注意力模塊結(jié)構(gòu)如圖4所示. 由圖4可見, 輸入一個(gè)H×W×C特征, 首先分別執(zhí)行全局最大池化和平均池化的操作以獲得兩個(gè)通道的池化特征; 然后將其輸入到一個(gè)兩層的多層感知機(jī)(MLP)神經(jīng)網(wǎng)絡(luò), 第一層用ReLU作為激活函數(shù), 兩層神經(jīng)網(wǎng)絡(luò)共享系數(shù); 再將得到的兩個(gè)特征相加, 用Sigmoid作為激活函數(shù), 得到權(quán)重系數(shù)MC; 最后用MC乘以輸入特征F得到縮放后的新特征. 整體計(jì)算過程如下:
圖4 通道注意力模塊結(jié)構(gòu)
MC(F)=σ(MLP(AvgPool(F))+MLP(MaxPool(F))).
(5)
本文對(duì)空間注意力模塊的設(shè)計(jì)是先通過提取預(yù)測(cè)的特征信息后, 再將這些特征輸入到4個(gè)卷積層和空間注意力模塊, 如圖5所示. 由圖5可見, 空間注意力模塊首先沿通道軸分別通過平均池化和最大池化生成對(duì)應(yīng)的池化特征Pavg,Pmax∈1×W×H, 用拼接函數(shù)對(duì)二者進(jìn)行聚合, 然后輸入一個(gè)3×3的卷積層, 再用Sigmoid函數(shù)進(jìn)行歸一化處理, 得到權(quán)重系數(shù)MS, 最后用MS乘以輸入特征F得到新特征.整體計(jì)算過程如下:
圖5 空間注意力模塊結(jié)構(gòu)
MS(F)=σ(f3×3(AvgPool(F),MaxPool(F))).
(6)
對(duì)于通道注意力機(jī)制與空間注意力機(jī)制的排列順序問題, 在空間的角度, 通道注意力是全局的, 而空間注意力是局部的.對(duì)比研究表明, 按順序生成注意力圖比并行生成注意力圖更好.所以本文設(shè)計(jì)的聯(lián)合注意力模塊采用串行的方式排列通道注意力模塊與空間注意力模塊.聯(lián)合注意力機(jī)制中的通道注意力子模塊和空間注意力子模塊的串行連接可表示為
F′=MS(MC(F)).
(7)
經(jīng)過特征金字塔融合后的特征F首先使用殘差結(jié)構(gòu)將特征F與通道注意力模塊處理后的MC(F)逐個(gè)元素相乘, 然后用殘差結(jié)構(gòu)將通道注意力特征與空間注意力模塊逐個(gè)元素處理.這里使用殘差結(jié)構(gòu)可動(dòng)態(tài)地調(diào)整網(wǎng)絡(luò)結(jié)構(gòu)的復(fù)雜度, 優(yōu)化了模塊的結(jié)構(gòu).最后得到串行連接的注意力特征F′.
針對(duì)城市道路場(chǎng)景的實(shí)例分割任務(wù), 本文采用更具代表性的數(shù)據(jù)集Cityscapes. 與研究實(shí)例分割的通用數(shù)據(jù)集COCO相比, 數(shù)據(jù)集COCO針對(duì)道路環(huán)境的數(shù)據(jù)較少, 對(duì)于自動(dòng)駕駛和移動(dòng)機(jī)器人的應(yīng)用并不適合. 而數(shù)據(jù)集Cityscapes應(yīng)用較廣, 數(shù)據(jù)質(zhì)量較高, 其含有5 000張?jiān)诔鞘协h(huán)境中駕駛場(chǎng)景的圖像, 有19個(gè)類別的密集像素標(biāo)注, 其中8個(gè)具有實(shí)例標(biāo)注. 數(shù)據(jù)集Cityscapes是一個(gè)大規(guī)模數(shù)據(jù)集, 其中包含一組不同的立體視頻序列, 記錄了50個(gè)不同城市的街道場(chǎng)景. 該數(shù)據(jù)集包含來自50個(gè)不同城市街道場(chǎng)景中記錄的多種立體視頻序列, 除2萬個(gè)弱標(biāo)注外, 還包含5 000幀高質(zhì)量標(biāo)注. 因此, 該數(shù)據(jù)集的數(shù)量級(jí)較大. 數(shù)據(jù)集Cityscapes共有fine和coarse兩套測(cè)評(píng)標(biāo)準(zhǔn), 前者提供了5 000張精細(xì)標(biāo)注的圖像, 后者提供了5 000張精細(xì)標(biāo)注和2萬張粗糙標(biāo)注的圖像.
為方便處理, 本文將數(shù)據(jù)集Cityscapes轉(zhuǎn)換成數(shù)據(jù)集COCO的格式. 數(shù)據(jù)集Cityscapes提供的標(biāo)注信息有彩色語義圖、 實(shí)例ID單通道圖、 語義ID單通道圖以及所有語義Polygon的文本描述. 而數(shù)據(jù)集COCO標(biāo)注文件中包含了info,licenses,categories,images和annotations, 本文代碼預(yù)先設(shè)定前三項(xiàng), 將categories根據(jù)需要進(jìn)行了修改, 保留了5個(gè)類別, 分別是car,pedestrian,truck,bus,rider, 對(duì)應(yīng)數(shù)據(jù)集Cityscapes中原類別ID的24~28.
本文使用AP(平均精度)和mAP(全量平均精度)作為在數(shù)據(jù)集Cityscapes上衡量模型實(shí)例分割性能的指標(biāo), AP和mAP的計(jì)算公式分別為
(8)
(9)
其中p(r)表示P-R曲線與橫縱坐標(biāo)軸圍成的面積,C表示類別數(shù)量.P-R曲線是一個(gè)表示預(yù)測(cè)率與回歸率關(guān)系的曲線, 通過將樣本按預(yù)測(cè)為正例的概率值從大到小排序, 從第一個(gè)開始, 逐個(gè)將當(dāng)前樣本點(diǎn)的預(yù)測(cè)值設(shè)為閾值, 確定閾值后, 即可得出混淆矩陣各項(xiàng)的數(shù)值, 然后計(jì)算出P和R, 形成以R為橫坐標(biāo)、P為縱坐標(biāo)的曲線.
除AP和mAP外, 本文衡量指標(biāo)還包括AP50,AP75,APS,APM和APL, 其中AP50和AP75分別表示0.5和0.75不同的IoU閾值, APS,APM和APL分別表示對(duì)于小、 中、 大不同尺度目標(biāo)的AP值. 這種設(shè)置可充分評(píng)估模型的分割性能.
本文使用detectron2工具搭建模型框架, 在數(shù)據(jù)集Cityscapes上評(píng)估改進(jìn)SOLO模型的性能, 將模型在其上進(jìn)行訓(xùn)練、 測(cè)試和消融研究. 使用掩碼的平均精度AP(平均超過IoU閾值),APS,APM和APL(不同大小的AP)作為衡量模型分割效果的指標(biāo). 所有消融研究均使用本文的改進(jìn)模型和ResNet-101進(jìn)行. 模型的分割結(jié)果如圖6所示.
圖6 模型分割結(jié)果
將本文模型與Mask-RCNN,Centermask,Yolact和SOLO模型在數(shù)據(jù)集Cityscapes上進(jìn)行對(duì)比實(shí)驗(yàn), 實(shí)驗(yàn)結(jié)果列于表1. 實(shí)驗(yàn)結(jié)果表明, 本文模型在精準(zhǔn)度上得到了提升. 由表1可見, 本文模型在小尺度目標(biāo)上的分割效果優(yōu)于其他模型, 同時(shí)平均性能也有提升. 表2列出了本文模型對(duì)注意力機(jī)制的對(duì)比實(shí)驗(yàn)結(jié)果.
表1 不同模型的分割結(jié)果
表2 注意力引導(dǎo)模塊對(duì)比結(jié)果
由表2可見, 聯(lián)合注意力這種通道注意力在前、 空間注意力在后的排列比單獨(dú)的通道注意力和空間注意力取得的效果更好. 圖7為本文方法的收斂趨勢(shì), 其中l(wèi)oss_ins表示Lmask, loss_cate表示Lcate, total_loss表示總損失, lr表示學(xué)習(xí)率.
圖7 損失收斂曲線
綜上所述, 針對(duì)SOLO網(wǎng)絡(luò)特征在多尺度場(chǎng)景下目標(biāo)以及遮擋目標(biāo)分割效果較差的問題, 本文提出了一種基于SOLO實(shí)例分割和聯(lián)合注意力機(jī)制的方法, 提高了視覺特征信息處理的效率與準(zhǔn)確性, 從而有效提高了面向城市道路復(fù)雜場(chǎng)景的分割精度.