DeeperCut: A Deeper, Stronger, and Faster Multi-Person Pose Estimation Model 〜ArtTrackに向けて vol.2〜

Glia Comuputing 研究員の芦原です.

 本記事は,ArtTrackの解説に向けて,先行研究を順に解説していく記事の第2弾となります.前回の記事を踏まえての内容も多いので,この記事から読んでみようと考えている方にも読めるように,前回の記事のおさらいを前半で述べますが,DeepCutのより細かな解説については前回の記事から見ていただければと思います.

紹介する論文の概要

 今回紹介するDeeperCutは,ECCV2016で発表されたもので,同年のCVPR2016で発表されたDeepCutの改良版となるものです.実際のところ,CVPR2016のポスター原稿の時点で改良中であることを公言しており,DeepCutと比較して,精度を向上するだけでなく,より推論にかかる時間を短くすることに成功しています.表題にもStronger, Fasterといった単語が羅列されており,Daft PankのStrongerを思い起こさせるような語呂の良さが気持ちの良い論文です.本記事は,DeeperCutを解説する上で,まずDeepCutの構造について簡単におさらいし,課題を述べた上で,DeeperCutで改良した部分を解説していきます.DeepCutがもう頭の中に入っている方は,4章から読んでもらえればOKです.

DeepCutの簡単なおさらい

 この章では,DeeperCutDeepCutの改良版であるということから,元々DeepCutが行っていたことをおさらいしようと思います.

 DeepCutを一文にまとめれば,Multi-Personな環境下で人物の姿勢推定を,ボトムアップ型のアプローチによって実現する手法である.と言うことができます.DeepCut登場以前までは,人物の検出→各人物についての姿勢推定といったトップダウン型のアプローチが多く扱われていました.そこでは人物の検出そのものができなかった時にうまくいかないといった欠点や,各人物ごとに姿勢を推定するといった点が推論時の実行時間を大きくしてしまうといった問題がありました.そこで,DeepCutでは,先に肘や膝,頭といった人物を構成する部分をキーポイントとして抽出し,抽出したキーポイント同士をうまくつなげるというアプローチを実現しました.言い換えれば,人物の体の部分の候補点となるキーポイントの抽出→キーポイントどうしのマッチングというボトムアップ型のアプローチです.

 ボトムアップ型アプローチもまた,マッチングの組み合わせを解く問題がNP困難であるという問題を抱えていました.DeepCutはその問題に対して,定式化を行い,整数計画法(ILP)を扱える問題に落とし込み,Correlation Clustering(こちらの資料がわかりやすいです)のような工夫が可能な問題へと変換しました.マッチング問題をシンプルに定式化し,キーポイントの抽出の際に使ったモデルの特徴量を使った回帰によってマッチングを行っています.DeepCutが行っている流れを図にすると,以下のようになります.

画像⒈ DeepCutの流れを表した図

 上記の図の流れを簡単に解説しますと,
①カラー画像を入力として使います
②CNN型のモデルを用いて,肘や顔といった人物を構成する部位(キーポイント)を抽出します
③ ②で抽出されたキーポイント同士の全てのつながりの組み合わせを考えます
④ ③で得た組み合わせに関して,②で得られる特徴量を使った回帰を行うことによって,全ての組み合わせから人物ごとの組み合わせのみが残るようにします
⑤ 最後に,キーポイントの部位ごとの代表部分を出力します

 といった流れになります.DeepCutはこうしたボトムアップ型のアプローチで,当時のSOTAを達成しました.

DeepCutが持つ課題

 発表当時SOTAであったDeepCutですが,実行時間の長さが一つ問題と大きな問題となっていました.特徴量を利用した回帰とはいえ,組み合わせが膨大なため,かなりの計算時間を要してしまいます.また,特徴量そのものはマッチングの為にあるわけではありません.DeepCutで使われる特徴量はあくまでキーポイントの抽出に使われたCNNをベースにしたNeural Networkから得られるものなので,キーポイント抽出に向いている特徴量が得られているとしても,それがマッチングに対して適切な特徴量であるとは言い切れないと考えられます.Pishchulinらの[1],Eichnerらの[2],他にもChenらの[3]らのような,タスクの為の特徴量を別途抽出するような仕組みもあり,こうした先行研究の良いところをうまくDeepCutの改良に適用していくこととしました.
 まとめますと,DeepCutには実行時間 ,そしてマッチング問題に使用する特徴量の観点で,まだ改良の余地があるということです.

DeeperCutの全体像

 3章で提示した課題に対して,改善する為の策が具体的にどう行われているのかという部分をこの章で解説していきます.まずはDeeperCutの全体像を確認し,次に各手法の詳細について述べていく形式を取りたいと思います. さて,DeeperCutの全体像ですが・・・

画像2. DeeperCutの全体像.

 実際のところあまりDeepCutと変わっていません.①でカラー画像を入力し,②の段階で部位の候補となるキーポイントを抽出します.③で抽出されたキーポイントの組み合わせの全通りと考えた上で,④で人物ごとにクラスタリング,⑤で幾つかのキーポイントの候補点から部位の座標を確定し,最終的に④と⑤の双方を組み合わせて,⑥のような人物ごとに,姿勢の推定が行われた結果を出力します.前回のモデルと比較して改良された部分は,まず②のキーポイント抽出を行うNeural Netを変更したことと,そのNeural Netから,④や⑤で行うマッチングの工程を補助できるような出力を直接的に得るところとなります.その二つの改良を次の節で述べていきます.

ResNetを使ったキーポイント等の抽出

 まずは,キーポイントの抽出を行うNeural Netを変更した部分について述べていきます.DeepCutの発表時から書いてあったことですが,より深いNeural Netを学習することができれば,入力された情報から特徴抽出をする際に,よりうまくいくだろうということが考えられていました.(そもそも,昨今のDeep Learningもそのモチベーションや,Deep Learningの恩恵は深さにあるものだと私も考えています.)したがって,キーポイントを抽出するNeural NetもDeepCutより深いものを採用したということになります.具体的にはResNet[4]と呼ばれるモデルを採用することになるのですが,ResNetに関して詳しく書いていくとまた長くなってしまうので,ここでは省略します.実際にDeeperCutでは152層のResNetの構造を採用することで,DeepCutと比較してより良い精度を得ることができたと著者らは述べています.

 また,ただ単にキーポイントを抽出するだけでなく,その後に行うマッチングの補助となるような出力を追加することで,マッチングをより良い精度をにすることを可能としました,具体的には,新たに二つのベクトル場を出力することになるのですが,簡単に言うと,マッチングに必要なペアに関するベクトル場の出力を行う層と,膝であれば膝のみ,顔であれば顔のみといった部位ごとのベクトル場を出力する層を出力の層として追加します.こうして,ResNetに出力を追加する形で学習をするのですが,後にボトムアップ型のアプローチで,キーポイントの抽出とマッチングのための特徴量を画像から抽出する方法論は前々回で紹介したOpenPoseにも影響を与えています.OpenPoseではキーポイントの抽出とマッチングに必要なベクトル場を別々のNeural Netで学習させ,最終的にその二つの出力を点と点を結ぶ線積分で活用し,姿勢推定を実現しています.DeeperCutはキーポイントの抽出及びマッチングに必要な特徴量を一つのNeural Netから,出力を分岐させる方式を用いて実現しています.個人的には,学習の難しさなどを考慮して,別々のNeural Netで学習させるOpenPoseの形式のほうが良い結果を得やすいのではないかと思いますが,このDeeperCutの方法論で学習させる技術は素晴らしいと思います.

画像3. DeeperCutにおけるResNetを使った,キーポイントの抽出及びマッチングのための特徴量抽出を考慮したモデル.全部で3つの出力を活用することで,DeepCutよりも高い精度を出すことに成功した.

 とりあえずResNetをベースに,複数の出力があるところまでは述べましたが,キーポイントの抽出以外の二つの層は,どのように学習するのでしょうか.その部分について触れていきたいと思います.
 画像3.の出力部分が3つあることになりますが,そのうち上側の二つ(ScoreMaps と Unary Vector Fields)は前回のDeepCutのBody Parts DetectorとLocation Refinementにあたる部分なので,中間層が変わっただけで同じような出力を出します.残りの1つであるPairwise Vector FieldsがDeeperCutで提案された新しい出力ですが,どのような出力を期待したいのかというと,下の画像4.のようなものです.

画像4. Pairwise Vector Fieldsが目指す出力,各写真は人物の左肩を中心に,他の部位である足や顔に向けて線分が伸びている.

 簡単に言ってしまえば,あるキーポイントに注目した時,そのキーポイントから他の部位までの線分を出力するように学習するのがPairwise Vector Fieldsを出力する層の役割になります.これを追加しておくことによって,画像からマッチングに必要な情報を抽出することができ,DeepCutよりも良い精度でマッチングを行うことができると期待されます.

マッチング問題のさらなる改良

 前の節で述べたResNetを使ったモデルに改良した部分で,マッチングにうまく働いてくれそうな特徴量を,キーポイントから他の部位へのつながりを出力するという形で実現していることがわかりました.DeeperCutではモデルの出力がマッチングに適した特徴量も出力できるように,DeepCutまでのモデルを改良したと見ることができます.
 この節では,DeeperCutがモデルの改良以外に加えたもう一つ大きな工夫について述べます.それは,ステージ分けという段階的な部位抽出の方法論です.DeepCutでは,キーポイントの抽出をモデルが一度に行っていましたが,DeeperCutでは,ステージという単位に分けて,1ステージ目で肘と膝だけ,2ステージ目で顔とお尻だけ,というように,モデルを階層的に重ねて,段階的な部位の抽出,及びマッチングの特徴量の抽出を行う工夫をしました.それによって,本来キーポイントの数に対して,全組み合わせを考えれば指数的に増える組み合わせ問題の計算量を緩和し,速度を向上しています.実際に論文中で行われたステージの構成は以下の通りです. 

表1. DeeperCutのステージ分け,例えば上側の行では,1ステージ目に頭,肩,肘,手首といった上半身に関わる部位をモデルが抽出するようにし,その後2ステージ目で下半身の抽出を行えるようにする

 こうした工夫によって,より速く,より精度よく部位の抽出,マッチングを行うことができるようになりました.この階層的に分けるステージの考え方は,後に発明されたOpenPoseにも大きな影響を与えていると考えられます.そういう意味では,DeepCutからDeeperCutという変遷で辿ってきた道のりは,非常に示唆に富んでいるものだと言えます.

実験結果

 ECCV2016で発表された当時,DeeperCutはSOTAを達成しました.

表2. DeeperCutの実験結果の抜粋.DeepCutと比較して,実行速度や精度が大きく向上していることがわかる

 姿勢検出に向けて行った様々な工夫が精度に大きく寄与していることが伺えます.また,ステージ分けの効果も速度面で大きく発揮されていました.

表3. ステージ分けを行った結果.3ステージを使った場合の結果が実行速度としては他に比べて速くなっていることがわかる

まとめ

 前回のDeepCutのアプローチから,細かな改良を重ねたものがDeeperCutと言えると思いますが,工夫した部分で,後世に残るような示唆に富んだ工夫が以下の2点にあると考えられます.
⑴ ボトムアップ型のモデルにおいて,画像からマッチングのヒントになるような特徴量を抽出できるように,モデルにマッチング用の出力を付け足すという考え方
⑵ ステージと呼ばれる単位での,段階的な部位の抽出工程を考えること.
⑴に関して言えば,従来法では,画像はあくまでキーポイントの抽出を目的にモデルが考えられており,マッチングにはそのモデルの中間層や,出力層付近の特徴量を使っていました.DeeperCutでは,マッチングのための特徴量を出力にうまく追加して学習しているという点が一つ素晴らしいところだと思います.⑵については,ボトムアップ型のアプローチの難点である,組み合わせが指数的に増えてしまう問題に対して,段階的な検出という考え方を用いることで,計算速度を大いに向上させたということです.これら2点の貢献は,ボトムアップ型のアプローチに大きな影響を及ぼしていると個人的に考えており,後に出てくるOpenPoseのような素晴らしいモデルも,これらの考え方をうまく取り入れていると考えられる部分があります.

 今回の記事では,DeepCutの改良版としてDeeperCutを見ていたため,多くの部分を端折っていますが,このDeeperCutが行った工夫については,この後に発表されている姿勢推定のためのアプローチに大きな影響を与えていると考えられるため,追っておいて損のない論文だと思います.

参考文献

[1] Pishchulin, L., Andriluka, M., Gehler, P., Schiele, B.: Poselet conditioned pictorial structures. In: CVPR’13
[2]Eichner, M., Ferrari, V.: We are family: Joint pose estimation of multiple persons. In: ECCV’10
[3] Chen, X., Yuille, A.: Articulated pose estimation by a graphical model with image dependent pairwise relations. In: NIPS’14

この投稿へのコメント

コメントはありません。

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL