張磊,湯小偉,李紅兵,戴麗娟,4,姚陽
(1.南通大學(xué)機(jī)械工程學(xué)院,江蘇南通,226019;2.約克大學(xué)拉松德學(xué)院,加拿大多倫多,M3J 1P3;3.上海交通大學(xué)儀器科學(xué)與工程系,上海,200240;4.德州大學(xué)阿靈頓分校心理系,美國德克薩斯州阿靈頓,76019)
攝像機(jī)標(biāo)定是計算機(jī)視覺的一項重要任務(wù),是建立目標(biāo)物實際空間的三維信息和二維信息之間相互關(guān)系的重要手段,在測量學(xué)、三維重建、智能機(jī)器人、智通交通、保安監(jiān)控等領(lǐng)域有著廣泛的應(yīng)用。近幾十年來,人們對攝像機(jī)標(biāo)定的研究主要分為2 類:一類是基于靶標(biāo)的攝像機(jī)標(biāo)定;另一類是自標(biāo)定。雖然攝像機(jī)自標(biāo)定方法可以不使用靶標(biāo),但標(biāo)定方法比較復(fù)雜,其最大缺點是受圖像特征提取魯棒性弱的影響,標(biāo)定結(jié)果穩(wěn)定性差,精度低。因此,基于靶標(biāo)的傳統(tǒng)攝像機(jī)標(biāo)定仍然是主要應(yīng)用方法。人們最早使用的基于靶標(biāo)的線性標(biāo)定法是基于攝像機(jī)的針孔線性模型,其他方法大多基于經(jīng)典針孔線性模型發(fā)展而來。基于靶標(biāo)的攝像機(jī)標(biāo)定方法主要有線性標(biāo)定方法、兩步法和非線性優(yōu)化方法等。ABDEL-AZIZ等[1]運(yùn)用直接線性變換法(direct linear transformation,DLT)將實際靶標(biāo)上的點與圖像上的點采用簡單的線性映射表達(dá),其缺點是有關(guān)參數(shù)缺少實際的物理意義,造成求解的參數(shù)在實際應(yīng)用時價值不大,攝像機(jī)的眾多物理量并未能得到,一般需進(jìn)一步擴(kuò)展求解。Faugeras 標(biāo)定法[2]是線性標(biāo)定方法的經(jīng)典代表,其基于最常見的針孔模型,可較方便地求解攝像機(jī)內(nèi)外參數(shù),至今仍是線性標(biāo)定的常用方法,但該方法精度較低。TSAI[3]提出了兩步法,比非線性優(yōu)化法的耗時大大降低,在精度和速度上都獲得提升,但該方法并沒有對線性標(biāo)定階段進(jìn)行改善,而且該方法需要較多預(yù)知的前提[3],有些前提不一定能得到滿足;另外,Tsai標(biāo)定法較多依賴后期非線性優(yōu)化的效果。張正友標(biāo)定法[4]核心是基于平面靶標(biāo)的條件,使有關(guān)參數(shù)矩陣降維為單應(yīng)矩陣,減少了參數(shù)求解的量。張正友標(biāo)定法目前采用程序包封裝,用戶只需使用平面靶標(biāo)簡單放在攝像機(jī)若干位置,即可完成標(biāo)定,標(biāo)完過程方便快捷,該方法主要依靠多幅圖像及非線性優(yōu)化提高精度,在線性標(biāo)定階段未見證其優(yōu)越性。其他研究大多是在這3類基本方法的基礎(chǔ)上進(jìn)行改進(jìn)或后期依靠非線性手段優(yōu)化來提高標(biāo)定精度[5-15]。近期的研究有:WU 等[9]討論了畸變模型,從非線性畸變糾正的角度提高標(biāo)定精度;ZHOU等[10]提出了在三維空間基于測量標(biāo)定點與計算點距離最小化的非線性優(yōu)化方法以提高精度,但是對在線性標(biāo)定階段進(jìn)行改善的研究很少。線性標(biāo)定階段的結(jié)果對于后期的非線性優(yōu)化仍然有較大影響,良好的初值有利于算法收斂到正確的結(jié)果,另一方面,當(dāng)前交通保安視頻監(jiān)控、機(jī)器人視覺等領(lǐng)域應(yīng)用相機(jī)拍攝時,焦距等參數(shù)隨時改變,需要實時標(biāo)定參數(shù)。張正友標(biāo)定法等雖操作方便,但仍是基于離線標(biāo)定方式,難以適應(yīng)在線標(biāo)定的場合。線性標(biāo)定方法由于實現(xiàn)比較方便,且不依靠多幅圖像的反復(fù)優(yōu)化,一般由1幅圖像便可當(dāng)即完成標(biāo)定,因此,線性標(biāo)定適合保安監(jiān)控、交通監(jiān)控和機(jī)器人等場合,探討精度高的線性標(biāo)定方法有較強(qiáng)的實用性。ZHAO等[16]發(fā)現(xiàn)傳統(tǒng)DLT方法容易引起參數(shù)間耦合誤差而影響精度,從而提出了解耦措施以提高精度。然而,該方法過程復(fù)雜,不利于一般用戶的理解與實現(xiàn),體現(xiàn)不出線性標(biāo)定的簡便性。為此,本文作者根據(jù)經(jīng)典Faugeras標(biāo)定法存在的問題,提出一種精度較高的線性標(biāo)定方法。該方法利用攝像機(jī)在成像上的特性,使得參數(shù)的求解受到更多約束,同時使部分參數(shù)的求解盡可能地避免非相關(guān)因素的干擾,提高了線性標(biāo)定的精度。
FAUGERAS 等[2]根據(jù)DLT 線性模型,給出了內(nèi)外參數(shù)進(jìn)一步的求解方法。首先,建立靶標(biāo)特征點的世界坐標(biāo)和相應(yīng)的圖像坐標(biāo)的模型:


式中:kx和ky分別為x 軸和y 軸方向的放大系數(shù)(單位為像素);(u0,v0)為光軸在圖像坐標(biāo)系中的坐標(biāo)(單位為像素);zc為靶標(biāo)(目標(biāo)物)的特征點在攝像機(jī)坐標(biāo)系的深度坐標(biāo)(mm);(u,v)為特征點在攝像機(jī)圖像坐標(biāo)系中的坐標(biāo)(mm);(xw,yw,zw)為特征點在世界坐標(biāo)系中的坐標(biāo)(mm);R為旋轉(zhuǎn)矩陣;p為平移向量;M′in和cMw分別為內(nèi)外參數(shù)矩陣,

有關(guān)詳細(xì)解釋可參見文獻(xiàn)[17]。首先求解mij,消去式(1)的zc得:

對于n個在世界坐標(biāo)系已知坐標(biāo)的標(biāo)定點,可得2n個方程構(gòu)成的方程組如下:

式中:(ui,,vi)為第i 個標(biāo)定點的圖像坐標(biāo);(xwi,ywi,zwi)為第i 個標(biāo)定點的世界坐標(biāo);i=1,2,…,n。
式(4)左右同除以m34,可簡化表達(dá)為

其中:

由于向量B 不含未知數(shù)m34,因此,可運(yùn)用廣義逆矩陣的解法,求最小二乘解,得

將式(2)表達(dá)為

由式(7)可知:



通過上述求解過程可發(fā)現(xiàn):Faugeras方法未考慮攝像機(jī)特性,對于攝像機(jī)標(biāo)定模型只當(dāng)成一般數(shù)學(xué)問題求解,對參數(shù)的約束少,并且將不同參數(shù)過早混合求解,使得一些參數(shù)的求解受到了無關(guān)的已知參量的影響,易產(chǎn)生較大偏差,這些偏差在隨后求解中會繼續(xù)傳遞下去,使誤差進(jìn)一步加大,導(dǎo)致精度總體上偏低。研究發(fā)現(xiàn),該方法只受到標(biāo)定模型(線性方程)求解的最小二乘約束,使得有著類似約束性質(zhì)的圖像反投影法衡量的誤差比較小,但并不能保證參數(shù)在合理范圍內(nèi),有時參數(shù)偏離準(zhǔn)確值很大,造成該方法實際應(yīng)用受到限制。
為避免Faugeras方法的弊端,本文方法首先利用的成像特性是把圖像中心作為主點位置,即認(rèn)為u0和v0已知,可有效約束,避免其誤差過大對其他參數(shù)求解的影響;其次,利用一些參數(shù)在成像上的關(guān)聯(lián)特性,將與橫、縱坐標(biāo)分別相關(guān)的參數(shù)分開求解;最后,將剩余參數(shù)混合求解,避免了傳統(tǒng)方法將所有參數(shù)過早混合求解易受不相關(guān)因素干擾的弊端。
本文方法仍然是基于式(1),(2),(3)和(7)。由式(3)發(fā)現(xiàn):m14和m24是單獨的,即世界坐標(biāo)或圖像坐標(biāo)非其乘積系數(shù),故

式(10)兩邊同除以m14,若有n個標(biāo)定點,可形成如下線性方程組:


根據(jù)式(7)可知:m14= kxtx+ u0tz。
令

式(12)可簡化為向量與矩陣形式:

其中:Au為n×7 矩陣;Bu為n 行的列向量。方程(14)只與u坐標(biāo)有關(guān)。
運(yùn)用廣義逆矩陣的解法,求最小二乘解,得


由攝像機(jī)成像特點,u0可設(shè)為圖像水平方向中心點,可以看成一個整體,記為于是,



因此,

將k′x代入式(17)即可得出同理,根據(jù)v 坐標(biāo)求解出。
由式(7)可知m3= r3,再根據(jù)與式(16),得


于是,可得

同理,由于

可得

由于tz(即m34)與u,v均有關(guān),需由2個方向綜合求解,根據(jù)

列出超定方程組:

根據(jù)廣義逆求最小二乘解:

根據(jù)式(26)和(27)更新m14,m24。然后,根據(jù)式(22)和(25)更新kx和ky以保證精度。由式(7)可知:m14= kxtx+ u0tz,m24= kyty+ u0tz,故

由式(20)與(23)可知,r31,r32,r33不僅與mu31,mu32和mu33有關(guān),而且與mv31,mv32和mv33有關(guān),因此,需要綜合u方向和v方向的參數(shù)求解,減小整體誤差。對于式(20)和(23)建立超定方程組:

運(yùn)用廣義逆矩陣的解法,得最小二乘解:

綜上可見,本文方法比Tsai標(biāo)定法和張正友標(biāo)定法更簡便,比Faugeras 方法略復(fù)雜,但約束比Faugeras方法的多,這有利于提高標(biāo)定精度。
設(shè)計離線標(biāo)定和在線標(biāo)定2種標(biāo)定實驗。離線標(biāo)定實驗可比較不同方法的性能,借助Matlab R2014a 編程實現(xiàn);在線標(biāo)定利用VC++6.0 編程實現(xiàn)。實驗選取1個三維立體靶標(biāo),靶標(biāo)上3個相互垂直的面都帖著黑白棋盤,每個棋盤格長×寬均為50 mm×50 mm,圖1所示為有關(guān)標(biāo)定塊在攝像機(jī)前的某姿態(tài),圖中坐標(biāo)系為規(guī)定的標(biāo)定塊所在世界坐標(biāo)系。本文方法與Faugeras方法類似,必須使用三維立體靶標(biāo),否則會引起式(14)中的Au為奇異陣而得不到正確解。攝像機(jī)采用專業(yè)數(shù)字?jǐn)z像機(jī)SONY CCD SR-200AP-250AP/L(分辨率為640×480)和日常生活用單反相機(jī)Canon CMOS EOS 100D(分辨率為720×480)。
使用角點檢測算法[18]提取標(biāo)定點,得到角點圖像像素坐標(biāo),每幅圖像選取29個標(biāo)定點(見圖1)。由于噪聲等因素影響,角點檢測存在一定偽響應(yīng),個別角點的定位誤差較大,故有時需手工修正有關(guān)角點檢測的圖像坐標(biāo)。

圖1 配置的三維標(biāo)定塊及其世界坐標(biāo)系和角點檢測結(jié)果Fig.1 Calibration configuration of 3D target and its corner detection
3.2.1 線性標(biāo)定精度測試方法
將圖像中心點坐標(biāo)作為主點坐標(biāo),對于分辨率為640×480 的圖像,u0=320 像素,v0=240 像素。實驗中將標(biāo)定塊在多個姿態(tài)采集圖像及其標(biāo)定點坐標(biāo),如圖2所示,要求3個標(biāo)定平面都應(yīng)在圖像視野中顯示,不能過于狹窄或被遮擋。標(biāo)定點的世界坐標(biāo)由圖1獲得。
常見的誤差測量方法[6,11,19]是利用解得的攝像機(jī)內(nèi)外參數(shù)結(jié)合標(biāo)定點坐標(biāo)重新投影,即將這些求得的內(nèi)外參數(shù)代入式(1),得到反投影的像素點坐標(biāo),與實測相應(yīng)標(biāo)定點圖像坐標(biāo)進(jìn)行比較,計算兩者的差值。采用圖像反投影平均像素誤差(簡稱反投影誤差)衡量標(biāo)定的精度。

其中:Err為反投影誤差(單位為像素);(ui,vi)為實際圖像坐標(biāo)(單位為像素);(ui',vi')是計算出來的圖像坐標(biāo),像素;N為選取標(biāo)定點(角點)的個數(shù)。表1所示為2種方法的反投影誤差對比。表1中圖像6的內(nèi)參數(shù)標(biāo)定結(jié)果如表2 所示。可見:Faugeras標(biāo)定法的參數(shù)偏離參考值較多,而本文方法更接近由張正友方法得到的參考值。因此,用反投影圖像誤差來衡量線性標(biāo)定的精度并不合理。
事實上,反投影誤差只是一種衡量標(biāo)定誤差的指標(biāo),在該衡量方法下,F(xiàn)augeraus方法誤差小,這是因為Faugeraus 方法基于整體的線性方程推導(dǎo)而來,而反投影法本身也是基于類似整體線性方程計算,但Faugeraus 方法對每個參數(shù)缺少約束,使得標(biāo)定出的每個具體參數(shù)精度不高。因此,本文采用相對誤差法將標(biāo)定值與準(zhǔn)確值進(jìn)行比較,即

圖2 1X 焦距SONY CCD Camera拍攝的標(biāo)定靶標(biāo)10種姿態(tài)Fig.2 Ten poses of 3D target for calibration captured by SONY CCD camera with 1X Focus length

表1 SONY CCD 相機(jī)1X焦距下的標(biāo)定結(jié)果反投影誤差ErrTable 1 Mean image re-projection pixel errors for SONY CCD Camera with 1X focus length 像素

其中:Erip為內(nèi)參相對誤差;kx',ky',u0'和v0'為精確參考值;kx,ky,u0和v0為標(biāo)定的內(nèi)參數(shù)。
與線性標(biāo)定法相比,非線性優(yōu)化法可獲得更精確的結(jié)果,因此,可作為線性標(biāo)定的參考精確值。張正友標(biāo)定法不適合于圖2的標(biāo)定,故使用張正友標(biāo)定法的平面標(biāo)定板,由MATLAB 工具箱標(biāo)定出有關(guān)結(jié)果。由于本文方法與張正友標(biāo)定法的標(biāo)定對象不同,因此,只能進(jìn)行攝像機(jī)內(nèi)參數(shù)標(biāo)定結(jié)果的相對比較,式(34)只有內(nèi)參數(shù)的計算。實驗時需比較的數(shù)據(jù)在攝像機(jī)焦距不變的條件下獲得。若攝像機(jī)焦距等條件改變,則歸為不同組數(shù)據(jù)分別比較。
3.2.2 線性標(biāo)定精度測試結(jié)果
圖3 所示為數(shù)字相機(jī)SONY CCD 在不同焦距下的標(biāo)定相對誤差。圖3與表1中的標(biāo)定參數(shù)結(jié)果一樣,但采用相對誤差衡量,本文方法的結(jié)果比Faugeras 方法的結(jié)果更穩(wěn)定,誤差更小。實驗發(fā)現(xiàn),雖然Faugeras方法的反投影誤差小,但是其相對誤差反而更大;而且個別參數(shù)如u0或v0偏離參考準(zhǔn)確值較大,甚至可能為負(fù)值等離譜情況。表3所示為圖3(b)中第4幅圖像的標(biāo)定結(jié)果。從表3可見:Faugeras方法雖然反投影誤差小,但各參數(shù)偏差較大,尤其是u0明顯偏離參考準(zhǔn)確值。這說明反投影誤差小并不代表Faugeras方法更好,因此,本文主要以相對誤差來衡量不同線性標(biāo)定方法的精度。
圖4 所示為家用單反相機(jī)Canon CMOS EOS 100(分辨率調(diào)整為720×480)的標(biāo)定相對誤差。從圖4 可知,本文方法比傳統(tǒng)Faugeras線性標(biāo)定法具有明顯高的相對誤差,其更接近參考值。表4所示為圖4 中第5 幅圖的標(biāo)定結(jié)果。表4 所示結(jié)果表明,雖然本文方法反投影誤差比Faugeras法的更大,但相對誤差小很多,其明顯比Faugeras方法的結(jié)果更接近參考準(zhǔn)確值。

表2 表1中圖像6的內(nèi)參標(biāo)定結(jié)果Table 2 Intrinsic parameters output from image 6 of Table 1 像素

圖3 SONY CCD相機(jī)在不同焦距下的不同方法標(biāo)定相對誤差Fig.3 Erip of different calibration methods for SONY CCD camera with different focus lengths

表3 圖3(b)中圖像4的內(nèi)參標(biāo)定結(jié)果Table 3 Intrinsic parameters output from image 4 of Fig.3(b)

圖4 Canon家用單反相機(jī)在35 mm中等焦距下的不同方法標(biāo)定相對誤差Fig.4 Erip of different calibration methods for Canon CMOS camera with 35 mm focus length
表5所示為不同組數(shù)據(jù)的平均相對誤差以及總平均相對誤差。從表5可以發(fā)現(xiàn):本文方法的精度明顯比Faugeras法的高,更接近參考準(zhǔn)確值;對于不同的圖像新方法的結(jié)果也更穩(wěn)定,參數(shù)結(jié)果不會波動太大。這有利于新方法直接運(yùn)用于要求不高的標(biāo)定場合。
3.3.1 在線標(biāo)定實驗設(shè)置
利用圖像采集卡及其配套提供的VC++例程改編實現(xiàn)在線標(biāo)定實驗,所接相機(jī)為SONY CCD SR-200AP-250AP/L。圖5 所示為所開發(fā)的圖像采集與處理的實時視頻畫面,其中,kx和ky分別為1 519.147 像素和1 360.910 像素;(u0,v0)為(320,240);tx,ty和tz分別為-18.658,-124.363 和為了簡便,手工指定某序列角點的世界坐標(biāo)。由于視頻中有太多偽角點、噪聲以及光線總是變化,為提高角點檢測的可靠性,只對指定區(qū)域(圖5 所示的綠色框)進(jìn)行角點檢測;同時規(guī)定只有檢測出的角點如圖中的序列才進(jìn)行在線標(biāo)定,否則不予標(biāo)定。這樣可保證規(guī)定順序角點的圖像坐標(biāo)與預(yù)先規(guī)定的有關(guān)標(biāo)定點世界坐標(biāo)的對應(yīng)性。
3.3.2 在線標(biāo)定實時性測試

圖5 本文方法在線標(biāo)定實現(xiàn)界面Fig.5 Developed interface of online calibration by proposed method

表4 圖4中圖像5的內(nèi)參標(biāo)定具體結(jié)果Table 4 Intrinsic parameters output from image 5 of Fig.4

表5 不同線性標(biāo)定方法平均相對誤差Table 5 Mean Erip of different calibration methods Erip/%

圖6 視頻圖像的在線標(biāo)定執(zhí)行時間Fig.6 Online calibration execution time of images
在線標(biāo)定基于封閉解,無迭代過程沒有耗時環(huán)節(jié),但仍然需要測試每幀圖像的耗時來確認(rèn)其是否適合運(yùn)用于實時的在線標(biāo)定場合。圖6所示為視頻圖像在線標(biāo)定的耗時。從圖6可發(fā)現(xiàn),本文方法的線性標(biāo)定耗時僅為0.68 ms 左右。在線角點檢測達(dá)到了160 ms左右,已遠(yuǎn)遠(yuǎn)超過在線標(biāo)定時間。因此,本文方法的在線標(biāo)定耗時可完全予以忽略,說明此方法非常適合于實時視頻處理。
實驗時,若微調(diào)焦距,圖像在自動模式下只要重新對焦恢復(fù)到清晰畫面,便可實時給出新焦距下的內(nèi)參數(shù)與外參數(shù)。
1)提出一種考慮成像特性的攝像機(jī)線性標(biāo)定方法。該方法充分考慮攝像機(jī)的特性,把圖像中心作為主點位置,利用各參數(shù)在成像上的關(guān)聯(lián)特性,求解時先將與橫、縱坐標(biāo)分別相關(guān)的參數(shù)分開求解,再將剩余參數(shù)混合求解,避免了傳統(tǒng)方法將所有參數(shù)過早混合求解易受不相關(guān)因素干擾的弊端;此外,求解具體參數(shù)時有更多最小二乘約束。該方法求解的參數(shù)平均相對誤差為7.53%,精度提升明顯。
2)本文方法不需要多幅圖像優(yōu)化,作為基于封閉解的線性標(biāo)定法,由單幅圖像可標(biāo)定出所有內(nèi)外參數(shù),具有快速、方便的優(yōu)點,可應(yīng)用于在線實時標(biāo)定場合,克服了Tsai方法和張正友標(biāo)定法軟件包目前只能進(jìn)行離線標(biāo)定的局限。
3)本文方法因精度較高,實時性好,可直接應(yīng)用于監(jiān)控、機(jī)器人視覺等實時場合,具有重要的實際應(yīng)用價值與推廣意義。