SegNet(セグネット)は、画像の1ピクセルずつに「ここは道路」「ここは建物」とラベルを付けるセマンティックセグメンテーションのための代表的なモデルです。この記事では、エンコーダ・デコーダ構造と、SegNet最大の特徴である「プーリングインデックスの再利用」を初心者向けに解説します。
📖 ひと言でいうと
SegNetは、ケンブリッジ大学の研究者らが提案したセマンティックセグメンテーション用のニューラルネットワークで、「画像を圧縮する係(エンコーダ)」と「元のサイズに戻す係(デコーダ)」のペアでできています。身近な例えでいうと、地図を一度ざっくりした下書きに縮小してから、あらためて元の大きさの清書に描き直すような仕組みです。縮小するときに「どこに大事な線があったか」のメモ(プーリングインデックス)を残しておき、清書のときにそのメモを見ながら描き直すのがSegNetらしさです。
🖼 1枚でわかるSegNet
📘 公式テキストの説明
セマンティックセグメンテーションの手法の一つで、ケンブリッジ大学の研究者らによって提案された。このモデルは、エンコーダとデコーダから構成されるアーキテクチャを採用している。エンコーダ部分では、入力画像から特徴を抽出し、デコーダ部分では、その特徴をもとに元の画像サイズに復元しながら各ピクセルのクラスを予測する。特に、エンコーダでのプーリング操作時に得られるインデックス情報をデコーダで活用することで、復元時の精度向上を図っている。
ポイントは2つです。1つ目は「エンコーダとデコーダ」という対称的な構造であること。2つ目は、エンコーダで最大値プーリング(マックスプーリング)をするときに「最大値がどの位置にあったか」というインデックス情報を覚えておき、デコーダで画像を拡大するときにその位置へ値を戻す、という工夫です。これにより、縮小の過程で失われがちな物体の輪郭の位置を、少ない追加コストで正確に復元できます。
🔍 しっかり理解する
なぜエンコーダ・デコーダ構造が必要なのか
セマンティックセグメンテーションでは、出力も入力と同じ縦横サイズの「クラスラベルの地図」でなければなりません。しかし、CNNで良い特徴を取り出すには、畳み込みとプーリングで特徴マップをどんどん小さくしていくのが定石です。小さくなった特徴マップのままではピクセル単位の答えを出せないので、今度は逆に拡大していく処理(デコーダ)が必要になります。これが「圧縮してから復元する」エンコーダ・デコーダ構造の理由です。
プーリングインデックスの再利用とは
エンコーダの最大値プーリングでは、たとえば2×2の領域から最大値を1つだけ残して縮小します。このとき「最大値は2×2のどのマスにあったか」を記録したものがプーリングインデックスです。SegNetのデコーダは、拡大(アンプーリング)の際にこのインデックスを参照し、記録された正しい位置に値を配置してから、畳み込みで隙間を埋めて滑らかな特徴マップに仕上げます。
U-Netとの違い(試験頻出の対比)
同じエンコーダ・デコーダ型のセグメンテーションモデルとして、U-Netと並べて問われることがよくあります。両者の違いは「エンコーダからデコーダへ何を渡すか」です。
- プーリングの位置情報(インデックス)だけをデコーダに渡す
- 渡すデータが小さくメモリ効率が良い
- 輪郭の位置の復元が得意
- エンコーダの特徴マップそのものをスキップ接続でデコーダに連結(concat)
- 情報量が豊富で微細構造の検出に強い
- そのぶんメモリ消費は大きめ
どちらも「縮小で失った情報をデコーダ側で補う」ための工夫ですが、SegNetは「位置のメモ」、U-Netは「特徴マップまるごと」を渡す、と覚えると混同しません。
💡 具体例で考える
SegNetはもともと、自動運転を意識した道路シーンの理解を主な応用例として発表されました。車載カメラの映像に対して、道路・歩道・建物・車・歩行者・空といったクラスをピクセル単位で塗り分けることで、「車が走ってよい領域はどこか」を機械が把握できるようになります。物体検出のように矩形で囲むだけでは、曲がった道路の形や歩道との境界線までは表現できないため、ピクセル単位の塗り分けが役立つのです。
また、SegNetの省メモリという特性は、車載機器や組み込み機器のように計算資源が限られた環境で特に意味を持ちます。特徴マップ全体を保存せず小さなインデックスだけを保持すればよいため、同時代の他のセグメンテーション手法に比べて推論時のメモリ負担を抑えやすい設計になっています。
⚠️ よくある誤解・紛らわしい用語
- 「SegNetは物体検出モデル」は誤り — SegNetはセマンティックセグメンテーション(ピクセル単位のクラス分類)のモデルです。バウンディングボックスで物体を囲むSSDやYOLOとはタスク自体が異なります。
- U-Netとの混同 — どちらもエンコーダ・デコーダ型ですが、SegNetはプーリングインデックスの再利用、U-Netはスキップ接続による特徴マップの連結が特徴です。「ケンブリッジ大学・インデックス」ときたらSegNet、「生物医学画像・U字型・スキップ接続」ときたらU-Netです。
- セマンティックとインスタンスの混同 — SegNetが行うのはセマンティックセグメンテーションで、同じクラスの物体(例: 並んだ車2台)は区別せず同じ色に塗ります。1台ずつ区別するのはインスタンスセグメンテーション(Mask R-CNNなど)の役割です。
📝 試験でのポイント
- 「エンコーダのプーリング時のインデックス情報をデコーダで活用する手法はどれか」という形で、SegNetの最大の特徴が直接問われることが想定されます。
- 「ケンブリッジ大学の研究者らが提案」という提案元がヒントとして与えられる場合があります。
- U-Net・FCN・DeepLabなどセグメンテーション手法を並べ、それぞれの工夫(インデックス再利用/スキップ接続/全層畳み込みなど)と手法名の対応を選ばせる形式に注意しましょう。
- SegNetの説明文にバウンディングボックスや物体検出の記述が混ざっていたら、それは誤りの選択肢です。
📚 まとめ
- SegNetはケンブリッジ大学の研究者らが提案したセマンティックセグメンテーションのモデルです。
- エンコーダで特徴を抽出し、デコーダで元の画像サイズに復元しながらピクセルごとにクラスを予測します。
- 最大の特徴は、エンコーダの最大値プーリングで得た位置情報(インデックス)をデコーダの拡大時に再利用し、輪郭を精度よく復元することです。
- U-Netとの違いは「渡すものがインデックスか、特徴マップそのものか」。ここが試験での差の付けどころです。
