モバイル向けのSingle person 2D ポーズ推定のレポジトリのIssueなのですが、興味深い内容だったので紹介します。
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つの方式を比較した論文のリンクがはられていました。次は、この論文を読んでみようと思います。