赫美琳,高明慧,李 爽,楊開偉
(1.中國(guó)人民解放軍92941部隊(duì),葫蘆島 125001;2.海軍航空大學(xué),煙臺(tái) 264001;3.中國(guó)電子科技集團(tuán)公司第54研究所,石家莊 050081;4.衛(wèi)星導(dǎo)航系統(tǒng)與裝備技術(shù)國(guó)家重點(diǎn)實(shí)驗(yàn)室,石家莊 050081)
相機(jī)標(biāo)定即計(jì)算相機(jī)內(nèi)部參數(shù)的過程。相機(jī)標(biāo)定的常用方法可以分為兩類:傳統(tǒng)相機(jī)標(biāo)定方法和相機(jī)自標(biāo)定法。傳統(tǒng)相機(jī)標(biāo)定法有直接線性變換法、兩步法、張正友標(biāo)定法等,近幾年又提出了基于神經(jīng)網(wǎng)絡(luò)、粒子群、遺傳算法的相機(jī)標(biāo)定算法。相機(jī)自標(biāo)定法,由Faugeras和Maybank等于20世紀(jì)90代提出,一般應(yīng)用在相機(jī)的焦距等內(nèi)部參數(shù)需要經(jīng)常調(diào)整或相機(jī)的位姿經(jīng)常變化的情況下,每對(duì)相機(jī)做一次調(diào)整,都必須對(duì)相機(jī)的內(nèi)外參數(shù)進(jìn)行重新標(biāo)定,應(yīng)用的場(chǎng)合主要有:主動(dòng)視覺系統(tǒng)和移動(dòng)機(jī)器人視覺系統(tǒng)等,因?yàn)樵谶@些應(yīng)用場(chǎng)景中放置標(biāo)定參照物是不現(xiàn)實(shí)的,因此在這種應(yīng)用背景下就必須采用一種不需要標(biāo)準(zhǔn)參照物的相機(jī)標(biāo)定方法。相機(jī)自標(biāo)定方法,不需要標(biāo)準(zhǔn)參照物,僅利用相機(jī)在運(yùn)動(dòng)過程中的圖像序列就可以完成相機(jī)內(nèi)外參數(shù)的計(jì)算。
針對(duì)傳統(tǒng)的相機(jī)標(biāo)定過程復(fù)雜、對(duì)標(biāo)定參照物精度要求高等問題,本文介紹了一種簡(jiǎn)單快速的相機(jī)標(biāo)定方法,具有流程簡(jiǎn)單、準(zhǔn)確率高、算法魯棒性強(qiáng)的優(yōu)點(diǎn)。
像素坐標(biāo)系是以像素為單位建立的坐標(biāo)系,圖像坐標(biāo)系是以物理單位而建立的坐標(biāo)系。像素坐標(biāo)系和圖像坐標(biāo)系如圖1所示:
圖1中,像素坐標(biāo)系的原點(diǎn)為圖像中的O0點(diǎn),坐標(biāo)軸為u軸和v軸,像素的坐標(biāo)(u,v)代表該像素位于圖像矩陣中的第u行、第v列。圖像坐標(biāo)系的原點(diǎn)為圖像中O1點(diǎn),原點(diǎn)O1為相機(jī)光心,即相機(jī)光軸與成像平面的交點(diǎn)。圖像坐標(biāo)系坐標(biāo)軸為x軸、y軸,分別平行于像素坐標(biāo)系的坐標(biāo)軸。
圖像坐標(biāo)系原點(diǎn)O1在像素坐標(biāo)系中的坐標(biāo)為(u0,v0),像素的物理尺寸大小為dx,dy,則像素在兩個(gè)坐標(biāo)系下的轉(zhuǎn)換關(guān)系為:
相機(jī)的成像幾何關(guān)系如圖2所示:
圖2 相機(jī)的成像幾何關(guān)系
其中,點(diǎn)O為相機(jī)光心;OO1為相機(jī)焦距f;點(diǎn)O1為圖像坐標(biāo)系的原點(diǎn)。相機(jī)坐標(biāo)系原點(diǎn)為點(diǎn)O,坐標(biāo)軸為Xc,Yc,Zc軸,坐標(biāo)軸Xc和Yc分別與圖像坐標(biāo)系中的x軸、y軸平行,Zc軸為相機(jī)的光軸。世界坐標(biāo)系原點(diǎn)為Ow,坐標(biāo)軸為圖中的Xw,Yw,Zw軸,相機(jī)可以安放在室內(nèi)環(huán)境中的任何位置,所以相機(jī)坐標(biāo)系是隨相機(jī)位姿變化而變化的,因此需要設(shè)置世界坐標(biāo)系。
假設(shè)空間中存在一點(diǎn)P,在相機(jī)坐標(biāo)下的坐標(biāo)為(Xc,Yc,Zc,1)T,在世界坐標(biāo)下的坐標(biāo)為(Xw,Yw,Zw,1)T,則兩個(gè)坐標(biāo)系之間的轉(zhuǎn)換關(guān)系如式(4)所示:
式中,R為3*3旋轉(zhuǎn)矩陣;t為3*1平移向量;0=[0 0 0]T;M1為R,t組成的4*4矩陣,為相機(jī)坐標(biāo)系與世界坐標(biāo)系的轉(zhuǎn)換矩陣。
在忽略相機(jī)畸變的條件下,相機(jī)的成像模型近似為針孔模型,即空間中任意一點(diǎn)P在圖像上的投影位置為點(diǎn)p,即相機(jī)光心O與P點(diǎn)的連線OP與圖像平面的交點(diǎn)(如圖2所示)。比例關(guān)系如式(5):
式中,(x,y)為投影點(diǎn)p在圖像坐標(biāo)系下的坐標(biāo);(Xc,Yc,Zc)為空間點(diǎn)P在相機(jī)坐標(biāo)系下的坐標(biāo);f為相機(jī)焦距。上述關(guān)
式中,;M為3*4矩陣,稱為投影矩陣;M1由決定,只與相機(jī)內(nèi)部結(jié)構(gòu)相關(guān),為相機(jī)內(nèi)部參數(shù);M2由R,t決定,R,t代表相機(jī)在世界坐標(biāo)系中的位姿,為相機(jī)外部參數(shù)。
由于針孔成像模型忽略了相機(jī)的畸變,因此不能準(zhǔn)確地描述相機(jī)的成像幾何關(guān)系。相機(jī)畸變包含三種類型:徑向畸變產(chǎn)生的原因是成像平面與透鏡平面不嚴(yán)格平行,它造成的不利影響有兩種,一種是枕型效應(yīng),一種是桶型效應(yīng),在圖像中表現(xiàn)為遠(yuǎn)離中心位置的圖像部分會(huì)存在一定程度的畸變;切向畸變是由于透鏡與成像平面不嚴(yán)格平行造成的;薄棱鏡畸變是透鏡制造過程中存在缺陷造成的。相機(jī)的徑向和切向畸變?nèi)鐖D3所示。
圖3 相機(jī)的徑向和切向畸變
采用下列公式描述相機(jī)的非線性畸變:
式中,為按照針孔成像模型計(jì)算出的投影點(diǎn)p在圖像坐標(biāo)系下的坐標(biāo);x,y為投影點(diǎn)p在圖像坐標(biāo)系下的真實(shí)坐標(biāo);等式右邊第一項(xiàng)為徑向畸變,第二項(xiàng)為切向畸變,第三項(xiàng)為薄棱鏡畸變,各項(xiàng)的系數(shù)k1,k2,p1,p2,s1,s2稱為非線性畸變參數(shù)。
一般情況下,描述相機(jī)的非線性畸變只需要考慮等式(8)中的第一項(xiàng)徑向畸變。如果只考慮徑向畸變,等式(8)表示為:
式中,r2=x2+y2。該式表明x方向和y方向的徑向畸變大小與半徑的平方成正比,即越遠(yuǎn)離圖像中心畸變?cè)酱蟆?shù)和畸變參數(shù)k1,k2,p1,p2,s1,s2構(gòu)成非線性模型的相機(jī)內(nèi)部參數(shù)。
由上述相機(jī)成像過程得到三維空間中任意一點(diǎn)與其投影在圖像上的點(diǎn)之間的對(duì)應(yīng)關(guān)系,相機(jī)成像過程示意圖如圖4所示:
圖4 相機(jī)成像過程示意圖
本文方法利用多幅不同位置和角度拍攝的平面棋盤格圖像求解相機(jī)內(nèi)外參數(shù)。該標(biāo)定法的過程可以分成兩步:第一步,采用針孔成像模型,建立線性方程組,求解相機(jī)內(nèi)、外參數(shù)的初始值,然后以該參數(shù)作為初始值,采用最大似然進(jìn)行非線性優(yōu)化;第二步,考慮相機(jī)的徑向畸變,采用非線性模型求解相機(jī)內(nèi)外參數(shù)。具體實(shí)現(xiàn)步驟如下:
假設(shè)已知空間一點(diǎn)P的世界坐標(biāo)為,對(duì)應(yīng)的投影點(diǎn)P在像素坐標(biāo)系下的坐標(biāo)為P=(u,v)T,它們對(duì)應(yīng)的齊次坐標(biāo)分別為和=(u,v)T,空間點(diǎn)P和投影點(diǎn)P的映射關(guān)系如式(10):
式中,s為比例因子;R、t分別為旋轉(zhuǎn)矩陣和平移向量;A為相機(jī)內(nèi)參矩陣,即
式中,fu,fv為圖像橫縱坐標(biāo)軸的尺度因子即焦距與像素寬和高的比值;(u0,v0)為相機(jī)光軸與圖像平面交點(diǎn)的坐標(biāo)。
用ri表示旋轉(zhuǎn)矩陣R的第i列,因?yàn)椴捎闷矫嫫灞P格進(jìn)行標(biāo)定,所以所有的空間參考點(diǎn)的Zw=0,由此式(12)還可以表示為:
利用最小二乘法求解式(14)可得h,進(jìn)而得到單應(yīng)性矩陣H的大小,按這種方法求得的單應(yīng)性矩陣H與真正的單應(yīng)性矩陣之間存在比例因子λ,設(shè)H=[h1h2h3],則有:
單應(yīng)性矩陣H中包含相機(jī)的內(nèi)外參數(shù),通過單應(yīng)性矩陣求解出相機(jī)的內(nèi)外參數(shù)。將單應(yīng)性矩陣中分解得到相機(jī)的內(nèi)外參數(shù),設(shè)矩陣B滿足下列條件:
求得相機(jī)內(nèi)參數(shù)矩陣參數(shù),利用內(nèi)參矩陣A來確定相對(duì)于每幅圖像的外參數(shù),即旋轉(zhuǎn)矩陣R和平移向量t:
設(shè)每幅棋盤格圖像中包含W個(gè)標(biāo)定參考點(diǎn),每個(gè)標(biāo)定點(diǎn)的坐標(biāo)受到相同的噪聲干擾,噪聲滿足獨(dú)立同分布,利用最大似然估計(jì)對(duì)上述計(jì)算結(jié)果進(jìn)一步優(yōu)化,建立如下目標(biāo)函數(shù):
式中,Pij為三維空間中第i個(gè)參考點(diǎn)在第j幅圖像上的投影點(diǎn)的坐標(biāo);Ri,ti分別為第i幅圖像的旋轉(zhuǎn)矩陣和平移向量;Pi為空間中第i個(gè)參考點(diǎn)在世界坐標(biāo)系下的三維坐標(biāo);為投影點(diǎn)由相機(jī)內(nèi)外參數(shù)計(jì)算得到的圖像坐標(biāo)系下的二維坐標(biāo)。通過目標(biāo)函數(shù)(26)的將相機(jī)標(biāo)定參數(shù)求解問題轉(zhuǎn)化為非線性優(yōu)化問題,使目標(biāo)函數(shù)最小的A,R,t即該問題的最優(yōu)解。將由方程組(25)求得的結(jié)果作為初始值,然后通過牛頓法、高斯牛頓法或Levenberg-Marquarant法進(jìn)行求解。
針對(duì)相機(jī)成像過程中存在的鏡頭畸變問題,在計(jì)算相機(jī)內(nèi)外參數(shù)的公式中加入鏡頭的一階和二階徑向畸變,并假設(shè)相機(jī)鏡頭在X軸方向與Y軸方向的畸變系數(shù)相同。設(shè)徑向畸變的畸變模型為:
求得相機(jī)的一級(jí)徑向畸變和二級(jí)徑向畸變系數(shù)k1,k2,利用已經(jīng)求出內(nèi)外參,重新利用L-M算法迭代進(jìn)行最小化處理,進(jìn)一步優(yōu)化所有的參數(shù),得到最終相機(jī)的內(nèi)部參數(shù)和畸變系數(shù)。
實(shí)驗(yàn)平臺(tái)為:Inter(R)Core(TM)i5-4460 CPU,主頻:3.20 GHz,內(nèi)存大?。?.00 GB。
實(shí)驗(yàn)選用蘋果電腦一體機(jī)Isight 攝像頭,分辨率大小設(shè)置為320×240。標(biāo)準(zhǔn)標(biāo)定參照物分為三類:三維、虛擬三維和二維。三維標(biāo)定物一般用于高精度的標(biāo)定,但存在制造復(fù)雜成本高的缺點(diǎn)。虛擬三維標(biāo)定物是按照已知的移動(dòng)方式移動(dòng)二維標(biāo)定物來模擬三維場(chǎng)景,其不足是需要使用高精度運(yùn)動(dòng)平臺(tái)來實(shí)現(xiàn),標(biāo)定過程復(fù)雜成本高昂。本論文采用二維標(biāo)定參照物,即使用A4紙打印的黑白相間的棋盤格,棋盤格數(shù)為7×10,每個(gè)方格的大小為19mm×19mm,如圖5所示:
影響相機(jī)定標(biāo)結(jié)果的準(zhǔn)確性和穩(wěn)定性的因素除標(biāo)定算法本身外還有操作過程引入的誤差,主要有三類:標(biāo)定棋盤所在平面與成像平面間的夾角;標(biāo)定時(shí)拍攝的棋盤格圖像的數(shù)目;手動(dòng)提取圖像上的角點(diǎn)時(shí)存在誤差。為了減小操作過程引入的誤差,在實(shí)際標(biāo)定過程中,共拍攝16幅棋盤圖像,每拍攝一次就要調(diào)整一次標(biāo)定板的位姿,使每幅圖像拍攝的角度和距離各不相同,如圖6所示:
圖5 棋盤格圖像
圖6 相機(jī)標(biāo)定圖像
相機(jī)與棋盤格之間的位置關(guān)系如圖7所示。
圖7 相機(jī)與棋盤格的位置關(guān)系
從圖8中可知,同一顏色的小十字表示同一幅標(biāo)定板圖像,x軸和y表示誤差,單位為像素。距離坐標(biāo)原點(diǎn)(0,0)越近的點(diǎn),誤差越小,反之,越大。實(shí)驗(yàn)表明,最終得到的參數(shù)精度較高。
相機(jī)內(nèi)參標(biāo)定結(jié)果如表1所示:
表1 相機(jī)內(nèi)部參數(shù)標(biāo)定結(jié)果
圖8 重投影誤差圖
本文對(duì)基于棋盤格的相機(jī)標(biāo)定法進(jìn)行深入研究,詳細(xì)闡述了方法的理論原理,分析了相機(jī)參數(shù)模型,并進(jìn)行相機(jī)的參數(shù)標(biāo)定實(shí)驗(yàn),通過對(duì)實(shí)驗(yàn)結(jié)果的分析表明該方法具有步驟簡(jiǎn)單、精度較高的優(yōu)勢(shì)。下一步準(zhǔn)備開展基于雙目的相機(jī)標(biāo)定算方法研究。
[1] 高宏偉.計(jì)算機(jī)雙目立體視覺[M].北京:電子工業(yè)出版社,2012:95-99.
[2] 馬頌德,張正友.計(jì)算機(jī)視覺-計(jì)算理論與算法基礎(chǔ)[M].北京:科學(xué)出版社,2003:17-39.
[3] 郭靜,吳懷宇,杜釗君.一種基于OpenCV的簡(jiǎn)單攝像機(jī)標(biāo)定方法[J].信息技術(shù),2011(12):113-116.
[4] M Pollefeys,R Koch.Self-calibration and metric rexonstruction inspite of varying and unknown intrinsic camera parameters[J].International Journal of Computer Vision,1990,32(1):7-25.
[5] Zhang Z.Flexible camera calibration by viewing a plane from unknown orientations[C].ICCV,1999:666-673.
[6] 李莉.OpenCV耦合改進(jìn)張正友算法的相機(jī)標(biāo)定算法[J].輕工機(jī)械,2015,33(4):60-63.
[7] Zhang.A fl exible new technique for camera calibration[J].IEEE Transactions on Pattern Analysis and Machine Intelligen ce,2000,22(11):1330-1334.