韓愛平
摘 要:雙目立體視覺能夠?qū)⒌缆穲鼍皟?nèi)的三維空間信息進行快速復(fù)原,從而對運動目標完成三維空間的追蹤及定位,將大大提升道路交通監(jiān)控的智能化和自動化。其研究實質(zhì)主要是怎么利用二維成像技術(shù)從左右兩幅圖像復(fù)原到所需場景的三維空間信息。在雙目立體視覺實現(xiàn)中,相機標定技術(shù)是一種重要方法,在此本文介紹相機標定實現(xiàn)方法,并給出了基于MATLAB軟件實現(xiàn)相機標定實例。
關(guān)鍵詞:雙目立體視覺;相機標定;內(nèi)、外參數(shù)標定
0 前言
一個完整的雙目立體視覺系統(tǒng),首先使用左右各一臺攝像機從不同角度同時獲得三維客觀景物的兩幅二維數(shù)字圖像,然后基于雙目視差原理計算得到客觀景物的數(shù)字三維信息,最后利用三維數(shù)據(jù)在計算機中虛擬出現(xiàn)實中客觀景物的三維幾何形狀。雙目立體視覺技術(shù)需要通過視頻數(shù)據(jù)提供更多的信息,因此相機標定技術(shù)不可或缺[2]。本文介紹相機標定概念,并給出基于MATLAB軟件的標定實例。
1 相機標定概念與方法
在計算機視覺中,二維圖像上的點和三維空間物體表面相應(yīng)點之間存在一種變換關(guān)系,而這種關(guān)系是由相機成像的幾何模型來決定的,該成像模型的幾何參數(shù)稱為相機參數(shù),確定這些幾何參數(shù)的過程稱為相機標定。相機標定的過程便是求解其內(nèi)部參數(shù)和外部參數(shù)的過程。由于內(nèi)部參數(shù)只與相機本身的參數(shù)有關(guān),所以在確定好內(nèi)部參數(shù)后,重要的是進行外部參數(shù)的標定。按照標定的基本思想差距,相機標定方法大體可分為三種:傳統(tǒng)標定法、相機自標定法和基于主動視覺標定法[2]。在世界坐標系中,普遍情況下是以實際圖像中某個固定參考點當作世界坐標系的原點。而在張正友算法中以標定物上特殊點當作世界坐標系的原點,并且世界坐標系的X軸和Y軸和標定物平行、Z軸和標定物垂直。
對于張正友算法標定點選取,一般選擇能均勻分布于整個圖像的一些點。對于相機標定精度而言,選取點越多,反應(yīng)圖像信息越完整,因而得到結(jié)果越好。可隨著點數(shù)不斷增加,運算量也不斷增加,同時增多點數(shù)帶來精度升高的效果隨著點數(shù)增加而逐步削弱。是以,一般情況下張正友算法選擇均勻分布于圖像上的十個點。
2相機標定實現(xiàn)實例
相機標定實現(xiàn)是在標定模型的基礎(chǔ)上,先后實現(xiàn)內(nèi)參數(shù)標定和外參數(shù)標定。內(nèi)參數(shù)標定是首先把靶標圖像保留在toolbox_calib目錄下。指出圖像基本名與圖像格式,在Matlab圖形窗口顯示出靶標圖像。對用于標定的每幅靶標圖像進行角點提取。內(nèi)參數(shù)標定給出初始化后標定成果和優(yōu)化后標定成果。其中,對內(nèi)參數(shù)優(yōu)化采用L-M梯度下降法[3]。優(yōu)化后成果中給出的參數(shù)不確定性是3倍的標準方差。初始化后標定結(jié)果:
Focal Length: fc = [673.45516 673.45516]
Principal point: cc = [319.50000 239.50000]
Skew: lpha_c = [0.00000 ] => angle of pixel = 90.00000 degrees
Distortion: kc = [0.00000 0.00000 0.00000 0.00000 0.00000]
優(yōu)化后標定結(jié)果:
Focal Length: fc = [657.80887 658.51372 ] ±[ 1.86106 1.34683]
Principal point: cc = [302.95191 248.06759 ] ±[ 1.88046 2.85817]
Skew: alpha_c = [0.00000 ]±[0.00000] => angle of pixel axes = 90.00000 ±0.00000 degrees
Distortion: kc = [-0.25853 0.14834 0.00074 -0.00030 0.00000 ] ±[0.00784 0.03727 0.00085 0.00042 0.00000]
Pixel error: err = [0.15205 0.12424]
在實現(xiàn)內(nèi)參數(shù)標定后,對棋盤格靶標相對相機的外參數(shù)進行標定。標定結(jié)果如下
Translation vector: Tc_ext = [-531.674715 400.142025 1999.135937]
Rotation vector: omc_ext = [2.258838 -0.002845 0.157413]
Rotation matrix: Rc_ext = [0.992075 -0.055515 0.112716
0.051405 -0.639246 -0.767282
0.114649 0.766996 -0.631327]
Pixel error: err = [0.14406 0.10000]
在外參數(shù)標定結(jié)果中,Tc_ext為靶標坐標系原點在攝像機坐標系中的位移向量,單位為mm;omc_ext為對應(yīng)于姿態(tài)矩陣的rodrigues旋轉(zhuǎn)向量;Rc_ext為旋轉(zhuǎn)矩陣;err為將網(wǎng)格角點反投影到圖像空間的誤差的標準方差,單位為像素。
3 結(jié)語
本文對計算機視覺中相機標定的相關(guān)知識進行了介紹,并通過先后進行內(nèi)參數(shù)標定與外參數(shù)標定完成了一個標定實例,闡明了雙目立體視覺系統(tǒng)中相機標定技術(shù)的具體實現(xiàn)過程。
參考文獻:
[1]尹力.基于 Open CV的計算機視覺三維重建方法研究[D].合肥: 安徽大學(xué),19 - 32.
[2]徐杰.機器視覺中攝像機標定 Tasi 兩步法的分析與改進,計算機工程與科學(xué),2010,32(4):45-48
[3]黃侃.計算機立體視覺中的攝像機標定算法的研究與應(yīng)用[D].沈陽: 沈陽工業(yè)大學(xué),2007