エンコーダ・デコーダに頼らないセグメンテーション手法
FCN → SegNet → U-Net とモデルが進化してきたが、共通の課題がまだ残っていた。
普通の3×3畳み込みは小さい範囲しか見えない。
深い層で広がるが限界がある。
ボートか車かを判断するには画像全体の文脈が必要。
「周りが水か道路か」が重要。
→ PSPNetとDeepLabは、この「もっと広い範囲を見たい」問題を
それぞれ異なるアプローチで解決した!
Pyramid Scene Parsing Network ── 複数スケールで「鳥の目」を手に入れる
香港中文大学が開発。ILSVRC 2016のシーン解析部門で優勝。
※ 対称的なデコーダはない。Pyramid Poolingで文脈を補って、そのまま分類する。
「そもそも画像を縮小しなければいいのでは?」
Google Research が開発。バージョンが複数あり、v1(2015)→ v2 → v3 → v3+(2018)と進化。
フィルターの間に「穴」を空けて飛ばし読み → パラメータ数は同じなのに見える範囲が広がる!
DeepLab v2以降では、rateの異なるDilated Convを複数並列で使う技術が追加された。
これをASPP(Atrous Spatial Pyramid Pooling)と呼ぶ。
| バージョン | 年 | 主な技術 | 特徴 |
|---|---|---|---|
| DeepLab v1 | 2015 | Dilated Conv + CRF | Dilated Convを初めて導入。 後処理にCRF(条件付き確率場)を使って輪郭を整えた。 |
| DeepLab v2 | 2017 | ASPP + CRF | 複数のrateのDilated Convを並列で実行するASPPを追加。ResNetベースに。 |
| DeepLab v3 | 2017 | 改良版ASPP | ASPPを改良。CRFを廃止してネットワーク内で完結。Batch Normalization追加。 |
| DeepLab v3+ | 2018 | ASPP + デコーダ追加 | シンプルなデコーダを追加して輪郭の精度をさらに向上。現在最も広く使われるバージョン。 |
以前、音声モデルのWaveNetで「Dilated Causal Convolution」を学んだよね。実は同じ「Dilated」の仲間!
2D画像に対して使用
画像の縦横方向にフィルターの穴を空ける。
目的:解像度を保ちながら広い範囲を見る。
因果性の制約はない(全方向を見る)。
1D音声データに対して使用
時間方向にフィルターの穴を空ける。
目的:パラメータを増やさず長い時間依存を捉える。
Causal(因果的)=未来のデータは見ない制約あり。
| PSPNet | DeepLab(v3) | |
|---|---|---|
| 年 | 2017 | 2015〜2018(v1〜v3+) |
| 開発元 | 香港中文大学 | Google Research |
| エンコーダ | ResNet | ResNet / Xception |
| 広い文脈を 得る方法 |
Pyramid Pooling 複数サイズでプーリング → 結合 |
ASPP (Dilated Conv) 複数rateの穴あき畳み込み → 結合 |
| 解像度の 保持 |
通常のプーリングで 縮小される |
Dilated Convで 解像度を保持 ✅ |
| デコーダ | なし | v3+でシンプルなデコーダ追加 |
| 発想 | 「複数スケールで 文脈を補う」 |
「そもそも解像度を 落とさない」 |