孟昭睿,孫金華
(廈門理工學(xué)院計算機(jī)與信息工程學(xué)院,福建 廈門361024)
基于快速響應(yīng)碼的移動增強(qiáng)現(xiàn)實系統(tǒng)的研究
孟昭睿,孫金華
(廈門理工學(xué)院計算機(jī)與信息工程學(xué)院,福建 廈門361024)
摘要:快速響應(yīng)碼QR(Quick Response Code)是一種信息隱藏量大且使用廣泛的編碼,通過使用QR碼代替?zhèn)鹘y(tǒng)的增強(qiáng)現(xiàn)實標(biāo)識,并使用基于滅點(diǎn)的空間校正算法實現(xiàn)對QR碼的傾斜校正,提出了一種改進(jìn)的基于QR碼的移動增強(qiáng)現(xiàn)實系統(tǒng).在此基礎(chǔ)上使用ARToolKit和ZXing開發(fā)了原型系統(tǒng),驗證了基于QR碼的移動增強(qiáng)現(xiàn)實系統(tǒng)的廣泛前景.
關(guān)鍵詞:增強(qiáng)現(xiàn)實;QR碼;滅點(diǎn);ARToolKit
近年來,增強(qiáng)現(xiàn)實方面的研究已經(jīng)取得了越來越多的進(jìn)展.智能手機(jī)已經(jīng)在世界各國成為主流,主流智能手機(jī)的硬件性能已經(jīng)得到了快速提升,包括CPU、分辨率、觸摸屏、照相機(jī)、重力感應(yīng)器和GPS等,文獻(xiàn)[1-4]研究基于智能手機(jī)的各種移動增強(qiáng)現(xiàn)實技術(shù),智能手機(jī)已經(jīng)成為了理想的移動增強(qiáng)現(xiàn)實應(yīng)用的平臺.
增強(qiáng)現(xiàn)實系統(tǒng)可以分為基于標(biāo)識的增強(qiáng)現(xiàn)實系統(tǒng)和基于自然特征的增強(qiáng)現(xiàn)實系.基于標(biāo)識的增強(qiáng)現(xiàn)實系統(tǒng)跟蹤注冊效果穩(wěn)定,但是需要在手機(jī)端預(yù)存標(biāo)識模板,不易處理海量標(biāo)識模板的識別.基于自然特征的跟蹤注冊技術(shù)是利用真實環(huán)境中的一些自然特征作為跟蹤參照物,在圖像中無需人工標(biāo)識,但是該技術(shù)也需要對識別的圖像進(jìn)行預(yù)處理并儲存預(yù)處理信息,計算量很大,精度比較低,實時度相對也比較低.
快速響應(yīng)(Quick Response,QR)碼是1994年由日本Denso公司研制的一種矩陣二維條碼,目前QR碼已經(jīng)在各行各業(yè)得到了廣泛應(yīng)用,但是以在QR碼中嵌入文本信息為主,如:URL、電子郵件和電話號碼等. QR碼無需在手機(jī)端預(yù)制模板,可以編碼107 089個,因此研究基于QR碼的增強(qiáng)現(xiàn)實系統(tǒng)是當(dāng)前的一個熱點(diǎn).文獻(xiàn)[6]研究利用光流進(jìn)行QR碼的跟蹤,這種方法計算量大,在手機(jī)端運(yùn)行速度較慢,目標(biāo)容易丟失.文獻(xiàn)[7]研究如何利用QR碼的內(nèi)嵌信息加載虛擬現(xiàn)實的內(nèi)容元數(shù)據(jù)和跟蹤注冊元數(shù)據(jù).文獻(xiàn)[8]研究的標(biāo)識碼在QR碼外側(cè)加上黑色邊框,跟蹤注冊效果穩(wěn)定,但是在QR碼傾斜角度較大時,QR碼的識別比較困難.
在普通的QR碼應(yīng)用中,QR碼必須無傾斜的放在照相機(jī)前.但是如果把QR碼作為增強(qiáng)現(xiàn)實的標(biāo)識,不能要求用戶按照指定的位置和方向放置QR碼,這樣由照相機(jī)拍攝的圖片必然會產(chǎn)生傾斜畸變,使QR碼不能被正確識別.迄今,研究者提出了許多不同的圖像傾斜校正方法,比如基于Hough變換、K-最近鄰簇和基于Fourier變換的等,上述方法比較適合校正對于傾斜角度較小或僅在平面內(nèi)發(fā)生旋轉(zhuǎn)傾斜的圖像,如果圖像的旋轉(zhuǎn)發(fā)生在三維空間內(nèi)且其投影是不規(guī)則四邊形時,上述方法不能對傾斜的圖像進(jìn)行有效識別.為解決此問題,本文探討QR碼識別流程中加入基于滅點(diǎn)的傾斜畸變校正算法,并將其應(yīng)用到移動增強(qiáng)現(xiàn)實系統(tǒng)中,取得了很好的效果.
系統(tǒng)的設(shè)計目標(biāo)是使用QR碼代替?zhèn)鹘y(tǒng)的標(biāo)識來實現(xiàn)移動增強(qiáng)現(xiàn)實.兩種實現(xiàn)方法的比較見表1.
QR碼普及率高,智能手機(jī)用戶對QR碼有非常高的認(rèn)可度,并且以QR碼作為增強(qiáng)現(xiàn)實的標(biāo)識碼不需要進(jìn)行圖像預(yù)處理,增強(qiáng)現(xiàn)實的相關(guān)信息可以直接從二維碼的內(nèi)嵌信息中讀出,并從互聯(lián)網(wǎng)上下載.基于QR碼的移動增強(qiáng)現(xiàn)實平臺有較好的應(yīng)用前景.
表1 QR碼和基準(zhǔn)點(diǎn)標(biāo)識比較
1.1系統(tǒng)架構(gòu)和優(yōu)勢
系統(tǒng)使用ARToolKit進(jìn)行QR碼的位置和模式識.通過ARToolKit可以得到QR碼的3個尋像圖形的位置,進(jìn)一步計算后可以得到QR碼的全部四個頂點(diǎn)位置,隨后使用滅點(diǎn)空間算法對QR碼進(jìn)行傾斜畸變校正.經(jīng)過校正后的QR碼可以使用開源QR碼圖像處理庫進(jìn)行內(nèi)嵌信息提取,3D模型可以通過QR碼內(nèi)嵌的網(wǎng)址從互聯(lián)網(wǎng)下載,隨后在QR碼上進(jìn)行增強(qiáng)現(xiàn)實內(nèi)容的顯示.系統(tǒng)的架構(gòu)見圖1.
圖1 系統(tǒng)架構(gòu)
1.2 QR碼的頂點(diǎn)定位
QR碼由包括編碼區(qū)域、尋像圖形、定位圖形、分隔符、和校正圖形在內(nèi)的功能圖形組成(見圖2).系統(tǒng)使用ARToolKit對QR碼的尋像圖形進(jìn)行識別,當(dāng)QR碼的3個尋像圖形同時出現(xiàn)在攝像頭的一幀內(nèi)時,系統(tǒng)開始定位QR碼的第4個頂點(diǎn).通過ARToolKit,可以得到3個尋像圖形之間的中心位置以及每個尋像圖形的4個頂點(diǎn).如果可以決定兩個對角線位置的尋像圖形的外頂點(diǎn)(見圖3(b)中的B1,B2圖中的D1和D4),則可以計算QR碼的第4個頂點(diǎn),詳細(xì)計算過程如下:
(1)識別兩個對角線位置的尋像圖形(圖3中的B和D).見圖3(a),3個尋像圖形組成了一個三角形,兩個對角線位置的尋像圖形構(gòu)成的邊長最長.可以通過計算三角形的邊長來推出尋像圖形A和尋像圖形B、D的位置.
(2)根據(jù)對角線尋像圖形B和D的坐標(biāo)定位QR碼圖形中點(diǎn)P0的坐標(biāo).
(3)確定頂點(diǎn)A1的坐標(biāo),見圖3(b).在尋像圖形A中,頂點(diǎn)A1到點(diǎn)P0的距離最長.
(4)確定頂點(diǎn)B2和D4的坐標(biāo),見圖3(c).首先分別計算尋像圖形B和D的四個頂點(diǎn)到頂點(diǎn)A1的距離,距離最長的點(diǎn)即是頂點(diǎn)B2和D4.
(5)確定頂點(diǎn)B1和D1的坐標(biāo).首先分別計算尋像圖形B和D的四個頂點(diǎn)到中點(diǎn)P0的距離,距離最長的點(diǎn)即是頂點(diǎn)B1和D1.
(6)直線B1B2和直線D1D4的交叉點(diǎn)即是QR碼的第4個頂點(diǎn).
圖2 QR碼的結(jié)構(gòu)圖
圖3 QR碼頂點(diǎn)定位過程
1.3基于滅點(diǎn)的空間校正算法
QR碼的4個頂點(diǎn)位置確定后,必須對QR碼進(jìn)行傾斜畸變校正.下面對系統(tǒng)使用的基于滅點(diǎn)的空間校正算法進(jìn)行解釋.
假設(shè)QR碼坐標(biāo)系上的一點(diǎn)的齊次坐標(biāo)為M=[xmymzm1]T,其在攝像平面上的投影坐標(biāo)點(diǎn)的齊次坐標(biāo)為C=[xcyczc1]T,由針孔成像可以得出:
上式中:s是一個比例因子;小孔透視模型P是一個3×4投影矩陣,它也可以表示成攝像機(jī)矩陣K和旋轉(zhuǎn)-平移矩陣(H,t)兩部分[11].
式中,a為畸變因子,f為焦距,(x0,y0)是主點(diǎn)的圖像坐標(biāo),r為縱橫比.相機(jī)光心在圖像平面的投影稱為主點(diǎn),可以由傳感器垂直軸與水平軸與之間的夾角θ算出畸變因子,a=f cos,圖像上垂直方向與水平方向之間的比例關(guān)系表示為縱橫比.隨著現(xiàn)代科技的快速發(fā)展,相機(jī)的很多內(nèi)部參數(shù)已經(jīng)同理想值非常接近,如圖像的中心可以近似為主點(diǎn)坐標(biāo),畸變因子a近似于0,縱橫比r可以近似為1.為了簡化相機(jī)模型,提高運(yùn)算速度,如果對精度要求不高時,可以使用這些理想值.
根據(jù)定理,滅點(diǎn)是空間一組平行線在影像上的直線影像的交點(diǎn).相機(jī)中心記為O,P是O在成像平面的投影,QR碼是正方形標(biāo)記,其投影是一個不規(guī)則四邊形abcd,分別形成兩個滅點(diǎn)Fu和Fv.(見圖4)根據(jù)透視幾何和三角幾何,相機(jī)焦距的計算公式可以表示為
其中P為主點(diǎn),O為相機(jī)光心,F(xiàn)u和Fv分別為兩個滅點(diǎn),是P在影滅線上的投影.
圖4 QR碼透視投影成像
因為QR碼是一個平面標(biāo)記,所以在世界坐標(biāo)系下QR碼物理平面的z軸坐標(biāo)等于零,由式(1)、(2)可以得到
式中,H是一個非奇異矩陣,因此QR碼真實幾何圖形可以從投影圖形中相差一個比例因子下恢復(fù).按照文獻(xiàn)[12],將矩陣H進(jìn)一步變換可得:
其中:Hp是仿射重建矩陣;He為度量重建矩陣;E是一個相似變換矩陣;可以通過穿過兩個滅點(diǎn)的影滅線L來計算仿射重建矩陣Hp中的l1和l2:
可以通過影滅線L和投影不變量絕對二次曲線w并利用下列公式計算得到度量重建矩陣:
其中,I是影滅線L和絕對二次曲線w的交點(diǎn),將式(7)代入式(8)可以得到:
式(9)的解是一對共軛復(fù)數(shù)根,其實部和虛部分別是α、β.然后將α、β代回式(5),可以解出轉(zhuǎn)換矩陣H,根據(jù)式(4)可以使用轉(zhuǎn)換矩陣H對QR標(biāo)記坐標(biāo)和攝像平面坐標(biāo)之間進(jìn)行相互轉(zhuǎn)換.因為經(jīng)過映射之后的圖像存在空格點(diǎn),空格點(diǎn)像素的灰度可以由雙線性插值算法根據(jù)空格點(diǎn)臨近點(diǎn)的灰度值來計算.
完成傾斜校正后,可以開始提取QR碼包含的信息.系統(tǒng)使用開源系統(tǒng)ZXing來提取QR碼的信息.
2.1初始化時間
在小米3手機(jī)上對系統(tǒng)進(jìn)行了測試,小米3的CPU采用Nvidia Tegra 4,主頻是1.8 GHZ,RAM容量是2 GB,操作系統(tǒng)采用安卓4.2.初始化時間包括二維碼采集、二維碼識別、二維碼傾斜矯正和增強(qiáng)現(xiàn)實素材下載,完成二維碼識別和處理大概需要1 600 ms(±100 ms)的時間,下載增強(qiáng)現(xiàn)實文件的時間根據(jù)文件大小變化,大約需要1 000 ms(±100 ms).圖5是初始化時間的組成分析.
圖5 初始化時間組成分析
2.2系統(tǒng)性能分析
使用普通的QR碼跟蹤方法需要同時獲取3個定位符號的信息,所以跟蹤角度比較小.本文采用了滅點(diǎn)空間算法對QR碼進(jìn)行傾斜畸變校正,跟蹤范圍大、距離遠(yuǎn).盡管進(jìn)行傾斜矯正需要一定的計算時間,但隨著智能手機(jī)的硬件配置進(jìn)一步增強(qiáng),對系統(tǒng)的性能影響不大.在表2中,沒有進(jìn)行傾斜矯正的方法采用了文獻(xiàn)[6]中的數(shù)據(jù).使用小米3和小米4同時對本文使用方法進(jìn)行了測試.實驗表明,使用滅點(diǎn)空間算法后系統(tǒng)的跟蹤角度大,并且可以滿足實時性的要求.同時,隨著智能手機(jī)硬件配置的提高,對傾斜二維碼的檢測速度和跟蹤速度都有了比較大的提高.
表2 兩種跟蹤方法的效果對比
利用本文提出的方法對30幅二維碼進(jìn)行了傾斜畸變矯正,二維碼的旋轉(zhuǎn)角度從到360.實驗表明,矯正率達(dá)到了90%以上,單幅圖像處理速度小于1.6 s(小米3).
2.3產(chǎn)品原型示例
為了驗證使用QR碼作為增強(qiáng)現(xiàn)實的標(biāo)識的可行性,開發(fā)了一個原型系統(tǒng).通過對QR碼的識別,可以將3D模型從互聯(lián)網(wǎng)下載之后顯示在QR碼上.QR碼可以嵌入比較多的信息,除了3D模型的URL外,還可以把其他的內(nèi)容信息或者跟蹤信息也嵌入在QR碼內(nèi),使原型系統(tǒng)的功能得到進(jìn)一步增強(qiáng).圖6(a)是原型系統(tǒng)在QR碼正面放置時的效果,圖6(b)是QR碼有一定的傾斜時的效果.
圖6 原型系統(tǒng)演示
采用QR碼替代傳統(tǒng)的增強(qiáng)現(xiàn)實標(biāo)識點(diǎn),分析了QR碼的頂點(diǎn)定位技術(shù),采用了基于滅點(diǎn)的空間校正算法,設(shè)計基于QR碼的移動增強(qiáng)現(xiàn)實系統(tǒng).目前,原型系統(tǒng)只支持虛擬物體的加載,下一步需要增加動畫和用戶交互等功能,以提高系統(tǒng)的可用性.隨著移動終端技術(shù)的不斷發(fā)展,增強(qiáng)現(xiàn)實技術(shù)在智能手機(jī)平臺的發(fā)展將成為主流.
參考文獻(xiàn):
[1]孫源,陳靖.智能手機(jī)的移動增強(qiáng)現(xiàn)實技術(shù)研究[J].計算機(jī)科學(xué),2012(6):493-498.
[2]Wagner D,Langlotz T,Schmal S D.Robust and unobtrusive marker tracking on mobile phones[C].IEEE International Symposium on Mixed and Augmented Reality,2008.
[3]Bruns E,Brombach B,Zeidler T.Enabling mobile phones to support large-scale museum guidance[J].Multimedia,IEEE,2007, 14(2):16-25.
[4]Billinghurst M,Hakkarinen M,Wodward C.Augmented assembly using a mobile phone[C].IEEE International Symposium on Mixed and Augmented Reality(ISMAR 2008).Cambridge,UK,Sep 2008:167-168.
[5]Daniel W,Gerhard R,Alessandro M,etc.Real-time detection and tracking for augmented reality on mobile phones[J].Ieee Transactions On Visualization And Computer Graphics,2010,16(3):355-368.
[6]Nohyoung P,Wonwoo L,Woontack W.Barcode-assisted planar object tracking method for mobile augmented reality[C],2011 International Symposium on Ubiquitous Virtual Reality,40-43
[7]Hyoseok Y,Nohyoung P,Wonwoo L,etc.QR code data representation for mobile augmented reality[C].International AR Standards Meeting-February,2011:17-19.
[8]翟亮亮,壬滔天,櫥健,等.基于ARcode的移動增強(qiáng)現(xiàn)實系統(tǒng)研究[J].計算機(jī)工程,2012(5):247-249.
[9]張民,鄭建立.基于符號特征的QR碼識別算法[J].計算機(jī)工程,2011(2):278-280.
[10]Wagner D,Schmal S D.ARToolKit on the pocket PC platform[C].IEEE International Augmented Reality Workshop.Tokyo,Japan: IEEE,2003.
[11]邱建橡,劉征梅 楊瑞元 基于滅點(diǎn)的單幅圖像建模[J].計算機(jī)工程,2005(11):199-201
[12]Daivd L,Antonio C,Andrew Z.Creating architectural models from images[C].Proc of EuroGraphic,1999:39-50.
(責(zé)任編輯:歐愷)
中圖分類號:TP391.9
文獻(xiàn)標(biāo)識碼:A
文章編號:1007-5348(2015)02-0019-06
[收稿日期]2014-11-06
[基金項目]福建省自然科學(xué)基金項目(2013J0102).
[作者簡介]孟昭睿(1975-),男,青海西寧人,廈門理工學(xué)院計算機(jī)與信息工程學(xué)院高級工程師,碩士;研究方向:增強(qiáng)現(xiàn)實,軟件工程與應(yīng)用.
Research on Mobile Augmented Reality System Based on QR Code
MENG Zhao-rui,SUN Jin-hua,WU Yun
(School of Computer and Information Engineering,Xiamen University of Technology, Xiamen 361024,Fujian,China)
Abstract:QR code is one kind of two-dimensional codes which can hide a large amount of information and has been widely used in our daily life.An augmented reality(AR)application based on the QR Code is presented, instead of traditional fiducial markers.Slant correction processing to the QR code recognition is added by using space rectification algorithm based on vanishing point.A product demo system is developed by ARTookKit and ZXing,which demonstrates broad application prospect of mobile augmented reality based on QR code.
Key words:augmented reality;QR code;vanishing point;ARToolKit