Interactive Segmentation
インタラクティブセグメンテーションでは、ユーザーのクリック、ボックス、手書きの線を物体マスクに変換し、修正用のクリックでマスクを調整します。GrabCutからMetaのSAMまでを取り上げます。
インタラクティブセグメンテーションでは、クリック、バウンディングボックス、手描きの線など、人が与えた少数のヒントから物体のピクセル精度のマスクを生成し、人が修正を加えるたびにマスクを更新します。正のクリックは物体に属する点を、負のクリックは属さない点を示すため、各段階でユーザーが示す必要があるのは、残った誤りのうち最も大きいものだけです。この手法はクラス非依存であり、モデルはトレーニング中に見たことがない物体も含め、ユーザーが指定した対象をセグメント化します。そのため、データアノテーション、写真編集、医用スキャン内の構造の輪郭抽出における標準的なツールになっています。これは人間参加型の画像セグメンテーション手法です。
クリックループの仕組み#
モデルは画像と、これまでに行われたすべてのクリックを受け取り、多くのモデルでは前回のマスクも受け取って、新しいマスクを予測します。マスクの精度が十分になるまで、このループを繰り返します。
ベンチマークでは、このユーザーの操作をシミュレートします。新しいクリックはそれぞれ、誤差が最大の領域の中央に置かれます。スコアは、GrabCut、Berkeley、DAVISなどのデータセットで、正解データとの交差オーバーユニオンが85%または90%に達するまでに必要なクリック数であり、NoC@85およびNoC@90として報告されます。
Ultralyticsパッケージは、点プロンプトを使ってMetaのSAMモデルを実行します。ラベル1は正のクリック、0は負のクリックを示します。
from ultralytics import SAM
# Meta's SAM 2.1 base model, run through the Ultralytics package
model = SAM("sam2.1_b.pt")
image = "https://ultralytics.com/images/bus.jpg"
# Round 1: a single positive click on the pedestrian's dark coat
results = model(image, points=[[[250, 620]]], labels=[[1]])
print(f"1 click: {int(results[0].masks.data.sum())} mask pixels")
# Round 2: add a positive click on the pedestrian's jeans and a negative click on the bus
results = model(image, points=[[[250, 620], [290, 760], [420, 560]]], labels=[[1, 1, 0]])
print(f"3 clicks: {int(results[0].masks.data.sum())} mask pixels")
results[0].save(filename="interactive_mask.jpg")クリック1回後はマスクピクセルが32,598、3回後は33,120と表示されるため、コートを1回クリックしただけで歩行者のほぼ全体が選択され、追加のクリックでは約500ピクセル分マスクが調整されています。Ultralytics Platformのアノテーションエディターでも同じ操作を実行できます。Smartモードでは、現在のSAMマスクの外側をクリックするとその領域が追加され、内側をクリックすると削除されます。完成したマスクは、データセットのタスクに応じてポリゴン、バウンディングボックス、または回転ボックスとして保存されます。
グラフカットからプロンプト可能なモデルへ#
初期のツールは、境界を直接最適化していました。Intelligent Scissors(1995)は、なぞった輪郭を強いエッジに沿わせます。GrabCutは、2004年にMicrosoft Researchが発表し、OpenCVに収録された手法で、ユーザーが描いたボックス内のオブジェクトをセグメンテーションします。前景と背景のカラーモデルを反復的に推定し、グラフカットを解きます。2016年以降のディープラーニング手法では、画像に加えてクリックを追加の入力チャネルとして符号化し、畳み込みニューラルネットワークでマスクを学習します。後続のモデルでは、マスクをさらに調整するために前回のマスクも入力として使用します。
2023年にリリースされたMetaのSegment Anything Model(SAM)は、処理を分担することで、操作に対する応答をほぼ瞬時にしました。大規模なビジョントランスフォーマーが画像を一度だけエンコードし、軽量なプロンプトエンコーダーとマスクデコーダーが、新しいクリックの組み合わせごとに約50ミリ秒でマスクを生成します。SAMは、独自のインタラクティブループを使って学習されました。SA-1Bデータセットの構築中、アノテーターはモデルの複数のバージョンを使って、オブジェクトをセグメンテーションするためにクリックしました。その結果、マスク1つあたりの平均時間は34秒から14秒に短縮されました。SAM 2は、動画のフレーム間でマスクを伝播させることでクリック操作を動画に拡張し、SAM 3はプロンプト可能な概念セグメンテーションを追加し、短いテキストフレーズに一致するすべてのインスタンスを検出します。
インタラクティブセグメンテーションと自動セグメンテーション#
インスタンスセグメンテーションモデルは、人の入力なしで、学習済みの固定クラスを自動的にセグメンテーションします。そのため、すべてのフレームを処理する必要がある本番パイプラインに適しています。インタラクティブセグメンテーションは、自動化と引き換えに柔軟性を得る方式です。この方式は、こうしたモデルの学習用マスクを作成する際によく使われます。多くの場合、モデルの確信度が最も低い画像をアノテーターに送るアクティブラーニングループの中で利用されます。ビジュアルプロンプティングとは、点、ボックス、またはサンプル画像を使ってビジョンモデルを誘導する、より広い概念です。インタラクティブセグメンテーションは、その反復的なマスク生成形式です。
実際のアプリケーション#
- データセットのラベリング: アノテーターは、何百ものポリゴン頂点をなぞる代わりに、数回のクリックでオブジェクトの輪郭を指定します。SAMを支援に使った場合、マスクあたりの作業時間は14秒となり、COCOの手動マスクアノテーションより6.5倍速くなりました。
- 医用画像処理: 放射線科医は、CTやMRIのスキャン上でボックスと修正用クリックを使い、腫瘍や臓器の輪郭を指定します。MedSAMは、10種類の画像モダリティを網羅する1,570,263組の医用画像とマスクでファインチューニングすることで、SAMを医療分野に適応させました。










