AR技術(shù)原理

AR從其技術(shù)手段和表現(xiàn)形式上,可以明確分為大約兩類:一是Vision based AR,即基于計(jì)算機(jī)視覺(jué)的AR,二是LBS based AR,即基于地理位置信息的AR,我們分門別類對(duì)其進(jìn)行概念講解和原理解析。

Vision based AR

基于計(jì)算機(jī)視覺(jué)的AR是利用計(jì)算機(jī)視覺(jué)方法建立現(xiàn)實(shí)世界與屏幕之間的映射關(guān)系,使我們想要繪制的圖形或是3D模型可以如同依附在現(xiàn)實(shí)物體上一般展現(xiàn)在屏幕上,如何做到這一點(diǎn)呢?本質(zhì)上來(lái)講就是要找到現(xiàn)實(shí)場(chǎng)景中的一個(gè)依附平面,然后再將這個(gè)3維場(chǎng)景下的平面映射到我們2維屏幕上,然后再在這個(gè)平面上繪制你想要展現(xiàn)的圖形,從技術(shù)實(shí)現(xiàn)手段上可以分為2類:

1) Marker-Based AR

這種實(shí)現(xiàn)方法需要一個(gè)事先制作好的Marker(例如:繪制著一定規(guī)格形狀的模板卡片或者二維碼),然后把Marker放到現(xiàn)實(shí)中的一個(gè)位置上,相當(dāng)于確定了一個(gè)現(xiàn)實(shí)場(chǎng)景中的平面,然后通過(guò)攝像頭對(duì)Marker進(jìn)行識(shí)別和姿態(tài)評(píng)估(Pose Estimation),并確定其位置,然后將該Marker中心為原點(diǎn)的坐標(biāo)系稱為Marker Coordinates即模板坐標(biāo)系,我們要做的事情實(shí)際上是要得到一個(gè)變換從而使模板坐標(biāo)系和屏幕坐標(biāo)系建立映射關(guān)系,這樣我們根據(jù)這個(gè)變換在屏幕上畫出的圖形就可以達(dá)到該圖形依附在Marker上的效果,理解其原理需要一點(diǎn)3D射影幾何的知識(shí),從模板坐標(biāo)系變換到真實(shí)的屏幕坐標(biāo)系需要先旋轉(zhuǎn)平移到攝像機(jī)坐標(biāo)系(Camera Coordinates)然后再?gòu)臄z像機(jī)坐標(biāo)系映射到屏幕坐標(biāo)系(其實(shí)由于硬件誤差這中間還需要理想屏幕坐標(biāo)系到實(shí)際屏幕坐標(biāo)系的轉(zhuǎn)換,這里不深究),見(jiàn)下圖。

圖片1.png

在實(shí)際的編碼中,所有這些變換都是一個(gè)矩陣,在線性代數(shù)中矩陣代表一個(gè)變換,對(duì)坐標(biāo)進(jìn)行矩陣左乘便是一個(gè)線性變換(對(duì)于平移這種非線性變換,可以采用齊次坐標(biāo)來(lái)進(jìn)行矩陣運(yùn)算)。公式如下:

圖片2.png

矩陣C的學(xué)名叫攝像機(jī)內(nèi)參矩陣,矩陣Tm叫攝像機(jī)外參矩陣,其中內(nèi)參矩陣是需要事先進(jìn)行攝像機(jī)標(biāo)定得到的,而外參矩陣是未知的,需要我們根據(jù)屏幕坐標(biāo)(xc ,yc)和事先定義好的Marker 坐標(biāo)系以及內(nèi)參矩陣來(lái)估計(jì)Tm,然后繪制圖形的時(shí)候根據(jù)Tm來(lái)繪制(初始估計(jì)的Tm不夠精確,還需要使用非線性最小二乘進(jìn)行迭代尋優(yōu)),比如使用OpenGL繪制的時(shí)候就要在GL_MODELVIEW的模式下加載Tm矩陣來(lái)進(jìn)行圖形顯示。

2) Marker-Less AR

基本原理與Marker based AR相同,不過(guò)它可以用任何具有足夠特征點(diǎn)的物體(例如:書的封面)作為平面基準(zhǔn),而不需要事先制作特殊的模板,擺脫了模板對(duì)AR應(yīng)用的束縛。它的原理是通過(guò)一系列算法(如:SURF,ORB,F(xiàn)ERN等)對(duì)模板物體提取特征點(diǎn),并記錄或者學(xué)習(xí)這些特征點(diǎn)。當(dāng)攝像頭掃描周圍場(chǎng)景,會(huì)提取周圍場(chǎng)景的特征點(diǎn)并與記錄的模板物體的特征點(diǎn)進(jìn)行比對(duì),如果掃描到的特征點(diǎn)和模板特征點(diǎn)匹配數(shù)量超過(guò)閾值,則認(rèn)為掃描到該模板,然后根據(jù)對(duì)應(yīng)的特征點(diǎn)坐標(biāo)估計(jì)Tm矩陣,之后再根據(jù)Tm進(jìn)行圖形繪制(方法與Marker-Based AR類似)。

LBS-Based AR

其基本原理是通過(guò)GPS獲取用戶的地理位置,然后從某些數(shù)據(jù)源(比如wiki,google)等處獲取該位置附近物體(如周圍的餐館,銀行,學(xué)校等)的POI信息,再通過(guò)移動(dòng)設(shè)備的電子指南針和加速度傳感器獲取用戶手持設(shè)備的方向和傾斜角度,通過(guò)這些信息建立目標(biāo)物體在現(xiàn)實(shí)場(chǎng)景中的平面基準(zhǔn)(相當(dāng)于marker),之后坐標(biāo)變換顯示等的原理與Marker-Based AR類似。
這種AR技術(shù)利用設(shè)備的GPS功能及傳感器來(lái)實(shí)現(xiàn),擺脫了應(yīng)用對(duì)Marker的依賴,用戶體驗(yàn)方面要比Marker-Based AR更好,而且由于不用實(shí)時(shí)識(shí)別Marker姿態(tài)和計(jì)算特征點(diǎn),性能方面也好于Marker-Based AR和Marker-Less AR,因此對(duì)比Marker-Based AR和Marker-Less AR,LBS-Based AR可以更好的應(yīng)用到移動(dòng)設(shè)備上。
LBS-Based AR導(dǎo)航類應(yīng)用,由于需要顯示的信息較多,會(huì)出現(xiàn)以下兩個(gè)問(wèn)題。
物體相互覆蓋無(wú)法顯示的問(wèn)題
采用實(shí)時(shí)聚類技術(shù),將互相覆蓋較嚴(yán)重的標(biāo)簽進(jìn)行實(shí)時(shí)合并,當(dāng)用戶點(diǎn) 擊聚合標(biāo)簽時(shí),聚合標(biāo)簽聚合的所有標(biāo)簽都以列表的形式顯示出來(lái),再供用戶二次選擇。
點(diǎn)選幾個(gè)物體相互覆蓋部分時(shí)的物體選擇問(wèn)題。
采用射線相交技術(shù),當(dāng)用戶點(diǎn)擊屏幕時(shí),通過(guò)坐標(biāo)變化,把2D的屏幕 坐標(biāo)轉(zhuǎn)換為3D的射線,并判斷該射線是否與3D場(chǎng)景中的標(biāo)簽相交, 如果相交,則把所有相交的標(biāo)簽以列表的形式顯示出來(lái),再供用戶 二 次選擇。

硬件方面

硬件技術(shù)難點(diǎn):
交互技術(shù)
手勢(shì)操控:微軟HoloLens是利用手勢(shì)進(jìn)行交互的、最有特點(diǎn)的AR硬件。戴上HoloLens眼鏡后,可通過(guò)手指在空中點(diǎn)選、拖動(dòng)、拉伸來(lái)控制虛擬物體、功能菜單界面。比如利用Air tap 手勢(shì)打開(kāi)全息圖,利用Bloom 手勢(shì)打開(kāi)開(kāi)始菜單。
語(yǔ)音操控:手勢(shì)操控固然解放了雙手,但是它有著致命的缺陷,那就是頻繁的抬手會(huì)造成手臂酸軟。筆者在利用Leap Motion體驗(yàn)小游戲時(shí),發(fā)現(xiàn)這種問(wèn)題尤甚。而語(yǔ)音操控便是更好的人機(jī)交互方案?,F(xiàn)在微軟Cortana、Google Now、蘋果Siri、亞馬遜Echo都是優(yōu)秀的語(yǔ)音識(shí)別助手,但是他們的識(shí)別率還是不高,只能作為輔助操作工具,智能程度也遠(yuǎn)遠(yuǎn)達(dá)不到AR交互需求。
體感操控:假設(shè)有一天全息通話成為了現(xiàn)實(shí),那么除了語(yǔ)音、視覺(jué)交流之外,你是否可以和遠(yuǎn)程的朋友進(jìn)行體感交流(比如握手)?想要獲得更加完美的增強(qiáng)現(xiàn)實(shí)體驗(yàn),體感外設(shè)顯然是非常重要的一環(huán)?,F(xiàn)在,已經(jīng)有不少?gòu)S商推出了體感手套、體感槍等外設(shè)。只是這些設(shè)備功能還很單薄,還有著極大的改進(jìn)空間。

鏡片成像技術(shù)

無(wú)論是增強(qiáng)現(xiàn)實(shí)還是虛擬現(xiàn)實(shí),F(xiàn)OV 都是影響使用體驗(yàn)的最重要因素之一?,F(xiàn)在的AR眼鏡的可視廣角普遍不高,HoloLens有30°,Meta One只有23°,而公眾最為熟悉的Google Glass視角僅有12°。這是由于鏡片成像技術(shù)和光學(xué)模組不成熟造成的,現(xiàn)在還沒(méi)有太好的解決方案,但太窄的視角顯然讓增強(qiáng)現(xiàn)實(shí)效果大打折扣。

圖片3.png

而除了FOV,AR在成像方面,還存在著以下的問(wèn)題需要解決:
首先軟件方面,底層算法(輸入、輸出算法)還需要加強(qiáng)。這需要精確的圖像識(shí)別技術(shù)來(lái)判斷物體所處的位置以及3D坐標(biāo)等信息。不同于其他3D定位,增強(qiáng)現(xiàn)實(shí)領(lǐng)域的物體位置,必須結(jié)合觀測(cè)者的相對(duì)位置、三維立體坐標(biāo)等信息進(jìn)行定位,難度要高很多。而如何利用疊加呈像算法,將相關(guān)信息疊加顯示在視網(wǎng)膜上也是個(gè)技術(shù)難點(diǎn)。
而在硬件方面,光學(xué)鏡片還是存在著色散和圖形畸變的問(wèn)題。智能眼鏡成像時(shí),視場(chǎng)周邊會(huì)出現(xiàn)紅綠藍(lán)色變,這就是棱鏡反射光線時(shí)常見(jiàn)的色散現(xiàn)象,可以通過(guò)軟件進(jìn)行色彩補(bǔ)償或者通過(guò)多材料鏡片來(lái)消除。前者會(huì)增加硬件負(fù)擔(dān)并降低圖像幀率。后者的成品率低,這也是造成AR眼睛昂貴的原因之一。

SLAM技術(shù)

SLAM 即指同步定位與建圖技術(shù)。有人說(shuō),兩年前,掃地機(jī)是就是它的代言人。確實(shí),能夠掃描室內(nèi)布局結(jié)構(gòu),并構(gòu)建、規(guī)劃掃地路線的掃地機(jī)器人是SLAM技術(shù)最好代表了。其實(shí),這項(xiàng)技術(shù)也可以被運(yùn)用在AR領(lǐng)域,現(xiàn)階段基于SLAM技術(shù)開(kāi)發(fā)的代表性產(chǎn)品有微軟Hololens,谷歌Project Tango以及Magic Leap。
舉個(gè)例子,我們知道AR可以用來(lái)觀看視頻,但是如果我想把畫面準(zhǔn)確的投射到墻上或者壁櫥上呢?這就需要SLAM技術(shù)。以HoloLens為例,它在啟動(dòng)的時(shí)候,會(huì)對(duì)用戶所處空間進(jìn)行掃描,從而建立房間內(nèi)物體擺設(shè)的立體模型。

圖片4.png

(轉(zhuǎn)自百度文庫(kù),方便記憶)

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時(shí)請(qǐng)結(jié)合常識(shí)與多方信息審慎甄別。
平臺(tái)聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡(jiǎn)書系信息發(fā)布平臺(tái),僅提供信息存儲(chǔ)服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容