【画像分割】大型モデルSegmentAnything、FastSAM、MobileSAMの比較

ここに画像の説明を挿入します



前書き: 何でもセグメント化する

Meta は今年、画像セグメンテーション モデル Segment Anything Model (SAM) をリリースしました。 SAM はオブジェクトに関する一般的な概念を学習しており、トレーニング中に遭遇しなかったオブジェクトや画像タイプも含め、あらゆる画像またはビデオ内のあらゆるオブジェクトのマスクを生成できます。 SAM は幅広いユースケースをカバーできる汎用性を備えており、 強力なゼロショット移行機能を備えています。

SAM の「すべて分割」機能は、ポイント、ボックス、テキスト、その他の種類の指示に基づいてオブジェクトとエリアのセグメント化を実装します。このトレーニングではエンドツーエンドの Transformer 構造を採用し、数千万の監視サンプルを使用してトレーニングされます。 >。これは、エッジ検出、物体検出、顕著な物体認識、産業異常検出などの下流タスクにおける強力な一般化を示しています。図に示すように、SAM には、イメージ エンコーダ、フレキシブル プロンプト エンコーダ、および高速マスク デコーダの 3 つのコンポーネントがあります
ここに画像の説明を挿入します

SAM は、優れたゼロショット伝送性能と他モデルとの互換性による高い汎用性、< a i=3 >きめ細かい制御による画像編集など、高​​度なビジョン アプリケーションに使用できます。多くのセグメンテーション モデルは、モバイル アプリケーションなど、リソースに制約のあるエッジ デバイス上で実行する必要があるため、SAM に対する軽量の改善が必要です。

具体原理和代码,可见博主的博客【【图像分割】Segment Anything(Meta AI)论文解读】


1.高速SAM

2023 年 6 月 22 日、中国科学院オートメーション研究所の研究チームは、「すべてを分割する」タスクのための FastSAM 手法を提案し、SAM 設計パラダイムを再考し、「< a i=1 >フル インスタンス セグメンテーション + 命令ベースのマスク出力」の 2 段階アルゴリズム。 FastSAM は、 から までの人為的な事前構造設計を導入し、 この一般的な認識タスクにおける元のトランス構造のコストを大幅に削減します。 . 計算冗長性により 50 倍の高速化が達成され、産業用アプリケーションの実装に役立ちます。

「フルインスタンスセグメンテーション+命令ベースマスク出力」の2段階アルゴリズムのメソッド構造を図に示します。
ここに画像の説明を挿入します

1. 基本原則

FastSAM は、各段階でタスクとメソッドの連携メソッドの設計を実行します。

(1) 最初の段階では、画像内のほとんどのオブジェクトが画像の局所的な領域のみを占めるという事実を利用して、以下を採用します。 > 当然ローカル接続特性を持っています。「 畳み込み演算子 CNN は、フル インスタンス セグメンテーション ネットワークを構築するためのバックボーンとして使用されます。。この構造は、 Transformer 構造は、計算コストが低くなりますが、オブジェクトや画像領域を表現および識別する能力は維持されています。

(2) 第 2 段階では、命令ベースのマスク出力に物理空間マッチングと画像とテキストの位置合わせ空間マッチングの戦略が使用されます。前のステージの完全なインスタンス セグメンテーション マスクに基づいて、ポイント プロンプト の場合、 は最適なポイント位置を関連付けます。出力用エリア、マルチポイント モードと背景ポイント抑制をサポート。ボックス プロンプト、< a i=7>ボックスに一致する最大 IoU のセグメンテーション マスクを出力しますテキスト プロンプトの場合は、<を使用します。 /span> は、マスク画像領域とテキスト命令を同じ空間にマッピングし、類似度計算を実行して、最も類似した領域を出力します。 画像およびテキスト配置ネットワーク CLIP

このメソッド構造に基づいて、FastSAM は、SAM チームのオープンソース SA-1B データセットでのトレーニング用に画像の 2% をランダムに選択し、SAM と一致する結果を達成しました。これは、最も一般的に使用されている 32×32 命令バージョンよりも高速です。 SAMの50倍に改良され、リアルタイムの「すべて分割」を実現しました。

ここに画像の説明を挿入します

2. 実験結果の比較

ここに画像の説明を挿入します


2.モバイルSAM

论文地址:https://arxiv.org/pdf/2306.14289.pdf

コード アドレス: https://github.com/ChaoningZhang/MobileSAM

论文题目

ここに画像の説明を挿入します
この論文では、 元の SAM ファイルから新しい軽量 SAM をトレーニングすると、満足のいくパフォーマンスが得られないことが判明しました。その主な原因は画像エンコーダとマスク デコードです。 < a i=2> は デバイスのカップリング最適化によって発生するため、 分離蒸留 が提案されています。具体的には、元の SAM 内の画像エンコーダ ViT-H の知識を軽量の画像エンコーダに抽出しこれエンコーダは、元の SAM のマスク デコーダと自動的に互換性があります

ここに画像の説明を挿入します
さまざまなエンコーダーの SAM モデル パラメーターの比較:

ここに画像の説明を挿入します

トレーニングは 1 つの GPU で 1 日以内に完了し、結果として得られる軽量 SAM はMobileSAM と呼ばれます。元の SAM よりも 60 分の 1 以上小さいですが、パフォーマンスはオリジナルのSAMに匹敵します。推論速度の点では、MobileSAM は画像あたり約 10 ミリ秒、画像エンコーダーで 8 ミリ秒、マスク デコーダーで 2 ミリ秒かかります。優れたパフォーマンスと優れた汎用性を備えた当社の MobileSAM は、同時実行の FastSAM よりも 7 倍小さく、4 倍高速であるため、モバイル アプリケーションに適しています。

1.フレームワーク

SAM は、ViT ベースのイメージ エンコーダーとヒント ガイド付きマスク デコーダーで構成されます。画像エンコーダは画像を入力として受け取り、埋め込みを生成し、それがマスク デコーダに供給されます。マスク デコーダは、ポイント (またはボックス) などのキューに基づいて背景からオブジェクトを切り取るマスクを生成します。さらに、SAM では、曖昧さを解決するために同じプロンプトに対して複数のマスクを生成できるため、貴重な柔軟性が得られます。これを念頭に置いて、MobileSAM は SAM パイプラインを維持し、最初に ViT ベースのエンコーダーを使用して画像埋め込みを生成し、次にヒントガイド付きデコーダーを使用して必要なマスクを生成します。 < i=2>。このパイプラインは「セグメント何でも」用に最適化されており、「SAM」の下流タスクに使用できます。

SAM の結合知識蒸留。左の図は完全連成蒸留を表し、右の画像は半連成蒸留を表します。
ここに画像の説明を挿入します

このプロジェクトの目標は、モバイル フレンドリーな SAM (MobileSAM) を生成し、軽量な方法で SAM を迅速に実装することです。元の SAM のヒントガイド付きマスク デコーダのパラメータは 4M 未満で、軽量であると考えられています。ただし、オリジナルの SAM のデフォルトの画像エンコーダは ViT-H に基づいており、6 億を超えるパラメータがあり、非常に重いです。したがって、モバイル フレンドリーな SAM を実現する鍵は、重量のある画像エンコーダを軽量の画像エンコーダに置き換えることです。 画像エンコーダーとして ViT-B を使用した SAM の連成蒸留と非共役蒸留の比較。結合蒸留と比較して、分離蒸留はパフォーマンスが良く、必要なコンピューティング リソースは 1% 未満です。
ここに画像の説明を挿入します

2. 実験

  1. 下の図は、ポイントおよび bbox プロンプト ワードにおける MobileSAM とネイティブ SAM の結果の比較を示しています。

ここに画像の説明を挿入します
ここに画像の説明を挿入します

  1. 次の図は、SAM、FastSAM、MobileSAM の 3 つのモデルをセグメンテーションの観点から比較しています。

MobileSAM はネイティブ SAM の結果と驚くほどよく一致しますが、FastSAM は満足のいく結果が得られません
FastSAM は滑らかでないエッジを生成することがよくありますが、SAM と MobileSAM にはこの問題はありません
ここに画像の説明を挿入します
ここに画像の説明を挿入します
ここに画像の説明を挿入します

3.コード

フォワード コードは非常にシンプルで、事前トレーニングされたモデルはわずか 14M で、元のコードに含まれています。

ここに画像の説明を挿入します


おすすめ

転載: blog.csdn.net/qq_45752541/article/details/133708751