컴퓨터공학/다중 객체 인식

Swin Transformer란?

airoot 2025. 2. 1. 14:21

Swin Transformer(Shifted Window Transformer)는 비전 트랜스포머(ViT)의 단점을 개선하여, 이미지 분류, 객체 검출, 분할(Segmentation) 등 다양한 비전 작업에 최적화된 모델이다. Microsoft Research에서 2021년에 발표했으며, 기존 CNN보다도 강력한 성능을 보인다.


1. Swin Transformer의 핵심 개념

1) Shifted Window 기반의 지역적(Self-Attention) 연산

  • 기존 ViT(Vision Transformer)는 Self-Attention을 적용하지만, 이는 연산량이 매우 많음.
  • Swin Transformer는 이미지를 작은 창(Window) 단위로 나누고, 각 창에서 Self-Attention을 수행하여 연산량을 감소시킴.
  • 이후 창을 조금씩 이동(Shift)하여 정보가 고립되지 않도록 함.

장점:
-글로벌 연산보다 연산량 감소
-CNN처럼 지역적 패턴을 학습할 수 있음
-창을 이동(Shift)하면서 정보가 고립되지 않도록 개선


2) Hierarchical Feature Map (계층적 특징 맵)

  • CNN처럼 이미지를 단계적으로 다운샘플링(4배 축소)하며 특징 맵을 생성.
  • 이를 통해 다양한 크기의 객체를 효과적으로 학습할 수 있음.

- 비교

모델특징 맵 구조

ViT 모든 패치를 동일한 크기로 유지
Swin CNN처럼 계층적 구조(4x Downsample)

장점: 객체 크기에 더 유연하게 대응 가능


3) 연산 효율성 (Linear Complexity)

  • 기존 ViT는 Self-Attention의 연산량이 O(N²) (즉, 픽셀 수가 많을수록 연산량 급증).
  • Swin Transformer는 창(Window) 단위로 Self-Attention을 수행하여 O(N) 수준으로 연산량을 줄임.

장점:

  • 높은 해상도의 이미지에서도 빠르게 처리 가능

2. Swin Transformer의 구조

1) Patch Partition (패치 분할)

  • 이미지를 4×4 크기의 패치로 나눔
  • 각 패치는 채널 수가 3 → 96으로 변환됨

2) Linear Embedding

  • 패치의 픽셀 값을 고차원 벡터(임베딩)로 변환

3) Swin Transformer Blocks

  • 윈도우(Window) 단위의 Self-Attention 적용
  • Shifted Window Mechanism을 통해 창을 이동하며 학습

4) Patch Merging

  • 계층적 특징 맵을 만들기 위해 패치들을 병합(Downsampling)
  • 채널 수 증가 (C → 2C → 4C 등)

3. Swin Transformer의 활용 분야

- 객체 검출(Object Detection)

  • Faster R-CNN, YOLO 등의 백본(Backbone)으로 사용 가능
  • 기존 ResNet 기반 모델보다 성능 향상

- 이미지 분할(Segmentation)

  • Swin-UNet, Mask R-CNN 등에서 사용됨
  • Self-Attention을 활용하여 경계 부분을 더 정교하게 분할

- 이미지 분류(Image Classification)

  • ImageNet 등 대규모 데이터셋에서 SOTA(State of the Art) 성능

- 비디오 이해(Video Understanding)

  • 비디오 데이터에도 효과적으로 적용 가능

4. Swin Transformer vs. 기존 모델 비교

모델연산량특징

CNN (ResNet) 낮음 지역적인 특성 학습
ViT 높음 (O(N²)) 글로벌 Self-Attention 적용
Swin Transformer 중간 (O(N)) 지역적 + 글로벌 정보 조합

Swin Transformer는 CNN과 ViT의 장점을 결합한 모델로, 효율적인 연산과 뛰어난 성능을 제공한다. 특히, 객체 검출과 분할 같은 다양한 비전 작업에 적합하며, 현재 최신 연구에서도 활발히 사용되고 있다.

요약

- 연산량을 줄이면서도 강력한 성능
- CNN처럼 계층적 특징 맵 사용 → 다양한 크기의 객체 처리 가능
- 윈도우 단위의 Self-Attention 적용 → 글로벌 정보까지 학습 가능
- 다양한 비전 작업(객체 검출, 분할, 분류 등)에서 SOTA 성능 유지