MotionBert 論文の解釈と詳細な再現チュートリアル

MotionBert: 統合された観点から人間の動作表現を学習する

人間の動きの表現を学習することにより、論文の原著者は人間中心のビデオタスクへの統一されたアプローチを提案しています。モーション エンコーダーは、デュアル ストリーム時空間変換器 (DSTformer) ネットワークを使用して実装されており、骨格関節間の長距離の時空間関係を包括的かつ適応的にキャプチャできます。学習されたモーション表現は複数の下流タスクに簡単に転送され、3 つのタスクで最先端のパフォーマンスを達成し、その多用途性を実証します。
関連リンク:
論文: 人間のモーション表現の学習: 統一された視点
Github: MotionBert

学習を目的として、著者は MotionBert の関連コンテンツを次のように編集しました。
この記事に登場する論文に直接関連するすべてのテキストと画像の著作権は、論文の元の著者に属しており、参照および参照のためにここに表示されます。学ぶだけ。

効果実証

ここに画像の説明を挿入します

実測プロセス

注:この構成をテストする時間と環境は、 、 でありUbuntu22.042023-7-18この環境では次の内容をテストできます。

1. アルファポーズを設定する

MotionBert の 2D ポーズ入力はアルファポーズから取得されるため、最初にビデオを処理するためにアルファポーズにする必要があります。

# 1. Create a conda virtual environment.
conda create -n alphapose python=3.7 -y
conda activate alphapose

# 2. Install specific pytorch version
conda install pytorch==1.12.1 torchvision==0.13.1 torchaudio==0.12.1 cudatoolkit=11.3 -c pytorch

# 3. Get AlphaPose
git clone https://github.com/MVIG-SJTU/AlphaPose.git
cd AlphaPose

# 4. install dependencies
export PATH=/usr/local/cuda/bin/:$PATH
export LD_LIBRARY_PATH=/usr/local/cuda/lib64/:$LD_LIBRARY_PATH
sudo apt-get install libyaml-dev
pip install cython==0.27.3 ninja easydict halpecocotools munkres natsort opencv-python pyyaml scipy tensorboardx  terminaltables timm==0.1.20 tqdm visdom jinja2 typeguard pycocotools
################Only For Ubuntu 18.04#################
locale-gen C.UTF-8
# if locale-gen not found
sudo apt-get install locales
export LANG=C.UTF-8
######################################################

# 5. install AlphaPose 
python setup.py build develop

# 6. Install PyTorch3D (Optional, only for visualization)
conda install -c fvcore -c iopath -c conda-forge fvcore iopath
conda install -c bottler nvidiacub
pip install pytorch3d

github プロジェクトページ からダウンロードしyolov3-spp.weightsAlphaPose/detector/yolo/data そのようなフォルダーがない場合は作成してください。
ここに画像の説明を挿入します

FastPose事前トレーニングされたモデルを次の場所にダウンロードしますAlphaPose/pretrained_models
ここに画像の説明を挿入します

2. アルファポーズをテストする

python scripts/demo_inference.py --cfg configs/halpe_26/resnet/256x192_res50_lr1e-3_1x.yaml --checkpoint pretrained_models/halpe26_fast_res50_256x192.pth --indir examples/demo/ --save_img

AlphaPose/examples/demoフォルダー内の写真が処理に使用され、AlphaPose/examples/res処理結果がフォルダーに表示されます。
ここに画像の説明を挿入します
ここに画像の説明を挿入します

3. 姿勢推定のためにビデオをモデルにインポートします。

python scripts/demo_inference.py --cfg configs/halpe_26/resnet/256x192_res50_lr1e-3_1x.yaml --checkpoint pretrained_models/halpe26_fast_res50_256x192.pth --video examples/demo/test_video.mp4 --save_video

ここに画像の説明を挿入します

4.motionbertの設定

conda create -n motionbert python=3.7 anaconda
conda activate motionbert
# Please install PyTorch according to your CUDA version.
conda install pytorch torchvision torchaudio pytorch-cuda=11.6 -c pytorch -c nvidia
pip install -r requirements.txt

5. motionbertで3Dポーズを生成する

motionbert-3dposeを参照してチェックポイント ファイルをcheckpoint/pose3d/FT_MB_lite_MB_ft_h36m_global_lite/
ダウンロードし、実行するために MotionBERT ディレクトリに保存します。

mkdir -p checkpoint/pose3d/FT_MB_lite_MB_ft_h36m_global_lite

best_epoch.binファイルをこのフォルダーに配置し
、MotionBERT ディレクトリで実行します。

python infer_wild.py \
--vid_path <your_video.mp4> \
--json_path <alphapose-results.json> \
--out_path <output_path>

私の例によれば、それは次のとおりです。

python infer_wild.py \
--vid_path test_demo/AlphaPose_test_video.mp4 \
--json_path test_demo/alphapose-results.json \
--out_path test_demo

motionbert注:このファイルを実行するには、Conda Envに切り替える必要があります。

conda activate motionbert

エラーが次のような場合:

qt.qpa.plugin: Could not load the Qt platform plugin "xcb" in "/home/hermanye/anaconda3/envs/motionbert/lib/python3.7/site-packages/cv2/qt/plugins" even though it was found.
This application failed to start because no Qt platform plugin could be initialized. Reinstalling the application may fix this problem.

opencvを再インストールするだけです

pip uninstall opencv-python
pip install opencv-python-headless

ここに画像の説明を挿入します

6. motionbertでメッシュを作成する

motionbert-meshを参照してチェックポイント ファイルをダウンロードして保存します。checkpoint/mesh/FT_MB_release_MB_ft_pw3d/

MotionBERTディレクトリで実行

mkdir -p checkpoint/mesh/FT_MB_release_MB_ft_pw3d

best_epoch.binファイルをフォルダーに置きます
注:ファイル名は手順 4 のファイルと同じですが、同じファイルではないため、識別する必要があります。

smplifyにアクセスしてSMPL をダウンロードするには、アカウントを登録する必要があります。
ここに画像の説明を挿入します

/smplify_public/code/models/basicModel_neutral_lbs_10_207_0_v1.0.0.pkl名前を変更しSMPL_NEUTRAL.pklてフォルダーに置きますMotionBERT/data/mesh。フォルダーが存在しない場合は、フォルダーを作成します。

次に、データ セットをダウンロードし、MotionBERT によって提供されたデータ セットをMotionBERT/data/meshフォルダーに配置します
ここに画像の説明を挿入します
。次のエラーが発生しました。

Traceback (most recent call last):
  File "infer_wild_mesh.py", line 71, in <module>
    model = MeshRegressor(args, backbone=model_backbone, dim_rep=args.dim_rep, hidden_dim=args.hidden_dim, dropout_ratio=args.dropout)
  File "/home/hermanye/motion_bert_ws/src/MotionBERT/lib/model/model_mesh.py", line 87, in __init__
    self.head = SMPLRegressor(args, dim_rep, num_joints, hidden_dim, dropout_ratio)
  File "/home/hermanye/motion_bert_ws/src/MotionBERT/lib/model/model_mesh.py", line 30, in __init__
    mean_params = np.load(self.smpl.smpl_mean_params)
  File "/home/hermanye/anaconda3/envs/motionbert/lib/python3.7/site-packages/numpy/lib/npyio.py", line 417, in load
    fid = stack.enter_context(open(os_fspath(file), "rb"))
FileNotFoundError: [Errno 2] No such file or directory: 'data/mesh/smpl_mean_params.npz'

MotionBERT の作成者が指定したデータセットの名前が間違っていると思われるため、MotionBERT ディレクトリにh36m_mean_smpl.npz変更して実行する必要があります。smpl_mean_params.npz

python infer_wild_mesh.py \
--vid_path <your_video.mp4> \
--json_path <alphapose-results.json> \
--out_path <output_path> \
--ref_3d_motion_path <3d-pose-results.npy> # Optional, use the estimated 3D motion for root trajectory.

私の例によれば、それは次のとおりです。

python infer_wild_mesh.py \
--vid_path test_demo/AlphaPose_test_video.mp4 \
--json_path test_demo/alphapose-results.json \
--out_path test_demo \
--ref_3d_motion_path test_demo/X3D.npy # Optional, use the estimated 3D motion for root trajectory.

ここに画像の説明を挿入します
再現には成功しましたが、@bitingcat と比べるとなぜ違和感があるのか​​わかりません。
実際、今朝、MotionBert の効果は非常に良好でした。もともと、ロボット アームの動きのリアルタイム同期マッピングに使用することを目的としていたものでした。テスト後、処理時間が長すぎて、元のコードがMotionBertの構造が面倒すぎて諦めて始めました。

紙翻訳

ヒント:
著者のレベルには限界があるため、以下の翻訳と注釈には事実誤認が含まれている可能性があります。
論文の詳細については、原著者の論文ページを参照してください。

ここに画像の説明を挿入します

タイトル

人間の動作表現の学習: 統一された視点

著者

Wentao Zhu1 Xiaoxuan Ma1 Zhaoyang Liu2 Libin Liu1 Wayne Wu2,3 Yizhou Wang1
1 北京大学 2 SenseTime Research 3 上海 AI 研究所
{wtzhu,maxiaoxuan,libin.liu,yizhou.wang}@pku.edu.cn
{zyliumy,wuwenyan0503}@gmail .com

まとめ

私たちは、大規模で異種のデータリソースから人間の動きの表現を学習することにより、人間中心のさまざまなビデオタスクを処理するための統一された視点を提案します。具体的には、ノイズの多い部分的な 2D 観測から基礎となる 3D モーションを復元するようにモーション エンコーダをトレーニングする事前トレーニング ステージを提案しますこの方法で得られた動作表現は、幾何学的、運動学的、物理的な知識を組み合わせたもので、複数の下流タスクに簡単に転送できます。デュアルストリーム時空間変換器 (DSTformer) ニューラル ネットワークを使用してモーション エンコーダを実装します。骨格関節間の長距離の時空間関係を包括的かつ柔軟にキャプチャし、ゼロからトレーニングした場合にこれまでで最も低い 3D 姿勢推定誤差を示します。さらに、私たちが提案するフレームワークは、事前にトレーニングされたモーション エンコーダーを微調整し、学習されたモーションの普遍性を示す単純な回帰ヘッド (レイヤー 1 ~ 2) を追加するだけで、3 つの下流タスクすべてで最先端のパフォーマンスを達成します。表現。

要約コメント

この論文の主な貢献は、人間の動きの表現を学習し、この学習した表現をさまざまなタスクに適用するための新しい方法を提案することです。事前トレーニング段階では、著者らはノイズの多い部分的な 2D 観察から 3D 人間の行動を復元するモデルをトレーニングします。このモデルは、後続のミッションで特定のタスクに適合するように微調整できます。このアプローチの重要な特徴は、人間の骨格の空間と時間の関係を捉えることができる 2 ストリームの時空間変換ネットワークを使用していることです。これにより、モデルはトレーニング中に 3D 姿勢推定エラーを非常に低く抑えることができます。
ここに画像の説明を挿入します

1 はじめに

人間の活動を理解して感知することは、長い間、機械知能の中心的な追求でした。この目的を達成するために、研究者は、スケルトン キーポイント、アクション カテゴリ、サーフェス メッシュなど、ビデオから人々に関する意味ラベルを推定するためのさまざまなタスクを定義しましたこれらのタスクは大幅に進歩しましたが、相互に関連した問題ではなく、独立した問題としてモデル化されることがよくあります。たとえば、時空間グラフ畳み込みネットワーク (ST-GCN) は、3D 姿勢推定や動作認識における人間の関節の時空間関係をモデル化するために使用されていますが、これらのモデル間の関係は十分に調査されていません。直観的には、これらのモデルはすべて、さまざまな問題に合わせて設計されているとしても、典型的な人間の動作パターンを認識することを学習しているはずです。しかし、現在の方法では、これらのタスク間の共通点を探索して活用することができません。理想的には、すべての関連タスク間で共有できる、統合された人間中心のビデオ表現を開発できます。

このような表現を開発する際の大きな課題は、利用可能なデータ リソースが異質であることです。モーション キャプチャ (Mocap)システムは、マーカーやセンサーによって取得された忠実度の高い 3D モーション データを提供しますが、キャプチャされたビデオの外観は、多くの場合、単純な屋内シーンに限定されますアクション認識データセットはアクション セマンティクスの注釈を提供しますが、人間のポーズ ラベルが含まれていないか、日常の活動に限定されたアクションしか含まれていません対照的に、屋外ビデオでは、広範囲かつ多様な外観と動きが提供されます。ただし、正確な 2D ポーズ アノテーションを取得するには多大な労力が必要であり、3D 関節位置の実際のデータを取得することはほとんど不可能です。したがって、既存の研究のほとんどは、他のデータ リソースの利点を享受することなく単一タイプの人間の動作データを使用して特定のタスクを解決することに焦点を当てています。

この研究では、人間の動作表現を学ぶための新しい視点を提供します。重要なアイデアは、統一された方法で異種データ リソースから普遍的な人間の動作表現を学習し、この表現を統一された方法で活用してさまざまな下流タスクを処理できるということです。図 1 に示すように、事前トレーニング微調整を含む2 段階のフレームワークを提案します。事前トレーニングの段階では、さまざまなモーション データ ソースから2D スケルトン シーケンスを抽出しランダム マスクとノイズでそれらを破損します続いて、破損した 2D スケルトンから 3D モーションを復元するためにモーション エンコーダーをトレーニングします。この困難なプレテキスト タスクでは、本質的に、モーション エンコーダが、i)時間的な動きから基礎となる 3D 人間の構造を推測すること、ii)誤った観測や欠落した観測を復元することが必要です。このようにして、モーション エンコーダーは、関節の接続、解剖学的制約、時間的ダイナミクスなど、人間の動きの常識を暗黙的にキャプチャします実際には、スケルトン キーポイント間の長距離関係をキャプチャするためのモーション エンコーダとしてデュアル ストリーム時空変換器 (DSTformer) を提案します。私たちは、大規模で多様なデータ リソースから学習したモーション表現をさまざまな下流タスク間で共有し、パフォーマンスを向上させることができると仮説を立てています。したがって、下流タスクごとにタスク固有のトレーニング データ監視信号を使用し、事前にトレーニングされたモーション表現を適応させるための単純な回帰ヘッド。

全体として、この研究の貢献は次の 3 つです。 1) 人間の動きの表現を学習することで、さまざまな人間指向のビデオ タスクを解決するための新しい視点を提供します。2) 大規模だが異質な人間の運動リソースを用いて普遍的な人間の運動表現を学習するための事前学習法を提案する。私たちの方法は、3D モーション キャプチャ データの精度と屋外 RGB ビデオの多様性を同時に活用できます。3) 連結された時空自己注意ブロックを備えた 2 ストリーム Transformer ネットワークを設計します。これは、人間の動作モデリングのユニバーサル スケルトンとして使用できます。実験の結果、上記の設計により、タスク固有の最先端の方法を超えて、一般的な人間の動作表現を複数の下流タスクに転送できることがわかりました。

はじめに注釈

この研究は新たな視点を提供し、人間の動作表現を学習することで人間中心のさまざまなビデオタスクを解決することを目的としています。この目標を達成するために、著者らは事前トレーニングと微調整を含む 2 段階のフレームワークを提案しています。事前トレーニング段階では、さまざまな異種データ リソースを利用して、ノイズや部分的な 2D 観測から 3D モーションを復元できるモーション エンコーダをトレーニングします。この段階でのトレーニングでは、モデルが関節の接続、解剖学的制約、時間的力学などの人間の動きの基本法則を理解し、捉えることができる必要があります。この目的を達成するために、著者らは、スケルトンのキーポイント間の長距離関係を捕捉できるニューラル ネットワークであるデュアル ストリーム時空変換器 (DSTformer) を提案します。事前トレーニング段階が完了すると、下流の各タスクが微調整され、事前トレーニングされたモーション表現を単純な回帰ヘッドで調整できます。この作品の主な貢献

人間中心のビデオタスクを解決するための新しい視点の提供、大規模な異種データを最大限に活用できる事前学習方法の提案、人間の動作モデルとして使用できる一般的なニューラルネットワークの設計などの貢献が含まれます。

2.関連作品

人間の動作表現の学習

初期の研究では、人間の動きを記述するために隠れマルコフ モデルグラフィック モデルを利用していました。金沢らは、3D 人間のダイナミクスの表現を学習するための時間エンコーダーとファンタジー マシンを設計しました。自己教師付きの方法で将来の 3D ダイナミクスを予測するZhang et al . Sun らはさらに、行動ラベルと行動記憶を組み合わせました。動作認識の観点から、さまざまな自己教師ありフロントエンド タスクは、将来予測、パズル、スケルトン コントラスト、速度変化、ビュー間の一貫性、コントラスト再構成などの動作表現を学習するように設計されています。同様の手法は、アクション評価およびアクション再局在化タスクでも検討されています。これらの方法では、同種のアクション データを利用し、対応するフロントエンド タスクを設計し、それらを特定の下流タスクに適用します。この研究では、さまざまな異種データ リソースを統合する統合された事前トレーニング微調整フレームワークを提案し、さまざまな下流タスクでの汎用性を実証します。

3D人間の姿勢推定

単眼の RGB ビデオから3D 人間のポーズを復元することは古典的な問題であり、その方法は 2 つのカテゴリに分類できます。最初のカテゴリでは、CNN を使用して画像から 3D 姿勢を直接推定しますただし、これらの方法の制限の 1 つは、現在のデータ収集技術による 3D ポーズの精度と外観の多様性の間のトレードオフです2 番目のカテゴリは、最初に2D ポーズを抽出し、次に別のニューラル ネットワークを使用して推定された 2D ポーズを3D にアップグレードすることです。改善は、完全に接続されたネットワーク、時間畳み込みネットワーク、GCN、および Transformerを通じて達成できます私たちのフレームワークは 2 番目のカテゴリーに基づいており、提案されたDSTformer を使用して 2D から 3D へのプロモーションを完了します。

スケルトンベースの行動認識

先駆的な研究は、行動認識と人間の姿勢推定の間に本質的な関係があることを指摘しました。人体の関節間の時空間関係をモデル化するために、以前の研究では主にLSTM と GCNが採用されていました。最近、PoseConv3D は、スタックされた 2D ジョイント ヒートマップに 3D-CNN を適用することを提案し、改善された結果を達成しました。NTU-RGB+D120 は、完全に監視された動作認識タスクに加えて、ワンタイム動作認識問題にも注目します。この目的を達成するために、SL-DML はマルチモーダル信号にディープメトリクス学習を適用します。Sabaterらは、治療環境におけるワンショット認識を研究した。我々は、事前トレーニングされたモーション表現がアクション認識タスクによく一般化すること、および事前トレーニング微調整フレームワークがワンショットの課題に対する適切なソリューションであることを実証します。

ボディメッシュ修復

SMPL などのパラメトリック人間モデルに基づいて、多くの研究作品は単一の画像から人間メッシュを回帰することに焦点を当てています。フレームごとの結果は有望ですが、これらの方法をビデオに適用すると、不安定で不安定な結果が生成されます。時間的コヒーレンスを改善するために、PoseBERTSmoothNet は、単一フレーム予測でノイズ除去モジュールと平滑化モジュールを使用することを提案しています。いくつかの作品は、時間的手がかりを利用するためにビデオクリップを入力として受け取りますもう 1 つの一般的な問題は、ペアのイメージと GT メッシュのほとんどが制限されたシーンでキャプチャされるため、上記の方法の一般化能力が制限されることです。この目的を達成するために、Pose2Mesh は、まず既製の姿勢推定器を使用して 2D スケルトンを抽出し、次にそれを 3D メッシュ頂点に持ち上げることを提案します。私たちのアプローチは、最先端のヒューマン メッシュ回復手法を補完し、事前トレーニングされたモーション表現を通じて時間的一貫性をさらに向上させることができます。

関連する作業メモ

  1. このセクションでは、人間の動作表現の学習、3D 人間の姿勢推定、スケルトンベースの動作認識、人間のメッシュの復元という 4 つの主要分野の研究をレビューします。著者は、隠れマルコフ モデル、グラフィカル モデル、深層計量学習、CNN、Transformer など、これらの分野の主要なテクノロジーと手法について言及しました。さらに、著者らは、さまざまな異種データリソースを統合し、さまざまな下流タスクで汎用性を示すことができる、統合された事前トレーニング微調整フレームワークを提案するというこの研究作業の革新性を強調しています。

  2. 人間の動作表現学習の鍵は、大量のデータから人間の動作に関する情報を学習し、その情報をさまざまなタスクに適用することです。深層学習技術を活用することで、研究者は人間の動きを理解して予測するための複雑なモデルを作成できます。

  3. 3D 人間の姿勢推定は、2D 画像またはビデオから 3D 人間の姿勢を復元するタスクです。主なアプローチは 2 つあります。画像から 3D ポーズを直接推定する方法と、最初に 2D ポーズを抽出してから 3D にアップグレードする方法です。この分野における重要な課題は、3D ポーズの精度と、さまざまな人体の形状やポーズを処理するモデルの能力とのバランスをどのように取るかということです。

  4. スケルトンベースの行動認識は人間の姿勢や動きに基づいています

進行中の動作を特定するタスク。この課題の難しさは、人体の関節間の複雑な時空間関係を理解することにあります。

  1. ヒューマン メッシュの復元は、2D 画像またはビデオに基づいて 3D ヒューマン モデルを復元するタスクです。これには、時間的連続性やモデルの一般化機能などの問題に対処する必要があります。

  2. 提案された DSTformer は、人間の動きを理解してモデル化するために使用される Transformer に基づく新しいモデルであり、上記の分野の問題を解決することを目的としています。

3. 方法

3.1 概要

最初の部分で説明したように、私たちの方法は 2 つの段階、つまり統合事前トレーニングタスク固有の微調整で構成されます。最初の段階では、2D から 3D へのタスクを完了するためにアクション エンコーダーをトレーニングし、提案されたデュアル ストリーム時空変換器 (DSTformer) をバックボーン ネットワークとして使用します。第 2 段階では、下流のタスクに適応するように、事前トレーニングされたアクション エンコーダーといくつかの新しいレイヤーを微調整します2D スケルトン シーケンスはさまざまなモーション ソースから確実に抽出でき、変更に対してより堅牢であるため、事前トレーニングと微調整の両方の段階で入力として 2D スケルトン シーケンスを使用します。既存の研究では、2D スケルトン シーケンスを使用してさまざまな下流タスクを処理することの有効性が実証されています。まず DSTformer のアーキテクチャを紹介し、次にトレーニング スキームについて詳しく説明します。
ここに画像の説明を挿入します

3.2 ネットワークアーキテクチャ

上の図は、2D から 3D への変換のためのネットワーク アーキテクチャを示しています。入力 2D スケルトン シーケンスが与えられると、まずそれを高次元の特徴に投影し、次に学習可能な空間位置エンコーディングと時間位置エンコーディングを追加します。次に、シーケンス間モデルDSTformerを使用して特徴を計算します。ここで、N はネットワークの深さです。Tanh 活性化関数を備えた線形層を使用してアクション表現計算します。最後に、アクション表現に対して線形変換を実行して 3D アクションを推定します。ここで、T はシーケンスの長さを表し、J はボディの関節の数を表します。Cin、Cf、Ce、および Cout は、それぞれ入力、機能、埋め込み、および出力チャネルの数を表します。まず、DSTformer の基本的な構成要素、つまりマルチヘッドセルフアテンション (MHSA) を備えた空間ブロックと時間ブロックを紹介し、次にDSTformer のアーキテクチャ設計を説明します。

スペースブロック

空間マルチヘッド セルフ アテンション (S-MHSA) は、同じタイム ステップ内の関節間の関係をモデル化することを目的としています。セルフアテンションを使用して、各ヘッドのクエリ、キー、および値を取得します。

タイムブロック

時間的多頭自己注意 (T-MHSA) は、時間ステップにおける身体関節の関係をモデル化することを目的としています。その計算プロセスは S-MHSA と似ていますが、MHSA が各関節の時間特性に適用され、空間次元で並列化される点が異なります。

デュアルストリーム時空間コンバーター

フレーム内およびフレーム間のボディ ジョイント インタラクションをキャプチャする空間的および時間的 MHSA を考慮して、ストリーム内の空間的および時間的情報を融合するための基本的な構成要素を組み立てます。以下の仮定に基づいて 2 ストリーム アーキテクチャを設計します。 1) 2 つのストリームは包括的な時空間コンテキストをシミュレートできる必要があります。2) 各ストリームは、異なる時空間的側面に特化する必要があります。3) 2 つのストリームを融合する必要があり、融合の重みは入力の時空間特性に従って動的にバランスを取る必要があります。したがって、空間的および時間的 MHSA ブロックを異なる順序でスタックして、2 つの並列計算ブランチを形成します。2 つのブランチの出力特徴は、注意リグレッサーによって予測された適応重みを使用して融合されます。次に、デュアルストリーム融合モジュールを N 回繰り返します。
ここに画像の説明を挿入します

3.3. 統合された事前トレーニング

統合された事前トレーニング フレームワークを設計するとき、私たちは主に 2 つの重要な課題に取り組みます。 1) 普遍的な事前トレーニング タスクを通じて強力なモーション表現を学習する方法。2) 大規模だが異質な人間の動作データをさまざまな形式で活用する方法。

最初の課題では、言語 [12、29、88] と視覚 [7、35] のモデリングで成功した実践を利用して教師あり信号を構築します。つまり、入力の一部をマスクし、エンコードされた表現を使用して入力全体を構築ますこの種の「空白を埋める」タスクは人間の動作分析、つまり2D 視覚観察から失われた奥行き情報の回復、つまり 3D 人間の姿勢推定** に自然に存在することに注意する必要があります。これに触発されて、私たちは大規模な 3D モーション キャプチャ データ [74] を利用し、2D から 3D へのリフティングのための事前トレーニング タスクを設計します。まず、3D モーションを直交投影することによって 2D スケルトン シーケンスを抽出します。次に、ランダムにオクルージョンしてノイズを追加することで破壊し、その結果、オクルージョン、検出失敗、エラーが含まれるという点で 2D 検出結果と同様の、破壊された 2D スケルトン シーケンスが生成されます。特定の確率をジョイントレベルおよびフレームレベルのマスクに適用します。上で説明したモーション エンコーダを使用してモーション表現 E を取得し、3D モーションを再構成します。じゃあ計算してみましょうか?GT 3D スポーツは? L3D 間の結合損失。前作に続き速度低下LOも追加[87,132]。したがって、3D 再構成損失は元の論文の内容によって決まります。

2 番目の課題では、2D スケルトンはさまざまなモーション データ ソースから抽出できるため、多用途の媒体として機能することがわかります。さらに、屋外の RGB ビデオを 2D から 3D へのリフティング フレームワークに組み込み、統合された事前トレーニングを実現します。RGB ビデオの場合、2D スケルトン? 抽出された 2D スケルトンの深さチャネルは本質的に「遮蔽」されていますが、手動の注釈 [3] または 2D ポーズ推定器 [14、101] によって付与できます。同様に、マスキングとノイズを追加して劣化させますか? (? にすでに検出ノイズが含まれている場合は、マスクのみが適用されます)。これらのデータは 3D Sports GT では利用できないのでしょうか? で与えられる重み付き 2D 再投影損失を適用します。計算します。

で、?推定されるのは 3D モーションですか? の 2D 正射影、一方 δ ∈ RT×J は可視性注釈または 2D 検出信頼度によって与えられます。
トレーニング前の総損失は次の式で求められますか? 計算します。

3.4. タスク固有の微調整

学習された特徴埋め込み E は、3D および時間認識のための人間の動作表現として機能します。ダウンストリーム タスクについては、最小限の設計原則を採用しています。これは、浅いダウンストリーム ネットワークを実装し、追加の複雑さを加えずにトレーニングすることです。実際には、追加の線形層または隠れ層を含む MLP を使用します。次に、ネットワーク全体をエンドツーエンドで微調整します。

3D姿勢推定

事前トレーニング タスクとして 2D から 3D へのブースティングを使用するため、事前トレーニングされたネットワーク全体を再利用するだけです。微調整中、入力 2D スケルトンは追加のマスキングやノイズなしでビデオから推定されます。
スケルトンベースのアクション認識。さまざまな人々とタイムステップにわたるグローバル平均プーリングを直接実行します。次に、結果は隠れ層を含む MLP に供給されます。ネットワークは、クロスエントロピー分類損失を使用してトレーニングされます。シングルショット学習の場合、特徴をプールした後に線形レイヤーを適用して、クリップレベルのアクション表現を抽出します。単発学習の詳細な設定については 4.4 節で紹介します。

ボディメッシュ修復

SMPL [70] モデルを使用して人間のメッシュを表現し、そのパラメーターを回帰します。SMPL モデルは姿勢パラメータ θ ∈ R72 と形状パラメータ β ∈ R10 から構成され、計算される 3D グリッドは M(θ, β) ∈ R6890×3 となります。各フレームで姿勢パラメータを回帰するために、1 つの隠れ層を含む MLP にモーション埋め込み E を入力し、結果として θ^ ∈ RT×72 が得られます。形状パラメータを推定するには、ビデオ シーケンスの人体の形状が一貫している必要があることを考慮して、最初に時間次元でプール E を平均化し、それを別の MLP に入力して別の β^ を回帰し、それをシーケンス全体に拡張します。 β^ ∈ RT×10 が得られます。形状 MLP の構造は姿勢回帰の構造と同じであり、[45] で説明されているように、それぞれ平均形状と姿勢で初期化されます。全体の損失は次のように計算されます。
注、動きはありますか? フレーム t 内の各 3D ポーズはメッシュ頂点によって渡されますか? 戻る。

メソッドのアノテーション

この部分は数式が多く、Markdownで書き直すのはさらに面倒です。または、省略して置換するか、元の論文を直接参照することをお勧めします。

概要セクションでは、メソッドの全体的な設計と具体的な実装について説明します。まず、著者らは、事前トレーニング段階と微調整段階を含む 2 段階のアプローチについて説明します。彼らが使用した入力データは 2D 骨格シーケンスでした。このタイプのデータはさまざまなモーション ソースから確実に抽出でき、変更に対して非常に堅牢であるためです。

次に、時系列データの処理に適したシーケンスツーシーケンス モデルであるネットワーク アーキテクチャ DSTformer を紹介します。彼らは、このネットワークで空間的および時間的マルチヘッド セルフ アテンション (MHSA) を使用して、フレーム内およびフレーム間のジョイント インタラクションをそれぞれキャプチャしました。

次に、空間情報と時間情報の両方を考慮し、異なる入力特性に適応するために 2 つの融合重みを動的にバランスさせることができるデュアル ストリーム アーキテクチャを設計しました。

統合事前トレーニングのセクションでは、主に 2 つの重要な問題を解決する統合事前トレーニング方法について説明します。まず、著者らは人間の動作分析で自然に発生する「穴埋め」タスクを使用して、ロバストな動作表現を学習します。このタスクの目標は、2D 視覚観察、つまり 3D 人間の姿勢推定から失われた奥行き情報を回復することです。次に、さまざまなモーション データ ソースから情報を抽出し、2D スケルトンを事前トレーニングするユニバーサル メディアとして 2D スケルトンを使用するアプローチを採用しました。これにより、スケルトンの 2D から 3D への変換を事前トレーニングの統合に使用できるようになります。

タスク固有の微調整セクションでは、タスク固有の微調整方法について説明します。著者らは、3D ポーズ推定、スケルトンベースのアクション認識、ヒューマン メッシュ復元などの特定のタスクに合わせて、学習した機能を微調整しました。これらのタスクに適応するために、線形層の追加や MLP の使用など、事前トレーニングされたネットワークにいくつかの簡単な変更を加えてから、ネットワークをエンドツーエンドで微調整しました。各タスクでは、3D 姿勢推定では事前トレーニングされたネットワークを再利用するなど、適応的なアプローチが採用され、スケルトンベースのアクション認識では、さまざまな人物とタイム ステップで実行され、グローバル平均プーリングが実行され、結果は次のようになります。 MLPにフィードされます。ヒューマン メッシュの復元では、SMPL モデルを使用し、各フレームの姿勢パラメータの回帰手法を採用しています。

4. 実験

4.1. 実装

深さ N = 5、ヘッド番号 h = 8、特徴サイズ Cf = 512、および埋め込みサイズ Ce = 512 を使用して、提案されたデュアルストリーム時空間変換器 (DSTformer) アクション エンコーダーを実装します。事前トレーニング段階では、シーケンス長 T = 243 を使用します。Transformer ベースのスケルトンのおかげで、事前トレーニングされたモデルはさまざまな入力長を処理できます。微調整フェーズでは、スケルトンの学習率を新しいレイヤーの学習率の 0.1 倍に設定します。実験データセットについては、次のセクションで個別に紹介します。実験の詳細については補足資料を参照してください。

注釈

このセクションでは、実験の実装の詳細について説明します。DSTformer は、人間の動作情報をデータから学習してエンコードするために使用される Transformer ベースの深層学習モデルです。このうち、深さ (N) はモデルの層数を表し、ヘッド数 (h) はモデルの並列性を制御する Transformer の重要なパラメーターであり、特徴サイズ (Cf) と埋め込みサイズ ( Ce) 入力データと出力データのサイズパラメータを記述します。事前トレーニング段階のシーケンス長 (T) は、1 回のトレーニング セッションでモデルによって処理される連続フレームの数を指します。

4.2. 事前トレーニング

私たちは、Human3.6M [37] と AMASS [74] の 2 つのデータセットから、豊富でリア​​ルな 3D 人間のモーション データを収集しました。Human3.6M [37] は、一般的に使用されている屋内 3D 人間の姿勢推定データセットで、プロの俳優が日常の動作を実行する 360 万のビデオ フレームが含まれています。以前の研究 [76、87] を参照して、被験者 No. 1、5、6、7、および 8 をトレーニングに使用し、被験者 No. 9 と 11 をテストに使用しました。AMASS [74] は、既存のマーカーベースのモーション キャプチャ (Mocap) データセット [1、2、5、11、15、18、33、36、51、68、71、75、82、95、108、109] のほとんどを統合します。 』と統一された表現方法を採用しています。Mocap データセットは通常、生のビデオを提供しないため、事前トレーニング段階では 2 つのデータセットの画像や 2D 検出結果は使用しませんでした。代わりに、直交投影を使用して、汚染されていない 2D スケルトンを取得します。また、モーションの多様性を向上させるために、2 つの実際の RGB ビデオ データセット、PoseTrack [3] (注釈付き) と InstaVariety [41] (注釈なし) を組み合わせます。人体のキーポイントの定義を Human3.6M に合わせ、[27] に従ってカメラ座標をピクセル座標に校正します。ジョイントの 15% をランダムにゼロ化し、ガウス分布と一様分布の混合からノイズをサンプリングします [17]。最初に 30 エポックだけ 3D データでトレーニングし、次に 60 エポックで 3D データと 2D データでトレーニングします。これはコース学習の実践に従います [9, 116]。

注釈

事前トレーニング段階で、研究者らは Human3.6M と AMASS という 2 つの異なるデータセットを使用しました。どちらにも大量の 3D 人間の行動データが含まれています。また、トレーニング データの多様性を高めるために、PoseTrack と InstaVariety という 2 つのワイルド RGB ビデオ データセットも導入しました。データセットの違いに対処するために、研究者らはデータセット内のキーポイントの定義を統一し、カメラ座標をピクセル座標に校正しました。さらに、モデルをより堅牢にするために、トレーニングにノイズとランダムなドロップアウトを導入しました。

4.3. 3D 姿勢推定

Human3.6M [37] での 3D 姿勢推定のパフォーマンスを評価し、関節位置ごとの平均誤差 (MPJPE) を mm 単位で報告します。これは、予測された関節位置と、ルート関節の平均距離を調整した後のグラウンド トゥルースを測定します。スタックドアワーグラス (SH) ネットワーク [84] を使用してビデオから 2D スケルトンを抽出し、Human3.6M [37] トレーニング セットでネットワーク全体を微調整します。さらに、同じ構造で別のモデルをトレーニングしましたが、事前トレーニングされた重みがなかったため、それらはランダムに初期化されました。表 1 (上) に示すように、ゼロからトレーニングされたモデルは、時空間モデリングを採用した他の Transformer ベースの設計を含む、以前のアプローチよりも優れたパフォーマンスを発揮します。これは、3D 幾何学的構造と時間ダイナミクスの学習における、私たちが提案した DSTformer の有効性を示しています。モデルの上限パフォーマンスをさらに評価するために、2D GT ポーズ シーケンスを入力として使用した場合のパフォーマンスを比較します。これにより、さまざまな 2D 検出器の影響が除去されます。表 1 (下) に示すように、私たちのモデルは以前のすべての方法を大幅に上回っています。私たちは、最初から作成したモデルのパフォーマンス上の利点は、提案された DSTformer 設計のおかげであると考えています。他の時空アーキテクチャに対する DSTformer の利点を示すために、セクション 4.6 と補足資料でさらに多くの比較と分析を提供します。さらに、私たちの方法は、提案された事前トレーニング段階を通じてより低いエラーを実現します。

注釈

3D ポーズ推定の実験では、研究者らは関節位置誤差ごとの計量平均 (MPJPE) を使用してモデルのパフォーマンスを測定しました。彼らは、事前にトレーニングされた重みを使用した場合と最初からトレーニングした場合のモデルのパフォーマンスを比較し、その結果、DSTformer を使用して最初からトレーニングされたモデルが他の方法よりもこのタスクで優れたパフォーマンスを示したことがわかりました。さらに、彼らのモデルは、入力データが 2D リアル ポーズ シーケンスである場合、以前のすべての方法よりも優れたパフォーマンスを発揮し、DSTformer の優位性をさらに証明しています。

4.4. スケルトンベースのアクション認識

私たちはさらに、事前に訓練された人間の動作表現を使用して動作の意味論を学習する可能性を探ります。60 のアクション カテゴリの 57K ビデオを含む NTU-RGB+D 人間のアクション データセットを使用し、データセットのクロストピック (X-Sub) とクロスビュー (X-View) に従って分割しました。このデータセットの拡張バージョン NTU-RGB+D-120 もあり、これには 120 のアクション カテゴリの 114K ビデオが含まれています。NTU-RGB+D-120 で動作する提案されたシングルアクション認識プロトコルに従います。どちらのデータセットでも、HRNet を使用して 2D スケルトンを抽出します。ここでも、比較のためにランダムに初期化されたモデルをトレーニングしました。表 2 (左) に示すように、私たちの方法は最先端の方法と同等かそれ以上のパフォーマンスを発揮します。トレーニング前の段階がパフォーマンスの向上に大きな役割を果たすことは注目に値します。

さらに、実際のアプリケーションにとって重要なシングルショット設定でのアプリケーションについても詳しく説明します。実際のアプリケーションでは、教育、スポーツ、医療などの特定の分野で微細な動きの認識が必要になることがよくあります。ただし、これらのシナリオのアクション カテゴリは通常、公開データセットでは定義されていません。したがって、これらの新しいアクション カテゴリに対して利用できる注釈は限られているため、正確な識別が困難になります。カテゴリごとに 1 つのラベル付きビデオのみを使用した 20 の新しいカテゴリの評価セットの結果を報告します。補助セットには他の 100 カテゴリが含まれており、これらのカテゴリのすべてのサンプルが利用可能です。教師あり対照学習手法を利用して、補助セットでモデルをトレーニングします。補助データのバッチの場合、同じカテゴリのサンプルはアクション埋め込み空間に引き寄せられ、異なるカテゴリのサンプルは遠くに押しやられます。評価中に、テストサンプルと例の間のコサイン距離を計算し、1 最近傍法を使用してクラスを決定します。表 2 (右) は、比較において私たちが提案したモデルが最先端の方法よりも大幅に優れていることを示しています。さらに、事前トレーニングされたモデルは 1 ~ 2 ラウンドの微調整後に最適なパフォーマンスに達することは注目に値します。私たちの結果は、たとえ限られたデータアノテーションであっても、新しい下流タスクにうまく一般化するロバストなモーション表現を学習するのに、事前トレーニングフェーズが効果的であることを示しています。

注釈

このセクションでは主に、事前にトレーニングされた人間の動作表現を動作認識に使用する可能性を検討し、検証のために NTU-RGB+D データセットを使用します。このデータセットは、アクション認識用の大規模なデータセットであり、豊富なアクション カテゴリとビデオが含まれています。著者らは、事前トレーニングされた人間の動作表現モデルが動作認識タスクで良好に機能し、データ注釈が限られている場合でも強力な汎化能力を示したことを発見しました。

4.5. 人体メッシュの復元

Human3.6M および 3DPW データセットで実験を行い、トレーニング中に COCO データセットを追加します。以前の慣例に従って、2 つのデータセットのトレーニングとテストの分割を維持しました。我々は公開実践に従い、JM(θ, β)によって得られた14関節のMPJPE(mm)とPA-MPJPE(mm)を報告する。PA-MPJPE は、移動、回転、スケール調整後に MPJPE を計算します。さらに、M(θ, β) によって生成されたメッシュの頂点ごとの平均誤差 (MPVE) (mm) を報告します。これは、ルート ジョイントを位置合わせした後の推定頂点と GT 頂点の間の平均距離を測定します。以前のほとんどの作業では、LSP、MPI-INF3DHP など、トレーニング中に COCO 以外のより多くのデータセットが使用されていましたが、私たちの作業では使用されていなかったことは注目に値します。表 3 は、微調整されたモデルが Human3.6M と 3DPW データセットの両方で競合する結果を提供し、特に MPVE エラーに関して MAED を含むすべての最先端のビデオベースの手法を上回っていることを示しています。ただし、まばらな 2D キーポイントのみから全身メッシュを推定することは、人体の形状情報が欠如しているため、不適切な問題であることに注意してください。これを念頭に置いて、フレームワーク (コヒーレントな動き) と RGB ベースの手法 (正確な形状) の強みを活用するハイブリッド アプローチを提案します。以前の作品と同様に、既存の画像/ビデオベースの方法と簡単に組み合わせることができる洗練モジュールを導入します。具体的には、リファインメント モジュールは、事前トレーニングされたモーション表現と初期予測の組み合わせを受け取り、関節回転の残差を回帰する MLP です。私たちの方法は、最先端の方法を効果的に改良し、これまでで最も低い誤差を達成しています。

注釈

ここでは主にヒューマンメッシュ復元タスクの実験状況を紹介します。ヒューマン メッシュの復元は 3D タスクであり、2D 画像から 3D 人間のポーズを推定する必要があります。

このタスクでは、事前トレーニングされた人間の動作表現モデルも良好なパフォーマンスを示しました。ただし、まばらな 2D キーポイントのみから全身メッシュを推定することは非常に困難な問題であるため、著者らは、事前にトレーニングされた人間の動作表現と RGB ベースの方法を組み合わせたハイブリッド アプローチを採用して、人体のグリッド復元の結果をさらに改善します。

4.6. アブレーション研究

微調整と最初からの開始

微調整とゼロからのトレーニングのために、事前トレーニング済みモデルを使用してトレーニングの進行状況を比較しました。図 3 に示すように、事前トレーニングされた重みで初期化されたモデルは、3 つのタスクすべてで優れたパフォーマンスとより速い収束を実証しました。この観察は、事前トレーニングされたモデルが人間の動作に関する移転可能な知識を学習し、それが複数の下流タスクの学習に役立つことを示唆しています。

ローカル微調整

エンドツーエンドの微調整に加えて、モーション エンコーダー バックボーンをフリーズし、下流タスクごとに回帰ヘッドのみをトレーニングします。事前トレーニングされたモーション表現の有効性を検証するために、事前トレーニングされたモーション エンコーダーとランダムに初期化されたモーション エンコーダーを比較します。Human 3.6M での 3D ポーズとメッシュの結果を報告し、NTU-RGB+D および NTU RGB+D-120 でのモーションの結果を報告します (表の下も同じです)。表 4 からわかるように、凍結された事前トレーニングされたモーション表現に基づいて、私たちの方法は依然として複数の下流タスクで競争力のあるパフォーマンスを達成し、ベースラインと比較して大幅な改善を達成しています。事前トレーニングと部分的な微調整により、すべての下流タスクが同じバックボーンを共有できるようになり、マルチタスク推論アプリケーションの計算負荷が大幅に軽減されます。

事前トレーニングポリシー

さまざまな事前トレーニング戦略が下流タスクのパフォーマンスにどのような影響を与えるかを評価します。ゼロからベースラインを作成し、提案された戦略を 1 つずつ適用していきました。表 5 に示すように、基本的な 2D から 3D への事前トレーニング段階は、すべての下流タスクにとって有益です。ダメージを導入すると、学習されたモーションの埋め込みがさらに改善されます。実環境のビデオ (w. 2D) を使用した均一な事前トレーニングでは、モーションの多様性が高まり、いくつかの下流タスクにさらに役立ちます。
さまざまな一次介入によるトレーニング。提案された事前トレーニング方法の一般性をさらに調査します。モーション エンコーダ バックボーンを 2 つのバリアント、TCN [87] と PoseFormer [133] に置き換えます。モデルは seq2seq バージョンにわずかに変更され、すべての事前トレーニングと微調整の構成は単純に従われました。表 6 は、提案された方法がさまざまなタスクのさまざまなバックボーン モデルに対してどのように一貫した利点をもたらすかを示しています。

モデルアーキテクチャ

最後に、DST の以前の設計の選択肢を検討しました。表 8 の (a) から (f) までは、基本変圧器モジュールのさまざまな構造設計を比較しています。(a) と (b) は、順序が異なる単一ストリーム バージョンです。(a) 概念的には PoseFormer [133]、MH Former [55]、MixSTE [132] と同様です。(c) MAED [112] と同様に、融合の前に各フローを時間的または空間的モデリングに制約します。(d) MAED [112] の MSA-T バリアントと同様、間に MLP を介さない S-MHSA と T-MHSA の直接接続。(e) 2 つのストリームのアダプティブ フュージョンを平均プーリングに置き換えます。(f) は私たちが提案する DST 前の設計です。結果として得られた統計は、セクション 3.2 で紹介したように、両方のストリームが同時に機能し、補完的でなければならないという設計原則を裏付けています。さらに、各セルフ アテンション ブロックを MLP と組み合わせることが、学習された特徴の相互作用を投影して非線形性を引き起こす可能性があるため、非常に重要であることがわかりました。全体として、3D 姿勢推定タスク用のモデル アーキテクチャを設計し、それを追加の調整なしで他のすべてのタスクに適用しました。

5. 結論と考察

この作業では、さまざまな人間中心のビデオ タスクを解決するための統一された視点を提供します。私たちは、大規模で異種のデータソースから人間の動作表現を学習するための事前トレーニング方法を開発します。また、一般的な人間のモーションエンコーダとしてDSTformerを提案します。複数のベンチマークでの実験結果は、学習されたモーション表現の多用途性を示しています。これまでのところ、この研究は主に 1 人の個人の骨格データの処理に焦点を当ててきました。将来の研究では、学習されたモーション表現を一般的なビデオ アーキテクチャと人間中心のセマンティック特徴に融合し、それらをより多くのタスク (アクション評価、セグメンテーションなど) に適用し、人間の相互作用を明示的にモデル化することを検討する可能性があります。

注釈

この論文の主な貢献は、人間中心のさまざまなビデオ タスクを解決するための統一された視点を提案することです。著者らはまず、事前トレーニング段階を通じてモーション エンコーダをトレーニングし、大規模で混合されたデータ ソースから人間の動きの表現を学習します。次に、事前トレーニングされたモーション エンコーダーを微調整することで、複数の下流タスクを実行しました。アブレーション研究では、最初からトレーニングする場合と比較して、事前トレーニングされたモデルはパフォーマンスと収束速度の面で大きな利点があることが示されており、学習されたモーション表現が移植可能であることが証明されています。さらに、この事前トレーニング戦略の有効性はモーション エンコーダー バックボーンの影響を受けず、その汎用性が実証されています。モデルアーキテクチャの観点から、著者は骨関節間の時空間関係を効果的に学習し表現する新しいネットワーク構造であるDSTformerを提案しました。今後の研究では、このモーション表現のさらなる応用をさらに検討していきます。

おすすめ

転載: blog.csdn.net/m0_56661101/article/details/131780054