楊科 王煒斌 徐維慶



摘 要:針對車載嵌入式系統開發需求,文章提出一種小型深度學習網絡的車位檢測方法。環視圖像的車位角點具有大小相近、分布均勻的特點,將整個環視圖像分割成若干個子圖像,裁剪深度網絡模型結構,使用小網絡對各個子圖像進行車位角點檢測,可以有效降低大圖像高算力的要求。實驗數據表明,以384*640圖像大小為例,將原圖像分割成128*128子圖像,子圖像的深度網絡算力要求為原圖像的1/15,而相應的檢測性能沒有損失。
關鍵詞:深度學習;車位檢測;環視圖像;網絡裁剪
中圖分類號:U461.99? 文獻標識碼:A? 文章編號:1671-7988(2020)13-155-04
A Parking Spot Detection Method Based On Small Deep Learning Network
Yang Ke, Wang Weibin, Xu Weiqing
( Pan Asia Technical Automotive Center Co., Ltd, Shanghai 201208 )
Abstract: According to the development requirement of vehicle embedded system, a parking spot detection based on small deep learning network is proposed. Due to the corner points of parking spot in the surrounding image have the similar size and uniform distribution, the whole surrounding image can be divided into several sub images. Correspondingly, the deep learning network model can be pruned. Using small network to detect the corner points in the sub images can effectively reduce the demand of high computing calculation. The experimental data show that, taking 384*640 image as an example, the original image is divided into several 128*128 sub images, and the calculation of each sub image is 1/15 of the original image. Meanwhile the detection performance of sub image has no loss, compared with the original image.
Keywords: Deep learning; Parking spot detection; Surrounding image; Network pruning
CLC NO.: U461.99? Document Code: A? Article ID: 1671-7988(2020)13-155-04
前言
自動泊車系統能夠有效解決城市停車難問題,近些年來是智能駕駛領域一個重要的研究方向。快速、準確地獲取車輛周邊的車位信息,是實現自動泊車功能的一個重要前提。基于超聲波傳感器的空間車位檢測方法,通過處理周邊障礙物回波信息,實現空閑車位檢測,當前該類系統已配置于多個品牌的量產車型。基于攝像頭傳感器的視覺車位檢測方法,通過檢測圖像中的車位線(或車位角點)來獲取車位信息,視覺信息和超聲波信息相互補充,能夠有效增強車位檢測性能。視覺檢測方法又細分為傳統視覺檢測[1]和深度學習檢測[2]兩種方法。深度學習檢測方法通過不同場景圖像采集和網絡模型訓練,能夠適應于各類停車場的環境變化,在視覺檢測中具有較好的檢測優勢。
深度學習網絡結構復雜,隨著網絡層數的增加,檢測性能得到提升,同時會占用更多的運算資源。在車載平臺上,處理系統通常不會有充足的運算能力,因此在保障檢測性能的前提下,如何合理地使用車載運算資源,成為一個亟需解決的問題。本文開展基于深度學習的車位檢測方法研究,網絡模型的輸入圖像選用360環視圖像,該類圖像上的車位角點具有大小相近、分布均勻的特點,通過將環視圖像分割為若干個子圖像,同時對深度網絡模型進行相應的裁剪,實現“小網絡”對“子圖像”的車位角點檢測。最后實驗數據驗證了該方法的有效性。
1 基礎網絡模型
經典的深度學習檢測模型有Faster-RCNN[3]、SSD[4]、YOLO[5]等,其中YOLO模型經過多次改進和性能提升,第三代YOLO(YOLOv3)在檢測性能和運算速度上都有較好的表現,因此本文選用YOLOv3作為基礎網絡模型。
YOLOv3網絡模型如圖1所示,輸入圖像為RGB三通道彩色圖像,通過多組卷積(Convolution,簡寫為Conv.)處理,對輸入圖像進行特征提取;然后進行上采樣(Up Samp -ling)和拼接(Concatenate)處理,可以獲得不同分辨率下的特征圖(feature map);最后通過預測(Predict)處理,獲取圖像中待檢測目標的位置和類別信息。
在圖1中,以輸入圖像大小384×640為例,經過5組卷積操作處理,輸出的特征圖大小為12×20,然后進行1次上采樣處理,特征圖大小變為24×40,將該特征圖和原先24×40特征圖進行拼接處理,實現兩個特征圖的信息融合,可以更好地獲取大類目標的特征。同理,通過上采樣和拼接可以獲取大小為48×80的特征圖。分別對不同大小的特征圖進行檢測,可以實現多尺度目標檢測。
如圖1所示,給網絡輸入一幅圖像,通過卷積、上采樣、拼接等處理,YOLOv3可以直接輸出待檢測目標的相關信息,因此YOLOv3具有較快的檢測速度。另外,YOLOv3能夠實現多尺度目標檢測,因此YOLOv3具有較好的檢測性能。
2 小型網絡模型研究
在車輛前、后、左、右各安裝一個魚眼攝像頭,四路原始魚眼圖像經過魚眼校正、透視變換、圖像拼接等處理,得到一幅完整的360度環視鳥瞰圖。在環視圖像中,能夠獲取車輛周邊全視域的車位角點信息,本文選用環視圖像作為網絡輸入圖像。通過YOLOv3對整幅圖像進行檢測,可以一次性檢測到圖像中所有車位角點,但是該檢測模型要占用大量的運算資源,不適用于車載處理平臺開發。
如圖2所示,“L型”或“T型”車位角點具有相近的形狀大小,并且均勻地分布在環視圖像上,將整幅圖像分割成若干個子圖像,分別把各個子圖像作為網絡輸入,可以有效地降低網絡模型對運算資源的要求。在圖2(a)中,環視圖像大小為384×640,用窗口大小128×128對圖像進行分割,可以得到15個子圖像。考慮車位角點位置有可能會落在分割線上,如圖2(b)所示,采用窗口滑動的方式,在水平和垂直方向上依次滑動窗口,實現不同位置的車位角點圖像截取。在圖2(b)中,如果每次滑動64個像素,水平方向可以滑動5個窗口,垂直方向可以滑動9個窗口,總共可以獲取45個子圖像。
小型網絡模型如圖3所示,從原始的環視圖像中分出一塊子圖像,并且將這塊子圖像作為網絡輸入圖像。由于輸入圖像的形狀變小,對整個網絡模型進行等比例的裁剪,相應的特征圖也隨之變小。假設圖3中的子圖像大小為128×128彩色圖像,經過第一組卷積處理,特征圖的大小為64×64,對比圖1中卷積后特征圖的大小192×320,卷積操作所需的運算次數降為原先的1/15。同理,圖3中的其它卷積和上采樣操作也是原運算次數的1/15。對比圖1模型和圖3模型,模型的各個功能模塊保持不變,而整個模型被裁剪成一個“瘦小”模型。
通過窗口滑動能夠獲得完整的車位角點,同時滑動所得的子圖像存在圖像冗余問題。觀察圖2可以發現,通常只有幾個子圖像包含有效的車位角點,大多數子圖像不包含車位角點信息。對所有子圖像進行初步篩選,剔除無效的子圖像,只對有效的子圖像進行檢測,可以明顯地提高整幅環視圖像的檢測效率。子圖像篩選可以歸結為車位角點有無的二分類問題,對比各類經典的目標分類模型,綜合考慮模型的實時性和分類性能,選用目標分類模型AlexNet[6],修改網絡只輸出車位角點有無兩類結果。使用帶有角點有無的標簽圖像,對分類模型進行訓練,并使用訓練后的網絡進行二分類,可以實現有效子圖像的初步篩選。
相鄰的兩個滑動子圖像,可能會包含同一個車位角點,需要對比兩個子圖像的檢測結果,選擇兩者較優的結果作為最終輸出。小型網絡的輸出結果包含預測框位置信息(x、y、w、h)和預測框置信度(confidence),(x、y)表示預測框的中心點坐標,w表示預測框的寬度值,h表示預測框的高度值。以原始環視圖像的坐標系為統一坐標系,對相鄰子圖像的檢測結果進行坐標轉換,并計算兩者預測框的交并比(Intersection over Union),如果交并比超過門限值,那么判定兩個預測框是同一個車位角點,然后根據預測框置信度,選擇置信度較高的,作為當前這個車位角點的預測結果。交并比計算公式為:
(1)
式中:Soverlap為兩個框交集區域的面積;Sunion為兩個框并集區域的面積。
以下給出整個車位檢測方法的主要步驟:
步驟1:環視圖像分割,采用窗口滑動的方式對環視圖像進行分割,獲得若干個子圖像;
步驟2:網絡模型裁剪,根據輸入子圖像的大小,調整網絡參數來實現網絡裁剪;
步驟3:模型訓練,使用標注后的子圖像,對分類模型AlexNet和裁剪后YOLOv3模型進行訓練;
步驟4:車位角點有無判定,使用AlexNet對子圖像進行角點有無二分類判定;
步驟5:子圖像車位角點檢測,使用裁剪YOLOv3對子圖像進行角點檢測,獲得角點位置和置信度信息;
步驟6:重疊角點判定和選擇,計算相鄰子圖像的預測框的交并比值,選擇置信度較高的預測框,作為最終檢測信息輸出。
3 仿真實驗
本次仿真實驗基于Ubuntu操作系統,車位檢測的深度學習框架使用Darknet框架。深度學習網絡的輸入圖像選用360環視圖像,圖像的原始大小為384×640,圖像分割后的大小為128×128。實驗所用數據來自于實車采集,一共選取了2368張環視圖像,其中訓練集2135張圖像,測試集233張圖像。對環視圖像進行分割,所得的子圖像用于小型網絡模型,挑選包含車位角點的有效圖像6108張,其中訓練集5519張,測試集589張。
通過對比召回率(recall)-精確度(precision)曲線,可以有效地衡量深度學習模型的整體性能。如圖4所示,本文小型網絡模型和標準YOLOv3模型的兩條曲線相近。平均精度值是召回率-精確度曲線的量化指標,它表示不同召回率對應的精確度的平均,通過計算曲線下的面積可以得到該值。分別計算圖4中的兩條曲線所圍成的面積,標準模型的平均精度值是0.8772,本文模型的平均精度值是0.8714,因此可以認為本文模型基本上沒有性能損失。另外,分別統計兩個模型的運算資源開支,標準模型需要占用92.742 BFLOPs(billion float operations per second,每秒十億浮點運算次數),本文模型需求占用6.188 BFLOPs,本文模型所需的運算資源僅為標準模型的1/15。
圖5是不同天氣條件和地面材質的車位檢測結果,圖中實線是標準YOLOv3模型的檢測結果,虛線是本文小型網絡模型的檢測結果。小型網絡對分割后的128×128子圖像進行檢測,網絡輸出的坐標位置經過坐標轉換,重新映射到原始環視圖像上。圖5(a)是陰天、柏油地面上的垂直車位檢測結果。圖5(b)是晴天、柏油地面上的斜車位檢測結果,圖中部分車位有車輛陰影的影響,但是各個車位角點仍被有效檢測。圖5(c)是晴天、水泥地面上的垂直車位檢測結果。由圖5可知,對于不同的天氣條件和地面材質,本文方法都有較好的檢測效果。對比圖5中的實線和虛線框,相對于標準模型的檢測結果,本文小型網絡具有相近的檢測性能。
4 結論
本文提出小型深度學習網絡車位檢測方法,通過圖像分割將環視圖像分成若干個子圖像,并對YOLOv3模型進行網絡結構裁剪,實現小網絡模型對子圖像的車位檢測。相比較于原始YOLOv3模型,裁剪后的小型網絡模型沒有檢測性能損失,但是在硬件資源要求方面,小型網絡模型只需要較少
的運算資源開支,能夠較好地適用于車載嵌入式系統開發。
參考文獻
[1] 朱旺旺,黃宏成,馬晉興.基于圖像識別的泊車車位檢測算法研究[J].汽車工程, 2019, 41(7): 744-749.
[2] 徐樂先,陳西江,班亞,等.基于深度學習的車位智能檢測方法[J]. 中國激光,2019,46(4): 222-233.
[3] Shaoqing Ren, Kaiming He, Ross Girshick, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networ -ks[J].IEEE Transactions on Pattern Analysis and Machine Intelli -gence, 2017, 39(6):1137-1149.
[4] Liu W,Anguelov D,Erhan D,et al.SSD:single shot multiBox detector [C].European Conference on Computer Vision,2016:21-37.
[5] Redmon J,Farhadi A.YOLOv3:an incremental improvement[J].ar -Xiv:1804.02767,2018.
[6] Krizhevsky A,Sutskever I, Hinton G E. ImageNet Classification with Deep Convolutional Neural Networks[J].Advances in Neural Infor -mation Processing Systems,2012, 25(2): 2012.