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