<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>

新聞中心

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

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

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

引言

本文引用地址:http://dyxdggzs.com/article/201706/350711.htm

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

  各隊解決方案綜述

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

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

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

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

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

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

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

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

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

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

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

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

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

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

幾何失真校正方法

  建模分析

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


  然后再從攝像頭坐標系到理想的圖像坐標系的透視變換。

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

實(shí)驗方法

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

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

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

  反解Xw,Yw,可得:

  上式又可寫(xiě)成:

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

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


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

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

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

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

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

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

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

  結論

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



評論


相關(guān)推薦

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

關(guān)閉
国产精品自在自线亚洲|国产精品无圣光一区二区|国产日产欧洲无码视频|久久久一本精品99久久K精品66|欧美人与动牲交片免费播放
<dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><small id="yhprb"></small><dfn id="yhprb"></dfn><small id="yhprb"><delect id="yhprb"></delect></small><small id="yhprb"></small><small id="yhprb"></small> <delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"></dfn><dfn id="yhprb"></dfn><s id="yhprb"><noframes id="yhprb"><small id="yhprb"><dfn id="yhprb"></dfn></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><small id="yhprb"></small><dfn id="yhprb"><delect id="yhprb"></delect></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn> <small id="yhprb"></small><delect id="yhprb"><strike id="yhprb"></strike></delect><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn><dfn id="yhprb"><s id="yhprb"><strike id="yhprb"></strike></s></dfn><dfn id="yhprb"><s id="yhprb"></s></dfn>