




版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、雙目測距的基本原理如上圖所示,雙目測距主要是利用了目標(biāo)點在左右兩幅視圖上成像的橫坐標(biāo)直接存在的差異(即視差)與目標(biāo)點到成像平面的距離Z存在著反比例的關(guān)系: 。其中: 焦距 視差 攝像頭中心距 左像平面的坐標(biāo)系與立體坐標(biāo)系中原點的偏移 右像平面的坐標(biāo)系與立體坐標(biāo)系中原點的偏移其中 ,和可以通過立體標(biāo)定獲得初始值,并通過立體校準(zhǔn)優(yōu)化,使得兩個攝像頭在數(shù)學(xué)上完全平行放置,并且左右攝像頭的,和形同。而立體匹配所做的工作,就是在之前的基礎(chǔ)上,求取視差(這個一般需要達到亞像素精度)。假設(shè)目標(biāo)點在左視圖中的坐標(biāo)為(x,y),在左右視圖上形成的視差為d,目標(biāo)點在以左攝像頭為原點的世界坐標(biāo)系中的坐標(biāo)為(X,Y,
2、Z),則存在上圖所示的變換矩陣Q,使得。圖像的獲取攝像頭定標(biāo)攝像頭定標(biāo)一般都需要一個放在攝像頭前的特制的標(biāo)定參照物(棋盤紙),攝像頭獲取該物體的圖像,并由此計算攝像頭的內(nèi)外參數(shù)。標(biāo)定參照物上的每一個特征點相對于世界坐標(biāo)系的位置在制作時應(yīng)精確測定,世界坐標(biāo)系可選為參照物的物體坐標(biāo)系。在得到這些已知點在圖像上的投影位置后,可計算出攝像頭的內(nèi)外參數(shù)。如上圖所示,攝像頭由于光學(xué)透鏡的特性使得成像存在著徑向畸變,可由三個參數(shù) , , 確定;由于裝配方面的誤差,傳感器與光學(xué)鏡頭之間并非完全平行,因此成像存在切向畸變,可由兩個參數(shù) , 確定。單個攝像頭的定標(biāo)主要是計算出攝像頭的內(nèi)參(焦距和成像原點,、五個畸
3、變參數(shù)(一般只需要計算出,對于魚眼鏡頭等徑向畸變特別大的才需要計算)以及外參(標(biāo)定物的世界坐標(biāo))。 OpenCV 中使用的求解焦距和成像原點的算法是基于張正友的方法,而求解畸變參數(shù)是基于 Brown 的方法。1.圖像坐標(biāo)系、攝像頭坐標(biāo)系和世界坐標(biāo)系的關(guān)系攝像頭成像幾何關(guān)系,其中點稱為攝像頭(透鏡)的光心,軸和軸與圖像的X軸和Y軸平行,軸為攝像頭的光軸,它與圖像平面垂直。光軸與圖像平面的交點 ,即為圖像坐標(biāo)系的原點。由點與、 軸組成的坐標(biāo)系稱為攝像頭坐標(biāo)系,的距離為攝像頭焦距,用表示。圖像坐標(biāo)系是一個二維平面,又稱為像平面,實際上就是攝像頭的CC
4、D傳感器的表面。每個CCD傳感器都有一定的尺寸,也有一定的分辨率,這個就確定了毫米與像素點之間的轉(zhuǎn)換關(guān)系。舉個例子,CCD的尺寸是 ,幀畫面的分辨率設(shè)置為 ,那么毫米與像素點之間的轉(zhuǎn)換關(guān)系就是 。設(shè)CCD傳感器每個像素點的物理大小為,相應(yīng)地,就有 。 其中,像素點的大小為,單位為毫米。 其中,為攝像機焦距,為攝像機坐標(biāo)系的偏斜度(即兩坐標(biāo)軸不完全垂直,鏡頭坐標(biāo)和CCD是否垂直)。需要說明的是,一般情況下,很接近,所以在要求不是很嚴(yán)格的情況下就直接將設(shè)為。可能引起誤差的情況是:當(dāng)對一幅照片進行拍攝的時候,由于攝影變換使得照片的圖像坐標(biāo)系在重新成像后不是了。此時,若忽略這個參數(shù),將產(chǎn)生很大的定標(biāo)誤
5、差。 由于矩陣A包含了攝像機全部的6個內(nèi)參數(shù) ,所以稱A為攝像機內(nèi)參數(shù)矩陣。這些參數(shù)可能會隨著溫度、濕度、氣壓等環(huán)境因素的變化而改變,所以為了保證定標(biāo)的精度,有必要對各內(nèi)參數(shù)進行標(biāo)定。 其中, 為旋轉(zhuǎn)矩陣, 為平移向量, 攝像頭矩陣(內(nèi)參)的目的是把圖像的點從圖像坐標(biāo)轉(zhuǎn)換成實際物理的三維坐標(biāo)。 其中 , , 2.進行攝像頭定標(biāo)時,棋盤方格的實際大小 square_size (默認為 1.0f )的設(shè)置對定標(biāo)參數(shù)的影響。在標(biāo)定時,需要指定一個棋盤方格的長度,這個長度(一般以毫米為單位,如果需要更精確可以設(shè)為0.1毫米量級)與實際長度相同,標(biāo) 定得出的結(jié)果才能用于實際距離測量。一般如果尺
6、寸設(shè)定準(zhǔn)確的話,通過立體標(biāo)定得出的Translation向量的第一個分量的絕對值就是左右攝像頭的中心距。3.OpenCV中用cvCalibrateCamera2 進行相機標(biāo)定的精度差,標(biāo)定結(jié)果不穩(wěn)定原因。原因一:可能是在標(biāo)定的時候標(biāo)定板所在平面與成像平面(image plane)之間的夾角太小,張正友論文里的仿真數(shù)據(jù)(有噪聲的數(shù)據(jù))說明當(dāng)兩者夾角太小誤差會很大,從張正友的論文里給出的5幅圖中,其中標(biāo)定平面與成像平面的夾角分別為: 8.8947、 11.2325 、24.4875、 10.8535、 9.5829(單位:度)。而且張正友的論文中也提到兩幅標(biāo)定板之間的位置平行放置的話,相
7、當(dāng)于一幅。因此在實際標(biāo)定中平行放置的情況最好避免。原因二:標(biāo)定時拍攝的圖片太少,雖然張正友的論文里只用了5幅圖片,但是建議10來幅左右還是必要的,因為實際中可能標(biāo)定板用A4的紙打印出來貼在一塊板上的,標(biāo)定板上的世界坐標(biāo)精度就不是特別高,多拍攝幾幅圖像能減少這方面帶來的誤差,而且多個角度拍攝也可能解決了問題一(標(biāo)定板和成像平面夾角小的問題)。原因三:圖像上角點提取的不準(zhǔn)確,用cvFindChessboardCorners函數(shù)找角點不是很好,假如拍到的圖像不是完整的棋盤格的時候肯定會有問題的,而且也可能用這個函數(shù)提取不出角點,建議可以用其他工具 :OpenCV and MatLab Ca
8、mera Calibration Toolboxes EnhancementCamera Calibration Toolbox for MatlabOpenCV2.1以后對圖像角點的提取準(zhǔn)確度比較高,cvFindChessboardCorners和cvFindCornerSubPix結(jié)合可以獲得很好的角點檢測效果。因此,影響定標(biāo)結(jié)果較大的就是標(biāo)定板與鏡頭的夾角和棋盤圖像數(shù)目,在實際定標(biāo)過程中,棋盤圖像數(shù)目應(yīng)該大于20張,每成功檢測一次完整的棋盤角點就要變換一下標(biāo)定板的姿態(tài)(包括角度、距離) 。4.單目定標(biāo)函數(shù)cvCalibrateCamera2采用怎樣的 flags 比較
9、合適?由于一般鏡頭只需要計算, 四個參數(shù),所以我們首先要設(shè)置 CV_CALIB_FIX_K3;其次,如果所用的攝像頭不是高端的、切向畸變系數(shù)非常少的,則不要設(shè)置 CV_CALIB_ZERO_TANGENT_DIST,否則單目校正誤差會很大;如果事先知道攝像頭內(nèi)參的大概數(shù)值,并且cvCalibrateCamera2函數(shù)的第五個參數(shù)intrinsic_matrix非空,則也可設(shè)置CV_CALIB_USE_INTRINSIC_GUESS ,以輸入的intrinsic_matrix為初始估計值來加快內(nèi)參的計算;其它的 flag 一般都不需要設(shè)置,對單目定標(biāo)的影響不大。雙目定標(biāo)和雙目校正雙目攝像頭定標(biāo)不
10、僅要得出每個攝像頭的內(nèi)部參數(shù),還需要通過標(biāo)定來測量兩個攝像頭之間的相對位置(即右攝像頭相對于左攝像頭的三維平移 t 和旋轉(zhuǎn) R 參數(shù))。要計算目標(biāo)點在左右兩個視圖上形成的視差,首先要把該點在左右視圖上兩個對應(yīng)的像點匹配起來。然而,在二維空間上匹配對應(yīng)點是非常耗時的,為了減少匹配搜索范圍,我們可以利用極線約束使得對應(yīng)點的匹配由二維搜索降為一維搜索。而雙目校正的作用就是要把消除畸變后的兩幅圖像嚴(yán)格地行對應(yīng),使得兩幅圖像的對極線恰好在同一水平線上,這樣一幅圖像上任意一點與其在另一幅圖像上的對應(yīng)點就必然具有相同的行號,只需在該行進行一維搜索即可匹配到對應(yīng)點。1. 關(guān)于cvStereoCalibrate
11、的使用如果按照 Learning OpenCV 的例程,直接通過cvStereoCalibrate來實現(xiàn)雙目定標(biāo),很容易產(chǎn)生比較大的圖像畸變,邊角處的變形較厲害。最好先通過cvCalibrateCamera2對每個攝像頭單獨進行定標(biāo),再利用cvStereoCalibrate進行雙目定標(biāo)。這樣定標(biāo)所得參數(shù)才比較準(zhǔn)確,隨后的校正也不會有明顯的畸變。2. cvStereoCalibrate 計算 Essential Matrix 和 Fundamental Matrix (1) Essential Matrix 本征矩陣如上圖所示,給定一個目標(biāo)點,以左攝像頭光心為原點。點相對于光心的觀察位置為,相對
12、于光心的觀察位置為。點在左攝像頭成像平面上的位置為,在右攝像頭成像平面上的位置為。注意、都處于攝像機坐標(biāo)系,其量綱是與平移向量T相同的(、在圖像坐標(biāo)系中對應(yīng)的像素坐標(biāo)為、)。假設(shè)右攝像頭相對于左攝像頭的相對位置關(guān)系由旋轉(zhuǎn)矩陣R和平移向量T表示,則可得: ?,F(xiàn)在我們要尋找由點、和確定的對極平面的表達式。注意到平面上任意一點x與點a的連線垂直于平面法向量n,即向量 (x-a) 與向量 n 的點積為0:。在坐標(biāo)系中,光心的位置為T,則、和確定的對極平面可由下式表示: 。由 和 可得: 。另一方面,向量的叉積又可表示為矩陣與向量的乘積,記向量T的矩陣表示為S,得:。那么就得到:。這樣,我們就得到Ess
13、ential Matrix:E = RS。通過矩陣E我們知道和的關(guān)系滿足: 。進一步地,由 和。我們可以得到點P在左右兩個攝像機坐標(biāo)系中的觀察點 和應(yīng)滿足的極線約束關(guān)系為: 。注意到 E 是不滿秩的,它的秩為2,那么表示的實際上是一條直線,也就是對極線。(2) Fundamental Matrix 基礎(chǔ)矩陣由于矩陣E并不包含攝像頭內(nèi)參信息,且E是面向攝像頭坐標(biāo)系的。實際上我們更感興趣的是在圖像像素坐標(biāo)系上去研究一個像素點在另一視圖上的對極線,這就需要用到攝像機的內(nèi)參信息將攝像頭坐標(biāo)系和圖像像素坐標(biāo)系聯(lián)系起來。在(1)中,和是物理坐標(biāo)值,對應(yīng)的像素坐標(biāo)值為和,攝像頭內(nèi)參矩陣為M,則有:。從而:,
14、 。這里,我們就得到Fundamental Matrix: 。并有。3. cvStereoCalibrate 計算 Essential Matrix 和 Fundamental Matrix4雙目校正原理及cvStereoRectify 的應(yīng)用如圖所示,雙目校正是根據(jù)攝像頭定標(biāo)后獲得的單目內(nèi)參數(shù)據(jù)(焦距、成像原點、畸變系數(shù))和雙目相對位置關(guān)系(旋轉(zhuǎn)矩陣和平移向量),分別對左右視圖進行消除畸變和行對準(zhǔn),使得左右視圖的成像原點坐標(biāo)一致(CV_CALIB_ZERO_DISPARITY 標(biāo)志位設(shè)置時發(fā)生作用)、兩攝像頭光軸平行、左右成像平面共面、對極線行對齊。在OpenCV2.1版之前,cvStere
15、oRectify 的主要工作就是完成上述操作,校正后的顯示效果如圖 (c) 所示??梢钥吹叫U笞笥乙晥D的邊角區(qū)域是不規(guī)則的,而且對后續(xù)的雙目匹配求取視差會產(chǎn)生影響,因為這些邊角區(qū)域也參與到匹配操作中,其對應(yīng)的視差值是無用的、而且一般數(shù)值比較大,在三維重建和機器人避障導(dǎo)航等應(yīng)用中會產(chǎn)生不利影響。圖15圖16圖17因此,OpenCV2.1 版中cvStereoRectify新增了4個參數(shù)用于調(diào)整雙目校正后圖像的顯示效果,分別是 double alpha, CvSize newImgSize, CvRect* roi1, CvRect* roi2。下面結(jié)合圖15-17簡要介紹這4個參數(shù)的作用:(1
16、)newImgSize:校正后remap圖像的分辨率。如果輸入為(0,0),則是與原圖像大小一致。對于圖像畸變系數(shù)比較大的,可以把newImgSize 設(shè)得大一些,以保留圖像細節(jié)。(2)alpha:圖像剪裁系數(shù),取值范圍是-1、01。當(dāng)取值為0時,OpenCV會對校正后的圖像進行縮放和平移,使得remap圖像只顯示有效像素(即去除不規(guī)則的邊角區(qū)域),如圖17所示,適用于機器人避障導(dǎo)航等應(yīng)用;當(dāng)alpha取值為1時,remap圖像將顯示所有原圖像中包含的像素,該取值適用于畸變系數(shù)極少的高端攝像頭;alpha取值在0-1之間時,OpenCV按對應(yīng)比例保留原圖像的邊角區(qū)域像素。Alpha取值為-1時
17、,OpenCV自動進行縮放和平移,其顯示效果如圖16所示。(3)roi1, roi2:用于標(biāo)記remap圖像中包含有效像素的矩形區(qū)域。對應(yīng)代碼如下:在cvStereoRectify之后,一般緊接著使用 cvInitUndistortRectifyMap來產(chǎn)生校正圖像所需的變換參數(shù)(mapx, mapy)。 5.為什么cvStereoRectify求出的Q矩陣cx, cy, f都與原來的不同?在實際測量中,由于攝像頭擺放的關(guān)系,左右攝像頭的f, cx, cy都是不相同的。而為了使左右視圖達到完全平行對準(zhǔn)的理想形式從而達到數(shù)學(xué)上運算的方便,立體校準(zhǔn)所做的工作事實上就是在左右像重合區(qū)域最大
18、的情況下,讓兩個攝像頭光軸的前向平行,并且讓左右攝像頭的f, cx, cy相同。因此,Q矩陣中的值與兩個instrinsic矩陣的值不一樣就可以理解了?!弊ⅲ盒U蟮玫降淖儞Q矩陣Q,Q03、Q13存儲的是校正后左攝像頭的原點坐標(biāo)(principal point)cx和cy,Q23是焦距f。雙目匹配與視差計算立體匹配主要是通過找出每對圖像間的對應(yīng)關(guān)系,根據(jù)三角測量原理,得到視差圖;在獲得了視差信息后,根據(jù)投影模型很容易地可以得到原始圖像的深度信息和三維信息。立體匹配技術(shù)被普遍認為是立體視覺中最困難也是最關(guān)鍵的問題,主要是以下因素的影響:(1) 光學(xué)失真和噪聲(亮度、色調(diào)、飽和度等失衡)(2) 平滑表面的鏡面反射(3) 投影縮減(Foreshortening)(4) 透視失真(Perspective distortions)(5) 低紋理(Low texture)(6) 重復(fù)紋理(Repetitive/ambiguous patterns)(7) 透明物體(8) 重疊和非連續(xù)目前立體匹配算法是計算機視覺中
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- T/CHTS 10154-2024透水瀝青路面技術(shù)指南
- T/CHC 1003-2023植物低聚肽
- T/CGCC 40-2019青團
- T/CEMIA 014-2018光纖預(yù)制棒用四氯化硅充裝規(guī)范
- T/CECS 10344-2023綠色裝配式邊坡防護面層
- T/CECS 10311-2023自動測斜管
- T/CBMCA 032-2022負離子表面涂覆材料應(yīng)用技術(shù)規(guī)程
- T/CBMCA 025-2022凈化海砂
- T/CARSA 1.5-2022基于低空無人機的高分衛(wèi)星遙感產(chǎn)品真實性檢驗第5部分:組網(wǎng)觀測
- golang基礎(chǔ)面試題及答案
- 外墻更換鋁合金窗施工方案
- 《乘風(fēng)破浪的姐姐》招商方案
- 基于plc的輸電線路自動重合閘系統(tǒng)設(shè)計
- 工業(yè)漆水性丙烯酸防護msds
- 2022年事業(yè)單位招聘考試(畜牧獸醫(yī))綜合試題庫及答案
- JJF1664-2017溫度顯示儀校準(zhǔn)規(guī)范-(高清現(xiàn)行)
- 銑床安全操作作業(yè)指導(dǎo)書
- 土地開發(fā)整理項目預(yù)算定額
- 消防管理制度的制作張貼規(guī)范及圖例
- 古河鉆機HCR1200構(gòu)造說明中文
- CT報告單--自己填
評論
0/150
提交評論