Simple Science

最先端の科学をわかりやすく解説

# コンピューターサイエンス# コンピュータビジョンとパターン認識

単一画像からの3Dポーズ推定の進展

この研究では、2D画像から3Dボディポーズを推定する新しい方法を紹介してるよ。

― 1 分で読む


3Dポーズ推定のブレークス3Dポーズ推定のブレークスルーズ推定の精度が向上したよ。新しい方法で、単一の画像からの人間のポー
目次

この研究は、1枚の画像だけを使って3D人間の体のポジションを理解する方法を見つけることに焦点を当ててるんだ。新しいやり方を提案していて、2つの手法、フォワードキネマティクス(FK)とニューラルネットワークを組み合わせてるんだ。この組み合わせのおかげで、素早く正確に人の体のパーツの位置を3Dで予測できるんだよ。

私たちの方法では、人間の体を家系図みたいな関節のネットワークで表現してて、各関節には動きに制限があるんだ。2D画像から体のキーポイントを見つけたら、ニューラルネットワークを使ってその情報を3Dに引き上げて、関節がどう回転するか、骨がどれくらい長いかを予測するんだ。その後、これらの予測と体の動きに関するルールセットを組み合わせるんだ。私たちが開発した方法はうまく機能していて、3Dの体のポジションを素早く推定できるよ。

私たちの方法をテストした結果、MediaPipeという手法よりもはるかに正確だとわかったんだ。関節の位置の誤差やポーズの自然さをチェックして、どれだけ良いかを評価したよ。異なるデータセットや手話のタイプでも効果的に働くことも示したし、私たちのモデルはCPUだけで各画像に対して100-200ミリ秒で動作するんだ。

3Dポーズ推定は重要な研究分野なんだ。最近、深層学習を使った新しい方法がたくさん出てきて、画像中の人間の2Dポイントを特定するようになったんだ。しかし、人は色んな動きをするし見た目も全然違うから、この作業はかなり難しいんだよ。2Dの画像から3Dのポーズに移行するには、不確実性があって、小さな視覚的なディテールに気づくことでしか解決できないんだ。これには賢い推論や複雑な統計的手法が必要になることが多い。

私たちの研究では、ポーズ推定のために特にモデルをトレーニングすることで、一般的な方法と比べてより良い結果が得られることを示しているんだ。私たちの焦点は手話だけど、より広いケースでも、私たちのシンプルな方法は複雑な技術を超えることができるんだ。

人のポーズを理解することは、手話を認識するための重要なステップだよ。なぜなら、スケルトンを使うことで、その人が誰か、どんな服を着てるのか、背景がどうかを気にしなくて済むからなんだ。でも、手話には典型的なポーズ推定の方法を妨げる独自の課題があるんだ。例えば、手話の際には手がとても速く動くから、モーションブラーができて体のパーツを検出するのに誤りが生じることがあるんだ。

さらに、手話は手と顔の間でたくさんのインタラクションがあるから、ポーズ推定の方法を混乱させることもあるんだ。OpenPoseやMonocular Total Captureといった他のシステムがこれらのインタラクションに苦しむ例もあるし、これが不明瞭または不正確なポーズにつながっているんだ。

私たちは、1枚の画像を使って3Dポーズを作成するシステムを構築したよ。最初のステップは、HRNetやMediaPipeのようなツールを使って2Dのポイントを検出すること。次に、別々のネットワークが体と手の骨の角度と長さを予測するんだ。最後に、FKを使ってこれらの情報を組み合わせて完全な3Dポーズを作るんだ。

1枚の画像から3Dポーズを推定する問題には、2つの主なアプローチがあるよ。1つ目は、画像モデルの2D位置や特徴に基づいて直接3Dポイントを推測する方法。2つ目は、FKと引き上げた2D情報を組み合わせる方法だよ。

私たちが選ばなきゃいけないのは、関節の位置を予測するのか、関節の向きを予測するのかってこと。一部の方法では3D回転のために異なる表現を使おうとしてるんだ。例えば、四元数を使うことで、特定の設定でのパフォーマンスが向上するんだ。

以前のさまざまな研究では、ポーズを予測するためにニューラルネットワークを使い、角度や長さが適切になるように技術を使って洗練する方法が示されているんだ。

私たちのシステムは、CNNを使って2Dキーポイントを見つけ、それから関節の回転と骨の長さを作成するいくつかの層を順番に設計したんだ。最後に、FKを適用して完全な3Dポーズを得るんだ。角度ネットワークは、関節の動きを定義するのを特に助けてくれるんだ。

回転を表現する際にオイラー角を使うことには利点があるよ。人間の体にはたくさんの関節があって、いくつかは一つか二つの方法でしか動けないから、シンプルに表現するのが重要なんだ。それに、オイラー角を使うことで、関節の動きを制限できるから、予測がよりリアルになるんだ。

角度ネットワークは、いくつかの層を使用して2Dポイントを処理して、有効な角度を予測するんだ。出力された角度は特定の制限内に収めるように正規化されるんだ。これで奇妙な回転を防いで、ポーズのリアリズムを保つんだ。

骨の長さネットワークはシンプルだけど、正確性を確保するためには必要だよ。骨の長さを予測して、常に正の数を保つんだ。

角度ネットワークと骨の長さネットワークの出力を組み合わせることで、FKレイヤーが完全な3Dポーズを作成するんだ。各関節の位置と回転は、根本的な関節、通常は腰の位置に基づいて計算されて、全体のポーズを制御するんだ。

モデルをトレーニングするためには、角度MLPのための異なる目的を使ってるんだ。これには、実際の角度との絶対的な差、生成した3Dポーズとリアルなものとの距離、そして画像平面への投影が含まれるんだ。

それぞれの損失関数には利点と欠点があるよ。一つの方法はトレーニングを速くするけど、ポイントが3Dでどこにあるべきかについてあまり教えない。別の方法は3D空間での正確さに焦点を合わせるけど、これには画像に投影する方法を学ぶ必要があるから、トレーニングに時間がかかるんだ。

私たちの実験では、体用のモデルと手用のモデルの2つを使ったよ。これで問題を避けられるんだ、なぜなら体のエラーは手のエラーよりも大きくなりがちだからね。別々にトレーニングすることでより良いパフォーマンスが得られるんだ。

私たちは、これに特化した目的で慎重に作成されたSmile手話データセットを使ってモデルをトレーニングしたよ。このデータセットでシステムを動かすことで、MediaPipeや他のシステムと比べてどうなるかを確認できたんだ。

いくつかの画像データセットでMediaPipeと結果を比較したところ、私たちの方法はより明確で正確なポーズを生成していることがわかったんだ。MediaPipeは特に手の部分で苦労していて、出力がノイズだらけになってしまうことが多かったんだ。

要するに、私たちの研究は、1枚の画像から2Dポイントを有効な3Dボディポーズに変換する方法を示しているんだ。関節の動きを予測するためのネットワークの組み合わせと運動モデルのおかげで、正確な結果を達成できているよ。手話に焦点を当てながら、私たちの方法が視覚的にも正確性の評価でも一般的に使われているモデルを超え、3Dポーズ推定の最先端の結果を達成したことを示したんだ。

オリジナルソース

タイトル: Improving 3D Pose Estimation for Sign Language

概要: This work addresses 3D human pose reconstruction in single images. We present a method that combines Forward Kinematics (FK) with neural networks to ensure a fast and valid prediction of 3D pose. Pose is represented as a hierarchical tree/graph with nodes corresponding to human joints that model their physical limits. Given a 2D detection of keypoints in the image, we lift the skeleton to 3D using neural networks to predict both the joint rotations and bone lengths. These predictions are then combined with skeletal constraints using an FK layer implemented as a network layer in PyTorch. The result is a fast and accurate approach to the estimation of 3D skeletal pose. Through quantitative and qualitative evaluation, we demonstrate the method is significantly more accurate than MediaPipe in terms of both per joint positional error and visual appearance. Furthermore, we demonstrate generalization over different datasets. The implementation in PyTorch runs at between 100-200 milliseconds per image (including CNN detection) using CPU only.

著者: Maksym Ivashechkin, Oscar Mendez, Richard Bowden

最終更新: 2023-08-18 00:00:00

言語: English

ソースURL: https://arxiv.org/abs/2308.09525

ソースPDF: https://arxiv.org/pdf/2308.09525

ライセンス: https://creativecommons.org/licenses/by-nc-sa/4.0/

変更点: この要約はAIの助けを借りて作成されており、不正確な場合があります。正確な情報については、ここにリンクされている元のソース文書を参照してください。

オープンアクセスの相互運用性を利用させていただいた arxiv に感謝します。

著者たちからもっと読む

類似の記事