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

감지 클래스 대체

연결된 분류 모델이 예측한 클래스로 감지 클래스들을 대체합니다.

검출 바운딩 박스의 클래스 레이블을, 잘라낸 영역에 적용된 분류 모델이 예측한 클래스로 대체하여, 일반적인 검출 결과와 특화된 분류 예측을 결합함으로써 2단계 검출 워크플로, 세분화된 분류, 그리고 일반 검출을 특화된 분류기의 구체적인 클래스 레이블로 정교화하는 클래스 정제 워크플로를 가능하게 합니다.

이 블록의 작동 방식

이 블록은 검출 모델(바운딩 박스와 일반 클래스 포함)의 결과를 분류 예측(잘라낸 영역에 적용된 특화 분류기에서 나온 결과)과 결합하여, 일반 클래스 레이블을 구체적인 레이블로 대체합니다. 이 블록은:

  1. 서로 다른 차원 수준을 가진 두 입력을 받습니다:

    • object_detection_predictions: 일반 클래스(예: "dog", "person", "vehicle")가 포함된 바운딩 박스를 담는 검출 결과(차원 수준 1)

    • classification_predictions: 각 검출의 잘라낸 영역에 적용된 분류기의 분류 결과(예: 개 검출의 경우 "Golden Retriever", "Labrador")입니다. 문자열 목록일 수도 있습니다(예: OCR에서 나온 결과).

  2. 분류 결과를 검출과 매칭합니다:

    • 사용합니다 PARENT_ID_KEY (detection_id)를 분류 예측에서 사용하여 각 분류 결과를 원본 검출과 연결하거나,

    • 예측이 부모 ID가 없는 원시 문자열/목록인 경우 위치 기반 매핑(순서 기반)을 사용합니다.

  3. 각 분류 예측에서 앞쪽 클래스 정보를 추출합니다:

    단일 레이블 분류의 경우:

    • 분류 결과에서 "top" 클래스(예측 클래스)를 사용합니다

    • 분류 예측에서 클래스 이름, 클래스 ID, 신뢰도를 추출합니다

    다중 레이블 분류의 경우:

    • 가장 높은 신뢰도 점수를 가진 클래스를 찾습니다

    • 가장 높은 신뢰도의 레이블을 대체 클래스으로 사용합니다

    • 가장 높은 신뢰도 예측에서 클래스 이름, 클래스 ID, 신뢰도를 추출합니다

    문자열 예측의 경우:

    • 문자열을 클래스 이름으로 사용합니다

    • 기본 신뢰도 1.0과 클래스 ID 0을 할당합니다

  4. 누락된 분류를 처리합니다:

    • 대응되는 분류 예측이 없는 검출은 기본적으로 버려집니다

    • 만약 fallback_class_name 이 제공되면, 분류가 없는 검출은 버려지지 않고 대체 클래스를 사용합니다

    • 대체 클래스 ID는 제공된 값으로 설정되거나, sys.maxsize 가 지정되지 않았거나 음수인 경우

  5. 검출을 필터링합니다:

    • 분류 결과가 있는 검출만 유지합니다(또는 지정 시 대체값 사용)

    • 분류 예측과 매칭되지 않는 검출을 제거합니다

  6. 클래스 정보를 대체합니다:

    • 검출의 클래스 이름을 분류 클래스 이름으로 대체합니다

    • 검출의 클래스 ID를 분류 클래스 ID로 대체합니다

    • 검출의 신뢰도 점수를 분류 신뢰도 점수로 대체합니다

    • 새 클래스 정보를 반영하도록 모든 검출 메타데이터를 업데이트합니다

  7. 새 검출 ID를 생성합니다:

    • 업데이트된 검출에 대해 새로운 고유 검출 ID를 생성합니다(중복 ID 충돌 방지)

    • 클래스 대체 후 검출 ID가 고유하도록 보장합니다

  8. 업데이트된 검출을 반환합니다:

    • 바운딩 박스 좌표와 다른 속성은 유지한 채 대체된 클래스를 포함한 검출을 출력합니다

    • 출력 차원은 입력 검출 예측의 차원 수준 1과 일치합니다

이 블록은 일반 검출 모델이 객체를 찾고 특화 분류 모델이 세분화된 레이블을 제공하는 2단계 검출 워크플로를 가능하게 합니다. 이는 공간 정보를 잃지 않으면서 일반적인 위치 정보(예: "dog")와 구체적인 분류(예: "Golden Retriever", "German Shepherd")가 함께 필요할 때 유용합니다.

일반적인 사용 사례

  • 2단계 검출 및 분류: 일반 검출과 특화 분류를 결합하여 세분화된 레이블링을 수행합니다(예: "dog"를 검출한 다음 품종 분류, "vehicle"을 검출한 다음 유형 분류, "person"을 검출한 다음 연령대 분류). 이를 통해 2단계 검출 워크플로를 가능하게 합니다

  • 클래스 정제: 특화 모델의 구체적인 분류로 일반 클래스 레이블을 정제합니다(예: "animal"을 특정 종으로 정제, "vehicle"을 특정 모델로 정제, "food"를 특정 요리로 정제). 이를 통해 클래스 정제 워크플로를 가능하게 합니다

  • 다중 모델 워크플로: 검출 모델과 분류 모델을 결합하여 두 모델의 강점을 모두 활용합니다(예: 위치 정보는 일반 검출기로, 식별은 특화 분류기로 수행, 거친 모델과 세밀한 모델 결합, 일반 검출기와 특화 분류기 활용). 이를 통해 다중 모델 워크플로를 가능하게 합니다

  • 계층적 분류: 검출이 상위 수준 클래스를 제공하고 분류가 세부 하위 클래스를 제공하는 계층적 분류를 적용합니다(예: "mammal"을 검출한 다음 종 분류, "plant"를 검출한 다음 품종 분류, "structure"를 검출한 다음 유형 분류). 이를 통해 계층적 분류 워크플로를 가능하게 합니다

  • 크롭 기반 분류: 잘라낸 영역의 분류 결과를 사용해 검출 결과를 향상시킵니다(예: 크롭을 분류하여 검출 레이블 개선, 검출된 영역에 특화 분류기 적용, 크롭 분류로 검출 정제). 이를 통해 크롭 기반 분류 워크플로를 가능하게 합니다

  • 세분화된 객체 인식: 위치 정보와 세부 분류를 결합하여 세분화된 인식을 가능하게 합니다(예: 특정 제품 모델 인식, 특정 동물 품종 식별, 특정 차량 유형 분류). 이를 통해 세분화된 인식 워크플로를 가능하게 합니다

다른 블록과 연결하기

이 블록은 검출 및 분류 예측을 받아 클래스가 대체된 검출을 생성합니다:

  • 검출 및 분류 모델 블록 이후에 일반 검출과 특화 분류를 결합합니다(예: 객체 검출 + 분류로 정제된 검출 생성, 검출 모델 + 분류기로 레이블이 지정된 검출 생성). 이를 통해 검출-분류 융합 워크플로를 가능하게 합니다

  • 크롭 블록 이후에 검출에서 크롭을 생성하여 분류에 사용하는 경우(예: 검출을 크롭한 뒤 크롭을 분류, 분류용 크롭 생성 후 클래스 대체). 이를 통해 크롭-분류 워크플로를 가능하게 합니다

  • 시각화 블록 앞에 정제된 클래스를 가진 검출을 표시하기 위해(예: 정제된 검출 시각화, 구체적 레이블이 있는 검출 표시, 분류가 강화된 검출 표시). 이를 통해 정제된 검출 시각화 워크플로를 가능하게 합니다

  • 필터링 블록 전에 정제된 클래스를 가진 검출을 필터링하기 위해(예: 특정 클래스로 필터링, 정제된 검출 필터링, 분류된 검출에 필터 적용). 이를 통해 정제된 검출 필터링 워크플로를 가능하게 합니다

  • 분석 블록 앞에 정제된 검출에 대한 분석을 수행하기 위해(예: 특정 클래스 분석, 분류된 검출에 대한 분석 수행, 정제된 검출 지표 추적). 이를 통해 정제된 검출 분석 워크플로를 가능하게 합니다

  • 워크플로 출력에서 정제된 검출을 최종 출력으로 제공하기 위해(예: 2단계 검출 출력, 분류가 강화된 검출 출력, 정제된 검출 결과). 이를 통해 정제된 검출 출력 워크플로를 가능하게 합니다

요구 사항

이 블록은 바운딩 박스가 있는 객체 검출 예측과 해당 바운딩 박스의 크롭에서 나온 분류 예측을 필요로 합니다. 분류 예측에는 PARENT_ID_KEY (detection_id)가 있어 분류를 원본 검출과 연결해야 합니다. 이 블록은 서로 다른 차원 수준을 허용합니다: 검출 예측은 수준 1, 분류 예측은 수준 2(크롭에서 온 결과)입니다. 단일 레이블 분류의 경우 "top" 클래스가 사용됩니다. 다중 레이블 분류의 경우 가장 높은 신뢰도의 클래스가 선택됩니다. 분류 결과가 없는 검출은 fallback_class_name 가 제공되지 않는 한 버려집니다. 이 블록은 클래스, 클래스 ID, 신뢰도가 대체된 검출을 출력하며, 새로운 검출 ID가 생성됩니다. 출력 차원은 입력 검출 예측(수준 1)과 일치합니다.

유형 식별자

step에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/detections_classes_replacement@v1 를 워크플로에 단계로 추가합니다.

속성

이름

유형

설명

참조

name

str

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

fallback_class_name

str

대응되는 분류 예측이 없는 검출에 사용할 선택적 클래스 이름입니다. 제공되지 않으면(기본값 None) 분류가 없는 검출은 버려집니다. 제공되면, 분류가 없는 검출은 제거되지 않고 이 대체 클래스 이름을 사용합니다. 분류가 실패했거나 사용할 수 없을 때 검출을 보존하는 데 유용합니다..

fallback_class_id

int

분류 예측이 없는 검출에 대해 fallback_class_name과 함께 사용할 선택적 클래스 ID입니다. 지정되지 않았거나 음수이면 클래스 ID는 sys.maxsize로 설정됩니다. fallback_class_name이 제공될 때만 사용됩니다. 모델에서 사용하는 클래스 ID 매핑과 일치해야 합니다..

해당 참조 열은 워크플로 런타임에서 사용할 수 있는 동적 값으로 속성을 매개변수화할 수 있음을 나타냅니다. 자세한 내용은 워크플로 런타임. 자세한 내용은 바인딩 를 참조하세요.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 종류에 따라 달라집니다. 어떤 바인딩 종류가 있는지 확인하세요 감지 클래스 대체 버전 v1 가 있습니다.

입력 및 출력 바인딩
  • 입력

    • object_detection_predictions (Union[instance_segmentation_prediction, keypoint_detection_prediction, object_detection_prediction]): 일반 클래스 레이블이 포함된 바운딩 박스를 가진 검출 예측(객체 검출, 인스턴스 분할 또는 키포인트 검출)으로, 분류 결과로 대체됩니다. 이러한 검출은 크롭되어 분류된 영역에 해당해야 합니다. 검출에는 분류 예측의 PARENT_ID_KEY와 일치하는 detection ID가 있어야 합니다. 검출은 차원 수준 1에 있어야 합니다..

    • classification_predictions (Union[classification_prediction, list_of_values, 문자열]): 검출 클래스 이름을 대체할 레이블입니다. 분류 예측(parent_id로 연결됨), 일반 문자열 또는 문자열 목록(예: Gemini 같은 OCR/LMM 출력)을 허용합니다. 문자열 입력은 검출과 위치 기반으로 매칭됩니다(인덱스 기준 1:1). 분류 입력은 단일 레이블('top' 클래스)과 다중 레이블(가장 신뢰도 높은 클래스)을 지원합니다..

    • fallback_class_name (문자열): 대응되는 분류 예측이 없는 검출에 사용할 선택적 클래스 이름입니다. 제공되지 않으면(기본값 None) 분류가 없는 검출은 버려집니다. 제공되면, 분류가 없는 검출은 제거되지 않고 이 대체 클래스 이름을 사용합니다. 분류가 실패했거나 사용할 수 없을 때 검출을 보존하는 데 유용합니다..

    • fallback_class_id (정수): 분류 예측이 없는 검출에 대해 fallback_class_name과 함께 사용할 선택적 클래스 ID입니다. 지정되지 않았거나 음수이면 클래스 ID는 sys.maxsize로 설정됩니다. fallback_class_name이 제공될 때만 사용됩니다. 모델에서 사용하는 클래스 ID 매핑과 일치해야 합니다..

  • 출력

    • predictions (Union[object_detection_prediction, instance_segmentation_prediction, keypoint_detection_prediction]): 탐지된 경계 상자를 sv.Detections(...) 객체 형태로 반환하는 예측, 만약 object_detection_prediction 또는 탐지된 경계 상자와 세분화 마스크를 sv.Detections(...) 객체 형태로 반환하는 예측, 만약 instance_segmentation_prediction 또는 탐지된 바운딩 박스와 탐지된 키포인트가 sv.Detections(...) 객체 형태로 포함된 예측인 경우 keypoint_detection_prediction.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?