楊文廣,高 丹,羅子娟,錢惟賢
(1.南京理工大學(xué) 電子工程與光電技術(shù)學(xué)院·南京·210094;2. 上海航天控制技術(shù)研究所·上?!?01109;3. 中國(guó)電子科技集團(tuán)公司第二十八研究所·南京·210007)
光學(xué)遙感技術(shù)是一種獲取對(duì)地觀測(cè)信息的重要手段,光學(xué)遙感的數(shù)據(jù)來(lái)源則以長(zhǎng)焦相機(jī)拍攝到的圖像為主[1]。相機(jī)標(biāo)定是視覺(jué)測(cè)量初始階段的一項(xiàng)關(guān)鍵技術(shù),標(biāo)定精度將直接影響圖像三維測(cè)量[2]、圖像匹配[3]等衍生技術(shù)的準(zhǔn)確性。目前,國(guó)內(nèi)外提出了大量相機(jī)標(biāo)定算法[4-5]。根據(jù)標(biāo)定物狀態(tài),對(duì)于相機(jī)的標(biāo)定可分為二維標(biāo)定[6]和三維標(biāo)定[7]兩種。其中,二維標(biāo)定物主要用于對(duì)短焦鏡頭進(jìn)行標(biāo)定,常見(jiàn)的算法包括徑向約束兩步法[8]和平面標(biāo)定法[9]兩種。但是,對(duì)于長(zhǎng)焦鏡頭而言,二維標(biāo)定板放置過(guò)近,會(huì)導(dǎo)致成像模糊,造成較大的誤差;二維標(biāo)定板放置較遠(yuǎn),則會(huì)導(dǎo)致圖像分辨率不足,無(wú)法較好地識(shí)別角點(diǎn)。相對(duì)而言,三維標(biāo)定物能夠較好地分布于圖像整個(gè)平面。但是,三維標(biāo)定物的制作與維護(hù)較為困難,存在較大的使用局限性,實(shí)驗(yàn)的復(fù)雜性也較高。
傳統(tǒng)的長(zhǎng)焦鏡頭標(biāo)定方法主要針對(duì)標(biāo)定物或離焦圖像設(shè)計(jì)標(biāo)定方案。孫楠等[10]通過(guò)大型十字標(biāo)靶對(duì)相機(jī)進(jìn)行了標(biāo)定。Wang等[11]提出了一種可應(yīng)用于失焦彩色相機(jī)校準(zhǔn)的標(biāo)準(zhǔn)尺寸彩色編碼模式,將特征點(diǎn)編碼到相位而不是強(qiáng)度中,以便于從模糊圖像中提取特征點(diǎn)。文獻(xiàn)[12]通過(guò)使用圓形相移圖案對(duì)特征點(diǎn)進(jìn)行編碼,需通過(guò)精確擬合得到第一個(gè)截?cái)嘀芷谔幍膩喯袼刈鴺?biāo),且沒(méi)有考慮伽馬非線性誤差對(duì)相位造成的影響。
針對(duì)二維標(biāo)定靶標(biāo)的缺點(diǎn),本文通過(guò)在平行光管焦平面處放置透過(guò)式靶標(biāo),可使遠(yuǎn)焦相機(jī)拍攝到清晰的靶標(biāo)圖片,并結(jié)合精確二維旋轉(zhuǎn)平臺(tái)搭建了一套相機(jī)內(nèi)參標(biāo)定系統(tǒng)。二維旋轉(zhuǎn)平臺(tái)與相機(jī)固連,通過(guò)旋轉(zhuǎn)使得靶標(biāo)成像分布在整個(gè)相機(jī)視場(chǎng)中。通過(guò)兩幅圖像對(duì)應(yīng)點(diǎn)之間的對(duì)極約束以及旋轉(zhuǎn)平臺(tái)對(duì)相機(jī)旋轉(zhuǎn)平移運(yùn)動(dòng)的精確計(jì)算,使用最優(yōu)化算法,實(shí)現(xiàn)遠(yuǎn)焦情況下相機(jī)內(nèi)參的精確標(biāo)定。相比傳統(tǒng)方法,本文算法采用二維標(biāo)定靶標(biāo),簡(jiǎn)化了實(shí)驗(yàn)條件。相比基于離焦圖像設(shè)計(jì)的標(biāo)定方案,本文通過(guò)對(duì)比實(shí)驗(yàn)驗(yàn)證了算法的優(yōu)良性以及實(shí)用性。
三維空間點(diǎn)的成像原理通??捎冕樋啄P捅硎綶13]
(1)
式中,[uv1]T為圖像坐標(biāo)系下目標(biāo)坐標(biāo)的齊次表示,s為歸一化系數(shù),[XYZ1]T為空間坐標(biāo)系下目標(biāo)坐標(biāo)的齊次表示。H表示相機(jī)內(nèi)參,R為3×3的旋轉(zhuǎn)矩陣,T為3×1的平移矢量,R、T兩者共同構(gòu)成了3×4的相機(jī)外參矩陣[R|T]。在成像模型中,[R|T]的值與空間坐標(biāo)系的選取有關(guān)。當(dāng)空間坐標(biāo)系發(fā)生變化時(shí),[R|T]也會(huì)相對(duì)應(yīng)地發(fā)生變化。H可以表示為
其中,[u0,v0]為主點(diǎn)坐標(biāo)。在理想情況下,其位于圖像中心點(diǎn);sxy為傾斜因子,一般默認(rèn)為0;[fx,fy] 為等效焦距,其理論值為
(2)
式中,f為鏡頭焦距,[dx,dy]分別為圖像在x方向和y方向上的像元尺寸。由內(nèi)參各個(gè)元素的定義可知,內(nèi)參的取值只與相機(jī)本身的狀態(tài)有關(guān),而與外部環(huán)境無(wú)關(guān)。因此,在使用相機(jī)前對(duì)相機(jī)內(nèi)參進(jìn)行標(biāo)定求解,具有重要的意義。
平行光管的結(jié)構(gòu)原理如圖1所示。根據(jù)幾何光學(xué)原理,無(wú)限遠(yuǎn)處的物體經(jīng)過(guò)透鏡后將成像在焦平面上;反之,從透鏡焦平面上發(fā)出的光線在經(jīng)過(guò)透鏡后將成為一束平行光。如果將一個(gè)物體放置在透鏡的焦平面上,那么它將成像在無(wú)窮遠(yuǎn)處?;谶@一特征,當(dāng)在平行光管透鏡的焦平面上放置一塊帶有特征圖案的靶標(biāo)時(shí),長(zhǎng)焦相機(jī)便可以清晰地捕捉到圖案特征的成像。
圖1 平行光管的結(jié)構(gòu)原理Fig.1 Structure principle of parallel light tube
如圖1所示,毛玻璃可使靶標(biāo)被均勻照亮。由靶標(biāo)上的每一點(diǎn)發(fā)出的光在經(jīng)過(guò)物鏡后,都成為了一束平行光,靶標(biāo)上的圖案也將成像在無(wú)限遠(yuǎn)處。這樣,當(dāng)在透鏡后方放置長(zhǎng)焦相機(jī)時(shí),靶標(biāo)相當(dāng)于一個(gè)距離無(wú)限遠(yuǎn)的目標(biāo)。通過(guò)調(diào)節(jié)靶標(biāo)與焦平面的位置,便可使相機(jī)對(duì)靶標(biāo)清晰成像。
本文在光學(xué)平臺(tái)上搭建了如圖2所示的實(shí)驗(yàn)平臺(tái)。
圖2 相機(jī)標(biāo)定平臺(tái)Fig.2 Camera calibration platform
實(shí)驗(yàn)平臺(tái)主要分為兩個(gè)部分,左邊為平行光管,內(nèi)部放置了用于標(biāo)定的透過(guò)式標(biāo)定板,光源為自然光或普通燈光。右邊為成像模塊,相機(jī)架設(shè)在經(jīng)緯儀上,并與經(jīng)緯儀保持固連。相機(jī)旋轉(zhuǎn)角度由經(jīng)緯儀讀數(shù)給出。在轉(zhuǎn)動(dòng)過(guò)程中,應(yīng)盡可能使棋盤格成像分布于整個(gè)成像畫面上。
將相機(jī)固定于標(biāo)準(zhǔn)的二維旋轉(zhuǎn)平臺(tái)(以電子經(jīng)緯儀為例),通過(guò)旋轉(zhuǎn)平臺(tái)繞中心的旋轉(zhuǎn)來(lái)實(shí)現(xiàn)相機(jī)的間接繞中心旋轉(zhuǎn)。旋轉(zhuǎn)前后,相機(jī)位置的變換可由圖3進(jìn)行描述[14]。
圖3 相機(jī)與轉(zhuǎn)臺(tái)旋轉(zhuǎn)坐標(biāo)系的變換流程Fig.3 The transformation process of camera and turntable rotating coordinate system
任意兩個(gè)坐標(biāo)系之間的變換關(guān)系均可由旋轉(zhuǎn)加平移實(shí)現(xiàn)。在圖3中,由于相機(jī)與旋轉(zhuǎn)平臺(tái)固連,變換一和變換三為一個(gè)互逆過(guò)程,其過(guò)程可用一個(gè)旋轉(zhuǎn)平移矩陣[Rct|Tct]表示。
變換二可認(rèn)為由轉(zhuǎn)臺(tái)分別繞轉(zhuǎn)臺(tái)坐標(biāo)系的X,Y兩軸旋轉(zhuǎn)變換而來(lái),旋轉(zhuǎn)角度可由經(jīng)緯儀讀數(shù)獲得,變換關(guān)系如圖4所示。
圖4 轉(zhuǎn)臺(tái)旋轉(zhuǎn)模型Fig.4 The model of turntable rotates
在圖4所示的轉(zhuǎn)臺(tái)旋轉(zhuǎn)模型中,Y軸、YT軸、Z軸、ZT軸均在一個(gè)平面上。X、Y為經(jīng)緯儀的旋轉(zhuǎn)軸。在旋轉(zhuǎn)過(guò)程中,XT軸和X軸始終重合,定義從坐標(biāo)原點(diǎn)向坐標(biāo)系正方向看時(shí)的逆時(shí)針?lè)较驗(yàn)樾D(zhuǎn)正方向。在轉(zhuǎn)臺(tái)中,任意位置的經(jīng)緯儀坐標(biāo)系都可以用兩個(gè)參數(shù)表示,分別是垂直角度θ以及水平角度λ。其中,θ為ZT軸和Y軸負(fù)方向的夾角,λ為X軸與零位時(shí)的X軸的夾角??梢钥闯?,當(dāng)θ不為90°時(shí),坐標(biāo)系OT-XTYTZT在旋轉(zhuǎn)時(shí)是圍繞Y軸而非YT軸。因此,首先要將OT-XTYTZT坐標(biāo)系繞X軸旋轉(zhuǎn)至與OT-XYZ坐標(biāo)系重合的位置,再將其繞Y軸旋轉(zhuǎn)。最后,再將OT-XTYTZT繞X軸旋轉(zhuǎn)至對(duì)應(yīng)的位置,該過(guò)程可以用圖5所示的流程圖表示。
圖5 經(jīng)緯儀旋轉(zhuǎn)坐標(biāo)系變換流程Fig.5 The transformation process of theodolite rotating coordinate system
其中,OT-XT1YT1ZT1、OT-XT2YT2ZT2、OT-X1Y1Z1和OT-X2Y2Z2分別為旋轉(zhuǎn)前后的經(jīng)緯儀坐標(biāo)系和旋轉(zhuǎn)軸坐標(biāo)系。對(duì)于任意兩個(gè)不同位置的經(jīng)緯儀,設(shè)其讀數(shù)分別為(θ1,λ1)及(θ2,λ2),則對(duì)于變換一,即坐標(biāo)系OT-XTYTZT繞XT軸旋轉(zhuǎn)(90-θ1),可以用旋轉(zhuǎn)矩陣表示為
(3)
變換二可以看作坐標(biāo)系OT-X1Y1Z1繞Y軸旋轉(zhuǎn)(λ1-λ2),可以表示為
(4)
變換三,即坐標(biāo)系OT-XTYTZT繞XT軸旋轉(zhuǎn)(θ2-90),可以表示為
(5)
綜合式(3)、式(4)、式(5),可以得到任意兩個(gè)位置的經(jīng)緯坐標(biāo)系之間的變換關(guān)系
RT=RT3RT2RT1
(6)
本文主要應(yīng)用于長(zhǎng)焦相機(jī)的標(biāo)定,在平行光管作用下,可認(rèn)為靶面與相機(jī)無(wú)窮遠(yuǎn)。在此情況下,相機(jī)的平移不影響最終的成像效果[15]。因此,可認(rèn)為相機(jī)坐標(biāo)系與經(jīng)緯儀坐標(biāo)的原點(diǎn)重合,即兩者之間不存在平移關(guān)系。由此,可以得到任意兩個(gè)位置的相機(jī)坐標(biāo)系之間的變換關(guān)系
(7)
其中,Rct為相機(jī)與經(jīng)緯儀之間的固定旋轉(zhuǎn)變換參數(shù)。該值雖然不可知,但作為固定值可以與內(nèi)參一起進(jìn)行優(yōu)化求解。由于只考慮旋轉(zhuǎn),該值為模型引入了3個(gè)自由度。RT為運(yùn)動(dòng)前后經(jīng)緯儀的旋轉(zhuǎn)矩陣,可由經(jīng)緯儀讀數(shù)計(jì)算而得。
經(jīng)過(guò)平行光管的作用,棋盤格上所有的點(diǎn)相對(duì)于相機(jī)而言均可被認(rèn)為是無(wú)窮遠(yuǎn)的點(diǎn)。假定空間點(diǎn)坐標(biāo)在相機(jī)坐標(biāo)系下的坐標(biāo)為P=[X,Y,Z]T。相機(jī)的運(yùn)動(dòng)由旋轉(zhuǎn)矩陣R和平移矩陣T表示,根據(jù)式(1),空間點(diǎn)的像素坐標(biāo)在旋轉(zhuǎn)前后可以表示為[16]
s1p1=KP
s2p2=K(RP+T)
(8)
式中,s1、s2分別表示相機(jī)在旋轉(zhuǎn)前后位置上的歸一化系數(shù),p1和p2分別表示在相機(jī)旋轉(zhuǎn)前后空間點(diǎn)的像素坐標(biāo)的齊次表示,K為相機(jī)內(nèi)參。
對(duì)于遠(yuǎn)焦相機(jī),可以認(rèn)為對(duì)于同一張圖片,棋盤格上所有的點(diǎn)的深度信息相同。對(duì)于棋盤格上點(diǎn)的世界坐標(biāo),可以表示為
P=s1K-1p1
(9)
旋轉(zhuǎn)后的成像方程可以寫為
s2p2=K(R(s1K-1p1)+T)
(10)
對(duì)于無(wú)窮遠(yuǎn)點(diǎn)的目標(biāo),相機(jī)的平移不影響圖像的成像。因此,式(10)的平移量可以被忽略,式(10)可以簡(jiǎn)化為
sp2=K(R(K-1p1))
(11)
其中,s=s2/s1為合并后的歸一化系數(shù),由此可得到目標(biāo)函數(shù)
(12)
其中,pi(i=1,2,3,…)為旋轉(zhuǎn)前后匹配點(diǎn)的棋盤格圖像坐標(biāo)。K表示相機(jī)內(nèi)參,R為旋轉(zhuǎn)前后相機(jī)的旋轉(zhuǎn)矩陣,由1.2節(jié)的旋轉(zhuǎn)模型進(jìn)行表示。利用Levenberg-Marquardt算法[17],以式(12)為目標(biāo)函數(shù),待解參數(shù)為內(nèi)參以及相機(jī)與經(jīng)緯儀之間的固定變換參數(shù)。在這種情況下,待解參數(shù)的數(shù)目是固定的,不會(huì)隨著標(biāo)定圖像的增加而增加。對(duì)參數(shù)進(jìn)行優(yōu)化求解,即可求解出相機(jī)內(nèi)參。
本文使用的旋轉(zhuǎn)平臺(tái)為一光DT402L型電子經(jīng)緯儀,以Basler黑白工業(yè)相機(jī)為采集設(shè)備,相機(jī)分辨率為2048pixel×2048pixel,相機(jī)像素尺寸為5.5μm×5.5μm 。鏡頭采用vilber lourmat的變焦鏡頭,焦距變換范圍為12.5~50mm。首先,在不同焦距下通過(guò)平行光管對(duì)透過(guò)式棋盤格進(jìn)行成像,對(duì)不同焦距下的相機(jī)內(nèi)參進(jìn)行標(biāo)定,并計(jì)算圖像點(diǎn)的重投影殘差。圖像殘差用E表示
(13)
本文在不同焦距下采集了棋盤格圖像,部分圖像如圖6所示。
由圖6可知,經(jīng)過(guò)平行光管的折射,不同焦距下的棋盤格圖像角點(diǎn)均清晰可見(jiàn),檢測(cè)到的角點(diǎn)誤差較小,滿足標(biāo)定精度。
圖6 棋盤格圖像采集(a)焦距為12.5mm(b)焦距為15mm(c)焦距為20mm(d)焦距為30mm(e)焦距為50mmFig.6 Checkerboard images (a) The focal length is 12.5mm (b) The focal length is 15mm (c) The focal length is 20mm (d) The focal length is 30mm (e) The focal length is 50mm
根據(jù)第2節(jié)的模型,對(duì)圖像進(jìn)行標(biāo)定,不同焦距下的標(biāo)定結(jié)果如表 1所示。
表1 本文算法內(nèi)參標(biāo)定結(jié)果與重投影殘差
將本文與實(shí)驗(yàn)室內(nèi)離焦相機(jī)的標(biāo)定方法進(jìn)行對(duì)比實(shí)驗(yàn)[18],相機(jī)傳感器、鏡頭均保持不變。標(biāo)定板采用普通圓形圖案,標(biāo)定靶距離相機(jī)的距離約為2m,在不同焦距下采集到的圖像如圖7所示。在實(shí)驗(yàn)過(guò)程中,依然可通過(guò)調(diào)整焦距對(duì)靶標(biāo)進(jìn)行拍攝。標(biāo)定結(jié)果如表2所示。
表2 對(duì)比算法內(nèi)參標(biāo)定結(jié)果與重投影殘差
由圖7可知,當(dāng)焦距較小時(shí),相機(jī)采集到的圖像較為清晰,而當(dāng)焦距較大時(shí),圖像占比變大,標(biāo)定板模糊,不容易檢測(cè)到角點(diǎn),也無(wú)法采集多幅圖像并完成標(biāo)定。
圖7 不同焦距下采集到的圓形圖像標(biāo)靶(a)焦距為12.5mm(b)焦距為15mm(c)焦距為20mm(d)焦距為30mm(e)焦距為50mmFig.7 Circular calibration plate (a) The focal length is 12.5mm (b) The focal length is 15mm (c) The focal length is 20mm (d) The focal length is 30mm (e) The focal length is 50mm
由表2可知,當(dāng)焦距增加到30mm以上時(shí),采集到的圖像已無(wú)法進(jìn)行標(biāo)定。
根據(jù)相機(jī)內(nèi)參的物理意義可知,本文選取相機(jī)的內(nèi)參理論值為fx=f/5.5(μm),fy=f/5.5(μm),u0=1024,v0=1024。其中,u0、v0為內(nèi)參的主點(diǎn)坐標(biāo)。由于相機(jī)工藝、靶面距離等實(shí)際原因,實(shí)際結(jié)果與理論結(jié)果存在偏差,但理論值仍具有參考價(jià)值,這也是標(biāo)定的意義。根據(jù)表1的結(jié)果,本文算法的標(biāo)定結(jié)果均與理論值存在可比性,說(shuō)明優(yōu)化結(jié)果并不是局部極值。本文標(biāo)定結(jié)果的重投影誤差約為0.5個(gè)像素,誤差高于近焦情況下張正友算法標(biāo)定誤差,且隨著焦距增加,重投影誤差隨之增大。這是由于焦距增大,相機(jī)的視場(chǎng)隨之減小,反應(yīng)在圖像上,則表現(xiàn)為棋盤格尺寸變大,角點(diǎn)所占像素隨之變大。在相同的情況下,棋盤格角點(diǎn)的檢測(cè)誤差也會(huì)隨之增大。即便如此,本文算法的最大誤差約為0.5個(gè)像素,證明了算法的可行性。
相比于離焦相機(jī)的標(biāo)定方法,由圖6和圖7的對(duì)比實(shí)驗(yàn)圖可以看出,當(dāng)焦距增加到一定程度時(shí),離焦圖像已基本喪失所有的圖像數(shù)據(jù)。由表1和表2可知,當(dāng)焦距較小時(shí),離焦相機(jī)標(biāo)定方法的精度略高于本文算法,這是由于轉(zhuǎn)臺(tái)的引入增加了數(shù)據(jù)的誤差,并且在模型推導(dǎo)中,忽略了相機(jī)平移量。當(dāng)焦距逐漸增加,忽略平移量對(duì)標(biāo)定的影響越來(lái)越小,標(biāo)定精度仍然保持得較好。而在離焦情況下,圖像的模糊度越來(lái)越高,圓心位置誤差越來(lái)越大,標(biāo)定的誤差也越來(lái)越大。當(dāng)焦距在30mm以上時(shí),算法已無(wú)法正確檢測(cè)圓心的位置,標(biāo)定失敗。
本文提出了一種基于二維旋轉(zhuǎn)平臺(tái)和平行光管的遠(yuǎn)焦相機(jī)內(nèi)參標(biāo)定模型,通過(guò)一對(duì)固定的坐標(biāo)系旋轉(zhuǎn)平移變換與逆變換,將相機(jī)坐標(biāo)系的非繞中心旋轉(zhuǎn)轉(zhuǎn)換為旋轉(zhuǎn)平臺(tái)的繞中心旋轉(zhuǎn)變換,實(shí)現(xiàn)了相機(jī)變換矩陣的精確計(jì)算。通過(guò)平行光管對(duì)棋盤格的處理,使得長(zhǎng)焦相機(jī)能夠捕捉到精確的特征點(diǎn)信息,由此實(shí)現(xiàn)在實(shí)驗(yàn)室內(nèi)對(duì)長(zhǎng)焦相機(jī)內(nèi)參的精確標(biāo)定。相比采用離焦相機(jī)的標(biāo)定辦法,本文算法在焦距越長(zhǎng)時(shí),標(biāo)定精度越好,而且成功率也相對(duì)較高。實(shí)驗(yàn)結(jié)果表明,標(biāo)定后的內(nèi)參符合內(nèi)參的物理意義,角點(diǎn)重投影坐標(biāo)誤差約為0.5個(gè)像素,由此說(shuō)明本文的標(biāo)定方法具有較高的精度。