検出器としてのVLM
生の文字列を物体検出予測として解析します。
v2
Visual Language Models(VLM)および大規模言語モデル(LLM)からJSON文字列を抽出し、バウンディングボックス、クラス名、信頼度を取り出して、正規化座標をピクセル座標に変換し、クラス名をクラスIDに対応付け、複数のモデル種別とタスク形式を処理して、VLMベースの物体検出、LLM検出パース、テキストから検出への変換ワークフローを可能にする標準化された物体検出予測形式に変換します。
このブロックの仕組み
このブロックは、物体検出予測を含むVLM/LLMのテキスト出力を、ワークフローの検出ブロックと互換性のある標準化された物体検出形式に変換します。このブロックは次の処理を行います:
JSON形式の検出結果を含む画像とVLM出力文字列を受け取ります
VLM出力からJSONコンテンツを解析します:
Markdownで囲まれたJSONを処理します:
Markdownコードブロック内に囲まれたJSONを検索します(
json ...)この形式はLLM/VLMの応答で一般的です
複数のMarkdown JSONブロックが見つかった場合は、最初のブロックのみを解析します
Markdownタグ内からJSONコンテンツを抽出します
生のJSON文字列を処理します:
Markdownブロックが見つからない場合は、文字列全体をJSONとして解析しようとします
標準的なJSON形式の文字列をサポートします
モデル種別とタスク種別に基づいて適切なパーサーを選択します:
異なるモデル出力に対応する登録済みパーサー(google-gemini、anthropic-claude、florence-2、openai)を使用します
複数のタスク種別をサポートします: object-detection、open-vocabulary-object-detection、object-detection-and-caption、phrase-grounded-object-detection、region-proposal、ocr-with-text-detection
各モデル/タスクの組み合わせには、その形式に特化したパーサーが使用されます
モデル種別に基づいて検出データを解析します:
OpenAI/Gemini/Claudeモデルの場合:
解析済みJSONからdetections配列を抽出します
画像の寸法を使用して、正規化座標(0〜1の範囲)をピクセル座標に変換します
クラス名、信頼度スコア、バウンディングボックス座標を抽出します
提供されたclassesリストを使用してクラス名をクラスIDに対応付けます
バウンディングボックス、クラス、信頼度を含む検出オブジェクトを作成します
Florence-2モデルの場合:
Florence-2形式にはsupervisionの組み込みLMMパーサーを使用します
特化した解析で異なるタスク種別を処理します(物体検出、open vocabulary、領域提案、OCRなど)
region proposalタスクでは、クラス名として"roi"を割り当てます
open vocabulary detectionでは、提供されたclassesリストをクラスIDの対応付けに使用します
その他のタスクでは、MD5ベースのクラスID生成または提供されたclassesを使用します
Florence-2の検出では信頼度を1.0に設定します(モデルは信頼度を提供しません)
座標を変換し、データを正規化します:
正規化座標(0〜1)を絶対ピクセル座標(x_min, y_min, x_max, y_max)に変換します
画像の幅と高さを使って座標をスケーリングします
信頼度スコアを有効範囲[0.0, 1.0]に正規化します
範囲外の信頼度値をクランプします
クラス名からクラスIDへの対応付けを作成します:
OpenAI/Gemini/Claudeでは、提供されたclassesリストを使ってインデックス対応付け(class_name → class_id)を作成します
クラスは順番に対応付けられます(1つ目のクラス = ID 0、2つ目 = ID 1、など)
提供されたリストにないクラスは class_id = -1 になります
Florence-2では、タスク種別に基づいて異なる対応付け戦略を使用します
物体検出予測を構築します:
バウンディングボックス(xyxy形式)を持つsupervision Detectionsオブジェクトを作成します
クラスID、クラス名、信頼度スコアを含めます
メタデータを追加します: 検出ID、推論ID、画像寸法、予測タイプ
cropを考慮した検出のために親座標を付加します
予測を標準の物体検出形式で整形します
エラーを処理します:
を設定します
error_statusJSON解析に失敗した場合にTrueにしますを設定します
error_status検出解析に失敗した場合にTrueにしますエラーが発生した場合、予測としてNoneを返します
追跡のために常に inference_id を含めます
物体検出予測を返します:
出力
predictions標準の物体検出形式で(検出ブロックと互換性あり)出力
error_status解析成功/失敗を示す出力
inference_id追跡と来歴管理のため
このブロックは、VLM/LLMのテキストベースのJSON出力を標準化された検出予測に変換することで、他の物体検出モデル出力と同様にワークフローで使用できるようにし、VLMを物体検出に利用できるようにします。
一般的な使用例
VLMベースの物体検出: VLM出力を検出予測に解析することで、Visual Language Modelsを物体検出に使用します(例: GPT-4Vで物体を検出する、Claude Visionを検出に使う、Geminiの検出出力を解析する)。VLM検出ワークフローを可能にします
オープンボキャブラリ検出: VLMを使ってカスタムクラスによるオープンボキャブラリ物体検出を行います(例: VLMでカスタム物体を検出する、オープンボキャブラリ検出を使う、学習データにない物体を検出する)。オープンボキャブラリ検出ワークフローを可能にします
マルチタスク検出: VLMをさまざまな検出タスクに使用します(例: キャプション付き物体検出、フレーズ基準検出、領域提案、検出付きOCR)。マルチタスク検出ワークフローを可能にします
LLM検出パース: 検出結果を含むLLMのテキスト出力を標準形式に解析します(例: GPTの検出出力を解析する、LLM予測を検出形式に変換する、検出にLLMを使用する)。LLM検出ワークフローを可能にします
テキストから検出への変換: モデルからのテキストベースの検出出力をワークフロー互換の検出予測に変換します(例: テキスト予測を検出形式に変換する、テキストベースの検出を解析する、モデル出力を検出に変換する)。テキストから検出へのワークフローを可能にします
VLM統合: VLM出力を検出ワークフローに統合します(例: 検出パイプラインでVLMを使用する、VLM予測を検出ブロックと統合する、VLMと従来型検出を組み合わせる)。VLM統合ワークフローを可能にします
他のブロックへの接続
このブロックは画像とVLM出力を受け取り、物体検出予測を生成します:
VLM/LLMブロックの後 検出出力を標準形式に解析するために(例: VLM出力を検出にする、LLM出力を検出にする、モデル出力を解析する)。VLMから検出へのワークフローを可能にします
検出ベースのブロックの前 解析済みの検出を使用するために(例: ワークフローで解析済み検出を使う、下流ブロックに検出を渡す、VLM検出を検出ブロックで使う)。検出からワークフローへのワークフローを可能にします
フィルタリングブロックの前 VLM検出をフィルタリングするために(例: クラスでフィルタリングする、信頼度でフィルタリングする、VLM予測にフィルタを適用する)。検出からフィルターへのワークフローを可能にします
分析ブロックの前で VLMの検出結果を分析するために(例: VLM検出を分析する、解析済み検出に対して分析を行う、VLM検出メトリクスを追跡する)。検出分析ワークフローを可能にします
可視化ブロックの前 VLMの検出結果を表示するために(例: VLM検出を可視化する、解析済み検出予測を表示する、VLM検出出力を示す)。検出可視化ワークフローを可能にします
ワークフロー出力において VLM検出を最終出力として提供するために(例: VLM検出出力、解析済み検出結果、VLMベースの検出出力)。検出出力ワークフローを可能にします
バージョン差分
このバージョン(v2)は、v1に対して以下の改善を含みます:
改善された型システム:
inference_id出力は今ではINFERENCE_ID_KINDではなくSTRING_KINDを使用し、ワークフローシステム内の推論追跡識別子に対して、より高い型安全性と意味的な明確さを提供しますOpenAIモデルのサポート: Google Gemini、Anthropic Claude、Florence-2に加えてOpenAIモデルのサポートを追加し、物体検出に使用できるVLM/LLMモデルの範囲を拡大しました
強化された型安全性: 改善された型システムにより、ワークフロー実行エンジンとの統合が向上し、推論追跡の意味もより明確になります
要件
このブロックは、メタデータと寸法のための画像入力と、JSONの検出データを含むVLM出力文字列を必要とします。JSONは生のJSONでも、Markdownコードブロック(json ... )で囲まれていても構いません。このブロックは4種類のモデルタイプをサポートします: "openai"、"google-gemini"、"anthropic-claude"、"florence-2"。また、複数のタスクタイプ: "object-detection"、"open-vocabulary-object-detection"、"object-detection-and-caption"、"phrase-grounded-object-detection"、"region-proposal"、"ocr-with-text-detection" をサポートします。 classes パラメータはOpenAI、Gemini、Claudeモデルでは必須です(クラス名をIDに対応付けるため)が、Florence-2では任意です(タスクによっては不要)。クラスはインデックス順にIDへ対応付けられます(1つ目のクラス = 0、2つ目 = 1、など)。リストにないクラスは class_id = -1 になります。このブロックは、標準形式の物体検出予測(検出ブロックと互換性あり)、error_status(boolean)、および追跡用の inference_id(INFERENCE_ID_KIND)を出力します。
型識別子
ステップで次の識別子を使用してください "type" フィールド: roboflow_core/vlm_as_detector@v2 ワークフローにこのブロックをステップとして追加するには。
プロパティ
名前
型
説明
参照
name
str
このステップの一意の識別子を入力してください。
❌
classes
List[str]
分類モデルで使用されるすべてのクラス名の一覧を、順番通りに並べたものです。VLM出力のクラス名と検出形式のクラスIDとの対応付けを生成するために必要です。クラスはインデックス順にIDへ対応付けられます: 1つ目のクラス = ID 0、2つ目 = ID 1、など。VLM出力に含まれるこの一覧にないクラスは class_id = -1 になります。OpenAI、Gemini、Claudeモデルでは必須です。Florence-2では任意です(タスクによっては不要)。VLMに検出させたクラスと一致している必要があります。
✅
model_type
str
予測を生成したVLM/LLMモデルの種類。JSON出力から検出データを抽出する際に使用するパーサーを決定します。サポートされるモデル: 'openai'(GPT-4V)、'google-gemini'(Gemini Vision)、'anthropic-claude'(Claude Vision)、'florence-2'(Microsoft Florence-2)。各モデル種別は異なるJSON出力形式を持つため、適切に解析するには正しいモデル種別を指定する必要があります。
❌
task_type
str
VLM/LLMモデルが実行したタスクの種類。使用するパーサーと形式ハンドラーを決定します。サポートされるタスク: 'object-detection'(標準の物体検出)、'open-vocabulary-object-detection'(カスタムクラスでの物体検出)、'object-detection-and-caption'(キャプション付き検出)、'phrase-grounded-object-detection'(フレーズを検出に対応付ける)、'region-proposal'(関心領域の提案)、'ocr-with-text-detection'(テキスト領域検出付きOCR)。タスク種別は、VLM/LLMに依頼した内容と一致している必要があります。
❌
この 参照 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します ワークフロー 実行時。参照 バインディング 詳細は。
入力と出力のバインディング
利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が 検出器としてのVLM のバージョン v2 あるか確認してください。
入力と出力のバインディング
入力
image(image): VLM予測の生成に使用された入力画像。正規化座標をピクセル座標へ変換するための画像寸法(幅、高さ)と、検出予測のメタデータ(parent_id)を抽出するために使用されます。整合性を保つため、VLM/LLMブロックに渡したのと同じ画像をここでも使用する必要があります。vlm_output(language_model_output): VLMまたはLLMブロックからの、JSON形式の物体検出予測を含む文字列出力です。生のJSON文字列、またはMarkdownコードブロック(例:json {...})で囲まれたJSONのどちらでもかまいません。形式は model_type と task_type に依存します。モデルとタスクが異なれば、JSON構造も異なります。複数のMarkdownブロックが存在する場合は、最初のものだけが解析されます。classes(list_of_values): 分類モデルで使用されるすべてのクラス名の一覧を、順番通りに並べたものです。VLM出力のクラス名と検出形式のクラスIDとの対応付けを生成するために必要です。クラスはインデックス順にIDへ対応付けられます: 1つ目のクラス = ID 0、2つ目 = ID 1、など。VLM出力に含まれるこの一覧にないクラスは class_id = -1 になります。OpenAI、Gemini、Claudeモデルでは必須です。Florence-2では任意です(タスクによっては不要)。VLMに検出させたクラスと一致している必要があります。
出力
error_status(boolean) : ブールフラグ。predictions(object_detection_prediction): 検出されたバウンディングボックスを sv.Detections(...) オブジェクト形式で含む予測。inference_id(inference_id): Inferenceの識別子。
v1
Visual Language Models(VLM)および大規模言語モデル(LLM)からJSON文字列を抽出し、バウンディングボックス、クラス名、信頼度を取り出して、正規化座標をピクセル座標に変換し、クラス名をクラスIDに対応付け、複数のモデル種別とタスク形式を処理して、VLMベースの物体検出、LLM検出パース、テキストから検出への変換ワークフローを可能にする標準化された物体検出予測形式に変換します。
このブロックの仕組み
このブロックは、物体検出予測を含むVLM/LLMのテキスト出力を、ワークフローの検出ブロックと互換性のある標準化された物体検出形式に変換します。このブロックは次の処理を行います:
JSON形式の検出結果を含む画像とVLM出力文字列を受け取ります
VLM出力からJSONコンテンツを解析します:
Markdownで囲まれたJSONを処理します:
Markdownコードブロック内に囲まれたJSONを検索します(
json ...)この形式はLLM/VLMの応答で一般的です
複数のMarkdown JSONブロックが見つかった場合は、最初のブロックのみを解析します
Markdownタグ内からJSONコンテンツを抽出します
生のJSON文字列を処理します:
Markdownブロックが見つからない場合は、文字列全体をJSONとして解析しようとします
標準的なJSON形式の文字列をサポートします
モデル種別とタスク種別に基づいて適切なパーサーを選択します:
異なるモデル出力に対応する登録済みパーサー(google-gemini、anthropic-claude、florence-2)を使用します
複数のタスク種別をサポートします: object-detection、open-vocabulary-object-detection、object-detection-and-caption、phrase-grounded-object-detection、region-proposal、ocr-with-text-detection
各モデル/タスクの組み合わせには、その形式に特化したパーサーが使用されます
モデル種別に基づいて検出データを解析します:
Gemini/Claudeモデルの場合:
解析済みJSONからdetections配列を抽出します
画像の寸法を使用して、正規化座標(0〜1の範囲)をピクセル座標に変換します
クラス名、信頼度スコア、バウンディングボックス座標を抽出します
提供されたclassesリストを使用してクラス名をクラスIDに対応付けます
バウンディングボックス、クラス、信頼度を含む検出オブジェクトを作成します
Florence-2モデルの場合:
Florence-2形式にはsupervisionの組み込みLMMパーサーを使用します
特化した解析で異なるタスク種別を処理します(物体検出、open vocabulary、領域提案、OCRなど)
region proposalタスクでは、クラス名として"roi"を割り当てます
open vocabulary detectionでは、提供されたclassesリストをクラスIDの対応付けに使用します
その他のタスクでは、MD5ベースのクラスID生成または提供されたclassesを使用します
Florence-2の検出では信頼度を1.0に設定します(モデルは信頼度を提供しません)
座標を変換し、データを正規化します:
正規化座標(0〜1)を絶対ピクセル座標(x_min, y_min, x_max, y_max)に変換します
画像の幅と高さを使って座標をスケーリングします
信頼度スコアを有効範囲[0.0, 1.0]に正規化します
範囲外の信頼度値をクランプします
クラス名からクラスIDへの対応付けを作成します:
Gemini/Claudeでは、提供されたclassesリストを使ってインデックス対応付け(class_name → class_id)を作成します
クラスは順番に対応付けられます(1つ目のクラス = ID 0、2つ目 = ID 1、など)
提供されたリストにないクラスは class_id = -1 になります
Florence-2では、タスク種別に基づいて異なる対応付け戦略を使用します
物体検出予測を構築します:
バウンディングボックス(xyxy形式)を持つsupervision Detectionsオブジェクトを作成します
クラスID、クラス名、信頼度スコアを含めます
メタデータを追加します: 検出ID、推論ID、画像寸法、予測タイプ
cropを考慮した検出のために親座標を付加します
予測を標準の物体検出形式で整形します
エラーを処理します:
を設定します
error_statusJSON解析に失敗した場合にTrueにしますを設定します
error_status検出解析に失敗した場合にTrueにしますエラーが発生した場合、予測としてNoneを返します
追跡のために常に inference_id を含めます
物体検出予測を返します:
出力
predictions標準の物体検出形式で(検出ブロックと互換性あり)出力
error_status解析成功/失敗を示す出力
inference_id追跡と来歴管理のため
このブロックは、VLM/LLMのテキストベースのJSON出力を標準化された検出予測に変換することで、他の物体検出モデル出力と同様にワークフローで使用できるようにし、VLMを物体検出に利用できるようにします。
一般的な使用例
VLMベースの物体検出: VLM出力を検出予測に解析することで、Visual Language Modelsを物体検出に使用します(例: GPT-4Vで物体を検出する、Claude Visionを検出に使う、Geminiの検出出力を解析する)。VLM検出ワークフローを可能にします
オープンボキャブラリ検出: VLMを使ってカスタムクラスによるオープンボキャブラリ物体検出を行います(例: VLMでカスタム物体を検出する、オープンボキャブラリ検出を使う、学習データにない物体を検出する)。オープンボキャブラリ検出ワークフローを可能にします
マルチタスク検出: VLMをさまざまな検出タスクに使用します(例: キャプション付き物体検出、フレーズ基準検出、領域提案、検出付きOCR)。マルチタスク検出ワークフローを可能にします
LLM検出パース: 検出結果を含むLLMのテキスト出力を標準形式に解析します(例: GPTの検出出力を解析する、LLM予測を検出形式に変換する、検出にLLMを使用する)。LLM検出ワークフローを可能にします
テキストから検出への変換: モデルからのテキストベースの検出出力をワークフロー互換の検出予測に変換します(例: テキスト予測を検出形式に変換する、テキストベースの検出を解析する、モデル出力を検出に変換する)。テキストから検出へのワークフローを可能にします
VLM統合: VLM出力を検出ワークフローに統合します(例: 検出パイプラインでVLMを使用する、VLM予測を検出ブロックと統合する、VLMと従来型検出を組み合わせる)。VLM統合ワークフローを可能にします
他のブロックへの接続
このブロックは画像とVLM出力を受け取り、物体検出予測を生成します:
VLM/LLMブロックの後 検出出力を標準形式に解析するために(例: VLM出力を検出にする、LLM出力を検出にする、モデル出力を解析する)。VLMから検出へのワークフローを可能にします
検出ベースのブロックの前 解析済みの検出を使用するために(例: ワークフローで解析済み検出を使う、下流ブロックに検出を渡す、VLM検出を検出ブロックで使う)。検出からワークフローへのワークフローを可能にします
フィルタリングブロックの前 VLM検出をフィルタリングするために(例: クラスでフィルタリングする、信頼度でフィルタリングする、VLM予測にフィルタを適用する)。検出からフィルターへのワークフローを可能にします
分析ブロックの前で VLMの検出結果を分析するために(例: VLM検出を分析する、解析済み検出に対して分析を行う、VLM検出メトリクスを追跡する)。検出分析ワークフローを可能にします
可視化ブロックの前 VLMの検出結果を表示するために(例: VLM検出を可視化する、解析済み検出予測を表示する、VLM検出出力を示す)。検出可視化ワークフローを可能にします
ワークフロー出力において VLM検出を最終出力として提供するために(例: VLM検出出力、解析済み検出結果、VLMベースの検出出力)。検出出力ワークフローを可能にします
要件
このブロックは、メタデータと寸法のための画像入力と、JSONの検出データを含むVLM出力文字列を必要とします。JSONは生のJSONでも、Markdownコードブロック(json ... ). このブロックは3種類のモデルタイプ: "google-gemini"、"anthropic-claude"、"florence-2" をサポートします。また、複数のタスクタイプ: "object-detection"、"open-vocabulary-object-detection"、"object-detection-and-caption"、"phrase-grounded-object-detection"、"region-proposal"、"ocr-with-text-detection" をサポートします。 classes パラメータはGeminiおよびClaudeモデルでは必須です(クラス名をIDに対応付けるため)が、Florence-2では任意です(タスクによっては不要)。クラスはインデックス順にIDへ対応付けられます(1つ目のクラス = 0、2つ目 = 1、など)。リストにないクラスは class_id = -1 になります。このブロックは、標準形式の物体検出予測(検出ブロックと互換性あり)、error_status(boolean)、および追跡用の inference_id(string)を出力します。
型識別子
ステップで次の識別子を使用してください "type" フィールド: roboflow_core/vlm_as_detector@v1 ワークフローにこのブロックをステップとして追加するには。
プロパティ
名前
型
説明
参照
name
str
このステップの一意の識別子を入力してください。
❌
classes
List[str]
検出モデルで使用されるすべてのクラス名の一覧を、順番通りに並べたものです。google-geminiおよびanthropic-claudeモデルでは、VLM出力のクラス名と検出形式のクラスIDとの対応付けを生成するために必要です。florence-2モデルでは任意です(open-vocabulary-object-detectionタスクでのみ必須)。クラスはインデックス順にIDへ対応付けられます: 1つ目のクラス = ID 0、2つ目 = ID 1、など。VLM出力に含まれるこの一覧にないクラスは class_id = -1 になります。VLMに検出させたクラスと一致している必要があります。
✅
model_type
str
検出予測を生成したVLM/LLMモデルの種類。JSON出力を解析する際に使用するパーサーを決定します。'google-gemini': Google Geminiモデルの出力。'anthropic-claude': Anthropic Claudeモデルの出力。'florence-2': Microsoft Florence-2モデルの出力。各モデル種別は異なるJSON出力形式を持つため、適切な解析が必要です。
❌
task_type
str
VLMモデルが実行したタスクの種類。JSON出力の解析方法と期待される検出形式を決定します。サポートされるタスク: 'object-detection'(プロンプトなし検出)、'open-vocabulary-object-detection'(提供されたクラスでの検出)、'object-detection-and-caption'(キャプション付き検出)、'phrase-grounded-object-detection'(プロンプト付き検出)、'region-proposal'(関心領域)、'ocr-with-text-detection'(OCR付きテキスト検出)。各タスク種別には固有の出力形式要件があります。
❌
この 参照 列は、で利用可能な動的値を使ってプロパティをパラメータ化できる可能性を示します ワークフロー 実行時。参照 バインディング 詳細は。
入力と出力のバインディング
利用可能な接続は、そのバインディング種別によって異なります。どのバインディング種別が 検出器としてのVLM のバージョン v1 あるか確認してください。
入力と出力のバインディング
入力
image(image): VLM予測の生成に使用された入力画像。正規化座標をピクセル座標へ変換するための画像寸法(幅、高さ)と、検出予測のメタデータ(parent_id)を抽出するために使用されます。整合性を保つため、VLM/LLMブロックに渡したのと同じ画像をここでも使用する必要があります。vlm_output(language_model_output): VLMまたはLLMブロックからの、JSON形式の物体検出予測を含む文字列出力です。生のJSON文字列、またはMarkdownコードブロック(例:json {...})で囲まれたJSONのどちらでもかまいません。形式は model_type と task_type に依存します。モデルとタスクが異なれば、JSON構造も異なります。複数のMarkdownブロックが存在する場合は、最初のものだけが解析されます。classes(list_of_values): 検出モデルで使用されるすべてのクラス名の一覧を、順番通りに並べたものです。google-geminiおよびanthropic-claudeモデルでは、VLM出力のクラス名と検出形式のクラスIDとの対応付けを生成するために必要です。florence-2モデルでは任意です(open-vocabulary-object-detectionタスクでのみ必須)。クラスはインデックス順にIDへ対応付けられます: 1つ目のクラス = ID 0、2つ目 = ID 1、など。VLM出力に含まれるこの一覧にないクラスは class_id = -1 になります。VLMに検出させたクラスと一致している必要があります。
出力
error_status(boolean) : ブールフラグ。predictions(object_detection_prediction): 検出されたバウンディングボックスを sv.Detections(...) オブジェクト形式で含む予測。inference_id(string) : 文字列値。
最終更新
役に立ちましたか?