こしあん
2022-09-22

論文まとめ:SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation


1.4k{icon} {views}

  • タイトル:SegNeXt: Rethinking Convolutional Attention Design for Semantic Segmentation
  • 著者:Meng-Hao Guo, Cheng-Ze Lu, Qibin Hou, Zhengning Liu, Ming-Ming Cheng, Shi-Min Hu
  • 所属:清華大学、南開大学、Fitten Tech
  • コード:https://github.com/Visual-Attention-Network/SegNeXt
  • カンファ:NeurIPS 2022

ざっくりいうと

軽量性と精度を両立したのが売りのセグメンテーションモデル。CNNベースにもかかわらず、Transformerベースのモデルに対して勝利。

先行研究のDeepLabV3+、SegFormerなどのモデルに見られた工夫を取り入れつつ、計算量オーダーを削減している。

実装を見ると

公式実装より、コードベースでモデルを見てみる。

例えば、SegNext-Tinyの場合は、バックボーンに本研究で導入されたMSCANを、Decode Headに先行研究のHamburger Head(LightHamHead)を使っている。

コード

model = dict(
    type='EncoderDecoder',
    backbone=dict(
        init_cfg=dict(type='Pretrained', checkpoint='pretrained/mscan_t.pth')),
    decode_head=dict(
        type='LightHamHead',
        in_channels=[64, 160, 256],
        in_index=[1, 2, 3],
        channels=256,
        ham_channels=256,
        ham_kwargs=dict(MD_R=16),
        dropout_ratio=0.1,
        num_classes=150,
        norm_cfg=ham_norm_cfg,
        align_corners=False,
        loss_decode=dict(
            type='CrossEntropyLoss', use_sigmoid=False, loss_weight=1.0)),
    # model training and testing settings
    train_cfg=dict(),
    test_cfg=dict(mode='whole'))

MSCANとは

ResNeXtインスパイアなブロック構造。Depthwise Convを多用し、AttentionもCNNベースのもの。

各ステージ構造はかなりResNeXt。チャンネル数とレイヤー数をスケールすることでパラメーター数をコントロールするResNet系でありがちな構造。

HamNetのHead

セグメンテーションのHeadの部分は、先行研究のHamNetを使用。HamNetの論文より

Attentionの代わりに、行列分解(Matrix Decomposition)を使ったHead。行列分解の部分が具で、線形変換の部分がパンだからハンバーガーとのこと。

高解像度で25FPS

Papers with codeを見ればわかるが、計算量度外視してSoTAを狙いにいくモデルではない。あくまでGFLOPsと精度の効率が良い。Transformerベースに対して良好な結果を残している。

3090GPU1枚+つよつよCPUでTinyが25FPS。入力解像度が768×1536という、やや高めの設定を割り引いて見ると速度出ている。表の他のモデルは全てリアルタイム出るモデル。

どれが効いている?

1×1Convが一番効いている(Channel Mixing)。次に11×11や21×21の大きめのブランチ。

ライセンスについて

コードをApache-2.0ライセンスで公開しているが、商用利用に関しては以下の注意書きがある。

This repo is under the Apache-2.0 license. For commercial use, please contact the authors.

おそらくコードに含まれる比較対象のSegFormerがNVIDIAライセンスだからと思われる(MMSegでもここだけ例外扱いしている)。 MMSegmentaionに準じたコード設計なので、 SegNeXtの部分だけMMSegmentaionに統合されればどうなのだろう?(元となったHamburgerの公式がGPL-3.0なので怪しい雰囲気はなくはないが)

感想

Convだけでわかりやすい。「大きめの畳み込みカーネルを使えば、CNNでもTransformerに引けを取らない精度が出るよ」というどこかでみたような主張だが、これでNeurIPS 2022通っているのが驚き。



Shikoan's ML Blogの中の人が運営しているサークル「じゅ~しぃ~すくりぷと」の本のご案内

技術書コーナー

北海道の駅巡りコーナー


Add a Comment

メールアドレスが公開されることはありません。 が付いている欄は必須項目です