基於Android移動設備的增強現實技術研究

虛擬現實 圖像處理 陳靖 OpenGL 電子技術應用 2017-06-08

蘇澤蔭,林志賢,郭太良

(福州大學 物理與信息工程學院,福建 福州 350108)

:針對移動設備弱處理能力和低內存等侷限性,導致增強現實技術不能在移動設備上普及,提出一種新的增強現實技術方案。採用SURF算法提取視頻幀圖像的特徵點,接著使用FREAK算法進行特徵點描述;在漢明距離強制匹配之後,採用改進的RANSAC算法剔除了誤匹配點,然後通過計算比較匹配特徵點佔樣本圖像特徵點的比重,判斷是否成功匹配目標物體;最後渲染對應的三維模型完成增強現實三維註冊。通過在Android移動設備上的驗證,結果表明該技術方案滿足移動設備對實時性、準確性和魯棒性的要求,為移動增強現實的推廣奠定了良好的基礎。

:增強現實;SURF;FREAK;漢明距離;RANSAC;三維註冊

:TP391.4文獻標識碼:ADOI: 10.19358/j.issn.1674-7720.2017.09.004

引用格式:蘇澤蔭,林志賢,郭太良.基於Android移動設備的增強現實技術研究[J].微型機與應用,2017,36(9):11-14.

0引言

*基金項目: 國家重點研發計劃課題(2016YFB0401503);廣東省科技重大專項(2016B090906001);福建省科技重大專項(2014HZ00031);福建省資助省屬高校專項課題(JK2014002)

隨著智能移動終端的不斷普及,以及硬件配置的不斷提升,增強現實技術[12]在移動設備的研究與開發已成為當今的熱點。增強現實技術在移動手持設備上的應用又稱為移動增強現實(Mobile Augmented Reality,MAR)[3-4]。但由於增強現實中的關鍵技術——三維註冊[57],需要大量的運算和內存,因此本文根據移動設備的實際情況,對三維註冊算法進行改進,研究設計出一個通用可移植的增強現實系統方案並實際測試驗證。

在實際使用智能移動設備進行增強現實的三維註冊時,由於待識別的物體存在尺度和旋轉變換,以及周圍環境如光照等干擾,這就要求三維註冊算法要具有良好的魯棒性,而實時性和準確性大大影響了用戶體驗,因此,在移動設備上開發三維註冊算法需要滿足實時性、準確性和魯棒性要求。

1系統整體框架設計

Android移動設備調用系統內置的Camera API 接口,調用 Android 移動設備的攝像頭,對攝像頭所拍攝場景的圖像進行採集和存儲,再對圖像進行圖像預處理;然後採用SURF[8]算法進行特徵點檢測,並用FREAK[9]算法進行特徵描述,然後採用漢明距離與目標樣本庫進行初步匹配,最後採用改進的RANSAC進行匹配優化。根據匹配率確定視頻圖像幀中是否有目標物體[10],如果有則採用OpenGL ES對攝像頭視野進行虛擬三維場景的渲染和疊加,完成三維註冊。圖1是系統方案設計框圖。

基於Android移動設備的增強現實技術研究

2三維註冊算法方案設計

三維註冊是實現移動增強現實的關鍵技術,它通過在攝像頭視野中對目標圖片進行分析匹配,根據投影幾何的相關知識,準確計算出攝像頭在真實世界的姿態信息,從而實現三維虛擬模型的準確添加。傳統的三維註冊技術是基於人工標誌的,容易受光照變化、遮擋情況的影響,而且製作麻煩,應用場景有限,不適合推廣使用,因此本文采用基於自然特徵的三維註冊技術。

SURB是常見的用於自然特徵三維註冊技術的算法,由於其採用盒式濾波器與原圖像卷積的計算方式,只需要幾次加減法運算,而且運算量與盒子濾波器大小無關,所以能夠快速地構造出SURF的尺度金字塔,與SIFT算法[11]相比,速度有了較大提升,同時也具有尺度不變的特性,對光照變化、仿射、透視變化也具有較強的魯棒性。但SURF算法特徵描述向量是高維向量,而且採用最近鄰搜索算法窮盡搜索,計算量較大,導致SURF 算法在構建局部特徵描述符與特徵匹配階段耗時過長,難以滿足移動設備對實時性的要求。因此本文采用二進制描述符算法FREAK作為描述符算法來改進SURF的不足。該方法模仿視網膜結構的採樣模板對特徵點進行描述符構造,對旋轉、噪聲、尺度都具有很好的性能。這類算法採用不同的採樣模式生成二進制描述符,降低了描述符的維度,依靠計算特徵描述符的漢明距離進行匹配,使運算速度和內存佔用方面都得到了很好的改善。

結合上述分析和文獻[12]對各個特徵點提取與匹配的算法進行實際測試,本文采用算法如下:採用SURF算法進行特徵提取,然後用FREAK算法進行特徵描述,在漢明距離的基礎上結合改進的RANSAC算法對初步篩選的點去偽,獲得較為精準的匹配點對,再通過判斷匹配特徵點佔樣本圖像特徵點的比重,確定是否成功匹配目標物體,保證了識別的準確性,然後渲染對應的虛擬三維模型,完成三維註冊。

2.1SURF特徵點檢測

SURF算法的特徵點檢測是基於尺度空間理論的。為了在尺度空間中檢測極值點,SURF算法建立具有多尺度空間的圖像金字塔;利用尺度逐漸遞增的盒式濾波器與原圖像卷積創建圖像金字塔生成多尺度空間。首先,使用積分圖像加速圖像卷積來提高計算速度;再通過計算圖像中的每一個像素點的Hessian矩陣行列式得到特徵點的值。在實際計算中,採用盒式濾波器來近似高斯濾波的方法,可極大地提高計算速度。為使特徵點具有尺度不變性, 首先去掉行列式值低的像素, 然後進行尺度空間和鄰域空間的非極大值抑制, 最後所得的極值點即為特徵點。

2.2FREAK特徵描述

FREAK是受人類視網膜啟發的一種能唯一識別關鍵點的穩健描述子,在計算過程中耗費更少的計算時間和存儲空間。FREAK採用圓形的視網膜採樣網格,這樣能夠在保證人眼信息識別量的基礎上,減少信息的運算量。不同於BRISK和ORB對所有點只用相同的核,FREAK對每個點使用的核是不同的,高斯核的半徑與σ值成比例。FREAK按照ORB的方法,通過最大化對間方差來識別採樣點對,然後取不相關的點對,以便為每個關鍵點提供最大值信息。為了找出採樣點對,以產生位向量,FREAK採用類似ORB的方法,但並不是匹配每一點對,而是學習哪些點對能得到最好的結果。算法如下:

(1)用接近50 000個提取出的關鍵點構造矩陣D,每一行對應一個關鍵點,每個關鍵點以一種從視網膜採樣模式獲取的所有可能的點對構成巨大的描述符表示。使用了43個感受野,產生大約1 000個點對。

(2)計算每一列的均值。均值為0.5時產生最大的方差。

(3)按照方差降序對列排序。

(4)選出最佳列並迭代地加上剩餘列,以使它們與選中列之間為弱相關[13]。

在這種方法中,選擇在靠外區域中比較採樣點的對,最後選擇在模式內部區域比較點的對。這與視網膜首先試圖定位目標,然後再通過精確匹配密集分佈在目標周圍的點來辨識的原理相似。

FREAK模仿視網膜的跳視搜索功能,搜索描述子的前16個代表粗略信息的字節,如果距離小於閾值,將繼續搜索之後的字節,獲取更精細的結果。因此,執行一種級聯的比較,會進一步加快比較的步驟,因為在前16 B比較中超過90%採樣點被捨棄掉了。

為了估計特徵點的主方向,FREAK的方向分配方法與BRISK 相似,通過選擇感受野對來總結估計局部梯度值,且主要選擇相對於中心對稱的感受野對。將此處的梯度值作為特徵點的主方向。

2.3特徵點匹配

利用漢明距離將檢測到的特徵點與基準圖像進行特徵點匹配,完成匹配過程。在匹配過程中,不可避免地存在誤匹配點,因此需要對已匹配的特徵點採用改進的RANSAC一致性檢驗算法進行篩選,剔除誤匹配點。傳統的RANSAC算法由於迭代次數多,運算量非常大,不能滿足實時性要求。因此,本文采用RANSAC改進算法:利用結構相似的尺寸相似和位序相似兩種約束來剔除大量誤匹配點,得到新的匹配點集,作為RANSAC算法的輸入,求出變換矩陣。改進的RANSAC算法不僅提高了匹配速度,而且還提高了匹配精度[14]。

2.4識別目標的確定

當視頻幀圖像進行描述符匹配後,計算並判斷匹配點數目佔樣本圖像匹配點數的比重是否大於事先設定的閾值,以此來確定是否成功匹配到目標物體。

2.5虛擬三維物體的渲染

根據識別匹配結果加載對應的三維物體數據, 完成攝像頭位姿的估算並利用 OpenGL ES 圖形庫在場景相應位置生成其相對應的三維虛擬物體, 將虛擬三維物體疊加到攝像頭視野中。

3Android平臺增強現實技術的實現

由於Android應用主要是用Java語言開發,執行效率比較低,因此,本文算法的實現採用OpenCV圖像處理庫加上Android NDK開發工具,進行算法的C、C++語言開發,大大提高了運行效率。

Android移動設備調用攝像頭獲取視頻幀圖像,並進行圖像預處理,然後進行識別和匹配,如果有目標物體,則採用OpenGL ES進行三維模型渲染。

整個Android應用是在Eclipse開發工具上進行模塊整合和界面的開發。最後生成APK文件安裝在手機上即可實現增強現實功能的開發。

4增強現實技術方案驗證

為了驗證本文所述算法實際運行的效果,專門開發了在Andriod手機運行的應用程序。將算法移植到Andriod手機上運行。用於測試的手機是華為榮耀8,搭載的Android系統的API版本為6.0.0,開發工具採用Eclipse,採用NDK工具版本為r10e,OpenCV函數庫版本為3.1.0。

4.1實時性驗證

為了有更好的用戶體驗,移動設備的實時性除了滿足耗時操作不能超過5 s的基本要求外,還應儘量縮短用戶等待時間,一般1 s以內能獲得比較好的用戶體驗。本文在驗證實時性時,首先對同一個物體,將幾種常見的算法在Android手機上的運行效果進行對比,運行結果如圖2中的(a)~(e)所示,對應時間如表1所示。結果證明本文算法完成匹配時間為100 ms,耗時最短,滿足移動設備對實時性的要求。

基於Android移動設備的增強現實技術研究

4.2魯棒性驗證

為了驗證本文算法的穩定性及魯棒性,將算法在 Android 手機上實現,在不同視角、不同旋轉角度、不同尺度、部分遮擋的情況下進行測試,結果如圖3所示。測試結果證明:本文算法在各種情況下均可以正確識別物體並渲染3D模型。

基於Android移動設備的增強現實技術研究

4.3準確性驗證

為了驗證本文算法的準確性,將算法在Android手機上實現,用不同的物體進行測試,結果如圖4所示。結果證明只有在正確的物體出現在攝像頭視野中才會渲染3D模型。為了進一步驗證準確性,在開發Android應用程序時,添加本地數據庫,增加樣本數量,對20種不同的書籍、圖片進行識別,結果證明,本文算法基本上都能夠識別出來,準確率達95%,滿足移動設備的準確性要求。

5結論

本文針對Android移動設備的侷限性,提出一種新的三維註冊算法:使用SURF檢測具有尺度不變性的特徵點,然後使用FREAK特徵點描述子得到二進制描述子;在漢明距離的基礎上結合改進的RANSAC算法剔除了誤匹配點,再通過判斷匹配特徵點佔樣本圖像的比重來確定是否成功匹配目標物體,進一步保證了識別的準確性。通過在Android移動設備的驗證結果表明,此算法方案設計滿足移動設備的實時性、準確性和魯棒性要求。因此,本文提出的三維註冊算法方案有很強的實用性,為移動增強現實的實現奠定了良好的基礎。本文算法的不足之處在於:所用的目標識別方法僅限於樣本庫比較少的情況,之後還應加上服務器端[15],在服務器端可以建立龐大的樣本庫,將大大增加可識別的物體數量。

參考文獻

[1] 王湧天, 陳靖, 程德文. 增強現實技術導論[M]. 北京:科學出版社,2015.

[2] 基珀, 蘭博拉. 增強現實技術導論[M]. 北京: 國防工業出版社, 2014.

[3] GRAVDAL E.Augmented reality and object tracking for mobile devices[D]. Norway:Norwegian University,2012.

[4] AVILA L, BAILEY M.Augment your reality[J].Computer Graphics and Applications, IEEE,2016,36(1):6-7.

[5] 郭樹濤. 一種新的增強現實三維註冊算法[J]. 信息通信, 2014 ,27(1): 4244.

[6] 施琦,王湧天,陳靖.一種基於視覺的增強現實三維註冊算法[J].中國圖象圖形學報,2002, 7(7): 56-60.

[7] AZUMA R T. A survey of augmented reality[J]. Teleoperators and Virtual Environments, 1997,6(4):355-385.

[8] 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):17.

[10] 惠記莊, 羅麗, 楊永奎,等. 基於SURFBRISK的目標識別匹配與定位方法研究[J]. 長安大學學報:自然科學版, 2016, 36(3):93101.

[11] 楊天天,魯雲萍,張為華,等.一種基於GPGPU的SIFT加速算法[J].電子技術應用,2015,41(1):149-152 .

[12] BEKELE D, TEUTSCH M, SCHUCHERT T. Evaluation of binary keypoint descriptors[C]. IEEE International Conference on Image Processing. IEEE,2013:36523656.

[13] 李晶皎,趙 越,王愛俠,等. 基於改進FREAK的增強現實實時註冊算法[J].小型微型計算機系統,2016, 37(1):173-177.

[14] 許可可, 朱文球, 郭富祿. 基於結構相似的RANSAC改進算法[J]. 計算機工程與應用, 2016, 52(12).168-171.

[15] 王飛,許魁,徐友雲,等.大數據無線通信面臨的幾點挑戰與對策[J].電子技術應用,2015,41(3):12-16.

相關推薦

推薦中...