Ultralytics YOLO27: 대기자 명단에 등록하세요.
YOLO 라이선스 받기
Ultralytics 용어집으로 돌아가기

Swin Transformer

Swin Transformer는 이동된 로컬 윈도우에서 셀프 어텐션을 계산하는 계층형 비전 Transformer로, 이미지 크기에 따라 계산 비용이 선형적으로 증가합니다.

Swin Transformer(Shifted Window Transformer의 약칭)는 작은 로컬 윈도우 안에서 자기 어텐션을 계산하고 연속 레이어 사이에서 윈도우를 이동하는 계층형 비전 트랜스포머입니다. Microsoft Research Asia의 Ze Liu와 동료들은 2021년 논문 Swin Transformer: 이동 윈도우를 사용하는 계층형 비전 트랜스포머에서 이를 소개했으며, 이 논문은 ICCV 2021 최우수 논문상인 Marr Prize를 수상했습니다. 로컬 윈도우를 사용하면 어텐션 비용이 픽셀 수에 따라 이차가 아닌 선형으로 증가합니다. 또한 패치를 단계별로 병합해 합성곱 신경망과 같은 다중 스케일 특징 맵을 생성합니다. 이러한 특성 덕분에 트랜스포머는 분류를 넘어 고해상도 이미지의 객체 탐지 및 세그멘테이션에 활용되는 범용 백본으로 실용성을 갖추게 되었습니다.

이동 윈도우의 작동 방식#

Swin은 먼저 이미지를 4×4픽셀 패치로 나누고 각 패치를 토큰 임베딩으로 투영합니다. 따라서 224×224 이미지는 Tiny 모델에서 96개 채널을 가진 56×56 토큰 그리드가 됩니다. 토큰 3,136개 전체에 전역 어텐션을 적용하면 모든 토큰을 서로 비교해야 합니다. Swin은 그리드를 겹치지 않는 7×7 토큰 윈도우로 나누고 각 윈도우 안에서만 어텐션을 계산합니다. 논문에서는 h×w 그리드와 C개 채널의 전역 어텐션 비용을 4hwC² + 2(hw)²C로 제시하고, M×M 토큰 윈도우의 비용을 4hwC² + 2M²hwC로 제시합니다. 후자는 hw에 대해 선형입니다.

윈도우만 사용하면 서로 정보를 주고받지 못하므로, 블록을 두 개 쌓을 때마다 윈도우 그리드를 윈도우 너비의 절반인 토큰 3개만큼 이동해 새 윈도우가 기존 경계를 가로지르게 합니다. 윈도우 수를 일정하게 유지하기 위해 구현에서는 특징 맵을 순환 방식으로 이동시키고, 원본 이미지에서 서로 이웃하지 않았던 토큰 사이의 어텐션을 마스킹합니다. 각 블록은 어텐션 점수에 학습된 상대 위치 편향도 추가합니다.

단계 사이에서 패치 병합 레이어는 인접한 토큰 2×2 그룹을 연결한 뒤 선형 투영해 해상도를 절반으로 줄이고 채널 수를 두 배로 늘립니다. 네 단계에서는 입력 해상도의 1/4, 1/8, 1/16, 1/32에 해당하는 특징 맵을 출력합니다. 이는 ResNet과 같은 스트라이드이므로 Swin을 특징 피라미드 네트워크와 같은 기존 탐지 및 세그멘테이션 헤드에 바로 연결할 수 있습니다. torchvision 구현에서는 두 메커니즘을 모두 확인할 수 있습니다.

import torch
from torchvision.models import swin_t

# Swin-T architecture; random weights are enough to inspect its structure
model = swin_t().eval()

# Each pair of blocks uses 7x7 windows, the second shifted by 3 patches
regular, shifted = model.features[1]
print(f"Window {regular.attn.window_size}, shift {regular.attn.shift_size} then {shifted.attn.shift_size}")

# features alternates stages with patch merging; stage outputs are (batch, height, width, channels)
x = torch.randn(1, 3, 224, 224)
with torch.no_grad():
    for i, layer in enumerate(model.features):
        x = layer(x)
        if i % 2 == 1:
            print(f"Stage {i // 2 + 1}: {tuple(x.shape)}")

Window [7, 7], shift [0, 0] then [3, 3]을 출력한 다음 단계별 출력으로 (1, 56, 56, 96), (1, 28, 28, 192), (1, 14, 14, 384), (1, 7, 7, 768)을 표시합니다. 각 단계에서 그리드의 크기는 절반으로 줄고 채널 수는 두 배가 되므로, 고밀도 예측 헤드가 필요로 하는 피라미드가 만들어집니다.

Swin Transformer와 ViT 및 CNN 비교#

기존 ViT는 이미지를 16×16 패치로 나누고 모든 레이어에서 단일 해상도를 유지하며 전역 어텐션을 적용합니다. 이는 이미지 분류에는 적합하지만 탐지 및 세그멘테이션의 고해상도 입력에는 비용이 많이 듭니다. Swin은 합성곱 네트워크의 두 가지 사전 특성인 지역성과 특징 계층 구조를 다시 도입하면서 어텐션 메커니즘의 입력 의존적 가중치는 유지합니다. Swin의 로컬 윈도우는 모든 토큰이 자신의 이웃에 어텐션을 적용하는 슬라이딩 윈도우 어텐션과 다릅니다. Swin의 윈도우는 여러 토큰이 공유하는 고정 분할이므로 GPU 행렬 곱 연산에 효율적으로 매핑됩니다.

출시 당시 가장 큰 모델인 Swin-L은 ImageNet-22K에서 사전 학습되었으며, ImageNet-1K에서 top-1 정확도 87.3%, COCO test-dev에서 박스 AP 58.7 및 마스크 AP 51.1, ADE20K에서 mIoU 53.5를 기록해 해당 탐지 및 시맨틱 세그멘테이션 벤치마크에서 당시까지 발표된 최고 성능을 달성했습니다. 이 모델의 성공은 합성곱 연구의 발전도 이끌었으며, Meta의 ConvNeXt(2022)는 Swin의 설계 요소를 차용해 ResNet을 현대화하고 Swin의 정확도와 대등하거나 더 높은 정확도를 기록했습니다.

Swin은 맞춤형 Ultralytics 모델의 백본으로 사용할 수 있습니다. 모델 YAML 파일의 TorchVision 모듈은 사전 학습된 ImageNet 가중치와 함께 torchvision의 swin_t를 불러오며, YOLO 탐지 헤드는 반환된 단일 스트라이드-32 특징 맵을 사용해 학습합니다.

변형 모델과 활용 분야#

  • Swin Transformer V2: 2022년에 설계를 매개변수 30억 개와 최대 1,536×1,536픽셀 이미지까지 확장했습니다. 학습 안정성을 유지하기 위해 스케일링된 코사인 어텐션과 로그 간격의 연속 위치 편향을 사용합니다.
  • 비디오 동작 인식: Video Swin Transformer는 윈도우를 공간과 시간 축을 아우르는 3차원으로 확장해 비디오 클립의 동작을 분류합니다.
  • 초해상도 및 복원: SwinIR은 Swin 블록을 사용해 이미지 확대, 노이즈 제거 및 JPEG 아티팩트 제거를 수행합니다.
  • 의료 영상 분석: Swin-Unet과 Swin UNETR은 Swin 인코더와 U-Net 방식 디코더를 결합하며, Swin UNETR은 3D MRI 볼륨에서 뇌종양을 세그멘테이션합니다.

솔루션 살펴보기

스포츠 분야의 컴퓨터 비전

스포츠 분야의 컴퓨터 비전

Ultralytics YOLO가 선수 및 공 추적, 경기력 분석, 코칭 인사이트, 선수 재활을 통해 스포츠 비전을 구현하는 방법을 알아보세요.
자세히 알아보기
항공 이미지 컴퓨터 비전

항공 이미지 컴퓨터 비전

Ultralytics YOLO를 활용해 드론 및 항공 이미지를 농업, 양식업, 보전, 지리 공간 분석을 위한 실시간 인사이트로 전환하세요.
자세히 알아보기
항공우주 분야의 컴퓨터 비전

항공우주 분야의 컴퓨터 비전

Ultralytics YOLO를 활용해 항공기 검사, 활주로 FOD 감지, 공항 지상 운영, 복합재 결함 감지 등 항공우주 분야에 컴퓨터 비전을 적용하세요.
자세히 알아보기
보안 분야의 컴퓨터 비전

보안 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 모든 시설을 보호하세요. Vision AI는 경계 모니터링, 위협 감지, 번호판 인식, 작업장 안전을 지원합니다.
자세히 알아보기
로보틱스 분야의 컴퓨터 비전

로보틱스 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 더 스마트한 머신을 구현하세요. 로보틱스 분야의 Vision AI는 자율 주행, 인식, 객체 추적, 실시간 제어를 지원합니다.
자세히 알아보기
물류 분야의 컴퓨터 비전

물류 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 물류를 간소화하세요. 비전 AI는 화물 검사, 분류, 차량 추적, 실시간 창고 안전 모니터링을 지원합니다.
자세히 알아보기
리테일 분야의 컴퓨터 비전

리테일 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 리테일의 새로운 가능성을 열어 보세요. 비전 AI는 재고 추적, 선반 모니터링, 대기열 관리, 더욱 심층적인 고객 인사이트를 지원합니다.
자세히 알아보기
의료 분야의 컴퓨터 비전

의료 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 의료 솔루션을 구축하세요. 의료 분야의 비전 AI는 의료 영상 판독을 가속화하고, 진단을 개선하며, 환자 모니터링을 지원합니다.
자세히 알아보기
제조 분야의 컴퓨터 비전

제조 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 제조 공정을 최적화하세요. 비전 AI는 품질 관리, 결함 탐지, PPE 규정 준수, 조립 라인 자동화를 지원합니다.
자세히 알아보기
자동차 분야의 컴퓨터 비전

자동차 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 자동차 분야에 컴퓨터 비전을 적용하세요. 비전 AI는 도로 안전, 운전자 지원, 차량 자동화를 개선해 더 스마트한 도로를 구현합니다.
자세히 알아보기
농업 분야의 컴퓨터 비전

농업 분야의 컴퓨터 비전

Ultralytics YOLO 모델로 스마트 농업에 비전 AI를 도입하세요. 작물 모니터링, 가축 추적, 정밀 농업을 지원하여 더 높은 수확량과 더 스마트한 농업을 실현합니다.
자세히 알아보기

함께 AI의 미래를 만들어 가세요!

머신러닝의 미래와 함께 여정을 시작하세요