델타 필터
입력 값이 변경된 경우 워크플로 실행을 계속하도록 허용합니다.
입력 값이 이전 상태에서 변경될 때만 워크플로 실행을 트리거하여, 변경 사항을 감지하고 값이 일정할 때 중복 처리를 방지하며, 상태 전환 시에만 하위 단계를 실행해 시스템 효율을 최적화합니다.
이 블록의 작동 방식
이 블록은 값을 모니터링하고 해당 값이 이전 상태와 비교해 변경된 경우에만 워크플로 실행을 계속합니다. 이 블록은:
이미지(비디오 메타데이터 문맥용)와 모니터링할 값을 입력으로 받습니다
이미지에서 비디오 메타데이터를 추출해 비디오 스트림(video_identifier)을 식별합니다
내부 캐시에서 이 비디오 식별자에 대해 이전에 캐시된 값을 가져옵니다
현재 입력 값을 캐시된 이전 값과 비교합니다
값이 변경된 경우(현재 값 ≠ 이전 값):
이 비디오 식별자에 대한 새 값으로 캐시를 업데이트합니다
지정된
next_steps블록으로 실행을 계속하여 다운스트림 처리를 허용합니다
값이 변경되지 않은 경우(현재 값 == 이전 값):
현재 워크플로 분기를 종료하여 중복되는 하위 실행을 방지합니다
다음 단계로 계속하거나 분기를 종료하는 흐름 제어 지시문을 반환합니다
이 블록은 각 비디오 스트림(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(단계): 모니터링된 값이 이전 상태에서 변경될 때 실행할 워크플로 단계 목록입니다. 변경이 감지된 경우에만 이 단계들이 제어 흐름을 받아 조건부 하위 처리를 수행할 수 있습니다. 값이 변경되지 않으면 분기가 종료되므로 이 단계들은 실행되지 않습니다. 각 단계 선택자는 값 전환 시 실행되어야 하는 워크플로의 블록을 참조합니다..
출력
마지막 업데이트
도움이 되었나요?