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