魏建平,張景偉,趙紅強(qiáng),張 磊
(空軍工程大學(xué)信息與導(dǎo)航學(xué)院,陜西 西安 710077)
責(zé)任編輯:任健男
增強(qiáng)現(xiàn)實(shí)是一種利用計(jì)算機(jī)產(chǎn)生的虛擬信息對使用者所看到的真實(shí)世界景象進(jìn)行增強(qiáng)或擴(kuò)張的技術(shù),實(shí)際上就是將計(jì)算機(jī)生成的虛擬物體或場景疊加到真實(shí)場景中,從而實(shí)現(xiàn)對現(xiàn)實(shí)的“增強(qiáng)”[1]。筆者研發(fā)的魔法書增強(qiáng)現(xiàn)實(shí)系統(tǒng)就是一個(gè)典型案例,使用者用攝像機(jī)拍攝一張印有二維圖像的紙張,在成像設(shè)備上就能出現(xiàn)與真實(shí)圖像相匹配的三維虛擬模型,而且模型能夠跟隨圖像在屏幕中的運(yùn)動(dòng)而運(yùn)動(dòng)。增強(qiáng)現(xiàn)實(shí)與虛擬現(xiàn)實(shí)不同,其最主要區(qū)別在于增強(qiáng)現(xiàn)實(shí)中要實(shí)現(xiàn)虛擬場景與真實(shí)場景的準(zhǔn)確匹配,匹配的精度和實(shí)時(shí)性直接影響著一個(gè)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的優(yōu)劣。因此,這種匹配的技術(shù),即三維注冊技術(shù),是增強(qiáng)現(xiàn)實(shí)的關(guān)鍵技術(shù)之一。
當(dāng)前三維注冊技術(shù)主要有基于跟蹤器的注冊技術(shù)、基于認(rèn)知的注冊技術(shù)、基于計(jì)算機(jī)視覺的注冊技術(shù)[2],其中基于計(jì)算機(jī)視覺的注冊技術(shù)憑借具有成本低廉、實(shí)現(xiàn)方便的特點(diǎn)逐漸受到重視成為增強(qiáng)現(xiàn)實(shí)應(yīng)用系統(tǒng)中一種非常具有發(fā)展?jié)摿Φ母欁约夹g(shù),其注冊精度高,可達(dá)到像素級(jí)。筆者從基于計(jì)算機(jī)視覺的注冊技術(shù)出發(fā),將增強(qiáng)現(xiàn)實(shí)系統(tǒng)框架設(shè)計(jì)如下,如圖1所示。
圖1 注冊算法應(yīng)用實(shí)例
筆者在開發(fā)魔法書增強(qiáng)現(xiàn)實(shí)系統(tǒng)的過程中遇到了一個(gè)矛盾,即張正友的標(biāo)定算法[3-4]可以較精確地獲得攝像機(jī)內(nèi)外參數(shù),但需要獲得多幅圖像;魔法書增強(qiáng)現(xiàn)實(shí)系統(tǒng)為了滿足與使用者之間良好的互動(dòng)性與實(shí)時(shí)性,需要一幅圖像完成標(biāo)定。考慮到魔法書增強(qiáng)現(xiàn)實(shí)系統(tǒng)所使用的攝像機(jī)具有照射范圍小、拍攝視角小的特點(diǎn),攝像機(jī)移動(dòng)對內(nèi)部參數(shù)幾乎不造成影響,因此筆者針對其特殊應(yīng)用環(huán)境,在傳統(tǒng)的線性模型攝像機(jī)標(biāo)定方法的基礎(chǔ)上,提出了一種基于特征點(diǎn)識(shí)別的線性三維注冊算法,將張正友經(jīng)典算法與改進(jìn)型線性算法綜合使用,解決了上述矛盾。本算法只需要在第一次使用系統(tǒng)時(shí)拍攝2幅以上圖像初始化攝像機(jī)內(nèi)部參數(shù),之后實(shí)時(shí)捕捉1幅圖像就能完成注冊。
本算法運(yùn)算過程為線性,運(yùn)算量小,而且只需要檢測1幅圖像中的4個(gè)特征點(diǎn)就能完成標(biāo)定。與孟曉橋、胡占義的橢圓模板攝像機(jī)標(biāo)定方法[5]相比,不需要使用者所用模板中帶有橢圓等規(guī)范化圖案,大大降低了對標(biāo)定模板的要求,一定意義上實(shí)現(xiàn)了對任意模板的三維注冊。
用針孔模型描述三維空間點(diǎn)到成像平面的映射關(guān)系,如圖2所示。
圖2 攝像機(jī)針孔模型
若記某點(diǎn)在圖像像素坐標(biāo)系上的二維坐標(biāo)為m=(u,v),其在世界坐標(biāo)系上的三維坐標(biāo)為 M=(Xw,Yw,Zw)。根據(jù)世界坐標(biāo)、攝像機(jī)坐標(biāo)、圖像坐標(biāo)之間的轉(zhuǎn)換關(guān)系,可用齊次坐標(biāo)表示空間點(diǎn)與圖像點(diǎn)之間的映射關(guān)系
式中:dx和dy為每個(gè)像素在圖像物理坐標(biāo)系的兩個(gè)軸方向上的物理尺寸;(u0,v0)為圖像物理坐標(biāo)系的原點(diǎn)在圖像像素坐標(biāo)系上的坐標(biāo),f為攝像機(jī)焦距。將矩陣合并得到M1和M2。矩陣M1只與攝像機(jī)內(nèi)部參數(shù)有關(guān),故將其稱為內(nèi)部參數(shù)矩陣。矩陣M2完全由攝像機(jī)相對于世界坐標(biāo)系的方位決定,稱其為外部參數(shù)矩陣。求解出內(nèi)外部參數(shù)即可完成標(biāo)定任務(wù)。
將式(1)寫成
其中下角標(biāo)i代表第i點(diǎn)位置信息,式(2)包含3個(gè)信息
將式(3)做消參處理,一項(xiàng)除以三項(xiàng),二項(xiàng)除以三項(xiàng)分別消去Zci后,可得2個(gè)關(guān)于Mij的線性方程
若標(biāo)定模板有n個(gè)特征點(diǎn),并已知其空間坐標(biāo)(Xw,Yw,Zw),則可得到2n個(gè)關(guān)于M矩陣元素的線性方程,用矩陣形式表示方程組
式中:m34為比例因子,并不影響計(jì)算結(jié)果,可令m34=1。這樣方程的未知數(shù)為11個(gè),將其記為11維向量m,式(5)可以寫成
式中:K為式(5)左邊2n×11維矩陣;m為11維向量;U為右邊11維向量??梢钥吹椒匠探M有11個(gè)未知數(shù),但方程個(gè)數(shù)有12個(gè)或者更多的超定方程,利用最小二乘法可得到結(jié)果。當(dāng)2n大于11時(shí),上述方程的最小二乘解為
由此可見由空間6個(gè)以上的點(diǎn)與它們的圖像坐標(biāo)可得到M矩陣的解,在筆者所開發(fā)的增強(qiáng)現(xiàn)實(shí)系統(tǒng)中,通過Direct3D可直接利用M矩陣的運(yùn)算結(jié)果來控制虛擬物體的位置,實(shí)現(xiàn)三維注冊。實(shí)際應(yīng)用中若增加特征點(diǎn)個(gè)數(shù),使方程個(gè)數(shù)遠(yuǎn)遠(yuǎn)超過未知數(shù)個(gè)數(shù),可增加算法穩(wěn)定性與精確性,降低特征點(diǎn)被遮擋等原因而造成標(biāo)定失敗的概率。
由上可見,傳統(tǒng)的線性模型攝像機(jī)標(biāo)定方法至少需要6個(gè)特征點(diǎn)才能完成標(biāo)定任務(wù),而在實(shí)際應(yīng)用中,特征點(diǎn)數(shù)目的增加勢必會(huì)對使用者的視覺效果造成影響。對筆者開發(fā)的魔法書增強(qiáng)現(xiàn)實(shí)系統(tǒng)而言,若能通過識(shí)別紙張的4個(gè)頂點(diǎn),就能完成標(biāo)定工作,而不需設(shè)置其他特征點(diǎn),這將大大提高使用者的體驗(yàn)感。由此思路出發(fā),本文將傳統(tǒng)線性算法進(jìn)行改進(jìn),與張正友的標(biāo)定方法相結(jié)合,提出一種基于4個(gè)特征點(diǎn)識(shí)別的兩步攝像機(jī)標(biāo)定算法。
為方便算法說明,這里將成像映射關(guān)系分步重新推導(dǎo),世界坐標(biāo)與攝像機(jī)坐標(biāo)之間的關(guān)系為
將式(8)展開,物體世界坐標(biāo)與攝像機(jī)坐標(biāo)之間的關(guān)系可寫成
再根據(jù)攝像機(jī)成像原理,利用三角形相似的關(guān)系,得到圖像像素坐標(biāo)與世界坐標(biāo)之間的關(guān)系為
式中:f為攝像機(jī)的焦距(假設(shè)攝像機(jī)內(nèi)部參數(shù)已知,即焦距已知),聯(lián)立兩式可知,每一特征點(diǎn)可以確定兩個(gè)獨(dú)立的約束方程
顯然,由6個(gè)特征點(diǎn)可產(chǎn)生12個(gè)方程,從而解算出變換矩陣的12個(gè)參數(shù)。但實(shí)際上,如果使用旋轉(zhuǎn)矩陣的規(guī)范化正交約束,只需要4個(gè)特征點(diǎn)就能解出變換矩陣的12個(gè)參數(shù)。
將特征點(diǎn)設(shè)置在同一平面內(nèi),4個(gè)特征點(diǎn)的世界坐標(biāo)設(shè)定為 (Xwi,Ywi,0)(i=1,2,3,4),那么式(11)可以簡寫為
式中:t3是各參數(shù)的比例因子,令其為1,至此式(12)中的參數(shù)變?yōu)?個(gè),4個(gè)特征點(diǎn)可得到8個(gè)方程,即可求解出下列8個(gè)參數(shù),r31,r32,r11,r12,r21,r22以及t1,t2。
因?yàn)樾D(zhuǎn)矩陣R是正交規(guī)范化矩陣,所以存在關(guān)系RTR=I,利用此特性可解出如下參數(shù)
這樣,得到了變換矩陣參數(shù),完成了三維注冊任務(wù)。
注意到上述算法是在攝像機(jī)內(nèi)部參數(shù)已知的假設(shè)下完成的,攝像機(jī)內(nèi)部參數(shù)的測定方法較多[3,6-9],本文采用張正友的經(jīng)典算法初始化內(nèi)部參數(shù),這里不再贅述。
綜上所述,將改進(jìn)的三維注冊的方法總結(jié)如下:
1)設(shè)計(jì)1張具有4個(gè)可識(shí)別特征點(diǎn)的模板紙(筆者采用紙張的4個(gè)邊緣點(diǎn));
2)從不同方位拍攝至少2幅圖像;
3)初始化攝像機(jī)內(nèi)部參數(shù),采用張正友標(biāo)定算法計(jì)算攝像機(jī)內(nèi)部參數(shù);
4)已知內(nèi)部參數(shù)利用本文算法得到外部參數(shù),完成三維注冊任務(wù)。
本文在理論分析之后通過VC平臺(tái)對所提出的注冊方法進(jìn)行了實(shí)驗(yàn)驗(yàn)證。實(shí)驗(yàn)采用簡易型CCD攝像機(jī),焦距為25 mm,圖像分辨率為640×480,視頻采集處理模塊采用DirectShow完成,特征點(diǎn)設(shè)定為紅色半橢圓形,特征點(diǎn)的識(shí)別采用中心點(diǎn)擬合的方法。分別采用六特征點(diǎn)與四特征點(diǎn)模板紙張進(jìn)行傳統(tǒng)標(biāo)定算法與改進(jìn)后算法的仿真,圖3為六特征點(diǎn)模板,圖4為2個(gè)不同方位拍攝的四特征點(diǎn)模板。
圖3 六特征點(diǎn)標(biāo)定模板
圖4 四特征點(diǎn)標(biāo)定模板
采用傳統(tǒng)算法所得到攝像機(jī)內(nèi)外部參數(shù)矩陣為
利用張正友標(biāo)定算法所得攝像機(jī)內(nèi)部參數(shù)如表1所示。
表1 攝像機(jī)內(nèi)部參數(shù)
將攝像機(jī)調(diào)整至與使用傳統(tǒng)算法測量時(shí)相同的位置上,采用改進(jìn)后線性標(biāo)定方法所得旋轉(zhuǎn)和平移矩陣為
為方便與傳統(tǒng)標(biāo)定算法進(jìn)行比較,將改進(jìn)后算法計(jì)算結(jié)果化解,m34作歸一化處理,得到內(nèi)外部參數(shù)矩陣為
結(jié)果表明,改進(jìn)算法在已知攝像機(jī)內(nèi)部參數(shù)的情況下利用4個(gè)特征點(diǎn)完成了攝像機(jī)的標(biāo)定過程,所得結(jié)果與傳統(tǒng)方式標(biāo)定結(jié)果幾乎一致,標(biāo)定方式簡單易行、結(jié)果準(zhǔn)確可靠,可以應(yīng)用于增強(qiáng)現(xiàn)實(shí)系統(tǒng)的三維注冊模塊中。
在筆者研發(fā)魔法書增強(qiáng)現(xiàn)實(shí)系統(tǒng)的過程中,提出的三維注冊方法只需要在第一次使用時(shí)利用張正友標(biāo)定算法從不同方位拍攝兩幅以上圖像初始化內(nèi)部參數(shù),之后的使用中即可通過一幅圖像完成對攝像機(jī)外部參數(shù)的計(jì)算,從而得到攝像機(jī)方位角,完成三維注冊功能。該方法能夠?qū)崟r(shí)地實(shí)現(xiàn)虛擬場景與真實(shí)場景的無縫匹配,對于增強(qiáng)現(xiàn)實(shí)系統(tǒng)的開發(fā)有較高的應(yīng)用價(jià)值。
[1]馬松德,張正友.計(jì)算機(jī)視覺——計(jì)算理論與算法基礎(chǔ)[M].北京:科技出版社,1998.
[2]施琦,王涌天,陳靖.一種基于視覺的增強(qiáng)現(xiàn)實(shí)三維注冊算法[J].中國圖象圖形學(xué)報(bào),2002,7(7):679-683.
[3]ZHANG Z Y.Flexible camera calibration by viewing a plane from unknown orientations[C]//Proc.7th International Conference on Computer Vision.Kerkyra,Greece:[s.n.],1999:666-673.
[4]ZHANG Z Y.Camera calibration with one-dimensional objects[J].IEEE Trans.Pattern Anal.Mach.Intel.,2004,26(7):892-899.
[5]孟曉橋,胡占義.一種新的基于圓環(huán)點(diǎn)的攝像機(jī)自標(biāo)定方法[J].軟件學(xué)報(bào),2002,13(5):957-965.
[6]朱淼良,姚遠(yuǎn),蔣云良.增強(qiáng)現(xiàn)實(shí)綜述[J].中國圖象圖形學(xué)報(bào),2004,9(7):767-774.
[7]劉杰才,彭真明,雍楊.基于菱形模板的攝像機(jī)標(biāo)定方法[J].指揮控制與仿真,2012(4):132-136.
[8]賈云得.機(jī)器視覺[M].北京:科學(xué)出版社,2000.
[9]吳福朝,李華,胡占義.基于主動(dòng)視覺的攝像機(jī)自標(biāo)定方法研究[J].自動(dòng)化學(xué)報(bào),2002,27(6):726-746.