耿慶田,趙宏偉,樊 雪,趙德芳,趙 揚
(1.吉林大學(xué) 計算機科學(xué)與技術(shù)學(xué)院,長春 130012; 2.長春師范學(xué)院 計算機科學(xué)與技術(shù)學(xué)院,長春 130032)
可視倒車系統(tǒng)是汽車輔助系統(tǒng)的重要組成部分,目的是幫助駕駛者克服車后盲區(qū)的困擾完成倒車.較早的倒車輔助系統(tǒng)是語音報警提示系統(tǒng)和超聲波雷達倒車系統(tǒng),這兩種系統(tǒng)均無視覺功能,無法解決車輛后盲區(qū)的問題.之后出現(xiàn)的由車載后視攝像頭和車載顯示屏以及用于采集圖像數(shù)據(jù)和處理圖像數(shù)據(jù)控制器組成的倒車輔助系統(tǒng)可以看到車后的場景,但車后障礙物的距離需要有經(jīng)驗的駕駛者預(yù)測.如果能在顯示屏上根據(jù)駕駛者所旋轉(zhuǎn)的方向盤角度預(yù)測出車輛的倒車軌跡, 并配有距離標(biāo)尺的輔助倒車系統(tǒng)對駕駛者倒車操控會很有幫助.本文提出的基于攝像機標(biāo)定理論[1-5]的實時倒車軌跡算法結(jié)合了針孔攝像機模型和鏡頭徑向畸變模型,將在世界坐標(biāo)系下推導(dǎo)的倒車軌跡方程通過攝像機坐標(biāo)系、 成像坐標(biāo)系和圖像坐標(biāo)系的坐標(biāo)變換,再經(jīng)過徑向畸變模型矯正后生成倒車軌跡模型, 該系統(tǒng)能在倒車過程中把車后若干米內(nèi)的場景以影像的方式顯示,并有警戒線和警戒區(qū)提示功能,還能較準(zhǔn)確地預(yù)測出倒車軌跡,幫助駕駛者準(zhǔn)確倒車入位.
實時倒車軌跡算法圖像采集部分采用Video For Linux Two技術(shù),簡稱V4L2.該技術(shù)是Linux 系統(tǒng)下進行視頻、 音頻等應(yīng)用開發(fā)的應(yīng)用編程接口,結(jié)合視頻采集設(shè)備和相應(yīng)的驅(qū)動程序,可實現(xiàn)音影圖像采集功能[6].使用V4L2技術(shù)采集圖像的采集系統(tǒng)流程如圖1所示.
圖1 視頻圖像采集流程Fig.1 Procedure of video capture
該算法為程序定義的數(shù)據(jù)結(jié)構(gòu)[2,4]:
typedef struct v4l2_struct
{
int fd;
struct video_capability capability;
struct video_channel channel;
struct video_picture picture;
struct video_window window;
struct video_capture capture;
struct video_buffer buffer;
struct video_map map;
struct video_buf buf;
unsigned char*map;
int frame;
int framestat;
}vd.
實時倒車軌跡的獲取是根據(jù)某一時刻汽車方向盤所旋轉(zhuǎn)的角度計算,旋轉(zhuǎn)角度值通過角度信號獲取模塊(實際是一個CAN通信模塊,主要由MCP2510和TJA1050連接組成)實現(xiàn).下面給出倒車軌跡方程的推導(dǎo)過程.
車輛泊車的運動模型如圖2所示[7].其中:(xf,yf)為前軸中心點坐標(biāo);(xb,yb)為后軸中心點坐標(biāo);v為前軸中心點速度;l為軸距;w為后輪距;φ為前軸中心點轉(zhuǎn)向角;θ為車輛中心軸與水平方向的夾角.一般情況下,倒車速度小于5 km/h,因此可認(rèn)為無滑移現(xiàn)象產(chǎn)生,后輪軌跡的縱向速度為0.由圖2可知如下方程成立:
圖2 倒車運動學(xué)模型Fig.2 Kinematics model of vehicle reversing
前軸中心點坐標(biāo)關(guān)系為
(2)
對其進行求導(dǎo)后可得前輪的速度關(guān)系如下:
(3)
(4)
又由圖2可知:
(5)
將式(5)代入式(4)可得
(6)
將
(7)
代入式(6)可得角速度
(8)
將式(5)和式(8)代入式(3)可得
(9)
將式(8)對時間積分可得
(C為常量,設(shè)C=0).
(10)
將式(10)代入式(9)可得
(11)
將式(11)對時間積分可得后輪中心點軌跡方程為
(12)
由式(12)可得
(13)
由圖2和式(12)可知左后輪軌跡方程為
(14)
由式(14)可得
(15)
同理可得右后輪軌跡方程為
(16)
由式(15),(16)可知,倒車軌跡只與軸距l(xiāng)、 后輪距w和前軸中心點轉(zhuǎn)向角φ有關(guān),所以當(dāng)車型選定,即軸距l(xiāng)和后輪距w確定后,則倒車軌跡只與前軸中心點轉(zhuǎn)向角φ有關(guān), 即與車的方向盤旋轉(zhuǎn)角度有關(guān).
圖3 針孔攝像機模型Fig.3 Model of pinhole cameras
倒車軌跡的實時繪制并顯示過程根據(jù)攝像機標(biāo)定理論實現(xiàn).攝像機標(biāo)定是指建立攝像機圖像像素位置與場景點位置間的關(guān)系過程,途徑是根據(jù)攝像機模型,由已選特征點的圖像坐標(biāo)和世界坐標(biāo)求解攝像機的模型參數(shù)[8-9].本文采用的攝像頭是JMK WS-309A模擬攝像頭,遵循針孔攝像機模型,其圖像傳感器為面陣傳感器.攝像機標(biāo)定理論主要標(biāo)定攝像機的內(nèi)參數(shù)和外參數(shù).針孔攝像機的攝像機模型[10-11]如圖3所示.世界坐標(biāo)系中的PW通過鏡頭投影中心投影到成像平面上的點p,在無畸變情況下,點p為PW經(jīng)過投影中心與成像平面的交點.該過程涉及4個坐標(biāo)系:世界坐標(biāo)系、 攝像機坐標(biāo)系、 成像坐標(biāo)系和圖像坐標(biāo)系.先把世界坐標(biāo)系中的PW轉(zhuǎn)換到攝像機坐標(biāo)系中,再把攝像機坐標(biāo)系的x軸和y軸分別平行于圖像的c軸和r軸,z軸垂直于成像平面,沿z軸方向?qū)z像機前面所有點的z坐標(biāo)設(shè)為正數(shù).
實時倒車軌跡顯示算法步驟如下:
1) 將車載攝像頭固定在車尾部,使用標(biāo)定算法進行攝像機標(biāo)定,得到車載攝像頭的內(nèi)參數(shù)矩陣A、 外參數(shù)矩陣(R,T)及畸變系數(shù)K;
2) 在車后建立世界坐標(biāo)系,世界坐標(biāo)系的x軸平行于車尾,y軸垂直于車尾,z軸垂直于地面(設(shè)z=0,即表示地面);
3) 從角度信號獲取模塊得到實時角度值,如果角度值為0即方向盤沒有旋轉(zhuǎn),則顯示屏實時顯示警戒線和警戒區(qū);如果方向盤發(fā)生旋轉(zhuǎn),角度信號獲取模塊將得到實時旋轉(zhuǎn)角度值;
4) 根據(jù)實時倒車軌跡獲取算法推導(dǎo)出左右后輪的軌跡方程,將步驟2)中所建立坐標(biāo)系的x值和步驟3)中方向盤旋轉(zhuǎn)實時角度值代入式(15),(16)可得對應(yīng)的y值, 從而可得滿足倒車軌跡方程的坐標(biāo)對,再將其所有坐標(biāo)對中z軸坐標(biāo)值設(shè)為0(因為系統(tǒng)建立的世界坐標(biāo)系基于假設(shè)路平面,即z=0);
5) 將這些三維坐標(biāo)通過右乘攝像機外參數(shù)矩陣和內(nèi)參數(shù)矩陣得到相對應(yīng)成像坐標(biāo)系的點坐標(biāo), 即通過
(17)
得到其坐標(biāo)(坐標(biāo)(u,v)為該像素在數(shù)組中的行數(shù)和列數(shù));
6) 進行坐標(biāo)點矯正.因為多數(shù)鏡頭都可近似為徑向畸變,畸變模型[12-13]如下:
(18)
通過
(19)
進行坐標(biāo)點的畸變矯正;
7) 將成像坐標(biāo)系的點坐標(biāo)轉(zhuǎn)換到圖像坐標(biāo)系并將其顯示于顯示屏上.
本文對上述倒車系統(tǒng)進行了大量實驗和測試,測試的硬件平臺基于ARM9 S3c2440[14],操作系統(tǒng)為Linux, 測試用車為訂制實驗車,軸距為59.5 cm,后輪距為43.6 cm.在實驗中把右轉(zhuǎn)彎的角度值設(shè)為正,左轉(zhuǎn)彎的角度值設(shè)為負(fù).系統(tǒng)通過測量方向盤旋轉(zhuǎn)角度值分別為5°,-5°,10°,-10°,15°,-15°,20°,-20°.結(jié)果表明, 模擬軌跡和真實軌跡基本吻合.實驗車測試現(xiàn)場如圖4所示, 其中:深紅色線條為模擬計算的倒車軌跡; 淺黑色線條為后輪的實際行駛軌跡.為更清楚地說明上述二者軌跡之間的誤差,下面舉例說明誤差的計算過程: 在距車后輪起點垂直方向100 cm處(即y=100 cm)畫一條平行于x軸的直線,該直線與系統(tǒng)模擬計算出的軌跡和實驗車真實軌跡相交于兩點間的水平距離,即為度量模擬軌跡精確度的誤差,如圖5所示.
圖4 系統(tǒng)測試現(xiàn)場照片F(xiàn)ig.4 Picture of system testing
圖5 誤差示意圖Fig.5 Schematic diagram of error
左右后輪在方向盤旋轉(zhuǎn)上述角度值模擬出的軌跡和車輪實際行駛軌跡水平誤差值分別列于表1和表2.本文所用實驗車的車輪寬度為9.0 cm,以此數(shù)據(jù)和誤差值進行對比可知本系統(tǒng)的精度較高.
縱向測距誤差是指系統(tǒng)生成的軌跡縱向距離和實際軌跡縱向距離的差值,實驗數(shù)據(jù)列于表3.實驗過程:在實驗現(xiàn)場,分別在距離實驗車車尾垂直方向40,80,120 cm處做出標(biāo)記點,用系統(tǒng)生成警戒區(qū)之間的縱向距離(即圖4中藍區(qū)、 綠區(qū)、 紅區(qū))和實際標(biāo)記點做比較得到的值.表3中長度和角度所對應(yīng)的數(shù)值即為警戒區(qū)和實際距離標(biāo)記點的誤差, 即縱向測距誤差,角度即實驗車的轉(zhuǎn)角.
表1 左后輪軌跡誤差Table 1 Error data of the left rear wheel trajectory
表2 右后輪軌跡誤差Table 2 Error data of the right rear wheel trajectory
水平測距誤差是指系統(tǒng)生成兩個后輪軌跡的水平距離和實際軌跡水平距離的差值,實驗數(shù)據(jù)列于表4.實驗過程:在距離實驗車尾部垂直方向的40,80,120 cm處畫出實驗車兩后輪間距43.6 cm長度的水平線段和系統(tǒng)生成兩后輪軌跡間的水平距離相比較即得到水平誤差.表4中長度和角度所對應(yīng)的值即為水平測距誤差,角度即實驗車的轉(zhuǎn)角.
表3 縱向測距誤差Table 3 Error data of experimental measurement of the vertical distance
表4 水平測距誤差Table 4 Error data of experimental measurement of the level distance
根據(jù)實驗數(shù)據(jù)可建立左右后輪的平均誤差與車轉(zhuǎn)角間的關(guān)系,如圖6所示,其中:x軸為實驗車轉(zhuǎn)角;y軸為誤差; ●表示右后輪平均誤差隨車轉(zhuǎn)角的變化趨勢; ■表示左后輪平均誤差隨車轉(zhuǎn)角的變化趨勢.為了使本系統(tǒng)生成的圖像以實時方式顯示,需要調(diào)整圖像的播放幀率,經(jīng)過多次測試本系統(tǒng)的顯示端播放幀率列于表5.
表5 實際播放時的幀率測試Table 5 Test of frame rate of video playing
圖6 左右后輪平均誤差隨車轉(zhuǎn)角的變化趨勢 Fig.6 Change trend of trajectories average errors of left and right rear wheels with the rotalional angle of vehicle steering wheels
由表5可見, 基于該算法系統(tǒng)1 d的平均幀率為12.5 幀/s,表明算法在實時上符合要求,而中午和晚上的平均幀率相差2幀,表明光線強度會影響基于該算法的系統(tǒng)播放端幀率.
通過對上述實驗數(shù)據(jù)的分析可知,基于該算法系統(tǒng)出現(xiàn)誤差的主要原因如下:
1) 攝像機標(biāo)定算法理論上需要一個純二維標(biāo)定板,本文在制作標(biāo)定板時,由于標(biāo)定紙上有大量打印墨水,導(dǎo)致變干后標(biāo)定紙出現(xiàn)微微的褶皺變形,從而使系統(tǒng)標(biāo)定時產(chǎn)生微小誤差;
2) 實驗車輪在一定程度上的側(cè)滑現(xiàn)象導(dǎo)致系統(tǒng)產(chǎn)生誤差;
3) 測量過程中人為的標(biāo)記測量符號產(chǎn)生誤差.
綜上可見, 本文提出的基于攝像機標(biāo)定理論的實時倒車軌跡算法生成的帶有預(yù)測功能的車輪軌跡達到了較高的精確度,有一定的實用價值.
[1] Furukawa Y,Ponce J.Accurate Camera Calibration from Multi-view Stereo and Bundle Adjustment [J].International Journal of Computer Vision,2009,84(3): 257-268.
[2] ZHANG Hui,Wong K Y K,ZHANG Guo-qiang.Camera Calibration from Images of Spheres [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2007,29(3): 499-502.
[3] Strecha C,Von Hansen W,Gool L V,et al.On Benchmarking Camera Calibration and Multi-view Stereo for High Resolution Imagery [C]//Proc IEEE Conf Computer Vision and Pattern Recognition.Anchorage: [s.n.],2008: 1-8.
[4] CHEN Yi-song,Horace I,HUANG Zhang-jin,et al.Full Camera Calibration from a Single View of Planar Scene [C]//Lecture Notes in Computer Science.Berlin: Springer,2008: 815-824.
[5] Davide Scaramuzza,Agostino Martinelli,Roland Siegwart.A Flexible Technique for Accurate Omnidirectional Camera Calibration and Structure from Motion [C]//IEEE International Conference on Computer Vision Systems (ICVS’06).Los Alamitos: IEEE Computer Society,2006: 45.
[6] CHEN Liang,PEI Hai-long,WU Yue.Programming for the Capture of Image on Video4 Linux2 [J].Microcomputer Information,2009,25(7): 65-67.(陳亮,裴海龍,伍越.基于Video4 Linux2的圖像采集程序設(shè)計 [J].微計算機信息,2009,25(7): 65-67.)
[7] WU Rui-hong,ZHANG Guang-ren.Derivation and Experimental Verification of the Vehicle Trajectory for Backward Motion [J].2006,53: 94-102.(吳瑞鴻,張光仁.車輛倒車運動軌跡理論推導(dǎo)與驗證 [J].車輛研測資訊,2006,53: 94-102.)
[8] Furukawa Y,Ponce J.Accurate Camera Calibration from Multi-view Stereo and Bundle Adjustment [J].Int J Comput Vision,2009,84(3): 257-268.
[9] Fiala M,SHU Chang.Self-identifying Patterns for Plane-Based Camera Calibration [J].Machine Vision and Applications,2008,19(4): 209-216.
[10] ZHANG Zheng-you.A Flexible New Technique for Camera Calibration [J].IEEE Transactions on Pattern Analysis and Machine Intelligence,2000,22(11): 1330-1334.
[11] HU Nai-ping,LI Lu.The Research and Design of the Can Bus to Ethernet Gateway Based on SSL [C]//Proceedings of the Second International.Washington DC: IEEE Computer Society,2009: 135-138.
[12] Lanser S,Zirel C,Beutlhauser T.Multibildkalibrierung Einer CCD-Kamera [C]//Mustererkennung,Informatik Aktuell.Berlin: Springer-Verlag,1995: 481-491.
[13] Berzins V.Accuracy of Laplacian Edge Detectors [J].Computer Vision,Graphics,and Image Processing,1984,27(2): 195-210.
[14] Samsung.S3C2440A 32-Bit CMOS Microcontroller User’s Manual Revision 1 [EB/OL].2009-07-03.http:// www.samsungsemi.com/.