新聞中心

EEPW首頁(yè) > 汽車(chē)電子 > 設(shè)計(jì)應(yīng)用 > 基于視覺(jué)傳感器的智能車(chē)攝像頭標(biāo)定技術(shù)研究

基于視覺(jué)傳感器的智能車(chē)攝像頭標(biāo)定技術(shù)研究

作者: 時(shí)間:2017-06-07 來(lái)源:網(wǎng)絡(luò) 收藏

引言

本文引用地址:http://www.butianyuan.cn/article/201706/350711.htm

  本文以飛思卡爾為背景,使用飛思卡爾(Freeseale)生產(chǎn)的16位微控制器MC9S12XS128作為控制核心,制作一個(gè)能巡線快速行駛的攝像頭小車(chē)。由于攝像頭光軸與地面呈一定夾角,于是其成像存在梯形失真;為了擴(kuò)大視野,廣角鏡頭越來(lái)越為很多隊(duì)伍所采用,于是又存在桶形失真。這兩種失真,是每個(gè)采用廣角鏡頭的攝像頭隊(duì)伍都要遇到的問(wèn)題。很多隊(duì)伍都回避這個(gè)問(wèn)題,直接采用圖像預(yù)處理后的像素點(diǎn)進(jìn)行控制。但若將像素點(diǎn)轉(zhuǎn)換為實(shí)際物理坐標(biāo),無(wú)疑更直觀,對(duì)程序的編寫(xiě)或建模帶來(lái)很大的方便,并且本文提出的這個(gè)方法,可有效解決這兩種失真,實(shí)際操作并不復(fù)雜。

  各隊(duì)解決方案綜述

  文獻(xiàn)[1]提出的方法是:可以通過(guò)對(duì)于每行提取的道路位置通過(guò)一個(gè)線性修正來(lái)消除梯形失真,可通過(guò)實(shí)驗(yàn)的方式確定線性補(bǔ)償?shù)南禂?shù)。但是該實(shí)驗(yàn)方法比較繁雜,并且不能消除桶形失真。

  文獻(xiàn)[2]制作了一個(gè)圖像標(biāo)定板,如圖1所示。

  其原理是:圖1(a)中陰影部分是車(chē)體放置的位置。在標(biāo)定板上等間距地貼了許多黑線,給標(biāo)定板拍照后,就可以知道實(shí)際中的位置與圖像中的位置的相互關(guān)系。這個(gè)方法由于黑線有一定寬度,所以會(huì)存在較大誤差。

  文獻(xiàn)[3]采用非均行采集的方案。所謂非均行采集是與均行采集對(duì)應(yīng)的。在均行采集中,AD模塊所采集的行均勻分布于攝像頭輸出的圖像中。而非均行采集則是指,AD模塊所采集的行按某種規(guī)則非均勻地分布在原始圖像中,而這種規(guī)則是保證采集得到的圖像在縱向上(小車(chē)中軸方向)與現(xiàn)實(shí)景物不畸變。然后再確定每一行的橫向畸變系數(shù)。

  如圖2所示,非均行采集時(shí),遠(yuǎn)處采得密,近處采得稀。由于攝像頭安裝方式在實(shí)驗(yàn)時(shí)會(huì)經(jīng)常變動(dòng),以確定最佳俯角和最佳高度,每當(dāng)變動(dòng)就需要重新標(biāo)定。這個(gè)方案就不大方便了。文獻(xiàn)[4]建立了一個(gè)光路幾何模型圖,如圖3所示。

  實(shí)驗(yàn)方案:量取攝像頭架固定螺釘?shù)母叨菻與攝像頭中心相對(duì)于豎直桿的偏轉(zhuǎn)角度(俯角)θ。由于光學(xué)中心的計(jì)算完全由這兩個(gè)數(shù)據(jù)及近端距固定桿的距離S(即測(cè)量保險(xiǎn)杠距固定桿的距離S0和近端距保險(xiǎn)杠距離S'相加得到,也可直接在實(shí)驗(yàn)板上測(cè)量由近端黑線到攝像頭固定桿的距離S)確定,因此要做到越精確越好。由O點(diǎn)做垂線長(zhǎng)度為H至點(diǎn)A,做水平線AB,截取AD長(zhǎng)為S,DB過(guò)O點(diǎn)做與垂直線成θ的射線交AB于C,過(guò)D做DE垂直于OC,并使OC為DE的垂直平分線,連接BE并延長(zhǎng),交OC與O’,則O’為光學(xué)中心。從圖上能算得O’距底邊距離為H’,俯角不變。

將實(shí)驗(yàn)板垂直放置,做出邊長(zhǎng)為A1的正方形標(biāo)定區(qū)域,即圖3中的DE平面,將攝像頭水平對(duì)向?qū)嶒?yàn)板中心C,攝像頭架固定螺釘距實(shí)驗(yàn)板距離為H1。讀出標(biāo)定實(shí)驗(yàn)板上特征點(diǎn)的相應(yīng)像素點(diǎn)??梢缘玫綀D4中(X,Y)與像素點(diǎn)(U,V)的關(guān)系(U為行數(shù),V為列數(shù))。

  由于實(shí)驗(yàn)平面與真實(shí)視野平面之間是純幾何關(guān)系,因此這部分轉(zhuǎn)換函數(shù)關(guān)系可以用幾何推導(dǎo)。 其公式較復(fù)雜,在這里不一一列出。

  其公式最大的弊端在于有很多sin()、cos()等三角函數(shù)運(yùn)算,但單片機(jī)做這種運(yùn)算會(huì)花費(fèi)大量時(shí)間,所以本應(yīng)盡量避免出現(xiàn)三角函數(shù)、開(kāi)方等運(yùn)算。而且,若采用廣角鏡頭或攝像頭架得較低時(shí),B點(diǎn)將會(huì)距A點(diǎn)很遠(yuǎn)而找不到B點(diǎn)。所以該方法也不具通用性。實(shí)驗(yàn)本身也比較復(fù)雜。

  文獻(xiàn)[5]采用的實(shí)驗(yàn)方法是:事先在一塊白板上畫(huà)一系列小的正方格,正方格越小,精度越高。然后標(biāo)定中心黑粗線,用來(lái)確定賽車(chē)的擺放位置和圖像的中心。如圖5所示。之后可以直接讀出各特征點(diǎn)相應(yīng)的像素坐標(biāo),建立對(duì)應(yīng)關(guān)系。

  該實(shí)驗(yàn)方案很直觀,但其操作未必簡(jiǎn)便。因?yàn)閿z像頭視野較廣,所需矯正網(wǎng)絡(luò)也較大,在其上畫(huà)方格線很難保證絕對(duì)水平或垂直。

  文獻(xiàn)[6]根據(jù)幾何數(shù)學(xué)建模,得出攝像頭獲取圖像的成像坐標(biāo)與景物實(shí)際的世界坐標(biāo)的關(guān)系。

坐標(biāo)變換關(guān)系如下:

  在攝像頭安裝固定后,c/tanθ、a、b、c、h 和h/cosθ 均為常量。這個(gè)方法還是比較好的,但是需要知道f、L、H,這三個(gè)參數(shù)廠家會(huì)提供,但不一定準(zhǔn)確,θ也較難準(zhǔn)確測(cè)量,且不能解決桶形失真的問(wèn)題。

幾何失真校正方法

  建模分析

  如圖7所示,世界坐標(biāo)系中的點(diǎn)P(Xw,Yw,Zw)首先經(jīng)過(guò)剛體變換到攝像頭坐標(biāo)系中的點(diǎn)P(X,Y,Z)。


  然后再?gòu)臄z像頭坐標(biāo)系到理想的圖像坐標(biāo)系的透視變換。

  圖8是一鏡頭理想成像原理圖,圖中左邊的直線是目標(biāo),右邊的直線是目標(biāo)所成的象。從圖中可以看出,目標(biāo)中心點(diǎn)O點(diǎn)成象于象的中心O′點(diǎn),目標(biāo)上不同的兩點(diǎn)A點(diǎn)和B點(diǎn)成象于A′和B′點(diǎn),且有。但大視場(chǎng)角使得廣角鏡頭不能再等效為理想透鏡,而是一個(gè)焦距隨著目標(biāo)離光軸距離增大而減小的成象系統(tǒng)。根據(jù)牛頓成象定理,目標(biāo)高度r與對(duì)應(yīng)象高r′之間的計(jì)算關(guān)系為。在物距m一定的情況下,焦距f愈小,象高r′愈小。這樣,隨著目標(biāo)離光軸距離r的增加,焦距f隨著減小,所成圖象就產(chǎn)生了桶形失真。由以上的分析可看出,桶形失真可以看成像素點(diǎn)向心徑向收縮,且隨著目標(biāo)距光軸距離r的增加,收縮率增大。因此,如果使失真圖象中的像素離心徑向按不同膨脹率增大,即可實(shí)現(xiàn)幾何失真校正。

實(shí)驗(yàn)方法

  情況(1):攝像頭俯角小,雖有桶形失真,但關(guān)鍵區(qū)域處于圖像中部。如圖9所示。分段逆透視變換適用于這種情況。

  若忽略桶形失真,即讓U=Xu+Center_u,V=Yu +Center_v(注意圖7中圖像原點(diǎn)Ouv在攝像頭坐標(biāo)系中坐標(biāo)為(- Center_u,- Center_v,f)),則由公式1和公式2可知,

  由于Zw=0,上式又可寫(xiě)成:

  反解Xw,Yw,可得:

  上式又可寫(xiě)成:

  理論上根據(jù)4個(gè)點(diǎn)m1-m8就可以有一組解。

  實(shí)驗(yàn)步驟如下:以車(chē)頭為原點(diǎn),在車(chē)頭前選取8個(gè)點(diǎn),如圖10所示(單位:cm)。 選點(diǎn)要求范圍盡量大,跑道經(jīng)常出現(xiàn)的區(qū)域,但又不能處于攝像頭輸出圖像邊緣區(qū)域;從圖9中讀出各點(diǎn)像素坐標(biāo)(a,b);根據(jù)分辨率將各像素坐標(biāo)轉(zhuǎn)換為單片機(jī)圖像坐標(biāo),這是一個(gè)線性變換;將8個(gè)點(diǎn)分成near、middle、far三組,每組4個(gè)點(diǎn),根據(jù)式6可求出三組解。


在單片機(jī)程序中,當(dāng)圖像預(yù)處理得到(U,V)后,可根據(jù)式5解出(Xw,Yw),差別是(U,V)處于不同位置時(shí)用不同的參數(shù)。由于相鄰梯形有兩個(gè)點(diǎn)是復(fù)用的,所以參數(shù)不會(huì)出現(xiàn)跳躍。圖11顯示該方法效果很好。

  文獻(xiàn)[7]中提到可以選取很多點(diǎn),然后采用最小二乘法進(jìn)行擬合。但是由于各像素點(diǎn)失真程度不一樣(越遠(yuǎn)離圖像中心失真越嚴(yán)重),所以最后結(jié)果可能是本來(lái)失真較小的點(diǎn)被失真較大的點(diǎn)所“拖累”,沒(méi)有一個(gè)點(diǎn)是準(zhǔn)確的。

  情況(2):攝像頭俯角較大,跑道會(huì)出現(xiàn)在圖像各個(gè)位置(如圖1(b)所示),這時(shí)單片機(jī)需要對(duì)整幅圖像進(jìn)行處理??墒褂孟铝蟹椒?。

  這時(shí)不再讓U=Xu,V=Yu,而是設(shè)

  從圖像中讀出多個(gè)像素坐標(biāo)(U,V),令k初值為0.00001,通過(guò)式7解出(Xu,Yu),根據(jù)式6通過(guò)最小二乘法解出 ,再根據(jù)式5求出(Xw,Yw),求出擬合誤差sum_err。(這里要將式5與式6中的U、V分別換成Xu、Yu)。有關(guān)最小二乘法可參考文獻(xiàn)[8]。

  將k累加0.00001,同樣的步驟可求出sum_err。

  畫(huà)出k與sum_err曲線,sum_err起初隨著k增大而減小,但從某個(gè)k開(kāi)始又開(kāi)始增大,k值即取拐點(diǎn)處的值。

  結(jié)論

  本文根據(jù)攝像頭成像模型,導(dǎo)出逆透視變換公式,并根據(jù)兩種情況分別給出解決方案。該解決方案方便可行,可供各參賽攝像頭隊(duì)伍參考。



評(píng)論


相關(guān)推薦

技術(shù)專(zhuān)區(qū)

關(guān)閉