Meta Reality Labs 最近開發了一款名為“Sapiens”的人工智能模型,這款模型主要用於處理人類視覺任務,提供高分辨率的圖像分析和理解功能。Sapiens 模型能夠識別和分析圖片或視頻中的人類及其動作,這些任務包括識別人類的姿勢、分割身體部位、測量深度以及判斷物體表面的角度。該模型在超過 3 億張人類圖像上進行了訓練,能夠在各種複雜的環境下表現出色。
主要功能
- 2D 姿態估計:Sapiens 模型能夠識別和估計人類在二維圖像中的姿勢,這對於視頻監控、虛擬現實、運動捕捉和醫療康復等領域至關重要。該模型能夠準確地檢測並預測人體的關鍵點(如關節、面部特徵等),即使在多人場景中也能良好地工作。
- 身體部位分割:Sapiens 模型能夠將圖像中的人類身體部分進行精確分割,例如識別和區分手、腳、頭等不同部位。這在醫學圖像分析、虛擬試衣、動畫製作以及增強現實(AR)等領域具有重要應用。
- 深度估計:Sapiens 模型能夠預測圖像中物體的深度信息,這有助於理解三維空間中的距離和佈局。深度估計在自動駕駛、機器人導航、3D 建模和虛擬現實中至關重要。
- 表面法線預測:Sapiens 模型可以推斷圖像中物體表面的方向,這對於更好地理解物體的形狀和材質非常重要。表面法線預測廣泛應用於 3D 渲染、物理模擬、逆向工程和光照處理等領域。
應用場景
Sapiens 模型主要應用於多個關鍵的人類視覺任務領域,其應用場景和用途包括:
- 2D 姿勢估計:在視頻監控、虛擬現實、運動捕捉、醫療康復等領域,2D 姿勢估計是關鍵技術之一。Sapiens 能夠準確地檢測並預測人體的關鍵點,這使得它在動作分析和人機交互中具有廣泛的應用潛力。
- 身體部位分割:在醫學圖像分析、虛擬試衣、動畫製作以及增強現實(AR)等領域,精確的人體部位分割是基礎性技術。Sapiens 模型能夠將圖像中的每個像素精確分類為身體的不同部位,這有助於開發更精細化的虛擬服裝試穿、醫學診斷工具以及更加自然的虛擬人物動畫。
- 深度估計:深度估計在自動駕駛、機器人導航、3D 建模和虛擬現實中至關重要,幫助理解場景中的三維結構。Sapiens 模型能夠從單張圖像中推測出場景的深度信息,特別是在人類場景中。通過生成高質量的深度圖,它支持各種需要理解空間關係的應用,如自動駕駛中的障礙物檢測和機器人路徑規劃。
- 表面法線預測:表面法線預測廣泛應用於 3D 渲染、物理模擬、逆向工程和光照處理等領域。Sapiens 模型可以推斷圖像中每個像素的表面法線方向,這對於生成高質量的 3D 模型和實現更真實的光照效果至關重要。在需要精確表面特徵的應用中,如虛擬現實和數字內容創作中,這一功能顯得尤為重要。
- 通用人類視覺任務:Sapiens 模型可以應用於任何需要理解和分析人類圖像的場景,包括社交媒體內容分析、安全監控、運動科學研究以及數字人類生成等。由於其在多個任務上的強大表現,Sapiens 可以作為一個通用的基礎模型,支持各種以人為中心的視覺任務,從而加速相關應用的開發。
- 虛擬現實和增強現實:虛擬現實(VR)和增強現實(AR)應用中,需要高度精確的人體姿勢和結構理解,以實現沉浸式體驗。Sapiens 通過提供高分辨率、精確的人體姿勢和部位分割,支持在虛擬環境中創建逼真的人類形象,並且能夠動態適應用戶的動作變化。
- 醫療與健康:在醫療成像和康復訓練中,精確的姿勢檢測和人體分割可以用於病患監控、治療跟蹤和康復指導。Sapiens 模型能夠幫助醫療專業人士分析患者的姿勢和運動情況,提供更個性化和有效的治療方案。
技術方法
- 數據集與預處理
- Humans-300M 數據集:Sapiens 模型的預訓練數據集為 Humans-300M,一個包含 3 億張“自然場景”(in-the-wild)人類圖像的大規模數據集。數據集經過精心策劃,去除了水印、文本、藝術描繪或不自然的元素。
- 數據篩選:使用預訓練的邊界框檢測器篩選圖像,僅保留檢測分數高於 0.9 且邊界框尺寸大於 300 像素的圖像,從而確保數據質量。
- 多視圖捕捉與標註:為精確捕捉人體姿勢和部位,使用多視圖捕捉技術獲取圖像,並手動標註了 308 個關鍵點和 28 個身體部位類別,生成高質量的標註數據。
- 模型架構
- 視覺變換器(Vision Transformers, ViT):Sapiens 模型採用了 Vision Transformers(ViT)架構,該架構在圖像分類和理解任務中表現優異。通過將圖像劃分為固定大小的非重疊小塊(patch),模型能夠處理高分辨率輸入,並進行細粒度的推理。
- 編碼器-解碼器架構:模型的基本架構為編碼器-解碼器。編碼器負責從圖像中提取特徵,並初始化為預訓練權重,解碼器則是一個輕量級且任務特定的模塊,隨機初始化並與編碼器一起進行微調。
- 遮掩自編碼器(Masked Autoencoder, MAE)預訓練
- 遮掩策略:使用 MAE 方法進行模型預訓練,模型通過觀察部分遮掩的圖像來重建原始圖像。這種策略使模型能夠學習到更加魯棒的特徵表示。
- 高分辨率輸入:預訓練時的輸入圖像分辨率設置為 1024 像素,相比於現有的視覺模型,這帶來了 4 倍的計算複雜度,但同時也提高了模型的輸出質量。
- 多任務學習:通過在高質量的標籤數據上進行微調,Sapiens 模型能夠處理 2D 姿勢估計、身體部位分割、深度估計和表面法線預測等多項任務。
- 關鍵任務方法
- 2D 姿勢估計:採用自上而下的方法,從輸入圖像中檢測 K 個關鍵點的位置。模型通過預測每個關鍵點的熱圖來確定它們的位置,訓練過程中使用均方誤差損失函數(MSE)優化模型。
- 身體部位分割:將輸入圖像中的每個像素分類為 C 個類別,採用加權交叉熵損失函數(WeightedCE)進行訓練。模型支持標準的 20 類分割詞彙表和擴展的 28 類詞彙表。
- 深度估計:採用修改後的分割架構進行深度估計,輸出通道為 1(回歸任務),使用合成數據生成的高分辨率深度圖進行訓練,損失函數為相對深度損失(Ldepth)。
- 表面法線預測:預測每個像素的法線向量的 xyz 分量,訓練過程中使用的損失函數為 Lnormal,包括 L1 損失和法線向量之間的點積損失。
- 大規模預訓練與微調
- 預訓練規模:Sapiens 模型在 3 億張圖像上進行大規模預訓練,並在多達 1024 個 A100 GPU 上運行 18 天,使用 PyTorch 框架。
- 優化方法:採用 AdamW 優化器,並結合餘弦退火(cosine annealing)和線性衰減(linear decay)學習率策略進行優化。不同層次使用差分學習率,以確保模型的泛化能力。
- 微調策略:在預訓練的基礎上進行微調,輸入圖像被調整為 4:3 的寬高比,並使用標準的數據增強方法(如裁剪、縮放、翻轉和光度失真)。
- 視覺變換器(Vision Transformers, ViT):Sapiens 模型採用了 Vision Transformers(ViT)架構,該架構在圖像分類和理解任務中表現優異。通過將圖像劃分為固定大小的非重疊小塊(patch),模型能夠處理高分辨率輸入,並進行細粒度的推理。
- 編碼器-解碼器架構:模型的基本架構為編碼器-解碼器。編碼器負責從圖像中提取特徵,並初始化為預訓練權重,解碼器則是一個輕量級且任務特定的模塊,隨機初始化並與編碼器一起進行微調。
實驗結果

- 2D 姿勢估計:Sapiens 模型在 2D 姿勢估計任務中表現優異,特別是在全身、面部、手部和足部的關鍵點檢測上,顯著超越了現有的最先進方法。
- 身體部位分割:Sapiens 模型在身體部位分割任務中實現了更高的平均交並比(mIoU)和像素準確率(mAcc),在細節豐富的分割任務中表現尤為出色。
- 深度估計:Sapiens 模型在深度估計任務中表現出色,尤其在人類場景中,其深度估計精度顯著優於現有方法,特別是在多人的複雜場景中。
- 表面法線預測:在表面法線預測任務中,Sapiens 模型展現了更高的精度和一致性,在不同的場景下均表現出色,顯著降低了平均角度誤差。
預訓練數據源:以人為中心的預訓練數據集對提升 Sapiens 模型在各項任務中的表現至關重要,證明了人類特定數據的重要性。
零樣本泛化:Sapiens 模型展示了廣泛的零樣本泛化能力,能夠適應不同的場景、年齡段和視角,儘管訓練數據有限。
項目地址:Meta Reality Labs Sapiens
論文:arXiv
GitHub:Facebook Research Sapiens