付文秀,張馨則
(北京交通大學(xué) 電子信息工程學(xué)院,北京 100044)
?
基于FLARToolkit的多標識增強現(xiàn)實系統(tǒng)的實現(xiàn)
付文秀,張馨則
(北京交通大學(xué) 電子信息工程學(xué)院,北京 100044)
針對傳統(tǒng)增強現(xiàn)實系統(tǒng)采取單個標識識別影響其在PC端開發(fā)效率的問題.選擇新興的基于Flash的跟蹤類庫FLARToolkit,結(jié)合3D引擎Papervision 3D,開發(fā)實現(xiàn)了具有多個模板標識的增強現(xiàn)實系統(tǒng)原型,附上了底層代碼和系統(tǒng)結(jié)果,并針對其中的光學(xué)畸變問題采用棋盤法進行改善,成功將攝像頭標定誤差降低到0.093.提高增強現(xiàn)實系統(tǒng)的穩(wěn)定性的同時,也為進一步開發(fā)提供了良好的基礎(chǔ).
增強現(xiàn)實;FLARToolkit;多標識;三維注冊;光學(xué)畸變
增強現(xiàn)實(Augmented Reality,AR)是虛擬環(huán)境或虛擬現(xiàn)實的一個分支.虛擬現(xiàn)實技術(shù)能夠使用戶完全沉浸在合成環(huán)境中,無法查看周圍的真實環(huán)境[1-2].與之相反,增強現(xiàn)實能夠把圖像、音頻和視頻及觸覺感知等數(shù)字信息或者計算機生成的信息實時地輸送到真實環(huán)境里[3].目前增強現(xiàn)實的應(yīng)用非常廣泛,在游戲和娛樂、教育、維護和修理、醫(yī)學(xué)、導(dǎo)航、商業(yè)[4]領(lǐng)域均有涉及.
隨著計算機軟硬件的發(fā)展,FLARToolkit作為Flash獨有的精美動畫顯示與ActionScript 3.0的高級交互功能的結(jié)合產(chǎn)物在此時應(yīng)運而生,恰好為增強現(xiàn)實系統(tǒng)提供了功能強大應(yīng)用廣泛的開發(fā)環(huán)境.2009年,韓國學(xué)者提出可以利用FLARToolkit類庫的優(yōu)越性來構(gòu)建課堂教學(xué)應(yīng)用,改善教學(xué)方法[5].關(guān)于FLARToolkit理論設(shè)想[6]雖然很多,但是具體論述其開發(fā)過程的資料卻很少.其中一個重要原因就是傳統(tǒng)的基于FLARToolkit的增強現(xiàn)實系統(tǒng)大多采用單個標識(Single Marker Detector)進行識別,然而在增強現(xiàn)實系統(tǒng)工作的大多現(xiàn)實場景中,人眼需要識別的往往是多個同時存在的標識.這
導(dǎo)致其在PC端的實用性不高,也影響了FLARToolkit基于Flash的良好的交互性能和強大的圖像基礎(chǔ)的發(fā)揮與拓展.所以針對這部分的多標識拓展功能的實現(xiàn)就具有了一定的現(xiàn)實意義,本文作者通過對多標識識別(Multi Marker Detector)的研究與設(shè)計,最終實現(xiàn)疊加多個3D模型在多個標識上的實驗結(jié)果,以此來增加AR系統(tǒng)在PC端的可用性與延展性,為進一步開發(fā)提供了思路.
1.1 FLARToolkit開發(fā)包簡介
ARToolkit是一種用于構(gòu)建增強現(xiàn)實應(yīng)用程序的免費軟件庫.文獻[7]論述了日本學(xué)者Nyatla的開發(fā)和維護的過程,NyARToolkit已經(jīng)是個可以創(chuàng)建增強現(xiàn)實并支持多種語言和開發(fā)環(huán)境的C程序庫.文獻[8]論述了Saqoosha在此基礎(chǔ)上繼續(xù)將其改寫成ActionScript 3.0 的類庫并整合進Papervision 3D技術(shù),于是誕生了基于ActionScript 3.0的開源類庫FLARToolkit.
FLARToolkit的特點是基于Flash構(gòu)架,所以它繼承了Flash的大部分優(yōu)點,如它包含了一些出色的Flash 3D引擎,如Papervision 3D, Away 3D, Sandy, Alternativa 3D,這些3D引擎可以用來渲染和管理 3D 模型,也可以很方便的實現(xiàn)交互.借助Flash不僅可以給人帶來非常漂亮的視覺效果,也可以利用其對圖形元素的控制能力給該系統(tǒng)帶來很強的健壯性,這也是本文選擇FLARToolkit作為AR系統(tǒng)跟蹤類庫的原因.
1.2 攝像機參數(shù)文件
攝像機的內(nèi)參和外參是AR系統(tǒng)中非常重要的部分,AR系統(tǒng)需要攝像機參數(shù)來進行3D-2D的投影轉(zhuǎn)換等一系列操作,攝像機參數(shù)文件.dat文件就是攝像機標定后輸出的攝像頭參數(shù)文件,在2.1節(jié)和2.2節(jié)中,將會詳細推導(dǎo)坐標轉(zhuǎn)換和攝像機參數(shù)求解過程,并且通過棋盤法手動標定了計算機,得到了校正后的攝像機參數(shù)文件.
1.3 人工標識和模式文件
人工標識是用攝像頭捕捉到的方便電腦三維跟蹤的標志物,可以放在電子產(chǎn)品畫面上顯示,也可以打印成紙質(zhì)版.標識應(yīng)符合有連貫邊緣輪廓的圖片,同時不能是旋轉(zhuǎn)圖形的要求,以免降低識別成功率或者疊加的3D圖形不能成功隨標識旋轉(zhuǎn).此外標識應(yīng)盡可能簡單,可以獲得最佳效果.本文進行多標識識別所制作的兩個標識如圖1(a)和圖1(b)所示.
模式文件是電腦生成的一個.pat文件,是FlARToolkit從攝像頭捕捉到的畫面里檢測的圖樣,與制作的人工標識圖片一一對應(yīng).模式文件如果被打開查看的話,比如本試驗程序在“assetsFLARflarlogo1.pat”和“assets FLAR flarlogo2.pat”,會發(fā)現(xiàn)其中有4個16×48的矩陣,分別代表標記文件的4個不同方向.在FlARToolkit看來,標記是一個16×16的二維碼.在這個文件里每個矩陣是16×48是因為模式文件實際上是16×16個3色(紅,綠,藍).對應(yīng)上面兩個標識的模式文件大概如圖2(a)和圖2(b)所示.
總之,人工標識和該標識生成的模式文件都是增強現(xiàn)實系統(tǒng)的輸入,可以將標識理解成攝像頭的光學(xué)輸入,而模式文件是該物體給AR代碼開發(fā)端的程序輸入.
1.4 渲染顯示的3D模型
3D MAX可以制作生成3D模型,輸出DAE文件,本文所用的是一個地球模型(earth.dae)和一個埃菲爾鐵塔模型(tower.dae).因為模型繪制不是本文研究的重點,所以對于這部分不作探討.
增強現(xiàn)實系統(tǒng)中最為關(guān)鍵的部分就是三維注冊技術(shù),這一步驟的實現(xiàn)直接關(guān)系到整個系統(tǒng)成敗.而三維注冊技術(shù)的主要內(nèi)容其實就是攝像機標定,攝像機標定即通過一系列坐標系之間的轉(zhuǎn)換,求得攝像機的內(nèi)外參數(shù)的過程.FLARToolkit提供了默認的攝像機參數(shù)文件,每次程序啟動都會讀取攝像機內(nèi)外參數(shù).一方面世界坐標系與攝像機坐標系之間不能直接對應(yīng);另一方面,在實時移動時穩(wěn)定性差的情況下,透鏡擴大收集光線的同時對圖像產(chǎn)生畸變,特別是在拍攝水平放置的標簽時,致使畫面出現(xiàn)無法反映真實的尺寸與相對位置關(guān)系[9-10].目前,大多數(shù)解決光學(xué)畸變問題的方法是張正友法[11],為獲得更好的跟蹤精度和系統(tǒng)穩(wěn)定性,文中研究并推導(dǎo)了張正友法,并針對影響其方法的問題進行改善,采用基于棋盤的方法手動重新確定攝像機標定參數(shù).
2.1 三維坐標轉(zhuǎn)換
假設(shè)真實世界與攝像機坐標系之間的轉(zhuǎn)換關(guān)系為矩陣C,那么確定矩陣C也就是確定了攝像機觀察真實環(huán)境的位姿.假設(shè)攝像機坐標系與成像平面坐標系間的轉(zhuǎn)換關(guān)系為矩陣P,那么根據(jù)針孔透視成像原理,求得矩陣P就可以將三維物體在真實世界中的點投影在二維平面上.為方便原理說明,建立增強現(xiàn)實系統(tǒng)的各個坐標系如圖3所示.
圖3中,(X,Y,Z)表示真實空間坐標系;(ξ,η,ζ)表示虛擬空間坐標系;(X′,Y′,Z′)表示攝像機空間坐標系;(U,V)表示成像平面坐標系.
真實空間坐標系與攝像機坐標系之間的轉(zhuǎn)換關(guān)系可以用下式表示
(1)
式中,R(r1,r2,r3)為一個3×3的正交矩陣,提供X、Y、Z軸上的旋轉(zhuǎn)分量.t為一個3×1矩陣,提供X、Y、Z軸上的平移分量,因此旋轉(zhuǎn)矩陣R和平移矩陣t兩者都屬于攝像機外部參數(shù).通過式(1)計算,實現(xiàn)了真實場景到攝像機坐標系之間的變換,達到對用戶頭部位置和視線方向的跟蹤.
對攝像機標定以獲得攝像機內(nèi)部參數(shù),鏡頭的焦距f,光心u0、v0,鏡頭畸變系數(shù)k、p,比例因子s等,當(dāng)獲得內(nèi)部參數(shù),發(fā)現(xiàn)張正友法第1步中采用線性方法求得攝像機初始參數(shù),導(dǎo)致離圖像中心較遠的點畸變較大,造成較大誤差,因此選取圖像光心點附近坐標,基本可以不考慮畸變,那么根據(jù)針孔成像原理,就可以實現(xiàn)三維場景到二維平面的轉(zhuǎn)換.在攝像機空間坐標系中,點在圖像平面上的投影可以由如圖4所示的攝像機透視投影模型來確定.
可得到透視投影方程為
(2)
式中:(x′,y′,z′)為空間點P在攝像機坐標系的坐標;(u′,v′)為P在圖像上的投影,它是光心O與P的連線與圖像平面的交點.上述透視投影關(guān)系用坐標矩陣為
(3)
式中的(u′,v′)是圖像坐標,還需要將它轉(zhuǎn)換為像素坐標.假設(shè)(u,v)是圖像像素坐標,dpu′和dpv′分別代表u′v′微分的倒數(shù),表示成像平面水平方向和垂直方向的像素分辨率,那么兩者之間的關(guān)系可以為
(4)
式中,(u0,v0)是光心在顯示設(shè)備的像素坐標系中的坐標.矩陣表示為
(5)
將式(5)帶入式(3)中,可以得到攝像機三維坐標到二維平面轉(zhuǎn)換關(guān)系為
(6)
式中,令ax=f×dpu′,ay=f×dpv′,由于焦距f、光心坐標(u0,v0)只與攝像機的內(nèi)部結(jié)構(gòu)有關(guān),因此稱ax、ay、u0、v0為攝像機的內(nèi)部參數(shù).假設(shè)O為已知的虛擬物體坐標系到真實空間的坐標轉(zhuǎn)換關(guān)系矩陣,從式(1)、式(6)可知,三維空間中虛擬物體上的某一點(x,y,z,1)及其在增強現(xiàn)實場景坐標下的投影點(u,v,1)之間的轉(zhuǎn)換關(guān)系可以用下式表示
(7)
本文使用棋盤標定目標,其正方形的頂點作為標定用的標記點,由于采用平面參考點標定,標定目標是一個平面,這就成了一個平面單應(yīng)性問題,根據(jù)一般性,定義這個物體平面Z=0,那么矩陣C中的r3=0.有
(8)
利用不同視場情況下攝像機的內(nèi)參穩(wěn)定不變的特點,根據(jù)式(8)可以令H=P×C,在不知道內(nèi)參數(shù)的情況下從多個視場計算多個單應(yīng)性矩陣的方法來求出H,最后解出攝像機的內(nèi)參數(shù).
2.2 求解畸變參數(shù)
本文考慮了系統(tǒng)的穩(wěn)定性和約束集數(shù)量,選擇8×6棋盤,棋盤平面大小為160 mm×120 mm,棋盤格大小為20 mm×20 mm.拍攝如圖5所示的10個視場,也就是鏡頭面向棋盤的10個不同的位置和姿態(tài)所取得的圖像信息.
(9)
(10)
由式(6)求得矩陣P,得出矩陣B的封閉解為
(11)
B矩陣兩個約束有其通用形式.將矩陣乘開,重排為
(12)
前面得到的兩個約束可以寫成
(13)
如果同時得到K個不同視角的棋盤圖像,堆疊這些方程,可以得到Mb=0.其中M是包含mij的一個2K×6的矩陣,若K>2,那么這個方程有解b.
1)攝像機內(nèi)參數(shù)可以由式(11)中B矩陣的封閉解中直接得到
(14)
(15)
(16)
(17)
(18)
2)外參數(shù)可以由單應(yīng)性條件,即式(9)計算得到
r1=λP-1h1
(19)
r2=λP-1h2
(20)
r3=r1?r2
(21)
t=λP-1h3
(22)
由于畸變在圖像上得到的感知點的位置是不真實的,如果針孔模型是完美的,令(xp,yp)為點的位置,令(xd,yd)為畸變位置,有如下關(guān)系
(23)
通過上面的替換,可以得到?jīng)]有畸變的標定結(jié)果
(24)
(25)
3.1 多標識系統(tǒng)方案設(shè)計
多標識AR系統(tǒng)程序設(shè)計部分采用Flash CS5 作為開發(fā)環(huán)境,ActionScript 3.0為開發(fā)語言,F(xiàn)LARToolkit作為跟蹤類庫,Papervision 3D作為三維框架,3D MAX和Collada分別負責(zé)模型制作與轉(zhuǎn)換調(diào)用.硬件部分采用計算機及自帶的攝像頭和打印出的兩個標識圖片.
FLARToolkit沿用了ARToolkit利用計算機視覺技術(shù)來計算攝像機相對于黑白標識的位置與姿態(tài).1)對攝像頭采集到的圖像進行連通域分析,找出其中所有的四邊形區(qū)域作為候選匹配區(qū)域; 2)將每一候選區(qū)域與模板庫中的模板進行匹配,如果產(chǎn)生匹配,則FLARToolkit認為找到了一個標識,利用該標識區(qū)域的變形來計算攝像機相對于已知標識的位置和姿態(tài); 3)根據(jù)得到的坐標變換矩陣計算虛擬物體的二維圖像應(yīng)該在攝像機坐標系中疊加的位置,從而實現(xiàn)虛擬場景與真實世界之間的三維注冊. AR系統(tǒng)開發(fā)原理主要步驟見圖6.
3.2 多標識軟件系統(tǒng)實現(xiàn)
在掌握了三維注冊的原理和實現(xiàn)過程且做好AR系統(tǒng)需要的預(yù)先準備文件后,就可以開始多標識系統(tǒng)的創(chuàng)建工作.由攝像頭將真實場景以影像流的方式拍攝下來,并以一定的頻率讀取,并將搜索到的矩形區(qū)域和模板文件進行匹配,超過預(yù)先設(shè)定的匹配值,則系統(tǒng)認為找到標識,疊加3D模型,并渲染在屏幕上,具體的軟件設(shè)計流程見圖7.
匹配階段主要是調(diào)用了FLARMultiMarker Detector( )函數(shù)搜索模板;系統(tǒng)中設(shè)置的檢測相似度參數(shù)DETECTION_CONFIDENCE = 0.5,一旦根據(jù)設(shè)定的條件,兩個標識的匹配度都超過這個匹配值,系統(tǒng)就認為匹配成功,則開始計算攝像頭外部參數(shù),進行真實空間到圖像空間的坐標轉(zhuǎn)換.坐標轉(zhuǎn)換階段主要是調(diào)用了FLARTransMatResult()函數(shù).然后再導(dǎo)入三維虛擬模型,在對應(yīng)的模板上渲染地球和艾菲爾鐵塔的三維虛擬模型,進行虛實疊加.將各環(huán)節(jié)所用的函數(shù)和功能總結(jié)成表1.
表1 程序原型使用的FLARToolkit方法Tab.1 FLARToolkit method used by the program
3.3 實驗結(jié)果
本文制作了兩個標識模式文件,分別對應(yīng)兩個3D模型,一個是地球,一個是艾菲爾鐵塔,模型疊加的位置在標識圖像的正上方,可通過改變參數(shù)scale來調(diào)整大小.同時,用Flash創(chuàng)建應(yīng)用程序意味著會以SWF文件形式發(fā)布完成的文件,該文件可以選擇用Flash Player來播放,也可以在瀏覽器中打開,非常適合多媒體展示應(yīng)用或教學(xué)應(yīng)用.打開這個生成的SWF文件,檢驗最終的增強現(xiàn)實系統(tǒng)原型實現(xiàn)結(jié)果,如圖8所示.
實驗發(fā)現(xiàn)FLARToolkit基于計算機視覺的三維注冊效果還是比較理想的,在攝像頭拍攝真實場景的時候這些虛擬物體也顯示了出來,并且在移動模板或者攝像頭移動的時候,虛擬物體會隨著真實世界進行相應(yīng)的變化,即使在標識接近水平狀態(tài)的時候,也保持了系統(tǒng)穩(wěn)定性.這證明FLARToolkit能實現(xiàn)AR開發(fā)所涉及的標記識別、三維坐標轉(zhuǎn)換和圖形渲染等底層功能,具備開發(fā)多標識識別系統(tǒng)的基本條件.同時系統(tǒng)原型表現(xiàn)出的穩(wěn)定性和實時性,也證明了該類庫用于增強現(xiàn)實系統(tǒng)原型開發(fā)的潛力,為進一步的功能拓展提供了方向.
1)通過FLARToolkit跟蹤類庫分析入手,對增強現(xiàn)實的關(guān)鍵技術(shù)三維注冊技術(shù)的原理進行了簡要的推導(dǎo)和說明,并在其基礎(chǔ)上,對攝像頭光學(xué)畸變產(chǎn)生的誤差用棋盤法進行了手動標定,將重投影誤差降低到0.093.
2)運用FLARToolkit類庫以ActionScript 3.0編譯語言完成一個有多個人工標識的簡單的增強現(xiàn)實系統(tǒng)原型,并且成功實現(xiàn)預(yù)先準備的三維模型實時的虛實疊加,將獲得的新的攝像頭參數(shù)文件替換進FLARToolkit中,系統(tǒng)表現(xiàn)出了健壯性與穩(wěn)定性.
3)多標識系統(tǒng)體現(xiàn)出了FLARToolkit基于Flash的出色的表現(xiàn)力,同時其生成的可執(zhí)行動畫文件可以支持任意PC端播放使用,并且可以嵌入音頻和視頻,非常適合多媒體教學(xué)和會場宣傳,基于FLARToolkit的增強現(xiàn)實高鐵宣傳展示是下一步的工作重點.
[1] 趙沁平.虛擬現(xiàn)實綜述[J].中國科學(xué)(F輯:信息科學(xué)),2009,39(1):2-46. ZHAO Qinping.Summary of virtual reality [J]. China Science (series F: Information Science), 2009, 39(1):2-46.(in Chinese)
[2] 鄭毅. 增強現(xiàn)實虛實遮擋方法評述與展望[J].系統(tǒng)仿真學(xué)報, 2014,26(1):1-10. ZHENG Yi.Review and prospects of occlusion handling among virtual and real objects inaugmented reality [J]. Journal of System Simulation, 2014,26 (1): 1-10.(in Chinese)
[3] 鐘慧娟,劉肖琳,吳曉莉.增強現(xiàn)實系統(tǒng)及其關(guān)鍵技術(shù)研究[J].計算機仿真,2008,25(1):252-255. ZHONG Huijuan,LIU Xiaolin, WU Xiaoli. Study on augmented reality system and key technologies [J].Computer Simulation, 2008, 25 (1):252-255.(in Chinese)
[4] 齊越,馬紅妹.增強現(xiàn)實:特點,關(guān)鍵技術(shù)和應(yīng)用[J].小型微型計算機系統(tǒng),2004,25(5):900-903. QI Yue, MA Hongmei. Augmented reality: characteristics, key technologies and applications [J]. Mini-micro Systems, 2004, 25 (5):900-903.(in Chinese)
[5] 張寶運,惲如偉.增強現(xiàn)實技術(shù)及其教學(xué)應(yīng)用探索[J].實驗技術(shù)與管理,2010,27(10):135-138. ZHANG Baoyun, YUN Ruwei.Investigation on augmented reality technology and its application in teaching [J]. Experimental Technology and Management, 2010, 27 (10): 135-138.(in Chinese)
[6] YAN Y, ZHANG X. Research and analysis of the virtual reality with FLARToolKit[C]. International Conferenceon Mechatronic Science, Electric Engineering and Computer, 2011:1614-1617.
[7] HACHAJ T, OGIELA M R. Image processing and communications challenges 2[M]. Berlin:Springer Berlin Heidelberg, 2010:271-277.
[8] LEE Y. Distributed, ambient, and pervasive interactions[M].Berlin:Springer International Publishing, 2015.
[9] 楊必武,郭曉松.攝像機鏡頭非線性畸變校正方法綜述[J].中國圖象圖形學(xué)報,2005,10(3):269-274. YANG Biwu, GUO Xiaosong. Overview of nonlinear distortion correction of camera lens[J]. Journal of Image and Graphics,2005,10(3):269-274. (in Chinese)
[10] 李會軍,宋愛國.增強現(xiàn)實中的攝像機徑向畸變校正[J].傳感技術(shù)學(xué)報,2007,20(2):462-465. LI Huijun, SONG Aiguo. Correction method for camera radial distortion for augmented reality[J].Chinese Journal of Sensors and Actuators, 2007,20(2):462-465. (in Chinese)
[11] 劉艷,李騰飛.對張正友相機標定法的改進研究[J].光學(xué)技術(shù),2014(6):565-570. LIU Yan, LI Tengfei.Research of the improvement of Zhang’s camera calibration method [J].Optical Technique, 2014(6): 565-570. (in Chinese)
[12] MORé J J. The Levenberg-Marquardt algorithm: Implementation and theory[J]. Lecture Notes in Mathematics, 1978, 630:105-116.
Implementation of multiple markers augmented reality system based on FLARToolkit
FUWenxiu,ZHANGXinze
(School of Electronic and Information Engineering, Beijing Jiaotong University, Beijing 100044,China)
Aiming at the problem that the traditional augmented reality system takes a single mark to identify causing the poor efficiency of its development at PC, the emerging Flash based tracking class library FLARToolkit combined with 3D engine Papervision 3D is selected to realize a prototype of augmented reality system with multiple template identification,underlying code and system results attached.And the optical distortion is improved by the method of the board that made the camera calibration error reduce to 0.093,improving the stability of augmented reality system and providing a good foundation for further development at the same time.
augmentedreality;FLARToolkit;multiple markers;3D registration; optical distortion
2016-05-04
中央高?;究蒲袠I(yè)務(wù)費專項基金資助(2016YJS010)
付文秀(1962—),女,北京人,副教授,博士.研究方向為圖像處理.email:wxfu@bjtu.edu.cn.
TP391.41
B
1673-0291(2016)05-0016-07
10.11860/j.issn.1673-0291.2016.05.003