湯小偉,楊玉萍,張 磊,2,邢 強
(1.南通大學機械工程學院,江蘇 南通 226019;2.約克大學拉德松學院機械工程系,加拿大 多倫多,M4C 1A1)
計算機視覺的基本任務之一是從攝像機獲取的圖像信息出發(fā)計算三維空間中物體的幾何信息,并由此重建和識別物體,而空間物體表面某點的三維幾何位置與其在圖像中對應點之間的相互關(guān)系是由攝像機成像的幾何模型決定的,這些幾何模型參數(shù)就是攝像機參數(shù)。攝像機對靶標上的特征點的圖像進行采集,再利用這些圖像坐標和特征點對應的世界坐標建立方程,解方程獲得攝像機參數(shù)[1-4]。
常用攝像機標定方法有Faugeras 標定法[5],Tsai 兩步法[6]和張正友平面標定法[7]和其它非線性優(yōu)化法[8]等。Faugeras 標定法是線性標定方法的代表,其實現(xiàn)簡單。但該方法未考慮攝像機特性,對于攝像機標定模型只當成一般數(shù)學問題求解,并且將不同量級的參數(shù)進行混合求解,使得一些參數(shù)的求解受到了本無關(guān)聯(lián)的已知參量的影響,導致誤差放大,尤其是求解的圖像中心點與實際的圖像中心有一定偏差,有時偏差較大,這些偏差還會繼續(xù)傳遞下去。非線性優(yōu)化類的方法雖然可獲得高的標定精度,但此類方法對初值要求高,選取不當容易使得誤差變大,另外其算法繁瑣耗時。Tsai 標定法和張正友標定法是前面兩者之間的妥協(xié)方法,這兩種方法主要依靠更多幅圖和非線性的優(yōu)化提高精度;其次這兩種方法由于程序包封裝,使得用戶難以自行用C 語言編程用在實時場合,一般只能按其規(guī)定進行離線擴展優(yōu)化。而簡單的Faugeraus 線性標定方法比較方便,可自行編程應用于實時場合,如對于焦距等參數(shù)隨時改變且需要實時標定參數(shù)的交通保安視頻監(jiān)控、機器人視覺等場合。但是Faugeraus 方法存在精度偏低的問題,因此探討精度高的線性標定方法仍有積極的意義。
較多文獻針對標定精度不高的問題開展了研究工作:文獻[9]在根據(jù)Tsai 兩步法得到初始標定值的基礎上,再對所有參數(shù)進行非線性優(yōu)化,得到最終參數(shù)值。文獻[10]提出一種新的畸變模型,將多種鏡頭畸變考慮在其中,并用迭代法解出精確解。文獻[11]利用非線性優(yōu)化算法結(jié)合線激光焦點優(yōu)化求精。上述文獻中,可以發(fā)現(xiàn)大多是后期考慮畸變并進行非線性的優(yōu)化,而在線性標定階段進行改善的不多。事實上,線性標定階段的結(jié)果對于后期的非線性優(yōu)化有著很大影響。
根據(jù)上述分析,針對Faugeras 標定存的在問題,提出了一種新型的攝像機線性標定方法,先將與橫、縱坐標相關(guān)的參數(shù)分開求解,而后將剩余參數(shù)進行混合求解,最后考慮畸變進行線性優(yōu)化,避免了傳統(tǒng)方法將所有參數(shù)過早混合求解的弊端,大大提高了線性標定階段的精度。
文獻[5]在1986 年提出的線性模型攝像機標定方法對攝像機內(nèi)外參數(shù)進行標定。該方法在攝像機前方放置一個立體靶標,該目標物上有一系列位置預知的點可作為特征點,攝像機獲取目標物上特征點的世界坐標和相應的圖像坐標建立方程即可計算出攝像機的內(nèi)外參數(shù)。
根據(jù)公式:
式中:(u,v)—特征點在攝像機圖像坐標系中的坐標;(xw,yw,zw)—景物點在世界坐標系中的坐標,且:
將式(1)消去zc,對于n 個在世界坐標系已知坐標的空間點,可得2n 個方程構(gòu)成的方程組,方程組分式上下同除以m34,并不影響結(jié)果,方程可簡化表達為:Am′=B。
根據(jù)R 是單位正交矩陣,利用其性質(zhì),從M 矩陣分解出攝像機參數(shù):
通過上述求解過程,可發(fā)現(xiàn)該方法未考慮攝像機特性,對于攝像機標定模型只當成一般數(shù)學問題求解,并且將不同量級的參數(shù)進行混合求解,使得一些參數(shù)的求解受到了本無關(guān)聯(lián)的已知參量的影響,導致誤差放大,這些偏差還會繼續(xù)傳遞下去,尤其是求解的圖像中心點與實際的圖像中心偏差較大。Faugeras 方法先行求解m34,而后許多參數(shù)依賴于該值精度,造成對m34求解值精度的敏感,結(jié)果總體上精度低。
Faugeras 的方法未利用在標定時,已經(jīng)存在的現(xiàn)成條件或者近似條件。比如,根據(jù)攝像機模型的特性,可以近似把圖像中心作為主點位置,即認為u0,v0已知,這樣內(nèi)參數(shù)只剩下kx與kv,求解參數(shù)時先將與橫、縱坐標分別相關(guān)的參數(shù)分開求解,然后將剩余參數(shù)混合求解,避免了傳統(tǒng)方法將所有參數(shù)過早混合求解的弊端。
根據(jù)式(1)列出基本方程組:
將m14及m24單獨放在右邊,考慮m14,m24不帶其它參數(shù),雖然其本身帶的內(nèi)外參數(shù)不少,但在下面的推導中可以將其進行處理,利于問題的求解。
式中:Au—n×7 矩陣;Bu—n 行的列向量。
這組方程只與像素的u 坐標有關(guān),減上不必要的干擾可提高精度。通過最小二乘法解出mu向量后,根據(jù)式(4)與式(11)可知:
由于此處已獲得m34,應根據(jù)式(17)與式(18)更新m14,m24。然后再根據(jù)式(14),式(16)更新kx,ky。又:
由上可知,r31,r32,r33不僅與mu31,mu32,mu33,也與mv31,mv32,mv33有關(guān),因此不宜使用前述獨立式求r1,r2的方法求解,需要綜合u和v 兩方向的參數(shù)求解,減小整體誤差。對于式(13),式(15)建立超定方程組:
運用廣義逆矩陣的解法,得最小二乘解:
實驗中使用的實際圖像坐標并非理想圖像坐標,攝像機的鏡頭是存在畸變的,這意味著利用新方法求取的內(nèi)外參數(shù)模型中的線性參數(shù)具有一定誤差。由研究可知,畸變主要分為徑向畸變和切向畸變。
攝像頭徑向畸變采用四階畸變模型,并且假設攝像機坐標系的x 軸,y 軸的畸變相同,其數(shù)學模型為:
其中r2=x′2+y′2,(x′,y′)為成像點在歸一化成像平面上無畸變的理想坐標;(x,y)為歸一化成像平面上的實際坐標;k1和k2分別為二階和四階徑向畸變系數(shù)。
由攝像機內(nèi)參模型得:
在圖像的各種形式的畸變中,圖像徑向畸變占據(jù)著主導地位。而切向畸變在實際的相機中幾乎不會引入明顯的切向畸變。所以只考慮徑向畸變。
將式(25)帶入式(24),得:
式中:(u′,v′)—無畸變的理想圖像坐標;(u,v)—實際圖像坐標;(u0,v0)—光軸中心點圖像坐標;(x′,y′)—成像點在歸一化成像平面上無畸變的理想坐標;(x,y)—歸一化成像平面上的實際坐標。
將式(26)改寫成矩陣形式:
利用最小二乘法,可以求解出畸變系數(shù)k1和k2。
為了驗證標定方法的正確性,選用標準三維棋盤格立體靶標,黑白格尺寸統(tǒng)一為(27×27)mm。攝像機采用CCD SR-200AP-250AP 型數(shù)字攝像機,選用的采集卡為大恒圖像采集卡,保持每次拍攝時鏡頭不變,只是對三維棋盤格立體靶標位置進行變化,在不同的位置共拍攝6 張圖片,如圖1 所示。攝像機距離標定模塊大約(500~700)mm,圖像大小為640*480 個像素點,經(jīng)過角點檢測算法提取特征點,通過計算機測定得到角點圖像像素坐標,每幅圖像采集10 組特征點。
圖1 標定圖像Fig.1 Calibrated Images
實驗中選取主點坐標值為:u0=320/pixel,v0=240/pixel。并對其進行VC 程序?qū)崿F(xiàn)。根據(jù)提取的角點及靶標的三維世界坐標,利用攝像機線性模型,建立靶標空間點坐標與圖像像素坐標之間的關(guān)系。利用新方法進行標定,然后利用標定參數(shù)求取畸變系數(shù),選取的其中3 組內(nèi)參數(shù)結(jié)果,如表2 所示。
表2 攝像機標定內(nèi)參數(shù)結(jié)果對比Tab.2 Comparison of the Results of Internal Parameters in Camera Calibration
同樣也可以對標定的外部參數(shù)進行對比,采用基于張正友標定法Matlab 標定工具箱標定得到經(jīng)過非線性優(yōu)化的外部參數(shù)作為參考精確值,計算這里方法和Faugeras 方法旋轉(zhuǎn)矩陣與平移矩陣參數(shù)相對誤差。計算6 張圖像內(nèi)外參總體平均相對誤差,如表3 所示。結(jié)果表明新方法標定結(jié)果具有更高的精度。線性標定完成以后,用解得攝像機內(nèi)外參數(shù)結(jié)合標定點坐標重新投影,計算反推像素點坐標值和實測圖像坐標誤差,并將平均像素誤差來衡量標定結(jié)果精度高低。
表3 多張圖像內(nèi)外參數(shù)誤差對比Tab.3 Error Comparison of Internal and External Parameters of Multiple Images
帶有畸變的線性標定完成以后,用解得攝像機內(nèi)外參數(shù)結(jié)合標定點坐標重新投影,計算反推像素點坐標值和實測圖像坐標誤差,并將平均像素誤差來衡量標定結(jié)果精度高低。
平均像素誤差為:
平均像素誤差Δrˉ的值越小[12],則表明所得結(jié)果越好,誤差越小。經(jīng)計算,F(xiàn)augeras 標定法的平均像素誤差為10.47 個像素,新方法的平均像素誤差可達到1.80 個像素,如表4 所示。結(jié)果表明,改進的線性方法的精度明顯高于傳統(tǒng)的Faugeras 標定法。
表4 多張圖像反投影誤差Tab.4 Projection Error of Multiple Images
根據(jù)表2 可發(fā)現(xiàn)Faugeras 方法標定出的圖像中心點u0,v0有時偏差較大,顯然不符合實際在(320,240)附近的情況。而新方法這種假設與實際情況更符合,其也帶來其它標定參數(shù)精度的提高。但是為了獲得更精確的結(jié)果,今后的工作將以多幅圖像進行標定,然后對結(jié)果進行全局非線性優(yōu)化迭代。提出的新方法,未進行全局非線性優(yōu)化,便已得到了較高精度,為以后全局非線性優(yōu)化奠定了良好的基礎。
當前諸多攝像機標定方法沒有在前期線性標定階段進行改善,大多在后期考慮非線性優(yōu)化。而線性標定的結(jié)果是后期非線性優(yōu)化的基礎,初值求解不當可能無法獲得全局最優(yōu)解,因此線性標定的精度相當重要。經(jīng)典的Faugeras 線性標定法把標定過程當成一般的數(shù)學問題求解,未能利用攝像機的特性加以利用與約束,造成精度偏低。針對該問題,提出了一種線性標定方法。新方法充分考慮攝像機的特性,把圖像中心作為主點位置,同時將與橫、縱坐標分別相關(guān)的參數(shù)分開求解;而后將剩余參數(shù)進行混合求解,最后考慮畸變進行線性優(yōu)化,得到畸變系數(shù)。新方法避免了傳統(tǒng)方法將所有參數(shù)過早混合求解的弊端,是精度提高的關(guān)鍵,同時新方法也考慮畸變糾正,在線性標定階段實現(xiàn)了精度的盡可能提升。最后的實驗結(jié)果表明新方法比經(jīng)典Faugeras 方法標定精度明顯提高。這里的方法相比較Tsai 方法和張正友方法比較簡單,可由研究人員自己編程實現(xiàn),只需要一幅標定圖像,可實現(xiàn)初值求解,因此可應用于在線實時標定場合,克服了Tsai 方法和張正友方法軟件包基本只能進行離線標定的局限。新方法也可使用多幅圖像,精度有望更高。主要研究線性標定方法的改進和畸變系數(shù)初值求解,今后將進一步研究在新方法中考慮鏡頭畸變的非線性優(yōu)化,有望在此基礎上得到更精確的解。