Interactive Segmentation
インタラクティブセグメンテーションがhuman-in-the-loopプロンプトを使用して物体を分離する仕組みを学びます。Ultralytics YOLO26とUltralytics Platformをタスクに活用する方法を紹介します。
インタラクティブセグメンテーションは、ユーザーがクリック、バウンディングボックス、テキストプロンプトなどの継続的または単発の入力を提供し、画像内の特定のオブジェクトを分離するようAIモデルを誘導する、コンピュータービジョンにおける非常に協調的なアプローチです。完全自動化された手法とは異なり、このhuman-in-the-loop技術では、ユーザーがセグメンテーション対象を正確に定義できます。そのため、曖昧な視覚データ、重なり合うオブジェクト、未知のクラスを扱う場合に特に有用です。ここ数年で基盤モデルが導入され、このプロセスの速度と精度が大幅に向上し、データアノテーションや高精度画像処理に不可欠なツールとなっています。
インタラクティブセグメンテーションの仕組み#
このワークフローの中核には、モデルがユーザーのガイダンスを解釈してピクセル単位で正確なマスクを生成するプロンプト可能な概念セグメンテーションがあります。ユーザーは、選択したい前景オブジェクトに「positive」クリックを配置し、除外したい背景領域に「negative」クリックを配置できます。Segment Anything Model (SAM)やその後継モデルであるMeta SAM 3などの高度なモデルは、これをさらに発展させ、多様なジェスチャータイプ [1]、バウンディングボックス、さらにはテキストによる説明を受け付けて、視覚的な検索対象を特定できます。モデルはこれらのプロンプトに基づいて最適な境界を計算し、ユーザーは目的の精度に達するまで追加のクリックでマスクを反復的に調整できます。
実世界での利用例#
インタラクティブセグメンテーションは、人間の専門知識とAIの効率性を組み合わせることで、さまざまな業界のワークフローを変革しています。
- 医用画像: ヘルスケアにおけるAIでは、医師や放射線科医がインタラクティブツールを使用して、MRIやCTスキャン内の腫瘍、病変、特定の臓器を分離します。医用画像の空間モデリング [2]に関する研究では、インタラクティブなクリックによって医療専門家がAIの予測を迅速に修正でき、患者の診断に必要な厳密な精度を確保できることが示されています。
- 地理空間および衛星マッピング: 都市計画担当者や環境科学者は、インタラクティブモデルを使用してGISフィーチャー抽出 [3]を高速化しています。複雑な海岸線、農地の境界、新しいインフラを手作業でトレースする代わりに、アナリストは数回の戦略的なクリックを配置するだけで、正確な地理ポリゴンを即座に生成できます。
- 産業用欠陥検出: 製造業におけるAIでは、品質管理エンジニアがインタラクティブプロンプトを使用して生産ライン上の微細な欠陥を強調表示し、モデル全体を再トレーニングすることなく、新しい種類の欠陥に合わせてシステムを動的に適応させることができます。
インタラクティブセグメンテーションとインスタンスセグメンテーションの比較#
どちらの概念もピクセルレベルでオブジェクトを分離しますが、目的は異なります。インスタンスセグメンテーションは通常、完全自動化されたプロセスです。Ultralytics YOLO26のようなモデルが、ユーザーの介入なしに、あらかじめ定義されたクラス(例: 「車」、「人物」、「犬」)を検出して輪郭を描画します。詳しい仕組みについては、インスタンスセグメンテーションのガイドをご覧ください。
一方、インタラクティブセグメンテーションは、あらかじめ定義されたクラスに厳密には依存しません。クラスに依存しないため、ユーザーが指し示した対象を何でもセグメントできます。そのため、アクティブラーニングパイプラインに適しています。このパイプラインでは、未知のオブジェクトに迅速にアノテーションを付け、Ultralytics Platformなどのツールを使用してカスタムデータセットに追加できます。
Ultralyticsを使用した例#
PyTorchとultralytics Pythonパッケージを使用して、独自のプロジェクトにインタラクティブセグメンテーションを簡単に実装できます。この例では、バウンディングボックスプロンプトを指定して特定のオブジェクトをセグメントするために、FastSAMを使用します。
from ultralytics import FastSAM
# Load a pretrained FastSAM model
model = FastSAM("FastSAM-s.pt")
# Perform interactive segmentation using a bounding box prompt [x1, y1, x2, y2]
results = model("path/to/image.jpg", bboxes=[100, 100, 300, 300])
# Display the segmented result on screen
results[0].show()このスニペットは、単純な空間プロンプトによってモデルが対象領域を直接分離するよう誘導し、最小限のコードで複雑な画像セグメンテーションタスクを効率化する方法を示しています。









