醬學堂之AR中的幾何一致性
關於AR成像問題,我們介紹過光照一致性 (《AR VR中的光照一致性》),通過模擬光源讓虛擬物體產生高光和陰影,以增加真實感。
讓真實場景和虛擬物體虛實結合還有另一個關鍵:幾何一致性。
幾何一致性,主要是指虛實遮擋,簡單地說就是虛擬物體要能被真實物體遮住。
比如這裡有一個虛擬小球,我們手持小碗遮住了它的一部分,所以它只露出了一半。
如果這時候小球仍然倔強的疊加在所有物體的前方,就會顯得非常的假了。
如果虛實遮擋關係發生錯誤時,觀察者就很難判斷虛實物體之間的位置關係。
對一些物體位置關係要求很高的AR應用,比如AR輔助手術,這個錯誤造成的後果可以說是災難性的。
技術原理
我們需要比較虛擬物體和場景中的真實物體距離攝像機的遠近,通過深度數據判斷物體之間的遮擋關係。
基於三維建模的辦法:充分採集環境的信息,包括深度、大小形狀等,然後對真實物體進行三維建模,求得這個物體在真實世界中坐標系下的三維坐標,然後判斷和虛擬物體的位置關係來得到遮擋關係。
這個方法避免了很多計算的過程,所以處理速度很快,但是由於前期建模的時候難度很大,一般只用在簡單的場景中,並且不用於動態場景中。
(2)基於深度計算的方法:和三維重建不一樣的是,在事先不需要採集真實物體(遮擋物)的詳細信息,可以在運行過程中動態的完成這一過程。
遮擋物獲取
利用背景剪裁技術獲取遮擋物
就像PS裡面的摳圖一樣,把遮擋物體(手)給剪裁下來。
深度恢復
所謂深度恢復就是獲取物體距離攝像機的距離數據。
關於攝像機,就又有許多不同了,因為可能是:雙目攝像機(光學)、單目攝像機(光學)、紅外線深度攝像機,等等。
關於雙目的測距原理AR醬介紹過很多次了,簡單來說就是三角測距原理,兩個攝像頭的距離已知,很容易可以算得空間中的物體距離攝像機的距離。
單目攝像頭則一般運用多點拍攝然後計算的方法。
紅外線TOF、結構光、超聲波、激光,各種測距原理都能運用,總之得到深度信息就對了。
遮擋物邊緣提取
我們已經把遮擋物(手)的圖像給摳了下來,接下來具體判斷手的邊緣和虛擬物體之間的遮擋關係了,把成像物體中被手遮住的部分剔除掉。
虛實融合
一旦獲得了前景物體遮擋物邊緣並且檢測出了虛實物體之間的遮擋關係,就能利用背景圖、虛擬物體圖和前景圖之間的關係渲染生成融合圖像了。
虛實融合的部分可以通過計算機圖形學來較好的解決。
不過對於半透明的遮擋物體,目前缺乏較好的解決辦法。
最後看一看效果。
GIF/130K
小方塊是一個虛擬物體,可以觀察到,它可以很完美地被我們手持的檸檬遮擋。
總結
無論是光照一致性還是今天討論的幾何一致性,都是為了讓疊加在現實上的虛擬物體更加真實,和環境更融為一體。
HoloLens利用了slam的即時掃描建模,了解了周圍環境的空間結構,做到了虛實遮擋,微軟在這方面有很深的技術功底,六年前的holodesk已經比較不錯了。
不過ARKit僅支持平面重建,另一方面也沒有深度感測器,沒有做出三維遮擋效果。不過蘋果應該並不欠缺技術問題,只是手機和平板的硬體設備欠缺。
AR醬原創,轉載務必註明


※inside-out tracking 那麼火,它的原理呢
※帶inside out 追蹤的 Bridge MR 頭盔
※自己動手,做Snapchat人臉特效
※ArKit開發者還原30年前經典MV,再現一場跨次元的戀愛
※關於微軟新一代HPU,你需要知道些什麼
TAG:AR醬 |