機(jī)器人視覺大作業(yè)_第1頁
機(jī)器人視覺大作業(yè)_第2頁
機(jī)器人視覺大作業(yè)_第3頁
全文預(yù)覽已結(jié)束

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡介

1、基于OpenCV的攝像機(jī)標(biāo)定方法研究摘要 : 提出了一種基于 OpenCV 的攝像機(jī)標(biāo)定方法。分析計(jì)算機(jī)視覺函數(shù)庫 OpenCV 中的攝像機(jī)模型 , 考慮攝像機(jī)透鏡的徑向畸變與切向畸變的影響及模型的求解方法 , 同時結(jié)合基于 Matlab 的攝像機(jī)標(biāo)定工具箱中的角點(diǎn)提取模塊 , 給出了實(shí)驗(yàn)結(jié)果。結(jié)果表明 , 此方法精度較高、 魯棒性好 , 有效解決了計(jì)算機(jī)視覺系統(tǒng)的開發(fā)研制周期長的問題 , 可廣泛應(yīng)用于三維重建、 虛擬現(xiàn)實(shí)等領(lǐng)域。關(guān) 鍵 詞 : 攝像機(jī)標(biāo)定 ; OpenCV ; Matlab; 計(jì)算機(jī)視覺 ; 透鏡畸變A Camera calibration technique based o

2、n OpenCVAbstract: Proposes a method for camera calibration based on OpenCV. The analysis model of camera computer vision library OpenCV, considering the camera lens radial distortion and tangential distortion effects and model solving method combining based on camera calibration toolbox in the corne

3、r extraction module, MATLAB, the experimental results are given. The results show that the method with high precision, good robustness, effectively solves the problem of computer vision system development cycle is long, can be widely applied in the field of 3D reconstruction and virtual reality etc.

4、Key words: Camera calibration; OpenCV; Matlab; computer vision; lens distortion引 言三維計(jì)算機(jī)視覺系統(tǒng)的設(shè)計(jì)目標(biāo)是從攝像機(jī)獲取的圖像信息出發(fā) , 計(jì)算三維物體在空間中的位置、 形狀等信息 , 并由此識別環(huán)境中的物體。物體表面某點(diǎn)在圖像上的幾何位置與該點(diǎn)的幾何位置有關(guān)。這些位置的相互關(guān)系 , 由攝像機(jī)成像的幾何模型所決定。該幾何模型的參數(shù)稱為攝像機(jī)參數(shù) , 求得參數(shù)的實(shí)驗(yàn)與計(jì)算的過程稱為攝像機(jī)標(biāo)定 1 。一個完整的計(jì)算機(jī)視覺系統(tǒng)通??煞譃閳D像獲取、 攝像機(jī)標(biāo)定、特征提取、立體匹

5、配、深度確定及內(nèi)插等6大部分 2 。精確標(biāo)定攝像機(jī)內(nèi)外參數(shù)不僅可以直接提高測量精度 , 而且可以為后繼的立體圖像匹配與三維重建奠定良好的基礎(chǔ) 3 - 4 。目前已經(jīng)有許多攝像機(jī)標(biāo)定的方法 , 如 Tsai 提出的基于三維標(biāo)定參照物的標(biāo)定方法 5 , 標(biāo)定參照物一般由兩塊互相垂直的平面模板組成 , 由于標(biāo)定前需要知道參照物表面標(biāo)定點(diǎn)的空間三維坐標(biāo) , 因而這種方法需要一套昂貴的精密標(biāo)定設(shè)備。張正友提出了基于二維平面模板的標(biāo)定方法 6 , 該標(biāo)定法只要求從不同角度拍攝的同一標(biāo)定模板 2 幅以上的圖像 , 就可以求出攝像機(jī)的內(nèi)外參數(shù) , 該方法不需要知道平面模板移動的具體方位和位移信息 , 而且平面

6、模板的制作簡單 , 因此比其他方法更簡單、 靈活 7 。OpenCV (Intel open source computer vision library) 是 Intel 開放計(jì)算機(jī)視覺函數(shù)庫, 具備強(qiáng)大的圖像和矩陣運(yùn)算能力。該函數(shù)庫中實(shí)現(xiàn)的攝像機(jī)標(biāo)定方法采用的就是張正友提出的標(biāo)定方法。 OpenCV 中的攝像機(jī)標(biāo)定模塊為用戶提供了良好的接口 , 同時支持 Windows 、 Linux 平臺 , 有效地提高了開發(fā)效率 , 并且執(zhí)行速度快 , 具有良好的跨平臺移植性 , 因此可以很好地應(yīng)用于工程實(shí)際當(dāng)中。1 標(biāo)定原理1.1 攝像機(jī)類型攝像機(jī)模型的選擇直接影響最后的標(biāo)定結(jié)果 , 因此要選擇合適

7、的攝像機(jī)模型 , 確定內(nèi)外部參數(shù)。內(nèi)部參數(shù)描述攝像機(jī)的內(nèi)部光學(xué)和幾何特性 , 如圖像中心、 焦距、 鏡頭畸變等 ; 外部參數(shù)就是相對于世界坐標(biāo)系的攝圖 1 攝像機(jī)標(biāo)定中的坐標(biāo)系像機(jī)坐標(biāo)的三維位置和方向。常用的針孔模型 1 ,8 忽略了透鏡的厚度和畸變 , 故不能很好地反映實(shí)際情況。 OpenCV 標(biāo)定算法中的攝像機(jī)模型以針孔模型為基礎(chǔ) , 并引入透鏡的徑向畸變和切向畸變 , 該模型相對于只引入一階徑向畸變的 Tasi 5 模型和針孔模型更加真實(shí)地反映了透鏡實(shí)際的畸變情況。由于攝像機(jī)可安放在環(huán)境中的任何位置 , 故要在環(huán)境中選擇一個基準(zhǔn)坐標(biāo)系來描述攝像機(jī)的位置 , 并用它描述環(huán)境中任何物體的位置

8、 , 該基準(zhǔn)坐標(biāo)系稱為世界坐標(biāo)系 , 由 Xw , Yw , Zw 軸組成。設(shè) Pw( Xw , Y w , Z w )空間某一點(diǎn) P的世界坐標(biāo) , Pc( Xc , Yc , Zc ) 是該點(diǎn)在攝像機(jī)坐標(biāo)系中的坐標(biāo) , P( x , y) 是該點(diǎn)在圖像平面坐標(biāo)系中的物理坐標(biāo) , P( u, v) 是圖像平面坐標(biāo)系中的像素坐標(biāo) , 如圖 1 所示。將三維空間點(diǎn) P 在世界坐標(biāo)系中的坐標(biāo)值 P w( Xw , Yw , Zw ) 變換為圖像平面上像素坐標(biāo)系中坐標(biāo)值 P( u, v) 的過程就可分解為下述的 4 步變換。a ) 世界坐標(biāo)系中坐標(biāo) Pw( Xw , Yw , Zw ) 轉(zhuǎn)換為攝像機(jī)坐

9、標(biāo)系中坐標(biāo) Pc( Xc , Yc , Zc ) (1)式( 1 )中R為一個3×3旋轉(zhuǎn)矩陣 , t為一個3×1平移向量。b ) 攝像機(jī)坐標(biāo)系中坐標(biāo) Pc( Xc , Yc , Zc )在針孔模型中進(jìn)行規(guī)范化投影, 得到圖像平面坐標(biāo)系中物理坐標(biāo)P( x , y) (2)c )引入透鏡的徑向畸變和切向畸變,圖像平面坐標(biāo)系中物理坐標(biāo)P( x , y)擴(kuò)展為P( xq , yq ) (3)式 ( 3 ) 中 k 1 和 k 2 是徑向畸變系數(shù) , p 1 和 p 2 是切向畸變系數(shù) , r 2 = x 2 + y 2 。d ) 圖像平面坐標(biāo)系中物理坐標(biāo) P( x q , y q

10、) 轉(zhuǎn)換為像素坐標(biāo) P( u, v) (4)式( 4 )中( u0 , v0 ) 是基準(zhǔn)點(diǎn) ( 通常在圖像的中心) ; f為攝像機(jī)的有效焦距 ;s 為比例因子 , 用來適應(yīng)在計(jì)算機(jī)圖像水平方向上取樣帶來的種種不確定因素 ; x 為計(jì)算機(jī)圖像在水平方向( x方向 ) 上相鄰兩像素之間的有效距離 ( mm/ pixel) ,y 為計(jì)算機(jī)圖像在垂直方向( y方向 ) 上相鄰兩像素之間的有效距離 ( mm/ pixel ) 。綜合上述公式得到如下等價(jià)表達(dá)式 : s · p = A ( R |t)· P (5)式 ( 5 ) 中 p = ( u, v , 1 )T為圖像像素點(diǎn)的齊次坐

11、標(biāo) , P = ( X , Y , Z, 1 )T為空間點(diǎn)的齊次坐標(biāo) , A 為攝像機(jī)的內(nèi)參矩陣 , ( R |t)為外參矩陣 , 這樣就得到了一個圖像點(diǎn)和空間點(diǎn)之間的一個映射關(guān)系。1.2 標(biāo)定方法張正友標(biāo)定法 6 要求一個精確定位點(diǎn)陣的平面模板,如圖 2 所示。然后通過自由移動攝像機(jī)或標(biāo)定模板, 使得攝像機(jī)至少在2個不同的位置 ( 相對標(biāo)定模板 ) 拍攝模板圖像 , 通過模板上的點(diǎn)和其圖像的對應(yīng)點(diǎn)先用直接線性變換 (DLT 變換 ) 方法來確定攝像機(jī)的內(nèi)部參數(shù)和外部參數(shù) , 這一步暫不考慮機(jī)鏡頭的畸變 , 計(jì)算過程都是求解線性方程, 求解速度快, 但由于沒有考慮透鏡畸變的影響, 得到的參數(shù)值

12、并不準(zhǔn)確。然后再以這些參數(shù)為初始值, 在考慮畸變的同時應(yīng)用 Levenberg 2 Marquardt 算法對圖像點(diǎn)與再投影點(diǎn)間的距離之和進(jìn)行非線性最小優(yōu)化 , 以得到一組精度更高的值。2 基于OpenCV的標(biāo)定基于 OpenCV 的標(biāo)定流程模塊如圖 3 所示。a)讀取標(biāo)定用的一組圖像 ( 如圖 4 所示 )b)對讀入的圖像進(jìn)行角點(diǎn)檢測OpenCV 里的角點(diǎn)檢測模塊在實(shí)際應(yīng)用中經(jīng)常有提取角點(diǎn)失敗、精度較差的缺陷 , 故此步驟用 Matlab 中的攝像機(jī)標(biāo)定工具箱中提供的角點(diǎn)檢測功能代替 , 可以提高精度、增強(qiáng)魯棒性。檢測出的角點(diǎn)如圖 5 所示。c)格式轉(zhuǎn)換將 Matlab 檢測出的角點(diǎn)坐標(biāo)格式

13、都轉(zhuǎn)換成 OpenCV 的 CvMat 格式。d)計(jì)算內(nèi)參矩陣初始化所有的輸入?yún)?shù)后 , 將角點(diǎn)在世界坐標(biāo)系中的坐標(biāo)值以及在圖像坐標(biāo)系中的坐標(biāo)值代入 cvCali 2brateCamera2() , 最后得到攝像機(jī)的內(nèi)參數(shù)矩陣、畸變系數(shù)向量、 每幅圖像的旋轉(zhuǎn)向量、 每幅圖像的平移向量。e)計(jì)算外參矩陣?yán)玫玫降膬?nèi)參數(shù)矩陣和畸變系數(shù)向量, 用函數(shù)cvFindExtrinsicCameraParams2 () 分別計(jì)算各幅圖的外參數(shù)(旋轉(zhuǎn)向量和平移向量)。f)分析實(shí)驗(yàn)結(jié)果先用 cvProjectPoints2() 計(jì)算出三維角點(diǎn)坐標(biāo)的投影坐標(biāo), 再用函數(shù)cvNorm() 比較計(jì)算出的投影坐標(biāo)與通過

14、角點(diǎn)提取到的投影坐標(biāo) , 從而得到一個誤差值。g)最后注意要用cvReleaseMat () 函數(shù)釋放 cvCreateMat () 函數(shù)分配的內(nèi)存空間, 防止內(nèi)存泄露。3 實(shí)驗(yàn)結(jié)果根據(jù)上述的原理和步驟, 本文在 Windows XP 平臺下用 VC + + 6. 0 開發(fā)了一個基于OpenCV1. 0 版本的攝像機(jī)標(biāo)定程序, 程序結(jié)果保存為txt文本。程序經(jīng)過測試,運(yùn)行穩(wěn)定, 尋找角點(diǎn)成功, 標(biāo)定一組 11 幅 640 ×480 像素的圖片, 用0. 6s , 可以滿足實(shí)際的使用。檢測出的角點(diǎn)如圖5 所示 , 標(biāo)定出的攝像機(jī)參數(shù)如下所示:焦距 f c :716. 542 777 7

15、11. 244 02 ± 28. 540 80 25. 008 50(mm/ pixel) ;基準(zhǔn)點(diǎn) ( u 0 , v 0 ) :322. 339 44 196. 088 30 ± 9. 845 45 24. 295 47(mm/ pixel) ;畸變系數(shù) ( k 1 ,k 2 , p 1 , p 2 ) : - 0.261 77 0.757 01 0. 001 46 0. 002 10 ± 0. 034 74 0. 291 03 0. 003 53 0.000 90 ;誤差 err :0. 148 09 0. 270 24 。4 結(jié)束語OpenCV 庫的目的旨

16、在將圖像處理及計(jì)算機(jī)視覺技術(shù)更利于人們使用 , 縮短程序開發(fā)的周期 , 利用OpenCV 開發(fā)的攝像機(jī)標(biāo)定程序具有標(biāo)定結(jié)果精確、運(yùn)算效率高、 跨平臺移植性好等優(yōu)點(diǎn) , 可以有效地應(yīng)用于需要計(jì)算機(jī)視覺系統(tǒng)的各個領(lǐng)域。5 結(jié)束語總平均功率和單根發(fā)射天線峰值瞬時功率均受限以及比特、功率分配算法的復(fù)雜度是自適應(yīng)調(diào)制V-BLAST系統(tǒng)的非常實(shí)際的問題。本文提出的快速分配算法可以達(dá)到比特遞增分配算法的最優(yōu)分配結(jié)果,并且在高CNR下計(jì)算量大幅度降低。仿真表明,單天線峰值功率的限制在一定程度上減少了系統(tǒng)的總發(fā)射功率,但比特率有所降低。參考文獻(xiàn):1 馬頌德 , 張正友 . 計(jì)算機(jī)視覺 : 計(jì)算理論與算法基礎(chǔ) M

17、. 北京 : 科學(xué)出版社 , 2003.2 David A F , Jean P. 計(jì)算機(jī)視覺 : 一種現(xiàn)代方法 M. 北京 : 電子工業(yè)出版社 , 2004.3 Rashmi S , Schrater P R. Bayesian modeling of camera calibration and reconstructionC3D Digital Imaging and Modeling(3DIM). Proceedings Fifth International Conference on 3D Digital Imaging and Modeling. Washington: IEEE

18、 ComputerSociety , 2005 : 394 2 401.4 Rodriguez T , Sturm P , Wilczkowiak M. Photorealistic 3D reconstruction from video sequencesCInternational Confer 2ence on Image Processing(ICIP) . Proceedings International Conference on Image Processing. Kyoto : IEEE Computer Soci 2ety , 2003 : 481 2 485.5 Tsa

19、i R Y. A versatile camera calibration technique for high 2 accuracy 3D machine vision metrology using off 2 the 2 shelf TV cameras and lensesJ . IEEE Journal of Robotics and Automation , 1987 , 3(4) : 323 2 344.6 Zhang Zhengyou. Flexible camera calibration by viewing a plane from unknown orientation

20、sC International Conferenceon Computer Vision(ICCV) . Proceedings Seventh International Conference on Computer Vision. Liege , Belgium: Elsevier Science Publishers , 1999 : 666 2 674.7 Zhang Zhengyou. A flexible new technique for camera calibrationJ . IEEE Transactions on Pattern Analysis and Machine Intelligence , 2000 , 22(11) : 1330 2 1334.8 Karni E ,

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論