<meter id="pryje"><nav id="pryje"><delect id="pryje"></delect></nav></meter>
          <label id="pryje"></label>

          新聞中心

          EEPW首頁 > EDA/PCB > 設計應用 > 為什么總說VR定位動捕技術難 它究竟難在哪里?

          為什么總說VR定位動捕技術難 它究竟難在哪里?

          作者: 時間:2017-10-24 來源:網(wǎng)絡 收藏

            最近有文章解析了因為追星儀和陀螺儀的出錯,加上科學家寫反噴氣代碼導致了造成了價值19億的一臺名為“瞳”的X射線太空望遠鏡被玩壞了。實際上,追星儀和陀螺儀實現(xiàn)的類似于VR中的光學定位及姿態(tài)捕捉。一直以來,大家都在說VR難,那到底難在哪里呢?作者系VR行業(yè)從業(yè)者,本文將會探討下這個問題。

          本文引用地址:http://www.ex-cimer.com/article/201710/368041.htm

            我相信,“瞳”真實的毀滅原因一定比文章中描述的要復雜很多,我寫這篇文章也不是為了跟大家探討“瞳”,而是想跟大家聊一下由此事件引發(fā)的一些思考。

            “瞳”和VR中的光學定位及姿態(tài)捕捉

            瞳的追星儀,在文章中是這樣描述的“追星儀是衛(wèi)星上一個判斷自己方位的儀器。..。..總的來說就是一個小相機,通過跟蹤拍攝背景里一些亮的星星的位置。.. 用來判斷自己所指向的方位。..。..”。

            

            追星儀的定位技術大概是目標物體(即瞳本身)拍攝背景中的星星,根據(jù)得到的圖像及所識別出的星星的位置來獲取自身的方位信息。而瞳的陀螺儀則用來偵測瞳自身的空間姿態(tài)。所以,追星儀和陀螺儀實際上實現(xiàn)的類似于VR中的光學定位及姿態(tài)捕捉。

            (1) 光學定位技術

            VR中的光學定位技術是利用攝像機拍攝目標物體,根據(jù)得到的目標圖像及攝像機自身的位置信息推算出目標物體的位置及姿態(tài)等信息。根據(jù)標記點發(fā)光技術不同,光學定位技術還分為主動式和被動式兩種。

            具體實現(xiàn)流程:定位物體上布滿標記點,標記點可以自主發(fā)射光信號或者反射定位系統(tǒng)發(fā)射來的點信號,使得攝像頭拍攝的圖像中標記點與周圍環(huán)境可以明顯區(qū)分。攝像機捕捉到目標物上標記點后,將多臺攝像機從不同角度采集到的圖像傳輸?shù)接嬎銠C中,再通過視覺算法過濾掉無用的信息,從而獲得標記點的位置。該定位法需要多個 CCD 對目標進行跟蹤定位,需要至少兩幅以上的具有相同標記點的圖像進行亞像素提取、匹配操作計算出目標物的空間位置。實現(xiàn)流程圖如下:

            

            光學定位技術實現(xiàn)流程

            目前,光學定位技術在國際上最受認可的是Optitrack。OptiTrack定位方案適用于游戲與動畫制作,運動跟蹤,力學分析,以及投影映射等多種應用方向,在VR行業(yè)有著非常大的影響力。

            

           ?。?)慣性動作捕捉

            陀螺儀的工作原理是通過測量三維坐標系內(nèi)陀螺轉子的垂直軸與固定方向之間的夾角,并計算角速度,通過夾角和角速度來判別物體在三維空間的運動狀態(tài)。

            它的強項在于測量設備自身的旋轉運動。陀螺儀用于姿態(tài)捕捉,集成了加速度計和磁力計后,共同應用在慣性動作捕捉系統(tǒng)。

            慣性動作捕捉系統(tǒng)需要在運動物體的重要節(jié)點佩戴集成加速度計,陀螺儀和磁力計等慣性傳感器設備,傳感器設備捕捉目標物體的運動數(shù)據(jù),包括身體部位的姿態(tài)、方位等信息,再將這些數(shù)據(jù)通過數(shù)據(jù)傳輸設備傳輸?shù)綌?shù)據(jù)處理設備中,經(jīng)過數(shù)據(jù)修正、處理后,最終建立起三維模型,并使得三維模型隨著運動物體真正、自然地運動起來。

            

            VR到底難在哪里?

            前文提到,“瞳”最終沒有避免毀滅的命運,當然我們得說這次毀滅有一些人為的可避免的錯誤造成,但無法否認的事實是它耗費了人類價值19億的資源。這也從側面證實了定位及動捕技術難度之高。

            當然,應用于VR行業(yè)中時,對于精度等的要求不會有“瞳”那么高,但為了能給使用者帶來超強沉浸感體驗,定位及動捕的精度、延遲、刷新率等也一定要達到非常高的水平。很多人知道2016年被稱為VR的元年,但是又有多少人知道VR自1963年被提出至今耗費了多少科學家、工程師的心血?

            讀者可能會有疑問,大家一直在說VR難,那到底難在哪里呢?接下來筆者就來談談VR定位動捕技術的難點。

            (1)人體運動復雜性

            由于在現(xiàn)實世界里面,“場景”是相對靜止的,我們之所以看到眼前的東西在動,是因為我們頭部、眼部、身體等在移動,使得眼前的“場景”形成了一個動畫。而就是要模擬出現(xiàn)實世界的這種“動畫”,也就是說在的設備中,畫面要根據(jù)人的這些動作做出相應的調整才可以,而這些動作看似使用定位、陀螺儀等設備就可以解決,但其實則不然。人體的動作可以看作是復雜且有一定規(guī)律的一系列動作組合而成,為了完成一個動作,每一個完整的動都可以分解為各個肢體的動作,各個肢體之間的動作既相互獨立又相互限制。人體的各種動作是有多個自由度組成,其復雜性使得計算機追蹤時存在著很多的困難和挑戰(zhàn)。

            這里給大家舉個例子:

            在一些大家很喜歡的搏斗或者射擊游戲中,我們經(jīng)常需要作出身體快速移動,頭部快速轉動,以及高速的轉身、下蹲等動作,一方面這些動作會帶來我們實現(xiàn)的變化,眼前所看到的畫面也會跟隨變化,且虛實情況也有區(qū)別;

            另一方面,這些動作也必須會帶來虛擬世界中的一些反饋,例如瞄準僵尸打出一顆子彈,則虛擬世界中的僵尸將受傷或者倒下。想要讓使用者有真實的體驗,那么追蹤技術就必須可以已非常高的精度實現(xiàn)定位及動捕,否則就不能算是真正的了。

            

           ?。?)精度問題

            定位及動作捕捉精度,對于VR設備非常的重要。如果定位及動作捕捉精度不夠高,會嚴重影響VR體驗效果,也失去了虛擬現(xiàn)實的本質。影響精度問題的因素包括遮擋、干擾以及算法自身的限制等。

            遮擋是各種定位及動捕系統(tǒng)最常見的工作失效原因之一。

            例如光學定位系統(tǒng)中:當掃描光線被用戶或物體遮擋時,空間點三維重構由于缺少必要的二維圖像中的特征點間對應信息,容易導致定位跟蹤失敗。遮擋問題可以通過多視角光學系統(tǒng)來減輕,但這又造成了該系統(tǒng)又一大缺陷——價格過于昂貴。以Optitrack為例,Optitrack是國際上非常受認可的光學定位技術,如果有足夠的攝像機,Optitrack定位及動捕技術可以很好地解決遮擋問題,具有非常高的精度。但是Optitrack攝像機的價格卻讓多添加幾個攝像機變得不那么容易。

            干擾包括外界電磁波干擾和自身設備間相互干擾。不管是光學定位還是激光定位,對外界的電磁波干擾都非常敏感,特別是當設備使用無線的方式通信時,如果存在同波段的電磁干擾,就會造成卡頓、失靈等現(xiàn)象,嚴重影響體驗效果。

            

            還有一個因素是算法本身的限制,例如慣性式動作捕捉技術。

            慣性式動作捕捉系統(tǒng)采用MEMS三軸陀螺儀、三軸加速度計和三軸磁力計組成的慣性測量單元(IMU, Inertial Measurement Unit)來測量傳感器的運動參數(shù)。而由IMU所測得的傳感器運動參數(shù)有嚴重噪聲干擾,MEMS 器件又存在明顯的零偏和漂移, 使得慣性式動作捕捉系統(tǒng)無法長時間地對人體姿態(tài)進行精確的跟蹤。

            目前對于這個問題,G-Wearables的解決方案或許可以參考,其利用激光定位、反向動力學、慣性式動作捕捉相融合的算法來解決,從CES Asia展會上發(fā)布的STEPVR大盒子的體驗來看,融合算法確實較好地解決了慣性式動捕的零偏和漂移問題,實現(xiàn)了1:1精準的動作還原。當然,這款產(chǎn)品的其他方面還需要消費者們自行去體驗,與本文主題無關就不再贅述。

           ?。?)快速運動時的定位及動捕問題

            快速運動時的定位及動捕一直是VR行業(yè)一大難題,甚至現(xiàn)在很多公司都放棄了快速運動時的定位及動捕,通過VR內(nèi)容控制用戶不要有快速的動作來避免這一問題,但這終究無法從根源上解決問題。

            那為什么說,快速運動時的定位及動捕難呢?

            對于光學定位來說,難點在于運動模糊。

            如果目標物體移動過于快速,則會出現(xiàn)運動模糊,即由于攝像設備和目標在曝光瞬間存在相對運動而形成的一種現(xiàn)象。這種現(xiàn)象很常見,我們平時用手機拍攝人物時,如果人物快速移動(例如奔跑、迅速起身等),則我們拍攝的圖片即是模糊的,在VR的光學定位中是一樣的。

            光學定位系統(tǒng)利用多臺攝像頭拍攝目標物體,再利用所獲得的圖像信息及攝像頭的位置信息來最終推算目標的空間位置,并基于這樣的空間位置通過IK算法或者慣性傳感器等來推算目標物體的動作。那么如果目標物體處于快速運動中,則攝像頭拍攝的圖像就存在模糊,信息不可用,也就無法實現(xiàn)精準的定位。因此基于光學定位的VR系統(tǒng),在目標物體快速移動時會出現(xiàn)卡頓、跳點等現(xiàn)象。

            對于激光定位技術來說,難點在于兩束激光掃描存在時間間隔。

            激光定位技術需要水平、垂直兩個方向上的激光扇面對整個定位空間進行掃描,目標物體綁定的傳感器必須接收到水平、垂直兩個方向上的激光后方可進行定位,缺一不可。然而,這兩個方向上的激光扇面是先后掃描,也就是存在時間差,如果目標物體迅速移動,則會出現(xiàn)水平和垂直兩個方向上激光掃描到傳感器時傳感器所在的位置不一樣,也就無法定位準確,進而影響動作捕捉。

            (4)大范圍應用問題

            大范圍應用問題一直困擾著VR行業(yè),最重要的就是因為定位技術較難擴展。

            對于主動式、被動式這樣的光學定位技術,大范圍應用最大的攔路虎是成本。

            光學定位系統(tǒng)對攝像頭要求非常高,造價也就非常昂貴,幾萬甚至上十萬。而要采用多視角光學系統(tǒng)就需要很多這樣的攝像頭,如果在這樣的成本基礎上再做大范圍應用,那么就需要更多的攝像頭,如下圖。這樣就會導致成本翻幾倍,整個定位系統(tǒng)的成本高得難以承受。

            

            對于激光定位,大范圍應用最大的難題是擴展。

            由于激光的掃射面積有限,因此,定位空間受到激光射程的限制,一般在5*5*2m范圍左右。這就使得激光定位技術做大范圍的應用難度非常高,使用受限。

            為了解決這一問題就必須采取擴展方案,即將多個這樣的5*5*2m連接在一起形成一個大范圍的定位應用,如下圖:

            

            圖中藍色模塊代表激光發(fā)射基站,每個子定位區(qū)間有兩個激光發(fā)射基站,擴展方案即是復制多個子定位區(qū)間。

            可是這又涉及到全局定位這一難題,即需要將各個子空間的坐標系下的定位轉換成全局坐標系下的定位。此外由于光塔過多會產(chǎn)生相互干擾,因此不可隨意增加定位光塔的數(shù)量來擴展定位空間。目前國內(nèi)采用激光定位技術的公司,G-Wearables算是其中一家,他們宣稱在Step VR產(chǎn)品上對原有的激光定位技術做改進,其中就包括擴展,等該公司提供技術支持的體驗店開業(yè)后,或許可以去驗證一下擴展效果。

            除此之外,定位及動作捕捉技術還存在延時、硬件限制等難題。

            VR才剛剛起步,想要走得越遠就必須面對并解決這些定位及動捕技術中存在的難題。當然,作為一位VR從業(yè)者,當然不能因為技術的艱難就要求使用者的寬容,我們只能努力研發(fā)更好的產(chǎn)品,讓VR設備有一天可以像智能手機一樣走進每一個用戶的生活0。



          評論


          相關推薦

          技術專區(qū)

          關閉
          看屁屁www成人影院,亚洲人妻成人图片,亚洲精品成人午夜在线,日韩在线 欧美成人 (function(){ var bp = document.createElement('script'); var curProtocol = window.location.protocol.split(':')[0]; if (curProtocol === 'https') { bp.src = 'https://zz.bdstatic.com/linksubmit/push.js'; } else { bp.src = 'http://push.zhanzhang.baidu.com/push.js'; } var s = document.getElementsByTagName("script")[0]; s.parentNode.insertBefore(bp, s); })();