OpenPoseの概要
- OpenPoseは、画像から人の体や手、顔など合計130個のキーポイントをリアルタイムで検出することができるシステムです。
- OpenCVとCaffeを使用したC ++のライブラリで、複数人数のキーポイントの検出とマルチスレッドができます。
- OpenPoseは、カーネギーメロン大学のPerceptual Computing Labが開発したオープンソースのプロジェクトで、人間の姿勢や動作を分析するために様々な分野で応用されています。
OpenPoseの応用例
OpenPoseは様々な分野で応用されている画期的な技術です。
- OpenPoseを使うと、人間の姿勢や動作を分析することができます。
- スポーツやダンスのパフォーマンスの評価、医療やリハビリテーションの支援、ゲームやVR/ARのインタラクションなどが可能です。
- OpenPoseはカメラだけで動作するため、特別なセンサーやマーカーが不要です。
OpenPoseの精度
- OpenPoseの精度は、使用するカメラや設定によって異なりますが、一般的には30 mm以下の誤差でキーポイントを検出できると言われています。
- OpenPoseは、複数の同期したビデオカメラを使って3Dマーカーレスモーションキャプチャを行うことができます。
- OpenPoseは、様々なデータセットで高い性能を示しており、他の姿勢推定技術と比較しても優れています。
OpenPoseの評価データセット
OpenPoseは、様々なデータセットで評価されています。
- MPII Human Pose DatasetやCOCO Keypoints Datasetなどの2D姿勢推定のデータセットや、Human3.6M DatasetやCMU Panoptic Studio Datasetなどの3D姿勢推定のデータセットがあります。
- OpenPoseは自身で足のキーポイントを含む新しいデータセットを作成しています。
OpenPoseと他の姿勢推定技術との比較
OpenPoseは、リアルタイムで複数人の姿勢推定を行うことができる技術で、他の姿勢推定技術と比較したOpenPoseの特徴は以下のとおりです。
- OpenPoseは、画像中のすべての人物に対してキーポイントを検出するボトムアップアプローチを採用しています。
- これにより、人物数に依存せずに一定の処理時間を実現しています。
- OpenPoseは、体だけでなく、手や顔などの細かい部位も検出できます。また、足のキーポイントを含む新しいデータセットを作成し、高い精度を達成しています。
※OpenPoseは、カメラだけで動作するため、特別なセンサーやマーカーが不要です。また、C++やPythonなど様々な言語で実装されており、GitHubで公開されています。
OpenPoseは、他の姿勢推定技術と比較しても優れた性能と汎用性を持っていると言えます。
OpenPoseアルゴリズム
OpenPoseは、ボトムアップ手法を使用して複数人の人間の姿勢を推定するアルゴリズムで、以下のような手順でキーポイントを検出します。
- まず、事前学習済みのニューラルネットワークを用いて、入力画像から身体部位のヒートマップとPAF(Part Affinity Fields)と呼ばれる部位間の関係性を表すベクトル場を予測します。
- 次に、ヒートマップから各部位の最大値を探し、それらが信頼度の高い候補点となります。
- 最後に、PAFを用いて候補点間に線分を引き、それらが同じ人物に属するかどうか判定します。このとき、線分の方向とPAFの方向が一致するほど強い関係性があると考えます。
OpenPoseの応用分野
OpenPoseは、人間の姿勢を検出することができる技術なので、様々な分野で応用されています。例えば、以下のような用途が考えられます。
- スポーツやダンスなどの動作分析や指導
- VRやARなどのインタラクティブなコンテンツ作成
- ゲームやアニメーションなどのキャラクター制御
- ヘルスケアやリハビリテーションなどの医療分野
- セキュリティや監視などの人物認識や行動分析
OpenPoseの商業ライセンス
商業ライセンスはスポーツの分野では使用できません。(「スポーツ」とは個人、グループまたはチーム間のすべてのアスリート競技を指します。) ライセンス条項は交渉不可です。
メーカーの製品サイト
https://cmu.flintbox.com/#technologies/b820c21d-8443-4aa2-a49f-8919d93a8740
【種別】シェアウェア
【言語】英語
【動作環境】Ubuntu 14 and 16.
Windows 8 and 10.
OpenPose has also been used on Windows 7, Mac, CentOS, and Nvidia Jetson (TK1 and TX1) embedded systems. However, we do not officially support them at the moment.