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

감지 필터

모델 예측을 조건부로 필터링합니다.

사용자 지정 가능한 조건에 따라 탐지 예측을 필터링하여, 지정된 기준(예: 클래스 이름, 신뢰도 점수, 바운딩 박스 속성)을 충족하지 않는 탐지를 선택적으로 제거하고 필터링 로직에 일치하는 탐지만 유지합니다.

이 블록의 작동 방식

이 블록은 유연한 쿼리 언어 시스템을 사용하여 탐지 예측에 조건부 필터링을 적용합니다. 이 블록은:

  1. 탐지 예측(객체 탐지, 인스턴스 분할 또는 키포인트 탐지)과 필터링 작업 정의를 입력으로 받습니다

  2. 에서 지정된 필터링 조건에 대해 각 탐지를 평가합니다 operations 매개변수

  3. 속성 추출 작업을 사용하여 탐지 속성(예: class_name, confidence, bounding box 좌표)을 추출합니다

  4. 이진 문을 사용하여 추출된 속성을 기준과 비교합니다(예: class_name in list, confidence > threshold)

  5. 조건에 맞지 않는 탐지를 걸러내고, 필터 기준을 만족하는 탐지만 유지합니다

  6. 필터 조건을 통과한 탐지만 포함하는 필터링된 예측을 반환합니다

이 블록은 다양한 탐지 속성(클래스 이름, 신뢰도 점수, 바운딩 박스 좌표 등)을 추출하고 조건 논리를 적용하여 탐지를 필터링할 수 있는 쿼리 언어 시스템을 사용합니다. 필터링 작업은 속성이 목록에 포함되는지 확인하거나, 수치 값을 비교하거나, 문자열 일치를 확인하거나, 다른 비교 연산자를 사용할 수 있습니다. operations_parameters 사전은 필터링 작업에서 참조되는 런타임 값(예: 클래스 이름 목록 또는 임계값)을 제공하며, 워크플로 입력이나 계산된 값에 따라 변경될 수 있는 동적 필터링 기준을 가능하게 합니다. 여러 필터링 작업을 함께 연결하여 복잡한 필터링 로직을 만들 수 있습니다.

일반적인 사용 사례

  • 클래스 기반 필터링: 탐지를 필터링하여 특정 객체 클래스만 유지합니다(예: "person"과 "car" 탐지만 유지하고 나머지는 모두 제거). 이를 통해 불필요한 탐지를 제외하면서 관련 객체 유형에 집중한 처리가 가능합니다

  • 신뢰도 임계값 필터링: 낮은 신뢰도의 탐지를 제거하여 탐지 품질을 향상시킵니다(예: confidence > 0.7인 탐지만 유지하고 불확실한 예측은 걸러냄). 이를 통해 후속 처리에서 신뢰할 수 있는 탐지만 사용하게 합니다

  • 다중 기준 필터링: 여러 필터링 조건을 동시에 적용합니다(예: class_name이 허용 목록에 포함되고 AND confidence > threshold인 탐지만 유지). 클래스와 신뢰도 필터링을 결합하여 정밀하게 제어할 수 있습니다

  • 워크플로 상태에 기반한 동적 필터링: 워크플로 입력이나 계산된 값을 사용해 필터링 기준을 결정합니다(예: 사용자 입력에 따라 클래스를 필터링하고, 조명 조건에 따라 신뢰도 임계값을 조정). 이를 통해 변화하는 조건에 반응하는 적응형 필터링이 가능합니다

  • 후속 블록을 위한 사전 처리: 시각화, 카운팅 또는 저장 블록으로 전달하기 전에 탐지를 필터링합니다(예: 카운팅 전에 오탐 제거, 시각화 전에 배경 클래스를 필터링). 이를 통해 노이즈를 줄이고 이후 작업의 정확도를 높입니다

  • 선택적 처리 워크플로: 서로 다른 필터링된 하위 집합을 다른 후속 블록으로 라우팅합니다(예: 높은 신뢰도의 탐지는 한 경로로, 낮은 신뢰도의 탐지는 다른 경로로 필터링). 이를 통해 탐지 품질이나 유형에 따른 조건부 처리가 가능합니다

다른 블록과 연결하기

이 블록의 필터링된 예측은 다음과 연결할 수 있습니다:

  • 탐지 모델 블록 (예: 객체 탐지 모델, 인스턴스 분할 모델, 키포인트 탐지 모델) 클래스, 신뢰도 또는 기타 속성에 따라 필터링된 예측을 받습니다

  • 시각화 블록 (예: 바운딩 박스 시각화, 폴리곤 시각화, 레이블 시각화) 필터링된 탐지만 표시하여 시각적 혼잡을 줄이고 관련 객체에 집중합니다

  • 집계 및 분석 블록 (예: 라인 카운터, 존 체류 시간, 속도) 특정 필터링된 클래스나 신뢰도 수준만 카운트하거나 분석하여 관심 객체에 대한 정확한 지표를 보장합니다

  • 데이터 저장 블록 (예: 로컬 파일 싱크, CSV 포맷터, Roboflow 데이터셋 업로드, 웹훅 싱크) 필터링된 탐지 결과만 저장하거나 전송하여 관련 없는 탐지를 제외함으로써 저장 공간과 대역폭 사용을 줄입니다

  • 기타 변환 블록 (예: 탐지 병합, 탐지 변환, 탐지 오프셋) 필터링된 하위 집합에 추가 변환을 적용하여 필터링된 탐지에 대해 복잡한 처리 파이프라인을 가능하게 합니다

  • 흐름 제어 블록 (예: Continue If, Rate Limiter) 필터링된 탐지가 특정 기준을 충족하는지 여부에 따라 후속 처리를 조건부로 트리거하여, 필터링 결과에 기반한 조건부 워크플로를 가능하게 합니다

유형 식별자

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

속성

이름

유형

설명

참조

name

str

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

operations

List[Union[ClassificationPropertyExtract, ConvertDictionaryToJSON, ConvertImageToBase64, ConvertImageToJPEG, DetectionsFilter, DetectionsOffset, DetectionsPropertyExtract, DetectionsRename, DetectionsSelection, DetectionsShift, DetectionsToDictionary, Divide, ExtractDetectionProperty, ExtractFrameMetadata, ExtractImageProperty, LookupTable, Multiply, NumberRound, NumericSequenceAggregate, PickDetectionsByParentClass, RandomNumber, SequenceAggregate, SequenceApply, SequenceElementsCount, SequenceLength, SequenceMap, SortDetections, StringMatches, StringSubSequence, StringToLowerCase, StringToUpperCase, TimestampToISOFormat, ToBoolean, ToNumber, ToString]]

쿼리 언어 시스템을 사용한 필터링 로직 정의입니다. StatementGroup 구문을 사용하여 조건 논리를 정의하는 하나 이상의 필터링 작업(예: DetectionsFilter)을 지정합니다. 각 작업은 탐지 속성(class_name, confidence, 좌표 등)을 추출하고 이진 문(예: class_name in list, confidence > threshold)으로 비교할 수 있습니다. 여러 작업을 연결하여 복잡한 필터링 로직을 만들 수 있습니다. 작업은 런타임 값에 접근하기 위해 operations_parameters의 매개변수 이름을 참조합니다..

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

입력 및 출력 바인딩

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

입력 및 출력 바인딩
  • 입력

    • predictions (Union[instance_segmentation_prediction, keypoint_detection_prediction, object_detection_prediction]): 필터링할 탐지 예측(객체 탐지, 인스턴스 분할 또는 키포인트 탐지)입니다. 각 탐지는 operations 매개변수에 지정된 필터링 조건에 대해 평가됩니다. 필터 기준과 일치하는 탐지만 출력에 포함됩니다. 배치 처리를 지원하여 여러 탐지 집합을 동시에 필터링할 수 있습니다..

    • operations_parameters (*): 작업에 참조된 매개변수 이름을 워크플로의 실제 값에 매핑하는 사전입니다. 이 매개변수들은 필터링 작업에서 사용되는 런타임 값(예: 클래스 이름 목록, 신뢰도 임계값)을 제공합니다. 키는 작업 정의에서 사용된 매개변수 이름과 일치하며, 값은 워크플로 입력, 단계 출력 또는 계산된 값을 참조하는 선택자입니다. 예: {'classes': '$inputs.allowed_classes', 'threshold': 0.7} 여기서 'classes'와 'threshold'는 작업에서 참조됩니다..

  • 출력

    • 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 정의

마지막 업데이트

도움이 되었나요?