本文則試圖開啟慣性動作捕捉的「眼睛」。透過額外配戴一台手機相機,我們的演算法便有了「視覺」。它可以在捕捉人體運動的同時感知環境訊息,進而實現對人體的精確定位。這項研究來自清華大學徐楓團隊,已被電腦圖形學領域國際頂尖會議SIGGRAPH2023接收。
隨著電腦科技的發展,人體感知與環境感知已成為現代智慧應用中不可或缺的兩部分。人體感知技術透過捕捉人體運動和動作,可以實現人機互動、智慧醫療、遊戲等應用。而環境感知技術則透過重建場景模型,可實現三維重建、場景分析和智慧導航等應用。兩個任務相互依賴,然而國內外現有技術大多獨立地處理它們。研究團隊認為,人體運動和環境的組合感知對於人類與環境互動的場景非常重要。首先,人體和環境同時感知可以提高人類與環境互動的效率和安全性。例如,在自動駕駛汽車中,同時感知駕駛員的行為和周圍環境可以更好地確保駕駛的安全性和順暢性。其次,人體和環境同時感知可以實現更高層次的人機交互,例如,在虛擬實境和擴增實境中,同時感知使用者的動作和周圍環境可以更好地實現沉浸式的體驗。因此,人體和環境同時感知可以為我們帶來更有效率、更安全、更智慧的人機互動和環境應用體驗。
基於此,清華大學徐楓團隊提出了僅使用6個慣性感測器(IMU)和1個單眼彩色相機的同時即時人體動作捕捉、定位與環境建圖技術(如圖1)。慣性動作捕捉(mocap)技術探索人體運動訊號等「內部」訊息,而同時定位與建圖(SLAM)技術主要依賴「外部」訊息,即相機捕捉的環境。前者俱有良好的穩定性,但由於沒有外部正確的參考,全局位置漂移在長時間運動中會累積;後者可以高精度地估計場景中的全局位置,但當環境資訊不可靠時(例如沒有紋理或存在遮蔽),就容易出現追蹤遺失。
因此,本文有效將這兩種互補的技術(mocap和SLAM)結合起來。透過在多個關鍵演算法上進行人體運動先驗和視覺追蹤的融合,實現了穩健和精確的人體定位和地圖重建。
#圖1 本文提出同時人體動作捕捉與環境建圖技術
具體地,本研究將6個IMU穿戴在人的四肢、頭和背上,單眼彩色相機固定在頭部並向外拍攝。這種設計受到真實人類行為的啟發:當人類處於新環境時,他們透過眼睛觀察環境並確定自己的位置,從而在場景中計劃他們的運動。
在我們的系統中,單眼相機充當人類的眼睛,為本技術提供即時場景重建和自我定位的視覺信號,而IMU則測量人體四肢和頭部的運動。這套設置相容於現有VR設備,可利用VR頭顯中的相機和額外佩戴的IMU進行穩定無漂移的全身動捕和環境感知。 整個系統首次實現了僅基於6個IMU和1個相機的同時人體動作捕捉和環境稀疏點重建,運行速度在CPU上達到60fps,並在精度上同時超過了兩個領域最先進的技術。 此系統的即時範例如圖2和圖3所示。
圖2 在70公尺的複雜運動中,本系統精確追蹤人體位置並捕捉人體動作,無明顯位置漂移。
#圖3 本系統同時重建人體運動和場景稀疏點的即時範例。
##圖4 方法總體流程系統的任務是從6個IMU感測器的朝向和加速度測量值和相機拍攝的彩色圖片中即時重建出人體運動、三維場景稀疏點雲、並定位人在場景中的位置。我們設計了一個深度耦合的框架,以充分利用稀疏慣性動作捕捉和SLAM技術的互補優勢。在這個框架中,人體運動先驗與SLAM的多個關鍵組件結合,SLAM的定位結果也回饋給人體運動捕捉。如圖4所示,根據功能,我們將系統分割為四個模組:慣性動作捕捉模組(Inertial Motion Capture
)、相機追蹤模組(Mapping & Loop Closing)和人體運動更新模組(Body Translation Updater
)。以下分別介紹各個模組。慣性動作捕捉慣性動作捕捉模組從6個IMU測量值中估計人體姿態和運動。本模組的設計是基於我們先前的PIP[1]工作,但本工作中不再假設場景是一個平坦的地面,而是考慮在3D空間中捕捉自由人體運動。為此,本文對PIP的最佳化演算法進行了適應性的修改。 具體地,本模組首先透過多階段循環神經網路從IMU測量值中預測人體關節旋轉、速度、腳和地面接觸機率。利用PIP提出的雙重PD控制器,求解人體關節最適控制角加速度與線加速度。隨後,本模組優化人體的位姿加速度
,使其在滿足接觸約束條件
C
下實現PD控制器給出的加速度:#其中J為關節雅可比矩陣,
###為與地面接觸的腳的線速度,約束######C######要求接觸地面的腳的速度要小(不要發生滑動)。此二次規劃問題求解可以參考PIP[1]。透過姿態加速度積分從而獲得人體姿態和運動後,可獲得綁定在人體上的相機的位姿,用於後續模組。 ##########相機追蹤模組以慣性動作捕捉模組給予的初始相機位姿和相機拍攝的彩色影像作為輸入,利用影像資訊優化相機位姿,消除位置漂移。具體地,本模組基於ORB-SLAM3[2]設計,首先提取影像的ORB特徵點,並和已重建的稀疏地圖點(下文介紹)利用特徵相似度進行特徵匹配,得到匹配的2D-3D點對,進而透過優化重投影誤差的方法優化相機位姿。值得注意的是,僅優化重投影誤差可能會受錯誤匹配影響,導致相機位姿優化結果較差。因此,本文在相機追蹤優化中融合人體運動先驗訊息,以慣性動捕結果作為約束,限制重投影誤差的最佳化過程,以及時發現並排除錯誤的特徵點-地圖點匹配。
記地圖點的世界座標為,與之相符的2D影像特徵點的像素座標為 表示所有的匹配關係。以
表示最佳化前的初始相機位姿,則本模組最佳化相機位姿R,t:
其中,為穩健Huber核函數,將三維旋轉映射到三維向量空間,為透視投影運算,動作捕捉旋轉和平移項的控制係數。此優化進行3次,每次都根據重投影誤差將2D-3D匹配分類成正確或錯誤,在下一次優化中只有正確匹配被使用,錯誤匹配則被刪除。透過動作捕捉約束提供的強有力的先驗知識,本演算法可以更好地區分正確和錯誤匹配,從而提高相機追蹤精度。解出相機位姿後,本模組提取出正確匹配的地圖點對數量,並將其作為相機位姿的可信度。
建圖和閉環檢測模組利用關鍵影格重建稀疏地圖點並檢測人體是否到達曾經去過的位置以修正累計誤差。在建圖過程中,我們使用動作捕捉約束的光束平差法(Bundle Adjustment,BA)同時優化稀疏地圖點位置和關鍵幀相機位姿,並引入地圖點置信度以動態平衡動作捕捉約束項和重投影誤差項的相對強弱關係,進而提高結果精確度。當人體運動發生閉環時,進行動作捕捉輔助的位姿圖優化(Pose Graph Optimization)以修正閉環誤差。最終得到最佳化後的稀疏地圖點位置和關鍵幀位姿 ,用於下一幀演算法運行。
具體地,本模組首先根據地圖點的觀測情況計算其置信度,用於後續BA最佳化。如下圖5所示,根據觀測到地圖點的關鍵影格的位置,本模組計算關鍵影格基線長度bi和觀測視角θi以確定地圖點i的置信度,其中k為控制係數。
#圖5 (a)地圖點置信度計算。 (b)相同的基線長度b1=b2,更大的觀測視角(藍色)可以更好地抵抗相機位姿的擾動,導致更小的地圖點位置誤差(e1
隨後,同時優化最近20個關鍵影格相機位姿和它們觀測到的地圖點。其他看見這些地圖點的關鍵幀位姿則在最佳化中固定不變。記所有可優化的關鍵影格集合為K0,所有固定的關鍵影格集合為Kf,關鍵影格j測到的地圖點的集合記為Xj。 記
表示需要最佳化的關鍵影格朝向和三維位置,
表示地圖點位置。則此動作捕捉約束的光束平差法最佳化定義為:
其中,
表示關鍵幀j的上一個關鍵幀,
為動作捕捉約束項的係數。此最佳化要求地圖點的重投影誤差要小,且每個關鍵影格的旋轉、相對位置要和動作捕捉的結果相近,其中地圖點置信度ci動態決定了動作捕捉約束項目和地圖點重投影項之間的相對權重關係:對於未充分重建的區域,系統更傾向於相信動作捕捉的結果;反之,若一個區域被反覆觀測到,系統則更相信視覺追蹤。 該最佳化的因子圖表示如下圖6所示。
#圖6動作捕捉約束的光束平差法最佳化因子圖表示。
當軌跡閉迴路被偵測到後,系統進行閉迴路最佳化。基於ORB-SLAM3[2],記位姿圖中的頂點集合為F,邊的集合為C。則動作捕捉約束的位元姿圖最佳化定義為:
##其中,為關鍵影格j的位姿,為位元姿圖優化之前關鍵影格i與j之間的相對位姿,為動作捕捉所獲得的相機位姿初值,將位姿映射到六維向量空間, 為動作捕捉約束項的相對係數。 此最佳化以動作捕捉先驗為指導,將閉迴路誤差分散到各個關鍵影格。
人體運動更新模組利用相機追蹤模組優化後的相機位姿及可信度,更新動作捕捉模組給予的人體全局位置。此模組使用Kalman濾波器的預測-校正演算法實現。其中,動作捕捉模組提供恆定方差的人體運動加速度,可用於人體全局位置的預測(先驗分佈);而相機追蹤模組則給出相機位置觀測和置信度,用於人體全局位置的校正(後驗分佈)。其中,相機位置觀測的協方差矩陣近似透過匹配的地圖點數計算為如下的對角線陣:
其中為小數避免除數為0。即相機追蹤中成功匹配的地圖點數量越多,相機位姿觀測的變異數越小。利用Kalman濾波演算法,最終預測人體全局位置。
更詳細的方法介紹和公式推導請參考論文原文及附錄部分。
本文方法主要解決了稀疏慣性動作捕捉(Mocap)中全域位置漂移的問題,因此選取主要測試指標為人體全域位置誤差。在TotalCapture和HPS兩個公開資料集上和SOTA mocap方法TransPose[3]、TIP[4]和PIP[1]的定量測試結果比較如下表1所示,定性測試結果對比如下圖7和圖8所示。可以看到本文方法在全域定位精度上大幅超過前人慣性動作捕捉方法(在TotalCapture和HPS上分別提升41%和38%),軌跡與真值的相似度最高。
表1 和慣性動作捕捉工作的全域位置誤差定量比較(單位:米)。 TotalCapture資料集以動作分類,HPS資料集以場景分類。針對我們的工作,我們測試9次並報告中位數和標準差。
圖7 與慣性動作捕捉工作的全域位置誤差定性比較。真值以綠色表示,不同方法預測結果以藍色表示。每個圖片的角落中展示了人體的運動軌跡和當前位置(橙色圓點)。
圖8 和慣性動作捕捉工作的全域位置誤差定性對比(影片)。真值以綠色表示,本文方法為白色,前人工作的方法使用其他不同顏色(見圖例)。
本文從定位精度和地圖重建精度兩個角度分別和SOTA SLAM工作ORB-SLAM3[2]的單目和單目慣性版本進行了比較。定位精度的定量比較結果如表2所示。地圖重建精準度的定量對比結果如表3所示,定性對比結果如圖9所示。可以看到,本文方法相比SLAM大幅提升了系統穩健性、定位精度和地圖重建精度。
表2 與SLAM工作的定位誤差量化比較(誤差單位:公尺)。 M/MI分別表示ORB-SLAM3的單目/單目慣性版本,On/Off表示SLAM的即時和離線結果。由於SLAM經常追蹤丟失,針對SLAM我們分別報告了完整序列(Full)和成功追蹤的幀(Tracked)上的平均定位誤差;本文方法不存在追蹤丟失情況,因此我們匯報完整序列的結果。每個方法測試9次並報告中位數和標準差。對於成功追蹤的幀上的誤差,我們額外報告了成功的百分比。如果一個方法失敗過多次,我們標記它為失敗(用“-”表示)。
#表3 與SLAM工作的地圖重建誤差量化對比(誤差單位:米)。 M/MI分別表示ORB-SLAM3的單目/單目慣性版本。針對三個不同場景(辦公室、室外、工廠),我們測試所有重建的3D地圖點距離場景表面幾何的平均誤差。每個方法測試9次並報告中位數和標準差。如果一個方法失敗過多次,我們標記它為失敗(用“-”表示)。
#圖9 與SLAM工作的地圖重建誤差定性對比。我們展示了不同方法重建的場景點,顏色表示每個點的誤差。
除此之外,本系統透過引入人體運動先驗,針對視覺追蹤失去的穩健性大幅提升。在視覺特徵較差時,本系統可以利用人體運動先驗持續跟踪,而不會像其他SLAM系統一樣跟踪丟失並重置或創建新地圖。如下圖10所示。
#圖10 與SLAM工作的遮蔽穩健性比較。右上角展示了真值軌跡參考。由於SLAM初始化的隨機性,全域座標系和時間戳記沒有完全對齊。
關於更多的實驗結果,請參考論文原文、專案首頁及論文影片。
本文提出了第一個將慣性動作捕捉(inertial mocap) 與SLAM 結合,實現實時同時進行人體動作捕捉、定位和建圖的工作。該系統足夠輕量,只需要人體穿戴稀疏的傳感器,包括 6 個慣性測量單元和一個手機相機。對於線上追蹤,mocap 和 SLAM 透過約束優化和 Kalman 濾波技術進行融合,從而實現更準確的人體定位。對於後端優化,透過將人體運動先驗融入SLAM 中的光束平差優化和閉環優化,進一步減少定位和建圖誤差。
本研究旨在將人體感知與環境的感知融合在一起。儘管這項工作主要關注定位方面,但我們相信,這項工作邁出了聯合運動捕捉和精細環境感知與重建的第一步。
以上是六個慣性感測器與1支手機實現人體動作捕捉、定位與環境重建的詳細內容。更多資訊請關注PHP中文網其他相關文章!