SegNet

SegNet

SegNetとは

SegNet(セグネット)とは、2015年にケンブリッジ大学のVijay Badrinarayananらによって提案されたセマンティックセグメンテーション用のディープラーニングモデルです。エンコーダ・デコーダ構造を採用し、メモリ効率と計算効率に優れた設計が特徴です。

表:SegNetの要点まとめ
ひとことで言うと縮小時の位置情報を記憶しておき、復元時に使う軽量な領域分割モデル。
何がうれしいかメモリ消費が少なく、組み込み機器でも動かしやすい。
注意点最新モデルと比べると精度は劣る。軽さが必要な場面向け。

SegNetのアーキテクチャ

SegNetのエンコーダはVGG16のConvolutional層と同じ構造を持ち、畳み込み・バッチ正規化・ReLU・Max Poolingの繰り返しで特徴を抽出します。デコーダはエンコーダの各層に対応する対称構造を持ちます。SegNetの最大の特徴は、Max Pooling時のインデックス情報(どの位置の値が最大だったか)を保存し、デコーダのアップサンプリング時にこのインデックスを使って非線形のアップサンプリングを行うことです。これにより、転置畳み込みのような学習可能なパラメータを追加せずに、効率的に解像度を復元できます。

図:SegNetのしくみ
1縮小して抽出プーリングで圧縮
▶
2位置を記録どこの最大値かを保存
▶
3拡大時に再利用記録した位置へ戻す
▶
4省メモリで復元軽量に領域分割

SegNetの意義と応用

SegNetはメモリ使用量が少なく、エッジデバイスでの推論にも適しています。道路シーンのセグメンテーション、屋内環境の理解、医療画像解析など、リソースに制約がある環境でのセグメンテーションに適しています。DeepLabなどの後発モデルに精度では及ばないものの、エンコーダ・デコーダ構造とプーリングインデックスの利用という設計思想は、U-Netなど多くのセグメンテーションモデルに影響を与えました。