🦁

SegNet

に公開

SegNetのポイント

  • エンコーダー・デコーダー構造の理解
  • プーリングとアップサンプリングの仕組み
  • セマンティックセグメンテーションの評価指標
  • メモリ効率化の手法

SegNetとは

基本定義

SegNetは2015年にケンブリッジ大学が発表した、セマンティックセグメンテーション用の
ディープニューラルネットワークです。
ニューラルネットワークを使ったセグメント手法の先駆けといわれています。

アーキテクチャの詳細

エンコーダー部分

入力画像 → 畳み込み層 → プーリング層 → ... → 特徴マップ

構成要素:

  • ベースネットワーク:VGG-16の畳み込み層(13層)※後半の全結合層は使用していない。
  • プーリング層:5個の2×2マックスプーリング
  • 活性化関数:ReLU

解像度の変化:

  • エンコーダーで画像サイズは1/32に縮小
  • 特徴マップの解像度:元画像→1/2→1/4→1/8→1/16→1/32

デコーダー部分

SegNetの最大の特徴はデコーダーのアップサンプリング手法です。

従来手法の問題点:

  • 転置畳み込み(Transposed Convolution)では学習パラメータが多い
  • スキップ接続では大量のメモリが必要

Point! SegNetの解決策:プーリングインデックス

# エンコーダーでのマックスプーリング
def max_pooling_with_indices(x):
    # 最大値とその位置(インデックス)を保存
    max_val, indices = torch.max_pool2d_with_indices(x, 2, 2)
    return max_val, indices

# デコーダーでのアップサンプリング
def unpooling(x, indices, output_size):
    # 保存したインデックスを使って元の位置に復元
    return torch.max_unpool2d(x, indices, 2, 2, output_size=output_size)

覚えるべき流れ:

  1. エンコーダーでマックスプーリング時にインデックスを保存
  2. デコーダーで保存したインデックスを使ってアップサンプリング
  3. 畳み込み層で特徴マップを精緻化

重要な比較・特徴

従来手法との比較

手法 アップサンプリング メモリ使用量 境界保存性
FCN 転置畳み込み + スキップ接続 良好
SegNet プーリングインデックス 良好
U-Net 転置畳み込み + 連結 非常に良好

SegNetの利点

  1. メモリ効率性

    • エンコーダーの特徴マップを保存不要
    • インデックスのみ保存(1/64のメモリ)
  2. 境界保存性能

    • マックスプーリングの位置情報で正確な復元
    • 物体の境界が鮮明
  3. 計算効率

    • シンプルな構造で高速推論
    • パラメータ数が少ない

SegNetの欠点

  1. 小物体の検出困難

    • プーリングで細かい情報が失われる
  2. 文脈情報の不足

    • 局所的特徴に依存しがち

【実装・応用】知識

損失関数

セマンティックセグメンテーションの標準:

# ピクセル単位クロスエントロピー損失
loss = F.cross_entropy(predictions, targets)

# クラス重み付き損失(不均衡データ対策)
weights = torch.tensor([0.1, 1.0, 2.0, ...])  # クラス別重み
loss = F.cross_entropy(predictions, targets, weight=weights)

評価指標

1. Pixel Accuracy

セグメンテーションしたピクセルの内どれだけが正解のピクセルか評価

pixel_acc = correct_pixels / total_pixels

2. Mean IoU (mIoU)

各クラスのIoUの平均

miou = sum(class_ious) / num_classes

3. Frequency Weighted IoU

出現頻度で重み付けしたIoU

fw_iou = sum(freq[i] * iou[i] for i in range(num_classes))

【応用分野】

1. 自動運転

  • 道路セグメンテーション:車道、歩道、車線の識別
  • Cityscapesデータセット:19クラスの都市風景
  • リアルタイム性:SegNetの軽量性が重要

2. 医療画像

  • 臓器セグメンテーション:MRI、CTでの臓器領域抽出
  • 病変検出:腫瘍、血管の自動検出

3. 衛星画像

  • 土地利用分類:森林、農地、都市部の分類
  • 環境モニタリング:海洋汚染、森林破壊の監視

参考

https://arxiv.org/pdf/1511.00561

https://qiita.com/cyberailab/items/d11862852eccc17585e8
https://cvml-expertguide.net/terms/dl/semantic-segmentation/segnet/

Discussion