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