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

탐지기로서의 VLM

원시 문자열을 객체 감지 예측으로 구문 분석합니다.

v2

시각 언어 모델(VLM)과 대규모 언어 모델(LLM)에서 JSON 문자열을 바운딩 박스, 클래스 이름, 신뢰도를 추출하고 정규화된 좌표를 픽셀 좌표로 변환하며 클래스 이름을 클래스 ID에 매핑하고, 여러 모델 유형과 작업 형식을 처리하여 VLM 기반 객체 탐지, LLM 탐지 파싱, 텍스트-탐지 변환 워크플로를 가능하게 하는 표준화된 객체 탐지 예측 형식으로 파싱합니다.

이 블록의 작동 방식

이 블록은 객체 탐지 예측을 포함한 VLM/LLM 텍스트 출력을 워크플로 탐지 블록과 호환되는 표준화된 객체 탐지 형식으로 변환합니다. 이 블록은:

  1. JSON 형식의 탐지 결과를 포함한 이미지와 VLM 출력 문자열을 받습니다

  2. VLM 출력에서 JSON 콘텐츠를 파싱합니다:

    Markdown으로 감싼 JSON을 처리합니다:

    • Markdown 코드 블록 안에 감싸진 JSON을 찾습니다 (json ... )

    • 이 형식은 LLM/VLM 응답에서 흔합니다

    • 여러 개의 markdown JSON 블록이 발견되면 첫 번째 블록만 파싱합니다

    • markdown 태그 안의 JSON 콘텐츠를 추출합니다

    원시 JSON 문자열을 처리합니다:

    • Markdown 블록이 없으면 전체 문자열을 JSON으로 파싱하려고 시도합니다

    • 표준 JSON 형식 문자열을 지원합니다

  3. 모델 유형과 작업 유형에 따라 적절한 파서를 선택합니다:

    • 다양한 모델 출력(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

    • 각 모델/작업 조합은 해당 형식에 맞는 전용 파서를 사용합니다

  4. 모델 유형에 따라 탐지 데이터를 파싱합니다:

    OpenAI/Gemini/Claude 모델의 경우:

    • 파싱된 JSON에서 detections 배열을 추출합니다

    • 이미지 크기를 사용해 정규화된 좌표(0-1 범위)를 픽셀 좌표로 변환합니다

    • 클래스 이름, 신뢰도 점수, 바운딩 박스 좌표를 추출합니다

    • 제공된 클래스 목록을 사용해 클래스 이름을 클래스 ID에 매핑합니다

    • 바운딩 박스, 클래스, 신뢰도를 가진 탐지 객체를 생성합니다

    Florence-2 모델의 경우:

    • Florence-2 형식에 대해 supervision의 내장 LMM 파서를 사용합니다

    • 특수한 파싱으로 다양한 작업 유형을 처리합니다(object detection, open vocabulary, region proposal, OCR 등)

    • region proposal 작업의 경우: 클래스 이름으로 "roi"를 할당합니다

    • open vocabulary 탐지의 경우: 클래스 ID 매핑에 제공된 클래스 목록을 사용합니다

    • 다른 작업의 경우: MD5 기반 클래스 ID 생성 또는 제공된 클래스를 사용합니다

    • Florence-2 탐지의 신뢰도를 1.0으로 설정합니다(모델이 신뢰도를 제공하지 않음)

  5. 좌표를 변환하고 데이터를 정규화합니다:

    • 정규화된 좌표(0-1)를 절대 픽셀 좌표(x_min, y_min, x_max, y_max)로 변환합니다

    • 이미지 너비와 높이를 사용해 좌표를 스케일링합니다

    • 신뢰도 점수를 유효 범위 [0.0, 1.0]로 정규화합니다

    • 범위를 벗어난 신뢰도 값을 클램프합니다

  6. 클래스 이름을 클래스 ID에 매핑합니다:

    • OpenAI/Gemini/Claude의 경우: 제공된 클래스 목록을 사용해 인덱스 매핑(class_name → class_id)을 생성합니다

    • 클래스는 순서대로 매핑됩니다(첫 번째 클래스 = ID 0, 두 번째 = ID 1 등)

    • 제공된 목록에 없는 클래스는 class_id = -1을 받습니다

    • Florence-2의 경우: 작업 유형에 따라 다른 매핑 전략을 사용합니다

  7. 객체 탐지 예측을 구성합니다:

    • 바운딩 박스(xyxy 형식)가 있는 supervision Detections 객체를 생성합니다

    • 클래스 ID, 클래스 이름, 신뢰도 점수를 포함합니다

    • 메타데이터를 추가합니다: 탐지 ID, 추론 ID, 이미지 차원, 예측 유형

    • crop-aware 탐지를 위해 부모 좌표를 첨부합니다

    • 예측을 표준 객체 탐지 형식으로 포맷합니다

  8. 오류를 처리합니다:

    • 다음 값을 설정합니다 error_status JSON 파싱이 실패하면 True로

    • 다음 값을 설정합니다 error_status 탐지 파싱이 실패하면 True로

    • 오류가 발생하면 예측에 대해 None을 반환합니다

    • 추적을 위해 항상 inference_id를 포함합니다

  9. 객체 탐지 예측을 반환합니다:

    • 출력 예측 표준 객체 탐지 형식으로(탐지 블록과 호환)

    • 출력 error_status 파싱 성공/실패를 나타내는

    • 출력 inference_id 추적 및 계보(lineage)용

이 블록은 VLM/LLM의 텍스트 기반 JSON 출력을 다른 객체 탐지 모델 출력과 마찬가지로 워크플로에서 사용할 수 있는 표준화된 탐지 예측으로 변환하여 객체 탐지에 VLM/LLM을 사용할 수 있게 합니다.

일반적인 사용 사례

  • VLM 기반 객체 탐지: VLM 출력을 탐지 예측으로 파싱하여 시각 언어 모델을 객체 탐지에 사용합니다(예: GPT-4V로 객체 탐지, Claude Vision으로 탐지 사용, Gemini 탐지 출력 파싱), VLM 탐지 워크플로를 가능하게 합니다

  • 오픈 어휘 탐지: VLM을 사용자 지정 클래스가 있는 오픈 어휘 객체 탐지에 사용합니다(예: VLM으로 사용자 정의 객체 탐지, 오픈 어휘 탐지 사용, 학습 세트에 없는 객체 탐지), 오픈 어휘 탐지 워크플로를 가능하게 합니다

  • 다중 작업 탐지: VLM을 다양한 탐지 작업에 사용합니다(예: 캡션이 있는 객체 탐지, 구절 기반 탐지, region proposal, 탐지가 포함된 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 ... ). 안에 감싸져 있을 수 있습니다. 이 블록은 네 가지 모델 유형: "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"을 지원합니다. 해당 클래스 매개변수는 OpenAI, Gemini, Claude 모델에는 필요합니다(클래스 이름을 ID에 매핑하기 위해). 그러나 Florence-2에는 선택 사항입니다(일부 작업은 필요하지 않음). 클래스는 인덱스 순서로 ID에 매핑됩니다(첫 번째 클래스 = 0, 두 번째 = 1 등). 목록에 없는 클래스는 class_id = -1을 받습니다. 이 블록은 표준 형식의 객체 탐지 예측(탐지 블록과 호환), error_status(불리언), 추적용 inference_id(INFERENCE_ID_KIND)를 출력합니다.

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/vlm_as_detector@v2 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

클래스

List[str]

분류 모델에서 사용된 모든 클래스 이름의 목록이며, 순서대로 나열됩니다. VLM 출력의 클래스 이름과 탐지 형식의 클래스 ID 사이 매핑을 생성하는 데 필요합니다. 클래스는 인덱스 순서로 ID에 매핑됩니다: 첫 번째 클래스 = ID 0, 두 번째 = 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 출력 형식을 가지므로, 올바른 파싱을 위해 적절한 모델 유형을 지정해야 합니다..

작업 유형

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 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 이미지 (이미지): VLM 예측을 생성하는 데 사용된 입력 이미지입니다. 정규화된 좌표를 픽셀 좌표로 변환하기 위한 이미지 차원(너비, 높이)과 탐지 예측을 위한 메타데이터(parent_id)를 추출하는 데 사용됩니다. 일관성을 유지하려면 VLM/LLM 블록에 제공한 동일한 이미지를 여기에도 사용해야 합니다..

    • vlm_output (언어 모델 출력): JSON 형식의 객체 탐지 예측을 포함한 VLM 또는 LLM 블록의 문자열 출력입니다. 원시 JSON 문자열이거나 Markdown 코드 블록으로 감싼 JSON일 수 있습니다(예: json {...} ). 형식은 model_type과 task_type에 따라 달라집니다 - 모델과 작업마다 서로 다른 JSON 구조를 생성합니다. 여러 markdown 블록이 존재하면 첫 번째 블록만 파싱됩니다..

    • 클래스 (list_of_values): 분류 모델에서 사용된 모든 클래스 이름의 목록이며, 순서대로 나열됩니다. VLM 출력의 클래스 이름과 탐지 형식의 클래스 ID 사이 매핑을 생성하는 데 필요합니다. 클래스는 인덱스 순서로 ID에 매핑됩니다: 첫 번째 클래스 = ID 0, 두 번째 = ID 1 등. 이 목록에 없는 VLM 출력의 클래스는 class_id = -1이 됩니다. OpenAI, Gemini, Claude 모델에 필요합니다. Florence-2에는 선택 사항입니다(일부 작업은 필요하지 않음). VLM에 탐지하도록 요청한 클래스와 일치해야 합니다..

  • 출력

예시 JSON 정의

v1

시각 언어 모델(VLM)과 대규모 언어 모델(LLM)에서 JSON 문자열을 바운딩 박스, 클래스 이름, 신뢰도를 추출하고 정규화된 좌표를 픽셀 좌표로 변환하며 클래스 이름을 클래스 ID에 매핑하고, 여러 모델 유형과 작업 형식을 처리하여 VLM 기반 객체 탐지, LLM 탐지 파싱, 텍스트-탐지 변환 워크플로를 가능하게 하는 표준화된 객체 탐지 예측 형식으로 파싱합니다.

이 블록의 작동 방식

이 블록은 객체 탐지 예측을 포함한 VLM/LLM 텍스트 출력을 워크플로 탐지 블록과 호환되는 표준화된 객체 탐지 형식으로 변환합니다. 이 블록은:

  1. JSON 형식의 탐지 결과를 포함한 이미지와 VLM 출력 문자열을 받습니다

  2. VLM 출력에서 JSON 콘텐츠를 파싱합니다:

    Markdown으로 감싼 JSON을 처리합니다:

    • Markdown 코드 블록 안에 감싸진 JSON을 찾습니다 (json ... )

    • 이 형식은 LLM/VLM 응답에서 흔합니다

    • 여러 개의 markdown JSON 블록이 발견되면 첫 번째 블록만 파싱합니다

    • markdown 태그 안의 JSON 콘텐츠를 추출합니다

    원시 JSON 문자열을 처리합니다:

    • Markdown 블록이 없으면 전체 문자열을 JSON으로 파싱하려고 시도합니다

    • 표준 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

    • 각 모델/작업 조합은 해당 형식에 맞는 전용 파서를 사용합니다

  4. 모델 유형에 따라 탐지 데이터를 파싱합니다:

    Gemini/Claude 모델의 경우:

    • 파싱된 JSON에서 detections 배열을 추출합니다

    • 이미지 크기를 사용해 정규화된 좌표(0-1 범위)를 픽셀 좌표로 변환합니다

    • 클래스 이름, 신뢰도 점수, 바운딩 박스 좌표를 추출합니다

    • 제공된 클래스 목록을 사용해 클래스 이름을 클래스 ID에 매핑합니다

    • 바운딩 박스, 클래스, 신뢰도를 가진 탐지 객체를 생성합니다

    Florence-2 모델의 경우:

    • Florence-2 형식에 대해 supervision의 내장 LMM 파서를 사용합니다

    • 특수한 파싱으로 다양한 작업 유형을 처리합니다(object detection, open vocabulary, region proposal, OCR 등)

    • region proposal 작업의 경우: 클래스 이름으로 "roi"를 할당합니다

    • open vocabulary 탐지의 경우: 클래스 ID 매핑에 제공된 클래스 목록을 사용합니다

    • 다른 작업의 경우: MD5 기반 클래스 ID 생성 또는 제공된 클래스를 사용합니다

    • Florence-2 탐지의 신뢰도를 1.0으로 설정합니다(모델이 신뢰도를 제공하지 않음)

  5. 좌표를 변환하고 데이터를 정규화합니다:

    • 정규화된 좌표(0-1)를 절대 픽셀 좌표(x_min, y_min, x_max, y_max)로 변환합니다

    • 이미지 너비와 높이를 사용해 좌표를 스케일링합니다

    • 신뢰도 점수를 유효 범위 [0.0, 1.0]로 정규화합니다

    • 범위를 벗어난 신뢰도 값을 클램프합니다

  6. 클래스 이름을 클래스 ID에 매핑합니다:

    • Gemini/Claude의 경우: 제공된 클래스 목록을 사용해 인덱스 매핑(class_name → class_id)을 생성합니다

    • 클래스는 순서대로 매핑됩니다(첫 번째 클래스 = ID 0, 두 번째 = ID 1 등)

    • 제공된 목록에 없는 클래스는 class_id = -1을 받습니다

    • Florence-2의 경우: 작업 유형에 따라 다른 매핑 전략을 사용합니다

  7. 객체 탐지 예측을 구성합니다:

    • 바운딩 박스(xyxy 형식)가 있는 supervision Detections 객체를 생성합니다

    • 클래스 ID, 클래스 이름, 신뢰도 점수를 포함합니다

    • 메타데이터를 추가합니다: 탐지 ID, 추론 ID, 이미지 차원, 예측 유형

    • crop-aware 탐지를 위해 부모 좌표를 첨부합니다

    • 예측을 표준 객체 탐지 형식으로 포맷합니다

  8. 오류를 처리합니다:

    • 다음 값을 설정합니다 error_status JSON 파싱이 실패하면 True로

    • 다음 값을 설정합니다 error_status 탐지 파싱이 실패하면 True로

    • 오류가 발생하면 예측에 대해 None을 반환합니다

    • 추적을 위해 항상 inference_id를 포함합니다

  9. 객체 탐지 예측을 반환합니다:

    • 출력 예측 표준 객체 탐지 형식으로(탐지 블록과 호환)

    • 출력 error_status 파싱 성공/실패를 나타내는

    • 출력 inference_id 추적 및 계보(lineage)용

이 블록은 VLM/LLM의 텍스트 기반 JSON 출력을 다른 객체 탐지 모델 출력과 마찬가지로 워크플로에서 사용할 수 있는 표준화된 탐지 예측으로 변환하여 객체 탐지에 VLM/LLM을 사용할 수 있게 합니다.

일반적인 사용 사례

  • VLM 기반 객체 탐지: VLM 출력을 탐지 예측으로 파싱하여 시각 언어 모델을 객체 탐지에 사용합니다(예: GPT-4V로 객체 탐지, Claude Vision으로 탐지 사용, Gemini 탐지 출력 파싱), VLM 탐지 워크플로를 가능하게 합니다

  • 오픈 어휘 탐지: VLM을 사용자 지정 클래스가 있는 오픈 어휘 객체 탐지에 사용합니다(예: VLM으로 사용자 정의 객체 탐지, 오픈 어휘 탐지 사용, 학습 세트에 없는 객체 탐지), 오픈 어휘 탐지 워크플로를 가능하게 합니다

  • 다중 작업 탐지: VLM을 다양한 탐지 작업에 사용합니다(예: 캡션이 있는 객체 탐지, 구절 기반 탐지, region proposal, 탐지가 포함된 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 ... ). 이 블록은 세 가지 모델 유형: "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 모델에는 필요합니다(클래스 이름을 ID에 매핑하기 위해). 그러나 Florence-2에는 선택 사항입니다(일부 작업은 필요하지 않음). 클래스는 인덱스 순서로 ID에 매핑됩니다(첫 번째 클래스 = 0, 두 번째 = 1 등). 목록에 없는 클래스는 class_id = -1을 받습니다. 이 블록은 표준 형식의 객체 탐지 예측(탐지 블록과 호환), error_status(불리언), 추적용 inference_id(문자열)를 출력합니다.

유형 식별자

단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/vlm_as_detector@v1 워크플로우에 이 블록을 단계로 추가하려면.

속성

이름

유형

설명

참조

name

str

이 단계에 대한 고유 식별자를 입력하세요..

클래스

List[str]

탐지 모델에서 사용된 모든 클래스 이름의 목록이며, 순서대로 나열됩니다. google-gemini 및 anthropic-claude 모델에 필요하며, VLM 출력의 클래스 이름과 탐지 형식의 클래스 ID 사이 매핑을 생성합니다. florence-2 모델에는 선택 사항입니다(오직 open-vocabulary-object-detection 작업에만 필요). 클래스는 인덱스 순서로 ID에 매핑됩니다: 첫 번째 클래스 = ID 0, 두 번째 = 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 출력 형식을 가지므로, 올바른 파싱을 위해 적절한 모델 유형을 지정해야 합니다..

작업 유형

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 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 이미지 (이미지): VLM 예측을 생성하는 데 사용된 입력 이미지입니다. 정규화된 좌표를 픽셀 좌표로 변환하기 위한 이미지 차원(너비, 높이)과 탐지 예측을 위한 메타데이터(parent_id)를 추출하는 데 사용됩니다. 일관성을 유지하려면 VLM/LLM 블록에 제공한 동일한 이미지를 여기에도 사용해야 합니다..

    • vlm_output (언어 모델 출력): JSON 형식의 객체 탐지 예측을 포함한 VLM 또는 LLM 블록의 문자열 출력입니다. 원시 JSON 문자열이거나 Markdown 코드 블록으로 감싼 JSON일 수 있습니다(예: json {...} ). 형식은 model_type과 task_type에 따라 달라집니다 - 모델과 작업마다 서로 다른 JSON 구조를 생성합니다. 여러 markdown 블록이 존재하면 첫 번째 블록만 파싱됩니다..

    • 클래스 (list_of_values탐지 모델에서 사용된 모든 클래스 이름의 목록이며, 순서대로 나열됩니다. google-gemini 및 anthropic-claude 모델에 필요하며, VLM 출력의 클래스 이름과 탐지 형식의 클래스 ID 사이 매핑을 생성합니다. florence-2 모델에는 선택 사항입니다(오직 open-vocabulary-object-detection 작업에만 필요). 클래스는 인덱스 순서로 ID에 매핑됩니다: 첫 번째 클래스 = ID 0, 두 번째 = ID 1 등. 이 목록에 없는 VLM 출력의 클래스는 class_id = -1이 됩니다. VLM에 탐지하도록 요청한 클래스와 일치해야 합니다..

  • 출력

    • error_status (boolean): 불리언 플래그.

    • 예측 (object_detection_prediction): sv.Detections(...) 객체 형식의 감지된 바운딩 박스가 포함된 예측.

    • inference_id (string): 문자열 값.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?