2021년 3월 25일 arxiv에 기재된 "Swin Transformer: Hierarchical Vision Transformer using Shifted Windows"에 대한 리뷰이다.
code
github.com/microsoft/Swin-Transformer?utm_source=catalyzex.com
Abstract
- computer vision의 general-purpose backbone을 위해 제안되었다.
- Transformer를 language에서 vision영역에 adapt하는 어려움은 visual entities의 scale variation에 기인한다.
- 따라서 shifted windows로 계산되는 hierarchical Transformer를 도입할 것이다.
- shifted windows를 도입함으로써 self-attention의 계산을 non-overlapping local windows로 limit하고 cross-window connection을 allow한다.
#non-overlapping -> 윈도우 간 겹치는 영역이 없는 - 이러한 계층적 구조를 통해
1. scale에 대해 flexibility를 갖게 되고
2. image size에 대해 linear computational complexity를 갖게 된다. - Swin Transformer는 위의 특성 덕분에
image classification(86.4 top-1 accuracy)
dense prediction task(58.7 box AP , 51.1 mAP on COCO test-dev)
#dense prediction task -> image의 each pixel에 대한 label을 predict하는 task
semantic segmentation (53.5 mIoU on ADE20K val) 를 비롯한 여러 vision task에 compatible하게 사용될 수 있다.
Introduction
Swin Transformer는 small-sized patches부터 시작하여 점진적으로 더 깊은 Transformer layers에서 neighboring patch와 merge된다.
Swin Transformer의 key design은 window의 shift이다.
shift window는 sliding window에 비하면 훨씬 낮은 latency를 갖는다.
Related Works
Transformer based vision backbones
ViT는 large-scale training datasets를 요구하지만, DeiT는 ImageNet-1K datasets에서도 효율적으로 학습하는 방법을 제시했다.
하지만 architecture이 general-purpose에 부적합하고, low-resolution feature maps와 quadratic complexity with image size로 인해, 고 해상도 task에 부적합하다는 문제가 존재하며, 이에 대처하는 모델들의 성능도 좋지 않다.
Method
'프로젝트 > (Vision)이미지 검색 및 상품추천' 카테고리의 다른 글
개발 일지 (3) - Extract features 및 Feature map 그리기 (0) | 2021.05.04 |
---|---|
개발일지 (2) - detection 결과물을 JSON출력하기 (0) | 2021.05.02 |
개발일지 (1) - 에러 수정, keras-RetinaNet 실행 (0) | 2021.05.02 |