孟昭睿,孫金華
(廈門理工學(xué)院計(jì)算機(jī)與信息工程學(xué)院,福建 廈門361024)
基于快速響應(yīng)碼的移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的研究
孟昭睿,孫金華
(廈門理工學(xué)院計(jì)算機(jī)與信息工程學(xué)院,福建 廈門361024)
摘要:快速響應(yīng)碼QR(Quick Response Code)是一種信息隱藏量大且使用廣泛的編碼,通過使用QR碼代替?zhèn)鹘y(tǒng)的增強(qiáng)現(xiàn)實(shí)標(biāo)識(shí),并使用基于滅點(diǎn)的空間校正算法實(shí)現(xiàn)對(duì)QR碼的傾斜校正,提出了一種改進(jìn)的基于QR碼的移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng).在此基礎(chǔ)上使用ARToolKit和ZXing開發(fā)了原型系統(tǒng),驗(yàn)證了基于QR碼的移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)的廣泛前景.
關(guān)鍵詞:增強(qiáng)現(xiàn)實(shí);QR碼;滅點(diǎn);ARToolKit
近年來,增強(qiáng)現(xiàn)實(shí)方面的研究已經(jīng)取得了越來越多的進(jìn)展.智能手機(jī)已經(jīng)在世界各國成為主流,主流智能手機(jī)的硬件性能已經(jīng)得到了快速提升,包括CPU、分辨率、觸摸屏、照相機(jī)、重力感應(yīng)器和GPS等,文獻(xiàn)[1-4]研究基于智能手機(jī)的各種移動(dòng)增強(qiáng)現(xiàn)實(shí)技術(shù),智能手機(jī)已經(jīng)成為了理想的移動(dòng)增強(qiáng)現(xiàn)實(shí)應(yīng)用的平臺(tái).
增強(qiáng)現(xiàn)實(shí)系統(tǒng)可以分為基于標(biāo)識(shí)的增強(qiáng)現(xiàn)實(shí)系統(tǒng)和基于自然特征的增強(qiáng)現(xiàn)實(shí)系.基于標(biāo)識(shí)的增強(qiáng)現(xiàn)實(shí)系統(tǒng)跟蹤注冊(cè)效果穩(wěn)定,但是需要在手機(jī)端預(yù)存標(biāo)識(shí)模板,不易處理海量標(biāo)識(shí)模板的識(shí)別.基于自然特征的跟蹤注冊(cè)技術(shù)是利用真實(shí)環(huán)境中的一些自然特征作為跟蹤參照物,在圖像中無需人工標(biāo)識(shí),但是該技術(shù)也需要對(duì)識(shí)別的圖像進(jìn)行預(yù)處理并儲(chǔ)存預(yù)處理信息,計(jì)算量很大,精度比較低,實(shí)時(shí)度相對(duì)也比較低.
快速響應(yīng)(Quick Response,QR)碼是1994年由日本Denso公司研制的一種矩陣二維條碼,目前QR碼已經(jīng)在各行各業(yè)得到了廣泛應(yīng)用,但是以在QR碼中嵌入文本信息為主,如:URL、電子郵件和電話號(hào)碼等. QR碼無需在手機(jī)端預(yù)制模板,可以編碼107 089個(gè),因此研究基于QR碼的增強(qiáng)現(xiàn)實(shí)系統(tǒng)是當(dāng)前的一個(gè)熱點(diǎn).文獻(xiàn)[6]研究利用光流進(jìn)行QR碼的跟蹤,這種方法計(jì)算量大,在手機(jī)端運(yùn)行速度較慢,目標(biāo)容易丟失.文獻(xiàn)[7]研究如何利用QR碼的內(nèi)嵌信息加載虛擬現(xiàn)實(shí)的內(nèi)容元數(shù)據(jù)和跟蹤注冊(cè)元數(shù)據(jù).文獻(xiàn)[8]研究的標(biāo)識(shí)碼在QR碼外側(cè)加上黑色邊框,跟蹤注冊(cè)效果穩(wěn)定,但是在QR碼傾斜角度較大時(shí),QR碼的識(shí)別比較困難.
在普通的QR碼應(yīng)用中,QR碼必須無傾斜的放在照相機(jī)前.但是如果把QR碼作為增強(qiáng)現(xiàn)實(shí)的標(biāo)識(shí),不能要求用戶按照指定的位置和方向放置QR碼,這樣由照相機(jī)拍攝的圖片必然會(huì)產(chǎn)生傾斜畸變,使QR碼不能被正確識(shí)別.迄今,研究者提出了許多不同的圖像傾斜校正方法,比如基于Hough變換、K-最近鄰簇和基于Fourier變換的等,上述方法比較適合校正對(duì)于傾斜角度較小或僅在平面內(nèi)發(fā)生旋轉(zhuǎn)傾斜的圖像,如果圖像的旋轉(zhuǎn)發(fā)生在三維空間內(nèi)且其投影是不規(guī)則四邊形時(shí),上述方法不能對(duì)傾斜的圖像進(jìn)行有效識(shí)別.為解決此問題,本文探討QR碼識(shí)別流程中加入基于滅點(diǎn)的傾斜畸變校正算法,并將其應(yīng)用到移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)中,取得了很好的效果.
系統(tǒng)的設(shè)計(jì)目標(biāo)是使用QR碼代替?zhèn)鹘y(tǒng)的標(biāo)識(shí)來實(shí)現(xiàn)移動(dòng)增強(qiáng)現(xiàn)實(shí).兩種實(shí)現(xiàn)方法的比較見表1.
QR碼普及率高,智能手機(jī)用戶對(duì)QR碼有非常高的認(rèn)可度,并且以QR碼作為增強(qiáng)現(xiàn)實(shí)的標(biāo)識(shí)碼不需要進(jìn)行圖像預(yù)處理,增強(qiáng)現(xiàn)實(shí)的相關(guān)信息可以直接從二維碼的內(nèi)嵌信息中讀出,并從互聯(lián)網(wǎng)上下載.基于QR碼的移動(dòng)增強(qiáng)現(xiàn)實(shí)平臺(tái)有較好的應(yīng)用前景.
表1 QR碼和基準(zhǔn)點(diǎn)標(biāo)識(shí)比較
1.1系統(tǒng)架構(gòu)和優(yōu)勢(shì)
系統(tǒng)使用ARToolKit進(jìn)行QR碼的位置和模式識(shí).通過ARToolKit可以得到QR碼的3個(gè)尋像圖形的位置,進(jìn)一步計(jì)算后可以得到QR碼的全部四個(gè)頂點(diǎn)位置,隨后使用滅點(diǎn)空間算法對(duì)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)實(shí)內(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對(duì)QR碼的尋像圖形進(jìn)行識(shí)別,當(dāng)QR碼的3個(gè)尋像圖形同時(shí)出現(xiàn)在攝像頭的一幀內(nèi)時(shí),系統(tǒng)開始定位QR碼的第4個(gè)頂點(diǎn).通過ARToolKit,可以得到3個(gè)尋像圖形之間的中心位置以及每個(gè)尋像圖形的4個(gè)頂點(diǎn).如果可以決定兩個(gè)對(duì)角線位置的尋像圖形的外頂點(diǎn)(見圖3(b)中的B1,B2圖中的D1和D4),則可以計(jì)算QR碼的第4個(gè)頂點(diǎn),詳細(xì)計(jì)算過程如下:
(1)識(shí)別兩個(gè)對(duì)角線位置的尋像圖形(圖3中的B和D).見圖3(a),3個(gè)尋像圖形組成了一個(gè)三角形,兩個(gè)對(duì)角線位置的尋像圖形構(gòu)成的邊長(zhǎng)最長(zhǎng).可以通過計(jì)算三角形的邊長(zhǎng)來推出尋像圖形A和尋像圖形B、D的位置.
(2)根據(jù)對(duì)角線尋像圖形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的距離最長(zhǎng).
(4)確定頂點(diǎn)B2和D4的坐標(biāo),見圖3(c).首先分別計(jì)算尋像圖形B和D的四個(gè)頂點(diǎn)到頂點(diǎn)A1的距離,距離最長(zhǎng)的點(diǎn)即是頂點(diǎn)B2和D4.
(5)確定頂點(diǎn)B1和D1的坐標(biāo).首先分別計(jì)算尋像圖形B和D的四個(gè)頂點(diǎn)到中點(diǎn)P0的距離,距離最長(zhǎng)的點(diǎn)即是頂點(diǎn)B1和D1.
(6)直線B1B2和直線D1D4的交叉點(diǎn)即是QR碼的第4個(gè)頂點(diǎn).
圖2 QR碼的結(jié)構(gòu)圖
圖3 QR碼頂點(diǎn)定位過程
1.3基于滅點(diǎn)的空間校正算法
QR碼的4個(gè)頂點(diǎn)位置確定后,必須對(duì)QR碼進(jìn)行傾斜畸變校正.下面對(duì)系統(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是一個(gè)比例因子;小孔透視模型P是一個(gè)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.為了簡(jiǎn)化相機(jī)模型,提高運(yùn)算速度,如果對(duì)精度要求不高時(shí),可以使用這些理想值.
根據(jù)定理,滅點(diǎn)是空間一組平行線在影像上的直線影像的交點(diǎn).相機(jī)中心記為O,P是O在成像平面的投影,QR碼是正方形標(biāo)記,其投影是一個(gè)不規(guī)則四邊形abcd,分別形成兩個(gè)滅點(diǎn)Fu和Fv.(見圖4)根據(jù)透視幾何和三角幾何,相機(jī)焦距的計(jì)算公式可以表示為
其中P為主點(diǎn),O為相機(jī)光心,F(xiàn)u和Fv分別為兩個(gè)滅點(diǎn),是P在影滅線上的投影.
圖4 QR碼透視投影成像
因?yàn)镼R碼是一個(gè)平面標(biāo)記,所以在世界坐標(biāo)系下QR碼物理平面的z軸坐標(biāo)等于零,由式(1)、(2)可以得到
式中,H是一個(gè)非奇異矩陣,因此QR碼真實(shí)幾何圖形可以從投影圖形中相差一個(gè)比例因子下恢復(fù).按照文獻(xiàn)[12],將矩陣H進(jìn)一步變換可得:
其中:Hp是仿射重建矩陣;He為度量重建矩陣;E是一個(gè)相似變換矩陣;可以通過穿過兩個(gè)滅點(diǎn)的影滅線L來計(jì)算仿射重建矩陣Hp中的l1和l2:
可以通過影滅線L和投影不變量絕對(duì)二次曲線w并利用下列公式計(jì)算得到度量重建矩陣:
其中,I是影滅線L和絕對(duì)二次曲線w的交點(diǎn),將式(7)代入式(8)可以得到:
式(9)的解是一對(duì)共軛復(fù)數(shù)根,其實(shí)部和虛部分別是α、β.然后將α、β代回式(5),可以解出轉(zhuǎn)換矩陣H,根據(jù)式(4)可以使用轉(zhuǎn)換矩陣H對(duì)QR標(biāo)記坐標(biāo)和攝像平面坐標(biāo)之間進(jìn)行相互轉(zhuǎn)換.因?yàn)榻?jīng)過映射之后的圖像存在空格點(diǎn),空格點(diǎn)像素的灰度可以由雙線性插值算法根據(jù)空格點(diǎn)臨近點(diǎn)的灰度值來計(jì)算.
完成傾斜校正后,可以開始提取QR碼包含的信息.系統(tǒng)使用開源系統(tǒng)ZXing來提取QR碼的信息.
2.1初始化時(shí)間
在小米3手機(jī)上對(duì)系統(tǒng)進(jìn)行了測(cè)試,小米3的CPU采用Nvidia Tegra 4,主頻是1.8 GHZ,RAM容量是2 GB,操作系統(tǒng)采用安卓4.2.初始化時(shí)間包括二維碼采集、二維碼識(shí)別、二維碼傾斜矯正和增強(qiáng)現(xiàn)實(shí)素材下載,完成二維碼識(shí)別和處理大概需要1 600 ms(±100 ms)的時(shí)間,下載增強(qiáng)現(xiàn)實(shí)文件的時(shí)間根據(jù)文件大小變化,大約需要1 000 ms(±100 ms).圖5是初始化時(shí)間的組成分析.
圖5 初始化時(shí)間組成分析
2.2系統(tǒng)性能分析
使用普通的QR碼跟蹤方法需要同時(shí)獲取3個(gè)定位符號(hào)的信息,所以跟蹤角度比較小.本文采用了滅點(diǎn)空間算法對(duì)QR碼進(jìn)行傾斜畸變校正,跟蹤范圍大、距離遠(yuǎn).盡管進(jìn)行傾斜矯正需要一定的計(jì)算時(shí)間,但隨著智能手機(jī)的硬件配置進(jìn)一步增強(qiáng),對(duì)系統(tǒng)的性能影響不大.在表2中,沒有進(jìn)行傾斜矯正的方法采用了文獻(xiàn)[6]中的數(shù)據(jù).使用小米3和小米4同時(shí)對(duì)本文使用方法進(jìn)行了測(cè)試.實(shí)驗(yàn)表明,使用滅點(diǎn)空間算法后系統(tǒng)的跟蹤角度大,并且可以滿足實(shí)時(shí)性的要求.同時(shí),隨著智能手機(jī)硬件配置的提高,對(duì)傾斜二維碼的檢測(cè)速度和跟蹤速度都有了比較大的提高.
表2 兩種跟蹤方法的效果對(duì)比
利用本文提出的方法對(duì)30幅二維碼進(jìn)行了傾斜畸變矯正,二維碼的旋轉(zhuǎn)角度從到360.實(shí)驗(yàn)表明,矯正率達(dá)到了90%以上,單幅圖像處理速度小于1.6 s(小米3).
2.3產(chǎn)品原型示例
為了驗(yàn)證使用QR碼作為增強(qiáng)現(xiàn)實(shí)的標(biāo)識(shí)的可行性,開發(fā)了一個(gè)原型系統(tǒng).通過對(duì)QR碼的識(shí)別,可以將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碼正面放置時(shí)的效果,圖6(b)是QR碼有一定的傾斜時(shí)的效果.
圖6 原型系統(tǒng)演示
采用QR碼替代傳統(tǒng)的增強(qiáng)現(xiàn)實(shí)標(biāo)識(shí)點(diǎn),分析了QR碼的頂點(diǎn)定位技術(shù),采用了基于滅點(diǎn)的空間校正算法,設(shè)計(jì)基于QR碼的移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng).目前,原型系統(tǒng)只支持虛擬物體的加載,下一步需要增加動(dòng)畫和用戶交互等功能,以提高系統(tǒng)的可用性.隨著移動(dòng)終端技術(shù)的不斷發(fā)展,增強(qiáng)現(xiàn)實(shí)技術(shù)在智能手機(jī)平臺(tái)的發(fā)展將成為主流.
參考文獻(xiàn):
[1]孫源,陳靖.智能手機(jī)的移動(dòng)增強(qiáng)現(xiàn)實(shí)技術(shù)研究[J].計(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的移動(dòng)增強(qiáng)現(xiàn)實(shí)系統(tǒng)研究[J].計(jì)算機(jī)工程,2012(5):247-249.
[9]張民,鄭建立.基于符號(hào)特征的QR碼識(shí)別算法[J].計(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ì)算機(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é)任編輯:歐愷)
中圖分類號(hào):TP391.9
文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1007-5348(2015)02-0019-06
[收稿日期]2014-11-06
[基金項(xiàng)目]福建省自然科學(xué)基金項(xiàng)目(2013J0102).
[作者簡(jiǎn)介]孟昭睿(1975-),男,青海西寧人,廈門理工學(xué)院計(jì)算機(jī)與信息工程學(xué)院高級(jí)工程師,碩士;研究方向:增強(qiáng)現(xiàn)實(shí),軟件工程與應(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