이벤트 카메라 진동 주파수: 전체 대표값과 ROI가 다른 이유

진동 화면에 40Hz가 표시돼도 화면 속 모든 부품이 40Hz로 움직인다는 뜻은 아닙니다. Prophesee의 진동 추정 예제는 픽셀마다 주파수를 구한 뒤, 화면에서 가장 흔한 주파수를 대표값으로 표시합니다. 작은 영역의 다른 진동을 보려면 주파수 맵의 위치별 값과 관심 영역(ROI)의 대표값을 따로 읽어야 합니다.

이 설명은 2026년 10월 15일 확인한 Metavision SDK 5.3.1의 Vibration Estimation C++ 예제를 기준으로 합니다. 여기서 주파수는 이벤트의 반복에서 추정한 값이고, 히트맵의 색은 그 주파수를 보여 주는 표현입니다. 센서가 측정하는 밝기 변화 자체는 이벤트 카메라와 프레임 카메라 비교에서 이어 볼 수 있습니다.

넓은 영역의 40Hz가 작은 영역의 50Hz를 가릴 때

두 부품이 서로 다르게 진동하는 가상의 장면을 만들겠습니다. 유효한 주파수 값이 있는 픽셀 중 80개는 정확히 40Hz, 나머지 20개는 정확히 50Hz로 추정됐다고 가정합니다. 실제 카메라 측정 결과가 아니라 집계의 의미를 설명하는 예입니다.

선택한 범위 범위 안의 주파수 값 가장 흔한 주파수
두 부품을 모두 포함한 화면 40Hz인 픽셀 80개, 50Hz인 픽셀 20개 40Hz
40Hz 부품만 감싼 ROI 40Hz인 픽셀 80개 40Hz
50Hz 부품만 감싼 ROI 50Hz인 픽셀 20개 50Hz

전체 대표값이 40Hz여도 50Hz 영역은 사라지지 않습니다. 요약하는 범위가 달라지면 대표값이 바뀝니다. 두 주파수를 픽셀 수로 가중 평균한 42Hz도 이 예제에서 말하는 대표값이 아닙니다. 공식 설명의 기준은 가장 흔한 주파수입니다.

따라서 대표값은 진폭이 가장 큰 부품을 고르는 값이나 기계 전체의 평균 진동수로 읽으면 곤란합니다. 한 부품이 영상에서 더 큰 영역을 차지하면 그 부품의 주파수가 더 많은 픽셀에 나타날 수 있습니다. 관심 있는 작은 부품 주변에 ROI를 좁히는 이유는 바로 이 공간적 섞임을 줄이기 위해서입니다. 서로 다른 부품의 경계를 한 ROI에 넣으면 그 안에서도 다시 같은 집계 문제가 생깁니다.

공식 GUI에서는 마우스로 드래그해 ROI를 만들고, 그 안의 대표 주파수를 확인할 수 있습니다. 특정 픽셀 위에 커서를 올려 위치별 값도 볼 수 있습니다. 우선 전체 맵에서 다른 색의 영역을 찾고, 부품별 ROI로 분리한 뒤, 경계 주변 픽셀의 값을 살펴보면 큰 숫자 하나에 가려진 공간 차이를 읽을 수 있습니다.

이벤트 버퍼, 주파수 맵, 화면은 서로 다른 속도로 움직인다

예제에서 FrequencyMapAsyncAlgorithm은 밝기 변화 이벤트를 받아 픽셀별 주파수 맵을 만듭니다. 맵을 내보내는 시점은 카메라 시계의 고정 갱신 주기에 맞춰져 있습니다. 그래서 입력 버퍼 하나를 처리해도 맵이 나오지 않을 수 있고, 하나 또는 여러 개가 나올 수도 있습니다. 버퍼 수를 곧바로 진동 횟수나 맵 개수로 바꾸면 시간 단위가 섞입니다.

이후 GUI가 HeatMapFrameGeneratorAlgorithm으로 맵을 RGB 화면에 옮기고, DominantValueMapAlgorithm으로 대표값을 계산합니다. 이 표시 단계는 입력 주파수 맵마다 동기적으로 처리됩니다. 색이 있는 화면으로 보인다고 해서 센서가 일반 RGB 영상을 촬영한 것은 아닙니다.

설명용으로 40Hz 진동은 한 주기가 25ms라고 계산할 수 있습니다. 그런데 맵 표시를 100ms마다 갱신한다면 화면은 초당 10번 바뀝니다. 화면 갱신율 10Hz와 측정하려는 진동수 40Hz는 서로 다른 값입니다. 추정기는 화면의 연속 캡처가 아니라 그 사이에 들어온 이벤트를 이용하기 때문입니다. 이 계산은 두 시간 척도를 구분하는 예이며, 실제 설정에서의 추정 가능 범위는 입력 이벤트와 알고리즘 설정을 함께 봐야 합니다.

결과를 기록할 때는 주파수 값의 단위 Hz와 맵 갱신 주기를 별도 필드로 두는 편이 명확합니다. 콜백이 여러 번 불렸다는 사실만으로 진동이 빨라졌다고 해석하거나, 화면이 천천히 바뀐다는 이유로 물체도 천천히 진동한다고 해석하는 오류를 피할 수 있습니다.

짧은 타임스탬프보다 먼저 경계가 픽셀 위에서 움직여야 한다

아주 작은 물리적 변위라도 렌즈를 통해 충분히 크게 투영되면 픽셀의 밝기를 바꾸는 움직임이 됩니다. 반대로 멀리 있는 작은 진동은 영상에서 차지하는 변위가 작아집니다. 시각을 촘촘히 기록하는 능력과, 그 시각에 기록할 만한 밝기 변화가 생기는 조건은 별개입니다.

공식 문서는 EVK4 기본 렌즈를 예로 든 8mm 초점거리 설정에서 물체까지의 최소 거리를 10cm로 안내하고, 진동 진폭이 영상에서 적어도 1픽셀이 되도록 설명합니다. 더 작은 진폭을 보려면 더 긴 초점거리의 렌즈가 필요하다고 하며, 16mm 렌즈에서 절반 크기 진폭을 다룰 수 있다는 예를 듭니다. 이 수치는 해당 광학 설정의 설명에 붙어 있습니다. 다른 거리와 렌즈를 사용하는 장면에 옮기려면 물리적 변위가 영상에서 얼마나 크게 보이는지부터 다시 계산해야 합니다.

초점도 같은 이유로 중요합니다. 움직이는 경계가 선명해야 위치에 따른 밝기 변화가 드러나므로 문서는 초점과 조리개 조정을 요구합니다. 흐린 경계에서 주파수 맵이 약하거나 불안정하다면 대표값 계산 방식을 바꾸기 전에 초점, 작업 거리, 영상상의 이동 크기를 살펴볼 근거가 있습니다. ROI를 줄이는 일은 다른 부품의 주파수가 섞이는 문제를 다루지만, 흐린 원래 신호를 선명하게 만드는 광학 조정은 아닙니다.

부품별 진동을 비교하려면 같은 위치를 가리키는 ROI와 렌즈·거리를 함께 기록하고, 대표값 옆에 주파수 맵을 남겨두는 편이 좋습니다. 숫자가 바뀌었을 때 실제 주기 변화인지, 관심 범위가 다른 부품을 포함하게 된 것인지 구분할 자료가 생깁니다. 이 글은 공식 샘플 설명을 해석한 것으로, 카메라나 진동 장치를 구동해 주파수·진폭 정확도를 측정한 결과는 아닙니다.