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è)變換在屏幕上畫(huà)出的圖形就可以達(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)下圖斤彼。
在實(shí)際的編碼中分瘦,所有這些變換都是一個(gè)矩陣,在線性代數(shù)中矩陣代表一個(gè)變換琉苇,對(duì)坐標(biāo)進(jìn)行矩陣左乘便是一個(gè)線性變換(對(duì)于平移這種非線性變換嘲玫,可以采用齊次坐標(biāo)來(lái)進(jìn)行矩陣運(yùn)算)。公式如下:
矩陣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)的物體(例如:書(shū)的封面)作為平面基準(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ī)交互方案∧朊耍現(xiàn)在微軟Cortana棚辽、Google Now、蘋(píng)果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)∨氏福現(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)的最重要因素之一。現(xiàn)在的AR眼鏡的可視廣角普遍不高洞渔,HoloLens有30°套媚,Meta One只有23°缚态,而公眾最為熟悉的Google Glass視角僅有12°。這是由于鏡片成像技術(shù)和光學(xué)模組不成熟造成的堤瘤,現(xiàn)在還沒(méi)有太好的解決方案玫芦,但太窄的視角顯然讓增強(qiáng)現(xiàn)實(shí)效果大打折扣。
而除了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)觀看視頻妹萨,但是如果我想把畫(huà)面準(zhǔn)確的投射到墻上或者壁櫥上呢?這就需要SLAM技術(shù)。以HoloLens為例炫欺,它在啟動(dòng)的時(shí)候乎完,會(huì)對(duì)用戶所處空間進(jìn)行掃描,從而建立房間內(nèi)物體擺設(shè)的立體模型品洛。
(轉(zhuǎn)自百度文庫(kù)树姨,方便記憶)