옵티컬 플로우의 정의

이벤트 카메라에서 옵티컬 플로우는 각 이벤트가 발생하는 지점에서의 픽셀 이동 속도를 나타내는 중요한 정보이다. 이벤트 카메라는 각 픽셀에서 독립적으로 이벤트가 발생할 때마다 움직임을 감지하고 이를 기록하므로, 이벤트 데이터에서 직접적으로 픽셀 수준의 이동 벡터를 계산하는 것이 옵티컬 플로우 계산의 핵심이다. 전통적인 비디오와 달리 프레임 간의 차이를 이용하지 않기 때문에 매우 높은 시간적 해상도에서 움직임을 추적할 수 있다.

이벤트 기반 옵티컬 플로우 모델

일반적인 옵티컬 플로우는 광학 흐름 방정식을 바탕으로 한다. 이 방정식은 픽셀 단위에서의 이미지 밝기 변화와 관련된 수식을 사용하여 픽셀의 이동을 계산한다. 이벤트 카메라의 경우, 픽셀에서 이벤트가 발생하는 시점에서 밝기의 변화가 직접적으로 기록되므로, 이를 바탕으로 옵티컬 플로우를 계산할 수 있다.

광학 흐름 방정식은 다음과 같이 정의된다:

\frac{\partial I(x, y, t)}{\partial t} + \mathbf{v_x} \frac{\partial I(x, y, t)}{\partial x} + \mathbf{v_y} \frac{\partial I(x, y, t)}{\partial y} = 0

여기서: - I(x, y, t)는 시공간 상에서 밝기 변화를 나타내는 함수 - \mathbf{v_x}, \mathbf{v_y}는 픽셀의 x축, y축 방향 이동 속도(즉, 옵티컬 플로우) - \frac{\partial I}{\partial t}, \frac{\partial I}{\partial x}, \frac{\partial I}{\partial y}는 시간 및 공간에 따른 밝기의 변화율을 의미

이 방정식에서 이벤트 카메라밝기 변화를 이벤트로 기록하므로, 위 방정식을 활용하여 이벤트가 발생한 시점에서의 픽셀 이동을 추적할 수 있다. 이를 바탕으로 이벤트 스트림에서 시간에 따른 픽셀 위치 변화를 계산할 수 있으며, 결과적으로 옵티컬 플로우를 추출할 수 있다.

에너지 기반 접근법

이벤트 카메라에서는 전통적인 프레임 기반의 옵티컬 플로우 알고리즘과 달리, 에너지 최소화 접근법을 사용할 수 있다. 이 방법은 각각의 이벤트가 발생한 지점에서의 픽셀 움직임 벡터를 추정하기 위해 에너지 함수의 최소값을 찾는 방식으로 동작한다. 에너지 함수는 일반적으로 아래와 같은 형태로 표현된다:

E(\mathbf{v}) = \sum_{i} \left( I(x_i + v_x \Delta t, y_i + v_y \Delta t, t + \Delta t) - I(x_i, y_i, t) \right)^2

여기서: - x_i, y_i는 이벤트가 발생한 위치 - \mathbf{v} = (v_x, v_y)는 옵티컬 플로우 벡터 - \Delta t는 이벤트 간 시간 차이

이 에너지 함수는 이벤트가 발생하는 위치에서 밝기 변화가 일정하다는 가정 하에, 최소화되는 움직임 벡터를 찾아냄으로써 옵티컬 플로우를 계산할 수 있다.

적분 기반 접근법

또 다른 방법은 적분 기반 접근법이다. 이 방식은 이벤트 카메라의 연속적인 데이터 스트림을 기반으로 옵티컬 플로우를 계산하는 방식이다. 각 이벤트는 픽셀의 변화율을 기록하므로, 이를 바탕으로 적분하여 전체적인 픽셀의 이동 벡터를 추정할 수 있다.

이 방법은 아래와 같은 수식을 따른다:

\mathbf{v} = \frac{1}{N} \sum_{i=1}^{N} \mathbf{v}_i

여기서: - N은 주어진 시간 구간 내의 이벤트 수 - \mathbf{v}_i는 각각의 이벤트가 발생한 위치에서의 이동 벡터

이 접근법은 연속적인 이벤트 데이터의 특성을 이용하여 각 이벤트가 발생한 시점의 이동 벡터를 계산한 후, 이를 평균화하여 전체적인 옵티컬 플로우를 얻는 방식이다. 이벤트가 많이 발생할수록 정확한 옵티컬 플로우를 추정할 수 있다.

이벤트 기반 옵티컬 플로우의 계산 과정

  1. 이벤트 획득: 이벤트 카메라로부터 각 이벤트의 좌표 (x_i, y_i), 시간 t_i, 밝기 변화 정보를 획득한다.

  2. 밝기 변화 모델링: 이벤트가 발생한 지점에서의 밝기 변화를 모델링하고, 각 이벤트가 발생한 순간의 밝기 변화율을 계산한다. 이 값은 옵티컬 플로우 방정식에서 필요한 밝기 변화율에 해당한다.

  3. 방정식 설정: 각 이벤트에 대해 광학 흐름 방정식을 설정한다. 이는 픽셀의 이동 속도 \mathbf{v_x}, \mathbf{v_y}를 추정하기 위한 기초 방정식이 된다.

  4. 에너지 최소화 또는 적분 기반 방법을 통해 이벤트가 발생한 지점에서의 이동 벡터 \mathbf{v}를 계산한다.

  5. 결과 통합: 마지막으로, 각 이벤트에서 계산된 옵티컬 플로우 값을 통합하여 전체 화면에서의 옵티컬 플로우를 계산한다. 이를 통해 객체의 움직임이나 카메라의 이동을 분석할 수 있다.

이벤트 기반 옵티컬 플로우 계산 흐름도

graph TD A[이벤트 획득] --> B[밝기 변화 모델링] B --> C[광학 흐름 방정식 설정] C --> D[에너지 최소화 or 적분 기반 방법] D --> E[옵티컬 플로우 벡터 계산] E --> F[전체 화면 옵티컬 플로우 통합]

이러한 과정을 통해 이벤트 카메라에서 수집된 데이터로부터 매우 높은 시간적 해상도로 옵티컬 플로우를 계산할 수 있으며, 이는 객체 추적이나 동작 인식에 중요한 정보로 활용된다.