Visual Prompting
視覚的プロンプティングによって点やボックスでAIモデルを誘導する方法を解説します。Ultralytics YOLOとSAMが高精度なセグメンテーションと迅速なデータアノテーションを実現する仕組みを学びます。
ビジュアルプロンプティングは、ユーザーがポイント、バウンディングボックス、手描き線などの空間的または視覚的な手がかりを提供し、画像内の特定のオブジェクトや領域にAIモデルの焦点を合わせる、コンピュータビジョンにおける新しい手法です。主にテキストによる説明に依存する従来のプロンプトエンジニアリングとは異なり、ビジュアルプロンプティングでは、より正確で直感的に人工知能 (AI)システムとやり取りできます。この手法は、最新の基盤モデルの能力を活用し、大規模な再トレーニングや大量のラベル付きデータセットを必要とせずに、セグメンテーションや検出などのタスクを実行します。重要な対象を効果的に「指し示す」ことで、ユーザーは汎用モデルを新しいタスクに即座に適応させ、人間の意図と機械の知覚の隔たりを埋めることができます。
ビジュアルプロンプティングの仕組み#
ビジュアルプロンプティングの中核では、空間情報をモデルの処理パイプラインに直接注入します。ユーザーがオブジェクトをクリックしたりボックスを描画したりすると、これらの入力は座標ベースの埋め込みに変換され、ニューラルネットワークが画像特徴量と統合します。このプロセスは、Segment Anything Model (SAM)のようなインタラクティブアーキテクチャの中心であり、モデルは幾何学的なプロンプトに基づいてマスクを予測します。
ビジュアルプロンプティングの柔軟性により、さまざまなインタラクション形式が可能になります。
- ポイントプロンプト: ユーザーが特定のピクセルをクリックして、対象のオブジェクトを示します。モデルはその選択範囲をオブジェクト全体の境界まで拡張します。
- ボックスプロンプト: バウンディングボックスを描画すると、おおまかな位置が指定され、その領域内に含まれるすべての対象をセグメント化または分類するようモデルに指示できます。
- スクリブルプロンプト: オブジェクト上にフリーハンドで描いた線は、オブジェクトが重なっていたり、似たテクスチャを持っていたりする複雑なシーンの曖昧さを解消するのに役立ちます。
CVPR 2024で発表された最近の研究では、ビジュアルプロンプティングによってデータアノテーションに必要な時間が大幅に短縮されることが示されています。人間のアノテーターは、ポリゴンを手動でトレースする代わりに、簡単なクリックでモデルの予測をリアルタイムに修正できるためです。
ビジュアルプロンプティングとテキストプロンプティングの比較#
どちらの手法もモデルの動作を誘導することを目的としていますが、ビジュアルプロンプティングとテキストベースの手法は区別することが重要です。Text-to-image生成やゼロショット検出では、自然言語処理 (NLP)を使用して意味的な説明(例: 「赤い車を見つけて」)を解釈します。しかし、正確な空間的位置や抽象的な形状を説明するには、言語が曖昧であったり不十分であったりする場合があります。
ビジュアルプロンプティングは、命令をピクセル空間そのものに紐付けることで、この曖昧さを解消します。たとえば医用画像解析では、放射線科医がテキストで正確な座標や不規則な形状を説明しようとするよりも、疑わしい結節をクリックするほうがはるかに正確です。多くの場合、最も強力なワークフローでは、意味的なフィルタリングにテキストを使用し、空間的な精度にビジュアルプロンプトを使用するという、両方のアプローチを組み合わせます。これはマルチモーダル学習として知られている概念です。
実世界での利用例#
ビジュアルプロンプティングの適応性により、さまざまな業界で急速に導入されています。
- インタラクティブな医療診断: 医師は、MRIスキャン内の腫瘍や臓器を分離するためにビジュアルプロンプティングツールを使用します。関心領域をクリックするだけで、3Dボリューム測定を即座に生成でき、正確な腫瘍検出や手術計画に役立ちます。
- スマートな写真編集: Adobe Photoshopなどのコンシューマー向けソフトウェアやモバイルアプリでは、ビジュアルプロンプティングによって「マジック選択」ツールを実現しています。ユーザーは人物やオブジェクトをタップして背景を削除したり、対象を絞ったフィルターを適用したりできます。基盤となるインスタンスセグメンテーション技術を利用するため、手動でマスクを作成するスキルは必要ありません。
- ロボットマニピュレーション: ロボティクスにおけるAIでは、視覚インターフェースを通じて特定のアイテムを拾い上げるようロボットに指示できます。オペレーターがロボットのカメラ映像内のオブジェクトをクリックすると、視覚的なプロンプトがロボットによって把持座標に変換され、倉庫でのHuman-in-the-Loopオートメーションが可能になります。
Ultralyticsを使用した実装#
Ultralyticsエコシステムは、特にFastSAMやSAMなどのモデルを通じて、ビジュアルプロンプティングのワークフローをサポートしています。これらのモデルでは、開発者がプログラムからポイントまたはボックスの座標を渡し、セグメンテーションマスクを取得できます。
次の例では、ultralyticsパッケージを使用して画像にポイントプロンプトを適用し、特定の座標にあるオブジェクトをセグメント化するようモデルに指示する方法を示します。
from ultralytics import SAM
# Load the Segment Anything Model (SAM)
model = SAM("sam2.1_b.pt")
# Apply a visual point prompt to the image
# The 'points' argument accepts [x, y] coordinates
# labels: 1 indicates a foreground point (include), 0 indicates background
results = model("https://ultralytics.com/images/bus.jpg", points=[[300, 350]], labels=[1])
# Display the segmented result
results[0].show()モデルの俊敏性の向上#
ビジュアルプロンプティングは、「プロンプト可能な」コンピュータビジョンへの移行を示すものであり、モデルはもはや静的な「ブラックボックス」ではなく、インタラクティブなツールとなります。この機能は、ユーザーからのフィードバックを取り入れてモデルを迅速に改善するアクティブラーニングループに不可欠です。
これらの機能を本番環境に統合したい開発者向けに、Ultralytics Platformは、データセットを管理し、動的な入力を処理できるモデルをデプロイするためのツールを提供しています。研究が進むにつれて、ビジュアルプロンプトと大規模言語モデル (LLMs)の統合はさらに緊密になると予想されます。これにより、現在テキストを扱っているのと同じ流暢さで、視覚入力について推論できるシステムが実現します。









