人類動作識別是 AI 系統中的一項功能,專為監控、老年人護理和工業監控等安全關鍵型應用而設計。但是,許多現實世界的數據集受到數據不平衡、隱私限制或對罕見但重要的動作 (如跌倒或事故) 的報道不足的限制。本文中,我將介紹 SynthDa,這是一種模塊化合成數據增強工作流,可在數據稀缺和模型泛化之間架起橋梁。

通過使用合成運動序列和視點隨機化,SynthDa 無需大規模手動標注即可提高模型的魯棒性。此深入探討探討了 SynthDa 如何生成逼真的訓練數據、與 NVIDIA TAO 工具套件集成,并展示了動作識別性能的潛在改進。
這是 NVIDIA 與新加坡理工學院合作開展的 NVIDIA AI 技術中心 (亞太地區南部) 項目。
為何將合成數據用于人類動作識別
人類動作識別是監控、輔助機器人和人機交互等應用的核心。然而,傳統的視頻數據集通常難以應對三個持久的挑戰:類別不平衡、有限的動作多樣性和高昂的注釋成本。在處理現實世界中難以捕捉或成本高昂的罕見、異常或隱私敏感行為時,這些問題尤為明顯。
合成數據提供了可擴展的隱私保護解決方案。我們不依賴大量真實世界的集合,而是從較小的一組真實運動樣本中生成變體。這種方法使我們能夠通過不常見或關鍵動作的示例來系統地豐富數據集,從而在邊緣情況下提高模型性能,而不會出現過擬合。
通過策略性地使用受控比例的合成視頻來增強訓練集,我們在保持動作自然分布的同時,增強了對少數類別的識別。這有助于避免過度平衡的陷阱 (例如誤報增加) ,并確保模型更好地為現實世界的部署做好準備。
為緩解此問題,我們推出了 SynthDa,這是一個旨在緩解現實世界中數據稀缺問題的可用框架。

什么是 SynthDa?
SynthDa 是專為人類動作識別任務設計的數據增強工作流。它兼容現有的計算機模型,例如 NVIDIA TAO 工具套件 (動作識別網絡) ,并提供兩種主要增強模式:
- 合成混合:在現實世界的視頻和生成式 AI 序列之間進行插補,以生成合成變體。
- 真實混合:在真實序列對之間進行插補,以生成合成變體。
該工作流由用于骨架重定向、3D 人體渲染、場景隨機化和輸出視頻合成的模塊化組件組成。圖 1 顯示了 SynthDa 的高級架構。
SynthDa 通過在真實動作之間生成合成人體動作視頻和插值動作混合來緩解數據稀缺的挑戰。該工作流支持隨機環境和可定制的攝像頭角度,以模擬各種條件。
多年來,該項目不斷發展,將生成式 AI 融入其工作流程,顯著擴展了人類姿勢變化的多樣性和真實感。其模塊化設計使其具有高度適應性,用戶可以將 SynthDa 組件集成到現有的工作流中,或將特定模塊替換為模型,從而定制系統以滿足其獨特要求或專門用例。

增強類型和工作流組件
為了生成多樣化且逼真的運動數據,AutoSynthDa 在模塊化工作流中整合了多種增強策略。
合成混合:借助合成虛擬形象為運動注入活力
合成混合從非常真實的東西開始:以 3D 姿態骨骼捕獲的人類運動。但我們不是止步于此,而是通過創意轉換流程來傳遞這一動作。使用 joints2smpl 工具,每個姿態序列都會傳輸到虛擬環境中令人信服的合成虛擬形象。
為了提高多樣性和魯棒性,每個場景都是隨機的。虛擬形象出現在不同的環境、不同的光照條件和獨特的攝像頭角度下。其結果是豐富的合成視頻集合,保留了現實世界的運動模式,同時引入了視覺多樣性,幫助模型更好地泛化。
可以將其想象成同時在十幾個數字世界中展開的動作捕捉角色扮演游戲。
真正的組合:將動作拼接到新的現實中
并非所有數據增強都需要合成虛擬形象。真正的混合需要一對真實的運動序列,并將它們流暢地混合到新的自然過渡中。此插值過程不僅僅能增加體積。它產生了可能發生在現實世界中但從未記錄過的變化。
通過調整插值權重并混合不同的動作,我們可以在不同動作之間產生細微的內部變化或逼真的過渡。這就像根據熟悉的舞蹈動作編排新的舞蹈動作:富有創意、接地氣且數據高效。
隨機場景和攝像頭視角
無論來源是合成還是真實,視覺多樣性都能提高魯棒性。這就是我們為每個渲染視頻隨機化對象布局、表面紋理和攝像頭視角的原因。這些變體有助于模型處理復雜的現實場景,而不會過度擬合到狹窄的條件下。
查找有關隨機化場景和自定義選項的更多詳細信息。
開始使用 SynthDa
SynthDa 可以作為 Python 包安裝。以下步驟總結了設置過程。有關更多詳細信息,請參閱我們的 GitHub 資源庫:
1. 安裝依賴項
pip install -r requirements.txt
2. 克隆所需的存儲庫
克隆以下資源庫并將其放置在項目目錄中:
- StridedTransformer-Pose3D
- 文本轉動態
- joints2smpl
- 慢速
- 從 Blender 官方版本存檔中下載 Blender 3.0
3. 配置設置
在根目錄中創建 .env
文件,其中包含每個克隆倉庫和 API 密鑰的路徑。
4. 下載預訓練模型
按照 GitHub 文檔中的說明下載所有預訓練檢查點。將其放置在每個存儲庫各自的文件夾中。
5. 驗證每個組件
在運行完整的 SynthDa 工作流之前,請測試每個子模塊:
- StridedTransformer:
python demo/vis.py --video sample_video.mp4
- 文本轉動態:
python gen_motion_script.py --name Comp_v6_KLD01 --text_file input.txt
- joints2smpl:
python fit_seq.py --files test_motion2.npy
- Blender:使用
./blender -b -P animation_pose.py
測試渲染
6. 使用 running.py 作為指南,生成合成數據樣本

7. 自定義優化循環
AutoSynthDa 的一項關鍵功能是支持迭代優化。用戶可以使用來自下游模型性能的反饋來動態優化合成數據質量,而不是依賴于靜態增強。
- 生成一次姿勢對 開始時,通過以下方式生成合成姿態:- 真實和真實的運動源對,或 – 真實和合成的運動源對 (例如,使用生成式 AI 生成姿態) 這些姿態對可重復用于插值;您無需為每次迭代重新生成姿態。
- 定義循環邏輯 使用模型精度指導選擇插值權重。從默認值 (例如 0.5) 開始,然后評估附近的權重,并向性能最佳的權重移動
- 實現 calculate_new_weight (有限差近似值) 為調整插值權重,我們使用簡單的有限差分近似值。這通過以較高或較低的權重評估模型準確性來估算改進方向。
8. 使用 NVIDIA TAO 工具套件進行訓練和測試
- 假設您已選擇 NVIDIA TAO 工具套件,則可以選擇在 Docker 中使用以下命令進行訓練和測試:
# Sample command for training
action_recognition train -e ./specs/{experiment.yaml} results_dir=./results
action_recognition evaluate -e ./specs/{experiment}.yaml results_dir=./results dataset.workers=0 evaluate.checkpoint=./{path to trained model}.tlt evaluate.batch_size=1 evaluate.test_dataset_dir=./{path to directory} evaluate.video_eval_mode=center
詳細了解 NVIDIA TAO 工具套件動作識別網絡。
SynthDa 的真實用戶
SynthDA 已被研究、學術界和行業的真實用戶采用和測試,證明了其在各種動作識別場景中的實用價值。
新加坡國立教育學院 (南洋理工大學) 和 Hwa Chong Institute
在新加坡南洋理工大學旗下國立教育學院 (NIE) 的研究人員的領導下,SynthDa 在現實世界中最具前景的應用之一是在教育領域。SynthDa 正在用于一個正在進行的項目,為學校實驗室的科學實驗生成合成視頻數據。這項工作旨在訓練計算機視覺模型,通過監控學生活動和實時識別關鍵操作 (例如誤用實驗室設備或程序錯誤) 來幫助教師。
此項目直接解決了對真實學生視頻數據的訪問受限問題,這是隱私法規和數據稀缺帶來的常見挑戰。通過使用模擬真實學生行為的合成視頻數據,NIE 的團隊正在努力構建更安全、響應更靈敏的 AI 賦能教學工具。
自那時起,該項目已擴展到新加坡一流的中學 — — 華中師范大學,研究人員計劃在該大學中試用在實際課堂環境中使用合成數據訓練的 AI 模型。Hwa Chong Institute 目前正在與 NIE 的研究團隊合作,拍攝學生出于訓練和研究目的進行科學實驗的真實畫面。通過此次合作,SynthDa 在展示合成數據如何使 AI 系統在保護學生隱私至關重要的教育環境中可行且合乎道德的過程中發揮了基礎性作用。
日本志賀大學
來自志賀大學 (日本志賀根市) Yoshihisa Lab 的研究人員已經開始探索使用 SynthDa 生成不同的人類運動數據。通過使用 SynthDa 獨特的基于 SDG 的插值法,他們可以生成豐富的姿態變化,可導出為 .mp4 或 .fbx 文件。他們的項目專注于使用 SynthDa 和 IoT 等 AI 技術,以確保安全的自行車使用。
日本東京大學 Matsuo-Iwasawa 實驗室
東京大學松尾巖澤實驗室專注于前沿深度學習研究,通過教育、研究和創業生態系統培養推動未來創新的先驅者。日本東京。目前正在與東京大學松尾巖澤實驗室合作探索 SynthDa,重點關注其在現實世界機器人系統中的模仿學習潛力。除了機器人開發之外,該項目還旨在支持更廣泛的用例,例如沉浸式環境中的自適應世界建模和多模態學習。
未來工作
未來的工作包括擴展 SynthDa 以支持多人動作,以及針對醫療健康和機器人等特定領域進行微調。SynthDa 旨在進行改進并與您現有的工作流程集成;因此,我們的存儲庫包含您可以交換和拼接的各個組件,以創建您的 SynthDa 版本。向我們展示您在 SynthDa 上的創作和使用情況,即使您的個人研究項目或研究工作也是如此。
有關更多信息,請訪問 SynthDa GitHub 存儲庫,并閱讀有關合成數據的更多信息。SynthDa 演示可在 HuggingFace 上獲取。
如果您在項目或基準測試中試用 SynthDa,請告知我們,并通過我們的存儲庫連接。目前,您可以為哪些應用程序和用例部署 SynthDa?
致謝
新加坡國立教育學院 (南洋理工大學) 、日本滋賀大學、日本東京大學、Chek Tien Tan (SIT) 、Indri Atmosukarto (SIT) 和 Simon See (NVIDIA)
特別感謝以各種方式幫助 SynthDa 的所有其他同事。
?