DeepLabシリーズ (v1 〜 DeepLab v3+) : セマンティックセグメンテーション向けの定番ネットワーク構造

1. DeepLab シリーズ とは [概要]

DeepLabシリーズは,Google AIの研究チームが改良・バージョンアップを続けた,広範囲コンテキストを効率よく収集できる設計の,セマンティックセグメンテーション向けCNN構造シリーズである.膨張畳み込みや,膨張空間ピラミッドプーリング(ASPP)などを活用して,バージョンをv1, v2, v3, v3+ と改良していき,最終的にDeepLab v3+が,意味分割向けの定番バックボーンとなった.

この記事では,DeepLab v1 , v2 (2節)と,DeepLab v3 , v3+ (3節) の2段階に分けて,DeepLabシリーズの発展をまとめている.ちなみに,彼らのチームは,その後PersonLabなど,少し異なるが似ているタスク向けに横展開もしていくが,この記事では,DeepLab シリーズのみを version 3+ (3.2節)まで述べていく.

DeepLabシリーズは,広範囲の周辺コンテキストを得るのが目的の,以下2つの技術を採用・発展させることで,バージョンアップを重ねた.

  1. 膨張畳み込み:膨張カーネルを使用して,受容野を効果的に広げる畳み込み層.
  2. (膨張)空間ピラミッドプーリング: 膨張カーネルを利用して,ピラミッドプーリングを効率よく実施できる,グローバル平均プーリングモジュール.

※ 論文中で,膨張畳み込みを「a trous convolution」と読んでいるのは,DeepLabチーム独自の呼び方である.

1.1 記事の構成

2節以降は,以下の構成でDeepLabシリーズを簡潔に紹介する.

  • 2節 DeepLab v1 と v2:膨張畳み込みの導入による,効率的な広範囲コンテキスト収集
    • 2.1 DeepLab v1
    • 2.2 DeepLab v2: ASPP の提案
    • 2.3 より適した実験データセットの登場
  • 3節 DeepLab v3, v3+: デファクトスタンダード手法の登場
    • 3.1 Deep Lab v3: 後処理CRFを廃止した,End-to-End版の確立
      • 3.1 改良型ASPP
      • 3.2 CRFの廃止と,マルチスケール処理の効率化
    • 3.2 Deep Lab v3+ : v3の深さ単位分解可能畳み込み導入による改良版.

2. DeepLab v1 と v2:膨張畳み込みによる効率的な広範囲コンテキスト収集

2.1 DeepLab v1

Chenらの研究グループは,畳み込み層として 膨張畳み込み をCNN Encoderに用いた,セグメンテーションネットワークのDeepLab v1 [Chen et al., 2015] を提案した.膨張畳み込みは,通常の畳み込み層よりも走査する画素範囲を膨張させて「疎に広く」畳み込むことができる.従って,効率的に少数回で広範囲の情報を畳み込んでいくことで,少ない層数のCNNでも,各出力座標からみた「広範囲の周辺コンテキスト」を特徴マップへと収集することができる.

DeepLab v2でも,処理手順としては次のような3段階処理の構成であった:

  • DeepLabのEncoder(膨張畳み込み使用) によるマップ予測:
    • → 中間出力1: 小さな画像サイズの低解像度マップ
  • バイリニア線形補間でマップを拡大:
    • → 中間出力2: 元画像サイズの高解像度マップ(誤差が多くてマスクは不確か)
  • CRF(Conditional Random Field)によるRefine:
    • → 最終出力:高精度な最終マップ

つまりは,いきなり高解像度のマップを教師として直接学習・予測できないので,一旦低解像度のマップをEncoderで推定したのち,最後にCRFの後処理でrefineすることで高精度なマップにしていた.

この理由は,FCNと同時期(同時研究)のDeepLab v1 では,まだ画像Encoderの技術の適用が中心の時代であったからである.当時は,画像Decoderによって元画像と同じ解像度まで,再度画像を拡大していくDecodingの発想・技術が登場しておらず,Decoderの代わりに(FCN同様に)バイリニア線形補間で,画像サイズを拡大するのが,まだ典型的であった.

2.2 Deep Lab v2: ASPPモジュールの提案

同著者らは次に,DeepLab v2 [Chen et al., 2017] をジャーナル版として提案した.Deep Lab v2では,Encoderむけの多重解像度プーリングである空間ピラミッドプーリング[Lazebnik et al., 2006] [He et al., 2014] にインスパイアされる形で,膨張空間ピラミッドプーリング(Atrous Spatial Pyramid Pooling, ASPP)を,密に多重解像度に効率良くプーリングできるモジュールとして追加した.

ASPPでは,4つの異なるサイズの(膨張)カーネルを用いることで,4段階の各スケールの特徴から並列にプーリングを行ったのち,それらの結果を1つに合成する.これにより,広範囲のコンテキスト特徴を,多重解像度かつ密に集約できる.

DeepLabシリーズは 最初の v1の時点では,まだEnd-to-Endではなく,「CRF(Conditional Random Field)を用いたRefinement」を後処理で行い,精度をよくする構成であった.しかしCRFは,この研究あたりが最後であり,後続の研究では,CRFを用いずに,Deep Neural Networkのみでセグメンテーションを最後まで行うのが当たり前となっていく.

2.3 より適した実験データセットの登場

DeepLab v1の頃までは, VOC 2012などの「物体画像向けのセグメンテーション(前景背景マスク識別)」の実験しかできなかった.当時はImageNetしか,深層学習向けに過学習を避けて使える規模を確保できた,大規模オープンデータセットがなかったことが理由である.

DeepLab v2では,2017年なので,CityScapseでも実験がされており,次節のDeepLab v3以降では,ADE20Kも出そろっている時代となる.

3. DeepLab v3, v3+:デファクトスタンダード手法の登場

3.1 DeepLab v3: End-to-End版の確立

DeepLabシリーズのチームは,DeepLab v2からCRFによる後処理を廃止し,End-to-End学習化しても高精度なマップ推定を実現できるようにした DeepLab v3 [Chen et al., 2017b] を提案した.PSPNetのような広範囲コンテキストも活用する手法にならって,DeepLab v3では,ASPP (DeepLab v2, 2.2説) を改良した,改良型ASPPモジュールが 提案された.

論文 [Chen et al., 2017b] の著者が執筆した,以下のGooogle AIブログ記事には,DeepLab v3の簡潔な解説があるので,概要をつかむ上で参考になる:

Google AI Blog: Semantic Image Segmentation with DeepLab in TensorFlow

3.1.1. 改良型ASPPモジュール

改良型ASPPの前半では,CNN特徴マップに対して「(a) ASPPを用いて,4レベルの膨張畳み込みでPoolingする」経路に,「(b) グローバル画像プーリング」を行う経路を並列に追加している.そして後半は,「(c) 元のCNN特徴を1 x 1 畳み込みにより,チャンネル方向次元削減を行い,グローバル空間プーリング結果と結合する」処理を行う.

3.1.2. CRFの廃止と,マルチスケール処理の効率化

また,DeepLab v3 では,v1, v2で行っていた「CRFによる後処理」を完全に廃止した.更に,v2ではマルチスケールの3画像でそれぞれ個別に処理を行う「画像のマルチスケール処理」であったのを,CNNバックボーンの特徴マップに対して後からマルチグリッドスケール処理を行う「特徴のマルチスケール処理」に変更したことで,計算効率化を達成した.(そして,バッチ正規化も導入している)

3.2 DeepLab v3+ : DeepLab v3の,チャンネル方向分離畳み込みによる軽量化版

また「物体境界部分の精度改善」を目的として,以下に挙げる改善をDeepLab v3に対して行った DeepLab v3+ も,同チームにより提案された [Chen et al., 2018]:

  • v3 のデコーダでは膨張畳み込みが stride=16であったのを,層数を減らして代わりにアップサンプリングに変更した.これにより,シンプルな処理に変更しつつも,変更前と同等の受容野の広さを確保できている.
  • 空間ピラミッドプーリング中において,depthwiseに膨張畳み込みを行う 深さ単位分解可能畳み込みを導入し,更に計算コストを削減した.
  • バックボーンをResNetからXception に変更した上で,そのバックボーン側の畳み込み層も深さ単位分解可能畳み込みに変更した.

DeepLab v3+ は,DeepLabシリーズの終着点である.これ以降,このDeepLab v3+ が,PSPNetとともに,(2019年後半あたりまで)セマンティックセグメンテーション向けの第一の選択肢となった.

4. まとめ

GoogleのDeepLabシリーズ v1, v2 , v3, v3+ を,初期段階の v1, v2と,洗練段階の v3, v3+ にグルーピングするかたちで,順に紹介した.

Deep Labはv1 ~ v3,膨張式のカーネル移動を,(1)畳み込み層にも,(2)空間ピラミッドプーリングにも両方導入していった.,広範囲・多解像度の周辺コンテキストを知ったうえでの,高精度なセマンティックセグメンテーションを実現できるようになっていった.

そして, DeepLab v3+ では,当時新たに登場した深さ単位分離可能畳み込みで、軽量化の特徴も加えられ,このDeepLab v3+が,定番ネットワーク構造として,広く使用される結果となった.

関連書籍

References

  • [Chen et al., 2015] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille. Semantic image segmentation with deep convolutional nets and fully connected crfs. In ICCV, 2015.
  • [Chen et al., 2017a] L.-C. Chen, G. Papandreou, I. Kokkinos, K. Murphy, and A. L. Yuille. Deeplab: Semantic image segmentation with deep convolutional nets, atrous convolution, and fully connected crfs. TPAMI, 2017.
  • [Chen et al., 2017b] Liang-Chieh Chen, George Papandreou, Florian Schroff, and Hartwig Adam. Rethinking atrous convolution for semantic image segmentation. arXiv:1706.05587, 2017.
  • [Chen et al., 2018] Liang-Chieh Chen, Yukun Zhu, George Papandreou, Florian Schroff, and Hartwig Adam. Encoder-decoder with atrous separable convolution for semantic image segmentation. In ECCV, 2018.

参照外部リンク

この記事を共有・保存する