- Object Detection Domain에서 SNNs(Spiking Neural Networks)는 energy-efficient 특성으로 인해 CNNs를 대체 1. 하지만 SNNs based Object Detection은 Event data를 Tensor로 변환하는 과정에서 정보의 손실이 발생 2. 인위적인 post-processing module로 인해 불필요한 계산이 추가되는 한계가 존재 => 이러한 문제를 해결하고자 Spiking-Transformer와 DETR Architecture를 도입한 Spiking-DETR 제안
- Spiking-DETR은 다음 4가지 module로 구성된다. 1. Mixed Time Bin Cube(MTB Cube): Event-tensor Transformation 2. Spatio-temporal Feature Extraction Module: spatio-temporal features extraction 3. Spiking-Transformer based Encoder-Decoder Module: object pattern and location learning 4. Post-Processing Module: Loss computation
- 이 모델은 GEN1과 1Mpx이라는 두 가지 공개 이벤트 기반 객체 검출 데이터셋에서 평가 - 실험 결과, Spiking-DETR은 상대적으로 적은 파라미터와 낮은 계산 비용을 유지하면서도 최첨단 성능을 달성 - 또한, SNNs로만 구성된 최초의 end-to-end 객체 검출 모델
Spiking-Transformer와 DETR Architecture를 도입한 Spiking-DETR 제안
1. Introduction
SNN의 배경 및 특징
- SNNs는 생물학적으로 더 유사하며, time-series data 처리에 유리하고, neuromorphic hardware에서 사용할 경우 에너지 소비가 적다는 장점을 제공 - 특히, SNN은 이진 펄스 신호를 활용하여 곱셈-덧셈 연산 대신 누적 연산만 수행하기 때문에 에너지 효율성이 크게 향상
기존 SNN 모델의 한계
1. 이벤트 데이터를 텐서로 변환하는 과정에서 정보 손실이 발생. 2. NMS(Non-Maximum Suppression) 알고리즘과 같은 post processing 과정으로 인해 불필요한 계산이 추가. 3. Anchor Box Assignment 등 비효율적인 처리 과정이 포함.
Spiking DETR main distribution
1. Spiking ResNet Backbone: SNN 기반 ResNet 구조를 최적화하여 시공간적 특징을 추출. 2. Spiking-Transformer Encoder-Decoder: Transformer 구조를 스파이크 신호에 적합하도록 수정. 3. MTB Cube(Mixed-Time Bin Cube): 이벤트 데이터를 변환하는 새로운 방식으로 시간 정보 손실 최소화. 4. 최초의 완전 스파이크 기반(SNN-only) end-to-end object detection model
Spiking-DETR은 MTB Cube, Spiking ResNet, Spiking-Transformer 등을 통해 기존 문제를 해결 최초로 SNN만을 사용한 end-to-end object detection 시스템을 제안
2. Related Work
2.1 Event-based Object Detection
- Object Detection = Object Localisation + Object Classification - Object Detection은 객체의 위치와 각 객체가 어떤 범주에 속하는지 결정하는 task
- DNN은 hand-crafted feature extraction 방식에 비해 심층적이고 의미 있는 feature를 학습함으로써 성능을 향상 - Transformer Architecture 기반의 Object Detection(DETR)이 등장하여 static data(images)에서 object detection에 활용 - DETR은 Anchor Frame을 사용하지 않고, 단순한 Architecture 설계를 통해 실제 End-to-end 학습을 가능하게 함 - Event data는 희소하고 풍부한 시간 정보를 포함하지만, 이를 활용한 Object Detection은 여전히 도전과제이다.
- 기존 해결책은 아래와 같다. 1. Event data를 Event Frame으로 변환 후 전통적인 CNN 사용 => 시간 정보를 손실하여 효과가 떨어짐. 2. Graph Neural Networks(GNN) => Event를 Down Sampling하여 근접한 Node와 Edge를 생성. 그러나 과도한 Down Sampling으로 중요한 정보가 누락될 수 있음. 3. RNN 및 LSTM => Event data의 spatio-temporal features를 추출한 후, pre-trained object detection network에 입력. 4. Deep SNN basde model => SSD classification head를 통해 완전히 스파이크 신호로 구동되어 에너지 효율이 높음.
- 기존 SSD based SNN 모델은 Event data의 spatio-temporal features를 잘 활용하지만, SSD detector가 Anchor box 생성과 NMS 알고리즘의 비효율성으로 성능이 제한됨 - Spiking Self-Attention(SSA)는 아직 연구 중
# Event data
- Event Data는 일반적인 정적 이미지 데이터와는 다른 이벤트 기반 카메라(Event-Based Camera) 또는 뉴로모픽 카메라에서 수집된 데이터 1. 정적 이미지처럼 모든 픽셀 데이터를 저장하지 않고, 밝기 변화가 있는 픽셀에서만 이벤트를 기록 2. 각 이벤트는 시간 축에서 발생한 시점(타임스탬프)을 포함하며, 데이터는 시계열 형식으로 기록 3. 다음과 같은 정보로 구성 (x, y): 이벤트가 발생한 픽셀의 좌표. t: 이벤트가 발생한 시간. p: 밝기가 증가했는지(양극성) 감소했는지(음극성)를 나타내는 극성(Polarity).
EX)
2.2 Transformer-based SNNs
- 지금까지 Transformer 기반 SNN과 관련된 주요 연구는 다음과 같다. 1. Spikformer => Softmax 계층을 제거하고 Query, Key, Value를 스파이크 형태로 사용하는 새로운 SSA 모듈을 도입
2. Spikingformer => Spikformer를 기반으로 residual connection을 최적화하여 계산 비용 줄이면서 네트워크 성능 개선
2.3 Surrogate Gradient Descent Algorithm
- SNN은 생물학적 신경망을 보다 가깝게 모방하기 위해 시간 개념을 모델에 통합 - SNN에서 뉴런은 시냅스를 모방하는 가중치로 연결되며, 기존 DNN과 마찬가지로 이 가중치는 학습 가능 - 하지만 SNN에서 spike는 discrete and non-differentiable(이산적이고 미분 불가)하기 때문에 backpropagation algorithm을 적용할 수 없다. - static data(images)의 경우, 사전 학습된 DNN을 SNN으로 변환할 수 있지만, 결과적으로 성능이 저하되는 문제가 발생
- 이 문제를 해결하기 위해 여러 학습 방법이 제안 1. STDP(Spike-Timing-Dependent Plasticity) - 생물학적으로 타당한 unsupervised 학습 규칙으로, 뉴런 발화의 시간차에 따라 시냅스 가중치를 갱신 - 그러나 단순한 작업에서도 supervised 학습에 비해 성능이 떨어진다. 2. SLAYER - backpropagation algorithm을 적용하여 SNN에서 시냅스 가중치(synaptic weight)와 축삭 지연(axonal delays)을 학습 - 이를 통해 더 깊은 네트워크와 대규모 데이터셋 처리 가능. 3. SGD(Surrogate Gradient Descent) - Forward pass 시 뉴런은 Heaviside 계단 함수로 스파이크를 생성하며, 역방향(reverse) pass 시 비미분 가능 함수의 기울기를 surrogate gradient로 대체
2.4 Event Data Representation Methods
- Event data는 static frame 형태로 저장되지 않으며, 기존의 deep learning model에서 직접적으로 처리가 불가능
- 이를 해결하기 위해 Event data를 Dense Presentation으로 변환하는 여러 preprocessing 방법이 제안 1. Event Frame - 주어진 시간 간격 동안 pixel별로 Event를 누적 - time dimension을 제거하므로, 시간 정보는 손실되지만, 간단한 처리 방식을 제공 2. Time Surface(TS) - 각 pixel에서 가장 최근 Event의 timestamp를 저장하여 시간 정보를 보존 - Event Frame보다 시간 정보를 더 많이 포함하지만 공간 정보는 제한적 3. Event Cube - 시간 정보를 더 풍부하게 보존하기 위해 주어진 시간 구간을 여러 개의 micro time bins로 나눈다. - 각 pixel은 해당 시간 구간에서 event와 중심 시간 간의 차이를 저장 4. Voxel Grid - 각 Voxel이 pixel과 시간 구간을 나타내며, 해다 시간 구간에서 event의 binary accumulation을 수행 - SNN의 에너지 효율성을 활용해 event를 더 효율적으로 처리 5. Voxel Cube - Voxel Grid에 micro time bins 방식을 결합하여 시간 정보를 더 많이 보존 - 적은 시간 단계로도 풍부한 시간 정보를 유지
- 이 논문에서는 "MTB Cube"라는 새로운 Event representation method를 제안 - 이는 Voxel cube 방식의 micro time bins 분할에서 발생하는 시간 정보 손실을 보완 1. 인접한 두 미세 시간 구간 사이에 추가 시간 구간(bridging time bin)을 삽입하여 시간 정보를 보완 => 두 시간 구간의 중심 사이에 새로운 시간 구간을 추가하여 누락된 정보를 포함한다. 2. 동일한 time step에서 더 풍부한 시간 정보를 보존, model의 event data feature extraction 성능을 향상
기존 SNN 방식에 대한 소개와 새로운 Event presentation method인 MTB Cube 제안
3. Method
Spiking-DETR
Spiking-DETR은 이미지와 같이 총 4개의 module로 구성된다.
Event MTB Cube Representation Method: 이벤트 데이터를 텐서로 변환.
Spatio-temporal Feature Extraction Module: 시공간적 특징 추출 (SNN Backbone 사용).
Spiking-Transformer-based Encoder-Decoder Module: Transformer 기반 구조.
Prediction Head Module: 객체 클래스 및 위치를 예측.
모델은 event stream을 순차적으로 처리
1. event data는 먼저 tensor로 변환되어 공간적 및 시간적 정보를 포함
2. 각 시간 단계마다 변환된 텐서는 Spatio-temporal Feature Extraction Module(Spiking-ResNet-50 사용)으로 입력되어 객체 특징이 추출
3. 이후 Spiking-Transformer-based Encoder-Decoder Module으로 전달
4. Encoder-Decoder는 고정된 수(논문에서는 100개)의 객체 검출 프레임과 해당 범주를 예측하며, 이를 실제값(ground truth)과 결합하여 손실(loss)을 계산
3.1 Mixed Time Bin Cube Representation Method
- Event data의 특정 기간 t동안, 적절한 time step Δt를 선택하고 이를 n = t/Δt로 나누어 고차원 Tensor 생성 - 이때 accumulation strategy는 Event data의 시간 정보를 최대한 보존할 수 있어야 하며, 일반적으로 아래와 같은 방법이 사용된다. 1. Time Surface 2. Event Cube 3. Voxel Cube
Voxel Cube
- Voxel Cube 방식에서는 각 pixel에서 일정 time step Δt 동안 발생한 Event를 binary accumulation한다. - 특정 pixel이 Δt 동안 활성화되면 1로 기록, 그렇지 않으면 0으로 기록한다. - positive와 negative Event는 각각 별도의 channel에 저장되며, final data의 차원은 CxTxHxW이다. C: 채널 수(positive, negative 각각 1채널씩 포함) T: time step의 수 H, W: sensor pixel의 높이와 너비
- Voxel Cube는 시간 구간을 더 세분화하여 시간 정보를 보존 - micro time bin 라면
- 채널 수 C는 다음과 같이 확장
MTB Cube
- 이 논문에서는 Voxel Cube방식의 확장을 제안하며, 이를 MTB Cube라고 한다. 1. time step Δt를 두 개의 micro time bins t1, t2로 분할 2. 두 구간 사이에 bridging time bin을 삽입하여 누락된 시간 정보를 보완 => 새로운 시간 구간 중심
3. 결과적으로 MTB Cube는 추가된 시간 구간을 통해 두 구간 간의 누락된 Event data를 포착
각 방식에서 생성되는 채널 수를 비교
- Event Cube: 2개의 채널 - Voxel Cube: 4개의 채널 - MTB Cube: 6개의 채널 => 추가 시간 구간을 통해 시간 정보를 최대한 볻존, Event data의 시공간적 특징 추출 성능 향상 => 채널 수가 증가하면서 계산 비용 증가, 지나치게 세분화한 시간 구간은 유효한 데이터를 포함하지 못할 수 있다.
3.2 Spatio-temperal Feature Extraction Model
- Spiking model은 Convolution, Max pooling, Batch Normalisation, PLIF뉴런으로 구성 - convolution과 max pooling: SNN에서 feature 학습과 Down sampling을 위해 사용 - Batch Normalisation: SNN 학습 중 PLIF 뉴런 앞에 배치되며, inference 시 이전 또는 이후의 convolution layer와 merge될 수 있다.
- CNN에서 classification을 위한 마지막 layer는 spike 신호에 맞게 적응되어야 한다. - 이를 위해 본 논문에서는 아래와 같은 spike classifier를 제안 1. batch normalisation layer 2. 1x1 convolution layer (class channel n_class 출력
3. PLIF 뉴런 layer
- 이 구조는 average pooling layer를 사용하지 않고도 다양한 크기의 feature map을 학습 가능 (average pooling은 spike 신호와 호환되지 않는다.) - final prediction은 spatial dimension에서 모든 출력 spike를 합산한 후, temperal dimension에서 합산하여 계산
- classifier는 pre-training 동안만 사용된다. - pre-train이 완료되면, classifier module은 비활성화되고, 마지막 batch normalization layer로부터 출력 데이터를 추출하여 Encoder-Decoder로 전달
3.2.1 Spiking-VGG
- VGG는 19개의 컨볼루션 레이어와 3개의 완전 연결 레이어(Fully Connected Layer)로 구성된 CNN 모델 - 본 논문에서는 VGG-19의 최종 classifier를 spiking classifier로 교체하였으며, 나머지 네트워크 구조는 변경하지 않았다. 1. 기존의 Convolution layer와 Pooling layer를 spiking convolution layer와 spiking max pooling layer로 교체 2. 각 spiking convolution layer 앞에 spiking batch normalisation layer 추가 3. ReLU activation function을 PLIF 뉴런으로 대체 VGG-19
3.2.2 Spiking-ResNet
- ResNet은 매우 깊은 신경망을 훈련할 수 있는 CNN이다.
- 아래와 같은 특징을 통해 Spiking-ResNet으로 변환된다. 1. Gradient Vanishing 문제 해결 => ResNet의 Residual Connection은 원래 특징을 보존하여 학습을 안정적이고 부드럽게 만든다. 2. Residual Connection => Spiking-ResNet으로 변환하는데 있어 핵심은 Residual Connection을 Spiking 매커니즘으로 통합하는 것 => Residual Connection은 upper layer와 lower layer 출력 간의 요소별 추가 연산(Element-wise Addition)을 포함하며, 이는 입력 데이터가 0 또는 1의 spike 형태로 변환되었을 때 효과적으로 작동 3. Floating-Point 연산 제거 => Spiking Batch Normalisation layer 이후에 Residual Connection을 배치하여 부동소수점 덧셈만을 포함하도록 재설계 4. Spiking Residual Learning 공식
- O_l: Residual module의 출력 - S_l: PLIF뉴런과 Spiking-ConvBN layer를 통과한 출력 - SN: PLIF뉴런
[좌측] Spiking Residual Block - PLIF 뉴런과 Spiking-ConvBN 연산을 포함하며, Residual Connection을 통해 이전 단계의 출력을 더한다. - Floating-point 연산을 최소화하고 효율적인 Forward Pass를 구현
[우측] Spiking Dense Block - Spiking Residual Block을 기반으로 여러 layer의 출력을 결합하여 더 풍부한 특징을 학습
- Encoder와 Decoder는 각각 N=6개의 Spiking-Transformer 모듈로 구성되며, 각 모듈은 SNN으로 구성 - Spiking Transformer는 DETR의 Encoder-Decoder layout을 채택했지만, 각 모듈을 spiking 신경망으로 수정
[Encoder] - Encoder는 6개의 동일한 Spiking-Transformer 모듈로 구성 - 각 Spiking-Transformer는 두 개의 서브 모듈로 구성 1. multi-head Spiking Self-Attention module(SSA) 2. Spiking Feed-Forward Network(Spiking-FFN)
- 데이터 변환 과정은 아래와 같다. 1. Spiking-Convolution layer는 kernel size 1x1과 step size 1을 사용하여 사용하여 Backbone에서 출력된 feature vector의 채널 수 C를 더 작은 채널 수 d로 mapping 2. 새로운 feature vector 는 다음과 같은 형태로 변환
3. Spiking-Transformer에 입력되는 데이터에는 위치 정보가 포함되어야 하며(positional encoding), 이는 데이터 요소별로 합산되어 Encoder에 입력된다.
[Decoder] - Decoder는 Encoder 출력과 추가적인 object queries Nt = 100을 입력으로 사용하여, 최종적으로 Nt 객체에 대한 예측을 출력 - 각 Spiking-Transformer layer는 Nt target의 예측 값을 출력, 이는 학습 중 Loss Function 계산에 사용 - Decoder는 Nt target의 상대적 위치 정보를 알지 못하므로, 위치를 encoding하여 좌표를 decoding하는 별도의 docoding layer가 필요하다.
3.3.2 Spiking-Transformer
- Spiking-Transformer는 DETR의 Encoder-Decoder 아키텍처를 기반으로 하며, 가장 중요한 모듈인 Transformer를 spiking 입력에 맞게 변형한 것
- 입력 데이터는 Multi step PLIF뉴런과 Spiking Features로 변환 - Q, K, V로 mapping한 후, 행렬 곱셈과 가중치 연산을 통해 Attention 결과를 계산
[SSA(Spiking Self-Attention)] - 순수하게 Spike 기반으로 동작하는 self-attention 모듈 - 기존의 SSA와 비교하여 아래와 같은 특징이 있다. 1. spiking Residual Connection은 spiking 뉴런 layer의 위치를 변경하여 floating-point 가중치와 정수 간의 곱셈 연산을 방지 2. Spiking-ConvBN(Spiking-Convolution과 Spiking-Batch Normalisation)을 사용하여 기존 LinearBN을 대체
X: spiking 입력 sequence Q, K, V: Query, Key, Value로 Self-Attention메커니즘을 통해 계산 s: scalling vector, 행렬 곱셈 결과의 값 크기를 조정
- SSA는 spike 신호의 희소성을 유지하며, 중요한 정보에 가중치를 부여한다.
[Spiking-FFN(Spiking Feed-Forward Network)] - Spiking-FFN은 Spiking Self-Attention 출력 값을 처리하며, 두 개의 Spiking-ConvBN layer로 구성 - 출력 feature map 크기를 변경하지 않고, 입력 데이터를 강화
3.4 Prediction Heads
[Prediction Heads Architecture] - Prediction Head는 두 개의 Spiking-FFN 모듈로 구성 1. Classification: target class를 예측하는 Spiking-FFN 2. Localization: 입력 이미지의 정규화된 중심 좌표, 높이, 너비를 기준으로 object detection frame을 예측하는 Spiking-FFN
- 두 module은 모두 3개의 Spiking-ConvBN layer로 구성, 마지막 spiking-Convolution layer의 매개변수 선택에서 차이점이 존재 - model은 고정된 N_t의 detection frame(Decoder에서의 N_t 객체)를 예측 - 빈 slot에서 object가 detection되지 않을 경우를 나타내기 위해 추가적인 특수 class label Φ이 사용 - 이는 "Background class"와 유사한 역할을 한다.
[Loss Computation] - Loss Function 계산은 DETR 모델의 계산 방식을 따른다.
- Loss Function은 아래 3가지 구성요소로 이루어진다. 1. Cross-entropy Loss: classification을 위한 Loss 2. L1 Loss: Bounding Box regression을 위한 Loss 3. GIoU Loss: Bounding Box regression을 위한 GIoU Loss - 이 3가지 Loss의 weight 합은 총 Loss Function을 구성하며, 각 Loss의 weight 계수는 하이퍼파라미터로 설정
- 본 논문에서는 Hungarian Match를 사용하여 Decoder의 Transformer 마지막 layer 출력의 N_t타겟을 실제값(ground truth)과 1:1로 매칭 - G.T와 매칭되지 않은 target은 Background class로 간주 - Decoder는 6개의 Transformer layer로 구성되며, 총 Loss 계산에는 마지막 layer의 출력만 사용 - 나머지 5개 layer의 출력은 사용되지 않지만, 이를 보조 손실(auxiliary loss)로 사용
Spiking-DETR는 Spiking Neural Networks(SNNs) 기반 object detection 프레임워크 Spatio-temporal Feature Extraction, Spiking-Transformer 기반 Encoder-Decoder, 그리고 Prediction Heads로 구성 MTB Cube를 통해 Event data를 시공간적 Tensor로 변환하고, Spiking-ResNet과 Spiking-Transformer를 활용하여 중요한 특징을 학습 최종적으로 Prediction Heads는 객체의 클래스와 위치를 정확히 예측하며, Hungarian Match 알고리즘을 통해 예측과 실제값을 효과적으로 매칭
4. Experiments
Spiking-DETR은 GEN1과 1Mpx 데이터셋에서 mAP와 FPS 측면에서 우수한 성능을 보였으며, 기존 DETR 및 다른 객체 검출 모델 대비 효율성을 입증 Ablation Study를 통해 MTB Cube와 Spiking-Transformer가 모델 성능에 중요한 기여를 하는 것이 확인
5. Conclusion
에너지 효율성:
Spiking Neural Networks(SNNs)의 장점을 활용하여 기존 CNN 기반 모델에 비해 에너지 효율성이 높다.
MTB Cube Representation:
이벤트 데이터를 고차원 텐서로 변환하면서 시간 정보 손실을 최소화하여 특징 추출 성능을 강화
Spiking-Transformer 기반 설계:
Transformer 구조를 스파이킹 신호에 적합하도록 변형하여 학습 성능을 높이고 계산 비용을 줄였다.
성능 검증:
GEN1과 1Mpx 데이터셋에서 기존 모델(DETR, YOLOv3, RetinaNet 등)보다 우수한 mAP와 FPS를 달성
1. Spiking-DETR은 Spiking-Transformer와 MTB Cube를 활용하여 SNN 기반 객체 검출에서 시공간적 특징 학습과 시간 정보 보존을 강화. 2. GEN1 및 1Mpx 데이터셋에서 높은 정확도(mAP)와 실시간 처리 성능(FPS)을 입증. 3. 에너지 효율적이고 계산 비용이 낮은 모델로, 향후 실시간 시스템에 적합한 가능성을 제시.