For the complete documentation index, see llms.txt. This page is also available as Markdown.

Segment Anything (SAM)

Meta のオリジナル Segment Anything モデルを、Dedicated Deployment またはセルフホスト Inference で使用します

Segment Anything Metaが開発した、プロンプト指定可能な元祖の画像セグメンテーションモデルです。オブジェクト内の一点(またはボックス)を与えると、そのオブジェクトの正確な境界を示すマスクを返します。

SAMは2つのステップで動作します:

  1. 画像の埋め込みを作成します。

  2. セグメント化したいオブジェクトの座標でモデルにプロンプトを与えます。

埋め込みは次によってキャッシュされます image_id。そのため、一度画像を埋め込めば、再エンコードせずにその画像に対して何度もプロンプトを送れます。

新しいプロジェクトでは、次を推奨します SAM2 (より高速、より高品質なマスク、動画対応)または SAM3 (テキストプロンプトから概念の各インスタンスをすべてセグメント化します)。SAM v1 は既存の統合向けにここでドキュメント化されています。

SAMはServerless Cloud APIでは利用できません。次の環境で実行してください 専用デプロイメント または セルフホストの Inference.

コード例

1

API キーを取得する

Roboflow アカウントを作成し、キーを次の場所で見つけてください。 Roboflow API 設定ページ そしてシェルから使えるようにします。

export ROBOFLOW_API_KEY="your-key-here"
2

依存関係をインストールする

pip install requests
3

画像を埋め込む

埋め込みは画像の数値表現です。SAMはそれを使ってオブジェクトの位置を計算します。次を設定してください base_url 専用デプロイメントのURLまたはローカルの推論サーバーに。

import os
import requests

base_url = "http://localhost:9001"
api_key = os.environ["ROBOFLOW_API_KEY"]

payload = {
    "image": {"type": "url", "value": "https://media.roboflow.com/quickstart/traffic.jpg"},
    "image_id": "example_image_id",
}

response = requests.post(
    f"{base_url}/sam/embed_image?api_key={api_key}",
    json=payload,
)
embeddings = response.json()["embeddings"]

その image_id 埋め込みをキャッシュするため、同じ画像に対する後続のセグメンテーション要求で再送信する必要はありません。

4

オブジェクトをセグメント化する

オブジェクト上にある少なくとも1点を使ってモデルにプロンプトを与えます。 point_labels 各点を正(1、含める)または負(0、除外)として示します。

payload = {
    "image": {"type": "url", "value": "https://media.roboflow.com/quickstart/traffic.jpg"},
    "point_coords": [[380, 350]],
    "point_labels": [1],
    "image_id": "example_image_id",
}

response = requests.post(
    f"{base_url}/sam/segment_image?api_key={api_key}",
    json=payload,
)
masks = response.json()["masks"]

応答には、対象オブジェクトのセグメンテーションマスクが含まれます。

テスト画像の点座標を見つけるには、次の PolygonZoneウェブツール にアップロードし、オブジェクト上にカーソルを合わせます。パイプラインでは、まずオブジェクト検出器を実行し、各ボックスの中心点をSAMのプロンプトとして使うのが一般的です。

設定してください base_url をデプロイ先に合わせてください:

参考資料

最終更新

役に立ちましたか?