【摘要】為提高自動泊車成功率及準確性,首先基于卷積神經網絡(CNN)模型對輸入圖像進行特征提取,然后利用Transfomer模型的“編碼-解碼”機制對CNN提取到的圖像特征平鋪后進行計算推理,通過前饋神經網絡得到目標預測結果,最后基于180°廣角魚眼圖像進行推理識別,車位角中心點和空車位入口中心點均采用二維坐標表示,降低了輸出信息的冗余,優(yōu)化了模型結構。測試結果表明,該算法能夠較好地適應不同車位線劃線方式和不同的自然環(huán)境,目標感知的召回率達到98%,車位角中心點定位平均誤差小于3 cm,滿足泊車系統(tǒng)對車位感知的魯棒性、實時性和準確性要求。
主題詞:自動泊車 車位檢測 視覺增強 卷積神經網絡 Transformer
中圖分類號:U463.3" "文獻標志碼:A" "DOI: 10.19620/j.cnki.1000-3703.20221186
Algorithm for Parking Space Detection in Automatic Parking System Based on CNN-Transformer
【Abstract】In order to improve success rate and accuracy of automatic parking, firstly, the input image features were extracted based on Convolutional Neural Network (CNN) model, and then the encoding-decoding mechanism of Transfomer model was used to tile the image features extracted by CNN for calculation and inference. Finally, the target prediction results were obtained by feedforward neural network. In this paper, fisheye images were used to recognize the target. The center point of the parking angle and the center point of the empty parking entrance were expressed by two-dimensional coordinate points, which reduced the redundancy of the output information and optimized the model structure. The test results show that the algorithm can better adapt to different parking space line marking mode and different natural environment, with the recall rate of target perception reaches 98%, and the average error of parking space corner center location is less than 3 cm, which meets the requirements of real-time application for robustness, real-time and accuracy.
Key words: Automatic parking, Parking space detection, Visual enhancement, Convolutional Neural Network (CNN), Transformer
1 前言
自動泊車系統(tǒng)通過環(huán)視攝像頭獲取車身周圍圖像信息,利用傳統(tǒng)計算機視覺算法或者深度學習模型推理進行車位感知,并由規(guī)控算法基于感知結果進行車輛泊入。車位的感知結果決定了自動泊車的泊入成功率和最終泊入效果。在實際泊車場景中,不同停車場的車位線劃線方式存在較大差異,且車位線的顏色和地面的顏色、材質等存在多種組合形式。同時,周圍環(huán)境的變化也會對環(huán)視圖像的成像效果產生影響,如強光、反光、弱光及陰影遮擋等,給車位的識別和跟蹤造成困難。
Zhang[1]等通過由3個自適應增強(Adaptive Boosting,AdaBoost)算法構建的弱分類器對車身周圍其他車輛的特征進行檢測,利用周圍車輛的姿態(tài)信息對空車位進行推算,但此方法容易受到周圍車輛停車姿態(tài)的影響。朱強[2]基于高度融合卷積網絡(Highly Fused Convolutional Network,HFCN)模型對俯視全景圖中的車位線進行分割,利用多尺度融合的損失函數訓練模型,通過識別車位線信息推理出停車位的位置信息。楊科[3]等利用裁剪后的YOLO-v3模型對全景俯視圖中的車位角進行檢測。Wu[4]等基于停車位檢測(Parking Slot Detection,PSDet)的體系結構,提出采用圓形表征方式對車位角中心點和車位線的方向進行描述,并利用該模型進行感知識別。上述文獻多數采用拼接后的俯視圖像作為算法處理的對象,往往存在圖像視野減小,且立體信息丟失的問題,若車位內側存在障礙物,易因圖像信息的不完整造成空車位的誤識別。同時,上述文獻多采用矩形框表征車位角,以矩形框中心點作為車位邊界的臨界位置,造成識別車位存在偏差,車位角中心點識別結果的偏差同樣會造成車位姿態(tài)計算的誤差。
為解決泊車精度不足的問題[5-6],本文利用CNN模型對輸入圖像進行特征提取,并對淺層細節(jié)特征與深層抽象特征進行拼接,然后利用Transfomer模型[7]的“編碼-解碼”機制對CNN提取到的多層圖像特征進行推理,并在不同序列特征上疊加位置信息,最后采用前饋神經網絡(Feed-Forward neural Networks,FFN)對Transfomer模型的解碼結果進行推理,實現對空車位入口中心點、車位角中心點的感知,并通過實車測試驗證該算法的有效性。
2 空車位精確感知算法
2.1 自動泊車車位精確感知算法架構
為構建完整的車身周圍環(huán)境,本文共安裝4路180°魚眼攝像頭,分別位于前、后側保險杠面罩上方和左、右側后視鏡下方,安裝過程中保證相鄰攝像頭之間存在一定的視野重疊。
部分場景下臨近車位的車位角能夠同時出現在2個攝像頭的視野范圍內,當一側視野被遮擋時,臨近攝像頭的感知結果仍可采用,而全景圖像拼接過程中對單幅圖像的裁剪可能導致有效信息丟失,故本文以原始魚眼圖像作為模型的輸入。為驗證俯視拼接全景圖像與原始圖像在視野上的差異性,本文對攝像頭的內參、外參進行了標定[8-9]。4路原始魚眼圖像和俯視全景拼接圖像如圖1所示。圖1a中左視圖像在標注的紅框處能夠清楚地顯示目標車位左側的外側車位角,但在俯視全景圖像拼接過程中,單幅圖像的裁剪導致該車位角丟失。
對采集到的圖像在保證原始圖像比例的基礎上進行尺度歸一化處理后作為深度學習模型的輸入;模型的輸出結果為圖像上存在的車位角中心點的坐標和空車位入口位置對應2個車位角中心點中點的坐標,和對應坐標的類別及其可信度。在模型訓練階段,本文利用顏色空間轉換、直方圖均衡化、中值濾波等圖像處理算法對數據集進行增強處理,以提高模型的泛化能力。最后,利用離線數據集對訓練的模型進行量化評估,并進行實車驗證。
2.2 基于CNN-Transfomer的自動泊車車位感知模型
為提高模型推理的實時性,本文搭建主分支包含12層卷積層的CNN模型作為圖像特征提取的基礎網絡,并對主分支的中間層多層特征進行拼接處理,然后利用Transfomer模型結構對平鋪后的圖像特征進行推理計算,最后利用2個FFN分支對類別和坐標分別進行推理。
本文最終采用的模型結構如圖2所示,主要包括CNN圖像特征提取模塊和Transformer感知推理模塊,其中,N1、N2分別為編碼層和解碼層的數量。魚眼攝像頭原始圖像分辨率為1 280×720,為保證縮放后圖像中目標不出現二次形變,本文在圖像輸入模型前先對樣本的上、下邊緣以黑色像素填充至1 280×1 280,在保證總體填充大小一致的情況下,上、下邊緣填充大小分別隨機生成;然后將圖像尺寸縮放至模型的輸入尺寸512×512;模型的輸出為16×1×3的感知分類結果和16×1×2的感知坐標結果。感知分類結果代表每個預測點坐標所屬的分類,為歸一化至0~1范圍內的浮點數,代表各類別的置信度;感知坐標結果代表在圖像坐標系下各預測點的像素坐標。模型的CNN圖像特征提取模塊由3個分支構成,本文CNN模型的主干分支選取DarkNet-19模型結構前13個卷積層及卷積層后的13個激活函數層和4個池化層作為主干分支,依次將其中的卷積層裁剪成[16,32,64,32,64,128,64,128,256,128,256,128,256],并在最后添加一層池化層對提取的特征進一步下采樣。主干分支中均采用核大小為3×3的卷積層,激活函數選用修正線性單元(Rectified Linear Unit,ReLU),池化層采用核大小為2×2的最大值池化。為了增加模型的感受野,提取不同尺度的特征,本文對DarkNet-19模型進行擴展,在主干分支的第6層后引入2個不同尺度的分支。2個分支結構與主干分支結構一致,但分別采用空洞尺度為K=3和K=7的3×3卷積核。本文CNN圖像特征提取模塊結構如圖3所示,為簡化模型結構可視化效果,圖中不考慮各層提取特征的維度。
CNN圖像特征提取模塊最終輸出3個分支提取尺度均為16×16×256的圖像特征,對特征進行拼接后構成16×16×768的特征,前2個通道展開后構成256個1×768的詞向量,作為后續(xù)Transformer感知推理模塊的輸入。
模型的Transformer感知推理模塊采用DETR(DEtection TRansformer)模型[10]中的編碼器-解碼器(Encoder-Decoder)結構,如圖4所示。模型中間層充分利用不同特征之間的相對位置關系疊加了特征位置編碼信息,增強了特征對位置信息的表達,將CNN圖像特征提取模塊得到的鋪平特征疊加對應的位置編碼信息后通過編碼模塊得到編碼后的特征,將其輸入解碼模塊進行解碼,其中,N1=N2=6層,最后,分別通過3層FFN[11]得到維度為16×1×3的感知分類結果和維度為16×1×2的感知坐標結果。編碼模塊由多頭注意力機制層和前饋神經網絡層等基礎層構成,輸入的經拼接、平鋪的圖像特征首先疊加位置編碼信息后經過多頭注意力機制層,編碼層的輸出與輸入特征相加后經過前饋神經網絡進行編碼特征維度的變化。解碼模塊與編碼模塊結構組成類似,不同的是解碼模塊中解碼層的V值和K值來源于編碼層模塊的輸出,而Q值來源于上一時刻解碼模塊的輸出。編碼模塊和解碼模塊的結構如圖4所示。
在解碼模塊后連接2個前饋神經網絡模塊,分別用于目標類別的預測和目標坐標的預測。通過對攝像頭的覆蓋范圍、實際應用需求等方面進行分析,單幅圖像最多能夠涵蓋目標車位和周圍4個車位的相關信息,本文最終預測的目標不多于32個,則類別預測和坐標預測前饋神經網絡的輸出結果維度分別為32×3和32×2:類別預測結果對應32個預測點屬于各類別的可信度,其中類別包括無目標點、車位角中心點和空車位入口中心點;坐標預測結果為圖像坐標系下點的像素坐標,類別與類別預測結果相對應。類別預測輸出結果經歸一化指數函數(Softmax函數)處理,坐標預測輸出結果經S型函數(Sigmoid函數)處理。
3 數據集采集與處理
數據集的采集與標注直接影響模型訓練的準確性。本文數據集采集設備為4路180°廣角魚眼攝像頭,對所采集圖像中車位角中心點的坐標和車位入口中心點的坐標分別進行標注。車位角中心點坐標為2條車位線中線交叉點坐標,車位入口中心點坐標為車位入口對應2個車位角中心點中點的坐標。數據集標注示意如圖5所示?!癟”型車位角通常為2個相鄰車位共用的車位角,本文的標注方式下單幅圖像樣本中單個車位角只存在唯一的車位角中心點標注結果。
為匹配后續(xù)的模型訓練與測試,在保存坐標值時對標注信息進行歸一化處理,使所有坐標值均映射至0~1范圍內:
x′=x/W (1)
y′=y/H (2)
式中:x、y分別為圖像坐標系下的橫、縱坐標,W、H分別為圖像的長度、寬度,x′、y′分別為經過歸一化處理后的橫、縱坐標。
本文數據集分別采集了晴天、雨天、室內等不同場景、不同車位線劃線方式下的5 530張原始魚眼圖像,包括車位線磨損以及車位角遮擋嚴重的場景圖像,其中,晴天與雨天的數據量比例為3∶1,清晰車位與非清晰車位比例為4∶1,按場景類別選取其中20%的數據構成后續(xù)離線測試的測試集。在模型訓練過程中按一定概率對訓練圖像隨機采用顏色空間轉換、直方圖均衡化、隨機尺度裁剪等傳統(tǒng)圖像處理方法實現模型輸入圖像的增強[12],如圖6所示,以達到擴充數據集和增強模型泛化能力的目的。在模型訓練階段,多種圖像增強算法的引入能夠較好地提高模型訓練的泛化性能。另外,在灰度圖轉換中,會將單通道的灰度圖重新轉化為三通道圖像,以適配模型的輸入尺寸。
4 模型訓練與結果
4.1 自動泊車車位感知模型損失函數
本文模型的輸出序列表示為yi′=(ci′,pi′),其中pi′為預測點i的坐標,ci′為預測點i對應類別的置信度,i∈[1, N],N為預測的目標數量,本文取N=32個;對應真值序列表示為yi=(ci,li),其中l(wèi)i為點i的真實坐標,ci為點i對應類別的置信度,i∈[1,N]。使用二元匹配保證在32個預測點與真實標簽點之間實現最大匹配,標簽點不足32個時用空值按對應類別進行補齊操作,以保證訓練過程中數據能夠絕對對齊。定義二元匹配的匹配策略δ′為:
與原始二元匹配算法不同,本文使用歐式距離作為點與點之間的距離度量:
式中:δ(i)為與第i個目標匹配的邊界框的索引值,p′δ(i)(ci)為目標被預測為對應類別的概率,li為樣本對應坐標真值集合中的二維向量,p′δ(i)為通過二元匹配算法與二維真值向量相匹配的二維預測值向量,Lp(li,p′δ(i))為坐標點li與坐標點p′δ(i)間的歐式距離,[1ci≠?]表示ci不為空時為1。
本文算法的損失函數S為:
式中:λi為權重系數,預測目標為車位角中心點、車位入口中心點時取值分別為1.0、0.2;γ為正則化系數,本文取為10-5;w為訓練網絡權重。
式(5)等號右側的前半部分為分類損失,后半部分為坐標預測損失。本文預測對象分為車位角中心點和車位入口中心點兩類,兩類對象對精度的要求存在差異。車位角中心點的偏差會直接導致車位邊界的識別出現誤差和車位的姿態(tài)出現畸形,而車位入口中心點的預測僅用于車位的輔助判別,其識別結果只需在目標車位兩個外側車位角點中間區(qū)域即可,故兩類點在損失函數中的權重系數差異較大。
4.2 自動泊車車位感知模型訓練結果評價
為保證模型訓練階段數據能夠對齊,針對單張圖片輸入,本文模型恒定得到32個點的坐標預測結果和每個坐標預測結果對應的類別可信度。為了評估模型的預測性能,通過準確率、召回率、平均誤差對模型進行評價。其中,準確率為預測正確的結果占總樣本的比例,召回率為數據集中標注目標被預測正確的概率。目標預測判定為正確的判定依據為預測點與實際點之間的誤差小于1%,兩個坐標點之間的誤差計算公式為:
式中:p為樣本的真實坐標值,p′為歸一化后本文算法的預測坐標值,ε為預測值與真實值之間的絕對誤差。
基于本文預測對象以點作為表征形式與傳統(tǒng)目標以矩形框作為表征形式的差異性,本文首先對每類預測點通過二元匹配算法確定模型預測結果與真值之間的對應關系,即確定預測結果中坐標點p′δ(i)為對真值中坐標點li的預測結果,計算p′δ(i)和li之間坐標系歸一化后的歐式距離||li,p′δ(i)||2作為誤差的度量標準,通過誤差是否小于閾值T判定是否檢測到目標。本文按照不同目標尺寸之間的比例關系,在計算車位角中心點之間距離時T取值為8.0像素,在計算空車位入口中心點之間距離時T取值為16.0像素,坐標點均為換算至實際圖像坐標系下后的像素坐標值。
為了與傳統(tǒng)計算機視覺算法進行對比,本文基于文獻[6]設計了相應的車位檢測算法。測試數據集包含晴天、雨天、室內等場景下的不同車位線劃線方式下的1 906張180°魚眼圖像,本文算法與傳統(tǒng)視覺算法的測試結果如表1和表2所示。表1中測試指標為選取圖像樣本中視野范圍15 m內的目標作為原始數據的統(tǒng)計結果,其中包含7 287個車位角和675個空車位;表2的中測試指標為選取視野范圍10 m內的目標作為原始數據的統(tǒng)計結果,其中包含3 621個車位角和666個空車位。為保證評測算法的準確性,平均誤差的計算均以圖像輸入尺寸512×512作為基準值。
由表1和表2可知,與傳統(tǒng)視覺算法相比,對于近視野范圍(10 m)內的車位角中心點,本文模型平均誤差減小了13.9%,對于遠視野范圍(15 m)內的車位角中心點,本文模型平均誤差減小了24.6%。從對比結果可以看出,本文模型的準確率和召回率均有所提高,平均誤差較大幅度降低,且在遠視野范圍具有更好的效果。針對雨天、車位線磨損以及車位角遮擋嚴重的場景,本文模型也具有更高的適應性。
為驗證本文算法的有效性,對各攝像頭進行內參和外參的標定,通過標定得到的參數將所有預測點映射至車輛坐標系下,統(tǒng)計可得:近距離車位角中心點預測結果平均誤差控制在3 cm以內,能夠滿足實際應用中對準確度的要求;不同視野范圍的空車位入口中心點準確度均可達到90%以上。
魚眼鏡頭成像過程中引入了畸變,圖像單個像素點代表的實尺度可能存在差異,導致像素坐標系下的偏差無法真實反映無畸變條件下的偏差。為充分驗證本文算法在實際應用中的識別精度,對樣車上4路攝像頭的內、外參數分別進行標定,將模型的識別結果映射至車輛坐標系下,圖像對應的標注結果按同樣的方式映射至車輛坐標系下。通過坐標轉換換算至車輛坐標系下,車位入口中心點的預測結果小于10 cm,遠小于車位入口的實際寬度,能夠滿足實際應用對預測精度的要求。
不同場景、不同車位劃線方式下實車測試效果如圖7所示,其中紅色點表示車位角中心點,綠色點表示車位中心點。
5 結束語
本文基于CNN模型對輸入圖像進行特征提取,利用Transfomer模型的“編碼-解碼”機制對CNN提取到的多層圖像特征平鋪后進行計算推理,通過前饋神經網絡推理得到車位入口中心點、車位角中心點的預測結果。通過包含不同場景、不同車位類型數據集的測試,相比于傳統(tǒng)視覺算法,視野范圍10 m內的車位角中心點識別平均誤差降低了13.9%,在3 cm以內,視野范圍15 m內的車位角中心點識別平均誤差降低了24.6%,針對遠視野、雨天、車位線磨損以及車位角遮擋嚴重的場景,CNN-Transformer模型也具有更好的效果。
但目前模型對于地下室光線昏暗以及車位磨損嚴重等場景識別率較低,后續(xù)需通過增加更多類似場景數據提高識別率。同時,模型對算力要求較高,后續(xù)可通過模型壓縮和蒸餾等方式降低算力需求。
參 考 文 獻
[1] 張春洲, 石晶. 基于ADAS實驗平臺的自動泊車系統(tǒng)研究[J]. 汽車實用技術, 2019(16): 41-42.
ZHANG C Z, SHI J. Research on Automatic Parking System Based on ADAS Experimental Platform[J]. Automobile Applied Technology, 2019(16): 41-42.
[2] 朱強. 基于全景相機的自動泊車系統(tǒng)設計與實現[D]. 成都: 電子科技大學, 2020.
ZHU Q. Design and Implementation of an Automatic Parking System Based on a Panoramic Camera[D]. Chengdu: University of Electronic Science and Technology of China, 2020.
[3] 楊科, 王煒斌, 徐維慶. 基于小型深度學習網絡的車位檢測方法[J]. 汽車實用技術, 2020(13): 155-158.
YANG K, WANG W B, XU W Q. A Parking Spot Detection Method Based on Small Deep Learning Network[J]. Automobile Applied Technology, 2020(13): 155-158.
[4] WU Z Z, SUN W W, WANG M, et al. PSDet: Efficient and Universal Parking Slot Detection[C]// 2020 IEEE Intelligent Vehicles Symposium (IV). Las Vegas, NV, USA: IEEE, 2020: 290-297.
[5] 朱旺旺, 黃宏成, 馬晉興. 基于圖像識別的泊車車位檢測算法研究[J]. 汽車工程, 2019, 41(7): 744-749.
ZHU W W, HUANG H C, MA J X. A Research on Parking Space Detection Algorithm Based on Image Recognition[J]. Automotive Engineering, 2019, 41(7): 744-749.
[6] 黃晨, 劉澤, 羅禹貢, 等. 基于背景光照去除和連通區(qū)域的車位檢測[J]. 汽車工程, 2020, 42(1): 47-51.
HUANG C, LIU Z, LUO Y G, et al. Parking Space Detection Based on Background Illumination Removal and Connected Regions[J]. Automotive Engineering, 2020, 42(1): 47-51.
[7] VASWANI A, SHAZEER N, PARMAR N, et al. Attention is All You Need[C]// Proceedings of the 31st International Conference on Neural Information Processing Systems. NY, USA: Curran Associates Inc., 2017: 6000-6010.
[8] ZHANG Z Y. Flexible Camera Calibration by Viewing a Plane from Unknown Orientations[C]// Seventh IEEE International Conference on Computer Vision. Kerkyra, Greece: IEEE, 1999.
[9] 范勇, 周敬濱, 王傳珂, 等. 一種實用的平板高精度攝像機標定方法[J]. 計算機測量與控制, 2010(1): 172-174.
FAN Y, ZHOU J B, WANG C K, et al. Practical High Precision Camera Calibration Method from a Plane[J]. Computer Measurement and Control, 2010(1): 172-174.
[10] CARION N, MASSA F, SYNNAEVE G, et al. End-to-End Object Detection with Transformers[C]// European Conference on Computer Vision. Cham, Switzerland: Springer, 2020.
[11] ZHU X Z, SU W J, LU L W, et al. Deformable DETR: Deformable Transformers for End-to-End Object Detection[EB/OL]. (2021-03-18)[2023-03-01]. https://arxiv.org/abs/2010.04159.
[12] SHORTEN C, KHOSHGOFTAAR T M. A Survey on Image Data Augmentation for Deep Learning[J]. Journal of Big Data, 2019, 6(1): 1-48.