이벤트 카메라에서 노이즈는 이벤트 데이터의 정확성을 저하시킬 수 있는 중요한 문제이다. 이벤트 기반 영상 처리의 신뢰성을 높이기 위해서는 노이즈를 효과적으로 제거하는 기술이 필수적이다. 이벤트 카메라의 노이즈 제거는 이벤트 발생의 특성상 기존의 프레임 기반 처리 방식과는 다른 접근이 필요하다.
1. 노이즈 유형
이벤트 카메라에서 발생하는 노이즈는 일반적으로 두 가지로 나뉜다:
-
Background Activity Noise: 카메라 센서에서 실제로 변화가 없지만 이벤트가 발생하는 경우. 이는 센서의 전자적 잡음이나 감광 소자의 미세한 변화로 인해 발생할 수 있다.
-
Thermal Noise: 카메라 센서 자체의 열에 의해 발생하는 노이즈. 온도 변화에 민감한 센서는 열에 의해 불필요한 이벤트가 생성될 수 있다.
이러한 노이즈를 제거하기 위한 다양한 방법이 연구되고 있으며, 그 중 몇 가지 주요 기술들을 소개한다.
2. 이벤트 임계값 기반 노이즈 제거
가장 간단한 노이즈 제거 방법은 이벤트 발생에 대한 임계값(threshold)을 설정하는 것이다. 즉, 픽셀의 밝기 변화량이 일정한 값 이상일 때만 이벤트를 발생시키도록 하여 잡음에 의해 생성된 작은 변화를 무시한다. 이 방법은 하드웨어 레벨에서 구현할 수 있으며, 일반적으로 다음과 같은 방식으로 표현할 수 있다.
- 밝기 변화 \Delta L이 임계값 T 이상일 때만 이벤트를 생성:
여기서 \Delta L은 시간에 따른 픽셀 밝기 변화이고, T는 사용자가 설정한 임계값이다. 임계값 설정에 따라 노이즈가 줄어들지만, 너무 높게 설정할 경우 유효한 이벤트까지 제거될 수 있다. 적절한 임계값 설정은 환경과 애플리케이션에 따라 달라질 수 있다.
3. 시간 기반 필터링
시간 기반 필터링은 노이즈가 특정 시간 간격 내에서 발생하는 이벤트를 제거하는 방식이다. 특히, 짧은 시간 안에 발생하는 불필요한 이벤트를 제거하여 노이즈를 줄일 수 있다. 이를 위해 설정된 시간 창(window) 안에서 이벤트 발생 빈도를 분석한다.
이때 사용할 수 있는 필터는 다음과 같다:
3.1 Temporal Filter (시간 필터)
시간 필터는 각각의 픽셀이 이벤트를 발생시키는 시간을 기준으로 노이즈를 필터링한다. 예를 들어, 각 픽셀에서 너무 짧은 시간 간격 내에 발생하는 이벤트는 노이즈로 간주하고 제거할 수 있다. 이러한 방식은 이벤트 발생 빈도를 기반으로 노이즈를 구분하는데 유용하다.
픽셀 i에서 발생하는 이벤트의 발생 시간을 t_i라고 할 때, 두 이벤트 간의 시간 간격이 일정한 임계값 \Delta t_{\text{min}} 이하일 경우 이를 노이즈로 간주할 수 있다.
이 수식을 통해 이벤트 발생 간격이 너무 짧을 경우 노이즈로 처리하여 해당 이벤트를 제거한다.
4. 공간 기반 필터링
공간 기반 필터링은 이벤트가 발생하는 위치를 기반으로 노이즈를 제거하는 방법이다. 이벤트 카메라에서 발생하는 이벤트는 주로 움직임에 반응하지만, 노이즈는 특정 영역에서 무작위로 발생할 수 있다. 이를 제거하기 위해 공간적으로 연관되지 않은 이벤트를 필터링하는 방식이 사용된다.
4.1 Spatial Filter (공간 필터)
공간 필터는 각 픽셀 주위의 이벤트 밀도를 분석하여 노이즈를 제거한다. 특정 픽셀이 주변 픽셀들에 비해 독립적으로 이벤트를 발생시킬 경우, 이를 노이즈로 간주할 수 있다. 이를 수식으로 나타내면 다음과 같다.
주변 픽셀 집합 N(i)에서 이벤트가 발생하지 않거나, 발생 빈도가 매우 낮은 경우 중심 픽셀 i에서 발생한 이벤트는 노이즈로 간주된다.
여기서 |N(i)|는 중심 픽셀 주변에서 발생한 이벤트의 수를 의미하며, T_{\text{spatial}}는 필터링 기준 임계값이다.
5. 3D Spatio-Temporal Filter
이벤트 카메라는 시간과 공간 정보를 동시에 사용하기 때문에, 두 요소를 모두 고려한 3차원 스페이시오-템포럴 필터링이 가능한다. 이 방식은 이벤트 발생 시간과 공간 정보를 함께 분석하여 노이즈를 제거하는 고급 필터링 기법이다.
픽셀 i에서 발생한 이벤트가 시간 및 공간적으로 다른 이벤트들과 연관이 없을 경우, 이를 노이즈로 처리한다. 이 방법을 수식으로 나타내면 다음과 같다:
여기서 |N(i,t)|는 시간과 공간적으로 이웃하는 이벤트 수를 의미하며, T_{\text{spatio-temporal}}는 노이즈 제거를 위한 임계값이다.
6. 클러스터링 기반 필터링
클러스터링 기반 노이즈 제거 방법은 이벤트 카메라에서 발생하는 이벤트들을 공간적, 시간적으로 군집화하여 노이즈를 제거하는 방식이다. 클러스터링 알고리즘을 통해 이벤트들이 밀집된 지역과 고립된 노이즈를 구분할 수 있다. 일반적으로 자주 사용되는 방법으로는 Mean-Shift, DBSCAN, K-Means 등이 있다.
6.1 DBSCAN (Density-Based Spatial Clustering of Applications with Noise)
DBSCAN은 밀도 기반 군집화 방법으로, 일정한 반경 내에 이벤트가 밀집된 경우 이를 군집으로 간주하고, 그렇지 않은 이벤트는 노이즈로 간주하는 방식이다. 이 알고리즘은 노이즈를 자연스럽게 구분할 수 있는 장점이 있다. 수학적으로는 다음과 같이 표현할 수 있다.
각 이벤트를 벡터 \mathbf{x}_i \in \mathbb{R}^2로 나타내고, 반경 \epsilon과 최소 포인트 수 minPts를 기준으로 군집을 생성한다. 만약 이벤트 \mathbf{x}_i 주변 반경 \epsilon 내에서 발생한 이벤트 수가 minPts 이하라면, 해당 이벤트는 노이즈로 간주된다.
여기서 ||\mathbf{x}_i - \mathbf{x}_j||는 두 이벤트 간의 거리이며, \epsilon은 반경, minPts는 최소 이웃 이벤트 수를 나타낸다.
7. 이벤트 발생 빈도 기반 필터링
이벤트 발생 빈도 기반 필터링은 특정 픽셀이 일정 시간 동안 발생시키는 이벤트 수를 기준으로 노이즈를 제거하는 방법이다. 이벤트 카메라의 센서에서 발생하는 이벤트는 대개 객체의 움직임에 따라 일어나지만, 노이즈는 특정 픽셀에서 불규칙적으로 자주 발생할 수 있다. 이 경우, 이벤트 발생 빈도가 높은 픽셀을 노이즈로 간주할 수 있다.
7.1 발생 빈도 임계값 설정
각 픽셀에서 발생하는 이벤트의 빈도를 f_i로 나타내고, 주어진 시간 창(window) T 동안 발생한 이벤트 수가 임계값 f_{\text{max}} 이상일 경우, 해당 이벤트는 노이즈로 처리된다.
여기서 f_i는 픽셀 i에서의 이벤트 발생 빈도를 의미하며, T는 시간 창을 나타낸다. 이 방법은 불규칙적으로 자주 발생하는 노이즈 이벤트를 효과적으로 제거할 수 있다.
8. 학습 기반 노이즈 제거
최근에는 딥러닝을 기반으로 이벤트 데이터를 학습하여 노이즈를 제거하는 방법도 연구되고 있다. 이러한 방식은 사전에 수집된 이벤트 데이터를 기반으로 노이즈 패턴을 학습하여 제거할 수 있으며, 이벤트 카메라의 비정형적 데이터 처리에 효과적이다.
8.1 Convolutional Neural Networks (CNN) 기반 노이즈 제거
CNN은 영상 처리에서 널리 사용되는 신경망 구조로, 이벤트 데이터에도 적용할 수 있다. 이벤트 데이터는 시간과 공간 정보를 모두 포함하고 있어 3D Convolutional Neural Networks (3D-CNN)을 사용하여 노이즈를 제거할 수 있다. 학습 과정에서 CNN 모델은 노이즈 패턴을 인식하고, 실제 이벤트와 노이즈를 분리하게 된다.
8.2 Event Stream에 특화된 신경망 아키텍처
기존의 CNN 외에도 이벤트 데이터에 특화된 신경망 아키텍처가 개발되었다. 대표적인 예로 Spiking Neural Networks (SNN)을 들 수 있다. SNN은 이벤트 카메라의 비연속적인 이벤트 발생 특성에 적합한 신경망 구조로, 노이즈 제거뿐만 아니라 고속 영상 처리를 위한 기반 기술로 활용될 수 있다.