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

델타 필터

입력 값이 변경된 경우 워크플로 실행을 계속하도록 허용합니다.

입력 값이 이전 상태에서 변경될 때만 워크플로 실행을 트리거하여, 변경 사항을 감지하고 값이 일정할 때 중복 처리를 방지하며, 상태 전환 시에만 하위 단계를 실행해 시스템 효율을 최적화합니다.

이 블록의 작동 방식

이 블록은 값을 모니터링하고 해당 값이 이전 상태와 비교해 변경된 경우에만 워크플로 실행을 계속합니다. 이 블록은:

  1. 이미지(비디오 메타데이터 문맥용)와 모니터링할 값을 입력으로 받습니다

  2. 이미지에서 비디오 메타데이터를 추출해 비디오 스트림(video_identifier)을 식별합니다

  3. 내부 캐시에서 이 비디오 식별자에 대해 이전에 캐시된 값을 가져옵니다

  4. 현재 입력 값을 캐시된 이전 값과 비교합니다

  5. 값이 변경된 경우(현재 값 ≠ 이전 값):

    • 이 비디오 식별자에 대한 새 값으로 캐시를 업데이트합니다

    • 지정된 next_steps 블록으로 실행을 계속하여 다운스트림 처리를 허용합니다

  6. 값이 변경되지 않은 경우(현재 값 == 이전 값):

    • 현재 워크플로 분기를 종료하여 중복되는 하위 실행을 방지합니다

  7. 다음 단계로 계속하거나 분기를 종료하는 흐름 제어 지시문을 반환합니다

이 블록은 각 비디오 스트림(video_identifier으로 식별됨)별로 별도의 캐시된 값을 유지하여 여러 비디오 소스 전반에서 값 변경을 독립적으로 추적할 수 있게 합니다. 이렇게 비디오별로 추적하므로 서로 다른 비디오 스트림으로 전환할 때 필터가 적절하게 재설정됩니다. 이 블록은 숫자, 문자열, 감지 횟수 등 어떤 값 유형이든 모니터링할 수 있어 카운터, 메트릭, 감지 결과 또는 기타 워크플로 데이터의 변경을 감지하는 데 유용합니다. 값이 실제로 변경될 때만 하위 블록을 트리거함으로써, 델타 필터는 값이 일정할 때 불필요한 처리를 방지하며, 특히 많은 프레임에서 동일한 감지 횟수나 메트릭 값이 나올 수 있는 비디오 워크플로에서 매우 유용합니다.

일반적인 사용 사례

  • 카운터 변경 감지: 카운터 값이 변경될 때만 작업을 트리거합니다(예: 라인 카운터 count_in이 5에서 6으로 바뀔 때 데이터 로깅을 실행하고, count가 6으로 유지되면 처리를 건너뜀). 값이 안정적일 때 중복 쓰기나 업데이트를 방지합니다

  • 상태 전환 모니터링: 시스템 상태나 감지 결과의 전환을 감지하고 상태가 변경될 때만 워크플로를 트리거합니다(예: 탐지 클래스가 "비어 있음"에서 "점유됨"으로 변경될 때 알림을 실행하고, 상태가 "점유됨"으로 유지되면 건너뜀). 동일한 상태에 대해 반복 작업을 방지합니다

  • 조건부 데이터 로깅: 값이 변경될 때만 데이터베이스, CSV 파일 또는 외부 시스템에 기록합니다(예: count 변경을 OPC 또는 PLC 시스템에 로그하고, count가 변경되지 않으면 로깅을 건너뜀). 저장 공간과 네트워크 오버헤드를 줄입니다

  • 이벤트 기반 알림: 값이 전환될 때만 경고나 알림을 보냅니다(예: zone count가 변경될 때 이메일 알림을 트리거하고, count가 일정하면 스팸을 방지함). 알림이 반복된 상태가 아니라 의미 있는 변경을 나타내도록 보장합니다

  • 최적화된 처리 파이프라인: 모니터링된 값이 변경되지 않았을 때 하위 처리를 건너뛰어 비디오 워크플로의 계산 부담을 줄입니다(예: 프레임 간 감지 횟수가 변경되지 않으면 비용이 큰 분석을 건너뜀). 전체 워크플로 효율을 향상시킵니다

  • 멀티 스트림 변경 추적: 여러 비디오 스트림 전반에서 값 변경을 독립적으로 모니터링합니다(예: 서로 다른 카메라 피드의 zone count를 각각 추적). 비디오별 자동 캐싱을 통해 각 스트림의 변경을 올바르게 감지합니다

다른 블록에 연결하기

이 블록은 값을 모니터링하고 워크플로 실행 흐름을 제어하며, 다음과 연결할 수 있습니다:

  • 카운팅 또는 메트릭 블록 뒤에 (예: Line Counter, Time in Zone, Velocity, Detection Filter)에서 카운트, 메트릭 또는 집계 값이 변경되는 시점을 감지하고, 값 전환에 따라 하위 처리를 조건부로 트리거합니다

  • 감지 블록 뒤에 (예: Object Detection, Classification, Keypoint Detection)에서 감지 결과, 클래스 변경 또는 신뢰도 메트릭을 모니터링하고 이전 프레임과 비교해 감지 결과가 변경될 때만 작업을 실행합니다

  • 데이터 처리 블록 다음 (예: Property Definition, Expression, Delta Filter)에서 계산된 값이나 처리된 메트릭을 추적하고, 이러한 계산된 값이 전환될 때만 워크플로를 트리거하여 중복 처리를 방지합니다

  • 데이터 저장 블록 앞에서 (예: Local File Sink, CSV Formatter, Roboflow Dataset Upload, Webhook Sink)에서 모니터링된 값이 변경될 때만 조건부로 데이터를 기록하거나 저장하여, 값이 일정할 때 중복 항목이나 불필요한 쓰기를 방지합니다

  • 알림 블록 앞에서 (예: Email Notification, Slack Notification, Twilio SMS Notification)에서 의미 있는 변경이 발생할 때만 알림을 트리거하여(예: count 변경, 상태 전환), 값이 안정적일 때 알림 스팸을 방지합니다

  • 비디오 처리 워크플로에서 프레임별 값이 여러 프레임 동안 일정할 수 있는 경우, 이 블록을 사용해 변경을 효율적으로 감지하고 필요한 경우에만 비용이 큰 하위 작업을 트리거하여 리소스 사용을 최적화합니다

유형 식별자

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

속성

이름

유형

설명

참조

name

str

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

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

런타임 호환성

소프트 - 런타임 호스팅 서버리스, 전용 배포; 실행 원격; 입력 비디오 : 이 블록은 프로세스 메모리에서 비디오별 상태를 유지합니다(video_metadata.video_identifier로 키 지정). 상태 비저장 또는 다중 복제 HTTP 런타임에서 원격 단계 실행을 사용하면 연속 요청이 서로 다른 작업자 프로세스에서 처리될 수 있으므로, 상태가 호출 사이에 초기화되어 추적 / 카운팅 / 집계를 위한 출력은 의미가 없어집니다. 안정적인 프레임 간 결과를 위해 지속적인 WebRTC 세션에서 로컬 단계 실행을 사용하세요.

소프트 - 입력 이미지 : 이 블록은 비디오나 반복 프레임 워크플로의 시간적 문맥에 의존합니다. 정지 이미지/사진에는 추적, 비교, 집계 또는 시각화할 의미 있는 히스토리가 없으므로 이 블록은 거의 또는 전혀 이점을 제공하지 않습니다.

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 델타 필터 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 이미지 (이미지): 사용할 수 없음.

    • (*): 변경을 모니터링할 값입니다. 워크플로 입력 또는 단계 출력의 숫자, 문자열, 감지 횟수, 메트릭 등 어떤 데이터 유형이든 될 수 있습니다. 이 워크플로 분기는 이 값이 현재 비디오 스트림에 대해 이전에 캐시된 값과 다를 때만 next_steps로 계속됩니다. 값이 동일하면 중복 처리를 피하기 위해 분기가 종료됩니다. 예: 라인 카운터 count($steps.line_counter.count_in)를 모니터링하고 count가 변경될 때만 작업을 트리거합니다..

    • next_steps (단계): 모니터링된 값이 이전 상태에서 변경될 때 실행할 워크플로 단계 목록입니다. 변경이 감지된 경우에만 이 단계들이 제어 흐름을 받아 조건부 하위 처리를 수행할 수 있습니다. 값이 변경되지 않으면 분기가 종료되므로 이 단계들은 실행되지 않습니다. 각 단계 선택자는 값 전환 시 실행되어야 하는 워크플로의 블록을 참조합니다..

  • 출력

예시 JSON 정의

마지막 업데이트

도움이 되었나요?