1. Stacked Hourglass Networkとは [概要]
Stacked Hourglass Network とは,直列に Hourglass Module (砂時計モジュール)をN個スタックするネットワーク構造の,単一人物画像を入力としての人物姿勢推定向けFCNである [Newell et al., 2016].各 Hourglass Module の「残差接続ありの残差ブロック中心のEncoder-Decoder構造」(2節)と,それを「N段残差接続ありでつなげたカスケード構造」ならびに各モジュールの中間出力時における「中間教師(intermediate supervision)」の使用 (3節)により,ヒートマップ群推定向けの,深く高精度なネットワークを学習できる.これにより,人物姿勢推定向けのCNNバックボーンとして,ResNetと Stacked Hourglass Networkが,人気を二分していくこととなった.また,他タスク向けの応用として,アンカーフリー型・1ステージ物体検出 (CornerNet /CenterNet)にも応用されていくことになる.
この記事では「Hourglassモジュールの構造」(2節) と,「Stacked Hourglass Network バックボーン全体の構造とその学習」(3節) について,順に述べる.
1.1 記事の構成
2節以降は以下の構成である.
- 2節 [部品の解説]:Hourglassモジュールの構造
- 3節 [全体の解説]:Stacked Hourglass Network の全体構造と学習
- 4節 まとめ
2. Hourglassモジュールの構造
CPM [Wei et al., CVPR2016] の直後に ,Stacked Hourglass Network (SHN)が,人物姿勢推定向けに提案された [Newell et al., 2016] .SHNは「Hourglassモジュール」を,$N$ 段直列方向に積んで繰り返して実行する,カスケード型のネットワークである.
Stacked Hourglass Networkでは (CPMと同様に),物体検出器で前処理として取得したROIを切り抜いた「単一人物画像」を入力として,K個の関節をヒートマップ推定により検出する.
CPMとの違いは,次に説明する強力な砂時計型設計の「Hourglass module (2.1節)」を構成単位としてあらたに提案したことである.
図1 (元論文 Fig. 3に相当)は,Hourglass Module のネットワーク構造で,図1の各ボックスは,(ResNet風の)残差ブロックに相当している(※ ボックスは,特徴マップを示しているのではなく,残差ボックスであることに注意).それぞれの残差ブロック(元論文 Fig.4)は,[ReLU→ 畳み込み層 x 3]」から構成されている.つまりは,U-Net・FPNのように「各解像度間をスキップ接続で結んだEncoder-Decoder型CNN」をベースに,「残差ブロック」を4レベルで砂時計型にこまめに残差接続化したサブネットワーク(=モジュール)である.スキップ接続の途中にも,赤色の残差ブロックがそれぞれ挿入されている点が,ただスキップするだけのU-Netとは異なる.
この「4レベルのResidualなEncoder-Decoder型」のHourglass Moduleを,N段カスケード接続するのがStacked Hourglass 全体の構造である(次の3節).Hourglass module内で,ボトムアップ→トップダウン処理をすることを何度も繰り返しながら,段階的にヒートマップの出力精度を高めていきやすい設計になっている.
3. Stacked Hourglass Network の全体構造と学習
次に,Stacked Hourglass Networkの全体構造(図2)では,各N個のHourglassモジュール間も,それぞれ残差接続で結合されている(図2).カスケード型ネットワークでよく行うことであるが,残差接続側パスで信頼度マップを中間出力する際に,毎回教師信号を与えて補助ロスも取ることができる構造になっている (InceptionNetから使われるようになった,中間層で補助ロスをとるしかけ)
以上のネットワーク構造により,Stacked Hourglass Networkでは,かなりの深く残差的な畳み込み層群を,モジュール内での各残差学習,およびモジュール間での中間教師あり(残差)カスケード学習が可能になる.このネットワーク構造と学習の仕組み(3節)のおかげで,高精度な2D人物姿勢推定を達成でき,Stacked Hourglass Networkその後の人物姿勢推定の定番バックボーンとなった.
3.1 「カスケード化」と「中間教師」
Stacked Hourglass Networkでは,他の多くのヒートマップ推定によるキーポイント検出手法と同じく,K個のキーポイントに対して,各キーポイントのみを推定するone-hot ヒートマップをK枚推定する.たとえば,ネットワーク出力の結果のチャンネル3のヒートマップ画像を,2次元softmaxして最大値座標(x,y)のみを残した(=NMSした)結果,3番目のキーポイント「右肩」の座標(x, y)を推定することができる.
2節で述べたとおり,Hourglassモジュール間も残差接続で結合されている.残差接続側パスで信頼度マップを中間出力する際に,毎回教師信号を与えて補助ロスも取ることができる構造になっている.要は,「砂時計ネットワークの残差接続ありカスケード化」が新規性であった.
※ この意味では,「Cascade Hourglass Network」とでも名付けて欲しかった.「Stack」は自然言語処理だと「LSTMの縦積み時」によく用いていた言葉だが,コンピュータビジョンだと「カスケード」の方がよく使われてきたので,しっくり来る呼び方である.
人物姿勢推定や(その他,顔などの)キーポイント姿勢推定においては,以前にもCPM (Convolutional Pose Machines)[Wei et al., 2016](やその発展版OpenPose) や, Interative Error Feedback [Carreira et al., 2016]などでも,「カスケード構造 + 中間教師」は既に使用されており,もっと以前の古典的な人物姿勢推定の頃から,ずっと定番のアプローチであることに注意.
※ 深層学習での「中間教師による補助ロス」は,InceptionNetでの応用以降に,よく使用され始めた.画像生成などの生成モデルでも,条件付きGAN(CGAN)や,画像変換モデルにおいて,クラス識別用の補助ロスをとるための分岐パスがよく用いられる.
3.2 Stacked Hourglass Network 論文の実験
実験では,単一人物画像での実験を行う (1)FLICデータセットと,(2)MPII Human Poseデータセットの2つを用いて,それぞれ学習・テストが行われてた.そして,学習安定化にバッチ正規化層も用いられた.まだPyTorch登場以前で,Torch7で実験が行われた.
従来手法で同じくカスケード学習構造型である CPM [Wei et al., 2016] や Iterative Error Feedback [Carreira et al., 2016]に対して有意差が出ることを示した.これにより,残差接続の導入が効果があることが示されてた.
4. Stacked Hourglass Networkのまとめ
この記事では Stacked Hourglass Network バックボーンを用いた,単一人物画像に対する人物姿勢推定ネットワークについてまとめた.
Stacked Hourglass Networkのネットワーク構造は,これまでのカスケード学習型の人物姿勢推定CNNに,残差接続を(1)モジュール内 (2)モジュール間で用いた構造である.つまり,残差接続の導入と「カスケード学習+中間教師」のおかげで,より深く高精度なヒートマップ推定ネットワークを学習可能になった.
これにより,人物姿勢推定では,その後ResNetバックボーンと同じくらいの頻度で,Stacked Hourglass Network バックボーンも使用されていった.
関連書籍
- Probabilistic Machine Learning: An Introduction, Kevin Patrick Murphy , MIT Press, 2022.
References
- [Carreira et al., 2016] J. Carreira, P. Agrawal, K. Fragkiadaki, and J. Malik. Hu- man pose estimation with iterative error feedback. In CVPR, 2016.
- [Newell et al., 2016] A. Newell, K. Yang, and J. Deng. Stacked hourglass networks for human pose estimation. In, ECCV 2016.
- [Newell and Deng, 2017] Alejandro Newell and Jia Deng. Associative embedding: End-to-end learning for joint detection and grouping. In NIPS, 2017.
- [Wei et al., 2016] S.-E. Wei, V. Ramakrishna, T. Kanade, and Y. Sheikh. Convolutional pose machines. In CVPR, 2016.