ODAI

[Review]Spiking DETR

Donghun Kang 2025. 1. 22. 15:41

0. Abstract

- 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의 출력을 결합하여 더 풍부한 특징을 학습

 


3.3 Spiking-Transformer-based Encoder-Decoder Module

3.3.1 Spiking Encoder-Decoder Stacks

DETR vs Spiking-DETR

- 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. 에너지 효율적이고 계산 비용이 낮은 모델로, 향후 실시간 시스템에 적합한 가능성을 제시.

 


  • 원문

9. Spiking DETR.pdf
0.44MB


  • PDF

9. Spiking DETR PDF.pdf
3.02MB