陳妍妍,王 海,蔡英鳳,陳 龍,李祎承
(1.江蘇大學汽車與交通工程學院,鎮江 212013;2.江蘇大學汽車工程研究院,鎮江 212013)
近年來,基于圖形數據的并行計算技術和傳感器的快速迭代直接推動了基于深度學習的實例分割算法的發展,并在智能醫療、機器人控制、地理信息系統(GIS)和自動駕駛等領域取得了巨大的進步。實例分割本質上是一項更具細粒度的視覺感知任務,其結合了兩項經典的計算機視覺環境理解子任務:目標檢測[1]和語義分割[2-3]。目標檢測需要以邊界框的形式正確回歸圖像中目標位置和所屬類別,而語義分割需要對每個像素分類。因此實例分割不僅需要區分像素類別,還需要準確分割屬于同一語義類別下不同實例對象,從而為下游決策規劃等任務提供豐富的感知信息[4]。
基于深度學習的實例分割算法主要可以分為4種主流的技術路線[5-6]:基于語義分割的自底向上方法、基于檢測的方法、直接的實例分割方法和基于查詢的方法。基于語義分割的方法[7-9]首先通過逐像素分類生成具有固定語義類別的分割掩碼,然后通過聚類、度量學習等手段將像素分組到單個實例中。該類方法可以更好地保留淺層的細粒度特征和幾何形狀信息,但其后處理操作較為繁瑣,且在對象規模較大且類別較多的復雜工況中準確率較低,因此不太適用于自動駕駛場景。為了不依賴于邊界框或像素嵌入等手段,直接的實例分割法[10-11]通過直接預測實例掩碼和語義類別。基于實例對象的中心位置和尺寸不同這一基本直覺,SOLO 系列[12-13]按照圖像位置分割掩碼。具體來說,將輸入圖像劃分成若干個網格,實例中心所在網格單元負責為該實例的每個像素分配類別。但是當多個物體中心落在同一個網格時,預測的掩碼和類別會出現混淆,進而影響智能汽車的行駛安全性。基于檢測的方法首先通過強大的檢測器[14-17]定位先驗實例,然后在所得的感興趣區域內進行分割[18-23]。得益于目標檢測的發展,該類方法通常精確度更高,因此本文工作仍然遵循基于檢測的實例分割范式。而基于查詢的方法[11]利用自然語言處理中的Transformer 機制,并通過查詢表示感興趣對象。ISTR[24]是首個使用低維掩碼嵌入進行端對端的實例分割。而Queryinst[25]以級聯結構為基礎,通過并行的動態掩碼頭構建檢測和分割的多任務框架。該類方法的核心部件是多頭注意力,其可顯著提升模型性能,但計算資源昂貴。
根據目標定位和掩碼生成所需的階數,目前基于檢測的實例分割方法可以分為單階段方法和二階段方法兩種[26]。基于區域候選網絡[27]的二階段算法精度較高,但是模型的小批量訓練會消耗大量顯存資源并占據較長推理時間,如Mask-RCNN[19]和Cascade Mask R-CNN[28]。而YoLACT[22]、Blend Mask[29]和CondInst[18]等同時進行定位和分割的單階段算法速度較快,遠遠滿足自動駕駛所需的實時性需求,但是精度有所欠缺。Orienmask[30]是一種典型的基于錨框的單階段實時性實例分割算法,其能夠以較快速度運行,但準確率遠低于常見的二階段算法。這種以犧牲精度追求高速度的分割方法對于智能汽車的安全行駛是不可接受的。鑒于此,本文以該網絡為基準進行算法的改進優化工作,使之能夠適用于復雜的交通情況。
實例分割算法的準確率也會受到應用場景的限制。在港口和高速公路這樣的單一封閉場景,分割算法通常具有較好的精確度,而在人類活動密集的城市場景,模型性能會顯著下降,尤其針對嵌入式部署所設計的輕量級分割模型。為了應對現實交通場景的高精度需求,本文使用Cspdarknet53[16]取代原始骨干網絡,通過跨階段的連接方式擴大感受野并進行特征融合生成更密集的特征圖,從而提高網絡的特征提取能力。此外,為了產生更具判別性的特征 表 達,本 文 在 特 征 金 字 塔[31](feature pyramid network,FPN)的基礎上,通過引入自校正卷積[32](self-calibrated convolutions,Sconv),并 優 化 基 于PANet 網絡[33]的多條語義信息傳播路徑和池化模塊,提出了一個全新的雙路自校正金字塔池化模塊。其中Sconv 可以為每個像素位置建立空間和通道維度的上下文關系,并通過多尺度信息編碼實現長距離依賴建模。同時添加的語義信息傳播路徑可以自底向上地傳播淺層的細節信息,恢復實例分割所需的邊緣信息。
事實上,真實的城市交通場景還存在大量具有不同尺寸且像素分布差異較大的實例對象。大尺寸物體由于其像素占比大且特征豐富,通常較容易識別。而類似行人、騎行者等小目標,由于其特征的稀疏性,分割任務通常較為困難。此外,由于實例對象距離相機的深度不同,同一類別的不同對象之間也會存在尺寸的顯著差異[34]。針對上述交通場景中明顯的多尺度目標實例分割問題,本文提出了一種用于街景解析的多頭掩碼構建模塊。根據目標的尺寸范圍,該模塊被細分成4 個尺度下的邊界框檢測和方向圖生成,這極大地優化了大小目標的分割邊緣細粒度。為了進一步減少參數量,本文只在第4 層預測全部尺度下的方向圖,每一層下基于錨框的方向圖和邊界框一一配對進而生成最后的掩碼。本文在開源的交通場景數據集BDD100k[35]上進行大量實驗來驗證所提模型的有效性,并在鎮江的交通道路中開展實車驗證工作。
基于錨框的單階段實例分割網絡通常由骨干網絡、特征融合模塊和最后的預測模塊組成。基于Orienmask 網絡,本文對該算法的3 種模塊分別進行了優化。具體來說,所提框架采用Cspdarknet53 替代原始的骨干網絡(backbone),并提出一種雙路自校正金字塔池化模塊進行特征融合并充分挖掘相鄰像素間關系。此外,考慮到自動駕駛交通場景目標的多樣性和復雜性,本文提出一種多頭掩碼構建模塊以充分提高對大小交通對象的檢測和分割性能,所提框架如圖1所示。圖中CBM 和CBL分別代表使用不同激活函數的卷積塊,Neck表示瓶頸模塊。

圖1 本文所提算法的整體架構圖
以Darknet53為骨干網絡的Orienmask 算法在通用的MS-COCO 數據集可以同時實現目標定位和掩碼生成,并在速度和精度之間取得較好的平衡。為了應對復雜的城市道路場景并增強網絡的特征提取能力,本文使用Cspdarknet53 代替原始的骨干網絡。該網絡最早在Yolov4[16]中提出,通過引入跨階段部分模塊(cross stage paritial module,CSP),利用其大殘差邊擴大感受野并整合局部上下文信息,從而在減少計算量的同時獲得豐富的梯度組合信息。由于良好的表征學習能力,該網絡可以滿足大部分分割場景的特征提取任務需求,改進前后的階段模塊對比如圖2所示。優化后的骨干網絡全部采取Mish激活函數,即使用CBM 卷積塊代替原始的CBL 卷積塊,從而得到4 倍、8 倍、16 倍和32 倍下采樣后的高層強語義特征。

圖2 骨干網絡對比結果(數字按順序依次代表卷積核大小、步幅以及相應的填充數)
卷積神經網絡(convolutional neural networks,CNNs)通過疊加多個卷積核擴寬網絡深度以此獲得豐富的語義信息。然而,隨著網絡層數的增加,淺層特征圖上的紋理特征愈發稀少,如對象邊界和位置信息,甚至小目標的細節信息會在多層映射后完全消失。事實上,在實際交通場景中,由于攝像頭距離和廣角范圍的限制,不可避免地會出現各種數量巨大的小目標,這進一步影響著圖像的整體分割性能。而應用于目標檢測中的FPN則利用橫向連接提取圖像的多層次特征,從而較好地提高小目標的檢測性能。該模塊首先通過融合淺層的定位細節和高層的強語義,然后利用一個3×3 卷積核對相加后的特征進行再次融合以消除上采樣所帶來的重疊效應。Orienmask[30]仍遵循FPN 范式,但僅使用拼接替代簡單的相加操作。
為進一步改善多尺度問題且獲得更具判別性的特征表達,本文提出了一種雙路自校正金字塔池化模塊來重新構建特征融合,如圖3 所示。與只定位邊框的目標檢測不同,實例分割不僅需要網絡深處的高層語義信息,還需要圖像的淺層定位信息,來分別匹配實例級的檢測和像素級的分割任務,這僅僅依賴于自頂向下傳播較強語義特征的單路FPN是遠遠不夠的。因此本文使用雙路金字塔[33]優化信息傳播路徑。具體來說,通過在自頂向下的路徑基礎上增加自底向上的融合模塊,將淺層的紋理、結構等細節信息進一步傳播到高層的強語義特征圖上。此外,為了獲得多樣性的局部特征,本文還使用Sconv[32]替換基本的卷積特征變換操作,從而在每個像素位置建立遠程空間和通道間的依賴關系。圖4顯示了該模塊的詳細結構,即通過4 次卷積運算,從原始尺寸和下采樣之后的潛在空間映射角度進行多尺度信息編碼,從而在擴大局部感受野的同時獲得更準確的差異性區域。其中潛在空間映射主要通過下采樣后的低維嵌入校準另一部分卷積核的卷積變換。同時為了減少參數量,本文僅在第2 層進行替換。為了聚合同層之間不同尺度的特征,進一步使用 金 字 塔 池 化 模 塊[36](pyramid pooling module,PPM)保證該層特征的完整性和多樣性。

圖3 特征融合模塊的整體架構圖

圖4 自校正卷積結構圖
Orienmask 通過添加一個并行的掩碼分支預測像素方向圖,并結合邊界框分支預測的回歸參數構建實例掩碼。本文算法中仍然保留掩碼部分來預測邊界框中前景和背景像素的空間偏移。為了同時對不同尺寸目標構建更為細粒度的掩碼,該模塊被重新設計成4 個尺度下的邊界框和方向圖預測。每個尺度下生成的邊界框都將與該層預設定的錨框相匹配,而每個錨框大小又與方向圖相關聯。這樣就建立了邊界框和方向圖的對應關系,進而生成多尺度實例掩碼。由于卷積在獲得高層強語義特征的同時會伴隨著細節信息的丟失,這對于像素級方向圖是不可接受的,因此該算法只使用最淺層的高分辨率特征預測所有尺度的方向圖,然后利用雙線性插值恢復到其余3 個尺度下的分辨率大小,如圖1 所示。其中淺層掩碼構建的詳細結構如圖5所示。

圖5 多頭掩碼構建模塊結構圖
本文算法的邊界框分支僅使用兩個大小分別為3×3 和1×1 的卷積核,而掩碼分支的設計也非常簡潔,由6 個3×3 卷積核和1×1 卷積核交替組成,用于最終的方向圖預測。此外,本文將帶注釋的邊界框內前景像素方向偏移定義為指向基準位置的向量。實際上,邊界框質心就是可選取的最佳基準位置。而背景像素的方向偏移,即不被實例掩碼所覆蓋的負樣本,則定義為指向邊界框的相反位置。因此,前景和背景像素的方向偏移在數學上表示為
式中:b代表基準位置;pf和pb分別代表前景像素和背景像素;αb代表背景像素方向偏移同邊界框4 個頂點位置遠離基準的方向偏移量比值的最大值的倒數,數學上可以表示為
由于實例掩碼標簽的固定性,正樣本數量因而也是確定的。為了訓練時高效的平衡正負樣本,本文使用成比例擴大邊界框真值的策略以形成有效的訓練區域。因此最終形成的掩碼可表示為
式中:Pxy為每個像素的坐標;sxy和τ分別表示邊界框的尺寸和區域的縮放因子。
為了讓網絡能夠有效分割,本文使用一系列損失函數,主要包括檢測損失和方向偏移損失。
1.5.1 檢測損失
檢測損失是針對目標檢測所提出的,主要包括目標置信度損失Lobj、分類損失Lcls和邊界框回歸損失Lbox。Orienmask 使用Yolov3[15]中帶有MSE Ioss 的回歸損失,但是該損失函數會割裂邊界框中心坐標和寬高之間的聯系。因此本文使用CIoU Ioss[16],該公式被定義如下:
式中:IoU為預測框和真實框的交并比;ρ2、c2和ν分別為兩個矩形框中心點距離的平方、外接最小矩形對角線距離的平方和兩個矩形框寬高比相似度;α為ν的影響因子,α=ν/(ν-IoU+eps),其中eps為一常量,防止分母為0;同時Lcls和Lobj則保持不變。
最后,結合所有的3 種損失函數,本文的檢測損失函數定義為
式中:Lcls和Lbox針對所有的正樣本;Lobj針對所有的正負樣本。
1.5.2 方向偏移損失
方向偏移損失是針對實例掩碼所提出的,即分別計算訓練區域中前景和背景像素的偏移損失并根據實例數量Nins占比進行加權處理,數學上表示為

因此,總的損失函數定義為
式中λ設置為0.15。
本文實驗所使用的公開數據集為最新公開的自動駕駛道路場景BDD100k 數據集[35],其以大規模和多樣性而聞名,包括100k不同的視頻片段、6個不同的場景類型和天氣狀況以及3 個不同的時間段。該數據集共采集了10k 圖片并應用到像素級的實例分割任務中,其中訓練集總共8k 張,分辨率大小均為720×1280。此外,該數據集包含駕駛場景中常見的8 個類別,即行人、騎行者、汽車、貨車、公共汽車、火車、摩托車和自行車。與基于多邊形注釋的其他開源分割數據集不同,其標簽以位掩碼格式存儲,并且分割掩碼中不允許存在重疊,即每個像素僅分配一個類別標簽。
遵循Yolov3,Orienmask 采用K-means[37]聚類算法對通用分割數據集MS-COCO 的標簽信息進行聚類并生成9 個錨框。由于不同場景間的差異性,針對通用場景所設計的錨框是不能夠通用的。由于道路交通場景通常包含大量具有不同對象尺寸的目標,因此針對BDD100k數據集設計了12種具有不同高寬比的錨框,如表1所示。圖6為該數據集上不同對象的邊界框像素分布結果,不同的顏色代表聚類所生成的不同簇,[×]表示某一簇的聚類中心。觀察發現大部分物體集中在圖像的左下角,即具有長尾分布現象。

圖6 BDD100k數據集的像素分布圖

表1 錨框尺寸信息
深度學習模型在訓練過程中需要使用大量復雜的矩陣運算和浮點運算,并通過不斷的迭代從數千個變量中尋找最優解,本文所提出的實例分割模型在Ubuntu18.04 操作系統和2 張Nvidia RTX 1080Ti顯卡上使用Pytorch 深度學習框架進行分布式并行訓練和同步批處理歸一化,并使用SGD 作為優化器,其動量和權重衰減率分別設置為0.9 和5×10-4。為了提高分割性能,訓練過程中還使用了在ImageNet[38]預先訓練的模型和數據增強策略,包括顏色抖動、隨機水平翻轉以及隨機裁剪。
學習率、批處理大小和損失函數的選擇都會影響模型的訓練速度和最終的分割精度。較大的學習率在提高訓練速度的同時會造成損失的急劇增大,因此更加適用于訓練的初始階段。然而神經網絡訓練初期嚴重的不穩定性又需要極低的學習率。學習率若是設置過小則模型的收斂速度變慢,更易找到模型的最優解但可能產生過擬合問題,因此更加適用于訓練的后期。鑒于以上特性,本文使用多階段學習策略,首先使用warm-up 策略,使學習率隨著迭代次數增加不斷變大并達到初始訓練值,隨后使用Poly自適應學習率,使之平穩的下降,公式如下:
式中:In_lr為初始學習率,設置為0.001;it和max_it分別為當前迭代次數和訓練最大迭代次數;r為影響因子,設置為0.1;power為衰減指數,設置為1。同樣,批處理若是設置過大則模型會越穩定,訓練速度會明顯加快,但可能需要消耗更多顯存以及影響泛化性能;批處理設置過小,訓練速度會變慢。受限于實驗室的硬件配置,批處理大小設置為4。
本節中,對所提模型在開源實例分割數據集BDD100k 上的結果同一些先進方法對比,主要包括Mask R-CNN[19]、Cascade Mask R-CNN[28]、GCNet[39]、YoLACT[22]和Solov2-Lite[13]。本文選擇 Orienmask[30]作為基線模型(baseline)。前3種方法均為基于兩階段框架的實例分割方法,其位置掩碼的生成質量高度依賴于目標定位網絡,且獲得的精度均來自該數據集公開的官方基準。此外,與基于檢測的單階段方法不同,Solov2 依據每個對象中心不同的特性直接恢復實例掩碼,因而沒有邊界框結果。上述所有算法的推理速度均遵循默認配置并在單張1080Ti顯卡得出,對比結果如表2所示。

表2 在BDD100k驗證集與主流方案的對比結果
觀察發現二階段算法的檢測和分割效果整體上比單階段方法更好,但也伴隨著速度較慢等缺陷。與原始baseline相比,所提方法在邊界框和分割掩碼上分別獲得了5.2%和2.2%的mAP@0.5:0.95 改進,但速度有所降低。具體來說,行人、轎車、貨車、巴士和火車類別的性能均有所提升,其中交通場景中最為常見的兩個重點類別,行人和轎車分別獲得了2.9%和4.9%的改進。但是騎行者、自行車的精度略微下降,摩托的精度下降較為明顯。對于這些復雜的弱勢交通參與者性能不佳,猜測這是由于人-車一體的形狀復雜性,即實例間的重疊遮擋問題,造成了網絡的混淆。與最好的二階段架構[28]相比,所提算法獲得了0.8%的略微提升,但是速度上有著更大的優勢。為了進一步證明所提方法的有效性,選擇了驗證集上的5張圖片進行可視化,結果如圖7所示。從上至下依次為原始結果,改進后結果以及相應的真值。定性結果表明所提方法顯著改善了大尺寸物體的性能,且一定程度上緩解了遠景區域小目標的漏檢率,小尺寸物體的邊緣也變得更加清晰平滑,尤其是在行人的姿態分割中。

圖7 BDDI00k驗證集上可視化結果對比圖
為了驗證所提方法各組成部分的有效性,本文測試了在BDD100k 驗證集上所獲得的各種模型變體,性能結果如表3 所示。以Darknet53 為骨干網絡的原始模型作為baseline。通過添加的雙路自校正金字塔池化模塊,邊界框和實例掩碼的準確度分別提高了2.6%和1.2%的 mAP@0.5:0.95。為了更清晰地闡述該模塊,本文還對該模塊進行了組件拆分,主要包括FPN(Sconv)和PANet(Sconv)。可以觀察到后者的改進效果最明顯,這進一步證明了本文的猜測即僅依賴單路自頂向下傳播較強語義特征對實例分割是遠遠不夠的。此外,設計的多頭掩碼構建模塊通過產生更細致的尺度空間區分微小物體進一步改善了性能,在掩碼上獲得了1%的提升,在邊界框上更是獲得了2.5%的提升。最后,結合所有的部件,本文所得模型在該數據集的邊界框上和掩碼最終獲得了41.0%和36.0%,分別獲得了5.7 %和4.1 %的mAP@0.5改進。

表3 在BDD100k驗證集上的消融實驗
圖8 顯示了雙路自校正金字塔池化模塊在包含和不包含自校正卷積中所學到的特征可視化對比示例。第1 列是原圖,第2 列和第3 列分別表示不加自校正和加入自校正卷積后的 FPN 模塊最底層的輸出特征。可以觀察到,自校正卷積可以學習像素所在目標區域的上下文信息,通過引入小尺度低維空間信息擴大高維空間的局部感受野并產生更具判別性的特征,從而更準確地定位目標對象。圖8 中的最后一行遠景圖像的熱力圖展示了對多尺度信息的編碼能夠使網絡更加關注小尺寸物體的學習。

圖8 特征的可視化結果圖
針對復雜的道路交通場景BDD100k 數據集,本文主要針對Orienmask算法從錨框設計,網絡架構設計和監督學習損失函數這3 部分進行了相應的優化改進工作。為了進一步驗證所提出模型的適用性,本文使用Arrizo-5E 自動駕駛實驗車在中國城市鎮江的3 個不同真實測試場景中進行了實車實驗,主要包括城區、高架和校園,實驗車輛如圖9 所示。此外,本文進行實車實驗環境配置時還考慮了不同的天氣條件,主要包括3 種工況:白天、夜間和雨天。本文實車實驗全部使用魔客仕攝像頭來采集分辨率為480×640的圖像。

圖9 本文實車實驗所采用的Arriz0-5E實驗車
所提算法在現實場景上的定量結果如圖10 所示,從上至下依次為晴天、夜間和雨天工況下的檢測和分割結果。其中前兩列為城區場景的分割性能,中間一列和最后兩列分別為高架和校園的實驗結果。整體上,所得模型對于大尺寸物體具有較好的性能,這可能是由于其特征密集的天然優勢。相對來說,小目標的性能有所欠缺,但在場景的有效距離范圍內,該算法仍然可以實現對小目標的精準定位和分類。與校園工況相比,高架和城區的預測結果相對更好,這可能是校園場景的狹小封閉和人-車交通無序所導致的。此外,隨著天氣工況的愈發惡劣,目標對象的邊界框和分割邊緣愈發粗糙。

圖10 實車實驗結果圖
本文以Orienmask算法為基礎,并針對復雜的交通場景,提出了一種基于單階段檢測算法的多頭實例分割框架,其主要包括骨干網絡、特征融合模塊和多頭掩碼構建模塊。為了獲取判別性特征,本文通過引入殘差網絡、自校正卷積和改善信息傳播路徑等方式優化網絡的特征提取能力。同時針對交通場景下道路目標尺寸的多樣性和復雜性,所提的多頭掩碼構建模塊被設計成4 個尺度下的邊界框和方向預測分支,以適應不同尺度物體并生成更具細粒度的實例掩碼。此外,本文還優化了損失函數。
在開源數據集BDD100k 上的結果表明所提算法要顯著優于原始方法,在邊界框定位和掩碼生成上分別獲得了5.7%和4.1% mAP@0.5 改進,同時滿足實時性要求。最后真實場景的實車實驗也證明了所提算法具有更好的精度和魯棒性,且對不同的場景也有較好的適應能力。但是也觀察到部分弱勢交通參與者的性能有所下降,未來將著重從實例間的遮擋角度優化模型算法,并進一步提高推理速度。