모션 감지
OpenCV를 사용하여 비디오에서 움직임을 감지합니다.
OpenCV의 배경 차감 알고리즘을 사용하여 비디오 스트림에서 모션을 감지합니다.
이 블록의 작동 방식
이 블록은 배경 차감(특히 MOG2 알고리즘)을 사용하여 비디오 프레임에서 모션을 감지합니다. 이 블록은 프레임 간 상태를 유지하여 배경 모델을 구축하고 모션 패턴을 추적합니다:
배경 모델을 초기화합니다 - 첫 번째 프레임에서 지정된 히스토리와 임계값 매개변수를 사용하여 배경 차감기를 생성합니다
각 프레임을 처리합니다 - 학습된 배경 모델과 다른 픽셀을 식별하기 위해 배경 차감을 적용합니다
노이즈 필터링 - 노이즈를 제거하고 가까운 모션 영역을 일관된 윤곽선으로 결합하기 위해 형태학적 연산을 적용합니다
모션 영역 추출 - 모션 영역을 나타내는 윤곽선을 찾아 최소 크기로 필터링하고, 선택적으로 감지 영역으로 클리핑합니다
윤곽선 단순화 - 감지 데이터를 관리하기 쉽게 유지하기 위해 윤곽선의 복잡성을 줄입니다
출력 생성 - 바운딩 박스가 있는 객체 감지 예측을 생성하고, 모션 상태를 판별하며, 모션이 시작될 때 알람을 트리거하고, 모션 영역 폴리곤을 제공합니다
이 블록은 프레임 간 모션 상태를 추적합니다 - 알람 출력은 모션이 감지되지 않음에서 감지됨으로 전환될 때만 true가 되어, 모션이 처음 나타날 때 작업을 트리거하는 데 유용합니다.
일반적인 사용 사례
보안 모니터링: 감시 카메라에서 모션을 감지하여 활동이 감지될 때 알림, 녹화 또는 통지를 트리거합니다
리소스 최적화: 모션이 감지될 때만 객체 감지, 분류 같은 비용이 큰 추론 작업을 조건부로 실행하여 컴퓨팅 자원을 절약합니다
활동 감지: 움직임을 위해 영역을 모니터링하여 점유 상태를 추적하고, 출입 이벤트를 식별하거나 무단 접근을 감지합니다
비디오 분석: 비디오 스트림을 분석하여 모션 패턴을 식별하고, 활동 수준을 추적하거나 모니터링된 영역의 이상을 감지합니다
스마트 녹화: 모션이 감지될 때 비디오 녹화 또는 스냅샷 캡처를 트리거하여, 연속 녹화에 비해 저장 요구 사항을 줄입니다
구역 모니터링: 감지 영역을 사용하여 프레임 내 특정 영역을 모니터링함으로써, 바쁘지만 관련 없는 영역은 무시하면서 관련 영역에 모션 감지를 집중합니다
다른 블록에 연결하기
이 블록의 모션 감지 출력은 다음과 연결할 수 있습니다:
조건 논리 블록 (예: Continue If) 모션이 감지되거나 알람이 트리거될 때만 워크플로 단계가 실행되도록 합니다
객체 감지 블록 모션이 있는 프레임에서만 감지 모델을 실행하여 컴퓨팅 자원을 절약합니다
알림 블록 (예: Email Notification, Slack Notification) 모션이 감지되거나 알람이 트리거될 때 알림을 전송합니다
데이터 저장 블록 (예: Roboflow Dataset Upload, CSV Formatter) 분석용으로 모션 이벤트, 타임스탬프, 감지 데이터를 기록합니다
시각화 블록 감지된 모션을 보여주는 프레임에 모션 영역, 바운딩 박스 또는 주석을 그립니다
필터 블록 후속 처리로 전달하기 전에 모션 상태에 따라 이미지 또는 데이터를 필터링합니다
유형 식별자
단계에서 다음 식별자를 사용하세요 "type" 필드: roboflow_core/motion_detection@v1 워크플로우에 이 블록을 단계로 추가하려면.
속성
이름
유형
설명
참조
name
str
이 단계에 대한 고유 식별자를 입력하세요..
❌
minimum_contour_area
정수
모션 영역이 감지되기 위한 제곱 픽셀 단위의 최소 면적입니다. 이 임계값보다 작은 윤곽선은 노이즈, 작은 그림자 또는 사소한 픽셀 변화를 무시하기 위해 필터링됩니다. 값이 낮을수록 민감도는 높아지지만 더 많은 오탐지(예: 매우 민감한 감지는 100, 큰 객체만 감지하려면 500)가 발생할 수 있습니다. 기본값은 200제곱 픽셀입니다..
✅
morphological_kernel_size
정수
가까운 모션 영역을 결합하고 노이즈를 필터링하는 데 사용되는 형태학적 커널의 픽셀 단위 크기입니다. 값이 클수록 더 멀리 떨어진 모션 영역이 하나의 윤곽선으로 합쳐지지만, 서로 다른 객체가 합쳐질 수도 있습니다. 값이 작을수록 더 많은 세부 정보가 유지되지만 감지가 조각난 채로 남을 수 있습니다. 이 커널은 타원형 모양을 사용합니다. 기본값은 3픽셀입니다..
✅
임계값
정수
MOG2 배경 차감 알고리즘에서 사용되는 마할라노비스 거리의 제곱에 대한 임계값입니다. 모션에 대한 민감도를 제어합니다. 값이 작을수록 민감도가 높아져(더 작은 변화를 감지) 오탐이 더 많이 발생할 수 있고, 값이 클수록 민감도가 낮아져(중요한 변화만 감지) 미세한 움직임을 놓칠 수 있습니다. 권장 범위는 8-32입니다. 기본값은 16..
✅
히스토리
정수
배경 모델을 구축하는 데 사용되는 이전 프레임 수입니다. 변화에 배경이 얼마나 빨리 적응하는지를 제어합니다 - 값이 클수록(예: 50-100) 일시적인 변화에는 덜 민감하지만 영구적인 배경 변화에는 천천히 적응하는 더 안정적인 배경 모델이 생성됩니다. 값이 작을수록(예: 10-20) 더 빠르게 적응하지만, 움직이는 객체가 멈추면 이를 배경으로 처리할 수 있습니다. 기본값은 30프레임입니다..
✅
detection_zone
Union[List[Any], str]
프레임의 특정 영역으로 모션 감지를 제한하는 선택적 폴리곤 영역입니다. 모션은 이 영역 내에서만 감지되고 외부의 활동은 무시됩니다. 형식: [[x1, y1], [x2, y2], [x3, y3], ...]이며 좌표는 픽셀 단위입니다. 폴리곤은 3개를 초과하는 점을 가져야 합니다. 리스트, JSON 문자열 또는 다른 블록의 영역 출력을 참조하는 셀렉터로 제공할 수 있습니다. 문, 창문, 제한 구역 등 특정 영역에 집중하면서 바쁘지만 관련 없는 영역은 무시하는 데 유용합니다. 제공되지 않으면 전체 프레임에서 모션이 감지됩니다..
✅
suppress_first_detections
bool
true이면, 배경 모델이 충분한 프레임(히스토리 매개변수로 지정됨)으로 초기화될 때까지 모션 감지를 억제합니다. 이렇게 하면 배경 모델이 아직 장면을 학습하지 못한 초기 프레임에서의 오탐지를 방지할 수 있습니다. false이면 이 블록은 즉시 모션 감지를 시도하며, 초기화 중에는 신뢰할 수 없는 결과를 만들 수 있습니다. 기본값은 true이며(대부분의 사용 사례에 권장됨)..
✅
이 참조 열은 워크플로우 런타임에서 사용 가능한 동적 값으로 속성을 매개변수화할 수 있는 가능성을 나타냅니다 워크플로우 런타임입니다. 자세한 내용은 바인딩 을 참조하세요.
런타임 호환성
소프트 - 런타임 호스팅 서버리스, 전용 배포; 실행 원격; 입력 비디오 : 이 블록은 프로세스 메모리에서 비디오별 상태를 유지합니다(video_metadata.video_identifier로 키 지정). 상태 비저장 또는 다중 복제 HTTP 런타임에서 원격 단계 실행을 사용하면 연속 요청이 서로 다른 작업자 프로세스에서 처리될 수 있으므로, 상태가 호출 사이에 초기화되어 추적 / 카운팅 / 집계를 위한 출력은 의미가 없어집니다. 안정적인 프레임 간 결과를 위해 지속적인 WebRTC 세션에서 로컬 단계 실행을 사용하세요.
소프트 - 입력 이미지 : 이 블록은 비디오나 반복 프레임 워크플로의 시간적 문맥에 의존합니다. 정지 이미지/사진에는 추적, 비교, 집계 또는 시각화할 의미 있는 히스토리가 없으므로 이 블록은 거의 또는 전혀 이점을 제공하지 않습니다.
입력 및 출력 바인딩
사용 가능한 연결은 바인딩 유형에 따라 달라집니다. 어떤 바인딩 유형인지 확인하세요 모션 감지 버전 v1 을 가지고 있는지.
입력 및 출력 바인딩
입력
이미지(이미지): 분석할 모션 입력 이미지 또는 비디오 프레임입니다. 이 블록은 프레임을 순차적으로 처리하여 배경 모델을 구축합니다 - 각 프레임은 배경 모델을 업데이트하고 학습된 배경 패턴에 상대적인 모션을 감지합니다. 워크플로 입력이나 이전 단계에서 연결할 수 있습니다..minimum_contour_area(정수): 모션 영역이 감지되기 위한 제곱 픽셀 단위의 최소 면적입니다. 이 임계값보다 작은 윤곽선은 노이즈, 작은 그림자 또는 사소한 픽셀 변화를 무시하기 위해 필터링됩니다. 값이 낮을수록 민감도는 높아지지만 더 많은 오탐지(예: 매우 민감한 감지는 100, 큰 객체만 감지하려면 500)가 발생할 수 있습니다. 기본값은 200제곱 픽셀입니다..morphological_kernel_size(정수): 가까운 모션 영역을 결합하고 노이즈를 필터링하는 데 사용되는 형태학적 커널의 픽셀 단위 크기입니다. 값이 클수록 더 멀리 떨어진 모션 영역이 하나의 윤곽선으로 합쳐지지만, 서로 다른 객체가 합쳐질 수도 있습니다. 값이 작을수록 더 많은 세부 정보가 유지되지만 감지가 조각난 채로 남을 수 있습니다. 이 커널은 타원형 모양을 사용합니다. 기본값은 3픽셀입니다..임계값(정수): MOG2 배경 차감 알고리즘에서 사용되는 마할라노비스 거리의 제곱에 대한 임계값입니다. 모션에 대한 민감도를 제어합니다. 값이 작을수록 민감도가 높아져(더 작은 변화를 감지) 오탐이 더 많이 발생할 수 있고, 값이 클수록 민감도가 낮아져(중요한 변화만 감지) 미세한 움직임을 놓칠 수 있습니다. 권장 범위는 8-32입니다. 기본값은 16..히스토리(정수): 배경 모델을 구축하는 데 사용되는 이전 프레임 수입니다. 변화에 배경이 얼마나 빨리 적응하는지를 제어합니다 - 값이 클수록(예: 50-100) 일시적인 변화에는 덜 민감하지만 영구적인 배경 변화에는 천천히 적응하는 더 안정적인 배경 모델이 생성됩니다. 값이 작을수록(예: 10-20) 더 빠르게 적응하지만, 움직이는 객체가 멈추면 이를 배경으로 처리할 수 있습니다. 기본값은 30프레임입니다..detection_zone(Union[zone,list_of_values]): 프레임의 특정 영역으로 모션 감지를 제한하는 선택적 폴리곤 영역입니다. 모션은 이 영역 내에서만 감지되고 외부의 활동은 무시됩니다. 형식: [[x1, y1], [x2, y2], [x3, y3], ...]이며 좌표는 픽셀 단위입니다. 폴리곤은 3개를 초과하는 점을 가져야 합니다. 리스트, JSON 문자열 또는 다른 블록의 영역 출력을 참조하는 셀렉터로 제공할 수 있습니다. 문, 창문, 제한 구역 등 특정 영역에 집중하면서 바쁘지만 관련 없는 영역은 무시하는 데 유용합니다. 제공되지 않으면 전체 프레임에서 모션이 감지됩니다..suppress_first_detections(boolean): true이면, 배경 모델이 충분한 프레임(히스토리 매개변수로 지정됨)으로 초기화될 때까지 모션 감지를 억제합니다. 이렇게 하면 배경 모델이 아직 장면을 학습하지 못한 초기 프레임에서의 오탐지를 방지할 수 있습니다. false이면 이 블록은 즉시 모션 감지를 시도하며, 초기화 중에는 신뢰할 수 없는 결과를 만들 수 있습니다. 기본값은 true이며(대부분의 사용 사례에 권장됨)..
출력
모션(boolean): 불리언 플래그.알람(boolean): 불리언 플래그.detections(object_detection_prediction): sv.Detections(...) 객체 형식의 감지된 바운딩 박스가 포함된 예측.모션 영역(list_of_values): 모든 유형의 값 목록.
마지막 업데이트
도움이 되었나요?