[紙の読書ノート] VNect:単一のRGBを使用したリアルタイムの3D人間の姿勢推定



Vnect



紙の要約:

この記事の方法は比較的単純で、完全畳み込みCNNを介してヒートマップとロケーションマップを予測します。ロケーションマップは、実際にはX、Y、Zの3方向の座標マップです。キーポイントを見つけるプロセスは、ヒートマップで最大値(x、y)を見つけてから、対応するポイントで対応するポイントを見つけることです。 X、Y、Z。相対ルートノードの3D座標を作成します。

この3Dポーズ推定は単一のフレームで実行されるため、前後の情報を考慮することができず、ビデオ時間でのアクションの一貫性を維持できず、一連の後処理が必要になります。



論文紹介:

この論文は、3Dポーズが2Dポーズの隠れた変数と見なされると、空間的なあいまいさを引き起こすと述べています。 2D位置スパースシーケンスは、手足の前後方向など、空間の前後方向性を失うため(2Dシーケンスでの手の位置は、前後方向で同じです)、あいまいな前提は、誤った推定につながります。したがって、この問題を解決するために、著者は、画像の特徴から3Dポーズの隠された特徴を直接学習する方法を提案します。 実際、画像内の2Dポーズと3Dポーズを一緒にトレーニングすることです(3Dはルートに対する3Dノードの位置であり、ルートは骨盤の位置である必要があります)。

この記事の目的は、30Hzを超える高品質のポーズ推定を実現することです。予測開始時、対象物のスケール情報がないため、最初の数フレームの検出効果はあまり良くありません。これは、オブジェクトの体の比率に適応する方法の小さな副作用でもあります。



VNectの入力は連続単眼RGB画像であり(実際、各入力はRGB画像である必要があります)、t番目のフレームの出力はグローバルな3Dボーン位置です。P t G P ^ G_t。 CNNジョイントトレーニング2Dジョイントポイント位置K t K_tそして親戚 ルート 3Dジョイントポイント位置P t L P_t ^ L。最後に、2Dと3Dのジョイントポイント予測位置を組み合わせて、滑らかで時間連続した姿勢を推定します。P t G(θ、d)P ^ G_t( theta、d)、その中でd dはい カメラスペース グローバルロケーション、θシータキネマティックスケルトンのジョイントポイントの角度です。一言もないジョイントポイントの数を示します。

CNN姿勢復帰

CNNモデルを上の図に示します。バックボーンネットワークはResNet50であり、res5aから構造が変更されています。最終的な目標は、2Dヒートマップと3つのロケーションマップ、X、Y、Zを予測することです。3つの追加のロケーションマップを使用して、2Dヒートマップを3Dに拡張します。方法は次のとおりです。ジョイントポイントを見つける一言もない最大位置に応じたヒートマップの最大位置X、Y、Z X、Y、Z対応するを見つけるx j、y j、z j x_j、y_j、z_j名前を付けて保存P L = x、y、z P ^ L = {x、y、z}、その中でx∈R1∗ J x in R ^ {1 * J}。著者が望んでいるのはトレーニング損失だけなので、トレーニング損失は次の式で示されます。x j、y j、z j x_j、y_j、z_j訓練を受けて、強い相関の重み付け式を考えてください。L o s s(x j)=∥HjGT⊙(X j − X j G T)∥Loss(x_j)= | H ^ {GT} _j odot(X_j-X_j ^ {GT}) |その中でG T GTグラウンドトゥルースを表し、⊙ odotアダマール行列を表します。実際の操作は、要素に対応する積、2Dグラウンドトゥルースヒートマップです。H j G T H ^ {GT} _j

入力と出力に加えて、ルート相対ロケーションマップもVNectの中央に追加されますX j、Y j、Z j X_j、Y_j、Z_j同様 キネマティック親相対ロケーションマップ ΔXj、ΔYj、ΔZj Delta X_j、 Delta Y_j、 Delta Z_jそして、計算に使用されます 骨の長さマップBL j =ΔXj⊙ΔXj+ΔYj⊙ΔYj+ΔZj⊙ΔZjBL_j= sqrt {デルタX_j 待機デルタX_j + デルタY_j 待機デルタY_j + デルタZ_j 待機中デルタZ_j}



トレーニングでは、中間監督を追加します。反復が深くなるにつれて、中間損失の重みは徐々に減少します。からの中間監督 res4dres5a 予測 2Dヒートマップ3Dロケーションマップ

著者は、特徴オブジェクトの胴体を適応させるために、中間予測と中間特徴を組み合わせることにより、バックボーンの長さの明確な概念をネットワークに提供したいと考えています。

2Dポーズは事前トレーニングにMPIIとLSPを使用し、3DポーズはMPI-INF-3DHPとHuman3.6mを使用します。 huamn3.6データセットでは、S9とS11がトレーニングに使用されることを除いて、MPI-INF-3DHPはすべてを使用します。

画像を入力する前に、オブジェクトを中央に配置する、つまりトリミングする必要があります。 VNectのソリューションは、前のフレームの2Dポーズを使用して、高さを0.2倍、幅を0.4に拡張して境界ボックスを決定し、境界ボックスを2D予測の重心まで水平に移動して、予測。最後に、トリミングされた画像のサイズを368 * 368に変更して、比率を通常にします。

キネマティックスケルトンフィッティング

ビデオでは、フレームごとのポーズ推定ではモーションの時間的一貫性を十分に活用できず、小さなポーズエラーは時間ジッターを引き起こすため、作成者は時間フィルタリングとスムージング後処理を行うことを選択します。

スムージングを行う場合は、2Dポーズと3Dポーズを同時に使用し、骨の関節の角度について、以下の式のエネルギーを最小化することで最終的な座標を取得します。θシータそして、ルートジョイントはカメラスペースにありますd dの座標。

E I K E_ {IK}これは、3D逆モーション画像であり、3DCNNの出力です。P t L P_t ^ L全体的なポーズを決定するにはE p r o j E_ {proj}全体的な姿勢を決めるd d、時間安定性に関しては、2D検出結果を通じて3Dポーズを修正するには、はいE s m o o t h E_ {smooth}カメラがキャリブレーションされている場合、垂直方向の視野角は54度であると想定されます。単眼再建の不確実性を相殺するために、深さの大きな変化を補正しますE d e p t h E_ {depth}。最終的に使用1 E u r o f i l t e r1ユーロフィルターフィルタを実行します。

各アイテムの重量はw I K = 1、w p r o j = 44、w s m o o t h = 0.07、w d e p t h = 0.11 w_ {IK} = 1、w_ {proj} = 44、w_ {smooth} = 0.07、w_ {depth} = 0.11。また、1ユーロフィルターにも関連する重みがあります。わからないので記載しません。

論文実験

6コアのXeonCPU、3.8GHZ、および単一のTitan X GPUで実行すると、CNNの計算時間は約18ミリ秒、骨のフィッティングは約7〜10ミリ秒、前処理とフィルタリングは5ミリ秒です。
MicrosoftのRGB-DベースのビジネスソフトウェアKinectとの比較:

他の方法との定量的比較:著者は、Res50はより大きなミニバッチを使用するため、Res100よりも優れていると考えています。