これまで物体検知についてお話をしてきました。物体検知は画像認識の代表的なタスクですが、画像認識にはこの他にも様々なタスクがあります。今回はそうした画像認識のタスクのうちで、少しマイナーな姿勢推定のお話をしたいと思います。広義の姿勢推定には様々な物体の「姿勢」を推定することが含まれますが、姿勢推定のもっともポピュラーな対象物は「人間」です。英語で言うとHuman Pose Estimation。人物の姿勢を推定するタスクです。

人間の姿勢推定と言われてもピンと来ないかもしれませんが、具体的に何をするのかと言えば、画像からそこに写る人物の「関節」を検知することが主な仕事です。関節が検知できればそれをつなげて、スケルトンができます。これを姿勢とよんでいるのです。以下は私が設計したモデルで実際に姿勢推定してみた結果です。イメージが掴めたでしょうか。




姿勢が推定できると何が嬉しいのでしょう。わかりやすいところでは、熟練した職人さんの動きや、スポーツにおけるフォームの分析ですが、その他にも姿勢が検知できると人間のさまざまな行動が分析できます。例えば、セキュリティの分野では怪しい行動を検知するのに使えそうです。運転手さんの居眠りやよそ見、体調不良の検知にもよいでしょう。医療の現場でリハビリの管理に姿勢推定を使おうという研究があるようです。

姿勢推定は他の画像認識タスクと同様に、ディープラーニングの技術を適用することで大きく進展を遂げました。その進展の歴史的な話に興味がある方は、こちらなどによくまとめられていますのでご参照ください。ここでは、最先端の姿勢推定に関連する重要なことだけを解説することにします。

  • ヒートマップの利用
関節は人体中の「点」と考えることが自然ですので、関節点の検知はその位置を推定する回帰問題となります。しかし考えてみると、厳密にピクセル単位で関節の正しい点位置を指定するというのは困難です。そこで一応決めた関節の点位置を中心として、そこから離れると正規分布に従って減衰するぼんやりとした正解(ヒートマップ)を用意して学習することが提案され、その有効性が確認されました。この手法は現在も広く使われています。

  • トップダウンとボトムアップ
一般に画像には複数の人物が含まれています。これら複数の人物の姿勢推定を行おうためには大きくわけて二つのアプローチが存在します。それがトップダウン方式とボトムアップ方式と呼ばれる手法です。トップダウン方式ではまず物体検知を用いて人物を検知し、切り出した個々の人物に対して関節の検知を行います。一方ボトムアップ方式は、物体検知を用いずに画像の中の関節点を一気に推定した後に、それぞれの人物を構成する関節点をまとめていく手法です。

トップダウン方式は、人物推定を外出しのタスクとし、自らが推定する画像中の関節点は一人の人物のものと仮定します。このことでタスクがシンプルで見通しがよくなり、精度がでます。このことから現時点のハイエンドの高精度モデルはトップダウン方式が占めています。トップダウン方式の最大の難点は、画像中の人数が多くなった時に処理時間がリニアに増加する点でしょう。また、画像を切り出した時点で画像の広いコンテキストを利用した推定ができなくなるという欠点もあります。

一方、ボトムアップ方式はまず画像中のすべての関節を推定してしまいますから、画像内の人数が多くなったときでも速度の低下はトップダウン方式ほど顕著ではありません。ただしボトムアップ方式では、認識した関節をそれぞれの人物ごとにまとめあげるという困難なタスクが加わることになります。


姿勢推定を実際に実装するにあたり、参照すべき論文(手法)を独断で厳選するなら以下の4つです。他は忘れましょう(笑)。


最初の二つはどちらもOpenPoseというボトムアップ型の手法についての論文で、事実上はひとつの手法です。開発したのはカーネギーメロン大学で、コードも公開されていますが、商用利用には制限がありますのでご注意ください。OpenPoseで用いられたPart Affinity Fields (PAF)は検知した関節を人物ごとにまとめ上げる優れた手法です。PAFの採用によってOpenPoseは複数人の姿勢推定タスクを一気通貫に学習・推定させることに成功しました。OpenPoseは複数人の姿勢推定を行う実装が公開され、大変人気のある手法となっています。

後ろの二つはどちらもMicroSoft研究所の論文です。このうちSimple Baselines for Human Pose Estimation and Trackingはある意味衝撃的な論文で、自らが認めるように、これと言った新規性がないシンプルな手法が極めて高精度の姿勢推定を行うことができることを示したものです。当然、実装も公開されています。(MIT License)そう言うわけで、これ以前に色々頑張っていたトップダウン型の手法はもう忘れましょうと言うことなのです。(繰り返しますが独断ね)

Deep High-Resolution Representation Learning for Human Pose Estimationは、上述の論文を書いた同じチームによるもので、現在姿勢推定タスクで最も精度の高いモデルです。論文にしたがって実装されているHRNetは、姿勢推定のみならず、物体検知やセマンティックセグメンテーションと言ったタスクでも極めて高い精度を記録しており、エポックメイキングな手法となりそうです。

次回からは実装に焦点をあてて、これらの手法使った、学習、評価、推論そして改良を試みることにします。