OpenPose試してみた。〜ディープラニングで人のポーズを解析

このエントリーをはてなブックマークに追加

画像認識の領域で話題となっている “OpenPose”、みなさまご存知でしょうか?

OpenPoseはカーネギーメロン大学(CMU)の Zhe Caoら が「Realtime Multi-Person pose estimation」の論文で発表した、深層学習を用いて人物のポーズを可視化してくれる手法です。

OpenPoseは、静止画を入力するだけで人間の関節点を検出することが可能。
さらにGPUなどの高性能プロセッサを使えば動画像内に複数人の人物がいても、リアルタイムに検出することも可能ということで、注目を浴びています。

今回は、OpenPoseの公開されているプログラムを実際に試してみました。なんと身体だけでなく、顔と手まで解析可能。結果は、激しい動きの動画でも検出できたりと、かなりの精度でした。

https://github.com/ZheC/Realtime_Multi-Person_Pose_Estimation

ポーズはもちろん、顔の点座標・指の関節点まで検出可能

試しに、ゴルフのフォームの写真を、解析させた結果が下記のとおり。

ご覧の通り、結果はかなり正確ですよね。

このようにOpenposeは、関節の位置を点で表示させると膝の角度だったり、肘の曲げ具合がわかりやすくなります。たとえば、有名選手のフォームと細かく比較してスウィング練習の手助けができそうです。

つづいて、「顔」と「手」の検出機能も試してみました。

見事に検出ができています! 顔は眉毛と目、鼻、口と輪郭まで検出できます。これを活用すれば、iPhoneXで行っているような顔認証にも応用できそうですね。

さらに手の部分をよく見てみると、指が曲がっている様子まで捉えています。

  • 細かく指の動きまで捉えられれば、”手話”を分析してテキストに変換する・採点する、といった手話学習者の手助け
  • 小売店での万引き・怪しい動作の検知
  • いままで言語化されていなかった”職人の手の動き”を定量的に分析

といったことにも活用できそうです。

大きな動きも確実に検出。動画でも試してみた

先ほどは、静止画での精度をみましたが、動画ではどうなるのでしょうか?

結果はご覧のとおり!
スウィング中でも、関節それぞれの動きを捉えられていますね。驚きなのは、腕が身体で隠れてしまっていてもきちんと肘の位置を推測してくれるところです。

このようにOpenPoseを使えば、撮影した自分のフォームを確認、有名選手との違いを比較・評価するなんてこともできるかもしれません。

ほかにも複数人の動画に対しても試してみました。

かなり人数の多い動画ですが、人が重なり合う瞬間でも姿勢を推定して骨格を表示してくれています

※ なお、スポーツ分野での利用は、残念ながら商用利用がライセンスにより禁止されています。詳細はリンク先をご覧ください。

これまで必要だった特殊センサーが不要に。あらゆる業界の常識を覆すかも

こうした関節点情報の取得は、じつはこれまでも「モーションキャプチャー」という技術をつかえば可能だったのですが、“人間の身体にセンサーを取り付けないと、間接点の情報を取得できない”という課題がありました。
iPhoneXの顔認証技術も「深度センサー」など、複数のセンサーを使っていています。

OpenPoseの画期的なところは、そうした特殊センサーをつかわなくても、カメラ1つあれば、複雑な解析ができてしまうという点。
たとえば、スポーツの動画の解析も、選手に特殊なセンサーをとりつけなくても、可能になります。

同様の理由で、小売店では導線解析など、これまでよりも多くのことが解析可能になるでしょう。そのほか、レントゲンで撮影しなくても体の歪みを教えてくれる、といったヘルスケアの分野での応用もできそうですね。

活用できそうな分野が多いポーズ検出AI、今後も研究の動向に注目です。