王帥 楊建璽
摘要:針對智能停車庫中的泊車機器人視覺系統(tǒng)研究需求,提出一種基于雙目視覺的泊車機器人障礙物識別系統(tǒng)。通過雙目攝像頭進行圖像采集,利用張正友棋盤標定法進行雙目相機標定;采用Bouguet進行立體校正,將高斯濾波與拉普拉斯算子相結合進行圖像預處理;采用YOLO卷積神經(jīng)網(wǎng)絡對目標障礙物進行快速識別;利用區(qū)域匹配算法進行立體匹配并生成目標障礙物視差圖;通過成像點和目標障礙物的立體幾何關系計算得到目標障礙物的深度信息。實驗結果表明,該系統(tǒng)具有良好的實時性和較高精度,障礙物識別時間平均為0.0901s,在2600mm具有最佳測距精度,可為泊車機器人自動泊車提供保障。
關鍵詞:泊車機器人;雙目視覺;相機標定;立體匹配;YOLO卷積神經(jīng)網(wǎng)絡
DOI:10.11907/rjdk.191255
中圖分類號:TP303 文獻標識碼:A 文章編號:1672-7800(2019)012-0026-04
0引言
隨著人們生活水平的提高,汽車保有量呈井噴式增長,停車成為日常出行的難題,智能停車庫應運而生,而作為其核心運載工具的泊車機器人日趨受到科研人員關注,成為移動機器人領域應用重點。文獻[2]中提到的泊車機器人采用激光導航方式,可完成較高精度的導航,但遇到障礙物就會自動停止,需人工干預,不能獲取障礙物三維信息而進行自主避障;文獻[3]中由德國Serva Trans-port Systems GmbH公司研制的新型泊車機器人Ray雖已應用到德國杜塞爾機場,但由于其采用3D激光掃描與激光導航方式,運行速度不高,技術難度大,很難得到推廣;文獻[4]中的國產(chǎn)最新泊車機器人導航方式為“激光導引+磁釘導航”,雖能完成泊車導航,但前期需對停車場進行較大改造,鋪設磁釘,使機器人運行路徑固定,使用不方便,成本較大,缺少對泊車路徑上障礙物三維信息的檢測。
以上文獻中的泊車機器人雖能完成泊車導航功能,但均采用了激光導航技術,成本較高、技術難度大,不利于推廣,且缺少對泊車路徑上的障礙物(人為誤進、車輛附屬物脫落等)進行實時檢測并獲得障礙物三維信息的功能,易發(fā)生泊車事故。本文采用價格低廉的視覺傳感器代替成本較高的激光傳感器,利用雙目視覺技術,設計一套泊車機器人障礙物視覺識別系統(tǒng),利用Matlab進行雙目相機標定,通過高斯濾波與拉普拉斯算子相結合進行圖像預處理,采用YOLO卷積神經(jīng)網(wǎng)絡結合雙目視覺完成目標障礙物的快速識別,具有成本低、精度較高并能實時獲得豐富的障礙物信息等優(yōu)勢,彌補了國內泊車機器人缺少障礙物視覺識別功能的缺陷,為泊車機器人視覺避障奠定基礎。
1系統(tǒng)設計
障礙物視覺識別系統(tǒng)作為泊車機器人的“眼睛”,必須保證其實時性和準確性,故本系統(tǒng)搭建雙目視覺系統(tǒng)以實時獲得豐富的環(huán)境信息。
系統(tǒng)由軟、硬件系統(tǒng)兩部分組成。硬件系統(tǒng)包括兩臺MV-3000UC相機、LP-03微調長型云臺板、Inter i7、GTX970和16G內存,軟件系統(tǒng)包括VS2015、Matlab2016a、OpenCV 3.3.0和Ubuntu14.04。
系統(tǒng)工作流程為:通過雙目相機捕捉前方障礙物的目標圖像,采集的圖像經(jīng)過立體校正、預處理、YOLO障礙物識別、立體匹配和深度計算,實現(xiàn)泊車機器人障礙物視覺識別功能。系統(tǒng)工作流程如圖1所示。
2基于natlab的雙目相機標定
由于OpenCV中的StereoCalibrate標定結果極不穩(wěn)定,甚至會得到很夸張的結果,故本識別系統(tǒng)采用Matlab標定工具箱進行雙目相機標定,標定步驟如下:
(1)采用棋盤標定法,利用Microvision USBDevice為左、右相機采集38張棋盤標定圖片,并將圖片分別命名為leftl-38,rightl-38,棋盤格規(guī)格為25mmx25mm。
(2)左相機標定:在Matlab環(huán)境下,調用Camera Cali-bration ToolBox,選擇Standard選項,通過Image names自動讀取文件名為left的棋盤標定圖片。
(3)點擊Extract grid corners完成對每張棋盤標定圖片的角點檢測。檢測完成后利用Calibration進行左相機標定,驗證標定結果,去除誤差較大的圖像對,保存標定結果。
(4)重復步驟(2)、步驟(3)進行右相機標定。
(5)在Matlab環(huán)境下,通過stereo_gui指令調用StereoCamera Calibration Toolbox,分別載人左右相機的標定信息,執(zhí)行Run stereo calibration完成相機標定,雙目標定結果如圖2所示。
3基于openCV的Bouguet立體校正
根據(jù)雙目視差求解距離公式是在雙目視覺系統(tǒng)處在理想狀態(tài)下推導的,在實際操作中,由于相機畸變、相機裝配等原因,兩個相機完全共面行對準的成像平面是不存在的。因此,必須對其進行校正以減少實際誤差,校正步驟如下:
(1)共面:校正過程中兩個圖像平面均按照相機旋轉矩陣R旋轉一半,使重投影畸變最小。此時兩個相機圖像平面共面(畸變校正后光軸也平行),但是行不對準。
(2)行對準:極點是兩個相機坐標系原點的連線和圖像平面的交點,要想使得極點處于無窮遠處(行對準),就必須使兩個相機的圖像平面和兩個相機坐標系原點的連線平行,可通過計算Rrect矩陣使得極點處于無窮遠處。
將Rrect左乘到旋轉矩陣R分解后,作用于左右相機坐標系的矩陣,即可得到最終的立體校正矩陣。
4圖像預處理
由于電磁信號干擾、左右光照不同等因素,導致采集的圖像存在噪音,故本文設計一種圖像預處理算法以達到消除噪音并增強圖像邊緣的目的。
首先,將彩色圖像進行灰度化處理。鑒于噪音是在拍攝時產(chǎn)生的,故采用高斯濾波器消除此噪音,但高斯濾波器將圖像進行一定程度的模糊處理后圖像細節(jié)被破壞。針對這一問題,采用拉普拉斯算子銳化圖像,提高圖像邊緣信息。
5障礙物識別與深度計算
5.1基于YOLO卷積神經(jīng)網(wǎng)絡的障礙物快速識別
YOLO全稱You Only Look Once,是一個十分容易構造的目標檢測算法,它將目標區(qū)域預測和目標類別預測整合于單個神經(jīng)網(wǎng)絡模型中,可在準確率較高的情況下實現(xiàn)快速目標檢測與識別,適合泊車機器人應用環(huán)境。
YOLO卷積網(wǎng)絡模型共有24個卷積層和2個全連接層。其中,卷積層用來提取圖像特征,全連接層用來預測圖像位置和類別概率值。YOLO卷積神經(jīng)網(wǎng)絡采用PAS-CAL VOC數(shù)據(jù)訓練卷積層,然后利用卷積層和全連接構成RPN(Region Proposal Network)實現(xiàn)目標的類別和物體位置預測。
YOLO目標檢測算法:首先把輸入圖像劃分成SxS的格子,然后對每個格子都預測B個檢測框(bounding boxes),每個檢測框包含5個預測值:X,y,y,w,h和置信度(confi-dence)。其中,x、y是檢測框的中心坐標,w、h是檢測框的寬與高,每個格子預測c個假定類別的概率,最后輸出特征圖,其大小為SxSx(Bx5+C)。
5.2立體匹配
立體匹配建立介于兩圖像平面之間3D特征點的對應關系。由于泊車機器人障礙物視覺識別系統(tǒng)對實時性要求較高但對精度要求不高,故采用區(qū)域匹配算法完成立體匹配。基于OpenCV的區(qū)域匹配算法步驟如圖3所示。
5.3深度計算
通過視差圖和標定參數(shù),將左右成像平面上的成像點轉化到3D空間,可求得障礙物目標點的真實距離。重投影矩陣Q的表達式如下:
其中,(Cx,Cy)是左圖像主點,廠是左目相機焦距,Cx是右圖像上由Cx產(chǎn)生的坐標,三維坐標為(X/W,Y/W,Z/W),通過相機標定的參數(shù)和公式(6)可計算障礙物目標點的坐標值。
6實驗結果與分析
為驗證系統(tǒng)的實時性與準確性,對目標障礙物在同一車庫環(huán)境不同距離情況下進行識別。首先對左右圖像進行預處理,把處理后的左相機圖像輸入YOLO卷積神經(jīng)網(wǎng)絡,確定立體匹配區(qū)域,然后通過立體匹配計算視差,最后利用雙目相機標定參數(shù)計算出目標區(qū)域中心點的實際距離。系統(tǒng)輸出的障礙物識別及深度信息如圖4所示。
通過9組實驗得出的結果可知,該系統(tǒng)在2600mm距離處測距精度較高。隨著實際距離的增大或減小,測距精度都呈現(xiàn)下降趨勢;該系統(tǒng)通過GPU加速能夠在100ms內完成對目標障礙物的快速識別,識別效率可滿足泊車機器人障礙物識別要求,系統(tǒng)性能分析如表1所示。
7結語
隨著汽車保有量的井噴式增長,泊車機器人應用前景將十分廣闊。本文論述了基于雙目視覺的泊車機器人障礙物識別系統(tǒng)。隨著科研工作者對機器視覺與人工智能研究的不斷深入,搭載單一視覺傳感器的泊車機器人有望研制成功。該機器人利用視覺傳感器完成泊車路徑規(guī)劃、障礙物實時檢測和自主避障,將硬件成本降到最低。但國內外相關研究不夠深人,智能車庫環(huán)境下的視覺識別算法不成熟,硬件成本較高。針對這些問題如何制造出低成本、高效率的泊車機器人將是未來研究的重點。