医療系AIエンジニアの技術メモ

ディープラーニング(主に画像系)の技術メモブログです

Stacked Hourglass Networks for Human Pose Estimation

スポンサーリンク


f:id:y_kurashina:20190611234303j:plain
Fig1. Stacked Hourglass Network

論文URL

https://arxiv.org/pdf/1603.06937.pdf
2016年7月公開

ポイント

  • Fig1のように砂時計(Hourglass)型モジュールを繰り返し、人間の姿勢推定を行うネットワークStacked Hourglass Networkを提案
    • encodeとdecodeを繰り返すことで広域的な特徴と局所的な特徴を何度も混ぜ合わせている
    • 個々のHourglassモジュールごとに姿勢推定を行う分岐を設けており、その分岐ごとにLossを評価し、精度を改善させている

Stacked Hourglass Network (Fig1)

  1. 入力画像サイズは256x256
  2. 7x7、stride 2、256チャンネルの畳み込み
  3. Residualモジュール(FIg3) + 2x2のmax pooling
  4. Hourglassモジュール(Fig2)+Intermediate Supervision対応の分岐層(Fig4)を8回適用
    • 入出力共に64x64で256チャンネルの特徴量マップになっている
    • ブロック単位のskip connectionも行っている(Fig1. 砂時計構造の上に付いている点破線)
  5. Residualモジュールを2回適用し、最終推定結果を出力

Hourglassモジュール

f:id:y_kurashina:20190612000553j:plain
Fig2. Hourglassモジュール

f:id:y_kurashina:20190612000727j:plain
Fig3. Residualモジュール

  • Fig2の個々の四角はFig3のResidualモジュールとなっており、前半の4つのモジュールでは出力結果を2x2のmax poolingにかけ、最終的に4x4の特徴量マップにencodeしている
  • 後半の4つのモジュールでは入力を最近隣内挿でup-samplingしdecodeしている。
    • Fig2の通り、U-Net風のskip connectionも行っている
      • skip connectionの途中にResidualモジュールが挟まっていることやconcatではなく加算で特徴量を混ぜ合わせているという点で、技術的にはU-Netと別物

Intermediate Supervision (HourglassモジュールごとのLoss導入)

f:id:y_kurashina:20190612003434j:plain
Fig4. Intermediate Supervision

  • Hourglassモジュールの出力を分岐させ、Fig4の下の青枠のところで姿勢推定結果を出力する
  • 学習時に青枠の姿勢推定結果に対しても損失関数を適用することで、数%精度が向上している
  • 姿勢推定結果に1x1の畳み込みを行い、その結果を上のラインの特徴量マップに加算している
    • Hourglassモジュールの後に続く上のラインの2つのボックスで行っている演算は不明

MPII Human Poseデータセットでの評価結果

f:id:y_kurashina:20190612004727j:plain

f:id:y_kurashina:20190612004807j:plain