はじめに
今回は、CVPR'20に採録されたBottom-Up型の2D Pose Estimationについて紹介します。
[1908.10357] HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation
2D Pose Estimationには大きく2つのパターンがあり、Top-Down型とBottom-Up型があります。Top-Down型は、はじめに人物を検出し、その検出された人物ごとに関節点を推定するというアプローチです。それに対して、Bottom-Up型は、全ての人物の関節点を推定して、その後に人物ごとにグルーピングするというアプローチです。
Bottom-Up型は全ての人物を一度に処理できるため、人物の数が増えても高速に推論することができるという利点があります。例えば、Pose Estimationとして有名なOpenPoseもBottom-Up型を取ります。しかしながら、Top-Down型のアプローチのほうが精度としては一般に高く出る傾向にあります。それもあってか、Bottom-Up型の論文よりもTop-Down型の論文のほうが最近は多いような印象があります。
今回のHigherHRNetは、Bottom-Up型のアプローチで精度の改善を行った手法になります。手法に対する有効性の説明も納得感があり、面白い論文に思いました。
さて、Pose Estimationに詳しい方はHigherHRNetという名前から、HRNet [Wang+ CVPR'19]を想像すると思いますが、その想像の通り、HRNetをベースにしています。HRNet自体は、Top-Down型のアプローチとして提案された手法で、2D Pose EstimastionのSOTAのラインにある手法です。手法自体は特に特徴量取得としてのネットワークの取り方にフォーカスのあたっている手法で、物体認識やセグメンテーションにも応用できる手法です。今回はそのHRNetのネットワークをベースにしつつ、Bottom-Up型のPose Estimationを行います。
HRNet: [1908.07919] Deep High-Resolution Representation Learning for Visual Recognition
ちなみに、第2、3著者がHRNetの著者であるMicrosoftの方々で、第一著者はMicrosoftインターンの博士の方のようです。HRNetの著者の方々がメンターで出した論文だと想像します。
Bottom-Up型の課題
Bottom-Up型の課題として様々なサイズの人物の推定に対応することが難しいことがあります。Top-Down型では、人物を検出した後に、その人物画像を一定サイズにリサイズし推論を行うことができるため、人物の大きさの分散が小さく、扱いが容易です。対して、Bottom-Up型では、大小様々なサイズの人物を一度に扱う必要があり、対応することが難しいです。つまり、大きな人物に照準を合わせると小さな人物の推定が難しくなり、小さな人物に照準を合わせると大きな人物の推定が難しくなるということです。
既存のBottom-Up型の手法では、以下のように画像のスケールを変えて推論することで、この課題に対応しようとしてきました。しかし、著者曰く、これだとヒートマップの質が十分に出ないという問題がありました。(スケールごとに別物として扱ってしまうため、各々の情報が活かしきれないのだと思います。)
また、Bottom-Up型として精度の高いモデルであるPersonLab [Papandreou+ ECCV'18]はヒートマップの解像度を上げて精度を上げたということですが、小さい人物の推定精度が上がった一方で、トレードオフとして大きな人物の推定精度が下がってしまったようです。
以上より、Bottom-Up型のPose Estimationの精度向上のためには、複数のサイズの人物それぞれに対応できるような仕組みが必要ということがいえます。
HigherHRNetのモデル
以下が、提案手法の全体像です。点線より左側がHRNetの構造を持ってきたもの、右側が新しく付け足したものになります。
Bottom-Up型では、関節点のヒートマップを出す部分とそれをグルーピングする部分があります。そのヒートマップを出すためのネットワーク構造の作り方が今回の提案で、グルーピングの仕方は [Newell NeurIPS'17]を使っています。
[1611.05424] Associative Embedding: End-to-End Learning for Joint Detection and Grouping
このグルーピングの仕方では、ヒートマップの出力に追加で、どの人物に対応するかを表すEmbeddingも一緒に出力するということをしています。関節点ごとのEmbeddingが各人物ごとに近くなるように出力することで、関節点を人物ごとに振り分けることができるようになります。
HRNetの特徴
画像サイズに近い解像度で特徴量を取り出すとき、よく行われる操作として、一旦何らかのモデル (イメージしやすいのはResNetやVGGのようなClassificationのモデル)で低解像度(小さいサイズ)まで落としてから、アップスケールして解像度を上げていくという処理があります。これに対して、HRNetは複数の解像度を持ったネットワークのパスを作って、それぞれの解像度を相互に合わせることで、リッチな特徴を取得します。(上の図が分かりやすいと思います。)
ちなみに、論文内では高解像度な特徴量の取り方として著者区分で、以下の4つが説明されていました。結局のところ、Encoder-Decoder、Dilated convolution、Deconvolutionを紹介しつつ、HRNetがいいよね、という話をしています。
- Encoder-Decoder
- Dilated convolution (Atrous convolution)
- Deconvolution
- HRNet
Deconvolution Module
次に、HRNetに続く、論文の提案部分である全体図の右側のモジュールについて説明します。以下の図及びその精度の表が分かりやすいです。ほぼHRNetだけの(a)から提案手法である最終形態の(e)までのablation studyとしての説明になります。
まず、(a)からの改良として、(b)、(c)はDeconvolutionを使って解像度を上げたヒートマップを使っています。これによって、の値が上がっています。これは解像度が上がり、、つまり小さい人物の推定精度が上がったことによります。(Pose EstimationのデータセットではSmallにアノテーションをふっていないので、Mediumが小さい人物、Largeが大きい人物として説明しています)
ただし、注目したいのが、の精度が落ちています。これは小さい人物に注目したことで、大きい人物への推定精度が下がってしまったということを表しています。
これに対して、(d)、(e)はDeconvolutionの前の解像度から得られるヒートマップも合わせて使うことで、この低下をなくすことに成功しています。
ちなみに、Deconvolutionで解像度をさらに上げれば精度が高くなるような気もしますが、そういうことはなく精度が落ちたということです。著者曰く、データセットに依存するのではないかということでした。この辺りのネットワークの取り方は改善の余地がありそうだと個人的に思いました。
結果
COCO
2D Pose Estimationでは一般的なCOCO2017でのBottom-Up型の比較の結果が以下です。他の手法に対して上回る結果が出ています。
続いて、Top-Down型も含めた比較の結果が以下です。Top-Down型のトップの水準とはいかないものの、そこそこの位置についていることが分かります。
CrowdPose
また、CrowdPoseという群衆でのPose Estimationのデータセットにも適用しています。以下が結果です。
このデータセットの場合、提案手法がTop-Downも含めて最もよい結果になっています。人が大勢いるような場面ではそもそもBottom-Upが有効であるという結果は面白いなと思いました。
終わりに
以下がまとめです。
- Bottom-Up型のPose Estimationにおいて、複数のサイズの人物に対応する必要性を主張し、HRNetによる高解像度特徴の使用及びマルチ解像度のヒートマップ出力を提案
- 小さめの人物の検出精度向上を主張し、Bottom-Up型としてCOCOデータセットでSOTAを主張
- 群衆データセットでTop-Down型も含めてSOTAを主張し、Bottom-Up型の群衆データでの優位性も主張
場面によっては、Bottom-Up型のほうがコスパがいい場面も多いと思うので、Top-Down型とうまく使い分けられればいいなと思いました。また、HRNetがTop-Down型、Bottom-Up型の双方でSOTAのラインにいるので、なかなか強いと思いました。