人物姿勢推定(Human Pose Estimation)

1. 人物姿勢推定とは [概要]

人物姿勢推定(Human Pose Estimation)とは,入力画像中の各人物に対して,画像上のキーポイントと,それらを結ぶ2次元ボーンを,その人物の姿勢として推定する問題のことを指す.

この記事では,「画像入力からの人物2D姿勢の推定手法」について,深層学習以前の手法(2節)と,深層学習以後(3節)の順に紹介する. 3節のディープ手法が,この記事のメインコンテンツであり,その中でも,以下の2つを,代表的手法として取り上げる:

  1. Part Affinity Fields (OpenPose) (3.2節) のヒートマップによる手法
  2. Stacked Hourglass Network + 結合埋め込み(Associative Embedding)によるキーポイント対応付け手法 (3.3節).

1.1 人物姿勢推定の出力:キーポイント + その間の直線ボーン

人物姿勢推定の関節構造
図1.人物姿勢推定の結果例 (OpenPose のHP中に以前掲載されていた画像を引用).

画像入力からの人物姿勢推定の処理では,まず直線ボーン両端の「関節の中心位置」や「部位の中心や端点(目や鼻の中心)」をキーポイントとして推定する.そして,骨格モデル(図1)をもとに,推定したキーポイントのうち,隣接する2点を結んだ「直線ボーン」を最終出力とする事が多い.つまりは,キーポイント間を結ぶ「直線ボーン部位」自体は推定せず,その端点のキーポイントのみを推定するが,結果として見やすいように各ボーンも可視化する.

画像からの人物姿勢推定(図1)は,リアルタイム推定手法である Part Affinity Fileds(OpenPose) [Cao et al., 2017], [Cao et al., 2018](3.3.1 節) が登場して以降,画像・映像からの人物行動理解では,OpenPoseなどの推定結果の2Dスケルトン姿勢を,後段の処理に活用することも多くなった.

[図1-左] は, COCO データセットにおける,人物姿勢のキーポイント箇所とそれをつなぐボーンの定義である,また,図1-右図: 画像にOpenPoseを適用した姿勢推定結果の2Dボーンを,可視化したものである.このように,首から下の「四肢と体幹の2Dボーンの人物姿勢(Articulation)」を推定することが,これまでの人物2D姿勢推定問題の主目的である.頭部や手先・足先,顔や目・鼻などについては,1点もしくは数点で簡易的に表現する.そして,その他に,体幹部と腕・足の各関節キーポイントの推定を行う.

あくまで人間が画像上にキーポイントを打った正解を学習しているので,本当の人間の関節点やキーポイントとは一致していない.そもそも人間の関節は,2つの筋肉の組み合わせであったりして「1点で表現できないもの」もあるが,むりやりそれを1点に見なしているのが,こういった(CG業界的な)「人間の簡易スケルトン」である.

この2Dボーンは,人間は解釈しやすいし,それをそのまま機械学習モデルの入力特徴にも使用できる.よって,人物姿勢推定は,「行動認識用の特徴量として,用いるスケルトン姿勢を推定する前処理の課題」であると,みなすこともできる

一方で,2D人物姿勢推定では,図1のように「直線形状の骨の姿勢推定」が主であり,「胸郭・あばら骨」や「背骨・骨盤」など,非直線的で曲がった形状の骨の姿勢の推定は,人物姿勢推定と言う場合は行わなれない.

ただし,Kinectやモーションキャプチャのように,本当は画像からも3Dスケルトン姿勢を推定できた方が,行動認識など他の人物理解タスクへの使い勝手もよい.従って,近年は,画像からの人物3D姿勢推定の研究も非常に活発である.近年は,以下のような「画像からの人物3Dボーン姿勢推定」や,「3Dメッシュモデルあてはめによる3D人物姿勢 + 形状推定」の研究開発も盛んである:

  • 人物3D姿勢(ボーン)の推定 (3D Human Pose Estimation):単一画像から人物の3Dスケルトン姿勢を推定する.
  • 人物メッシュ復元(Human Mesh Recovery):画像中の人物に3D人体形状モデル(例:SMPL やSMPLify-X)をあてはめて,「3Dスケルトン姿勢 + 3D表面形状 (つまり姿勢と形状)」をメッシュモデルの状態推定として解く.

この記事では,上記2つの3D人物姿勢推定の話は除外し,画像からの2D人物スケルトン姿勢推定の技術紹介についてのみに焦点を当てる.

1.2 学習する「人物画像データ」の分布

2D人物姿勢推定で,学習に用いられるデータセット中には,人物の様々な「姿勢の変化」や「服装の変化」が含まれるよう画像が収集されている.そういった画像中の人物の「見え方(appearance)の多様性」を設計したデータセットから学習を行うことで,未知の姿勢や服装に対応できる,「汎化性能が高い人物姿勢推定モデル」を学習することを目標にしている.

しかし,この仮定の話はあまり明示的には各論文で説明されない.逆に言うと,そのようなデータセットで学習した OpenPose [Cao et al., 2017] などは,データセットの平均分布に相当する「中肉中背の大人の人物画像」には強いものの,その平均から比べて極端に体型・身長・服装の変化がある,人物画像の場合は,正しく人物領域を捉えての推定はできていない(ただし,たまたま上手く推定できることが多い).そして,それらの多様性に対応するための,3Dモデルをもとにした人物姿勢推定や人物形状推定も近年盛んである.

深層学習登場以前の人物姿勢では,以下の2ステージ構成システムを用いた解き方が主流であった(2章)

  • 前半:パーツ検出器を用いて画素ごとのパーツクラス尤度を推定(ラフな局所情報による推定).
  • 後半:人体シルエットモデル(Pictorial Structures)を用いてグラフ推論で最適パーツ配置を推定( 前半のパーツ位置を全体最適化でRefineする).

これはデプス画像からの姿勢推定 (Kinectに搭載された手法)でも採用された戦略であるが,深層学習登場以降も,この基本方針は踏襲したまま,深層学習・CNNに合うかたちに改良・洗練されていくことで精度が向上する.また,深層学習以前は不可能だった「横向き姿勢」「パーツが遮蔽した姿勢」も推定できるようになる(3章).

1.3 記事の構成

1.2節で見た歴史的変遷を踏まえて,この記事では,「画像からの人物2D姿勢の推定手法」について,以下のように深層学習以前(2章)深層学習以後(3章)の順にまとめていく:

  • 2章 深層学習以前の手法 [概要]
    • 2.1 「パーツ検出 + Pictorial Structures 」の手法
    • 2.2 「キーポイント回帰」ベースの手法
  • 3章 深層学習を用いた手法 :
    • 3.1 カスケード学習方式:回帰ベース
    • 3.2 パーツ検出:「信頼度マップ」の導入
    • 3.3 複数人物への対応:パーツ対応づけ処理の追加

この記事では,(管理人も博士課程以後,専門の1つとしている)以下のような「3D人物姿勢と形状の推定(人体メッシュモデルの画像へのフィッティング)」は範囲外とする:

  • 画像からの3D人物姿勢推定 (Human 3.6Mデータセットなどをベンチマークに用いる).
  • 同一ペンギンポーズでの人物3D形状推定(SMPL等の3D人物メッシュモデルを,画像へあてはめ)
  • 画像からの3D人物姿勢推定(SMPLify-Xなど表情豊かに姿勢も変化する3D人物メッシュモデルを使用.例:Human Mesh Recovery)』

ちなみに,この記事の「画像からの人物2D姿勢推定」は,著者が博士論文で研究を行った,いまでも研究興味の高い問題設定である.私が後期博士課程に進学した当時は,初代のMicrosoft Kinectが発売されて,[Shotton et al., 2011]の論文が話題になった頃であった.

2. 深層学習以前の手法 [概要]

2010年あたりの「人物姿勢推定技術に実用性がある論文が初めて生まれ始めた頃」から話を始める.この2節の内容について,詳しくは子記事の人物姿勢推定 [ディープラーニング以前の手法] に移動したので,そちらを参照されたい.

2.1 「パーツ検出 + Pictorial Structures 」の手法

2010年頃の当時は,DPM(Deformable Part Models) などの「物体検出」技術が,画像認識の主役であった.よって,人物姿勢推定においても,当時の物体検出を応用するかたちで,「検出性能の高いパーツ検出器(boostingなど)を利用した姿勢推定モデル」が提案されていった.

パーツ検出ベースの代表的手法である Flexible Mixture-of-Parts [Yi and Ramanan, 2011] では,「パーツ検出器の混合モデル化」と, DPM を応用した「人体パーツのPictorial Structuresグラフの学習」により,スポーツ選手のような姿勢変化の激しい対象でも,人物姿勢検出ができる手法を提案した.

2.2 「キーポイント回帰」ベースの手法

人物姿勢推定向けではないが, Cascaded Pose Regression(CPR) [Dollar et al., 2012] は,剛体物体の2D姿勢の回帰を,回帰モデルの回帰で行うことを提案していた.この路線は,顔のキーポイント推定などでにも応用されて発展していった.

一方,[Hayashi et al., 2015] は,基準キーポイント(頭部中心)をもとに中心位置合わせされた人物領域HOG特徴ベクトルを入力として,ターゲットキーポイント(頭部中心)相対ベクトルを,回帰で学習する Posletet-Regressorを提案した.同時期にDeepPose [Toshev et al., 2014] (3.1.1節)が登場するが,同時期に似たフレームワークで非Deepに解いていたのが私のチームの研究である(※ 2014年時点の前段階では,グリッド位置の識別問題として提案していた).

3. 深層学習を用いた人物姿勢推定

2章の手法はPoselet-Regressor以外はどれも,「強いパーツ検出器で各パーツの尤度を計算 -> Pictorial Structureのグラフ処理により最適なパーツ配置を推定」という処理設計であるがゆえ,「正面向き・全パーツ見えていて欲しい」という適用可能な人物画像の制限があった.それが,深層学習およびCNNの発展により,対応不可能だった部分遮蔽時も強い人物姿勢推定手法が提案されていく.

そして,最終的に複数人物でリアルタイムに姿勢推定可能な OpenPose [Cao et al., 2017] の登場により,CNNベースの人物姿勢推定手法がひと段落し,コモディティ化が始まるまでに到る.

3章では,CNN化の開始であったDeepPose から,OpenPose登場に至るまでの「深層学習ベースを用いた手法の発展」を,以下の3段階に分けて時系列順に紹介する:

3.1 カスケード学習方式 : 回帰ベースの推定

3.1.1 Deep Pose

DeepPose [Toshev et al., 2014]は,深層学習時代に入って,一番最初に人物姿勢推定手法として有名になった手法である.DeepPoseでは,人物画像から検出した,ラフな人物領域内の画像を入力とする.そして,カスケード接続した$K$ステージのCNN回帰を用い,キーポイントの絶対座標をRefineしていき,最終結果を推定する.

Deep Pose [Toshev et al., 2014] がarxivに登場した2014年には,の「Cascaded Pose Regression (子記事(3.1節)) 」や,CPRの顔ランドマーク向け応用の「Explicit Shape Regression」[Cao et al., 2012] においても,既にカスケード構成での姿勢回帰が行われていた.Deep Poseは,そのカスケード学習の仕組みを,初めてCNNで試した研究である

しかし,CPRがreferされていなくて非常に良くない.査読されていないプレプリントだけ発表された研究にはこういう良く内面もある.

処理手順

DeepPose では,$j$番目の関節点のキーポイント$\bm{p}_{j} \in \mathbb{R}^2$を$K$個分CNNで回帰することを,$S$ステージだけカスケード方式で予測を繰り返してRefineしていく.1ステージ目のCNNも,2ステージ目以降のRefine用CNNも,ともにAlexNetをバックボーンに用いる.

1ステージ目CNNでは,最後の全結合層(4096次元)から,K個の関節の$ \bm{p}_{j} = (x_j,y_j)$値を列ベクトルとして並べた$2K$次元ベクトルを出力として回帰し,この結果「誤差がまだ結構含んでいる全パーツの推定結果」が初期解として手に入る.次に2ステージ目以降のCNNでは,各関節$j$について個別に,GroundTruth 値をターゲットとした前ステージの予測値からのRefine分を推定する.2ステージ目以降の入力画像には,前ステージ$s-1$で推定した$ \bm{p}_{j}^{s-1}$の周辺の小さいバウンディングボックス内の画像を用い,出力には間接$j$のそのステージにおけるRefine値$\Delta\bm{p}_{j}$を推定する.

最初のCNNベースの手法としての立ち位置

論文中の推定結果の可視化を見てもらうとわかるが,Leed Sports データセット中の極端な姿勢での結果が(最近のCNN手法と比べると)どれもあまり良いものではない.すなわちDeepPoseの時点では,以前の手法の課題が解決するまでには至っていない,あくまでCNNベース手法の最初の提案であった.

また,同じ会議 (CVPR2014)で登場し,その後しばらくは人物姿勢推定の標準的ベンチマークとなる「MPIIベンチマークデータセット」の実験がDeepPoseの論文 [10] では行われていない.よってDeepPoseは,その後の世代の「信頼度マップベースの手法(3.2節)」との比較ができない論文でもあった.

3.2 キーポイント検出:信頼度マップ(ヒートマップ)の導入

CNNの時代に突入後,「画素ごとに.キーポイント位置を中心とした確からしさを,2次元正規分布で表したヒートマップ画像」である 信頼度マップ(Confidence Map)を$K$パーツ分だけCNNで出力する手法が,代表的な戦略となった.信頼度マップのことをヒートマップ(Heat Map)と呼ぶ研究も多い.

この3.2節では,代表手法として,Convolutional Pose Machines [15] (3.2.1節)と,Stacked Hourglass Networks [Newell et al., 2016] (3.2.2節)の2つを紹介する.特に,後者は,ResNetと同じくらい高頻度で,人物姿勢推定のバックボーンとしてよく用いられることになった重要な研究である.

[重要点] この「信頼度マップを出力とする手法」は,2章で紹介した深層学習以前の「パーツ検出器を用いて各画素を$K$クラスに分類する」アプローチに,原点回帰したとも見れる.一方で,2章の頃と比べると,この3.2節の手法は広範囲の空間位置情報も含んだ,深いCNN特徴を入力として,各画素でキーポイントを密に予測できる点にアドバンテージがある.(DPMのように,潜在的な中間パーツも学習していることにも相当している)

また,セマンティックセグメンテーションなどのような「密な推定(=全画素で予測する問題)」の1種として,人物姿勢推定も,キーポイント推定として解ける汎用性のメリットが出ることとなった.事実,この汎用性により,キーポイント姿勢推定手法は,アンカーフリー物体検出 (CornerNet [Hei and Deng, 2018])をはじめとした,「他タスクへの転用」が展開されていくことになる.

3.2.1 Convolutional Pose Machines (CPM)

Convolutional Pose Machines (CPM) [Wei et al., 2016] は,彼らの研究室の過去手法 Pose Machines [Ramakrishna et al., 2014] を,CNN版へ発展させた手法である.中間表現である信頼度マップをRefineさせていくことにより,予測していく. DeepPose(3.1.1節)は,直接キーポイントベクトルを予測していた点が異なる.

前身手法:Pose Machines

CPMの前身である Pose (Inference) Machines [Ramakrishna et al., 2014]は,複数の信頼度マップの構造化推論(Structured Inference)の挙動を,代わりにカスケードモデルへ学習する手法である.Pose Machines の更に前身で,最初のアイデアだった Inference Machines [17] は,セマンティックセグメンテーション問題に対して,グラフのMessage-PassingによるInfereceをカスケードモデルへ学習する手法であった.

Pose Machines [Ramakrishna et al., 2014] では,各ステージでマルチクラス識別器(Random Forest) を用いたカスケードにより,$K$チャネル(= $K$パーツ) の信頼度マップを段階的にRefineしする構成である.前ステージの$K$パーツ分の信頼度マップ全てを,次ステージの予測の入力特徴ベクトルに結合して用いる.よって,パーツ間コンテキストを考慮した推論を,Random Forestのカスケードとして学習できる.また,各ステージ間において「それぞれ異なる周辺コンテキスト矩形サイズの画像」を入力とした推定を,$L$本並列に実施する.従って,$L$層分の複数スケールのコンテキストに基づいた信頼度マップのRefine具合も学習できる.

Pose Machines の CNN化

CPM では,Pose Machinesの各ステージの推定器を,CNNに差し替えることが提案された.CNN化のおかげで(論文中 Figure 2のように) たった3ステージの構成であるにもかかわらず,人物領域全体を最終的に受容野として各画素周辺のコンテキスト特徴を取り入れながら構造化推定を,カスケードCNN群へ学習できる.

これにより,高い人物姿勢推定精度と,CNNの恩恵による計算効率化の両方を達成しながらも,旧来の人物姿勢推定手法が苦手であった「横向き姿勢」も含めた「あらゆる姿勢変化」を(Pose Machines のように) 推定可能となった.

3.2.2 Stacked Hourglass Network

CPM [Wei et al., CVPR2016] の直後に,Encoder-Decoder構造の「Hourglassモジュール」ブロックを,複数カスケード化した,人物姿勢推定向けのバックボーン構造として,Stacked Hourglass Network(SHN)が提案された [Newell et al., 2016] .SHNは,「Hourglassモジュール」を,$N$段横方向に積んで繰り返した,カスケード型のネットワークである.

Hourglassモジュールの構造は,U-NetFPN的に,各解像度間をスキップ接続で結んだEncoder-Decoder型CNNをベースにし,畳み込み層をこまめに残差接続化して,残差ブロック化したものである.

また,SHNでは,Hourglassモジュール間も残差接続で結合されている.(カスケード型ネットワークでよく行うことであるが),残差接続側パスで信頼度マップを中間出力する際に,毎回教師信号を与えて補助ロスも取れる構造にしてある.(InceptionNetから使われるようになった,中間層で補助ロスをとるしかけ)

以上の,残差接続を多用し,かつカスケード化されている構造により,かなりの深く残差的な畳み込み層群を,残差学習かつ残差カスケード学習(※ Houglassモジュール単位で)が可能になる.これによって,SHNは高精度な2D人物姿勢推定を達成できるようになり,その後の人物姿勢推定の定番バックボーンとなった.

3.3 複数人物への対応:「キーポイント対応付け処理」の追加

3.1と3.2の手法は単一人物向けの手法であったが,この頃「画像中の複数人物の姿勢」をお互い区別して推定する問題設定の提案が,ディープラーニング向けにも始まった [Pishchulin et al., 2016].

3.2節などの,単一人物画像向けのアプローチで解こうとした場合,$N$人同時に画像上に登場していると,CNNで信頼度マップを予測しても,同一パーツの関節が$N$個同時に登場してしまい,各関節が$N$人のうち誰の関節なのかを区別できなかった.そこで,信頼度マップで推定した関節キーポイントを「人物インスタンスごとに分割する処理」を追加することで,解決をはかることが提案された.

複数人物姿勢推定手法は,その「人物ごとにキーポイントを分割する処理」の実施方法によって,以下の2つに分類できる:

  1. Bottom-Up手法:信頼度マップに加えて,関節キーポイントを人物インスタンスごとに対応付けする用の「中間特徴量」も推定しておく.最後に,それらを用いて人物ごとに関節を分割(グルーピング)して対応付けする.
  2. Top-Down手法Faster R-CNN などで人物検出を行い,異なる人の領域を先に検出して区別し,各インスタンス領域で単一画像姿勢推定を行う.そして,人物間遮蔽などにより生じた関節位置のエラーを修正する処理 (Refinement) も行う.

まず最初に,Bottom-Up手法として,DeepCut [Pishchulin et al., 2016]・DeeperCut [Insafutdinov et al., 2016]が,初めての複数人物姿勢推定として連続して提案された.

次にTop-Down手法として,[Iqbal and Gall, 2016] が提案された.人物検出後に,その各ROI矩形内で単一画像姿勢推定を行い,誤差をInterger Linear Programmingで修正する手法である.また,この頃登場した Mask R-CNN も,COCOデータセットの人物キーポイント位置も学習する意味で,Top-Down人物姿勢推定手法の一種である.

以降は,このうち,3.2節の複数人物対応版手法として発表された,Part Affinity Fields(PAF, OpenPose)(3.3.1節)と ,Associative Embedding (3.3.2節)を紹介する.

3.3.1 OpenPose:Part Affinity Fields (PAF)

子記事:OpenPose:Part Affinity Fields (PAF) [T.B.D]

前節のCPMと同じ研究グループから,Part Affinity Fields(PAF)を用いたリアルタイム複数人物姿勢推定手法の OpenPose が提案された [Cao et al., 2017]. そのメインアイデアは,「キーポイント間の結合(part association)」情報として用いる,キーポイント群に対し,グラフ対応づけ処理を行えば,同一人物ごとにキーポイントを分割(グループ分け)できる,というものである.

PAFは,ペアとなるキーポイント(=パーツ)間の『Affinity(2つがペアである度合い)』を示すベクトル場のことである.パーツペア(= ボーン)の数Kだけ,そのボーンに対応するPAFをK枚,推定するようにFCNを学習する.各一枚のPAF上では,そのチャンネルが担当する$k$番目のボーン(例:右前腕ボーン)上の範囲の各画素位置でのみ,(1)基準キーポイント(例:右前腕ボーン手首点)から,そのボーンとしてペアとなる(1)端点キーポイント(例: 右前腕ボーン肘点)への「方向」を指すベクトルを学習する.

複数人物が重なり合って写っている画像に対して,もし前節3.2の処理のように,信頼度マップの推定を行う処理だけで済ますと,点が検出されるだけでボーン情報は学習されていないせいで,うまくキーポイント間の対応づけができない.そこで,各キーポイント間でPAF(対応付けベクトルフィールド)も学習しておくと,どの2点がボーンとして結合を形成するか(ボーンの領域範囲とボーンの向き)も,推定することができる.

では,以下の2ストリームを,カスケード式に同時に相互Refineしていくネットワーク構造を提案した:

  1. 信頼度マップ(キーポイント検出)を出力するストリーム.
  2. PAF(同一人物内のパーツ間の対応づけ) を推定するストリーム.

まず前段の処理では,このネットワークの順伝搬を行い,信頼度マップとPAFが出力のマップ画像として2つ得られる.

そして,後段の処理では,以下の「グラフ対応付け処理」をおこない,キーポイントのグルーピングを行い,各人物ごとにキーポイントをまとめていく:

  • ノードを(信頼度マップで検出した)キーポイントで構成した2分木グラフを用意し,各エッジの重みにはPAF上でキーポイント間の直線に沿って積分した値を計算する.
  • このグラフをBipartite Matchingで解くことにより,最終的な出力である「同一人物同士のキーポイント間のみが接続された対応づけ結果」を得る.

こうしてOpenPoseでは,人物検出器による前段のTop-Down処理の必要なしに,(最後のキーポイント対応づけのグラフ処理以外は) 2ストリームのBottom-upベース処理のみで,複数人物の人物姿勢推定を実現することができた.計算効率も向上することになり,リアルタイムに動画から毎フレームの複数人物姿勢を推定することが,初めて達成できた.

本手法 [Cao et al., 2017] は, OpenPoseという名称でオープンフレームワークとして公開された.顔と手・足のキーポイント検出処理も追加されたもので,ジャーナル版論文の4章で,このOpenPoseが(アカデミックに)提案されている.

3.3.2 Associative Embedding (結合埋め込み)

Newellら [24] は,単一人物画像の姿勢推定手法であった Stacked Hourglass Network [18] (3.2.2節)の続編として,複数人物姿勢推定手法である 結合埋め込み(Associative Embedding)を提案した.同一人物のキーポイント同士が近くに配置される「人物クラス値の埋め込み」である結合埋め込みマップ(Associative embedding map)を推定することにより,信頼度マップで検出した関節位置の「タグ(= 関節ががどの人物クラスに属するか)」の推定に結合埋め込みマップを用いるという手法である.

[24] のネットーワークでは,信頼度マップ$K$チャンネルに加えて,結合埋め込みマップ (タグ値のマップ)$K$チャンネルを出力し,合計$2K$チャンネルを出力する(論文 [24]中 Figure 2を参照).$i$番目の関節の信頼度マップ上で検出された各関節位置$x$は誰の関節なのかまでわからない.しかし,関節$i$に対応する結合埋め込みマップ$h \in \mathbb{R}^{W \times H}$上では,検出位置$x$でのタグ値$h(x)$に,その関節が$j$番目の人物クラスの関節であるかの値が推定されている.したがって,このタグ値の距離を用いるだけで,高速に関節群を人物ごとにグルーピングできる.難解な最適化や,後処理的にCNNから分離してしまう対応づけ処理(ハンガリアンアルゴリズムなど)を行わず済むゆえ,計算効率性が非常に高く処理も速い手法と言える.

$K$枚の結合埋め込みマップ$h$を学習する際には(contrastive loss的な)Deep Embedding学習を行う「grouping loss関数」が用いられる.画像上の関節位置(x)に対応するタグ値を$h(x)$としたときに,Grouping Loss関数は,「同一人物クラスのタグ値は近づける」と「別人物クラスのタグ値は遠ざける」の2つの誤差の重み付け和で定義されている.よって,(人物間遮蔽パターンも十分に含む)複数人物が写っている画像群から学習することにより,同一人物の関節位置が,(1)結合埋め込み上の近い位置にグルーピングされて埋め込まれ,かつ (2)人物$N$人分の各グループはお互い離れた場所に埋め込まれることとなる.

ちなみに,結合埋め込みは,CornerNet [Hei and Deng, 2018] などの「キーポイント埋め込みベースの物体検出手法」に,その後は発展している.従って,シンプルな手法である上に,こうして他のタスクにも応用できる汎用性の高い手法であるのも,結合埋め込みの良い点だと,著者は感じる.

4. まとめ

この記事では,画像からの2D人物姿勢推定手法について,深層学習ベースの手法(3章)を中心に紹介した.

深層学習ベースの人物姿勢推定は,現在(※2019執筆)おもに「信頼度マップ」を推定する「画素クラス識別」の設定で解かれることが多い.ディープラーニング導入されて,以前前からの問題設定である「単一人物姿勢推定(3.1節,3.2節)」も解かれていたが,その後は新たに「複数人物の姿勢推定(3.3節)」も研究されており,代表的な手法の OpenPose(PAF)と,結合埋め込み(Associative Embedding)を紹介した.

(2022年2月追記) この2年,画像からの2D人物姿勢推定では,OpenPoseの時期以降に主流となっていた「ヒートマップ(信頼度マップ)を学習する手法」をおさえて,「直接回帰ベースの手法」が精度向上し,復権してきている.

References

  • [Cao et al., 2017] Z. Cao, T. Simon, S.-E. Wei, and Y. Sheikh. Real-time multi-person 2d pose estimation using part affinity fields. In CVPR 2017.
  • [Cao et al., 2012] X. Cao, Y. Wei, F. Wen, and J. Sun. Face alignment by explicit shape regression. In, CVPR 2012
  • [Dollar et al., 2012] Dollar P., Welinder, P. and Perona, P.: Cascaded pose regression, In CVPR 2010.
  • [Hayashi et al., 2015] M. Hayashi, K. Oshima, M. Tanabiki and Y. Aoki. Upper Body Pose Estimation for Team Sports Videos Using a Poselet-Regressor of Spine Pose and Body Orientation Classifiers Conditioned by the Spine Angle Prior. IPSJ Transactions on Computer Vision and Applications 2015.
  • [Insafutdinov et al., 2016] E. Insafutdinov, L. Pishchulin, B. Andres, M. Andriluka, and B. Schiele. Deepercut: A deeper, stronger, and faster multi-person pose estimation model. In ECCV, 2016
  • [Iqbal and Gall, 2016] Umar Iqbal and Juergen Gall. Multi-person pose estimation with local joint-to-person associations. In ECCV, 2016 workshop.
  • [Newell et al., 2016] A. Newell, K. Yang, and J. Deng. Stacked hourglass networks for human pose estimation. In, ECCV 2016.
  • [Newell and Deng, 2017] Alejandro Newell and Jia Deng. Associative embedding: End-to-end learning for joint detection and grouping. In NIPS, 2017.
  • [Hei and Deng, 2018] Law, Hei, and Jia Deng. Cornernet: Detecting objects as paired keypoints. In, ECCV 2018.
  • [Pishchulin et al., 2016] L. Pishchulin, E. Insafutdinov, S. Tang, B. Andres, M. Andriluka, P. Gehler, and B. Schiele. Deepcut: Joint subset partition and labeling for multi person pose estimation. In CVPR, 2016.
  • [Ramakrishna et al., 2014] V. Ramakrishna, D. Munoz, M. Hebert, J. A. Bagnell, and Y. Sheikh. Pose machines: Articulated pose estimation via inference machines. In, ECCV 2014.
  • [Ross et al., 2011] Ross, S., Munoz, D., Hebert, M., Bagnell, J.A.: Learning message-passing inference machines for structured prediction. In , CVPR 2011.
  • [Shotton et al., 2011] J. Shotton, et al. “Real-time human pose recognition in parts from single depth images.” In CVPR, 2011.
  • [Toshev et al., 2014] A. Toshev and C. Szegedy. Deeppose:Human pose estimation via deep neural networks. In CVPR, 2014
  • [Wei et al., 2016] S.-E. Wei, V. Ramakrishna, T. Kanade, and Y. Sheikh. Convolutional pose machines. In CVPR, 2016.
  • [Yi and Ramanan, 2011] Yang, Yi, and Deva Ramanan. Articulated pose estimation with flexible mixtures-of-parts. In CVPR 2011.

外部サイト