鄭立冬,滕書華,譚志國,元志安,馬燕新
(1.河北省遷安市職業(yè)技術教育中心,河北 遷安 064400; 2.湖南第一師范學院 電子信息學院,湖南 長沙 410205;3.國防科技大學 氣象海洋學院,湖南 長沙 410073)
圖像分割技術是計算機視覺領域重要的研究方向。傳統(tǒng)分割算法僅僅從人類的直觀視覺特征出發(fā),針對圖像的顏色分布、紋理特征、點特征來進行分割和分類,其分割效果極大受限于不同場景。隨著深度學習的推廣和發(fā)展,圖像分割進入全新的發(fā)展時期,Facebook AI研究院[1]于2018年提出全景分割的概念,并給出相關基準。相比于傳統(tǒng)的語義分割和實例分割算法,全景分割任務需要在對圖像像素點分類的同時區(qū)分不同實例并給出識別號。全景分割將語義和實例分割的優(yōu)點進行了有效結合,既可以得到圖像所有物體的分類結果,又可以區(qū)分不同物體實例個體,即同時實現(xiàn)了圖像背景語義信息和前景實例對象分割的同時處理。
全景分割任務主要分為三個部分:特征提取、語義與實例分割分支和信息融合。通過對輸入圖像進行特征提取操作,為后續(xù)分割過程提供特征信息。主干網(wǎng)絡ResNet[2]作為經(jīng)典的特征提取網(wǎng)絡模塊,通過殘差結構,在層數(shù)增加時依舊可以提升網(wǎng)絡收斂性,為高級語義特征提取和分類提供了可行性。SENet[3]通過加入注意力機制,得到特征重要程度與特征之間的連接關系,使模型更加關注信息量大的特征。語義與實例分割分支分別進行語義分割和實例分割,提供語義類別和實例信息,常用網(wǎng)絡結構為PSPNet[4]和Mask R-CNN[5]。信息融合部分將語義類別和實例信息進行融合,得到最終的全景分割結果。在融合過程中,主要有啟發(fā)式算法和全景頭部(Panoptic Head)兩種方法,啟發(fā)式算法可以在有限時間給出相對不錯的結果,但全景頭部結構可以得到與語義和實例分割結果一致性較高的融合結果,例如UPSNet[6]與OCFusion[7]算法。目前的全景分割算法大多聚焦于提高所有種類的平均分割精度,忽略了不同任務對于不同語義分割結果的需求和重視程度不同,進而導致很多全景分割的精度不理想,實用性不強。本文針對不同的語義類別,提出一種基于注意力機制的語義增強損失函數(shù)和全景分割方法,以提高對重要語義類別的分割精度,進而提高分割結果的實用性。
全景分割的損失函數(shù)通常由語義分割子分支損失函數(shù)和實例分割子分支損失函數(shù)結合構成:
L=αLsemantic+βLinstance
(1)
式中,Lsemantic為語義分割子網(wǎng)絡損失函數(shù);Linstance為實例分割子網(wǎng)絡損失函數(shù);α和β為權重系數(shù)。該傳統(tǒng)損失函數(shù)針對所有語義種類給出了相同的損失代價,導致不同任務中重要性較高語義信息準確性不高。為解決該問題,本文提出一種基于注意力機制的語義增強損失函數(shù),來區(qū)分不同重要性的語義信息,并提高重要語義信息的分類精度。本文仍然采取分開計算損失函數(shù)的結構:
L=λ1Lsemantic+λ2Linstance
(2)
其中,λ1為語義分割權重系數(shù);λ2為實例分割權重系數(shù)。因為兩個分支的損失設計具有不同規(guī)模和規(guī)范化策略,因而通過加權來進行不同損失校正。
在全景分割中,語義分割是決定語義分類的關鍵因素,所以主要對Lsemantic進行重新設計。常用于語義分割的損失函數(shù)有Cross-Entropy Loss[8]和Focal Loss[9],Focal Loss具有更高的準確率,Cross-Entropy Loss則具有更高的召回率,本文選用Cross-Entropy Loss來作為損失函數(shù)基準。Cross-Entropy Loss表示實際輸出與期望輸出之間的距離,用以刻畫預測值與真值相似度,交叉熵越小,兩個概率分布越接近,傳統(tǒng)定義為:
(3)
其中,qi,j和pi,j都是長度為C(分類總數(shù))的one-hot編碼;qi,j為(i,j)處的真值向量,正確語義標簽位置標注為1,其他標注為0;pi,j為(i,j)處的預測向量,每個數(shù)組元素對應相應分類預測概率;H和W分別為圖像的高和寬。
對語義分割來說,交叉熵損失并不理想。因為對一張圖來說,交叉熵損失是每一個像素損失的和,它并不鼓勵鄰近像素保持一致。此外,交叉熵損失無法在像素間采用更高級的結構,所以交叉熵最小化的標簽預測一般都是不完整或者是模糊的,它們都需要進行后續(xù)處理。
在不同任務需求中,不同物體的語義信息往往重要性程度不同,所以需要對分類的語義信息進行重要程度的劃分。如圖1所示,本文在分割過程中加入注意力機制,將語義種類劃分為四個等級,重要程度從R4到R1依次降低。其劃分依據(jù)以回環(huán)檢測任務為例:相比于動態(tài)物體(R2和R1),靜態(tài)物體(R4和R3)能夠提供更多的可靠魯棒的參考信息;靜態(tài)的實例物體(things,R4)又比靜態(tài)背景(stuff,R3)更具有參考價值和路標功能。動態(tài)物體中,相較于車輛等物體(部分情況為靜止,R2),人和動物(R1)屬于高頻移動物體,且出現(xiàn)頻次較高,屬于干擾信息。
圖1 語義重要性等級劃分示意圖
根據(jù)分組定義向量V1、V2、V3和V4,分別儲存4個分組中物體分類的交叉熵損失。例如第i組、第j個像素的損失值定義為:
(4)
式中,Oc,i,j為圖像(i,j)處輸出c分類可能性的張量;qc是第c個元素為1的one-hot編碼。同樣,定義W1、W2、W3和W4四個向量來記錄4個分組中物體分類對應的損失權重,利用損失權重來有效抑制分類失衡問題。下面給出Wi的定義為:
(5)
利用加權操作來調整學習速度之后,設計重要性矩陣Mt來完成對不同語義信息的損失函數(shù)設定,其定義方式如圖2所示。
(a)M1 (b)M2 (c)M3
重要性矩陣Mt主要有三部分:M1、M2和M3,Mt的大小為H×W。與圖1一致,矩陣中第1行區(qū)域代表R1、第2行區(qū)域代表R2、第3行區(qū)域代表R3、第4行區(qū)域代表R4。矩陣中,1代表重要性高,0代表重要性低。例如R4所包含的1數(shù)量最多,代表R4包含的物體分類最重要。基于Mt定義重要性系數(shù)θ(Mt)(t=1,2,3)定義為:
(6)
式中,E為全1矩陣(幺矩陣);γ∈+為調參,本文實驗取0.5,G為輸出Oc,i,j在圖像(i,j)處真值分類標簽對應的預測概率;⊙運算表示矩陣對應元素相乘。γ取值決定了θ(Mt)的大小。當γ放大,輸出G與Mt之間的差距便會擴大,尤其當Mt=1時。
語義增強損失函數(shù)的設計原則是提高對重要物體損失偏差的敏感性,利用圖3所示結構來計算損失值。
圖3 損失函數(shù)計算結構
R1所在分組的重要性最低,設置R1組的重要性系數(shù)為1;R2組的重要性系數(shù)為θ(M1)+1;R3組的重要性系數(shù)為(θ(M1)+1)(θ(M2)+1);R4組的重要性系數(shù)為(θ(M1)+1)(θ(M2)+1)(θ(M3)+1)。最后,語義分割損失函數(shù)計算公式為:
(7)
實例分割子分支的損失函數(shù)設計由三部分組成:分類損失Lclass、邊界損失Lbox和掩碼損失Lmask。Lclass和Lbox由采樣的感興趣區(qū)域(Region of Interest,RoIs)數(shù)量歸一化[10],Lmask通過前景RoIs數(shù)量歸一化[11]。給出實例分割子網(wǎng)絡的損失函數(shù)Linstance定義為:
Linstance=Lclass+Lbox+Lmask
(8)
最終,語義增強損失函數(shù)定義為:
L=λ1Lsemantic+λ2(Lclass+Lbox+Lmask)
(9)
通過調整權重系數(shù)λ1和λ2,可實現(xiàn)對語義和實例子分支的不同側重,同時也可以分別對兩個獨立任務模塊進行單模型訓練,且計算量減半。當設計λ1=0,即實例分割單模型訓練;當λ2=0,即語義分割單模型訓練。
本文構建全景分割的思路是利用特征金字塔網(wǎng)絡(Feature Pyramid Network,FPN)[12]來修改Mask R-CNN,其結構思路如圖4所示:完成全景分割任務的網(wǎng)絡結構需滿足如下條件:分辨率足夠高以解析微小結構;語義編碼足夠多以準確預測物體分類;具備多尺度信息,以在不同分辨率上進行預測。FPN(初始用于物體檢測)具備高分辨、豐富的多尺度特征提取的作用,因此可以通過附加語義分割網(wǎng)絡來完成全景分割任務。如圖4所示,FPN由兩部分組成:多種空間分辨率特征的標準網(wǎng)絡(本文應用ResNet[2])和一個帶有橫向連接的自上而下的輕型通道。自上而下的通道從最深層網(wǎng)絡開始,逐步進行上采樣,同時從自下而上的路徑獲取更高分辨率的特征轉換。
圖4 全景分割網(wǎng)絡示意圖
FPN結構可以與基于區(qū)域的物體檢測器直接相連(尤其是相同維度金字塔結構)。Faster R-CNN[10]在不同金字塔層級上執(zhí)行RoIs匯集,并應用共享網(wǎng)絡預測每個區(qū)域的精煉框和分類標簽。如圖5所示,使用Mask R-CNN來獲得實例分割結果,通過添加FCN(Full Convolutional Networks)分支來擴展Faster R-CNN[10],以預測候選區(qū)域的二進制分割掩碼。
圖5 實例分割分支示意圖
圖6 語義分割分支示意圖
為了利用FPN特征來獲取語義分割結果,利用Panoptic FPN[13]中提出的一種設計方式,將FPN的所有金字塔等級的特征信息合并。 FPN最頂層為1/32分辨率比例,利用三次上采樣操作得到1/4分辨率比例的特征圖,其中每個上采樣操作由3×3卷積、群體規(guī)范、ReLU和2倍雙線性上采樣組成。
在分辨率比例分別為1/16,1/8和1/4的FPN上重復此操作。每層的上采樣結果是相同的1/4分辨率比例的特征圖,之后按元素求和。最終加入4倍雙線性上采樣和1×1卷積來獲取與原始圖像相同分辨率的像素分類標簽。除了填充物(stuff)類之外,在這個分支中增加一個特殊的“其他”類,以作為物體對象的額外像素點輸出,可以避免強行預測像素點的填充物種類,造成誤判。
本文采用的FPN配置每個尺度有256個輸出通道,語義分割分支減少通道數(shù)至128。對于FPN之前的主干網(wǎng)絡,使用批量標準(Batch Norm,BN)[14]在ImageNet[15]上預訓練ResNet[2]模型。在微調時,用固定通道仿射變換來代替BN。
全景輸出格式[16]需要為每個圖像像素分配類標簽和實例ID(stuff類不具備實例ID)。為避免網(wǎng)絡結構中的實例和語義分割分支輸出重疊問題,加入一種后處理方法,操作方式如下:
(1)不同實例重疊,據(jù)置信度得分進行取舍;
(2)語義和實例分割結果重疊,以實例結果優(yōu)先;
(3)刪除標注的“其他”類。
下面給出本文基于注意力機制的語義增強損失函數(shù)與全景分割方法步驟如下:
(1)按重要程度將語義種類劃分為若干語義等級,并利用預設初始語義損失函數(shù)對若干語義等級加權學習獲得語義加強損失函數(shù);
(2)利用預設重要性矩陣確定目標語義分割損失函數(shù);
(3)基于預設權重系數(shù)對預設實例分割損失函數(shù)以及目標語義分割損失函數(shù)進行處理得到目標語義增強損失函數(shù);
(4)利用目標語義增強損失函數(shù)對原始圖像處理得到實例分割結果以及語義分割結果;
(5)根據(jù)預設重疊結果剔除規(guī)則對實例分割結果以及語義分割結果進行處理,輸出最終目標分割結果。
為對算法進行系統(tǒng)的測算,采用COCO數(shù)據(jù)集作為全景分割訓練和測試的數(shù)據(jù)集。COCO數(shù)據(jù)集提供80類語義種類,基本覆蓋生活中常見物體的學習和分類。同時該數(shù)據(jù)集也包含了不同分辨率、不同視角和光線下的數(shù)據(jù)。
全景分割實驗中,通常使用6種評價指標:平均準確度(Average Precision,AP)、平均召回率(Average Recall,AR)、交并比(Intersection-over-Union,IoU)、分割質量(Segmentation quality,SQ)、識別質量(recognition qulity,RQ)、全景分割質量(Panoptic quality,PQ)。上述評價指標的相關定義如下:
3.1.1 平均準確度
平均準確度(AP)用來反映語義種類的分割準確程度,其定義為:
(10)
式中,TP為真陽性數(shù)值(true positives),表示預測正例樣本正確的個數(shù);FP為假陽性數(shù)值(false positives),表示預測正例樣本錯誤的個數(shù)。AP越高,說明模型的分割效果越好。
3.1.2 平均召回率
平均召回率(AR)用來反映語義種類的真正例召回比例,其定義為:
(11)
式中,FN為假陰性數(shù)值(false negatives),表示預測反例樣本錯誤的個數(shù)。AR越高,說明模型的分割效果越好。
3.1.3 交并比
交并比(IoU)是模型對某一類別預測結果和真實值的的交集與并集比值,其定義為:
(12)
在檢測過程中,當IoU大于閾值,則判定檢測結果為正,反之判錯。一般約定,IoU=0.5是閾值,loU越高,說明模型的分割效果越好。
平均交并比(mIoU)是模型對每一類預測的結果和真實值的交集與并集的比值,求和再平均的結果,其定義為:
頻權交并比(FWIoU)是根據(jù)每一類出現(xiàn)的頻率設置權重,權重乘以每一類的IoU并進行求和,其定義為:
3.1.4 分割質量
分割質量(SQ)指標用來測評語義分割網(wǎng)絡,是匹配實例中常用的平均IoU度量。其定義為:
(13)
3.1.5 識別質量
識別質量(RQ)用來測評實例分割子網(wǎng)絡,即計算全景分割中每個實例物體識別的準確性。其定義為:
(14)
3.1.6 全景分割質量
全景分割質量(PQ)指標聯(lián)合分割質量參數(shù)和識別質量參數(shù)來對整體全景分割網(wǎng)絡框架進行評價,其定義為:
(15)
首先討論梯度平衡的損失系數(shù)(公式9)對分割質量的影響。實驗過程中,因為語義分割子網(wǎng)絡是語義增強損失函數(shù)的主要作用點,所以將實例分割子網(wǎng)絡系數(shù)λ2設置為1,通過測試不同語義分割損失函數(shù)系數(shù)λ1來進行分割預測,測試結果如表所示。PQth表示物體(things)的分割質量,PQst表示填充物(stuff)的分割質量。從表1可以看出,λ1過大或過小,網(wǎng)絡平衡狀態(tài)都會被打破,導致兩個子網(wǎng)絡學習效率均降低。另外當λ1過大,例如λ1=0.6時,填充網(wǎng)絡傳入基礎網(wǎng)絡的梯度幅值過大,此時RQ=50.94,大大降低了實例分割子網(wǎng)絡的預測準確性。該實驗表明,當λ1=0.4時,實例與語義分割網(wǎng)絡處于最佳平衡位置,分割質量達到43.02 %。
表1 不同分割損失系數(shù)權重對應的分割實驗結果
找到最佳參數(shù)之后,采用2.2節(jié)所述的網(wǎng)絡結構,進行語義增強損失函數(shù)和交叉熵損失函數(shù)的語義分割子分支對比實驗。保持兩組實驗的超參配置不變,其實驗結果如表所示。從表2可以看出,語義增強損失函數(shù)相比于交叉熵損失函數(shù),IoU(即mIoU和FWIoU)指標有小幅度提升,填充物(stuff類)分割表現(xiàn)提高比較明顯,全景分割質量PQ提高0.97 %,分割質量SQ提高了4.30 %,這是因為在分割過程中,填充物代表的語義分類大多被分到了較高的優(yōu)先級,所以填充物分割質量提升較大。
表2 交叉熵損失函數(shù)與語義增強損失函數(shù)語義分割對比試驗
為更加直觀地測試語義增強損失函數(shù)在全景分割過程的作用,下面按照圖1中的語義種類等級對全景分割進行分組實驗,表給出了不同語義分組的分割結果。從表3可以看出,相比于交叉熵損失函數(shù),語義增強損失函數(shù)對R4中的電視語義分類準確度提高了3.93 %,對R4組內均值提高了2.17 %,對R3組內均值提高了2.13 %,語義增強損失函數(shù)有效提高了R3和R4分組中的語義分類準確度。在R1和R2組中,語義增強損失函數(shù)的分割準確度和交叉熵損失函數(shù)基本持平,語義增強損失函數(shù)對R2組內均值提高了0.49 %,對R1組內均值降低了0.45 %。綜合上述結果可知,語義增強損失函數(shù)有效提高了優(yōu)先級較高的語義分類的分割準確度,而其他非重要目標的語義分類準確性,少量類別會有輕微程度下降,達到了預期設計函數(shù)目標。
表3 語義增強損失函數(shù)與交叉熵損失函數(shù)全景分割AP(%)結果對比
圖7給出了語義增強損失函數(shù)與交叉熵損失函數(shù)在不同實測環(huán)境下的全景分割結果。由圖7可知,交叉熵損失函數(shù)對圖7(1)中的綠化帶以及電線桿上的靜態(tài)標識、(2)中紅綠燈旁邊的靜態(tài)標識以及背景中的天空、(3)中路邊的限速標識等分割有誤,而語義增強損失函數(shù)則有效的提高了上述場景中靜態(tài)物體的分割效果。
圖7 語義增強損失函數(shù)與交叉熵損失函數(shù)全景分割結果對比圖
為了進一步驗證本文分割網(wǎng)絡在全景分割中的性能,我們選用COCO全景分割挑戰(zhàn)賽上出現(xiàn)的Artemis、LeChen、MPS-TU Eindhoven[17]、MMAP-seg以及Facebook AI工作室提出的Panoptic FPN[13]方法與本文網(wǎng)絡進行對比,實驗結果如表4所示。由表4可以看出,本文網(wǎng)絡對填充物的分割質量PQst明顯優(yōu)于其他5種方法,比效果較好的Panoptic FPN方法還高1.5;物體分割質量PQth稍稍低于Panoptic FPN方法,但明顯高于其他四種方法;本文分割網(wǎng)絡的全景分割質量均優(yōu)于其他5種方法。因此,本文設計的帶有語義增強損失函數(shù)的分割網(wǎng)絡在COCO數(shù)據(jù)集上取得了較好的分割效果。
表4 COCO數(shù)據(jù)庫中全景分割實驗對比
為了提高不同應用場景下重要目標分割的準確度和可靠性,本文提出一種基于注意力機制的語義增強損失函數(shù)和全景分割方法。通過增加注意力機制,增強對任務關注語義信息的敏感度,提高對特定物體和背景的分類精度;同時設計相應的全景分割網(wǎng)絡,提高對所需物體種類的分割精度。最后通過設計重疊結果剔除規(guī)則避免了網(wǎng)絡結構中的實例和語義分割分支輸出的重疊問題。對COCO數(shù)據(jù)集的對比實驗表明,本文提出的語義增強損失函數(shù)有效提高了優(yōu)先級較高語義類別的分割效果,為不同應用場景的全景分割提供了更加高質量的語義信息,進而增強了全景分割方法的實用性。