李琳輝 袁世偉 連靜 顧湯鵬
(1.大連理工大學,汽車工程學院,大連 116024;2.大連理工大學,工業裝備結構分析國家重點實驗室,大連 116024)
主題詞:車位檢測 協作注意力 圖神經網絡 輕量化
自動泊車作為自動駕駛的基礎應用之一,近年來得到了越來越多學者的關注[1-2]。自動泊車的實現離不開感知系統的配合,其中,基于車載環視(Around View Monitor,AVM)系統[3]的停車位檢測系統能夠利用安裝在車身周圍的攝像頭,通過圖像處理算法檢測并識別目標車位的標記線,從而提取空停車位,在自動泊車任務中起到了重要作用。
基于視覺的停車位檢測算法主要可以分為傳統的車位檢測算法和基于深度學習的車位檢測算法。傳統的車位檢測算法可以分為基于線的停車位檢測算法[4-5]和基于標記點的停車位檢測算法[6-7],但對環境變化敏感、魯棒性差,不適用于復雜的現實環境。
為提高復雜環境下車位識別的準確性,研究人員提出了多種基于深度學習的車位檢測算法。Huang等[8]在基于深度卷積神經網絡的停車位檢測算法(Deep convolutional neural networks based Parking-Slot detection approach,DeepPS)[9]的基礎上進行優化,使用新的卷積神經網絡提取車位標記點的方向、坐標和形狀,并利用設計好的幾何規則過濾和匹配成對標記點;Wu 等[10]為解決車位檢測中先驗知識不足的問題,提出了以圓形描述符來回歸停車位頂點坐標的方法,并開發了一個兩階段的模型用于檢測停車位;Chen等[11]在圖神經網絡的使用過程中放棄復雜且不便的后處理環節,以端到端的方式直接對車位進行推理,在公共數據集PS2.0[9]上得到了優異的結果,然而,由于該算法模型較大,推理速度慢,導致其實時性較差。
基于以上分析,本文綜合考慮車位檢測實時性和有效性的任務需求,提出一種基于協作注意力與圖神經網絡的輕量化車位檢測算法:使用改進的輕量化神經網絡結構,減少模型訓練過程的開銷,加快模型推理速度;使用協作注意力機制和圖神經網絡配合的方法,整合多頭注意力的冗余信息,并加強車位標記點間的內在聯系;采用端到端的訓練方式,不需人工設定規則的復雜后處理過程。最后,將該算法在公共數據集PS2.0上進行訓練,并與當前的主流算法進行對比。
通常,車位可以由4 個標記點表示,參考采用定向標記點回歸的車位檢測(Parking-Slot detection using Directional Marking-Point Regression,DMPR-PS)[8]方法,本文將車位識別的問題表述為對車位入口線上標記點的檢測問題。首先將給定的車位環視圖像輸入改進的MobileNetV3 模型,提取特征圖后,利用深度可分離卷積得到車位標記點的位置信息和特征編碼信息,并輸出標記點的回歸損失。其次,利用雙線性插值的方法將標記點位置信息與特征信息相結合,輸出標記點特征。然后,將得到的標記點特征與經多層感知機變換后的位置信息相結合,構成圖神經網絡中的節點信息,即融合的標記點特征V。本文將圖像中的所有車位標記點連接,形成全連通的圖,標記點間的連接關系作為圖邊E。根據圖節點V和圖邊E的關系構建圖神經網絡G=(V,E),將其與協作注意力機制相結合,推斷標記點間的內在聯系。經過協作注意力與圖神經網絡的處理變換,由車位推理層對輸出的標記點特征進行判別,判定其能否形成車位,并輸出誤差損失,更新算法的參數。
本文算法的總體結構如圖1所示。

圖1 基于協作注意力和圖神經網絡的車位檢測算法總體結構
為了減少訓練以及實際算法部署的開銷,輕量化神經網絡的構建尤為重要。本文將協作注意力與圖神經網絡相結合探究車位標記點的內在關聯,增加了算法計算復雜度,故使用輕量化的神經網絡來獲取圖像特征,以提高算法的推理速度。
本文改進了MobileNetV3 網絡作為特征提取網絡,其結構如圖2 所示,其中hswish 表示h-swish 激活函數。該網絡保留MobileNetV1 的深度可分離卷積、MobileNetV2 的倒殘差結構以及擠壓和激勵(Squeezeand-Excitation,SE)注意力通道模塊,并利用神經結構搜索方法來搜索網絡的配置和參數。MobileNetV3[12]的核心模塊為Bneck 模塊,也是構成該網絡的基本模塊。為提高模型的表達能力,本文將Bneck 模塊中的SE 注意力通道模塊替換為平鋪擠壓和激勵(Tiled Squeezeand-Excite,TSE)注意力通道模塊[13]。

圖2 改進的MobileNetV3網絡結構
TSE注意力通道模塊用平均池化(Average Pooling,AvgPool)層替代了SE 注意力通道模塊的全局平均池化(Global Average Pooling,GAP)層,將輸入的張量劃分成多個大小相等的非重疊塊。此外,TSE 注意力通道模塊采用一維卷積層而非SE 注意力通道模塊的全連接(Fully Connected,FC)層,以縮小非重疊塊的通道,再通過批歸一化(Batch Normalization,BatchNorm)和激活函數線性整流函數(Rectified Linear Unit,ReLU)進行處理,然后使用一維卷積層將非重疊塊的通道放大。最后,TSE 注意力通道模塊通過最近鄰插值(Nearest Neighbor Interpolation,NNI)的方式將通過激活函數S 型函數(Sigmoid Function)的所有非重疊塊拼接在一起,并將其輸出尺寸調整為輸入張量的尺寸。SE 注意力通道模塊與本文使用的TSE 注意力通道模塊的具體結構如圖3所示。

圖3 SE注意力通道模塊與本文使用的TSE注意力通道模塊結構對比
TSE 注意力相比于SE 注意力機制,在擠壓過程中使用較小的內核進行共享,從而減小了操作所需要的內存,并在保持精度的同時為終端平臺上的深度學習部署提供了優化解決方案。
將特征提取網絡得到的特征圖分別傳遞至標記點檢測器和標記點編碼器,以提取標記點位置信息和特征編碼信息。
標記點檢測器由深度可分離卷積層構成,輸出特征圖,用于提取車位標記點的橫、縱坐標x、y以及置信度c的信息;檢測器同時計算出標記點回歸損失用于網絡的迭代計算,從而提高模型的表達能力。標記點編碼器同樣由深度可分離卷積層構成,輸出特征圖后,通過雙線性插值的方式對檢測到的數量為N的車位標記點位置進行逐點卷積,得到車位標記點的特征F。為增強特征的表達能力,本文參考變換神經網絡(Transformer)[14]位置編碼方式,利用多層感知機模型將車位標記點坐標信息(x,y)升維,通過相加的方式與特征F逐位結合:
式中,Mlp為多層感知機模型;Fi為F中的第i個初始標記點特征;Vi為獲得的第i個標記點的融合特征;xi、yi分別為第i個標記點的橫、縱坐標。
將輸出的融合特征Vi作為協作注意力與圖神經網絡的輸入,并聯合標記點信息和位置信息進行車位推理。
為提高網絡的推理速度、減少算法訓練以及部署的開銷,本文使用深度可分離卷積層[12]替代標準的二維卷積層,用于提取標記點位置信息和特征編碼信息。深度可分離卷積[12]主要由2個部分組成,即深度卷積和逐點卷積。深度可分離卷積相比普通卷積縮減了計算總量,假設輸入特征圖大小為DF×DF×M、輸出特征圖大小為DF×DF×O,卷積核尺寸為DA×DA,其中,DF為特征圖的寬度和高度,M為輸入通道數量,O為輸出通道數量。
對于標準的二維卷積,其計算量為:
對于深度可分離卷積,其計算量為:
深度可分離卷積和標準卷積計算量的比值為:
由此可見,在同等條件下,相比于標準卷積,深度可分離卷積能夠大幅降低計算量,可以有效減少模型的參數數量,加快實時推理的速度。
根據前文中得到的融合特征V,本文構建全連接圖神經網絡G=(V,E)。該圖神經網絡中的節點V表示數量為N的車位特征標記點,圖邊E表示為每個標記點間的連接關系。
為了提高模型的表達能力,本文用協作注意力[15]來整合不同頭部之間的信息。協作注意力相比于標準的多頭注意力[14],更關注所有注意力頭捕捉的通用信息,并將這些信息作為共享權重,從而加強了多個頭部間的作用與理解,并修剪了冗余的參數,實現了輕量化注意力的功能。
標準的多頭注意力機制通過直接拼接的方式整合不同注意力:
式中,Q、K、V分別為查詢向量、鍵向量和值向量;X、Y分別為2個不同的輸入矩陣;WQ、WK、WV分別為Q、K、V的權重矩陣;H(i)為第i個頭的注意力表示;Attention為自注意力機制;softmax為歸一化指數函數,作為激活函數;Nh為注意力頭的數量;dk為每個注意力頭中鍵向量的列空間維度;MultiHead為多頭注意力機制;concat為拼接函數,將多個注意力頭部的計算結果在最后一個維度上進行拼接;WO為輸出的權重參數矩陣。
定義Dk=Nhdk為鍵向量的列空間總維度。引入傳統的注意力機制可以提高檢測的準確性和模型的表達能力,然而這些注意力頭部之間捕捉的信息存在冗余,頭部與頭部間的通用信息較多。
式中,、分別為查詢向量、鍵向量的共享權重矩陣;為第i個注意力頭的值相量的權重矩陣;CollabHead為協作注意力機制。
其中,、被所有注意力頭部共同學習,用于捕捉所有注意力頭間的通用信息,而mi則幫助捕捉各頭部的單獨信息,這種注意力的整合算法作用是:增加頭部注意力的自適應表達性,頭部注意力可以根據注意力模式的復雜程度相應增加或減少維度;使得參數的計算更加高效,所有注意力頭共享學習和,所以每輪訓練只需計算1次。
根據上述分析,可以推理出標準的多頭注意力機制在計算注意力評分時,其混合矩陣M的每列對應不同的頭部,因此本文設計了對應的混合矩陣用以捕捉所有頭部的通用信息,并對其進行壓縮。圖4 所示為標準多頭注意力與本文使用的協作多頭注意力的對比示意。

圖4 標準注意力機制與本文采用的協作注意力機制
本文構建的圖神經網絡由3 層組成,首先,協作注意力將所有節點組成的邊的特征信息聚合,然后迭代更新模型,第(l+1)層的第i個節點的圖節點特征可以表示為:
式中,[ ||Collab]表示由協作注意力對所有頭部特征點信息進行聚合;為圖節點i根據圖網絡中的一階鄰居節點Ei所聚合的特征信息。
根據協作注意力和圖神經網絡得到的節點特征,利用車位推理層判斷車位標記點對是否形成完整車位。車位推理層將不同的車位標記點進行連接,并計算其形成入口線的概率,如圖5 所示,車位推理層由一維卷積(Conv1d)層、隨機失活(Dropout)層和Sigmoid 激活層組成,其中Dropout層僅在訓練時使用。

圖5 車位推理層結構
最后,協作注意力圖神經網絡輸出N×N×5的矩陣,其中N×N表示形成的車位標記點對數,5包括x1、x2、y1、y2、p,其中(x1,y1)和(x2,y2)為車位標記點位置坐標,p為車位標記點形成入口線的概率。
參考注意力圖神經網絡車位檢測(attentional Graph neural network for Parking-slot detection,Gcn-Parking)算法[11],為端到端地訓練整個神經網絡,本文損失函數的計算方法為:
式中,lspoint為標記點回歸損失;lsline為入口線分類損失;α1、α2分別為lspoint、lsline的系數。
考慮到標記點檢測的準確性直接影響車位的劃分,本文利用圖神經網絡來探究標記點的內在聯系,取α1=100、α2=1,此時檢測效果最優。
標記點回歸損失lspoint是車位標記點預測與真值間的平方差之和,標記點檢測器的輸出層被劃分為S×S大小單元的網格,故其計算過程為:
式中,lsc為置信度的回歸損失;lsxy為標記點坐標的回歸損失;ci為標記點預測的置信度;(xi,yi)為標記點投影的坐標;、(,)分別為標記點預測的置信度和標記點投影的坐標對應的真值;1i為對標記點投影坐標的判斷值,當投影坐標為真值時,取值為1,否則為0。
入口線分類損失lsline的計算公式為:
式中,lij為第i個和第j個標記點形成車位入口線的預測概率;為lij對應的真值。
本文在PS2.0[9]的公共環視圖像數據集上評估所提出的停車位檢測算法。PS2.0 數據集由9 827 幀訓練圖像和2 338幀測試圖像組成,分別包含9 476個停車位和2 168個停車位。根據DMPR-PS[8]方法,選擇7 780幀圖像構成訓練集、2 290幀圖像作為測試圖像。PS2.0數據集中的圖像采集自不同環境條件下的典型室內外場景,分辨率為600像素×600像素,對應10 m×10 m的現實地面區域。
本文在Ubuntu18.04 操作系統、GeForce RTX 3060顯卡,Pytorch 10.0 框架環境下進行試驗。訓練批量大小為16,訓練次數為200輪。本文訓練時選用的學習率為0.003、權重衰減率為0.01、優化器為Adam_Onecycle,圖6所示為PS2.0數據集下檢驗后的可視化圖片。

圖6 PS2.0數據集下檢驗后的可視化圖片
本文對算法進行了綜合評估,包括推理效率和檢測有效性。推理效率指標包括每幅圖片推理時間和模型大小,檢測有效性指標包括精確率、召回率和微觀F1(Micro-F1),其中Micro-F1 為本文引入的參數,同時兼顧了分類模型的精確率和召回率,最大值為1,最小為0。
精確率P為正確預測的正樣本數量與預測為正樣本的全部樣本數量的比值,召回率R為正確預測的正樣本數量與所有正樣本數量的比值:
式中,TP為預測為正的正樣本數量;FP為預測為正的負樣本數量;FN為預測為負的正樣本數量。
對于本文的二分類問題,Micro-F1的計算方法為:
使用PS2.0 中的測試集對本文的車位檢測算法進行測試,并與當前車位檢測的主流算法進行比較,結果如表1所示。

表1 PS2.0數據集下的有效性對比結果 %
從表1中可以看出,本文提出的車位檢測算法在召回率和Micro-F1 指標上優于當前的主流算法,這表明利用協作注意力和圖神經網絡的結構可以在復雜環境下學習并提取圖像中車位的更多特征。其中:前3種算法為利用圖像特征檢測車位的傳統算法,其準確度和召回率均低于基于深度學習的算法;DeepPS、DMPR-PS、基于深度學習的空車位檢測方法(Vacant Parking Slot detection method based on deep learning,VPS-Net)、車位檢測方法(Parking Slot Detection,PSDet)為二階段檢測算法;用于實時停車位檢測的選擇修剪全卷積網絡(Select and Prune the Fully Convolutional Networks for real-time parking slot detection,SPFCN)、文獻[18]算法、Gcn-Parking 和本文算法為端到端的單階段檢測算法。本文算法既保留了單階段神經網絡的優點,又省去了復雜的后處理操作,同時提升了檢測的有效性。相比于傳統算法中精度最高的基于學習的車位檢測算法(Parking-Slot Detection based on Learning,PSD_L),本文準確率提高了1.31 百分點,召回率提高了12.54 百分點;相比于單階段算法中精度最高的Gcn-Parking,本文精確率提高了0.19 百分點,召回率提高了0.08 百分點;相比于二階段算法中精度最高的VPS-Net,本文精確率提高了0.12百分點,召回率提高了0.19百分點。
考慮到一些算法未提供模型大小與推理速度,選取部分算法進行比較,如表2 所示,相比于目前優秀的車位檢測算法VPS-Net 和Gcn-Parking,本文算法的模型大小分別為前者的34.2%、后者的16.63%,每幀圖像的運行時間與前者相比縮短了9.95 ms,與后者相比縮短了15.2 ms。可見本文算法相比于其他車位檢測算法模型具有參數數量少、運行時間短、推理速度快的優點,在實際部署時具有一定的優勢。

表2 PS2.0數據集下的推理效率對比結果
為驗證修改后網絡的優越性,本文進行了對比試驗,在本文算法的總體架構下,將特征提取網絡替換為主流的特征提取網絡和一些輕量化的特征提取網絡模型,用于進行比較。本文試驗以模型復雜度、精確率、召回率和Micro-F1 作為評價指標,其測試結果如表3 所示。

表3 不同特征提取網絡的性能指標比較
由表3可知,本文修改后的骨干網絡不僅達到了較高的精確率和召回率,同時模型參數數量少、運行速度快,優于其他方案。
為了研究本算法的各改進部分在整體算法中發揮的作用,利用消融試驗對整體算法進行研究。以MobileNetV3 特征提取網絡和圖神經網絡為基礎,逐步加入深度可分離卷積、協作注意力機制,以及TSE 注意力機制,對方案優化改進,并在PS2.0 數據集上進行檢測試驗,結果如表4所示。

表4 消融試驗結果
當損失函數選取不同的系數時,得到的檢測結果如表5所示。

表5 不同損失系數的結果
由表4和表5可知,本算法經過消融試驗后,通過對算法的不斷優化,在實時性方面,每幀圖像處理時間為10.1 ms,并將模型大小縮減至77.4 MB,在有效性方面,達到了99.75%的精確率、99.50%的召回率和99.62%的Micro-F1指標,有效地平衡了算法的實時性和準確性。
本文提出了一種基于協作注意力和圖神經網絡的輕量化車位檢測算法,利用協作注意力和圖神經網絡加深了車位標記點間的內在聯系,保證了車位識別的精確率和召回率,同時,針對計算繁瑣、模型參數數量多的卷積神經網絡算法和圖神經網絡算法在實車部署上的困難,使用輕量化的網絡結構,并對協作注意力和圖神經網絡算法加以改進,最后,在PS2.0 車位數據集上進行了對比試驗和消融試驗,驗證了算法的可行性。結果表明,本文算法優于當前的大部分主流車位檢測算法,滿足更快、更準確的檢測需要,符合時間緊迫的自動泊車任務要求。