崔凌燕, 陳 婧
(1. 中北大學(xué) 儀器與電子學(xué)院, 山西太原 030051; 2. 中國航天科工集團(tuán)第二研究院706所, 北京 100854)
視覺是人類獲取信息的最主要的來源, 人類大腦皮層的活動(dòng), 大約70%是在處理視覺相關(guān)信息. 對(duì)機(jī)器來說也是一樣, 一套完備的機(jī)械系統(tǒng)如果沒有清晰的、 精確的視覺系統(tǒng)的話, 它所能完成的功能就非常有限. 在機(jī)器視覺應(yīng)用中, 在從目標(biāo)的二維圖像中提取它的三維信息之前, 估計(jì)攝像機(jī)模型的內(nèi)部參數(shù)和外部參數(shù)是一個(gè)非常重要的步驟. 精確的攝像機(jī)標(biāo)定在涉及定量測(cè)量的應(yīng)用中尤其重要, 它會(huì)嚴(yán)重影響系統(tǒng)的性能, 例如尺寸測(cè)量, 立體視覺深度, 或圖像中的運(yùn)動(dòng).
攝像機(jī)標(biāo)定一方面是估計(jì)相機(jī)的內(nèi)部參數(shù), 包括: 攝像機(jī)鏡頭畸變中心(或稱像面中心), 鏡頭畸變系數(shù), 攝像機(jī)的有效焦距和像面橫縱像素轉(zhuǎn)換當(dāng)量比例系數(shù), 這些內(nèi)部參數(shù)給定一個(gè)點(diǎn)相對(duì)于攝像機(jī)的空間位置, 確定如何導(dǎo)出一個(gè)點(diǎn)的圖像坐標(biāo); 另一方面是估計(jì)攝像機(jī)的外部參數(shù), 包括: 攝像機(jī)坐標(biāo)系與世界坐標(biāo)系之間的轉(zhuǎn)換矩陣, 包括旋轉(zhuǎn)矩陣和平移矩陣, 表征著攝像機(jī)與場(chǎng)景之間或不同攝像機(jī)之間的幾何關(guān)系. 一般情況下, 實(shí)際的攝像機(jī)并不完美. 由于攝像機(jī)的鏡頭是非計(jì)量的現(xiàn)成鏡頭, 而且攝像機(jī)組件保持相當(dāng)大的內(nèi)部未對(duì)準(zhǔn), 導(dǎo)致了各種畸變. 對(duì)于幾何測(cè)量, 攝像機(jī)的畸變會(huì)造成很大的影響, 需要通過標(biāo)定來校準(zhǔn)[1-3].
攝像機(jī)標(biāo)定問題被廣泛研究. 標(biāo)定技術(shù)目前可分為傳統(tǒng)標(biāo)定方法和攝像機(jī)自標(biāo)定法. 傳統(tǒng)攝像機(jī)標(biāo)定方法算法復(fù)雜、 精度高, 標(biāo)定的復(fù)雜度與攝像機(jī)成像幾何模型的復(fù)雜性有關(guān), 主要包括: 非線性優(yōu)化技術(shù), 線性技術(shù)和兩步技術(shù)[4]. 攝像機(jī)自標(biāo)定方法不依賴于標(biāo)定參照物, 主要用在對(duì)精度要求不高的場(chǎng)合, 這種方法標(biāo)定過程復(fù)雜, 最大的缺欠是魯棒性不足[5,6]. 相比之下, 傳統(tǒng)標(biāo)定方法在工業(yè)中得到廣泛應(yīng)用.
兩步法涉及了大部分校準(zhǔn)參數(shù)的直接解和一些其他參數(shù)的迭代解. 現(xiàn)有的技術(shù)是Tsai和Lenz提出的. 使用徑向?qū)?zhǔn)約束來得到外部參數(shù)的閉式解和相機(jī)的有效焦距. 然后, 使用迭代方案來估計(jì)3個(gè)參數(shù): 平移向量(外部參數(shù))中的深度分量. 有效焦距和徑向失真系數(shù). 這種方法的優(yōu)點(diǎn)是閉式解對(duì)透鏡的徑向失真免疫, 通過迭代估計(jì)的參數(shù)的數(shù)目相對(duì)較小. 缺點(diǎn)是只能處理徑向畸變, 得到的解決方案不是最佳的[7]. 同時(shí)忽略了切向畸變和橫縱比, 且標(biāo)定步驟相對(duì)復(fù)雜, 還有很多有待改進(jìn)的地方.
我們選用的攝像機(jī)模型是針孔模型[8,9], 這是一種理想的攝像機(jī)模型, 忽略了畸變因素, 其物理上相當(dāng)于薄透鏡成像, 它的最大優(yōu)點(diǎn)是成像關(guān)系是線性的, 簡(jiǎn)單實(shí)用而不失準(zhǔn)確性.
令(xw,yw,zw)表示任何可見點(diǎn)P在世界坐標(biāo)系中的坐標(biāo), 令(xc,yc,zc)表示相同點(diǎn)在攝像機(jī)中心坐標(biāo)系中的坐標(biāo), 如圖 1 所示. 攝像機(jī)中心坐標(biāo)系的原點(diǎn)與攝像機(jī)的光學(xué)中心重合,zc軸與其光軸重合. 世界坐標(biāo)系和相機(jī)中心坐標(biāo)系之間的關(guān)系是由式(1)給出
(1)
式中:R是一個(gè)旋轉(zhuǎn)矩陣, 用來定義相機(jī)的方向;T是一個(gè)平移向量, 用來定義相機(jī)的位置.
圖 1 坐標(biāo)系的構(gòu)成Fig.1 Coordinate systems
現(xiàn)在我們?cè)趫D像平面中定義圖像坐標(biāo)系(o-xy), 其中o表示圖像平面的主點(diǎn)(即, 圖像平面與光軸的交點(diǎn)), 其中x軸和y軸選擇平行于xc軸和yc軸. 應(yīng)該強(qiáng)調(diào)的是: 由于CCD陣列的可能性的未對(duì)準(zhǔn),o不一定與圖像平面的幾何中心重合. 假設(shè)與(xc,yc)平面平行并且到原點(diǎn)的距離為f, 其中f代表有效的相機(jī)焦距. 點(diǎn)P的圖像平面坐標(biāo)由式(2)給出
(2)
最后, 如果我們用(u,v)表示數(shù)字圖像中相應(yīng)像素的位置, 則該位置與圖像平面坐標(biāo)的關(guān)系由方程式(3)給出
u-u0=Nxx,v-v0=Nyy,
(3)
式中:x和y是圖像平面實(shí)際的成像坐標(biāo). (u0,v0)表示主點(diǎn)o的像素位置. 坐標(biāo)(u,v)是CCD陣列中的行數(shù)和列數(shù).xc軸和yc軸被選擇分別平行于行方向和列方向.Nx和Ny分別表示橫、 縱向單位長度的像素?cái)?shù). 組合式(1), (2)和(3)導(dǎo)出以下表達(dá)式, 涉及像素坐標(biāo), 世界坐標(biāo)和要校準(zhǔn)的各種參數(shù)
(4)
幾何畸變涉及圖像平面中的圖像點(diǎn)的位置. 由于組成相機(jī)光學(xué)系統(tǒng)的透鏡設(shè)計(jì)和組裝中存在幾種類型的缺陷, 所以式(2)中的方程式不成立, 必須由考慮到位置誤差的表達(dá)式式(5)來代替
x′=x+δx(x,y),y′=y+δy(x,y),
(5)
式中:x和y是理想的無畸變圖像坐標(biāo);x′和y′是相應(yīng)的具有畸變的坐標(biāo). 如式(5)所示, 沿每個(gè)坐標(biāo)的位置誤差量通常取決于點(diǎn)的位置. 為了校正畸變, 需要分析各種畸變的來源, 并在圖像平面中對(duì)其影響效果進(jìn)行建模.
1) 徑向畸變: 徑向畸變會(huì)導(dǎo)致一個(gè)給定的圖像點(diǎn)從其理想位置向內(nèi)或者向外位移. 主要是由透鏡元件的有缺陷的徑向曲率曲線造成的. 圖像點(diǎn)的負(fù)徑向位移稱為桶形失真. 它使外點(diǎn)越來越聚集在一起, 整體規(guī)模減小. 正向的徑向位移稱為枕形失真. 它導(dǎo)致外點(diǎn)蔓延和規(guī)模增大. 這種類型的畸變是嚴(yán)格關(guān)于光軸對(duì)稱的[10,11]. 徑向畸變的畸變量可由式(6)表示(忽略高階項(xiàng))
δxr=k1xr2+k2xr2,δyr=k1yr2+k2yr4,
(6)
2) 偏心畸變: 實(shí)際的光學(xué)系統(tǒng)都受到各種程度的偏移, 即透鏡元件的光學(xué)中心不嚴(yán)格共線. 這個(gè)缺陷導(dǎo)致了偏心畸變. 可以通過式(7)表示(忽略高階項(xiàng))
δxd=3p1x2+p1y2+2p2xy,
(7)
δyd=2p1xy+p2x2+3p2y2,
(8)
式中:p1,p2分別是一階、 二階切向畸變系數(shù).
3) 總的畸變: 組合式(6), 式(7)得到x軸和y軸的總畸變量, 忽略高階項(xiàng), 可以得到
(9)
同樣有
(10)
由于精確的x,y不能從實(shí)際觀測(cè)中獲得, 因此畸變模型的論據(jù)被替換為x′,y′, 得到
(11)
一個(gè)完整的攝像機(jī)模型有兩組需要估計(jì)的參數(shù): ① 外部參數(shù)(旋轉(zhuǎn)和平移)和無畸變的內(nèi)部參數(shù); ② 包含畸變的內(nèi)部參數(shù). 總體的估計(jì)問題是非線性的.
加入一個(gè)額外的畸變系數(shù)Sx用來表示畸變的橫縱比, 得到
(12)
假設(shè)標(biāo)定板位于zw=0的平面上, 由式(4)可得到
(13)
采用如下標(biāo)定步驟:
1) 將第2組參數(shù)固定.
為了給第2組參數(shù)一個(gè)良好的初始解作為進(jìn)一步非線性優(yōu)化的一個(gè)好的初步猜測(cè), 需要求出第1組參數(shù)的閉式解, 將第2組參數(shù)固定, 設(shè)Sx=1,k1=0,k2=0,p1=0,p2=0.
2) 在第2組參數(shù)固定的情況下計(jì)算第1組參數(shù).
由每個(gè)可見點(diǎn)及其相應(yīng)的像素位置給出式(13)中的兩個(gè)線性方程
(14)
整理得到
(15)
3) 固定上一步得到的第1組參數(shù)為當(dāng)前的估計(jì)量, 計(jì)算畸變參數(shù). 隨后將得到的旋轉(zhuǎn)矩陣R和平移向量T, 以及內(nèi)部參數(shù)f代入式(13)得到
(16)
整理得到
(17)
4) 轉(zhuǎn)到步驟2), 直到執(zhí)行了使校正誤差足夠小的迭代, 程序終止.
將2組待估計(jì)的參數(shù)進(jìn)行分隔, 在其中一組計(jì)算時(shí), 另一組固定. 這樣在很大程度上減少了它們之間有害的相互作用. 選擇的點(diǎn)集包含足夠多的圖像中心附近的點(diǎn), 可以假設(shè)這個(gè)區(qū)域的點(diǎn)的畸變很小, 并且步驟1)中畸變參數(shù)的假設(shè)不會(huì)影響第一次迭代中步驟2)中的參數(shù)的估計(jì)質(zhì)量.
圖 2 標(biāo)定板Fig.2 Calibration board
實(shí)驗(yàn)使用的標(biāo)定板是一個(gè)打孔的鋁制板, 尺寸是60 mm×60 mm, 圓孔半徑2 mm, 圓孔圓心間距10 mm, 如圖2 所示. 板面上各圓孔的圓心的世界坐標(biāo)是已知的. 實(shí)驗(yàn)使用的攝像頭型號(hào)是MT9M001, 像素尺寸: 5.2 μm×5.2 μm.u0,v0值的變化對(duì)于總的標(biāo)定精度影響不是很大[12], 選定在圖像平面的中心, 坐標(biāo)為(232,232).
使用8領(lǐng)域法得到各個(gè)圓孔的輪廓, 從而求出各圓孔圓心的位置坐標(biāo)如表 1 所示, 各圓孔圓心的世界坐標(biāo)如表 2 所示.
表 1 圖像平面中圓孔的圓心坐標(biāo)
表 2 世界坐標(biāo)系中圓孔的圓心坐標(biāo)
畸變的標(biāo)定板外輪廓如圖 3 所示, 校正后的標(biāo)定板外輪廓如圖 4 所示.
圖 3 標(biāo)定前的標(biāo)定板外輪廓Fig.3 External outline of calibration plate before calibration
圖 4 標(biāo)定后的標(biāo)定板外輪廓Fig.4 Outer contour of calibration plate after calibration
標(biāo)定結(jié)果采用平均像素誤差E來衡量, 即圓心實(shí)際的圖像坐標(biāo)和再投影后的圓心圖像坐標(biāo)之差的模平均值.
(18)
式中: (ui,vi)是圓心的實(shí)際圖像坐標(biāo); (uhi,vhi)是再投影后的圓心圖像坐標(biāo);N為圓心個(gè)數(shù), 單位是像素, 得到E=0.379 1 pixes.
本文對(duì)Tsai的兩步法進(jìn)行了一定的改進(jìn), 彌補(bǔ)了兩步法無法一次標(biāo)定全部?jī)?nèi)外參數(shù)的缺陷, 采用固定的標(biāo)定板就可以線性地求解攝像機(jī)的全部?jī)?nèi)外參數(shù). 標(biāo)定的畸變參數(shù)更為全面. 這種方法穩(wěn)定性高, 簡(jiǎn)便易行, 具有很好的實(shí)用性.
參考文獻(xiàn):
[1]鄒鳳嬌, 蘇顯渝, 李美菊. 基于共面點(diǎn)的攝像機(jī)線性標(biāo)定法[J].光電工程, 2005(4): 70-74.
Zou Fengjiao, Su Xianyu , Li Meiju. Camera linear calibration method with a coplanar target[J]. Opto-Electronic Engineering, 2005(4): 70-74. (in Chinese)
[2]Gao D P, Yin F I. Computing a complete camera lens distortion model by planar homography[J]. Opt & Laser Technol., 2013, 49: 95-107.
[3]張曉明, 沈連婠, 趙高飛, 等. 基于平面模板的兩步法標(biāo)定攝像機(jī)的改進(jìn)[J]. 現(xiàn)代制造工程, 2008(10): 9-12.
Zhang Xiaoming, Shen Lianguan, Zhao Gaofei, et al. Improvement of two-stage camera calibration based on plane[J]. Modern Manufacturing Engineering, 2008(10): 9-12. (in Chinese)(in Chinese)
[4]Abdel-Aziz Y L, Karara H M. Direct linear transformation into object space coordinates in close-range photogrammetry[J]. Proc.Symp.Close-Range Photogrammetry, 1971(1): 1-18.
[5]黃任飛, 習(xí)俊通, 馬登哲. 一種攝像機(jī)自動(dòng)標(biāo)定方法的設(shè)計(jì)與實(shí)現(xiàn)[J].測(cè)試技術(shù)學(xué)報(bào), 2004(2): 122-127.
Huang Renfei, Xi Juntong, Ma Dengzhe. Design and implement of an automatic camera automatic calibration method[J]. Journal of Test and Measurement Technology, 2004(2): 122-127. (in Chinese)
[6]周子卿, 趙鵬, 李勃, 等.基于共線向量的非量測(cè)鏡頭畸變校正[J]. 光學(xué)學(xué)報(bào), 2014, 34(10): 180-185.
Zhou Ziqing, Zhao Peng, Li Bo, et al. Nonmetric lens distortion calibration based on collinear vectors[J]. Acta Optica Sinica, 2014, 34(10): 180-185. (in Chinese)
[7]Tsai R Y. A versatile camera calibration technique for high accuracy 3D machine vision metrology using off-the-shelf cameras and lens[J]. IEEE Transactions on Robotics and Automation, 1987, 3(4): 323-344.
[8]Sun W, Cooperstock J R. An empirical evaluation of factors influencing camera calibration accuracy using three publicly available techniques[J]. Machine Vision and Applications, 2006, 17(1): 51-67.
[9]Wang J H, Shi F H, Zhang J, et al. A new calibration model of camera lens distortion[J]. Pattern Recognition, 2008, 41(2): 607-615.
[10]Juyang Weng. Camera calibration with distortion models and accuracy evaluation[J]. IEEE Transactions on Pattern Anaylsis and Machine Intelligence, 1992, 14(10): 965-980.
[11]Zhang Z. A flexible new technique for camera calibration[J]. IEEE Transactions on Pattern Analysis and Machine Intelligence, 2000, 22( 11): 1330-1334.
[12]徐杰. 機(jī)器視覺中攝像機(jī)標(biāo)定Tsai兩步法的分析與改進(jìn)[J]. 計(jì)算機(jī)工程與科學(xué), 2010, 32(4): 45-48, 58.
Xu Jie. Analyzing and improving the Tsai camera calibration method in machine vision[J]. Computer Engineering & Science, 2010; 32(4): 45-48, 58.(in Chinese)