stMind

about Tech, Computer vision and Machine learning

RegressionベースとHeatmapベースではどちらが良い?

モバイル向けのSingle person 2D ポーズ推定のレポジトリのIssueなのですが、興味深い内容だったので紹介します。

github.com

CNNが前提だと思いますが、Keypoint localizationを行う方法として、

  • DeepPoseなど、関節位置を回帰するRegression
  • OpenPoseなど、関節毎のHeatmapを生成し、L2ロスを計算する
  • Mask R−CNNなど、関節毎のHeatmapを生成し、関節位置だけ1となるone hot maskとのcross entropy lossを計算する

のうち、どれが良いのか?という問いかけでした。

作者いわく、このレポジトリでは、まず推定速度だけを考慮してRegressionで実装したようですが、RegressionよりもHeatmapベースの方がmAPとしては良いのではないかなぁ、検証したわけではないけど、という回答をしてます。

質問者も、ここ最近の論文を見ていると、Heatmapベースの方が良さそうというのは同意しつつ、Heatmapベースの中だったら、L2ロスの場合とcross entropy lossだとどちらが良いのかなぁ、と言いつつスレッドが終了していました。

ICCV2015で発表された論文(下記リンクはスライド)でも、Coordinate net(Regression)とHeatmap net(L2ロス)として比較していますが、Heatmapの方が明らかにAccuracyが高く、学習データを増やした場合でもRegressionの方は向上があまり見られないのに対して、Heatmapの方は大幅に改善する結果となっていますね。

http://lear.inrialpes.fr/workshop/allegro2015/slides/zisserman01.pdf

Heatmapの方が優れている点として、学習結果の可視化により解釈が容易になることと、信頼度をモデル化して各ピクセルが保持していて、学習を進めると間違った推定のピクセルが徐々に抑制されていく、ということが論文で述べられていて、結果からみても納得な感じです。

HeatmapのL2ロスとcross entropy lossはどちらがいいか?については、Issueのスレッドの最後で、3つの方式を比較した論文のリンクがはられていました。次は、この論文を読んでみようと思います。

https://arxiv.org/pdf/1711.08229.pdf