Sleep like a pillow

Deep Learning関係の話。

The Devil is in the Details: Delving into Unbiased Data Processing for Human Pose Estimation (UDP)

論文リンク

リポジトリリンク

f:id:uiiurz1:20200920151329p:plain

どんなもの?

Top-down型のポーズ推定手法のデータ処理について初めて体系的な研究を行った。SOTA手法のデータ変換方法やencoding-decoding方法を調査した結果、以下の2つの問題が手法の性能を著しく低下させていることを発見した。

  1. 推論時のflip TTAで得られる結果は元画像から得られる結果と座標が整合しない。
  2. 学習時と推論時の標準的なencoding-decoding処理には、統計誤差がある。

これらの問題に対してUnbiased Data Processing (UDP)を提案。UDPのアプローチは以下の二つ。

  1. データ処理を、ピクセルに基づく離散空間の代わりに、ピクセル間の間隔に基づいた連続空間で行う。→画像やマップの大きさを(width, height)とする代わりに、(width - 1, height - 1)とする。
  2. オフセットマップを用いてキーポイント座標をサブピクセル推定する。

UDPはモデルに依存しないアプローチであり、COCO test-devにおいて、SimpleBaseline-ResNet50-256x192を1.5 AP (70.2 →71.7)、HRHet-W32-256x192を1.7AP (73.5→75.2) 向上させることに成功した。UDPをもちいたHRNet-W48-384x288は76.5 AP(Top-down型のSOTA)。

技術や手法のキモ

Data Transformation

ここで言うデータ変換とは、画像やネットワーク入出力などの異なる座標系間のキーポイント座標を変換すること。このプロセスにおいて、ほとんどのSOTA手法は画像のサイズを測定するためにピクセルを使用しており、推論でflip TTAを使用する際に不整合な結果につながる。

Simple Baselines for Human Pose Estimation and TrackingDeep High-Resolution Representation Learning for Human Pose Estimationでは、flip画像に対する推論結果をネットワーク出力座標系で1ピクセルだけシフトさせることで、予測誤差を抑制している。 Cascaded Pyramid Network for Multi-Person Pose EstimationRethinking on Multi-Stage Networks for Human Pose Estimationでは、ネットワーク入力座標系でflip TTAとの平均結果を2ピクセルシフトさせることで同様の効果を得ている。どちらのアプローチも効果的なものの限定的。

従来手法と提案手法それぞれのデータ変換プロセス。 f:id:uiiurz1:20200920151408p:plain

Analysis of the Standard Data Transformation

従来の画像座標系(${ }^{s} \mathbf{k}$)からネットワークの入力座標系(${ }^{i} \mathbf{k}$)への変換は、以下のアフィン変換で行われる。

f:id:uiiurz1:20200920151448p:plain

この変換は、以下の2つのステップと同等。

  1. 画像からRoI領域をクロップして \left({ } w^{p}_{i}+1,{ }^{p} h_{i}+1\right)にリサイズ。
  2. 1の結果を右端と下端の両方で1ピクセルずつクロップして、 \left({ }^{p} w_{i},{ }^{p} h_{i}\right)のサイズの画像を得る。

ヒートマップのGTを作成するためのネットワークの入力座標系(${ }^{i} \mathbf{k}$)から出力座標系(${ }^{o} \mathbf{k}$)への変換は、ストライド s={ }^{p} w_{i} /{ }^{p} w_{o}={ }^{p} h_{i} /{ }^{p} h_{o}を用いて以下のように変換される。

${ }^{o} \mathbf{k}=\frac{1}{s}{ }^{i} \mathbf{k}$

推論時におけるネットワークの出力座標系(${ }^{o} \hat{\mathbf{k}}$)から画像座標系(${ }^{s} \hat{\mathbf{k}}$)への変換は以下の通り。

f:id:uiiurz1:20200920151830p:plain

この変換は、以下の2つのステップと同等。

  1. ネットワークの出力ヒートマップ \left({ }^{p} w_{o},{ }^{p} h_{o}\right)から \left({ }^{p} w_{o}+1,{ }^{p}_{o}+1\right)の領域をクロップ。
  2. 1の結果を画像内の対応するbboxにマッピング

以上の変換方法では、flip TTAにおいて$\left|-\frac{s-1}{2 s}\right|$ (flip TTAとの平均結果を2ピクセルシフトさせる場合) または$\left|\frac{1}{2 s}\right|$ (1ピクセルシフトさせる場合) の誤差が生じる。

The Proposed Data Transformation

提案するデータ変換では画像サイズの測定基準として、ピクセル数(width, height)ではなく、隣接する2つの画素間の距離として定義される単位長(width - 1, height - 1)を用いる。

画像座標系(${ }^{s} \mathbf{k}$)からネットワークの入力座標系(${ }^{i} \mathbf{k}$)への変換は以下のようになる。 f:id:uiiurz1:20200920152036p:plain

ネットワークの入力座標系(${ }^{i} \mathbf{k}$)から出力座標系(${ }^{o} \mathbf{k}$)への変換は、ストライド t=({ }^{p} w_{i} - 1) / ({ }^{p} w_{o} - 1)={ }^{p} (h_{i} - 1) / ({ }^{p} h_{o} - 1)を用いて以下のように変換される。

${ }^{o} \mathbf{k}=\frac{1}{t}{ }^{i} \mathbf{k}$

推論時におけるネットワークの出力座標系(${ }^{o} \hat{\mathbf{k}}$)から画像座標系(${ }^{s} \hat{\mathbf{k}}$)への変換は以下の通り。

f:id:uiiurz1:20200920152230p:plain

以上の方法を用いることで、flip画像に対する推論結果は元の画像の結果と正確に一致する。

Encoding and Decoding

Analysis of the Standard Encoding-decoding

The standard encoding method

GTのキーポイント座標$\mathbf{k}=(m, n)$について、下式のように量子化(intに丸め)して$\mathbf{k}_q$を得る。($\mathcal{R}$は丸め演算を表す。)

 \mathbf{k}_{q}=\left(m_{q}, n_{q}\right)=\mathcal{R}(\mathbf{k})=(\mathcal{R}(m), \mathcal{R}(n))

そして、$\mathbf{k}_q$を中心とするヒートマップを以下の式から生成する。

 \mathcal{H}\left(x, y, \mathbf{k}_{q}\right)=\exp \left(-\frac{\left(x-m_{q}\right)^{2}+\left(y-n_{q}\right)^{2}}{2 \delta^{2}}\right)

The standard decoding method

ネットワークの出力ヒートマップ$\hat{\mathcal{H}}(x, y, \hat{\mathbf{k}})$について、理想的な条件下においては$\hat{\mathcal{H}} = \mathcal{H}$となる。 Simple Baselines for Human Pose Estimation and TrackingDeep High-Resolution Representation Learning for Human Pose Estimationでは、まず最大値を持つ座標$\hat{\mathbf{k}}_{q}$を取得する。

 \hat{\mathbf{k}}_{q}=\left(\hat{m}_{q}, \hat{n}_{q}\right)=\operatorname{argmax}(\hat{\mathcal{H}})

 \hat{\mathbf{k}}_{q}の理想的な位置は \mathbf{k}_{q}であるので、$\mathbf{k}$が画像平面上で一様分布していると仮定すると、x,yそれぞれの方向における誤差の期待値は E\left(\left|m-\hat{m}_{q}\right|\right)=E\left(\left|n-\hat{n}_{q}\right|\right)=1 / 4単位長、分散は V\left(\left|m-\hat{m}_{q}\right|\right)=V\left(\left|n-\hat{n}_{q}\right|\right)=1 / 48となる。

Simple Baselines for Human Pose Estimation and TrackingDeep High-Resolution Representation Learning for Human Pose Estimationでは、この誤差を減らすためにそれぞれの方向について、以下のように$\hat{\mathcal{H}}$における勾配に応じて$\hat{\mathbf{k}}_{q}$を0.25単位長シフトさせる。

 \hat{\mathbf{k}}=\hat{\mathbf{k}}_{q}+\left.0.25 \nabla(\hat{\mathcal{H}})\right|_{\mathbf{x}=\hat{\mathbf{k}}_{q}}

こうした場合、誤差の期待値は$1/8$単位長、分散は$1 / 192 \approx 0.0052$まで低減される。

予測誤差においてはdecodingによる誤差が支配的であり、推論時のflip TTAにおける誤差$\left|\frac{1}{2 s}\right|$はほとんど影響しない。そのため、従来手法の統計誤差をなくすためには新たなencoding-decoding方法が必要。

The Proposed Encoding-decoding

Towards Accurate Multi-person Pose Estimation in the Wildから着想を得たオフセットベースのencoding-deconding方法を提案する。

GTのキーポイント座標$\mathbf{k}=(m, n)$を以下のヒートマップ (intへの丸めは行わない)

f:id:uiiurz1:20200920153224p:plain

と以下の二つのオフセットマップにencodeする。

$\mathcal{X}(x, y, \mathbf{k})=m-x$

$\mathcal{Y}(x, y, \mathbf{k})=n-y$

推論時は、まずガウシアンカーネル$K$をネットワークの出力ヒートマップにかけてから最大値を持つ座標を取得する。

$\hat{\mathbf{k}}_{h}=\operatorname{argmax}(\hat{\mathcal{H}} \otimes K)$

$K$はオフセットマップのスムージングにも使用する。最終的な推定座標は以下のようになる。

f:id:uiiurz1:20200920153928p:plain

以上の方法によって、理想的な条件下($\hat{\mathcal{H}}=\mathcal{H} \text { and } \hat{\mathcal{X}}=\mathcal{X} \text { and } \hat{\mathcal{Y}}=\hat{\mathcal{Y}}$)における統計誤差は0になる。

有効性の検証

detectorにはHTCを使用。学習設定はSimple Baselines for Human Pose Estimation and TrackingDeep High-Resolution Representation Learning for Human Pose Estimationと同様。

Comparison with State-of-the-arts

以下の二つがポイント。

  1. 異なるbackboneのモデルそれぞれの性能がUDPによって向上しており、UDPがモデルに依存しないアプローチであることを示している。

  2. 入力サイズが小さいほどUDPによる改善効果が大きい。これはUDPによってデータ処理やencoding-decodingによる誤差が抑えられていることを示している (入力サイズが小さいほど、ネットワークの出力マップ座標系から画像座標系に変換する際の誤差の影響が大きくなるため)。

f:id:uiiurz1:20200920154003p:plain

f:id:uiiurz1:20200920154017p:plain

Ablation Study

A-B間の比較とC-D間の比較はflip TTAなしの場合のproposed data transformation (DT)による改善効果を示しており、著者の説明通りflip TTAを行わない場合はほぼ影響がないことがわかる。

A-C間の比較はflip TTAなしの場合のproposed encoding-decoding (ED) による改善効果を示しており、flip TTA関係なく効果があることがわかる。

flip TTAありの場合はDT単体の改善効果は+2.4AP (E-H間)で、従来手法のflip後に1ピクセルシフトさせる方法の改善効果(+2.3AP)と比較すると若干上。ED単体の改善効果は+1.2AP (E-I間)。両方を用いることで+3.5AP (E-K間)の改善効果。

f:id:uiiurz1:20200920154031p:plain

コメント

性能向上はオフセットマップの導入によるところが大きいが、それ自体の新規性は低いのでデータ変換の改良もアピールしてる感じ。