ディープラーニングを利用した画像からの姿勢情報推定:OpenPoseによる人工知能サービス展開の可能性

課題

人の行動意図分析や仮想空間における人工エージェントの動作生成、医療現場におけるリハビリテーションの支援など、人の姿勢情報を抽出することによって実現可能となる人工知能サービスが複数あげられます。また複数人の姿勢情報を推定することで集団行動の特徴を解析することができます。しかし人の姿勢情報(特に各関節の位置関係)を推定するには特殊なマーカーとカメラを用いるモーションキャプチャーシステムや、深度情報(奥行方向の情報)が計測可能なマイクロソフトのKinectに代表されるRGBDカメラを利用する必要がありました。これらのシステムを導入することで人の姿勢情報推定が可能となりますが、その導入コストやその他のシステムや環境で収集されたデータには適用できないという問題がありました。
このような課題に対し、Carrnegie Mellon UniversityのCao Zheらはディープラーニングの一種である畳み込みニューラルネットワーク(CNN)を利用して単眼カメラの画像から複数人の姿勢情報を抽出する「OpenPose」と呼ばれる手法を提案しました。この手法はRealtime Multi-Person 2D Pose Estimation using Part Affinity Fieldsというタイトルでコンピュータビジョンとパターン認識に関する国際会議であるIEEE/CVF International Conference on Computer Vision and Pattern Recognition(CVPR2017)に採択されています。

解決方法

これまでにも画像から人の姿勢情報を推定する手法は複数提案されていましたが、それらの手法では画像から人の領域を検出し、各領域に対して関節位置や姿勢の推定を行う方式が一般的でした。この方式では検出された人の領域をそれぞれ処理するために複数人の姿勢情報を推定するためには非常に多くの時間を有しました。OpenPoseでは入力画像を人の領域毎に区切ることなく複数人の各関節部位(例えば右手の手首など)を一度に抽出するPart Confidence Maps利用することで高速化を図るとともに、検出された各関節間の関連度合いを表現するPart Affinity Fieldsと呼ばれる情報を推定することでそれぞれの人の姿勢を精度よく推定することを可能にしています。
人の関節位置を推定するPart Confidence Mapsは関節部位毎(例えば右手首、右肩など)にCNNを用いて複数人の関節位置の推定を一度に行います。この時関節位置はある程度の広がりをもった領域とその推定確度で表現されます。
関節位置同士の関係性を推定するPart Affinity Fieldsdでは隣り合う部位のつながりを表現するベクトルをCNNを用いて推定します。ここでは複数人の同じ関節(例えば1人目の右肩と首、2人目の右肩と首)がどの組み合わせで結合する可能性が高いかを最大化するように計算し、それらの関節を結合することで姿勢推定を行います。
OpenPoseでは推定精度を高めるために、これら2つのCNNモジュールをそれぞれ階層的に接続し学習と推定を行っています。より詳細なモデルの解説はこちらこちらをご覧ください。

どうなったか

姿勢推定に関するデータセットを用いて既存手法とOpenPoseの性能評価を行いました。評価用のデータセットとしてはMPⅡ human multi-person datasetCOCO 2016 keypoints challenge datasetが利用されています。
姿勢推定実験の結果それぞれのデータセットにおいて概ね既存手法の推定精度を超える精度を示しました。COCO 2016 keypoints challenge datasetでは一部既存手法と同等の評価値を示しましたが、該当の既存手法は画像中から人の領域を検出するため複数人の姿勢情報を推定際には実行速度の面でOpenPoseが有意であると考えられます。
実際に姿勢推定をした結果や、OpenPoseのソースコードはこちらで公開されていますのでご覧ください。現在は姿勢のみならず顔の特徴点や手の指の情報まで推定することが可能です。

まとめ

ディープラーニングの手法を用いることで単眼カメラの画像から人の姿勢推定を可能にするOpenPoseについて紹介しました。これにより人の姿勢情報を推定することで、行動分析による意図推定や人の動作の学習を通じた人工エージェントの動作生成など、様々な人工知能システムへの応用が可能となります。以前紹介した人のジェスチャー情報を学習することでロボットのプレゼンテーション能力を向上させる人工知能システムでも人の姿勢抽出にOpenPoseが利用されています。
ただしOpenPoseを商用利用する場合、年間25000ドル(2018年9月現在 約280万円)の費用が必要となります。簡単なサービスを提供するために安価に利用したい、またはまず試してみたいが環境構築等のコストを抑えたいという方は株式会社フューチャースタンダードが提供するSCORER(スコアラー)を利用することができます。フューチャースタンダードではOpenPoseのライセンスをSCORERで提供する契約を結んでいるために、ユーザーは1時間300円の料金で利用することが可能です。実際にSCORERで提供されているOpenPoseを利用して赤ちゃんの姿勢検出を行った情報も公開されています。医療や介護分野でのサービス導入のための小規模テストなど様々な用途で利用することが可能です(ただし非独占的商用ライセンス(The non-exclusive commercial license)によるとスポーツ分野での商用利用は禁止されています)。

参考資料

(堀井隆斗)