AR從其技術(shù)手段和表現(xiàn)形式上,可以明確分為大約兩類(lèi),一是Vision based AR,即基于計(jì)算機(jī)視覺(jué)的AR,二是LBS basedAR,即基于地理位置信息的AR。
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類(lèi):AR從其技術(shù)手段和表現(xiàn)形式上,可以明確分為大約兩類(lèi),一是Vision based AR,即基于計(jì)算機(jī)視覺(jué)的AR,二是LBS basedAR,即基于地理位置信息的AR。
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類(lèi):
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)系稱(chēng)為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í)際的編碼中,所有這些變換都是一個(gè)矩陣,在線(xiàn)性代數(shù)中矩陣代表一個(gè)變換,對(duì)坐標(biāo)進(jìn)行矩陣左乘便是一個(gè)線(xiàn)性變換(對(duì)于平移這種非線(xiàn)性變換,可以采用齊次坐標(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不夠精確,還需要使用非線(xiàn)性最小二乘進(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ē)鷪?chǎng)景,會(huì)提取周?chē)鷪?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類(lèi)似)。
LBS-Based AR
其基本原理是通過(guò)GPS獲取用戶(hù)的地理位置,然后從某些數(shù)據(jù)源(比如wiki,google)等處獲取該位置附近物體(如周?chē)牟宛^,銀行,學(xué)校等)的POI信息,再通過(guò)移動(dòng)設(shè)備的電子指南針和加速度傳感器獲取用戶(hù)手持設(shè)備的方向和傾斜角度,通過(guò)這些信息建立目標(biāo)物體在現(xiàn)實(shí)場(chǎng)景中的平面基準(zhǔn)(相當(dāng)于marker),之后坐標(biāo)變換顯示等的原理與Marker-Based AR類(lèi)似。
這種AR技術(shù)利用設(shè)備的GPS功能及傳感器來(lái)實(shí)現(xiàn),擺脫了應(yīng)用對(duì)Marker的依賴(lài),用戶(hù)體驗(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è)備上。
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)系稱(chēng)為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í)際的編碼中,所有這些變換都是一個(gè)矩陣,在線(xiàn)性代數(shù)中矩陣代表一個(gè)變換,對(duì)坐標(biāo)進(jìn)行矩陣左乘便是一個(gè)線(xiàn)性變換(對(duì)于平移這種非線(xiàn)性變換,可以采用齊次坐標(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不夠精確,還需要使用非線(xiàn)性最小二乘進(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ē)鷪?chǎng)景,會(huì)提取周?chē)鷪?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類(lèi)似)。
LBS-Based AR
其基本原理是通過(guò)GPS獲取用戶(hù)的地理位置,然后從某些數(shù)據(jù)源(比如wiki,google)等處獲取該位置附近物體(如周?chē)牟宛^,銀行,學(xué)校等)的POI信息,再通過(guò)移動(dòng)設(shè)備的電子指南針和加速度傳感器獲取用戶(hù)手持設(shè)備的方向和傾斜角度,通過(guò)這些信息建立目標(biāo)物體在現(xiàn)實(shí)場(chǎng)景中的平面基準(zhǔn)(相當(dāng)于marker),之后坐標(biāo)變換顯示等的原理與Marker-Based AR類(lèi)似。
這種AR技術(shù)利用設(shè)備的GPS功能及傳感器來(lái)實(shí)現(xiàn),擺脫了應(yīng)用對(duì)Marker的依賴(lài),用戶(hù)體驗(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è)備上。