胡 松, 王道累
(上海電力學(xué)院 能源與機械工程學(xué)院, 上海 200090)
隨著視覺傳感器及計算機技術(shù)的飛速發(fā)展,機器視覺得到了廣泛應(yīng)用,如用于3D測量、3D物體重建、視覺導(dǎo)航、生物醫(yī)學(xué)、虛擬現(xiàn)實等諸多領(lǐng)域。在計算機視覺技術(shù)中,攝像機的標(biāo)定是關(guān)鍵的步驟之一。攝像機的標(biāo)定是由兩臺不同位置攝像機或一臺攝像機通過移動或者旋轉(zhuǎn)拍攝同一個場景,并且確定場景中物體表面某點的3D幾何坐標(biāo)與其在圖像中對應(yīng)點的坐標(biāo)之間的相互關(guān)系,以建立攝像機成像的幾何模型,而該幾何模型中的參數(shù)就是攝像機參數(shù)[1]。攝像機參數(shù)主要包括攝像機內(nèi)部幾何參數(shù)和反映攝像機坐標(biāo)系相對于世界坐標(biāo)系的三維坐標(biāo)外部參數(shù),如焦距、圖像中心坐標(biāo)、尺度因子和鏡頭畸變等屬于內(nèi)部參數(shù);而旋轉(zhuǎn)變量和平移變量等屬于外部參數(shù)。這些參數(shù)需要通過試驗和計算得到。在計算機視覺和3D重建過程中,攝像機標(biāo)定是從二維圖像獲取3D幾何信息不可或缺的環(huán)節(jié),其精度和準(zhǔn)確性會影響后續(xù)的工作。因此,計算機視覺領(lǐng)域的研究者不斷地提出新的算法或方法來提高攝像機標(biāo)定的精度。
目前,攝像機標(biāo)定技術(shù)有很多種分類方法,主要分為傳統(tǒng)攝像機標(biāo)定方法、基于主動視覺的標(biāo)定方法和自標(biāo)定方法[2]。傳統(tǒng)攝像機標(biāo)定方法的優(yōu)點是攝像機模型可以任意設(shè)定,標(biāo)定理論清晰,標(biāo)定精度高,可以適用于精度要求較高的場合,如三維重構(gòu)、生物醫(yī)學(xué)領(lǐng)域等。其缺點主要在于標(biāo)定的過程相對復(fù)雜,計算量大,需要較高精度的標(biāo)定模板,且無法實現(xiàn)實時標(biāo)定。一般在攝像機的世界坐標(biāo)系中運動參數(shù)已知的情況下,可以采用主動視覺標(biāo)定技術(shù),通常能線性求解,且獲得的結(jié)果魯棒性較好。攝像機的自標(biāo)定方法不依賴標(biāo)定參照物,僅利用圖像與圖像的對應(yīng)關(guān)系來計算出攝像機模型的參數(shù),雖魯棒性不高,但具有很強的靈活性,應(yīng)用場合廣泛。
傳統(tǒng)攝像機標(biāo)定方法是指利用一個幾何參數(shù)精確已知規(guī)則的標(biāo)定物作為空間參照物,將參照物上的已知點坐標(biāo)與該點在圖像上的坐標(biāo)建立對應(yīng)關(guān)系即為攝像機模型,再通過建立優(yōu)化算法模型計算出攝像機模型參數(shù)。傳統(tǒng)攝像機標(biāo)定方法可分為利用最優(yōu)化算法的標(biāo)定法、兩步法、張正友標(biāo)定法以及其他方法等。
FAIG W[3]提出的利用最優(yōu)化算法的標(biāo)定方法是傳統(tǒng)攝像機標(biāo)定方法中的典型代表。在標(biāo)定過程中,他利用針孔攝像機模型的共面約束條件,引用了攝像機成像過程中出現(xiàn)的每一個因素,設(shè)計了一個攝像機成像模型,具備合理復(fù)雜性。此外,對于每一個圖像,為了更準(zhǔn)確地描述與其對應(yīng)的三維物體空間的約束關(guān)系,至少利用了17個參數(shù),因此使得該方法的計算量非常大,但同時能取得很高的精度。
直接線性變換法最早于1971年由ABDEL-AZIZ Y I等人提出[4],也屬于這一類標(biāo)定方法。它是一種對攝影測量學(xué)中傳統(tǒng)方法的簡化方法。該方法的特點是用基本的線性約束方程來表示3D物體空間坐標(biāo)系與攝像機坐標(biāo)系的線性變換關(guān)系,可通過簡單求解線性方程就能把攝像機模型的所有參數(shù)計算出來。但由于在整個過程中沒有考慮透鏡的非線性畸變問題,所以該方法的標(biāo)定精度不高,存在一定的局限性。
TSAI R Y[5-6]在前人的理論基礎(chǔ)上,于1986年提出了基于徑向一致的攝像機標(biāo)定方法。該方法在利用徑向一致約束的基礎(chǔ)上建立線性方程,并進(jìn)行求解,將所求出的參數(shù)值作為初始值,再將鏡頭畸變這一因素考慮進(jìn)去,就可以求解出攝像機參數(shù),但這樣計算出來的結(jié)果不夠精確。為了提高標(biāo)定的精度,利用最優(yōu)化算法可以得出更精確的結(jié)果。由于該方法是將攝像機的標(biāo)定過程分為兩步進(jìn)行求解,因此叫做兩步標(biāo)定法。兩步法的優(yōu)點是求解參數(shù)比較容易,標(biāo)定過程也相對簡單,最關(guān)鍵的是克服了最優(yōu)化算法求解中的兩大缺點,即直接線性變換法中未考慮鏡頭的線性畸變精度不高和初始值給定不合適就很難得出正確的結(jié)果。但兩步標(biāo)定法只考慮了透鏡的徑向畸變,沒有考慮切向畸變,因此其標(biāo)定精度還有待提高。
WENG J等人[7-8]在兩步法的基礎(chǔ)上改進(jìn)了TSAI R Y的畸變模型,同時考慮了透鏡的切向畸變,并給出了相應(yīng)的算法,使之能夠運用于視場較大、畸變較嚴(yán)重的場合。徐杰[9]在TSAI R Y兩步標(biāo)定法基礎(chǔ)上,綜合分析了該方法的優(yōu)缺點,并針對面陣CCD攝像機,提出了新的更加綜合的畸變模型,使得該方法能夠用于多種復(fù)雜的鏡頭畸變的情況。為了滿足雙目立體視覺對工業(yè)檢測精度和實時性的要求,劉源泂等人[10]分析了攝像機成像模型的內(nèi)外參數(shù),并考慮了針孔模型的局限性,采用LENZ畸變模型,建立了基于面陣CCD的雙目成像幾何模型,提出了改進(jìn)的雙目攝像機兩步標(biāo)定法。同時,對于兩步非線性優(yōu)化問題方法,TIAN S X等人[11]提出了一種基于LM算法的攝像機標(biāo)定方法,給出了線性規(guī)劃的內(nèi)外參數(shù),以DLT方法得到的相機模型作為其初始值,然后用LM算法計算出本征值的精確解以及非線性模型的外部參數(shù)。該方法在一定程度上能夠提高攝像機的標(biāo)定精度。
張正友標(biāo)定法[12]采用的是針孔成像模型,利用平面棋盤格標(biāo)定板,通過攝像機從不同方法拍攝標(biāo)定板圖像,然后通過拍攝的標(biāo)定板圖像上的點與模板上點的匹配運算,得出相應(yīng)的單應(yīng)性矩陣,最后通過線性計算得出攝像機的內(nèi)部參數(shù),采用基于最大似然法進(jìn)行非線性優(yōu)化求精。該標(biāo)定法的標(biāo)定板成本低,容易制作,魯棒性好,標(biāo)定精度高,是一種適合實際應(yīng)用的簡單靈活的新方法,推動了機器視覺從實驗室向?qū)嶋H應(yīng)用的發(fā)展。但由于該方法假定模板圖像上的直線經(jīng)透視投影仍然為直線,因此在廣角鏡頭畸變較大的情況下并不適合。
對于攝像機標(biāo)定的研究,有許多學(xué)者提出了比傳統(tǒng)標(biāo)定方法更具有針對性、實用性的新方法。如在張正友標(biāo)定方法基礎(chǔ)上,LI W M等人[13]提出了區(qū)別于張正友標(biāo)定方法的畸變模型,利用特定的超高精度的標(biāo)定板和改進(jìn)的畸變優(yōu)化算法,可以實現(xiàn)較高精度的相機校準(zhǔn),且其魯棒性要好于張正友標(biāo)定法。MENG X G等人[14]提出了一種基于圓點的平面型攝像機標(biāo)定方法,采用的是圓環(huán)模板,利用幾何約束關(guān)系能夠更快速地對攝像機進(jìn)行標(biāo)定,原理比較簡單,擺脫了圖像點與模板平面點之間的匹配問題。
WU Y H等人[15]提出了平行圓標(biāo)定法,從平行圓的最小個數(shù)計算圓環(huán)點,不需要任何匹配,標(biāo)定過程簡單。張奎等人[16]提出了基于兩組同心圓環(huán)點的雙目攝像機的標(biāo)定方法,根據(jù)左右圖像的視差和射影幾何內(nèi)部的約束條件完成對攝像機內(nèi)參數(shù)的標(biāo)定。FENG H Z等人[17]提出了一種多相機校準(zhǔn)方法,用透明玻璃板代替普通標(biāo)定板,并將攝像機放置在標(biāo)定板的正反兩側(cè),采用張正友的標(biāo)定方法。這是一種不同于傳統(tǒng)方法的多重校準(zhǔn)的新方法,其優(yōu)點是多臺攝像機的校準(zhǔn)可以由一個試驗完成,缺點是透明玻璃板背面的相機需要考慮光線折射,需要經(jīng)過非線性迭代,若初始值誤差較大,則標(biāo)定結(jié)果可能不夠精確。
這些新發(fā)展的傳統(tǒng)標(biāo)定方法,為攝像機標(biāo)定在計算機視覺領(lǐng)域甚至其他領(lǐng)域提供了更多且針對性更強的新方向,大大促進(jìn)了計算機視覺技術(shù)的發(fā)展。
此外,DONG Y等人[18]首先利用MATLAB校準(zhǔn)工具箱獲得攝像機初始內(nèi)部參數(shù),然后基于遺傳算法經(jīng)過幾代的進(jìn)化、選擇和變異,最后得到攝像機內(nèi)部參數(shù)最優(yōu)解。在基于遺傳算法的攝像機標(biāo)定方法方面,還有很多學(xué)者[19-22 ]進(jìn)行了研究,并取得了不錯的結(jié)果。這些方法簡單而有效,具有一定的理論意義和實用價值。
基于主動視覺的標(biāo)定方法是指在已知攝像機的某些運動信息(如平移或旋轉(zhuǎn)運動等)下標(biāo)定攝像機的方法[23]。這種標(biāo)定方法需要控制攝像機做某些特殊運動,如攝像機做相互正交的平移運動,在平臺坐標(biāo)系下朝某一方向平移,攝像機僅作純平移或旋轉(zhuǎn)運動等。該方法的算法相對簡單,參數(shù)可以通過線性求解,魯棒性較高。但該方法需要使用高精度視覺平臺進(jìn)行攝像機標(biāo)定,系統(tǒng)成本較高,且不適用于攝像機運動未知或無法控制的場合[24]。根據(jù)攝像機所做運動的不同,可以將基于主動視覺的標(biāo)定方法分為以下幾類。
HARTLEY R[25]在1997年提出了通過控制攝像機繞光心作純旋轉(zhuǎn)運動來標(biāo)定攝像機的方法。HARTLEY標(biāo)定算法的優(yōu)點是可以線性求解攝像機的所有5個內(nèi)部參數(shù),缺點是在實際標(biāo)定過程中,攝像機光心的位置難以確定。因此,在實際應(yīng)用中,要求攝像機繞光心作純旋轉(zhuǎn)運動難以做到,其應(yīng)用場合比較有限。
MAS D[26]提出了利用主動視覺系統(tǒng)控制攝像機作三正交平移運動的標(biāo)定方法。該方法屬于基于主動視覺方法中目前論述較為詳細(xì)的標(biāo)定方法,主要優(yōu)點是可以通過線性求解攝像機的內(nèi)部參數(shù),缺點在于要求攝像機作三正交平移運動,需要高精度的攝像平臺來實現(xiàn),系統(tǒng)成本昂貴,且對噪聲比較敏感,在環(huán)境嘈雜的地方所得誤差會較大。
文獻(xiàn)[27-29]提出,攝像機僅作一次平移和一次任意運動,就可以通過相應(yīng)運動組下無窮遠(yuǎn)平面對應(yīng)的單應(yīng)矩陣線性求解,且解唯一;當(dāng)控制攝像機作一次平移運動和二次任意運動時(要求二次任意運動的旋轉(zhuǎn)軸不互相平行),攝像機就可以進(jìn)行線性標(biāo)定。由于該方法只需要攝像機作純平移運動,無需特殊的設(shè)備,因此該方法最大的優(yōu)點是成本低,易于實現(xiàn),從理論上來說是一種非常完整的基于主動視覺的攝像機標(biāo)定方法。
楊長江等人[30]在文獻(xiàn)[9]的基礎(chǔ)上,研究探討了一種以平面二次曲線的純旋轉(zhuǎn)攝像機為基礎(chǔ)的自標(biāo)定方法。該方法利用圖像間二次曲線的對應(yīng)關(guān)系來標(biāo)定純旋轉(zhuǎn)攝像機。利用圖像之間二次曲線的對應(yīng)關(guān)系,可以確定攝像機的內(nèi)部參數(shù)矩陣,每幅圖像至少包含兩個空間平面二次曲線,或兩個二次曲面,或一個二次曲面和一個平面二次曲線的投影。求解過程無需迭代,同時可以獲得攝像機不同方位之間的旋轉(zhuǎn)矩陣。該方法的主要缺點是要求攝像機只能繞光心旋轉(zhuǎn),且不能有平移運動,在實際應(yīng)用中難以實現(xiàn),應(yīng)用場合有限。
攝像機自標(biāo)定法是指利用攝像機在運動過程中圖像與圖像之間對應(yīng)點的關(guān)系,直接對攝像機進(jìn)行標(biāo)定。該方法采用的是針孔攝像模型,通過攝像機內(nèi)部參數(shù)的自身約束關(guān)系進(jìn)行求解。其與傳統(tǒng)標(biāo)定方法最大的區(qū)別就是無需放置標(biāo)定參照物[31]。隨著計算機視覺領(lǐng)域的興起,攝像機自標(biāo)定法于20世紀(jì)90年代得到了迅速發(fā)展。其優(yōu)點是更靈活且應(yīng)用范圍較廣。但該方法需要解多元非線性方程,所以其最大的缺點就是魯棒性差,一般只應(yīng)用于通信、虛擬現(xiàn)實等精度要求不高的領(lǐng)域。
本文介紹了近年來在攝像機標(biāo)定方面的研究進(jìn)展,并對不同方法的特點進(jìn)行了分析,對比了各典型方法的優(yōu)缺點及其應(yīng)用場合。隨著計算機視覺技術(shù)的發(fā)展,尋求一種快速又精確,適用于不同環(huán)境和場合的攝像機標(biāo)定法顯得格外重要。但如何提高攝像機的標(biāo)定精度還需要作深入的研究。