お疲れ様です。
商用利用可能で性能のよいセグメンテーションモデルが必要になったので調査した内容をメモに残しておきます。
リンク
論文 arxiv.org
論文解説 speakerdeck.com
公式実装 github.com
概要
以下は生成AI(Gemini)に聞いた内容。
Mask2Former は、様々なセグメンテーションタスクを統一的なフレームワークで実行できる、非常に強力で汎用性の高い最新のセグメンテーションモデルです。 2022年に発表され、瞬く間にセグメンテーション分野で注目を集めました。
Mask2Former の重要なポイント
統一されたアプローチ (Unified Approach):
マスク分類 (Mask Classification) の考え方:
Transformer デコーダの活用:
マルチスケール特徴の統合:
- 画像の様々なスケールの情報を捉えるために、マルチスケール特徴 を効果的に統合しています。
- これにより、小さなオブジェクトから大きなオブジェクトまで、様々なサイズのオブジェクトを精度良くセグメンテーションできます。
高い性能:
Mask2Former のアーキテクチャの概要 (非常に簡略化)
- バックボーンネットワーク (例: ResNet, Swin Transformer): 入力画像から特徴量を抽出します。
- ピクセルデコーダ (Pixel Decoder): バックボーンネットワークから抽出されたマルチスケール特徴を統合し、高解像度の特徴マップを生成します。
- Transformer デコーダ (Transformer Decoder):
- 特徴マップと学習可能な クエリ を入力として受け取ります。
- Transformer デコーダが、クエリと特徴マップの間でアテンション機構を用いて相互作用し、各クエリがセグメント (オブジェクトや領域) を表現する ように学習されます。
- 各クエリに対応する マスク予測 と クラス予測 が出力されます。
- マスク分類器 (Mask Classifier): 予測されたマスクとクラスを用いて、最終的なセグメンテーション結果を生成します。
上記には記載はないが、Mask2FormerはMITライセンスなので商用利用可能。
(ちなみに他にNVIDIAのSegFormerが候補にあったがこちらはライセンス的に商用利用不可。)
実装
ざっと調べた感じdetectron2やmmdetで実装されているのが多そう。
使い慣れたHuggingFaceからも使えるので、今回はこれを利用して推論処理だけ実装してみます。
huggingface.co
調べると推論だけならサンプルコードもあります。
huggingface.co
出力するとこんな感じ。

ざっと見た感じ指定するモデルの名前によってセグメンテーションの種類を切り替える感じのようです。
使用したサンプルコードのモデルは”facebook/mask2former-swin-small-coco-instance”だったのでインスタンスセグメンテーションになっていますね。
他を調べるとセマンティックセグメンテーション(”facebook/mask2former-swin-large-cityscapes-semantic”など)やパノプティックセグメンテーション(”facebook/mask2former-swin-large-coco-panoptic”)も確認できました。
ほぼ、上記のサンプルと同じですがソースコードはこちらに残しておきます。 github.com