Neuromorphic Vision
뉴로모픽 비전은 망막처럼 장면을 감지합니다. 이벤트 카메라는 픽셀별 밝기 변화를 마이크로초 단위로 보고합니다. 이벤트의 작동 방식과 활용을 살펴봅니다.
뉴로모픽 비전은 생물학적 망막과 뇌가 하는 방식으로 이미지를 감지하고 처리하는 컴퓨터 비전 접근 방식입니다. 핵심 장치인 이벤트 카메라 또는 동적 시각 센서(DVS)는 픽셀이 독립적으로 작동하며, 고정된 속도로 전체 프레임을 캡처하는 대신 밝기 변화가 발생하는 순간마다 각 픽셀이 이를 보고합니다. 출력은 마이크로초 단위의 타이밍, 높은 다이내믹 레인지, 거의 없는 모션 블러를 특징으로 하는 희소한 이벤트 스트림이며, 정적인 장면에서는 데이터가 거의 생성되지 않습니다. 이 분야는 1980년대 후반 Caltech의 Carver Mead 그룹이 신경 회로를 모방한 아날로그 칩을 개발하면서 시작된 뉴로모픽 엔지니어링에서 발전했으며, 스파이킹 신경망은 동일한 종류의 희소하고 시간에 민감한 이벤트로 연산하는 자연스러운 처리 방식입니다.
이벤트 카메라의 작동 원리#
각 픽셀은 마지막 이벤트가 발생했을 때 감지한 밝기의 로그값을 저장합니다. 현재 로그 밝기가 기준값과 대비 임계값 이상 차이가 나면 픽셀은 위치, 타임스탬프, 극성(밝아지면 ON, 어두워지면 OFF)을 인코딩한 이벤트를 내보낸 다음 기준값을 재설정합니다. 로그 공간에서 작동하기 때문에 픽셀은 상대적인 대비에 반응하므로 동일한 센서로 깊은 그림자와 직사광선을 모두 처리할 수 있으며, 프레임 카메라의 약 60 dB와 비교해 약 140 dB의 다이내믹 레인지를 제공합니다.
동일한 규칙을 일반 동영상에 적용하면 출력이 얼마나 희소한지 확인할 수 있습니다.
import cv2
import numpy as np
# Read a clip of a person exercising in front of a fixed camera
cap = cv2.VideoCapture("https://github.com/ultralytics/assets/releases/download/v0.0.0/solution_ci_pose_demo.mp4")
ok, frame = cap.read()
reference = np.log1p(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY).astype(np.float32))
threshold = 0.2 # contrast threshold on log brightness
events, samples = 0, 0
while True:
ok, frame = cap.read()
if not ok:
break
brightness = np.log1p(cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY).astype(np.float32))
# A pixel fires an ON or OFF event only when its brightness changed by more than the threshold
fired = np.abs(brightness - reference) >= threshold
reference[fired] = brightness[fired]
events += fired.sum()
samples += fired.size
print(f"{events:,} events vs {samples:,} pixel values in frames ({100 * events / samples:.2f}%)")233,492 events vs 13,593,600 pixel values in frames (1.72%)을 출력합니다. 고정 카메라에서는 프레임마다 운동하는 사람만 달라지므로 이벤트 스트림에는 전체 프레임이 담았을 값의 1.72%만 포함됩니다. v2e와 같은 시뮬레이터는 같은 방식으로 동영상을 합성 이벤트 학습 데이터로 변환하며, 선택적으로 먼저 프레임 보간을 통해 업샘플링하고 픽셀별 임계값 불일치와 노이즈를 추가합니다.
이벤트 카메라와 프레임 카메라 비교#
이벤트 카메라는 빠른 움직임, 극심한 조명 변화가 있는 장면, 변화가 적은 환경을 상시 감지하는 엣지 AI에 적합하며, 대역폭은 장면의 활동량에 따라 달라집니다. 절대 밝기나 색상은 기록하지 않으므로 정지한 장면을 보는 정지 카메라는 아무것도 보고하지 않으며, 움직이는 카메라는 모든 가장자리에서 발생한 이벤트로 출력을 가득 채웁니다. iniVation의 DAVIS와 같은 하이브리드 센서는 동일한 픽셀에서 표준 프레임도 캡처하며, 많은 시스템은 이벤트 카메라와 프레임 카메라를 센서 퓨전으로 결합합니다. 합성곱 신경망(CNN)과 같은 표준 모델은 밀집 이미지를 입력으로 기대하므로 파이프라인은 이벤트를 밀집 표현으로 변환하거나 이벤트를 직접 처리합니다.
- 이벤트 프레임: 시간 구간 내에서 픽셀별 ON 및 OFF 이벤트 수를 세면 어떤 CNN이든 처리할 수 있는 2채널 이미지가 만들어집니다.
- 타임 서피스와 복셀 그리드: 각 픽셀의 최신 타임스탬프를 저장하거나 이벤트를 여러 시간 구간으로 나누면 단순한 카운트에서 버려지는 시간 정보를 보존할 수 있습니다.
- 뉴로모픽 칩의 스파이킹 네트워크: Intel의 Loihi 2와 같은 프로세서는 이벤트를 스파이크로 직접 처리하고 이벤트가 도착할 때만 에너지를 사용합니다.
- 강도 영상 복원: E2VID와 같은 네트워크는 이벤트 스트림에서 그레이스케일 동영상을 복원하므로 프레임 기반 모델을 해당 동영상에 적용할 수 있습니다.
Ultralytics YOLO는 데이터셋 YAML의 channels 키에서 입력 채널 수를 읽습니다. 예를 들어 10채널 COCO8-Multispectral 데이터셋의 경우, YOLO26 객체 탐지 모델은 ON 및 OFF 카운트로 구성된 2채널 이벤트 프레임을 직접 학습할 수 있습니다.
실제 적용 사례#
- 자동차 인지: 2024년 Nature 연구에서는 20 FPS 컬러 카메라와 이벤트 카메라를 함께 사용해 45 FPS 카메라의 대역폭으로 5,000 FPS 카메라에 해당하는 지연 시간으로 도로 위 객체를 탐지했습니다.
- 드론 및 로보틱스: 취리히 대학교의 이벤트 카메라 쿼드로터는 상대 속도가 초속 10미터에 달하는 물체를 피했으며, 전체 지연 시간은 3.5밀리초였습니다.
- 산업 모니터링: 이벤트 카메라는 빠르게 움직이는 부품을 세고, 기계 진동을 측정하며, 고속 프로세스를 추적합니다. IDS와 같은 산업용 카메라 제조업체는 Prophesee 센서를 기반으로 한 이벤트 기반 모델을 판매합니다.










