ASPP (G検定)

ASPP

1. 定義と概要

ASPPとは、セマンティックセグメンテーション(画像の画素ひとつひとつにクラスを割り当てるタスク)のモデルであるDeepLab v2で導入された仕組みです。拡張率の異なる複数のAtrous Convolution層を並列に走らせ、それぞれの出力を結合します。これにより、複数のスケールの受容野(入力画像のどれだけ広い範囲を1つの出力値が反映しているかを示す範囲)や文脈情報を同時に捉えます。DeepLab v3以降では、構成がさらに改良されています。

セマンティックセグメンテーションの現場では、同じ画像の中に大きな物体と小さな物体が混在し、物体ごとに適切な受容野の広さが異なるという課題があります。拡張率が1種類だけのAtrous Convolution層では、対応できる受容野も1種類にとどまり、スケールの違いに弱いという弱点があります。

この課題に対処するため、ASPPは複数の拡張率を持つAtrous Convolution層を並列に走らせ、結果をまとめて後段に渡す仕組みとしてDeepLab v2に組み込まれています。

ただし、拡張率が大きくなるほど畳み込みカーネルの有効な重みが中心付近に偏り、実質的に1×1畳み込みへ近づいてしまう問題もあります。DeepLab v3ではこれを補うため、画像全体を1点に要約するグローバル平均プーリング(特徴マップ全体を1つの平均値に要約する処理)の分岐が加えられています。

2. 試験対策ポイント

まず押さえておきたいのがASPPの基本構造です。拡張率の異なる複数のAtrous Convolution層を並列に適用し、それぞれの出力の特徴マップ(画像の特徴を数値の格子で表したもの)を結合します。これにより、1つのモジュールの中で複数スケールの受容野を同時に確保できます。

DeepLab v2とv3では、拡張率と分岐の構成が次のように変わります。

版 拡張率 分岐の構成
DeepLab v2 6・12・18・24 並列4分岐
DeepLab v3 6・12・18 3層+1×1畳み込みの4分岐+グローバル平均プーリングで5分岐

各分岐は、バッチ正規化(層の出力を整えて学習を安定させる処理)を伴う畳み込みで統一されています。

グローバル平均プーリングの分岐が加えられた背景には、拡張率が大きい畳み込みほど有効な重みが中心の1点に偏り、実質的に1×1畳み込みへ縮退してしまう問題があります。DeepLab v3のASPPは、画像全体の文脈をこの分岐で補う設計です。v2とv3の分岐構成と拡張率の違いは、対比して理解しておきたいポイントです。

3. 関連概念との比較・相違点

PSPNetモデルが採用するPyramid Pooling Module(PPM)とは、異なるグリッドサイズでのプーリング(特徴マップを区画ごとに要約する処理。PPMでは平均値が使われます)を並列に適用する仕組みです。その結果をアップサンプリング(縮小した特徴マップを元の解像度に近づけるよう引き伸ばす処理)したうえで結合します。

ASPPとの最大の違いは、複数スケールの文脈情報を捉える手段にあります。ASPPは学習可能な重みを持つAtrous Convolution層を並列に適用するのに対し、PPMは重みを持たないプーリングを並列に適用します。畳み込みで受容野を広げるか、プーリングで要約するかという構造の違いが、両者を分ける軸になっています。

もう一つ取り違えやすいのは、単体のAtrous Convolution層とASPPの関係です。単体のAtrous Convolution層は、拡張率を1つだけ持つ畳み込みの1層にすぎません。これに対してASPPは、拡張率の異なる複数のAtrous Convolution層を束ね、結果を結合する上位のモジュールです。両者の包含関係は、整理しておきたい対比の軸です。

4. ビジネス・実務での活用シナリオ

自動運転の車載カメラには、近くの大きな車両と遠くの小さな歩行者や標識が同時に映り込みます。ASPPで複数スケールの受容野を同時に確保することで、サイズの異なる物体の境界を精度よく分割できます。

医療画像診断でも、ASPPのマルチスケールな文脈把握が生かされています。CT・MRI画像に映る病変や臓器の大きさは症例ごとに大きく異なり、単一の受容野だけでは大小さまざまな領域を見落とすおそれがあります。ASPPが複数の拡張率を同時に扱う構造は、症例ごとのばらつきに対応する分割処理を支えます。

衛星やドローンで撮影した画像を使った広域の土地被覆分類でも、建物・道路・植生といった大きさの異なる地物が同一画像内に混在します。ASPPで複数スケールの文脈を同時に捉える仕組みは、細かい地物の境界を識別する精度に寄与します。

5. 要点まとめ

  • ASPPは拡張率の異なる複数のAtrous Convolution層を並列に適用し出力を結合することで、複数スケールの文脈情報を同時に捉えるモジュールで、DeepLab v2で導入されました。
  • DeepLab v3では、拡張率が大きい畳み込みが実質的に1×1畳み込みへ縮退する問題を補うため、画像全体を要約するグローバル平均プーリングの分岐が加えられています。
  • PSPNetモデルが採用するPyramid Pooling Module方式は、畳み込みではなくプーリングでマルチスケールの文脈を捉える点が、ASPPとの構造上の違いにあたります。

6. 確認問題

問1ASPPは、拡張率の異なる複数のAtrous Convolution層を並列に適用し、その出力を結合することで複数スケールの文脈情報を同時に捉えるモジュールである。

解答・解説をみる

○ 正しい

これはASPPの定義そのものであり、DeepLab v2で導入された仕組みです。複数の拡張率を束ねる並列構造が、この仕組みの核心にあたります。

問2DeepLab v3のASPPには、拡張率の大きい畳み込みが実質的に1×1畳み込みへ縮退してしまう問題を補うため、画像全体を1点に要約するグローバル平均プーリングの分岐が加えられている。

解答・解説をみる

○ 正しい

拡張率が大きくなるほど有効な重みが中心付近に偏る問題への対処として、DeepLab v3では画像全体の文脈を捉える分岐が追加されました。DeepLab v2の4分岐から5分岐への変化にあたります。

問3PSPNetモデルが採用するPyramid Pooling Module方式は、ASPPと同じく拡張率の異なるAtrous Convolution層を並列に適用してマルチスケールの文脈情報を捉える仕組みである。

解答・解説をみる

× 誤り

正しくは、Pyramid Pooling Module(PPM)は異なるグリッドサイズでのプーリングを並列に適用する仕組みです。畳み込みではなくプーリングを使う点が、ASPPとの構造上の違いにあたります。