在OpenCV中用cvCalibrateCamera2進(jìn)行相機(jī)標(biāo)定(附程序)看到論壇里有不少人在用OpenCV中的標(biāo)定函數(shù)cvCalibrateCamera2 進(jìn)行相機(jī)標(biāo)定時(shí)遇到不少問題,說一些自己的看法。
1)因?yàn)閏vCalibrateCamera2 函數(shù)主要是用張正友的平面標(biāo)定方法的,所以首先我建議大家看一下張正友的那篇經(jīng)典的論文 完整版 22頁 里面分析的非常詳細(xì)《A Flexible New Technique for Camera Calibration.rar》(http://research.microsoft.com/~zhang/Papers/TR98-71.pdf) 精簡版 8頁《Flexible Camera Calibration by Viewing a Plane from Unknown Orientations》 - Zhang, ICCV99, (http://www.vision./bouguetj/ ... zhan99.pdf) 2)至于不少人說OpenCV中用cvCalibrateCamera2 進(jìn)行相機(jī)標(biāo)定的精度差,標(biāo)定結(jié)果不穩(wěn)定,我想可能的原因有: 原因之一)可能是在標(biāo)定的時(shí)候標(biāo)定板所在平面與成像平面(image plane)之間的夾角太小,張正友論文里的仿真數(shù)據(jù)(有噪聲的數(shù)據(jù))說明當(dāng)兩者夾角太小誤差 會(huì)很大, 從張正友的論文里給出的5幅圖中(http://research.microsoft.com/~zhang/Calib/)其中標(biāo)定平面與成像平面的夾角分別為: 8.8947 11.2325 24.4875 10.8535 9.5829(單位:度)。 而且張正友的論文中也提到兩幅標(biāo)定板之間的位置平行放置的話,相關(guān)相當(dāng)于一幅 因此在實(shí)際標(biāo)定中平行放置的情況最好避免,可能有時(shí)你無形之中就犯了這 個(gè)錯(cuò)誤。 原因之二)標(biāo)定時(shí)拍攝的圖片太少,雖然張正友的論文里只用了5幅圖片,但是我建議搞個(gè)10來幅左右還是必要的,因?yàn)槲覀儗?shí)際中可能標(biāo)定板用A4的紙打印出 來貼在一塊板上的,標(biāo)定板上的世界坐標(biāo)精度就不是特別高,多拍攝幾幅圖像能減少這方面帶來的誤差,而且多個(gè)角度拍攝也可能解決了問題一:標(biāo)定板和成像 平面夾角小的問題。這個(gè)家伙用20幅來標(biāo)定(http://www.vision./bouguetj/ ... ample.html) 原因之三)圖像上角點(diǎn)提取的不準(zhǔn)確,我認(rèn)為用cvFindChessboardCorners函數(shù)找角點(diǎn)不是很好,假如拍到的圖像不是完整的棋盤格的時(shí)候肯定會(huì)有問題的,而 且也不少人反應(yīng)用這個(gè)函數(shù)提取不出角點(diǎn),建議可以用其他工具 比如: OpenCV and MatLab Camera Calibration Toolboxes Enhancement(http://graphics.cs./en/research/calibration/) Camera Calibration Toolbox for Matlab(http://www.vision./bouguetj/calib_doc/htmls/example.html)★★★★★強(qiáng)烈推薦 當(dāng)然還有可能其他人為的什么原因。 3)建議用其他方法比如Tsai的標(biāo)定方法或其他的標(biāo)定工具進(jìn)行標(biāo)定 ★★★★★強(qiáng)烈推薦 用這個(gè)matlab標(biāo)定工具箱來進(jìn)行標(biāo)定,可以和OpenCV做個(gè)對(duì)比嘛 ,它也是基于張正友的平面標(biāo)定方法的,做得非常人性化,呵呵, 有誤差分析、標(biāo)定結(jié)果三維重建、重投影計(jì)算角點(diǎn)等功能 。 Camera Calibration Toolbox for Matlab(http://www.vision./bouguetj/calib_doc/) 4)三個(gè)OpenCV下的標(biāo)定程序 程序1)《基于OpenCV的計(jì)算機(jī)視覺技術(shù)實(shí)現(xiàn)》(http://www./s_single.php?id=14881)這本書上的相機(jī)標(biāo)定程序 (有標(biāo)定圖片 改下參數(shù) 可以直接運(yùn)行) 程序2) 自己寫的一個(gè)簡單的標(biāo)定程序:plane_calibration_opencv(要先準(zhǔn)備好 角點(diǎn)的圖像坐標(biāo)和對(duì)應(yīng)的世界坐標(biāo) ) download/file.php?id=284 程序3)http://www.主頁上的例子 http://www./index.php?titl ... iant=zh-tw
|
|
|