SegNeXt徹底解説:CNN復権!?「SegNeXt」でTransformerを超えうるセマンティックセグメンテーション
こんにちは、ゆずかきです。
今回は、「SegNeXt」 と呼ばれる新たなアプローチについて、まとめてみようと思います。
今回取り上げる論文は、「SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation」 (arXiv:2209.08575) です。
著者は、Meng-Hao Guo ら複数の研究者チーム(Tsinghua University, Nankai University, Fitten Tech)によるもの。2022年9月にarXivに投稿された内容で、Transformerベースのセグメンテーションが台頭する中、改めて“Convolution”ベースでもSOTAレベルに迫る、もしくは超える性能を出すという野心的な研究です。
特に注目すべきは、セマンティックセグメンテーションにおいて「Transformer =最強」という常識を覆しうる、独自の畳み込みアテンション(Convolutional Attention)設計を提案している点です。実験でもADE20K, Cityscapes, COCO-Stuff, Pascal VOC, Pascal Context, iSAIDといったメジャーなベンチマークにおいて高精度かつ計算効率を示すことが強調されています。
それでは、論文の内容を、可能な限り網羅的に解説していきましょう。
§本記事の構成
- はじめに: SegNeXtとは?
- 論文の背景とモチベーション
- 従来手法との比較:Transformer vs. CNNの再考
- 提案手法の概要:MSCA & MSCAN & Hamburgerモジュール
- 実験・評価:主要ベンチマークでの性能検証
- アブレーションスタディ:SegNeXtの重要要素を解剖
- 総合的な考察:なぜSegNeXtは強いのか?
- 課題と今後の展望
- まとめ
- おわりに
- 参考文献(論文リンク)
セマンティックセグメンテーション界隈のキーワード(「CNNベース手法」「Transformer」「Convolutional Attention」「多段スケール特徴」「ImageNet事前学習」「ADE20K」「Cityscapes」など)をちりばめつつ深掘りしていきます。
§はじめに: SegNeXtとは?
論文タイトル:
SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation
この研究が主張する中心的アイデアは、「Transformerベースの自己注意(Self-Attention)は、空間情報をエンコードするのに強力だが、実は“畳み込みによるアテンション”の方が効率的かつ高精度に行える部分がある」 という点です。
従来、Transformer(特にVision Transformer, Swin Transformer, SegFormerなど)は、非常に大きな受容野(グローバルな視野)を手軽に得られるため、セグメンテーションタスクでも高い性能を示してきました。
しかし、著者らは、「CNNベースでもマルチスケールの畳み込み構造をしっかり設計すれば、十分に広い文脈情報(context)を捉えられる。それどころか計算コストが低く、精度も競合モデルを上回る」 と主張。
SegNeXtという名前ですが、内部モジュールとしては「MSCA (Multi-Scale Convolutional Attention)」を核としたエンコーダ(MSCAN と呼称)を使い、さらにデコーダ部にはHamburgerモジュール(Ham)を用いてグローバルコンテキストを取り込むという構成になっています。
§論文の背景とモチベーション
論文冒頭で述べられているように、近年のセマンティックセグメンテーション手法は、以下の大きな進化の過程をたどってきました。
- Fully Convolutional Networks (FCN) をベースにしたCNNモデル(ResNetやResNeXtなど)によるセグメンテーション (2015年前後~)
- Transformerベース(例えばVision Transformer (ViT) やSwin Transformer)を背骨(backbone)としたエンコーダに置き換える流れ (2020年前後~)
- セグメンテーション特化のTransformer + 軽量なCNNデコーダや、逆にCNN + Transformerデコーダなど、様々に派生 (2021年以降)
Transformerベースが特に注目される理由は、自己注意機構 (Self-Attention) が入力全体のピクセル(トークン)間関係をグローバルにエンコードできるからでした。しかし、自己注意は計算コストがO(n^2)(nはピクセル数 or トークン数)に増大するため、入力画像が高解像度になる(Cityscapesなど2K画像)と非常に重くなる。
その一方、畳み込み(CNN)は局所的な領域をスライドウィンドウで見るため、グローバル文脈を得るにはカーネル拡張や多段スケール等の工夫が必要。でも、大きなカーネルやマルチスケール畳み込みを組み合わせることで、自己注意に引けを取らない性能を出せるのではないか――というモチベーションが出てきています。
著者らは、「強力なバックボーンを用意し、多スケール特徴を適切に扱い、空間アテンションをきちんと導入し、かつ計算コストを抑える」 という観点をもとに、SegNeXtというフルCNN型のセグメンテーションネットワークを提案したわけですね。
§従来手法との比較:Transformer vs. CNNの再考
論文序盤のTable 1では、DeepLabV3+, HRNet, SETR, SegFormer, そして提案手法SegNeXtがどのような特徴を持つかを整理しています。 特に以下の点が重要:
- バックボーンが強いか? (いわゆる「Strong encoder」)
- マルチスケール情報をどう扱うか? (Multi-scale interaction)
- 空間方向のアテンション (Spatial attention) をどう実装しているか?
- 計算量はO(n)かO(n^2)か?
TransformerベースのSETRやSegFormerなどは、自己注意の計算コストがO(n^2)になりやすい点がネック。これらは高解像度画像を処理すると激重になる。一方、CNN型だと多くの場合O(n)に収まるため、高解像度での推論にも向きます。
SegNeXtは、このCNN型の特性(O(n)の計算量)のまま、注意機構(attention)を巧みに取り入れることで、Transformer並みの(あるいはそれ以上の)性能を出そうとしているわけです。
§提案手法の概要:MSCA & MSCAN & Hamburgerモジュール
SegNeXtは、大きくエンコーダ (MSCAN) とデコーダという2つのパートで構成されます。
(1) エンコーダ: MSCAN
MSCAN (Multi-Scale Convolutional Attention Network) は、畳み込みベースのバックボーンです。各ステージで解像度を1/2に落としながらチャンネル数を増やしていく階層構造になっており、全4ステージ(Stage 1~4)を順次適用していきます。
その中核となるブロックがMSCA (Multi-Scale Convolutional Attention) モジュール。
MSCA (Multi-Scale Convolutional Attention)
MSCAは、以下のステップで入力特徴を処理します(論文中のFig.2参照):
- Depth-wise Convolution (3×3程度) で局所的な特徴を抽出
- 複数ブランチのDepth-wise “Strip” Convolution (7×1 + 1×7, 11×1 + 1×11, 21×1 + 1×21の3つの分岐) で広い受容野を得る
- いわゆる「大きなカーネルを持つ畳み込み」を、分割されたストリップ状Conv(例:7×7 → (7×1) + (1×7))で軽量化している
- 7, 11, 21 という複数スケールのカーネルを並列に適用し、それらの結果を足し合わせる(Scale0は恒等経路含む)
- 合計された多スケール特徴マップに1×1 Convolutionを適用し、チャネル方向をリニア変換(チャネル混合)
- 得られたマップをAttention Weightとして、元の入力特徴と要素積(element-wise multiplication)し、空間的に強調する
要するに、CNNでおなじみの大きな畳み込みカーネルによる広域情報を、マルチスケールに組み合わせて空間方向のアテンションマップを作り出す、という仕組みです。論文ではこれを「convolutional attention」 と呼んでいます。
なお、「strip convolution」というのは、k×kを(k×1)+(1×k)に分解する手法で、パラメータ数や計算量を節約しつつ大きな受容野を模倣します。さらに縦長や横長の物体(人間や電柱など)を捉えやすいという利点も指摘されています。
MSCAブロックをスタックして構成する
これらMSCAを組み込んだブロックを各ステージでL回スタックし、Stage 1~4を順次適用。ステージ移行の際は3×3のstride=2畳み込みで解像度を半分に落とし、チャネル数を増やす(Batch Normを挿入)という流れ。
この最終出力がH/32 × W/32程度の空間解像度になり、バックボーンから得られる特徴マップとしてデコーダへ渡されます。
論文中では、モデルサイズに応じて4種類(Tiny / Small / Base / Large)のMSCANが定義されています。たとえばTiny版 (SegNeXt-T) ではチャンネル数やブロック数が少なめ、Large (SegNeXt-L) ではチャンネル数やブロック数が増えているといった具合。
ImageNet-1Kで事前学習すると、Swin TransformerやSegFormerのMiTバックボーン、ConvNeXtなどと同等以上の精度(Top-1精度83%超)を示すそうです。
(2) デコーダ
論文では、Encoder-Decoder構造がセマンティックセグメンテーションで一般的である点に言及しています。そしてSegNeXtでは、「なるべくシンプルかつ軽量なデコーダ」を採用しながら、高精度を達成しようとしている点が特徴的。
以下の設計が示されています:
- マルチスケール特徴の集約:Stage 2, 3, 4の出力特徴マップをそれぞれUpsampleや1×1 Convなどでチャンネルを合わせ、結合 (concat) する
- ※Stage 1はあえて使わない。理由は「低レベルすぎてノイズが多い+計算量が増えるため」と論文で言及
- その後、Hamburger (Ham) モジュールを入れてグローバルコンテキストをキャプチャ
- Hamburgerは以前の研究 [21] で提案された手法で、「行列分解ベース (DCTなど)」でグローバルに情報を集約する仕組みを持つ
- 非自明な名称ですが、Non-LocalモジュールやCCNet, EMAなどと同様に、空間次元を圧縮して全体的な相関を学習するアテンションの一種
- 計算量O(n)のまま広域の情報をモデル化できる
SegFormerやSETRなどが大規模なTransformerデコーダやMLPベースのデコーダを使うのに対し、SegNeXtは強力なCNNエンコーダで十分に情報を抽出し、軽いデコーダ(Hamなど)で補完するというイメージです。
§実験・評価:主要ベンチマークでの性能検証
SegNeXtは以下のセマンティックセグメンテーション・ベンチマークで検証されています。
- ADE20K (約2万枚の学習画像、150クラス)
- Cityscapes (高解像度・都市シーン、19クラス)
- COCO-Stuff (164K枚、172クラス)
- Pascal VOC 2012 (21クラス, 拡張含め10,582枚学習)
- Pascal Context (約5千画像, 60クラス)
- iSAID (航空画像、15クラス+背景)
さらに、バックボーン(MSCAN)はImageNet-1Kで事前学習してから、セグメンテーション用に微調整(finetune)を行うという流れ。
以下に特筆すべき結果をまとめます。
(A) ADE20K・Cityscapesでの性能比較
- Cityscapes
- SegNeXt-Bは、mIoU=82.6%(SS推論) を達成。
- これはSegFormer-B2 (81.0%) より約1.6ポイント向上しつつ、計算量は40%ほど少ない。
- 高解像度(2048×1024)でもSegNeXtはO(n)スケールの畳み込みベースなので高速。
- ADE20K
- SegNeXt-Lは、シングルスケール(SS)でmIoU=51.0%、マルチスケール(MS)で52.1%。
- 同程度パラメータのMask2Former (Swin-T)やHRFormer-Bなどと比較して約2~3ポイント上回る結果が出ている。
- SegNeXt-Bも、SegFormer-B2より2.0ポイント上乗せ (48.5% vs 46.5%) で計算コストは約56%に抑えられている。
これらの結果から、「計算量を抑えつつ、Transformer以上の性能を得られる」という点がSegNeXt最大の売りといえます。論文中にはグラフ(Fig.1)が示されていて、性能(mIoU) vs. FLOPs のプロットでSegNeXtが左上(高精度&低計算)を取っているのが分かります。
(B) COCO-Stuff, Pascal VOC, Pascal Context, iSAID
- Pascal VOC 2012
- テストセットで、SegNeXt-LがmIoU=90.6% という非常に高い数字を叩き出す。
- これは、EfficientNet-L2 + NAS-FPN (約485Mパラメータ) の90.5%を上回り、かつSegNeXt-Lはわずか約48.9Mパラメータしかない。
- ※後述しますが、実質的に「約1/10のパラメータ」で同等以上の精度を達成しているのは印象的です。
- Pascal Context
- SegNeXt-LはmIoU=60.3%(MS)以上。他のCNN系(HRNet + OCR)やTransformer系(HRFormer, DPTなど)を凌駕する。
- COCO-Stuff
- SegNeXt-BでmIoU=46.3%(MS)、SegNeXt-Lで47.2%(MS)という結果を報告。
- 既存のSegFormerやMaskFormer系よりコストパフォーマンスに優れる。
- iSAID
- SegNeXt-LがmIoU=70.3%。都市シーンよりも複雑な航空画像でも、SOTA性能をマークしている。
これら総合的に、「SegNeXtはほぼすべての代表的セグメンテーションベンチマークで最先端水準に到達、あるいは上回る」と結論づけられます。
§アブレーションスタディ:SegNeXtの重要要素を解剖
論文中盤では、多数のアブレーション実験を行い、以下の点を検証しています。
- MSCAの各要素の寄与
- マルチスケールブランチ(7×7, 11×11, 21×21相当)をそれぞれ追加するごとに精度が向上。
- 1×1 Convによるチャネル混合(Channel Mixing)と、アテンション (element-wise multiplication) の有無も比較し、それぞれ重要だと示す。
- デコーダにおけるグローバルコンテキスト手法
- Non-Local, CCNet, EMA, Hamburgerなど複数を比較。
- Hamburgerが、O(n) の計算量で高い精度を示すベストバランスだった。
- Stage 1の特徴を使うかどうか
- Stage 1の低レベル情報はノイズが多く学習コストも高いため、SegNeXtではStage 1はデコーダに渡さず、Stage 2~4を集約する方が良好だった。
- 大カーネル畳み込み vs. マルチスケール
- 単に1つの大カーネル畳み込み(例えば7×7や11×11)を入れるだけでは、マルチスケール(7, 11, 21…)を組み合わせるほどの性能は得られない
- SegNeXt-T / S としてMSCAを使う場合と使わない場合で比較し、MSCAありの方がImageNet精度&セグメンテーション精度が顕著に高い。
§総合的な考察:なぜSegNeXtは強いのか?
上記の実験・アブレーションから、SegNeXtが高い性能を示す要因をまとめると:
- マルチスケール畳み込み (MSCA) の効果
- 大きめカーネルを複数スケール(7, 11, 21など)で並列適用 → 広域の情報を同時に捉えられる
- その結果得られるマップをアテンション重みとして、空間的に重要な部分を強調できる
- 階層型バックボーン (MSCAN) の構築
- Stage 1~4で解像度を徐々に落としながらチャネルを増やす → 通常のCNNバックボーンと同様のスケーリング
- ImageNetで事前学習した際の表現力が高く、単体でSOTA級の分類性能を持つ(ConvNeXt, Swinなどを上回るベンチ結果もあり)
- シンプル&軽量なデコーダ + グローバルコンテキスト
- Encoderが強力なので、Decoderは軽量なHamburgerモジュールだけで十分高い性能
- SegNeXt全体としてのFLOPs / パラメータ数を抑えられ、高解像度入力にも適合する
- 計算量O(n)のまま空間情報を獲得
- Transformerの自己注意がO(n^2)に対して、SegNeXtは畳み込みベースでO(n)
- Cityscapesのような2K解像度での学習・推論が高速に回せる
§課題と今後の展望
論文の最後では、CNNの可能性がまだ十分にあるとしつつ、いくつかの課題や展望も示唆しています。
- 大規模モデル(100M以上)への拡張
- 論文時点では50M前後のパラメータ規模が中心。もっと大きいモデル(例えばSwin-Lレベルのパラメータ帯)での動作は未検証。
- 「CNNでも今後さらに大規模化できる可能性があり、Transformerに負けないかもしれない」との言及。
- 他タスク(物体検出やインスタンスセグメンテーション、NLPなど)への横展開
- SegNeXtはセマンティックセグメンテーション専用のアーキテクチャだが、MSCAやMSCANといったアイデアは他タスクにも適用可能か?
- 論文ではそのまま適用していないが、比較的シンプルなので転用は可能ではと示唆。
- 低レイテンシ環境や実アプリケーションへの統合
- CNNベースで高速とはいえ、Edge端末やモバイルなどでの最適化はまだ課題。
- 実際、Cityscapesでリアルタイム処理(FPSがどれくらい出せるか)比較も行っており、SegNeXt-Tで25FPSは達成との報告。さらなる最適化余地あり。
- アテンションの可解釈性
- MSCAによって得られるアテンションマップはTransformerより解釈しやすいのか? まだ深堀りの余地がある。
- CNNが内部で何を学習しているかを可視化する研究が今後期待される。
著者らは「今後、より大きなモデルや別タスクでもCNNはまだ改良の余地があり、Transformer一強に囚われすぎるべきではない」とまとめています。
§まとめ
SegNeXt は、“畳み込みベースの注意機構 + マルチスケール設計” によって、セマンティックセグメンテーションで非常に高い性能と効率を示す手法でした。特に、Transformerでは一般的な自己注意(Self-Attention)を使わずとも、マルチスケール畳み込みを巧みに組み合わせれば同等以上の結果を達成できるという点が興味深いですね。
主なポイントを挙げると:
- MSCA (Multi-Scale Convolutional Attention):大きなカーネルを分割・マルチスケールで並列に適用し、空間的にアテンションを生み出す
- MSCAN:上記MSCAブロックをスタックして構築する階層型CNNエンコーダ (Tiny~Largeの4種)
- Hamburgerモジュール:軽量なグローバルコンテキスト抽出モジュールをデコーダ部に導入
- 高精度&低FLOPs:Cityscapes, ADE20Kなど高解像度が求められるデータセットでの優位性
- Pascal VOCやContextでもSOTA級:特にPascal VOCでは巨大モデル(EfficientNet-L2)を上回る90.6%を達成
- O(n)計算量:TransformerのO(n^2)に比べて高解像度時の推論コストが低い
総じて、「Transformerだけが答えではない。CNNはまだ強くなれる」 という論調が明確に示されており、実際の実験結果はかなり説得力があります。「大きなカーネル」「マルチスケール」「アテンションの形で空間情報を組み込む」など、CNN派にとっても面白いヒントが多いですね。
§おわりに
以上、SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation の内容を網羅的に解説してみました。
個人的には、Transformerが猛威を振るう中で「Convolution×Attention」再考の流れが非常に興味深いです。マルチスケールな大カーネルを駆使し、各段階で空間的な注意を行う設計が、結果としてTransformer並みの文脈把握を実現しているように感じました。
今後は、大規模データセットや他のビジョンタスクにもSegNeXtの発想が展開されていく可能性があります。特に計算コストが抑えられる強みを生かして、リアルタイム推論が求められる産業分野などでの活躍も期待できそうです。
最後までお読みいただき、ありがとうございました!
🔑この記事のポイントまとめ
- SegNeXt:CNNベースのセグメンテーション手法。Transformer不要でもSOTAレベルに迫る!
- MSCA (Multi-Scale Convolutional Attention):大きなカーネルを複数スケールで並列適用し、空間アテンションを生成
- MSCAN:上記MSCAブロックを階層的にスタックしたバックボーン。ImageNetでも高精度。
- Hamburgerモジュール:軽量なグローバルコンテキスト手法をデコーダに導入。
- SOTA実績:ADE20K, Cityscapes, Pascal VOC, COCO-Stuff などでSegFormer, Mask2Former等を上回る。
- O(n)計算量:高解像度画像でも効率的に処理できる。
- さらなる可能性:100Mパラメータ級への拡張や他タスク(検出・NLP)適用にも期待。
§参考文献(論文リンク)
- SegNeXt (arXiv): https://arxiv.org/abs/2209.08575
- 著者GitHub / コードについて: ※論文内では「Code is available」と言及ありますが、詳細URLは論文中で記載されていません。後続で公開される可能性大だと思います。
ディスカッション
コメント一覧
SegNeXt徹底解説:CNN復権!?「SegNeXt」でTransformerを超えうるセマンティックセグメンテーション | 柚子柿の雑記帳
asevkhidkg
sevkhidkg http://www.gmh6xa48b3137qe200lf587bann370nfs.org/
[url=http://www.gmh6xa48b3137qe200lf587bann370nfs.org/]usevkhidkg[/url]