Sleep like a pillow

Deep Learning関係の話。

HigherHRNet: Scale-Aware Representation Learning for Bottom-Up Human Pose Estimation

論文リンク

リポジトリリンク

解説リンク

どんなもの?

HRNetベースのBottom-up型のポーズ推定手法であるHigherHRNetを提案。Bottom-up型では、Top-down型のように人物のスケールを正規化することができないため、様々なサイズの人物に対する推定が難しい。HigherHRNetでは、以下の方法によってこの問題に対処。特に小さい人物のキーポイントをより正確に推定することを可能にした。

  • High-resolution Feature Pyramid: 高解像度な特徴ピラミッド(従来の特徴ピラミッドのスケールが1/32~なのに対して、HigherHRNetの場合は1/4~1/2)を用いる。
  • Multi-Resolution Supervision: 学習時は複数解像度のヒートマップに対して学習ロスを計算する。
  • Heatmap Aggregation: 推論時は複数解像度のヒートマップを集約したものを最終的なヒートマップとして用いる。

COCOのtest-devでは、Top-down方には及ばないものの、従来のBottom-up型を凌駕する70.5%APを達成。CrowdPoseでは、67.6%APという(超多人数向けの)Top-down型手法よりも高い精度を出しており、混雑シーンに対するロバスト性を示している。

技術や手法のキモ

HigherHRNet

以下の図がHigherHRNetのネットワーク構造。左部分がオリジナルのHRNetで右部分がHigherHRNetで追加されたモジュール。HRNetの出力にDeconvolutionをかけることで1/2と1/4のスケールのヒートマップを出力する。

f:id:uiiurz1:20200913071838p:plain

Multi-Resolution Supervision

従来のBottom-up型のポーズ推定手法が最も解像度の高いヒートマップについてのみ学習を行っていたのに対して、HigherHRNetでは、スケールのバラつきに対応するために、複数の解像度のヒートマップについて学習を行う。(Bottom-up型のポーズ推定手法における新規性)

ヒートマップのGTを作成する際のガウシアンカーネル標準偏差は、すべての解像度で同じもの(論文では2)を用いる。そうすることで相対的に、高解像度のヒートマップでは小さい標準偏差、低解像度のヒートマップでは大きい標準偏差というように、異なるスケールのキーポイントを推定するのに適した状態になるため。

各ヒートマップに対してMSEを計算し、それらの和を最終的なロスとする。

FPNのように各ヒートマップに異なるスケールの人物を割り当てないのは以下の理由から。

  1. FPNのGT割り当てに関するヒューリスティックスは、データセット(人物のスケールの分布 vs すべての物体のスケールの分布)とネットワーク構造(HigherHRNetのピラミッドが2段階なのに対してFPNは4段階)の両方に依存しており、HigherHRNetに合わせたものを発見するのが困難であるため。
  2. ガウシアンカーネルを用いてヒートマップのGTを作成するので、各キーポイントは相互作用する。そのため、単にマスクをかけたりするだけでは、キーポイントを切り離すことは非常に困難であるため。

Heatmap Aggregation for Inference

推論時は、すべての解像度のヒートマップを入力画像と同じサイズにバイリニア補間でリサイズして、それらの平均をとることでヒートマップを集約する。

heatmap aggregationを行う理由はスケールに応じたポーズ推定を可能にするため。例えば、COCOに含まれる人物のスケールの$322$から$1282$以上まであり、分散が大きい。Top-down型では、ほぼ単一のスケールに正規化することでこの問題に対処できるが、Bottom-up型では、スケールを考慮した推定を行う必要がある。HigherHRNetでは、heatmap aggregationによって、低解像度のヒートマップで小さい人物を見逃しても、高解像度のヒートマップでリカバリすることができる。

Grouping

Bottom-up型では、キーポイントを人物ごとにグループ化する必要がある。HigherHRNetでは、ヒートマップに加えて、人物ごとの特徴を示すEmbeddingを出力し、EmbeddingのL2距離が小さいキーポイントをグループ化する。

この方法に新規性はなく、Associative Embedding: End-to-End Learning for Joint Detection and Grouping (NIPS 2016)で提案されたもの。

下図のTagsと書かれているマップがEmbeddingを可視化したもの。

f:id:uiiurz1:20200913071913p:plain

Groupingには低解像度なヒートマップ(1/4)を用いる。理由はグローバルな意味づけを必要とするため。

Training

画像から512x512のサイズの画像をクロップ。

Data augmentationは以下の3つ。

  • random rotation ($[-30^\circ, 30^\circ]$)
  • random scale ($[0.75, 1.5]$)
  • random translation ($[-40, 40]$)
  • random horizontal flip

以上の設定はAssociative Embedding: End-to-End Learning for Joint Detection and Grouping (NIPS 2016)と同じもの。

有効性の検証

以下は既存のBottom-up型のポーズ推定手法との比較。最も良い性能を示している。

f:id:uiiurz1:20200913071933p:plain

以下はTop-down型も含めた比較。高精度になったもののTop-down型には及ばない。

f:id:uiiurz1:20200913071958p:plain

追加モジュールの有効性の検証。

f:id:uiiurz1:20200913072052p:plain

CrowdPoseを用いた比較。Top-down型を上回る性能。(おそらく)計算コストの条件を同等にするために、Top-down型の手法の中でも人数増加に比例する計算コストの増加が比較的少ない手法を比較対象としている。(例えば、Mask RCNNはすべての人物で特徴マップを共有している。)

f:id:uiiurz1:20200913072109p:plain