增強現實《Augmented Reality,簡稱AR》是一種實時地計算攝影機影像的位置及角度並加上相應圖像的技術,最早於1990年提出。
包含了多媒體、三維建模、實時視頻顯示及控制、多傳感器融合、實時跟蹤及註冊、場景融合等新技術與新手段,它將計算機生成的虛擬物體或關於真實物體的非幾何信息疊加到真實世界的場景之上,實現了對真實世界的增強。
AR技術原理
AR從其技術手段和表現形式上,可以明確分為大約兩類,一是Vision based AR,即基於計算機視覺的AR,二是LBS basedAR,即基於地理位置信息的AR。
Vision based AR
基於計算機視覺的AR是利用計算機視覺方法建立現實世界與屏幕之間的映射關系,使我們想要繪制的圖形或是3D模型可以如同依附在現實物體上一般展現在屏幕上,如何做到這一點呢?
本質上來講就是要找到現實場景中的一個依附平面,然後再將這個3維場景下的平面映射到我們2維屏幕上,然後再在這個平面上繪制你想要展現的圖形,從技術實現手段上可以 分為2類 :
1、 Marker-Based AR
這種實現方法需要一個事先制作好的Marker(例如:繪制著一定規格形狀的模板卡片或者二維碼》,然後把Marker放到現實中的一個位置上,相當於確定了一個現實場景中的平面。
然後通過攝像頭對Marker進行識別和姿態評估《Pose Estimation》,並確定其位置,然後將該Marker中心為原點的坐標系稱為Marker Coordinates即模板坐標系。
我們要做的事情實際上是要得到一個變換從而使模板坐標系和屏幕坐標系建立映射關系,這樣我們根據這個變換在屏幕上畫出的圖形就可以達到該圖形依附在Marker上的效果。
理解其原理需要一點3D射影幾何的知識,從模板坐標系變換到真實的屏幕坐標系需要先旋轉平移到攝像機坐標系《Camera Coordinates》然後再從攝像機坐標系映射到屏幕坐標系。
在實際的編碼中,所有這些變換都是一個矩陣,在線性代數中矩陣代表一個變換,對坐標進行矩陣左乘便是一個線性變換《對於平移這種非線性變換,可以采用齊次坐標來進行矩陣運算》。
公式如下:
矩陣C的學名叫攝像機內參矩陣,矩陣Tm叫攝像機外參矩陣,其中內參矩陣是需要事先進行攝像機標定得到的,而外參矩陣是未知的,需要我們根據屏幕坐標(xc ,yc)和事先定義好的Marker 坐標系以及內參矩陣來估計Tm,然後繪制圖形的時候根據Tm來繪制《初始估計的Tm不夠精確,還需要使用非線性最小二乘進行迭代尋優》。
比如使用OpenGL繪制的時候就要在GL_MODELVIEW的模式下加載Tm矩陣來進行圖形顯示。
2、 Marker-Less AR
基本原理與Marker based AR相同,不過它可以用任何具有足夠特征點的物體(例如:書的封面)作為平面基準,而不需要事先制作特殊的模板。
擺脫了模板對AR應用的束縛。
它的原理是通過一系列算法(如:SURF,ORB,FERN等)對模板物體提取特征點,並記錄或者學習這些特征點。
當攝像頭掃描周圍場景,會提取周圍場景的特征點並與記錄的模板物體的特征點進行比對,如果掃描到的特征點和模板特征點匹配數量超過閾值,則認為掃描到該模板,然後根據對應的特征點坐標估計Tm矩陣,之後再根據Tm進行圖形繪制(方法與Marker-Based AR類似)。
LBS-Based AR
其基本原理是通過GPS獲取用戶的地理位置,然後從某些數據源《比如wiki,google》等處獲取該位置附近物體(如周圍的餐館,銀行,學校等)的POI信息,再通過移動設備的電子指南針和加速度傳感器獲取用戶手持設備的方向和傾斜角度,通過這些信息建立目標物體在現實場景中的平面基準(相當於marker),之後坐標變換顯示等的原理與Marker-Based AR類似。
這種AR技術利用設備的GPS功能及傳感器來實現,擺脫了應用對Marker的依賴,用戶體驗方面要比Marker-Based AR更好。
而且由於不用實時識別Marker姿態和計算特征點,性能方面也好於Marker-Based AR和Marker-Less AR,因此對比Marker-Based AR和Marker-Less AR,LBS-Based AR可以更好的應用到移動設備上。
AR增強現實系統組成
1、Monitor-based系統
在基於計算機顯示器的AR實現方案中,攝像機攝取的真實世界圖像輸入到計算機中,與計算機圖形系統產生的虛擬景象合成,並輸出到屏幕顯示器。
用戶從屏幕上看到最終的增強場景圖片。
它雖然不能帶給用戶多少沉浸感,但卻是一套最簡單使用的AR實現方案。
由於這套方案的硬件要求很低,因此被實驗室中的AR系統研究者們大量采用。
2、Video see-through系統
頭盔式顯示器《Head-mounted displays-HMD》被廣泛應用於虛擬現實系統中,用以增強用戶的視覺沉浸感。
增強現實技術的研究者們也采用了類似的顯示技術,這就是在AR中廣泛應用的穿透式HMD。
根據具體實現原理又劃分為兩大類,分別是基於視頻合成技術的穿透式HMD《video see-through HMD》和基於光學原理的穿透式HMD《optical see-through HMD》。
Video see-through增強現實系統實現方案
3、Optical see-through系統
在上述的兩套系統實現方案中,輸入計算機中的有兩個通道的信息,一個是計算機產生的虛擬信息通道,一個是來自於攝像機的真實場景通道。
而在optical see-through HMD實現方案中去除了後者,真實場景的圖像經過一定的減光處理後,直接進入人眼,虛擬通道的信息經投影反射後再進入人眼,兩者以光學的方法進行合成。
4、三種系統結構的性能比較
三種AR顯示技術實現策略在性能上各有利弊。
在基於monitor-based和video see-through顯示技術的AR實現中,都通過攝像機來獲取真實場景的圖像,在計算機中完成虛實圖像的結合並輸出。
整個過程不可避免的存在一定的系統延遲,這是動態AR應用中虛實註冊錯誤的一個主要產生原因。
但這時由於用戶的視覺完全在計算機的控制之下,這種系統延遲可以通過計算機內部虛實兩個通道的協調配合來進行補償。
而基於optical see-through顯示技術的AR實現中,真實場景的視頻圖像傳送是實時的,不受計算機控制,因此不可能用控制視頻顯示速率的辦法來補償系統延遲。
另外,在基於monitor-based和video See-through顯示技術的AR實現中,可以利用計算機分析輸入的視頻圖像,從真實場景的圖像信息中抽取跟蹤信息《基準點或圖像特征》,從而輔助動態AR中虛實景象的註冊過程。
而基於optical see-through顯示技術的AR實現中,可以用來輔助虛實註冊的信息隻有頭盔上位置傳感器。