Hololens 的使用場景有哪些局限?
起了個樓,歡迎大家補充。(本文主要針對world-locked的全息物體,當下面場景中無法spatial mapping而使用world-locked時,仍可以使用body-locked功能)—————————————————————————————————————目前HoloLens 的使用場景主要受限於現在還不成熟的CV技術,所以 HoloLens 只能在小型室內、中等光照、較簡潔的空間里使用。HoloLens 的slam技術,官方叫 spatial mapping 。每秒鐘會『拍』5幀畫面,然後對周圍的空間進行『學習』和『理解』。而 spatial mapping 的使用場景一般為 Room scan,也就是是在房間尺度內進行掃描。 —————————————————————————————————————
scanning 的範圍限制
你戴著 HoloLens 在空間里行走,就是相當於用上面的 Kinect 對周圍的空間掃描,就像你睜開眼睛在一段空間中走動,然後視覺系統通過你眼睛傳回的視覺信號來判定你處於空間中的什麼位置。
而HoloLens的camera的發展一定會越來越接近人的眼睛,而它的CV演算法一定會越來越接近人的視覺系統。所以,下面的各種hololens不能準確判斷它在空間中處於什麼位置的情境,你的眼睛也會有一定的疑惑,我們以此類比。HoloLens的掃描範圍在這個75°的圓錐里,近到0.8米、遠到3.1米的範圍內。(期待未來這個範圍有質的突破)近於0.8米,遠於3米範圍的東西不會被掃到。
所以如果用戶沒有抬頭,那麼天花板就掃不到了。同理,如果有東西被擋住了看不到,那也就掃不到。然後還有個捕捉用戶手勢的區域,hololens叫做 gesture frame,大概是你伸出胳膊90度的地方有兩英尺大小的方形區域,所以你的手勢要在這個空間內。
mapping 會出錯的使用場景
不過不同位置的環境,不同形狀、大小、材質的物體表面都會引發各種問題,目前已知的一些CV方面的問題:
用戶快速移動,比如猛地一回頭;光線不足——因為黑暗吸收紅外光,所以如果周圍很暗,那就整個scanning 出錯。或者某個黑暗的角落,吸收掉紅外光導致信號衰弱(想像曝光不足)。
同理,即使只有一小塊黑暗色的材質,也會讓那一塊生成『洞』;攝像頭被遮擋;
牆壁沒有特殊顏色,慘白的一片,HoloLens無法找到interesting point或有特徵的landmark點。多個重複的物體,這時想在空間中定位自己的位置就很難。
RGB camera很難區分同一場景下不同的環境光,即使landmark是相同的地方也會被當做不同的地方,因為它們的色彩、光照、陰影、明暗面……看上去差異太大了。
反光的鏡子,導致mapping 出現幻象;窗外射來的陽光,紅外線干擾掃描;
室外強光造成很多物體表面的反光(光子反彈?);
另外,如果一個物體正面很亮,可能因為曝光過度的原因,它的暗面就被忽略掉;
亮面反射光造成高延遲或者在空間中產生『幻象』;
比如在黑暗的室內有室外的強光直射過來,因為對比度太強,這時就會曝光過度或者曝光不足。
所以這時應該提醒用戶:拉上窗帘→打開燈。(其實hololens就是建議只在家裡使用,因為家裡的場景掃描完之後是不變的,而不像公交車站,半分鐘內人來人往,車輛變化。在你使用的這30分鐘里,你的家裡沒有變化,所以呈現在現實中的虛擬物體依照那些landmark點,牢牢地放在原來的現實物體上。這其實有點類似於『短期記憶』。) 另外一種比較特殊的情況是空間里看上去兩個相同的部分(identical portions),很可能機器會誤以為你又回到了剛才的空間(把兩個相似的空間搞混了)。Hololens找landmark點,就像你看到一些大廈的排列順序,就馬上在空間中定位出你所在的方向並知道接下來該怎麼走一樣。而如果打亂這些物體擺放的順序,則hololens會迷失在這個空間里,因為landmark點之間的位置關係變了。 而如果到了室外,可能情況就更複雜了,可能一個東西現在在這裡,等一會又到了別的地方。可能一個月前還枝繁葉茂,現在已經完全凋零。 另外,多台HoloLens 之間的相互干擾:官方說2台可以融洽地協作,而5台則會相互干擾(具體見《追蹤設備的使用場景和覆蓋範圍有哪些局限?是否會影響VR可交互的空間的設計?》)這些會導致spatial mapping 出現錯誤,比如:—————————————————————————————————————洞(Hole),就是沒有被 mapping 到的數據。而全息物體可能會掉進這個『洞』裡面。
現實中,我們的門和窗是真正的『洞』。
hololens 的演算法會填充(修復)那些因掃描不到或出錯而產生的『洞』。但是也要保證,真正的『洞』(門窗)不被填充。 —————————————————————————————————————幻覺(Hallucination)。(比如,在你的HoloLens 掃描的時候有個人或者有條狗被mapping 到了,即使它們走了,它們的mesh 還會留在那裡,直到你走過來重新掃描它,它的錯誤的mesh 才會消失。這就是因為掃描速率太低導致的。) 前面說到,過亮、反光、移動掉已有的現實物體,都會產生『幻覺』。在常見的幻覺是floating in mid-air,感覺物體浮在半空中,從而缺少『物理感』。 而『幻覺』在『物理』上的表現,就感覺像全息的東西唄看不見的無形的東西給擋住了。雖然周圍看上去好像沒有障礙物。(而如果你這是有 gaze ,則會浮在這些虛無的幻象上)
如圖,一把椅子形成的 spatial mapping 幻象,你雖然已經把椅子搬走了,但surface 沒能及時更新。 —————————————————————————————————————偏差(Bias),mapping 出來的 mesh比現實中實際的要 凸出或者凹陷。我們都知道 spatial mapping 通過三角形組成的多面體來描述空間的表面,所以顯得很粗糙、凹凸不平和視覺噪音。
正因為空間是不平整的,所以全息的小球在地面上也不是直線滾動的。
不過如果需要將不可見的 surface 表面 可視化而渲染出來,一般需要調節它的光滑程度,把它調得光滑,從而看起來更加乾淨整潔。光滑在平面上的表現。
光滑程度在三維上的表現。
但是它的缺點是會喪失一部分spatial mapping 對空間中物體表面的對應關係。
—————————————————————————————————————只有當用戶走到新的地方時,這些錯誤才能慢慢被修復。(面對錯誤有兩種解決方法,一種是避免,一種是修正。)所以,HoloLens 在一步步培養用戶的使用習慣——沒事在周圍空間到處走走轉轉,轉轉頭動動眼(以不斷掃描和修正mapping)。 當用戶開門關門的時候,spatial mapping 就會因重新適配新的場景而做出改變。當然,更多的問題,還要等實際使用中慢慢去發現了。當然除了spatial mapping上的,還有幀數率(presentation frame rate)、渲染延遲( rendering latency)、輸入延遲(input latency,)、功耗和散熱(power consumption for thermals)電池壽命(battery life)……這裡就不詳細展開了。前面說過HoloLens的刷新率是60幀,所以延遲是16秒,如果移動晃動的速度快於這個速率則會產生抖動(jitter)。 —————————————————————————————————————讓用戶自己不斷尋找適合的使用場景
而正因為空間是受限的,所以需要我們尋找一個適合操作的舒適空間。比如我要mapping 一個全息的火星表面,就得尋找一塊合適的空地。
—————————————————————————————————————4. 特定空間表面配置(specific configuration of surfaces)將沒有裝修的毛坯房可視化成某個裝修方案。虛擬物體和現實物體的匹配,提前就設計好了。—————————————————————————————————————
5. 特定物體的載入
舉一個考古學領域的例子:比如這個斷了翅膀的 angel,在mapping 後長出新翅膀。
(事實上在考古上經常碰到雕塑或建築斷裂損毀的情況,而根據現存的模型倒推出它斷裂損毀的地方的情況。當然,很多考古學家也會在現實的場景上增加或者修改一些模型。)想像將來去參觀博物館,有些文物損毀了,戴著AR眼鏡的你卻可以看到它的修復的模樣(你的眼鏡識別了它的模型從而載入)。
—————————————————————————————————————建立一個重新掃描的選項,如果用戶一次沒有掃描好,比如將一條走廊掃成了一堵牆,則需要重新掃描。推薦閱讀:
※浙大周昆教授的gpu是誰教的?
※如何實現一個類似UE4中的材質編輯器?
※如何在 Graphics 頂級會議上 (SIGGRAPH / EG / PG) 上發表論文?
※請問FXAA、FSAA與MSAA有什麼區別?效果和性能上哪個好?
※能否設計出不會導致近視的顯示屏?