1行定義
SegNetとは、エンコーダの最大値プーリングで記録した位置を使い、デコーダで特徴マップを拡大する、セマンティックセグメンテーションのモデルのことです。
くわしく
SegNetは、2015年にケンブリッジ大学のVijay Badrinarayananらが発表した、セマンティックセグメンテーションのモデルです。道路の風景や屋内の様子を、画素ごとに道路・車・歩行者・壁などへ塗り分ける、シーン理解の用途を想定して開発されました。
構造
入力を縮めるエンコーダと、元の大きさへ戻すデコーダを、左右対称に並べたエンコーダ・デコーダ型です。
- エンコーダ:VGG16の13層の畳み込み層と同じ構成で、全結合層は取り除いています。畳み込みと最大値プーリングを繰り返し、特徴マップを縮めながら、何が写っているかをつかみます。
- デコーダ:エンコーダの各段と対になる層で特徴マップを拡大し、最後に画素ごとのクラスを判定します。
プーリングインデックスによる拡大
特徴マップを縮めると、物体の境界がどこにあったかという細かな位置の情報が失われます。そこでSegNetは、エンコーダで最大値プーリングをするときに、各窓で最大値がどの位置にあったか(プーリングインデックス)を記録しておきます。
デコーダは拡大の際に、値を記録した位置へ戻し、ほかの位置を0にします。こうしてできたまばらな特徴マップに、学習する畳み込みをかけて、密な特徴マップにします。拡大そのものには、学習するパラメータがいりません。
ほかのモデルとの違い
U-Netは、エンコーダの特徴マップ全体をデコーダへ渡し、チャネル方向に連結します。細部の情報を多く使える代わりに、保存する情報が多くなります。SegNetは位置だけを渡すので、推論時のメモリを抑えられます。FCNは、逆畳み込みで拡大し、浅い層からの予測を足し合わせて細部を補います。
覚え方
「縮めるときに最大値の場所をメモし、戻すときにそのメモを使う」と覚えます。
G検定での出題
出題のされ方
エンコーダ・デコーダ型の構造、最大値の位置(プーリングインデックス)を使った拡大で位置の情報を補う工夫、特徴マップ全体を連結するU-NetやFCNとの違いが問われます。
混同しやすい用語
| 用語 | 意味 |
|---|---|
| SegNetこのページの用語 | エンコーダの最大値プーリングで記録した位置を使い、デコーダで特徴マップを拡大する、セマンティックセグメンテーションのモデル |
| U-Net | 特徴を縮めて取り出す経路と解像度を戻していく経路をU字型に組み、両者をスキップ結合でつないだ、セグメンテーション用のCNN |
◯×チェック
次の文が正しいか、誤りかを選んでください。
-
SegNetのエンコーダは、VGG16の13層の畳み込み層と同じ構成をとり、全結合層は持たない。
答えを見る
答え ◯ 正しい
全結合層を取り除いたことで、パラメータ数が大きく減り、画素ごとの出力に必要な空間の情報も保てます。
-
SegNetのデコーダは、プーリングの位置を使って拡大したあと、畳み込みを行わずに、そのまま画素ごとのクラスを出力する。
答えを見る
答え × 誤り
位置を使って拡大した直後の特徴マップは、ほとんどの値が0のまばらな状態です。学習する畳み込みを重ねて密な特徴マップにしてから分類します。
-
SegNetは、エンコーダの特徴マップ全体ではなく最大値の位置だけを保存するため、特徴マップをそのまま渡す方式より推論時のメモリを節約しやすい。
答えを見る
答え ◯ 正しい
2×2の窓なら、位置は2ビットで表せます。論文でも、推論時のメモリと計算時間の効率のよさが設計の目的に挙げられています。
この用語の練習問題
出典
- G検定 試験出題範囲(シラバス2024)第1.4版 (技術分野 項目26 画像認識)
- Vijay Badrinarayanan, Alex Kendall, Roberto Cipolla, SegNet: A Deep Convolutional Encoder-Decoder Architecture for Image Segmentation (2015)
- Olaf Ronneberger, Philipp Fischer, Thomas Brox, U-Net: Convolutional Networks for Biomedical Image Segmentation (2015)
- Jonathan Long, Evan Shelhamer, Trevor Darrell, Fully Convolutional Networks for Semantic Segmentation (2014)