Faster RCNN을 학습할 때 배경과 객체를 나누는 기준이 threshold가 0.5였는데 이것을 바꿔서 실험을 해 보았다.
(b)와(c)를 활용하여 (d)를 만들었다.
일정한 패턴을 지닌 Conv가 geometric transformations에 한계가 있기 때문에 DCN이 등장했다.
Transformer를 처음으로 Object Detection분야에 적용시켰다.
Backbone
- 224x224 크기의 입력 사이즈를 받는다.
- 7x7 feature map size를 가진다.
- 49개의 feature vector를 encoder 입력값으로 사용한다.
Decoder
Encoder에서 나온 벡터를 Decoder에 넣는다. 이때 Output vector의 word 개수를 정해야한다.
ViT의 문제점
- 많은 양의 Data를 학습해야만 성능이 나온다.
- Transformer 특성상 computational cost가 크다.
- 일반적인 backbone으로 사용하기 어렵다.
-> CNN과 유사한 구조로 설계하고 cost를 줄이기 위해 window 개념을 사용했다.
transformer를 N개로 나눠서 stage별로 transformer를 수행했다. feature map 사이즈를 줄여주었다.
- Patch Partitioning
- Linear Embedding
- Swin Transformer Block
2번의 Attention이 하나의 Transformer로 묶인다.
ViT느 Multi Head Attention을 사용하는 반면 Swin은 Window Multihead Self Attention과 Shifted Window Multihead Attention을 사용한다.
- Window Multihead Attention
- window 단위로 embedding을 나눈다.
- 기존 ViT같은 경우 모든 embedding을 Transformer에 입력한다.
- Swin Transformer는 window 안에서만 Transformer 연산을 수행한다.
- 이미지 크기에 따라 증가되던 computational cost가 window 크기에 따라 조절이 가능하다.
- receptive field가 제한된다는 단점이 존재한다.
shifted window multihead attention은 window multihead attention의 단점ㅇ르 보완하기위해 w,h방향으로 shift하여 다시 연산을 진행한다. 이렇게 해서 receptive field가 다양해지는 효과를 기대할 수 있지만 가장자리에 window 조각들이 생기는 단점이 발생한다.
그렇기 때문에 남는 부분을 masking 처리하여 self-attention 연산이 되지 않도록 한다.
- Patch Merging