1. 程式人生 > >Intel想用6個深感相機實現全身追蹤

Intel想用6個深感相機實現全身追蹤

對VR來說,追蹤是很關鍵的技術。當前市面上的VR頭顯主要支援手柄和頭部追蹤,一些公司如CTRL-labs曾提出通過電脈衝追蹤手勢的方案、Clay AIR在研發無硬體手勢追蹤技術,而Leap Motion、Magic Leap已經有效果優秀的這方面技術了。

Intel想用6個深感相機實現全身追蹤

 

Holosuit

Valve曾研發針對手部的骨骼追蹤技術,不過這並不能滿足全身追蹤的需求。當前存在一些還在開發中的全身追蹤方案,比如OptiTrack通過六個身體部位捕捉動作的追蹤方案、Teslasuit動作捕捉全身服、Holosuit等。

Intel想用6個深感相機實現全身追蹤

 

上個月底,Intel實感技術CTO辦公室的軟體工程師Philip Krejov向大家展示了一種通過攝像頭追蹤全身的方案。據悉,這是一種基於深度學習的VR/AR人體動作識別技術,使用的硬體包括攝像機和HTC Vive追蹤器,在價效比方面比全身服更有優勢。

據青亭網瞭解,在此之前已經出現相似的技術,比如2017年,美國卡內基美隆大學認知計算研究室曾提出用於實時多人動作識別的通用機器學習架構OpenPose,它能夠識別單個影象中135個關鍵點,缺點是僅支援6-12fps的幀率。

Intel想用6個深感相機實現全身追蹤

 

OpenPose

Stacked Hourglass Networks(堆疊沙漏網路結構)也是一款通用的動作識別架構,它和OpenPose一樣都是非常精準,缺點是受GPU限制。每一塊堆疊的沙漏本身是一個複雜的捲曲神經網路,它們通過外在影象和熱量圖來估計人體動作。

Intel想用6個深感相機實現全身追蹤

 

DensePose

Facebook在2018年曾提出DensePose資料集和網路架構,它能夠識別人體表面,適用於追蹤人體輪廓以及身體活動原理,缺點是會受到光線限制以及訓練過程繁瑣(每年需要在5萬張人像上人工標記500萬個點)。

Intel想用6個深感相機實現全身追蹤

 

Intel想用6個深感相機實現全身追蹤

 

這麼大個的頭顯有沒有很眼熟

Krejov表示,他團隊研發的方案結合了深度網路與通用演算法,但是對計算的要求很高,因此主要只能用於PC VR,如果應用在一體機中,那它的體積估計恐怕一般人無法承受。

基於深度的手勢和動作識別

Intel想用6個深感相機實現全身追蹤

 

這型別的識別技術分為機器學習法和模型擬合兩大類,前者通過資料訓練隨機決策森林來識別身體部位(可估計每幀的關節位置),優點是能夠達到很高的幀率,缺點是訓練需要數百萬張圖片;後者利用符號距離轉化功能將預先構建的人體或手部模型向點雲資料靠近,它的優點是模擬了運動學,缺點是需要多次模擬。

Intel想用6個深感相機實現全身追蹤

 

Intel想用6個深感相機實現全身追蹤

 

機器學習結合模型擬合的辦法

Krejov曾將機器學習和模型擬合相結合,編寫了一款能夠在40fps的CPU上執行的手勢識別演算法。他利用隨機決策森林來收集手部資料,然後將資料與模型擬合。同樣適用這種方式的DoubleFusion技術,能夠估測人體的動作和輪廓/表面,不過侷限依然是對計算要求高。

AI+點雲擬合

隨後他由結合機器學習與點雲擬合技術,研發了骨骼識別方案。為了提高追蹤效率,他還結合了頭顯與手柄的位置資訊。

下圖解釋了該方案的動作識別流程,前兩步是基於多檢視系統的校準和影象捕捉,接著是資料標記、資料矯正、實時動作估測(包括關節擬合+機器學習)。

Intel想用6個深感相機實現全身追蹤

 

在實時動作估測部分,機器將捕捉到的人像資料以及頭顯、手柄的位置資料輸入體積很小的捲曲神經網路,生成由人體關節的熱感圖以及頭顯、手柄的浮點值。

採集真實訓練資料

Intel想用6個深感相機實現全身追蹤

 

深度攝像資料包含紅黃藍和深度資訊

Intel想用6個深感相機實現全身追蹤

 

點雲對應不同的紅黃藍和xyz值

Intel想用6個深感相機實現全身追蹤

 

合成數據缺少噪點

Krejov提出的動作識別方案需要收集RGB和深度影象資料(每顆畫素有各自對應的深度值),生成點雲,這樣每一個樣本各代表了人體表面的一點。與真實資料相比,合成的訓練資料缺少了噪點等特性,這些噪點是很難模仿合成的。但是真實資料需要人工標記,因此在時間、成本和準確性上都有侷限。

為了採集動作資料,美國卡內基梅隆大學曾研發全景式三角測量法,即先估計手上關節的平面位置圖,接著製作成手的3D模型,然後再重新投射到2D平面上,反覆優化。OpenPose就是基於這種方案,Krejov的科研團隊曾使用OpenPose來標記平面圖像。

在全景式三角測量法基礎上,Krejov提出了多視角捕捉的概念,這就需要使用更多攝像機,不過好處是能夠採集到更準確的資料。

攝像頭同步和校準

Intel想用6個深感相機實現全身追蹤

 

據悉,他的方案使用了6個RealSense深感相機,多個相機就需要考慮時間同步的問題,還需要將它們校準到同一座標空間。使用三角測量法時,可以採用軟體同步的方式,但是對於容積重建這種更復雜的任務來說,為減少偽影的出現,就不得不考慮同步攝像頭觸發裝置的方法。

Krejov的多視角捕捉法,需要將六臺攝像機等距擺放在追蹤目標周圍。他表示,你也可以使用更多相機,甚至為每臺相機設定需要捕捉的專屬節點。

Intel想用6個深感相機實現全身追蹤

 

裝有HTC Vive追蹤器的校準圖表

Intel想用6個深感相機實現全身追蹤

 

校準過程

他還表示,這些相機需要通過校準,與統一的座標系對齊,於是他們將HTC Vive追蹤器裝在校準圖表上,通過移動來校準相機攝像頭和HTC Vive頭顯。

這項多視角捕捉技術可實現更準確的自動標記,聳肩、擡腿等細微的動作都捕捉得不錯。

資料矯正過程

Intel想用6個深感相機實現全身追蹤

 

在捕捉到人體姿勢資料後,Krejov的方案還可以讓你從任何視角進行渲染和校準,方法是在目標周圍畫一個立方體,然後提取出從六個視角捕捉到的影象。

Intel想用6個深感相機實現全身追蹤

 

排查異常值

Krejov發現,秉承自然規律,人的骨骼在短期內不會改變長度,因此如果想要識別錯誤的自動標註,可通過排查資料異常值。

Intel想用6個深感相機實現全身追蹤

 

動作資料不平均,主要集中在深紫色部分

另外,由於採集到的資料中動作比較單一,重新採集資料也不可避免,目的是為了確保不同動作的資料量平均。

Krejov稱,使用這種方法,就不再需要手動標記,只需要監督拍攝過程,而且在30分鐘內,就能夠採集到5萬張完成標記的訓練樣本。

單一相機方案

為了滿足終端消費者需求,Krejov稱他們也研發了只需要一臺攝像頭的方案。

Intel想用6個深感相機實現全身追蹤

 

Intel想用6個深感相機實現全身追蹤

 

利用之前採集到的多視角訓練資料,他們研發了一款小型機器學習網路(採用關節推理原理),分成六部分,其中大部分是捲曲神經網路。首先他們將影象中的動作資料進行縮小和精簡,加上頭顯和手柄的位置資訊,然後再次放大,生成估計的熱量圖以及關節位置資訊和最初估計的頭顯和手柄位置資訊。

通過參考頭顯和手柄位置,目標超出相機視野的身體部位也可以追蹤,另外參考目標與地面的位置,還能夠分析他是否跳離地面。小型網路可在i7 CPU上執行,重新整理率達200 fps。

模型優化

Intel想用6個深感相機實現全身追蹤

 

橘色為點雲

為了確保準確性,該方案還需要對模型進行優化,方式是將點雲資料與模型對齊,找到差別最小的節點,然後分析這些節點與模型之間的相互影響,以此來生成優化的骨骼追蹤資料。

未優化的模型通常不夠準確,人的動作侷限在小範圍中,因此他們使用機器學習來優化模型。優化後,追蹤更加穩定,

Krejov及團隊在研究方案時,採用了HTC Vive頭顯,優勢是它內建頭部追蹤功能,更能優化單一相機的追蹤方案。

軀幹追蹤部分,該方案採用了模型擬合和機器學習技術,可追蹤腰部,讓你在VR中玩呼啦圈,還能夠追蹤腿和腳,讓你在VR中踢球、跨欄、跑步、跳舞等,這樣就省去了VR跑步機等VR控制器。

為了驗證這項技術,Krejov和團隊編寫了一款Unity外掛,讓他們將估計模型放進遊戲裡。接著他們使用Final IK的現成反向運動方案,將遊戲中的人物與估計模型疊加。

Intel想用6個深感相機實現全身追蹤

 

他發現,使用這種追蹤方法,他在VR中可以用腳與綵球直接互動,手肘也可以追蹤到,只是使用手柄拿起球還比較困難。

Intel想用6個深感相機實現全身追蹤

 

動作追蹤的一些應用場景

如果Krejov的這骨骼追蹤方案得以應用,將為VR社交和遠端辦公提供更好的互動,目前Magic Leap的Avatar Chat只支援上半身追蹤,而Spatial的遠端協作平臺也並未支援對全身的追蹤。