在OpenCV中用cvCalibrateCamera2進行相機標定

看到論壇裏有不少人在用OpenCV中的標定函數cvCalibrateCamera2 進行相機標定時遇到不少問題,說一些自己的看法。


1)因爲cvCalibrateCamera2 函數主要是用張正友的平面標定方法的,所以首先我建議大家看一下張正友的那篇經典的論文
完整版 22頁 裏面分析的非常詳細《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.caltech.edu/bouguetj/ ... zhan99.pdf)

2)至於不少人說OpenCV中用cvCalibrateCamera2 進行相機標定的精度差,標定結果不穩定,我想可能的原因有:

原因之一)可能是在標定的時候標定板所在平面與成像平面(image plane)之間的夾角太小,張正友論文裏的仿真數據(有噪聲的數據)說明當兩者夾角太小誤差
會很大,從張正友的論文裏給出的5幅圖中(http://research.microsoft.com/~zhang/Calib/)其中標定平面與成像平面的夾角分別爲:
8.8947 11.2325 24.4875 10.8535 9.5829(單位:度)。
而且張正友的論文中也提到兩幅標定板之間的位置平行放置的話,相關相當於一幅因此在實際標定中平行放置的情況最好避免,可能有時你無形之中就犯了這
個錯誤。

原因之二)標定時拍攝的圖片太少,雖然張正友的論文裏只用了5幅圖片,但是我建議搞個10來幅左右還是必要的,因爲我們實際中可能標定板用A4的紙打印出
來貼在一塊板上的,標定板上的世界座標精度就不是特別高,多拍攝幾幅圖像能減少這方面帶來的誤差,而且多個角度拍攝也可能解決了問題一:標定板和成像
平面夾角小的問題。這個傢伙用20幅來標定(http://www.vision.caltech.edu/bouguetj/ ... ample.html)

原因之三)圖像上角點提取的不準確,我認爲用cvFindChessboardCorners函數找角點不是很好,假如拍到的圖像不是完整的棋盤格的時候肯定會有問題的,而
且也不少人反應用這個函數提取不出角點,建議可以用其他工具 比如:
OpenCV and MatLab Camera Calibration Toolboxes Enhancement(http://graphics.cs.msu.ru/en/research/calibration/)
Camera Calibration Toolbox for Matlab(http://www.vision.caltech.edu/bouguetj/calib_doc/htmls/example.html)★★★★★強烈推薦

當然還有可能其他人爲的什麼原因。


3)建議用其他方法比如Tsai的標定方法或其他的標定工具進行標定
★★★★★強烈推薦 用這個matlab標定工具箱來進行標定,可以和OpenCV做個對比嘛,它也是基於張正友的平面標定方法的,做得非常人性化,呵呵,
有誤差分析、標定結果三維重建、重投影計算角點等功能 。
Camera Calibration Toolbox for Matlab(http://www.vision.caltech.edu/bouguetj/calib_doc/)

4)三個OpenCV下的標定程序

程序1)《基於OpenCV的計算機視覺技術實現》(http://www.sciencep.com/s_single.php?id=14881)這本書上的相機標定程序(有標定圖片 改下參數 可以直接運行)

from《基於OpenCV的計算機視覺技術實現》.rar
攝像機定標from《基於OpenCV的計算機視覺技術實現 》.rar
(525.67 KiB) 被下載 14567 次

程序2) 自己寫的一個簡單的標定程序:plane_calibration_opencv(要先準備好 角點的圖像座標和對應的世界座標)
download/file.php?id=284
程序3)http://www.opencv.org.cn主頁上的例子
http://www.opencv.org.cn/index.php?titl ... iant=zh-tw
發佈了4 篇原創文章 · 獲贊 15 · 訪問量 31萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章