[圖片1 SLAM主要研究方法 來自 bbsmax-yhexie 《SLAM學習筆記(2)SLAM算法》]
今天我們只談HoloLens使用的技術,就是攝像機里的單目視覺和RGBD類。 單目視覺,就是依靠一個攝像頭去完成SLAM。HoloLens有4個環(huán)境感知攝像頭,仔細看下,你會發(fā)現,靠內的兩個攝像頭朝向前方,靠外的兩個攝像頭分別朝向左右兩邊。主要起作用的是靠內的攝像頭,只要靠內的攝像頭有一個不被遮擋,即使其他三個攝像頭被遮擋,也不會影響HoloLens對空間位置的感知。HoloLens正是用單目SLAM。首先提取圖像中的特征,然后根據相鄰幀圖像的特征去匹配,識別出場景某些特征點位置,并通過圖像的變化反向計算出相機的運動。[圖2 相機位置追蹤 來自 極客頭條-張哲《SLAM剛剛開始的未來》]
由于有深度攝像頭,HoloLens并不需要靠環(huán)境感知攝像頭去獲得場景每個像素的深度值,只需要根據一些匹配上的關鍵特征點計算出攝像頭相對場景位置即可。否則僅僅依靠環(huán)境感知攝像頭計算場景所有深度信息,代價相當大。 RGBD類。最大的特點是可以通過紅外結構光或Time-of-Flight原理,直接測出圖像中各像素離相機的距離。因此,它比傳統(tǒng)相機能夠提供更豐富的信息,也不必像單目或雙目那樣費時費力地計算深度。HoloLens的深度攝像頭用的便是Time-of-Flight原理,即通過從投射的紅外線脈沖反射回來的時間來獲得Depth的信息。由于使用紅外線,也正是為什么HoloLens對黑色表面識別不好的原因。 HoloLens的三維場景重建利用的是Richard Newcombe發(fā)明的Kinect Fusion。為了更好理解Kinect Fusion,可以想象下,我們在玩雕塑。先是有一個巨大的方塊,我們一個角度去挖,挖到想要成型樣子的表面就不挖了。挖多深,用的就是深度圖的信息。然后不斷換角度,繼續(xù)重復上面的,這樣多個角度后,雕塑的樣子慢慢浮現出來。 具體重建三維場景流程如下圖。[圖片3 來自 Microsoft Developer Network]
a)讀入的深度圖像轉換為三維點云并且計算每一點的法向量。 b)相機的追蹤。Kinect Fusion是計算得到的帶有法向量的點云,和通過光線投影算法根據上一幀位置從模型投影出來的點云,利用 ICP 算法配準計算位置,但深度攝像頭的精細度并不高,如果HoloLens采用深度圖數據來計算HoloLens位置,誤差會挺大,全息場景也不會穩(wěn)定固定在空間里。相機的位置用的是環(huán)境感知攝像頭計算出來的。 c)根據相機的位置,將當前幀的點云融合到網格模型中去。 d)根據當前幀相機位置利用光線投影算法從模型投影得到當前幀視角下的點云,并且計算其法向量,用來對下一幀的輸入圖像配準。 如此是個循環(huán)的過程,通過移動相機獲取場景不同視角下的點云,重建完整的場景表面。 現在,你應該對HoloLens中SLAM技術的使用有個清晰的認識了吧! 目前對SLAM的研究依然還在繼續(xù),由于產品和硬件高度差異化,而SLAM相關技術的整合和優(yōu)化又很復雜,導致算法和軟件高度碎片化,市場上真正能在實際應用中運用SLAM的產品不多。而能夠將IMU 、環(huán)境感知攝像頭、深度攝像頭各取所長,完美融合在一起,這里要給我軟硬實力手動比心。 相關鏈接: HoloLens中SLAM技術揭秘(上) 來源:微軟HoloLens 關注微信公眾號:VR陀螺(vrtuoluo),定時推送,VR/AR行業(yè)干貨分享、爆料揭秘、互動精彩多。投稿/爆料:tougao@youxituoluo.com
稿件/商務合作: 六六(微信 13138755620)
加入行業(yè)交流群:六六(微信 13138755620)
元宇宙數字產業(yè)服務平臺
下載「陀螺科技」APP,獲取前沿深度元宇宙訊息