馬中原,彭育輝,黃煒
(福州大學機械工程及自動化學院,福建 福州 350108)
隨著我國汽車保有量不斷增長,城市停車難問題日益突出,自動泊車技術作為解決停車難問題的有效手段成為智能駕駛交通領域研究的重點之一[1].車位檢測是實現(xiàn)自動泊車的重要前提,相較于基于超聲波雷達的車位檢測方法,基于圖像的車位檢測方法可以獲得汽車周圍更豐富的環(huán)境信息,是車位識別的重要技術路線.
基于視覺圖像的車位檢測方法近年來取得了積極進展.Hamada等[2]使用Hough變換提取車位線,并根據(jù)幾何約束推斷停車位.Zhang等[3]利用滑動窗口和AdaBoost分類器技術檢測車位角,通過角點組合推斷車位.Li等[4]將車位線和車位角檢測結(jié)合起來,進一步提高車位檢測性能.但這些方法都是基于低級的視覺特征,容易受到陰影等環(huán)境因素干擾.隨著卷積神經(jīng)網(wǎng)絡技術的快速發(fā)展,Zhang等[5]提出一種基于深度學習的車位檢測方法DeepPS,首先利用YOLOv2檢測車位角點,然后通過局部圖像分類網(wǎng)絡和模板匹配獲取車位類型和車位方向,該方法能有效檢測出各種車位,但需要兩個深度神經(jīng)網(wǎng)絡配合,使得檢測效率較低.Huang等[6]使用深度學習方法對車位角點的位置、類型和方向進行預測,然后利用幾何規(guī)則對角點進行分組以推斷車位,但該方法只能檢測平行或者垂直車位.Jiang等[7]使用語義分割方法檢測車位,利用Mask RCNN檢測車位角點,并生成掩碼,然后利用線段檢測等后處理方法提取、組合車位線來推斷車位.Li等[8]應用YOLOv3檢測車位槽頭和角點,然后利用先驗幾何信息推斷出車位,但該方法需要復雜的基于規(guī)則的方案來推斷車位方向,并且由于網(wǎng)絡參數(shù)量較大,使檢測過程計算較為復雜,難以用于工程實踐.Min等[9]使用圖神經(jīng)網(wǎng)絡方法檢測車位,基于深度神經(jīng)網(wǎng)絡檢測車位角點,利用圖神經(jīng)網(wǎng)絡聚合相鄰角點以生成停車位,但該方法缺少方向性信息,無法用于斜車位檢測.
綜上所述,本研究提出一種基于改進YOLOv5的車位檢測方法(orientation and Ghost YOLOv5,OG-YOLOv5),在實現(xiàn)車位檢測網(wǎng)絡輕量化的同時保證了檢測精度.與以往的車位檢測方法相比,所提方法基于單階段網(wǎng)絡實現(xiàn)端到端訓練,無需經(jīng)過復雜的后處理程序便可以獲得完整的車位信息.
與DeepPS[5]和VPSNet[8]方法不同,所提算法將車位角點、入口線檢測和分隔線方位回歸結(jié)合起來,把車位檢測問題轉(zhuǎn)化為基于單階段網(wǎng)絡的多目標檢測和方位回歸問題.算法的總體架構(gòu)如圖1所示,將車位圖輸入OG-YOLOv5網(wǎng)絡中,通過角點配對算法對預測結(jié)果中的角點進行配對,進而推理出各種類型的完整車位,且不受車輛自身位置的影響.同時,通過檢測尺度裁剪、Ghost卷積替換、添加ECA注意力機制和優(yōu)化損失函數(shù)對網(wǎng)絡進行改進,在提高推理速度的同時保證檢測精度.
圖1 算法總體架構(gòu)Fig.1 Algorithm architecture
圖2為車位角點和入口線的示例圖像,它們之間的幾何位置關系如圖3所示.
圖2 車位角點和入口線Fig.2 Marking points and entrance lines
圖3 幾何位置關系Fig.3 Geometric position relationships
圖中,車位角標注信息由中心點m(x,y)、邊框?qū)挾萕m和高度Hm等參數(shù)組成.入口線標注信息的計算式為
(1)
式中:t(x,y)為入口線的中心點;Wt和Ht分別為入口線邊框的寬度和高度.
分隔線方位信息由2D單位向量表示,通過車位角點mi和分隔線另一端點si來計算,為方便網(wǎng)絡的讀取和訓練,將其歸一化處理,即
(2)
考慮到本研究基于逆透視圖進行車位檢測,待檢測目標尺度穩(wěn)定,為減少網(wǎng)絡模型的參數(shù)量和計算量,提出在網(wǎng)絡特征融合部分對尺度變化范圍進行精簡,即將3個檢測尺度減少至2個,相應地減少C3模塊、卷積層和上采樣操作等,從而降低計算成本.
本研究應用GhostNet網(wǎng)絡[10]中的Ghost模塊替換YOLOv5網(wǎng)絡中的部分卷積層,實現(xiàn)模型的輕量化.Ghost模塊由普通卷積得到基礎特征圖,進行線性操作獲得冗余特征圖,在指定維度將這兩部分特征圖拼接起來,既保證檢測精度,又減少網(wǎng)絡計算復雜度,獲得更輕量的車位檢測網(wǎng)絡.
輕量卷積神經(jīng)網(wǎng)絡的參數(shù)量越少則運行效率越高,但有限的參數(shù)量也是限制檢測效果的主要因素.為此,通過在網(wǎng)絡主干中添加ECA注意力機制[11]達到提升模型性能的目的.
構(gòu)建OG-YOLOv5模塊如圖4所示.其中,圖4(a)為Ghost模塊,引入ECA注意力機制,設計如圖4(b)所示的ECA-Ghost Bottleneck模塊,得到如圖4(c)所示的ECA-C3Ghost模塊.OG-YOLOv5網(wǎng)絡結(jié)構(gòu)如圖5所示.
圖4 構(gòu)建OG-YOLOv5網(wǎng)絡所用的模塊Fig.4 Modules used to construct the OG-YOLOv5 network
圖5 OG-YOLOv5網(wǎng)絡結(jié)構(gòu)Fig.5 Network structure of OG-YOLOv5
在本研究車位檢測任務中,損失函數(shù)由分類損失、置信度損失、邊框預測損失和方位回歸損失這4部分組成.對于置信度損失和分類損失,本研究任務中采用深度學習中常見的交叉熵損失函數(shù)進行計算,以加快模型收斂.常見的目標框位置損失函數(shù)有GIoU、DIoU、CIoU,以及基于IoU損失的統(tǒng)一冪化α-IoU[12].經(jīng)過對比實驗,使用α-CIoU來計算目標框的定位損失,可表示為
(3)
(4)
式中: IoU為預測框和真實框(ground truth,gt)的交并比;b和bgt分別為預測框和真實框的中心點;ρ(·)為歐式距離;c為包圍預測框與真實框最小外接矩形的對角線長度;β為權(quán)重系數(shù);v為長寬比一致性參數(shù);wgt/hgt和w/h分別為真實框和預測框的寬高比;α為power參數(shù).
在方位回歸任務分支中,采用SmoothL1損失函數(shù),即
(5)
(6)
OG-YOLOv5車位檢測網(wǎng)絡的預測元素如圖6所示.圖中,Cx、Cy代表預測框的中心,W、H代表預測框的寬和高,P0代表物體置信度,P1、P2分別代表預測類別概率,Ox、Oy代表預測的方位信息.
圖6 OG-YOLOv5網(wǎng)絡的預測元素Fig.6 Components of the OG-YOLOv5 network prediction
為得到完整車位信息,利用角點配對算法對預測到的車位角進行配對,實現(xiàn)完整車位信息推理.如圖7所示,將車位角m1、m2和入口線邊界框ti之間的關系分為6種情況.
圖7 入口線和車位角點的位置關系Fig.7 Location relationship of marking points and entrance line
(7)
對于情況(d),入口線邊框ti中不包含車位角,且ti的置信度大于98%,則認為ti包含有效的入口線.通過計算邊界框ti對角線及其附近區(qū)域的像素平均值,確定角點所在的對角線,即有
(8)
式中: APVi是對角線區(qū)域A的平均像素值;(x,y)和N分別為區(qū)域A中像素的坐標及像素總數(shù).
為獲得完整車位,根據(jù)配對角點間的距離來判斷車位類型,如圖8所示.如果角點距離大于閾值dt,則為平行車位,其分隔線長度為d1;如果角點間的距離小于閾值dt,則為垂直車位或者斜車位,其分隔線長度為d2.
圖8 完整車位推理Fig.8 Complete parking slot inference
圖中車位的4個頂點,m1和m2是成功配對的車位角點,m3和m4是車位的另兩個不可見角點,其計算式為
m3=diOp+m2;m4=diOp+m1
(9)
式中:Op為角點配對算法得到的方位值;di為對應分隔線的長度.
實驗環(huán)境為Ubuntu1 6.04操作系統(tǒng),服務器硬件配置為Intel Xeon Silver 4108處理器、NVIDIA GTX 1080 Ti顯卡、32 GB運行內(nèi)存.使用Pytorch 1.7深度學習框架和Python 3.8 編程語言實現(xiàn)本研究的車位檢測網(wǎng)絡,并使用cuda 10.1和cudnn 7.6.5對GPU進行加速.
實驗數(shù)據(jù)集共包含27 536張車位圖像[5,13],涵蓋平行車位、垂直車位和斜車位,以人工方式標注定
表1 超參數(shù)設置
義的車位信息,通過調(diào)整亮度、添加高斯噪聲進行數(shù)據(jù)增強.為更準確地預測分隔線方位,每隔5°對數(shù)據(jù)集進行一次旋轉(zhuǎn)增強.在模型訓練階段,訓練集和驗證集比例為7∶3,迭代批量大小設置為64,初始學習率為1×10-3,采用SGD優(yōu)化算法,動量為0.843,衰減系數(shù)為0.000 36,最大迭代Epoch為120,文中設置的超參數(shù)如表1所示.
模型的評價指標為mAP@0.5、參數(shù)量、浮點運算量(FLOPs)、GPU和CPU檢測時間及模型大小.OG-YOLOv5訓練時的總損失值、方位預測損失值及mAP@0.5隨著迭代次數(shù)的變化趨勢如圖9所示.
圖9 OG-YOLOv5訓練結(jié)果Fig.9 Results of OG-YOLOv5 training
從圖9(a)中可以看出,總損失在訓練初期迅速下降,表明網(wǎng)絡正在快速擬合,模型的學習效率較高;當Epoch為70時,損失曲線開始變得平緩,損失值穩(wěn)定在0.019 0附近,模型達到穩(wěn)定狀態(tài).從圖9(b)中可以獲知方位回歸損失值也有類似變化,最終穩(wěn)定在0.001 8,表明所添加的方位回歸分支可以得到很好訓練.訓練時的mAP@0.5的變化趨勢如圖9(c)所示,模型在經(jīng)過30個Epoch的訓練后,模型在驗證集上的平均精度約為90%,并隨著迭代次數(shù)的增加穩(wěn)步上升,最終穩(wěn)定在98.8%.
為了驗證本網(wǎng)絡改進方法的有效性,通過消融實驗來逐步驗證OG-YOLOv5網(wǎng)絡結(jié)構(gòu)改變所引起的性能變化,消融實驗結(jié)果如表2所示.
表2 實驗對比
由表2可知,基礎網(wǎng)絡的mAP@0.5為98.2%,模型1裁剪了80 px × 80 px檢測輸出層,參數(shù)量和計算量分別減少8.1%和17.6%,對應的mAP@0.5減少0.4%;模型2通過卷積替換,網(wǎng)絡參數(shù)量和計算量分別降至原來的32.0%和28.3%,但mAP@0.5也較原始網(wǎng)絡降低2.0%;模型3引入ECA注意力機制,在參數(shù)量和計算量幾乎不變的情況下,mAP@0.5提高1.9%,表明ECA在參數(shù)有限的情況下更加關注重要特征通道的學習,起到提高模型檢測精度的作用;最后,采用α-CIoU作為邊界框回歸損失函數(shù),相較于模型3,mAP@0.5提高0.7%,表明α-CIoU作為邊界框回歸損失函數(shù)可改善模型的檢測精度.另外,OG-YOLOv5在GPU和CPU上的檢測時間相較于原始YOLOv5分別減少16.2%和28.1%,表明OG-YOLOv5部署在計算資源有限的車載平臺上更具優(yōu)勢.
為進一步驗證OG-YOLOv5在精度和效率方面的優(yōu)越性,與其他SOTA模型進行對比實驗,結(jié)果如表3所示.
表3 不同網(wǎng)絡模型對比
由表3可知,相較于YOLOv3和SSD模型,OG-YOLOv5在具有相近mAP的同時,大幅降低了模型參數(shù)量、計算量和模型大小.相較于輕量級的YOLOv3-tiny和YOLOv5s模型,OG-YOLOv5的平均精度分別提高9.9%和0.6%,且計算量減少65.1%和71.7%,模型規(guī)模也減少73.0%和67.1%,體現(xiàn)本改進模型具有較好的應用價值.
采用文獻[5]提供的評價標準對所提車位檢測方法進行定量評價,與車位檢測領域的SOTA方法(DeepPS和VPSNet)在驗證集上進行比較,檢測性能如表4所示.其中,Δ位置表示位置誤差,Δ方向表示方向誤差.
表4 不同車位檢測方法性能比較
由表4可知,本方法在準確率和召回率方面比DeepPS方法分別高出3.17%和2.62%,其原因在于DeepPS方法組合了深度學習和人工設計的規(guī)則,無法實現(xiàn)綜合優(yōu)化;而本方法基于端到端可訓練的單階段網(wǎng)絡實現(xiàn),可以進行綜合優(yōu)化.相比于VPSNet方法,本方法檢測準確率和召回率分別提高3.51%和1.24%,其原因在于針對車位檢測任務對深度學習網(wǎng)絡做了適應性改進,且本方法將車位方位加入到網(wǎng)絡中進行訓練,在預測階段直接從模型中獲得車位方位,能提供更準確的車位信息.由于本方法對YOLOv5網(wǎng)絡做了輕量化改進,在檢測時間方面具有較大優(yōu)勢.在車位定位方面,本方法取得最好效果,主要原因在于應用α-CIoU作為邊界框回歸損失函數(shù),能更準確地預測目標邊界框,相對應地提高了車位定位精度.另外,本方法的方向誤差較DeepPS方法減少36.4%,主要原因在于DeepPS方法是使用傳統(tǒng)的模板匹配方法估計車位方向,更容易受到光照等環(huán)境條件影響,而本方法的車位方位是由網(wǎng)絡預測得到,具有更高精度.本方法車位檢測結(jié)果如圖10所示.當圖像出現(xiàn)車位線嚴重破損、車位線被遮擋,以及地面光線反射等情況時,如圖11所示,目標置信度較低,會導致本車位檢測方法失敗.在后續(xù)的工作中將針對性地增加此類訓練集樣本,以解決上述問題.
圖10 車位檢測結(jié)果Fig.10 Results of parking slot detection
圖11 本方法檢測失敗情況Fig.11 Failure cases of the proposed method
針對自動泊車過程的車位檢測,提出一種基于改進YOLOv5的輕量級車位檢測方法OG-YOLOv5.該方法將車位角點、入口線檢測與分隔線方位回歸相結(jié)合,根據(jù)網(wǎng)絡預測結(jié)果可直接推斷出完整車位.與以往基于深度學習的車位檢測方法相比,本方法無需復雜后處理階段,即可實現(xiàn)車位檢測過程的綜合優(yōu)化.另外,通過檢測尺度裁剪、卷積替換實現(xiàn)模型輕量化;通過引入ECA模塊、優(yōu)化損失函數(shù)提高目標預測精度.實驗結(jié)果表明,本方法在檢測性能和定位精度方面優(yōu)于以往的方法,且大幅度降低網(wǎng)絡復雜度,提高車位檢測效率.后續(xù)研究將圍繞模型量化、車載設備端部署展開,逐步提高自動泊車系統(tǒng)的智能化水平.