SegNet: シーン画像セグメンテーションCNNの初期提案

1. SegNet の概要

SegNet は,初期のセマンティックセグメンテーション向け畳み込みニューラルネットワークである.ケンブリッジ大のグループから発表された研究である.

SegNet では「砂時計型の Encoder-Decoder CNN」に,プーリング層へ「プーリング座標インデックスの受け渡し」の仕組みを追加したニューラルネットワーク構造である.プーリング実施座標をエンコーダデコーダ間で受け渡すことによって,大中小範囲の受容野(receptive field)の情報を,後半のエンコーダに渡してデコードしていく.これにより,画像中の小範囲や中範囲の情報(中間パーツ特徴)も加味したうえで,セグメンテーションマップの推定(もとい段階的decoding)が実現できるようになった.おかげで,離れた場所の細かな部分の情報も欲しい「シーン画像」における高精度な画素ごとのクラス識別が,CNNを用いて初めて実現できたという,セマンティックセグメンテーションの新しい可能性を開いた,代表的なシーン画像セグメンテーション初期研究である.

SegNetの論文は,車載前方シーン画像(camvid データセット)と室内シーン画像 (NYUデータセット)に対する実験を行った.まだノイジーな結果しか出力できなかった,旧来手法の構造化Random Forestベースの手法や[Kontschieder et al., 2011],Boosting +高階CRFで後処理する手法と比べると [Sturgess et al., 2009],SegNetを用いるとノイズの少なくて境界もよく捉えた,中~高精度のセグメンテーションマップの推定が可能となることを示した.更に,ジャーナル版では,同時期に登場したディープ手法である,FCN (Fully Convolutional Network) [Long et al., 2015] やDeepLab(v1)とも比較を行い,SegNetの方が正確なセグメンテーションマップを出力できることを実験的に示した.

2. SegNet の構造と特徴

2.1 SegNet の対称Encoder-Decoder構造

SegNet のネットワーク構造
図1 SegNet のネットワーク構造

SegNetでは,AutoEncoderのような左右対称の砂時計型CNNを,セグメンテーション向けのネットワーク構造として提案した(図1).

  • エンコーダ(前半): VGGNet-16層のうち全結合以降を取り除いた13層を使用.VGGNet-16層と同じように,特徴マップの空間解像度はプーリング層(2 x 2窓, stride = 2)を通るたびに,2分の1に減っていく.
  • デコーダ(後半): Encoderを左右対称にひっくり返した逆VGG-13層の構造.エンコーダ中の各プーリング層で失った元の空間解像度を,アップサンプリング層 (2.2節)で取り戻しいきながら,畳み込み層で出力セグメンテーションマップに向けてデコードしていく.
  • 最終的に,元画像と縦横サイズが同じ解像度の,セグメンテーションマップ (クラス数$C$だけのチャンネル数)を出力として得る.各チャンネルには$c$番目のクラスの画素ごとの確率が出力されている.

SegNetはVGG-13層を2つないだモデルであるので,当時としてはモデルが巨大で,計算コストがかなり高かった.学習には,画素ごとの交差エントロピー損失の(バッチ)総和を用いてSGDで最適化する.

2.2 プーリング座標インデックスによる位置情報伝達

SegNetのプーリング座標受け渡し
図2 SegNetのプーリング座標受け渡し

SegNetでは,前半のEncoderでプーリングを行うのと同じ回数だけ,後半のDecoderでアップサンプリング(アンプーリング)を行う.そのアップサンプリングを行う際,Encoder側の対応する(特徴マップ同士のサイズが同じの)プーリング層において,最大値プーリングをおこなった際に,各窓内で最大値を取ったプーリング座標インデックス$(x,y)$を受け渡し,再使用する (図2).つまり,Encoderでプーリングした座標と,同じ座標で必ずアップサンプリング(アンプーリング)を行う.

このプーリング座標インデックスの受け渡しの導入により,本来は畳み込みとプーリングを何度も重ねる中で消えていってしまう「序盤の畳み込み層でどのフィルタが反応したか」の位置情報を,後半のDecoderに受け渡して復活させることが可能となった.

よって,アップサンプリングを各解像度で$N$回行うことで,複数解像度において,それぞれプーリングした空間座標の情報を「各画素の単位で」受け渡すことを実現できる.従って画素単位でクラス識別を行う必要があるセマンティックセグメンテーションにおいて,各画素周辺の小・中・大パーツの(異なる解像度の)特徴配置が保存されることで,性能が向上した.また,アップサンプリングにおいては学習可能な層を使わずに,セグメンテーションの性能を向上している点も利点である.

ちなみに,U-Net [Ronneberger et al., 2015]では,「Encoder- Decoder間の多段スキップ接続」と「(学習可能な)アップコンボリューション」の2つを用いることで,SegNetと同等の問題解決をもう少しコンパクトなネットワーク構造により実現している.以後,U-Net方式の構造の方が,好まれて広く使用されたこともあり,プーリング座標インデックス受け渡しは流行はしなかった.

3. SegNet のまとめ

車載画像セグメンテーション向けの元祖であるSegNetについて,簡潔に紹介した.砂時計型Encoder-Decoder CNNを導入することで,入力と同じ空間サイズの出力マップを学習する仕組みが初めて提案された.

References

  • [Badrinarayanan et al., 2015] V. Badrinarayanan, A. Kendall, and R. Cipolla. “Segnet: A deep convolutional encoder-decoder architecture for image segmentation.” arXiv:1511.00561, 2015.
  • [Badrinarayanan et al., 2017] Badrinarayanan, Vijay, Alex Kendall, and Roberto Cipolla. “Segnet: A deep convolutional encoder-decoder architecture for image segmentation.” IEEE transactions on pattern analysis and machine intelligence 39.12 (2017): 2481-2495.
  • [Kontschieder et al., 2011], P. Kontschieder, S. R. Bulo, H. Bischof, and M. Pelillo. Structured class-labels in random forests for semantic image labelling. In ICCV, 2011.
  • [Long et al., 2015] J. Long, E. Shelhamer, and T. Darrell, “Fully convolutional net- works for semantic segmentation,” in CVPR, 2015.
  • [Ronneberger et al., 2015] O. Ronneberger, P. Fischer, and T. Brox. U-Net: Convolutional Networks for Biomedical Image Segmentation, pages 234–241. Springer International Publishing, Cham, 2015
  • [Silberman et al., 2012] N. Silberman, D. Hoiem, P. Kohli, and R. Fergus, “Indoor segmen- tation and support inference from RGBD images,” In ECCV, 2012
  • [Sturgess et al., 2009] P. Sturgess, K. Alahari, L. Ladicky, and P. H.S.Torr. Combin- ing appearance and structure from motion features for road scene understanding. In BMVC, 2009.

参照外部リンク

関連記事