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

감지 안정화기

부드럽게 하는 알고리즘을 적용해 비디오 프레임 간 노이즈와 깜빡임을 줄입니다.

Kalman 필터를 사용해 객체 속도를 예측하고, 지수 이동 평균으로 바운딩 박스 위치를 부드럽게 하며, 일시적으로 누락된 검출을 복원하는 갭 채우기를 통해 비디오 프레임 전반의 추적된 검출에서 노이즈와 깜빡임을 줄이기 위해 평활화 알고리즘을 적용합니다. 이를 통해 추적 안정성과 더 부드러운 시각화 워크플로를 개선합니다.

이 블록의 작동 방식

이 블록은 흔들림을 줄이고, 위치를 부드럽게 하며, 객체가 검출에서 일시적으로 사라질 때 갭을 채워 추적된 검출을 안정화합니다. 이 블록은:

  1. 고유한 tracker ID가 있는 추적된 탐지 예측과 비디오 메타데이터가 포함된 이미지를 받습니다

  2. 이미지에서 비디오 메타데이터를 추출합니다:

    • video_metadata에 접근해 video_identifier를 가져옵니다

    • video_identifier를 사용하여 서로 다른 비디오에 대해 별도의 안정화 상태를 유지합니다

  3. 탐지 결과에 tracker ID가 있는지 검증합니다(프레임 간 객체 움직임 추적에 필요함)

  4. 비디오에 대한 안정화 상태를 초기화하거나 가져옵니다:

    • 비디오별로 각 tracker_id에 대한 마지막으로 알려진 검출 캐시를 유지합니다

    • 비디오별 속도 예측을 위한 칼만 필터를 생성하거나 가져옵니다

    • video_identifier를 사용해 각 비디오에 대해 별도의 상태를 저장합니다

  5. 기존 추적에 대한 객체 속도를 측정합니다:

    • 현재 프레임의 바운딩 박스 중심과 이전 프레임의 중심을 비교하여 속도를 계산합니다

    • 현재 프레임과 이전 프레임 모두에 존재하는 객체에 대해 변위(위치 변화)를 계산합니다

    • 속도 측정값은 칼만 필터를 업데이트하는 데 사용됩니다

  6. 속도 측정값으로 칼만 필터를 업데이트합니다:

    • 과거 측정값을 바탕으로 평활화된 속도를 예측하기 위해 칼만 필터링을 사용합니다

    • 속도 측정값의 슬라이딩 윈도우를 유지합니다(smoothing_window_size로 제어됨)

    • 칼만 필터 내부에 지수 이동 평균을 적용해 속도 추정치를 부드럽게 합니다

    • 검출 부정확성과 프레임 간 변동에서 발생하는 노이즈를 걸러냅니다

  7. 현재 프레임에 존재하는 객체의 바운딩 박스를 부드럽게 합니다:

    • 바운딩 박스 좌표에 지수 이동 평균 평활화를 적용합니다

    • bbox_smoothing_coefficient를 사용하여 이전 프레임 위치와 현재 프레임 위치를 결합합니다

    • 공식: smoothed_bbox = alpha * current_bbox + (1 - alpha) * previous_bbox

    • 검출 변동으로 인한 흔들림과 깜빡임을 줄입니다

  8. 누락된 검출의 위치를 예측합니다:

    • 칼만 필터가 예측한 속도를 사용해 사라진 객체의 위치를 추정합니다

    • 예측된 속도를 마지막으로 알려진 바운딩 박스 위치에 적용합니다

    • 현재 프레임에서 일시적으로 누락된 검출을 복원하여 갭을 채웁니다

    • 지수 이동 평균을 사용해 예측된 위치를 부드럽게 합니다

  9. 추적 상태를 관리합니다:

    • 다음 프레임 계산을 위해 현재 프레임의 검출로 캐시를 업데이트합니다

    • smoothing_window_size 프레임보다 더 오래 누락된 객체의 추적 항목을 제거합니다

    • video_identifier별로 별도의 상태를 유지합니다

  10. 안정화된 검출을 병합하여 반환합니다:

    • 평활화된 검출(현재 프레임)과 예측된 검출(누락된 객체)을 결합합니다

    • 노이즈가 줄고 갭이 채워진 안정화된 검출 객체를 출력합니다

    • 모든 검출은 일관된 추적을 위해 tracker ID를 유지합니다

이 블록은 서로 보완적인 두 가지 평활화 기법을 사용합니다: 칼만 필터링 은 속도 예측(객체가 얼마나 빠르게 움직이는지 추정)용이고, 지수 이동 평균 은 위치 평활화(바운딩 박스 흔들림 감소)용입니다. 칼만 필터는 속도 측정값의 이력을 유지하고 통계적 추정을 사용해 향후 속도를 예측하면서 노이즈를 걸러냅니다. 지수 이동 평균은 현재 위치와 이전 위치를 혼합하여 바운딩 박스 좌표를 부드럽게 합니다. 갭 채우기는 예측된 속도를 사용해 일시적으로 사라진 검출을 복원하여 추적 연속성을 유지하는 데 도움을 줍니다. 참고: 이 블록은 객체가 일관되게 검출되지 않더라도 갭을 채우려 하기 때문에 불안정한 트래커에 대해 짧게 지속되는 바운딩 박스를 생성할 수 있습니다.

일반적인 사용 사례

  • 비디오 시각화: 더 부드러운 시각화를 위해 비디오 주석의 깜빡임과 흔들림을 줄입니다(예: 바운딩 박스 이동을 부드럽게 하고, 주석 노이즈를 줄이며, 비디오 시각화 품질을 개선), 안정적인 비디오 시각화 워크플로를 가능하게 합니다

  • 추적 안정성: 검출이 노이즈가 많거나 일관되지 않을 때 추적 안정성을 개선합니다(예: 노이즈가 있는 검출을 안정화하고, 추적 흔들림을 줄이며, 추적 연속성을 개선), 안정적인 추적 워크플로를 가능하게 합니다

  • 일시적 가림 처리: 객체가 일시적으로 가려지거나 검출에서 누락될 때 갭을 채웁니다(예: 짧은 가림 동안 추적을 유지하고, 검출 갭을 채우며, 추적 연속성을 보존), 가림 처리 워크플로를 가능하게 합니다

  • 실시간 모니터링: 실시간 모니터링 애플리케이션에서 시각적 품질을 개선합니다(예: 라이브 비디오 주석을 부드럽게 하고, 모니터링 화면의 깜빡임을 줄이며, 실시간 시각화를 개선), 안정적인 실시간 모니터링 워크플로를 가능하게 합니다

  • 분석 정확도: 안정적인 검출 위치에 의존하는 분석 계산의 노이즈를 줄입니다(예: 위치 기반 분석 개선, 측정 노이즈 감소, 이동 계산 안정화), 정확한 분석 워크플로를 가능하게 합니다

  • 품질 관리: 하위 처리용 검출 품질을 개선합니다(예: 분석 전에 검출을 부드럽게 하고, 더 나은 처리를 위해 노이즈를 줄이며, 다른 블록의 입력을 안정화), 품질 개선 워크플로를 가능하게 합니다

다른 블록에 연결하기

이 블록은 추적된 검출과 이미지를 받아 안정화된 tracked_detections를 생성합니다:

  • Byte Tracker 블록 이후 추적된 검출을 안정화하기 위해(예: 추적된 객체 위치를 부드럽게 하고, 추적 흔들림을 줄이며, 추적 갭을 채움), 추적 안정화 워크플로를 가능하게 합니다

  • 객체 탐지 또는 인스턴스 분할 블록 이후 추적을 활성화하여 검출을 안정화하기 위해(예: 검출 위치를 부드럽게 하고, 검출 노이즈를 줄이며, 추적 안정성을 개선), 검출 안정화 워크플로를 가능하게 합니다

  • 시각화 블록 이전 안정화된 검출을 표시하기 위해(예: 부드러운 바운딩 박스를 시각화하고, 안정적인 주석을 표시하며, 갭이 채워진 검출을 보여줌), 안정적인 시각화 워크플로를 가능하게 합니다

  • 분석 블록 이전 분석용으로 안정적인 입력을 제공하기 위해(예: 안정화된 위치를 분석하고, 부드러운 이동 데이터를 처리하며, 갭이 채워진 검출을 사용), 안정적인 분석 워크플로를 가능하게 합니다

  • 속도 또는 경로 분석 블록 이전에 측정 정확도를 개선하기 위해(예: 안정된 위치에서 속도를 계산하고, 부드러운 궤적에서 경로를 분석하며, 갭이 채워진 검출에서 측정), 정확한 측정 워크플로를 가능하게 합니다

  • 비디오 처리 파이프라인에서 하위 처리에서 검출 안정성이 필요한 경우(예: 처리 체인에서 검출을 안정화하고, 분석 품질을 개선하며, 파이프라인의 노이즈를 줄임), 안정적인 비디오 처리 워크플로를 가능하게 합니다

요구 사항

이 블록은 tracker_id 정보가 있는 추적된 검출이 필요합니다(검출은 Byte Tracker와 같은 추적 블록에서 와야 합니다). 이미지의 video_metadata에는 서로 다른 비디오에 대해 별도의 안정화 상태를 유지하기 위한 video_identifier가 포함되어야 합니다. 이 블록은 각 비디오에 대해 프레임 전반에 걸친 지속적인 안정화 상태를 유지하므로, 프레임이 순차적으로 처리되는 비디오 워크플로에서 사용해야 합니다. 최적의 안정화를 위해서는 유효한 tracker ID와 함께 프레임 전반에 걸쳐 검출이 일관되게 제공되어야 합니다. smoothing_window_size는 칼만 필터에 사용할 과거 속도 측정값의 수와 누락된 검출을 얼마나 오래 유지할지를 제어합니다. bbox_smoothing_coefficient(0-1)는 현재 위치와 이전 위치 간의 균형을 제어합니다. 값이 낮을수록 더 많이 부드럽게 되지만 변화에 대한 응답은 느려지고, 값이 높을수록 덜 부드럽지만 응답은 빨라집니다. 참고: 이 블록은 객체가 일관되게 검출되지 않더라도 갭을 채우려 하기 때문에 불안정한 트래커에 대해 짧게 지속되는 바운딩 박스를 생성할 수 있습니다.

유형 식별자

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

속성

이름

유형

설명

참조

name

str

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

smoothing_window_size

정수

칼만 필터에서 속도 평활화를 위한 슬라이딩 윈도우의 크기이며, 얼마나 많은 과거 속도 측정값을 사용할지 제어합니다. 또한 누락된 검출이 제거되기 전까지 얼마나 오래 유지할지도 결정합니다. 값이 클수록 더 많이 부드럽게 되지만 변화에 대한 적응은 느려집니다. 값이 작을수록 덜 부드럽지만 더 빨리 적응합니다. 이 수보다 더 오래 누락된 검출은 추적 상태에서 제거됩니다. 일반적인 범위: 3-10 프레임..

bbox_smoothing_coefficient

float

바운딩 박스 위치 평활화를 위한 지수 이동 평균 계수(alpha)로, 범위는 0.0-1.0입니다. 현재 및 이전 바운딩 박스 위치 간의 혼합 비율을 제어합니다: smoothed_bbox = alpha * current + (1-alpha) * previous. 값이 낮을수록(0에 가까울수록) 더 많이 부드럽게 되어 변화에 대한 응답은 느리고 흔들림이 적습니다. 값이 높을수록(1에 가까울수록) 덜 부드럽게 되어 변화에 대한 응답은 빠르지만 흔들림이 더 큽니다. 기본값 0.2는 부드러움과 반응성의 균형을 맞춥니다. 일반적인 범위: 0.1-0.5..

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

런타임 호환성

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

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

입력 및 출력 바인딩

사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 감지 안정화기 버전 v1 을 가지고 있는지.

입력 및 출력 바인딩
  • 입력

    • 이미지 (이미지): 임베드된 비디오 메타데이터가 있는 이미지입니다. video_metadata에는 서로 다른 비디오에 대해 별도의 안정화 상태를 유지하기 위한 video_identifier가 포함됩니다. 프레임 전반의 지속적인 상태 관리를 위해 필요합니다..

    • detections (Union[object_detection_prediction, instance_segmentation_prediction]): 추적된 객체 검출 또는 인스턴스 세분화 예측입니다. 추적 블록의 tracker_id 정보가 반드시 포함되어야 합니다. 이 블록은 속도 예측을 위한 칼만 필터링, 위치 평활화를 위한 지수 이동 평균, 그리고 누락된 검출을 위한 갭 채우기를 적용합니다. 출력 검출은 노이즈와 흔들림이 줄어든 상태로 안정화됩니다..

    • smoothing_window_size (정수): 칼만 필터에서 속도 평활화를 위한 슬라이딩 윈도우의 크기이며, 얼마나 많은 과거 속도 측정값을 사용할지 제어합니다. 또한 누락된 검출이 제거되기 전까지 얼마나 오래 유지될지도 결정합니다. 값이 클수록 더 많이 부드럽게 되지만 변화에 대한 적응은 느려집니다. 값이 작을수록 덜 부드럽지만 더 빨리 적응합니다. 이 수보다 더 오래 누락된 검출은 추적 상태에서 제거됩니다. 일반적인 범위: 3-10 프레임..

    • bbox_smoothing_coefficient (0에서 1 사이의 실수): 바운딩 박스 위치 평활화를 위한 지수 이동 평균 계수(alpha)로, 범위는 0.0-1.0입니다. 현재 및 이전 바운딩 박스 위치 간의 혼합 비율을 제어합니다: smoothed_bbox = alpha * current + (1-alpha) * previous. 값이 낮을수록(0에 가까울수록) 더 많이 부드럽게 되어 변화에 대한 응답은 느리고 흔들림이 적습니다. 값이 높을수록(1에 가까울수록) 덜 부드럽게 되어 변화에 대한 응답은 빠르지만 흔들림이 더 큽니다. 기본값 0.2는 부드러움과 반응성의 균형을 맞춥니다. 일반적인 범위: 0.1-0.5..

  • 출력

    • tracked_detections (Union[object_detection_prediction, instance_segmentation_prediction]): sv.Detections(...) 객체 형태의 탐지된 바운딩 박스 예측, 다음 경우 object_detection_prediction 또는 sv.Detections(...) 객체 형태의 탐지된 바운딩 박스 및 세그멘테이션 마스크 예측, 다음 경우 instance_segmentation_prediction.

예시 JSON 정의

마지막 업데이트

도움이 되었나요?