資源描述:
《微軟全息投影技術(shù)揭秘》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、微軟全息投影HoloLens技術(shù)解謎(上):還原三維場(chǎng)景2015-01-27 HoloLens是什么? HoloLens是微軟發(fā)布的可穿戴式增強(qiáng)現(xiàn)實(shí)計(jì)算設(shè)備,它擁有這么幾個(gè)關(guān)鍵要素: 它是增強(qiáng)現(xiàn)實(shí)產(chǎn)品,即AugmentedReality(AR),AR技術(shù)將計(jì)算機(jī)生成的圖像與真實(shí)的世界相疊加。類似的產(chǎn)品有圖像投射到視網(wǎng)膜上的GoogleGlass,以及疊加在手機(jī)攝像頭畫面上的手機(jī)AR應(yīng)用。它擁有是獨(dú)立的計(jì)算單元,自帶CPU+GPU+HPU,不需要外接計(jì)算機(jī)。它的CPU和GPU基于英特爾的14納米工藝的CherryTrail芯片,HPU是微軟發(fā)明的縮寫,全稱是Holo
2、graphicProcessingUnit,即全息處理單元。按照知乎匿名用戶的回答,HPU是一塊ASIC(Application-specificintegratedcircuit),是微軟為HoloLens定制的集成電路,對(duì)此,我只能說“有錢任性”。 HoloLens不是什么? 看完微軟栩栩如生的宣傳視頻后,如果你的反應(yīng)是 臥槽,Matrix要來了?! ∧敲茨阋煤每催@一段,因?yàn)镸atrix是VirtualReality/VR/虛擬現(xiàn)實(shí),VR的特點(diǎn)是讓參與者置身于計(jì)算機(jī)生成的三維圖像世界中,淡化真實(shí)的世界。VR近期的代表產(chǎn)品是OculusRift,戴上Rift后
3、你是看不到真實(shí)世界的。在我看來VR最大的問題是:這個(gè)虛擬世界很真實(shí)很精彩,但是有什么用呢?也就是說VR只能做到更逼真的三維世界,它無法幫助人們更好地理解真實(shí)的世界?! oloLens也不是GoogleGlass(以下簡(jiǎn)稱GG),它比GG多了: 三維感知能力,可以對(duì)身邊的三維場(chǎng)景進(jìn)行建模。而GG只能看到RGB像素值。三維渲染能力。人機(jī)交互能力,可以用手勢(shì)來進(jìn)行控制?!oloLens也不是市場(chǎng)上常見的的AR,常見的基于攝像頭的AR應(yīng)用基于攝像頭有: 基于丑陋的黑白標(biāo)記圖片的AR 以及基于任意圖片的AR。 很炫是嗎,但是它們只能檢測(cè)到圖片所在的那個(gè)平面。HoloL
4、ens比它們都牛,它能檢測(cè)到各個(gè)角度的三維場(chǎng)景! HoloLens的AR是如何得到三維場(chǎng)景深度信息的? 我們回到AR的定義,想要實(shí)現(xiàn)增強(qiáng)現(xiàn)實(shí),必須先理解現(xiàn)實(shí),那么對(duì)于HoloLens而言現(xiàn)實(shí)是什么呢?是傳感器的數(shù)據(jù)。 傳感器是啥?是攝像頭?! ⊥瑯邮菙z像頭,為什么HoloLens就可以感知深度呢?微軟的Kinect在這方面很成功,那么是不是HoloLens上放了一臺(tái)嵌入式的Kinect呢? 答案在下面的原型圖片中:HoloLens擁有有四臺(tái)攝像頭,左右兩邊各兩臺(tái)。通過對(duì)這四臺(tái)攝像頭的實(shí)時(shí)畫面進(jìn)行分析,HoloLens可覆蓋的水平視角和垂直視角都達(dá)到120度?! ?/p>
5、也就是說它采用的是立體視覺/StereoVision技術(shù)來獲取類似下圖的深度圖(depthmap)?! ×Ⅲw視覺是計(jì)算機(jī)視覺學(xué)科的一個(gè)子學(xué)科,專注于從兩個(gè)攝像頭的圖像數(shù)據(jù)中得到真實(shí)場(chǎng)景中的物體離攝像頭的距離。示意圖如下: 下面是基本的步驟,查閱OpenCV文檔可以了解具體到函數(shù)用法: 攝像頭校正,undistortion。由于攝像頭的鏡片出廠時(shí)都存在扭曲,為了得到精確的數(shù)據(jù)需要在使用前進(jìn)行較正。常用的方法是基于棋盤的各個(gè)姿態(tài)拍幾次,然后計(jì)算相機(jī)的矩陣參賽。下圖便是常見的標(biāo)定界面?! D像對(duì)齊,rectification。因?yàn)閮蓚€(gè)攝像頭的位置不同,因此它們各自看到的場(chǎng)
6、景是有偏差的,左邊的攝像頭能看到最左的場(chǎng)景,右邊的看到最右的場(chǎng)景。圖像對(duì)齊的目的是得到相同的場(chǎng)景部分。左右圖像匹配,correspondence??梢允褂肙penCV,得到disparitymap。通過重映射函數(shù),比如OpenCV中的cv::reprojectImageTo3D,得到一張深度圖?! ≈挥幸粡埳疃葓D是不夠的,它只是某一時(shí)刻真實(shí)的場(chǎng)景在攝像頭中的映射。要想得到完整的三維場(chǎng)景,我們需要分析一系列的深度圖。 HoloLens如何從多張深度圖重建三維場(chǎng)景? 答案是SLAM,SimultaneousLocalizationAndMapping,即同步定位與建圖系
7、統(tǒng)。這個(gè)技術(shù)被用于機(jī)器人、無人汽車、無人飛行器的定位與尋路系統(tǒng)。解決的是非常哲學(xué)的問題: 我現(xiàn)在在哪里?我可以去哪里? SLAM有很多實(shí)現(xiàn)的方式,有一個(gè)開源的方式,實(shí)現(xiàn)了很多深度圖的處理和匹配算法,可以認(rèn)為是三維版本的OpenCV?! 《④泧@著Kinect的深度圖數(shù)據(jù)發(fā)明了KinectFushion算法,并發(fā)表了兩篇論文: KinectFusion:Real-time3DReconstructionandInteractionUsingaMovingDepthCamera;KinectFusion:Real-TimeDenseS