蘇澤蔭,林志賢,,郭太良
?。ǜV荽髮W(xué) 物理與信息工程學(xué)院,福建 福州 350108)
摘要:針對移動設(shè)備弱處理能力和低內(nèi)存等局限性,導(dǎo)致增強(qiáng)現(xiàn)實技術(shù)不能在移動設(shè)備上普及,,提出一種新的增強(qiáng)現(xiàn)實技術(shù)方案,。采用SURF算法提取視頻幀圖像的特征點,接著使用FREAK算法進(jìn)行特征點描述,;在漢明距離強(qiáng)制匹配之后,,采用改進(jìn)的RANSAC算法剔除了誤匹配點,然后通過計算比較匹配特征點占樣本圖像特征點的比重,,判斷是否成功匹配目標(biāo)物體,;最后渲染對應(yīng)的三維模型完成增強(qiáng)現(xiàn)實三維注冊。通過在Android移動設(shè)備上的驗證,,結(jié)果表明該技術(shù)方案滿足移動設(shè)備對實時性,、準(zhǔn)確性和魯棒性的要求,為移動增強(qiáng)現(xiàn)實的推廣奠定了良好的基礎(chǔ),。
關(guān)鍵詞:增強(qiáng)現(xiàn)實,;SURF;FREAK,;漢明距離,;RANSAC;三維注冊
中圖分類號:TP391.4文獻(xiàn)標(biāo)識碼:ADOI: 10.19358/j.issn.1674-7720.2017.09.004
引用格式:蘇澤蔭,,林志賢,,郭太良.基于Android移動設(shè)備的增強(qiáng)現(xiàn)實技術(shù)研究[J].微型機(jī)與應(yīng)用,2017,36(9):11-14.
0引言
*基金項目: 國家重點研發(fā)計劃課題(2016YFB0401503);廣東省科技重大專項(2016B090906001);福建省科技重大專項(2014HZ00031);福建省資助省屬高校專項課題(JK2014002)
隨著智能移動終端的不斷普及,,以及硬件配置的不斷提升,,增強(qiáng)現(xiàn)實技術(shù)[12]在移動設(shè)備的研究與開發(fā)已成為當(dāng)今的熱點。增強(qiáng)現(xiàn)實技術(shù)在移動手持設(shè)備上的應(yīng)用又稱為移動增強(qiáng)現(xiàn)實(Mobile Augmented Reality,MAR)[3-4],。但由于增強(qiáng)現(xiàn)實中的關(guān)鍵技術(shù)——三維注冊[57],,需要大量的運算和內(nèi)存,因此本文根據(jù)移動設(shè)備的實際情況,,對三維注冊算法進(jìn)行改進(jìn),,研究設(shè)計出一個通用可移植的增強(qiáng)現(xiàn)實系統(tǒng)方案并實際測試驗證。
在實際使用智能移動設(shè)備進(jìn)行增強(qiáng)現(xiàn)實的三維注冊時,,由于待識別的物體存在尺度和旋轉(zhuǎn)變換,以及周圍環(huán)境如光照等干擾,,這就要求三維注冊算法要具有良好的魯棒性,,而實時性和準(zhǔn)確性大大影響了用戶體驗,因此,,在移動設(shè)備上開發(fā)三維注冊算法需要滿足實時性,、準(zhǔn)確性和魯棒性要求。
1系統(tǒng)整體框架設(shè)計
Android移動設(shè)備調(diào)用系統(tǒng)內(nèi)置的Camera API 接口,調(diào)用 Android 移動設(shè)備的攝像頭,,對攝像頭所拍攝場景的圖像進(jìn)行采集和存儲,,再對圖像進(jìn)行圖像預(yù)處理;然后采用SURF[8]算法進(jìn)行特征點檢測,,并用FREAK[9]算法進(jìn)行特征描述,,然后采用漢明距離與目標(biāo)樣本庫進(jìn)行初步匹配,最后采用改進(jìn)的RANSAC進(jìn)行匹配優(yōu)化,。根據(jù)匹配率確定視頻圖像幀中是否有目標(biāo)物體[10],,如果有則采用OpenGL ES對攝像頭視野進(jìn)行虛擬三維場景的渲染和疊加,完成三維注冊,。圖1是系統(tǒng)方案設(shè)計框圖,。
2三維注冊算法方案設(shè)計
三維注冊是實現(xiàn)移動增強(qiáng)現(xiàn)實的關(guān)鍵技術(shù),它通過在攝像頭視野中對目標(biāo)圖片進(jìn)行分析匹配,,根據(jù)投影幾何的相關(guān)知識,,準(zhǔn)確計算出攝像頭在真實世界的姿態(tài)信息,從而實現(xiàn)三維虛擬模型的準(zhǔn)確添加,。傳統(tǒng)的三維注冊技術(shù)是基于人工標(biāo)志的,,容易受光照變化、遮擋情況的影響,,而且制作麻煩,,應(yīng)用場景有限,不適合推廣使用,,因此本文采用基于自然特征的三維注冊技術(shù),。
SURB是常見的用于自然特征三維注冊技術(shù)的算法,由于其采用盒式濾波器與原圖像卷積的計算方式,,只需要幾次加減法運算,,而且運算量與盒子濾波器大小無關(guān),所以能夠快速地構(gòu)造出SURF的尺度金字塔,,與SIFT算法[11]相比,,速度有了較大提升,同時也具有尺度不變的特性,,對光照變化,、仿射、透視變化也具有較強(qiáng)的魯棒性,。但SURF算法特征描述向量是高維向量,,而且采用最近鄰搜索算法窮盡搜索,計算量較大,,導(dǎo)致SURF 算法在構(gòu)建局部特征描述符與特征匹配階段耗時過長,,難以滿足移動設(shè)備對實時性的要求,。因此本文采用二進(jìn)制描述符算法FREAK作為描述符算法來改進(jìn)SURF的不足。該方法模仿視網(wǎng)膜結(jié)構(gòu)的采樣模板對特征點進(jìn)行描述符構(gòu)造,,對旋轉(zhuǎn),、噪聲、尺度都具有很好的性能,。這類算法采用不同的采樣模式生成二進(jìn)制描述符,,降低了描述符的維度,依靠計算特征描述符的漢明距離進(jìn)行匹配,,使運算速度和內(nèi)存占用方面都得到了很好的改善,。
結(jié)合上述分析和文獻(xiàn)[12]對各個特征點提取與匹配的算法進(jìn)行實際測試,本文采用算法如下:采用SURF算法進(jìn)行特征提取,,然后用FREAK算法進(jìn)行特征描述,,在漢明距離的基礎(chǔ)上結(jié)合改進(jìn)的RANSAC算法對初步篩選的點去偽,獲得較為精準(zhǔn)的匹配點對,再通過判斷匹配特征點占樣本圖像特征點的比重,確定是否成功匹配目標(biāo)物體,,保證了識別的準(zhǔn)確性,然后渲染對應(yīng)的虛擬三維模型,,完成三維注冊。
2.1SURF特征點檢測
SURF算法的特征點檢測是基于尺度空間理論的,。為了在尺度空間中檢測極值點,,SURF算法建立具有多尺度空間的圖像金字塔;利用尺度逐漸遞增的盒式濾波器與原圖像卷積創(chuàng)建圖像金字塔生成多尺度空間,。首先,,使用積分圖像加速圖像卷積來提高計算速度;再通過計算圖像中的每一個像素點的Hessian矩陣行列式得到特征點的值,。在實際計算中,,采用盒式濾波器來近似高斯濾波的方法,可極大地提高計算速度,。為使特征點具有尺度不變性, 首先去掉行列式值低的像素, 然后進(jìn)行尺度空間和鄰域空間的非極大值抑制, 最后所得的極值點即為特征點,。
2.2FREAK特征描述
FREAK是受人類視網(wǎng)膜啟發(fā)的一種能唯一識別關(guān)鍵點的穩(wěn)健描述子,在計算過程中耗費更少的計算時間和存儲空間,。FREAK采用圓形的視網(wǎng)膜采樣網(wǎng)格,,這樣能夠在保證人眼信息識別量的基礎(chǔ)上,減少信息的運算量,。不同于BRISK和ORB對所有點只用相同的核,,F(xiàn)REAK對每個點使用的核是不同的,高斯核的半徑與σ值成比例,。FREAK按照ORB的方法,,通過最大化對間方差來識別采樣點對,然后取不相關(guān)的點對,,以便為每個關(guān)鍵點提供最大值信息,。為了找出采樣點對,以產(chǎn)生位向量,,F(xiàn)REAK采用類似ORB的方法,,但并不是匹配每一點對,而是學(xué)習(xí)哪些點對能得到最好的結(jié)果,。算法如下:
?。?)用接近50 000個提取出的關(guān)鍵點構(gòu)造矩陣D,每一行對應(yīng)一個關(guān)鍵點,,每個關(guān)鍵點以一種從視網(wǎng)膜采樣模式獲取的所有可能的點對構(gòu)成巨大的描述符表示,。使用了43個感受野,產(chǎn)生大約1 000個點對,。
?。?)計算每一列的均值。均值為0.5時產(chǎn)生最大的方差,。
?。?)按照方差降序?qū)α信判颉?/p>
(4)選出最佳列并迭代地加上剩余列,,以使它們與選中列之間為弱相關(guān)[13],。
在這種方法中,選擇在靠外區(qū)域中比較采樣點的對,,最后選擇在模式內(nèi)部區(qū)域比較點的對,。這與視網(wǎng)膜首先試圖定位目標(biāo),然后再通過精確匹配密集分布在目標(biāo)周圍的點來辨識的原理相似,。
FREAK模仿視網(wǎng)膜的跳視搜索功能,,搜索描述子的前16個代表粗略信息的字節(jié),如果距離小于閾值,,將繼續(xù)搜索之后的字節(jié),,獲取更精細(xì)的結(jié)果。因此,,執(zhí)行一種級聯(lián)的比較,,會進(jìn)一步加快比較的步驟,因為在前16 B比較中超過90%采樣點被舍棄掉了,。
為了估計特征點的主方向,,F(xiàn)REAK的方向分配方法與BRISK 相似,通過選擇感受野對來總結(jié)估計局部梯度值,,且主要選擇相對于中心對稱的感受野對,。將此處的梯度值作為特征點的主方向,。
2.3特征點匹配
利用漢明距離將檢測到的特征點與基準(zhǔn)圖像進(jìn)行特征點匹配,完成匹配過程。在匹配過程中,,不可避免地存在誤匹配點,,因此需要對已匹配的特征點采用改進(jìn)的RANSAC一致性檢驗算法進(jìn)行篩選,剔除誤匹配點,。傳統(tǒng)的RANSAC算法由于迭代次數(shù)多,,運算量非常大,不能滿足實時性要求,。因此,,本文采用RANSAC改進(jìn)算法:利用結(jié)構(gòu)相似的尺寸相似和位序相似兩種約束來剔除大量誤匹配點,得到新的匹配點集,,作為RANSAC算法的輸入,,求出變換矩陣。改進(jìn)的RANSAC算法不僅提高了匹配速度,,而且還提高了匹配精度[14],。
2.4識別目標(biāo)的確定
當(dāng)視頻幀圖像進(jìn)行描述符匹配后,計算并判斷匹配點數(shù)目占樣本圖像匹配點數(shù)的比重是否大于事先設(shè)定的閾值,,以此來確定是否成功匹配到目標(biāo)物體,。
2.5虛擬三維物體的渲染
根據(jù)識別匹配結(jié)果加載對應(yīng)的三維物體數(shù)據(jù), 完成攝像頭位姿的估算并利用 OpenGL ES 圖形庫在場景相應(yīng)位置生成其相對應(yīng)的三維虛擬物體,, 將虛擬三維物體疊加到攝像頭視野中,。
3Android平臺增強(qiáng)現(xiàn)實技術(shù)的實現(xiàn)
由于Android應(yīng)用主要是用Java語言開發(fā),執(zhí)行效率比較低,,因此,,本文算法的實現(xiàn)采用OpenCV圖像處理庫加上Android NDK開發(fā)工具,進(jìn)行算法的C,、C++語言開發(fā),,大大提高了運行效率。
Android移動設(shè)備調(diào)用攝像頭獲取視頻幀圖像,,并進(jìn)行圖像預(yù)處理,,然后進(jìn)行識別和匹配,如果有目標(biāo)物體,,則采用OpenGL ES進(jìn)行三維模型渲染,。
整個Android應(yīng)用是在Eclipse開發(fā)工具上進(jìn)行模塊整合和界面的開發(fā)。最后生成APK文件安裝在手機(jī)上即可實現(xiàn)增強(qiáng)現(xiàn)實功能的開發(fā),。
4增強(qiáng)現(xiàn)實技術(shù)方案驗證
為了驗證本文所述算法實際運行的效果,,專門開發(fā)了在Andriod手機(jī)運行的應(yīng)用程序。將算法移植到Andriod手機(jī)上運行,。用于測試的手機(jī)是華為榮耀8,,搭載的Android系統(tǒng)的API版本為6.0.0,,開發(fā)工具采用Eclipse,采用NDK工具版本為r10e,,OpenCV函數(shù)庫版本為3.1.0,。
4.1實時性驗證
為了有更好的用戶體驗,,移動設(shè)備的實時性除了滿足耗時操作不能超過5 s的基本要求外,,還應(yīng)盡量縮短用戶等待時間,一般1 s以內(nèi)能獲得比較好的用戶體驗,。本文在驗證實時性時,,首先對同一個物體,將幾種常見的算法在Android手機(jī)上的運行效果進(jìn)行對比,,運行結(jié)果如圖2中的(a)~(e)所示,,對應(yīng)時間如表1所示。結(jié)果證明本文算法完成匹配時間為100 ms,,耗時最短,,滿足移動設(shè)備對實時性的要求。
4.2魯棒性驗證
為了驗證本文算法的穩(wěn)定性及魯棒性,,將算法在 Android 手機(jī)上實現(xiàn),,在不同視角、不同旋轉(zhuǎn)角度,、不同尺度,、部分遮擋的情況下進(jìn)行測試,結(jié)果如圖3所示,。測試結(jié)果證明:本文算法在各種情況下均可以正確識別物體并渲染3D模型,。
4.3準(zhǔn)確性驗證
為了驗證本文算法的準(zhǔn)確性,將算法在Android手機(jī)上實現(xiàn),,用不同的物體進(jìn)行測試,,結(jié)果如圖4所示。結(jié)果證明只有在正確的物體出現(xiàn)在攝像頭視野中才會渲染3D模型,。為了進(jìn)一步驗證準(zhǔn)確性,,在開發(fā)Android應(yīng)用程序時,添加本地數(shù)據(jù)庫,,增加樣本數(shù)量,,對20種不同的書籍、圖片進(jìn)行識別,,結(jié)果證明,,本文算法基本上都能夠識別出來,準(zhǔn)確率達(dá)95%,,滿足移動設(shè)備的準(zhǔn)確性要求,。
5結(jié)論
本文針對Android移動設(shè)備的局限性,,提出一種新的三維注冊算法:使用SURF檢測具有尺度不變性的特征點,然后使用FREAK特征點描述子得到二進(jìn)制描述子,;在漢明距離的基礎(chǔ)上結(jié)合改進(jìn)的RANSAC算法剔除了誤匹配點,,再通過判斷匹配特征點占樣本圖像的比重來確定是否成功匹配目標(biāo)物體,進(jìn)一步保證了識別的準(zhǔn)確性,。通過在Android移動設(shè)備的驗證結(jié)果表明,,此算法方案設(shè)計滿足移動設(shè)備的實時性、準(zhǔn)確性和魯棒性要求,。因此,,本文提出的三維注冊算法方案有很強(qiáng)的實用性,為移動增強(qiáng)現(xiàn)實的實現(xiàn)奠定了良好的基礎(chǔ),。本文算法的不足之處在于:所用的目標(biāo)識別方法僅限于樣本庫比較少的情況,,之后還應(yīng)加上服務(wù)器端[15],在服務(wù)器端可以建立龐大的樣本庫,,將大大增加可識別的物體數(shù)量,。
參考文獻(xiàn)
[1] 王涌天,, 陳靖,, 程德文. 增強(qiáng)現(xiàn)實技術(shù)導(dǎo)論[M]. 北京:科學(xué)出版社,2015.
?。?] 基珀,, 蘭博拉. 增強(qiáng)現(xiàn)實技術(shù)導(dǎo)論[M]. 北京: 國防工業(yè)出版社, 2014.
[3] GRAVDAL E.Augmented reality and object tracking for mobile devices[D]. Norway:Norwegian University,2012.
?。?] AVILA L, BAILEY M.Augment your reality[J].Computer Graphics and Applications, IEEE,2016,36(1):6-7.
?。?] 郭樹濤. 一種新的增強(qiáng)現(xiàn)實三維注冊算法[J]. 信息通信, 2014 ,27(1): 4244.
[6] 施琦,王涌天,陳靖.一種基于視覺的增強(qiáng)現(xiàn)實三維注冊算法[J].中國圖象圖形學(xué)報,2002, 7(7): 56-60.
?。?] AZUMA R T. A survey of augmented reality[J]. Teleoperators and Virtual Environments, 1997,6(4):355-385.
?。?] BAY H, TUYTELAARS T, GOOL L V. SURF: speeded up robust features[J]. Computer Vision and Image Understanding, 2006, 110(3):346-359.
[9] 謝紅,,王石川,,解武.基于改進(jìn)的FREAK算法的圖像特征點匹配[J]. 應(yīng)用科技, 2016,43(4):17.
[10] 惠記莊, 羅麗, 楊永奎,等. 基于SURFBRISK的目標(biāo)識別匹配與定位方法研究[J]. 長安大學(xué)學(xué)報:自然科學(xué)版, 2016, 36(3):93101.
?。?1] 楊天天,魯云萍,張為華,等.一種基于GPGPU的SIFT加速算法[J].電子技術(shù)應(yīng)用,2015,41(1):149-152 .
?。?2] BEKELE D, TEUTSCH M, SCHUCHERT T. Evaluation of binary keypoint descriptors[C]. IEEE International Conference on Image Processing. IEEE,2013:36523656.
[13] 李晶皎,,趙 越,,王愛俠,等. 基于改進(jìn)FREAK的增強(qiáng)現(xiàn)實實時注冊算法[J].小型微型計算機(jī)系統(tǒng),2016, 37(1):173-177.
[14] 許可可, 朱文球, 郭富祿. 基于結(jié)構(gòu)相似的RANSAC改進(jìn)算法[J]. 計算機(jī)工程與應(yīng)用, 2016, 52(12).168-171.
?。?5] 王飛,許魁,徐友云,,等.大數(shù)據(jù)無線通信面臨的幾點挑戰(zhàn)與對策[J].電子技術(shù)應(yīng)用,2015,41(3):12-16.