王愛麗 胡長雨 韓闖
摘 要:針對增強現(xiàn)實開發(fā)工具ARtoolkit利用特定編碼的卡片來獲取目標,并且利用標記卡片角點來推算出相機的空間位置,準確率不高,有嚴格的觀測角度限制,且不能在復雜場景使用的問題。在采用即時定位與地圖構(gòu)建和隨機抽樣一致算法的基礎(chǔ)上,研究了如何將利用即時空間定位算法準確的計算出相機的外參和圖像序列ORB特征點的空間坐標集,并利用隨機抽樣一致和poster幀得到二維感興趣區(qū)域特征點坐標集,實現(xiàn)了感興趣區(qū)域的空間坐標定位。實驗結(jié)果表明,該算法解決了標記卡片以及觀測角度限制,提高了相機位置的準確率,提高程度達90%。為后期渲染3D目標實現(xiàn)增強現(xiàn)實提供了有力的保障。
關(guān)鍵詞:增強現(xiàn)實;即時定位與建圖;隨機抽樣一致
DOI:10.15938/j.jhust.2018.02.005
中圖分類號: TP391.9
文獻標志碼: A
文章編號: 1007-2683(2018)02-0023-06
Abstract:Aiming to the development tools for Augmented Reality, ARtoolkit, and to obtain a particular coding region of interest, Marker Cards and the corner feature are used to calculate the position of the camera. But the accuracy rate is low, and viewing angle and scenes are stirctly limited. Based on the simultaneous localization and mapping and random sample consensus algorithm, this paper studies how to use instant space location algorithm to accurately calculate the spatial coordinates of camera external parameters and image sequence ORB(oriented fast and rotated brief)feature point set. Then random sampling and poster frame are used to obtain two dimensional coordinates of region of interest to locate. For these restrictions, a new method is proposed in this paper by integrating SLAM and RANSAC to obtain a particular coding region of interest and calculate the position of the camera. Experiments show that the method can solve the limitation of viewing angle and scenes and improve the accuracy of calculate the position of the camera. The degree of improvement is up to 90%, providing a strong guarantee render 3D augmented reality.
Keywords:augmented reality; simultaneous localization and mapping; random sample consensus
0 引 言
在互聯(lián)網(wǎng)時代,計算機已經(jīng)在生活當中越來越普及,從幾人共享一臺計算機到一個人擁有幾臺計算機。計算機生成的數(shù)據(jù)對人們的生活來說越來越重要。然而,目前計算機仍處于智能化的初級階段,可以模仿人類進行邏輯思維,但還無法完全進行形象思維,如果要計算機成為人類的可靠助手,進行形象思維,則要求計算機能夠適應人們所習慣的信息獲取方式和思維過程,與真實環(huán)境進行自然融合。增強現(xiàn)實系統(tǒng)可以將計算機生成的信息(包括文字、圖像、三維物體等)以視覺融合的方式疊加至真實場景中,與周圍的真實環(huán)境完美地融為一體。在用戶眼前呈現(xiàn)出“增強”了的世界。在理想情況下,用戶無法辨別哪個是虛擬物體,哪個是真實物體,看到的將是完整的融合顯示場景。增強現(xiàn)實借助顯示技術(shù)、交互技術(shù)、傳感技術(shù)和計算機圖形技術(shù)將計算機生成的虛擬目標與用戶周圍的現(xiàn)實環(huán)境融為一體[1-4]。
常用的增強現(xiàn)實開發(fā)工具ARtoolkit[5]存在諸多限制,定位需要特定編碼的標示(Marker)圖片來標示出目標位置,計算相機的位置方式單一,觀測的傾斜角度有限制。針對這些問題,本文采用SLAM[6-7]結(jié)合二維平面定位的RANSAC[8-9]算法,可以準確的獲得相機空間位置,并且定位目標的空間位置,來渲染三維目標,實現(xiàn)增強現(xiàn)實。本文結(jié)構(gòu)如下:第一部分介紹ARtoolkit的開發(fā)框架,第二部分介紹ARtoolkit定位目標和計算相機位置的方法。第三部分介紹SLAM和二維圖像配準的RANSAC算法,并進行結(jié)合以實現(xiàn)三維空間的目標定位。第四、五部分給出對比分析的實驗結(jié)果和結(jié)論。
1 ARtoolkit簡介
增強現(xiàn)實是把原本在現(xiàn)實世界的一定時間空間范圍內(nèi)很難體驗到的實體信息(視覺信息、聲音、觸覺等),利用科學技術(shù)進行仿生后再融合到現(xiàn)實世界,人類通過感官來感知。ARtoolkit是由C/C++語言編寫的庫,通過它可以實現(xiàn)現(xiàn)實增強。ARToolkit的開發(fā)流程基于人工標志的注冊方法來進行,包括以下幾個部分:相機標定、初始化攝像頭并捕獲視頻幀、搜索標示以及識別、計算Marker的位置和方向、計算相機的位置、渲染虛擬物體、屏幕顯示和關(guān)閉視頻捕捉,開發(fā)流程如圖1所示。
圖1中相機標定是一個單獨的過程,用來獲得相機的內(nèi)參,從Marker搜索開始,表示實現(xiàn)AR過程,在得到Marker的位置和角度以后,找到相機位置,最后利用opengl在真實場景中渲染3D目標。
2 ARtoolkit中Marker定位
圖2中(a)表示的是一種Marker,利用了漢明碼變種的編碼方式來表示一個Marker圖片[9-10]。Marker的最外圍是黑色邊框,內(nèi)部的是編碼信息,白色為1,黑色為0。如果每一行看作一個字,則每一位為5bit,其中1、3、5位是校驗位,2、4位是信息位,所以整個Marker的信息位有10bit。圖2中(b)表示定位了Marker在空間的位置、相機的位置,并在Marker上渲染出3D的模型。
在ARtoolkit[5]中,利用Marker來定位目標,通過對圖像二值化,利用約束條件找到Marker的四條邊,定位四個頂點,然后在Marker四個頂點建立空間坐標系,但是要求目標周邊的紋理不能過于復雜否則無法利用約束條件準確的定位四條邊,難以定位Marker的四個頂點。同時在計算外參的時候,使用Opencv中的solvepnp方法計算。由于solvepnp是通過單個Marker上的4個點來確定相機的旋轉(zhuǎn)矩陣和平移向量從而來計算相機在下一幀的位置,算法在物體深度相對于物體到相機的距離比較大的時候可能不收斂,進而不能得到精確的相機外參。
在觀測角度不同時,得到的投影矩陣不一樣,從而使得錐形體視角投影中容易出現(xiàn)偏差,難以準確得到目標的正視圖位置,影響后期渲染的準確性。本文利用SLAM[11]可以得到每一幀圖像特征點空間坐標和準確的相機位置,同時利用RANSAC算法來精確的查找目標二維坐標集。利用二維特征點和空間特征點一一對應的關(guān)系,不受場景和角度的約束,能夠在復雜場景和任意角度準確的定位目標。
3 改進后的目標定位
與傳統(tǒng)的方法不同,本文將ORB[16]特征作為SLAM建圖和定位空間特征點的特征,同時也是RANSAC定位目標的特征。首先利用SLAM計算攝像頭獲取的幀的ORB特征點空間位置和當前幀相機的空間位置,并保存結(jié)果。然后利用含有目標的一幀圖像,稱之為poster幀,對攝像頭獲取的幀定位目標區(qū)域。由于SLAM處理特征點和RANSAC處理的特征點是同一特征點,所以特征點的空間坐標和二維坐標一一對應。當poster幀在視流中定位到了目標位置,那么只需要查詢該目標區(qū)域二維特征點集對應的空間特征點集的坐標,并記錄下來。然后對記錄下的空間坐標點集求均值,就可以找到目標區(qū)域中心的空間特征點坐標。同時SLAM計算還得到了當前幀相機的位置。
3.1 空間特征點定位
這一步采用的是基于ORB特征的SLAM方法,實現(xiàn)對相機實時采集的圖像序列幀進行特征檢測、跟蹤,得到幀間特征點的匹配關(guān)系,然后建立世界坐標系,利用特征點三角化計算出特征點的空間坐標,利用初始化的運動模型和相機外參,得到相機在當前幀的位置。由于ORB特征本質(zhì)上是FAST-10特征,具有重復性,所以保證了SLAM和RANSAC處理的特征是同一特征,分四個步驟實現(xiàn):
1)ORB特征提取。提取的ORB特征是在8個不同尺度的圖像金字塔中進行的。在每個尺度層劃分cell,在每個cell中提取5個特征點,總共一幀圖像提取2000個特征點。如果提取的特征點沒有達到2000這個閾值,則對當前幀調(diào)整特征點數(shù)量閾值。
2)對于初始的兩幀,利用五點法[16]可以求出相機的姿態(tài),從而確定相機的運動模型,再利用三角測量原理,計算出匹配正確的二維特征點所對應的空間坐標。
3)得到特征點空間坐標后,再將空間坐標值從世界坐標系投影到當前幀中,從而可以得到相機的外參,求出相機在當前幀的位置。
首先要將世界坐標系中的空間投影到相機坐標系,得到相機坐標系中,這可以通過左乘一個4×4的矩陣來實現(xiàn),即:
將空間特征點投影到得到當前幀后,還要找到它在當前幀中的對應匹配的特征點,本文采用的方法是基于塊匹配[4]的方法來定位當前幀上成功匹配的特征點坐標。
4)更新相機位置。給定重投影點的對應匹配點的集合S,若該集合足夠大的時候,則得到相機的新位置。通過最小化重投影誤差,可以更新相機姿態(tài)。重投影誤差為特征點空間坐標在當前幀的投影點與其在當前幀的匹配點的差異,可以用式(3)來表示:
通過最小化投影誤差,可以得到相機的運動模型,利用相機的運動模型和相機外參可以估計出相機在下一幀圖像的位置。這樣就完成了相機位置和特征點的空間坐標的計算。
3.2 基于RANSAC的目標定位
計算目標二維位置,其實就是利用poster幀特征點去和當前幀特征點進行匹配,找到匹配最好的幀和目標位置,分五步來完成這一環(huán)節(jié):
1)提取poster幀的ORB特征和當前幀的ORB特征,并進行暴力匹配。
2)對暴力匹配成功的特征點進行RANSAC,得到最優(yōu)單應射矩陣H[17]。
3)對poster幀利用H進行透視變換,投影到當前幀,進一步刪除配準錯誤的特征點,實現(xiàn)特征點的精準匹配。
4)判斷精準匹配的點的數(shù)量和poster幀特征點總數(shù)量的比值是否達到0.15,如果小于0.15,則認為匹配不準確,放棄匹配結(jié)果,繼續(xù)執(zhí)行第二步。否則保存匹配結(jié)果執(zhí)行第五步。
5)獲得當前幀中目標的二維坐標集,并記錄下來這些特征點的序列號,匹配過程結(jié)束。求解最優(yōu)的單映射矩陣H是對ORB特征點進行RANSAC得到的。
在得到了暴力匹配成功的特征點對后,存在許多誤匹配,此時需要利用RANSAC算法,求出最優(yōu)的單應射矩陣H [15]。式(4)說明了單應射矩陣的形式。
這樣利用四對ORB特征點坐標就能得到8個獨立的線性方程,方程中(x, y)表示的是poster幀上的特征點的齊次坐標,而(x′,y′)表示當前幀中的特征點齊次坐標,二者都是在進行暴力匹配的過程中就求得了。接著通過方程組的解,可以得到初始化的H。
用RANSAC估即單應性矩陣的具體步驟如下:
2)根據(jù)4對隨機的匹配點對算出矩陣H;
3)利用H對poster幀上匹配點進行矩陣變換,計算匹配點對的漢明距離d,設(shè)定漢明距離的閾值為T,如果匹配點滿足條件d 4)比較當前內(nèi)點數(shù)量與L,如果大于L則將H和當前的內(nèi)點集作為當前最佳估即,更新L;如果等于L,則選擇配準較低的作為當前最佳估計,同時動態(tài)估計剩余所需迭代次數(shù)。如果當前迭代次數(shù)等于N,則保留H和當前的內(nèi)點集并停止迭代;否則繼續(xù)迭代知道N此為止; 5)對當前內(nèi)點集的所有匹配點采用DLT算法重新估計H。 在獲得了最優(yōu)的單應矩陣H之后,還要進一步來通過透視變換剔除誤匹配的點。在暴力匹配的過程中記錄下了poster幀和當前幀的特征點匹配對的序號,所以在這一步就是通過H將poster幀中的特征點投影到當前幀上,并且計算和當前幀中同一序號的特征點的漢明距離,同時利用閾值T來刪除誤匹配點。如果漢明距離小于閾值T,則認為匹配成功,重新記錄下配對成功的特征點序號,否則不記錄。 通過上面的兩步處理就可以得到二維的準確的特征點對,并且保存了特征點對的序號,記錄了poster幀中的特征點序號和當前幀中的目標的特征點序號。在得到了當前幀目標二維特征點集后,只需要把含有標記的二維特征點對應的相同序號的空間特征點找出來,進行求和再平均運算[18],就能得到目標中心位置的空間坐標。同時又獲得了準確的相機位置信息,所以能夠準確的將3D地球儀渲染到目標,并且準確的通過投影矩陣投影到鏡頭。 4 實驗結(jié)果和分析 本文的實驗在配置有2.1Ghz雙核Intel Core CPU和windows7系統(tǒng)的acer 4750G型號電腦上進行的,開發(fā)環(huán)境是Vsiual Studio 2015。所有的計算是在3個線程上完成的。本節(jié)給出了兩組實驗結(jié)果,分別是在筆記本上渲染地球儀和在小猴子身上渲染地球儀。本節(jié)給出了三組對比實驗圖,還給出了在不同角度和距離條件下ARtoolkit和本文的SLAM定位[19-21]的誤差對比圖??梢悦黠@看到,定位誤差也大大減小。 圖3中,(a1)表示的是Marker標示,(a2)表示將Marker 放入復雜場景中,并且檢測出特征點,(a3)表示是利用Marker在復雜場景下的錯誤定位導致渲染的地球儀位置錯了。(b1)和(c1)表示poster幀,一個是筆記本,一個是小猴子玩偶,可以看到,兩個poster幀的拍攝角度是垂直關(guān)系,成90°。(b2)和(c2)表示場景,其中的綠色方格表示的是二維特征點在當前幀中的位置,(b3)和(c3)分別表示兩種場景中,渲染立體地球儀。 進一步分析,圖4中(a)表示的5個不同的角度,在離目標區(qū)域不同距離的情況下的誤差情況。橫坐標表示的是距離,縱坐標表示的視角和目標區(qū)域所在平面的傾角,分別是0°、30°、45°、60°、80°。每種傾角分別記錄在不同的距離取值情況下的定位誤差,1號線表示的是ARtoolkit工程,2號線表示的是改進后的定位方法的定位結(jié)果,稱為SLAM工程。從圖中可以看出,在100~400mm距離之間ARtoolkit工程和SLAM工程的差距較小,這是因為ARtoolkit中在短距離情況下,視角范圍較小,可以盡量減少視角范圍內(nèi)的干擾紋理,同時由于Opencv中的solvepnp在物體深度相對于物體到相機距離較小時,收斂效果較好。在大于400mm的距離之后可以看出SLAM工程效果明顯優(yōu)于ARtoolkit工程的效果,因為距離越遠,視角越大,干擾紋理越多,通過簡單的二值化加約束條件確定的Marker邊界變得不準確,從而得到有誤差的Marker頂點,同時由于相機距離和物體距離較遠,solvepnp方法變得不收斂,在有誤差的Marker頂點上計算相機誤差,使得整個過程的誤差累積,從而導致了最后的效果要比SLAM工程的效果差 圖4(b)中表示的是兩種工程因角度和距離產(chǎn)生的誤差的對比圖,其中將五種不同角度ARtoolkit工程的誤差繪制在同一坐標軸下,縱坐標表示的誤差大小,橫坐標表示的觀察距離,SLAM線表示的是SLAM的誤差,其余的線段表示ARtoolkit工程的誤差線段。由于每種觀察角度SLAM誤差大小幾乎相等,所以就只用一條平均線來表示SLAM定位誤差,可以看出最高誤差值為2mm, 其余5條線分別表示ARtoolkit產(chǎn)生的誤差,當傾角為0°時,誤差最大,達到了18mm。所以誤差減少程度最高達90%。 5 結(jié) 論 本文介紹了一種基于SLAM和RANSAC定位目標在空間位置的方法。通過SLAM可以準確的定位當前每一幀相機的位置,同時利用極限幾何可以準確的實現(xiàn)兩幀圖像特征點配對,再對配對的特征點三角化可以得到特征點在空間的位置。再通過RANSAC對每一幀圖像匹配目標區(qū)域,根據(jù)二維特征點和空間特征點一一對應的關(guān)系,可以準確的查找到目標區(qū)域在空間的位置。通過SLAM和RANSAC的結(jié)合,使得ARtoolkit不再受Marker和場景的限制,可以在復雜場景中使用,得到準確的相機位置,為后期渲染3D目標提供了保障。 參 考 文 獻: [1]周忠,周頤,肖江劍.虛擬現(xiàn)實增強技術(shù)綜述[J].中國科學, 2015, 45(3):157-180. [2]虞錦東.基于Android的增強現(xiàn)實系統(tǒng)研究與應用[J]. 數(shù)字通信世界, 2016(5):110-115. [3]CHATZIMICHALI A, GIJSELARS W. Bridging the Multiple Reality Gap: Application of Augmented Reality in New Product Development[J]. IEEE International Conference on Systems Man and Cybernetics Conference Proceedings, 2011, 89(12): 1914-1919.
[4]MOHAMED N,YUSOFF F,ISMAIL M, et al. The Potential Use of Augmented Reality in Gamification[J]. International Conference on Computing & Informatics, 2015, 36(12):159-167.
[5]ARtoolkit[DB/OL]:http://www.hitl.washington.edu/artoolkit/.
[6]MUR-ARTALR, MONTIEL J, TARDOS J. ORB-SLAM: A Versatile and Accurate Monocular SLAM System[J].IEEE Transactions on Robotics, 2015,5(31): 1147-1163.
[7]KLEING, MURRAY D. Parallel Tracking and Mapping for Small AR Workspaces[J]. IEEE International Symposium on Mixed and Augmented Reality (ISMAR), 2007, 18(34):225-234.
[8]EL-MELEGY M.Model-wise and Point-wise Random Sample Consensus for Robust Regression and Outlier Detection[J]. Neural Networks, 2014, 59(11):23-35.
[9]HAST A, NYSJO J, MARCHETTI A. Optimal RANSAC-Towards a Repeatable Algorithm for Finding the Optimal Set[J]. Journal of WSCG, 2013, 21 (1): 21-30.
[10]GRAHAM M,ZOOK M, BOULTON A. Augmented Reality in Urban Places: Contested Content and the Duplicity of Code[J]. Transactions of the Institute of British Geographers, 2013, 38(3):464-479.
[11]ZHOU Shuo, CHEN Zongxing, LIU Xiaoyang, et al. An Elder Mode of New Generation Phone Using Augment Reality[J]. Procedia Environmental Sciences, 2011, 10(10):936-942.
[12]桂振文,王涌天,劉越. 二維碼在移動增強現(xiàn)實中的應用研究[J]. 計算機輔助設(shè)計與圖形學學報, 2014, 26(1):34-39。
[13]張鈺,陳靖,王涌天.增強現(xiàn)實瀏覽器的密集熱點定位與顯示[J].計算機應用, 2014, 34(5):1435-1438.
[14]RABBI I, ULLAH S, RAHMAN S, et al. Extending the Functionality of ARToolKit to Semi-controlled / Uncontrolled Environment[J]. International Journal on Information , 2014, 17(6):2823-2832.
[15]RUBLEE E, RABAUD V, KONOLIGE K, et al. ORB: An Effcient Alternative to SIFT or SURF[J]. IEEE International Conference on Computer Vision , 2011, 58(11):2564-2571.
[16]NISTER D. An Efficient Solution to the Five-point Relative Pose Problem[J]. In Proc IEEE CVPR, 2007, 26(6):756-777.
[17]BASTA T. Is the Fundamental Matrix Really Independent of the Scene Structure[J]. International Journal of Computer Vision , 2014, 7(5):149-167.
[18]MEDINA M,RONCHETTI E.Robust Statistics: A Selective Overview and New Directions[J].Wiley Interdisciplinary Reviews Computational Statistics, 2015, 7(6):372-393.
[19]FLECK S,SIMON G. An Augmented Reality Environment for Astronomy Learning in Elementary Grades: An Exploratory Study[J]. Ieme Conference Francophone on Interaction Homme-machine, 2013, 35(14):14-22.
[20]MYUNG H,LEE B,KIM H,et al. A Study on Effective Visual Communication Method with the Pictomation Contents in Augmented Reality Environment[J]. 2014, 23(44):156-164.
[21]MEOLA A,CUTOLO F,CARBONE M. Augmented Reality in Neurosurgery: A Systematic Review. Neurosurgical Review, 2016, 25(33):1-12.
(編輯:關(guān) 毅)