見出し画像

【機械学習】姿勢推定モデルを簡単解説!

姿勢推定とは、動画、静止画から人物の関節点を推定し、関節点を結んだ人物の姿勢を検出する技術です。

姿勢推定って、いったい何の役に立つのでしょう?

例えば、①野球や陸上などスポーツでのフォームの研究&改善に役立てることができたり、②不審な行動をしている万引き犯を検知できたり、③倒れる動作から急病人を発見できたりと、幅広い分野で応用が期待されています。

ここから先は技術の話になりますが、触りの部分だけサクッと知識を身に着けたい!という方は「姿勢推定の主なアプローチ」までお読みください!

今回は、姿勢推定における一般的なアプローチのご紹介と、論文を1つご紹介します。

紹介する論文は、Cascaded Pyramid Network for Multi-Person Pose Estimationです。(特に断りのない限り、本記事で使用する画像は、こちらの論文からの引用です。)

姿勢推定の主なアプローチ


姿勢推定モデルには、大きく2つのアプローチがあります。

ボトムアップ型:画像中のキーポイントを全て洗い出したあと、人物ごとにマッチングさせて繋ぎ合わせていくやり方。
トップダウン型:まず人物を検知し、その後、それぞれの人物についてsingle person pose estimationを行うやり方。


ボトムアップ型


ボトムアップ型は、最初にキーポイントを洗い出したあと、それらを繋ぎ合わせていくことで、各人の姿勢を推定します。
トップダウン型の手法に比べると、計算量は抑えられますが、画像全体のコンテキストを十分に考慮できていないため、部位間の繋ぎ合わせの精度が低い という欠点があります。

画像1

参照:DeepCut: Joint Subset Partition and Labeling for Multi Person Pose Estimation

トップダウン型


①物体検知アルゴリズムで人物を検出
 ↓
②それぞれの人物について、姿勢を推定

人数に比例して計算量も増加してしまうのが欠点ですが、各人に対して姿勢推定を行う(single person pose estimation)ので、精度高く推定できるのが特徴です。

画像2


参照:Multi-Person Pose Estimation with Local Joint-to-Person Associations

両方に共通する課題

以下のような状況のときは、ボトムアップ型・トップダウン型を問わず、推定が難しくなります。

物に隠れて体の一部が見えないとき
背景と人が同化(例:白シャツに白い背景)しているとき

これらの課題を解決する取り組み(論文)をご紹介します。↓


論文(Cascaded Pyramid Network, CPN)のご紹介

こちらの論文では、トップダウン型のアプローチによる姿勢推定手法が提案されています。

トップダウン型なので、ステップは次の2段階です:人検出 ➔ 姿勢推定

CPNのブレイクスルー:キーポイントが隠れていたり、背景が紛らわしい場合でも、高い精度で推定が可能!

1. 人検出
人検出には、Feature Pyramid Network(FPN)をベースにしたモデルを使っています。ただし、RoI Poolingの部分は、RoI Alignに変更されています。(※RoI PoolingよりRoI Alignのほうが優れている理由は、こちらの記事で解説されています。)

2. 姿勢推定
この論文では、Cascaded Pyramid Network(CPN)と呼ばれるネットワーク構造が提案されています。

CPNは、GlobalNetRefineNetと呼ばれる2つのステージから成っています。
GlobalNetは、ResNet backboneをベースにしたFPNのようなU字型構造をしたネットワークで、"簡単明瞭(simple)"なキーポイントを探すことができます。一方、RefineNetは、GlobalNetで生成したそれぞれの階層の特徴量をアップサンプリングし、HyperNetのようにconcatenateすることで特徴量の情報を統合するネットワークで、見つけ難いキーポイントの推定を可能にしています。

画像3

下の画像では、顔や肩ははっきり見えていますが、ヒップは映っていないため推定が難しいケースです。

画像4

ヒップのように隠れたキーポイントを推定する場合、局所的な特徴量よりも、抽象度が高い意味情報(コンテキスト)が必要で、その役割を担うのがRefineNetになります。
RefineNetは、Stacked hourglassに似ていますが、stacked hourglassのようにアップサンプリングされた最後の特徴量だけを使うのではなく、GlobalNetで生成された全ての層の特徴量を、concatenateして余すとこなく使っている点が異なります。

画像5

これらによって、以下の画像のように姿勢推定が可能になります。3枚目右端の男性の足は一部隠れていますが、おおよそ正しい位置を推定できていることがわかります。

画像6

まとめ

姿勢推定における一般的なアプローチ2種類の紹介と、論文を1つ紹介しました。
論文では、何かに隠れて推定しづらいキーポイントでも、精度高く推定できる手法をご紹介しました。


※こちらの記事は、同著者によるQiita記事の転載です。

この記事が気に入ったらサポートをしてみませんか?