hye-log

[부스트캠프 AI Tech]WEEK 10_DAY 45 본문

Boostcourse/AI Tech 4기

[부스트캠프 AI Tech]WEEK 10_DAY 45

iihye_ 2022. 11. 23. 03:23

⚽ 개별학습


[7] Advanced Object Detection 1

3. Transformer

1) Overview

(1) Transformer

- NLP에서 long range dependency 해결 -> Vision에서 Vision Transformer(ViT)로 발전

- End-to-End Object Detection with Transformers(DETR)

- Swin Transformer

(2) Self Attention

Vaswani, A., Shazeer, N., Parmar, N., Uszkoreit, J., Jones, L., Gomez, A. N., ... & Polosukhin, I. (2017). Attention is all you need.  Advances in neural information processing systems ,  30 .

- Input(text)를 deep learning이 이해할 수 있는 포맷인 vector로 변환해줌

- Input embedding과 Positional Encoding을 합쳐서 network에 넣어줌

 

2) Vision Transformer(ViT)

(1) Overview

- Flatten 3D to 2D (Patch 단위로 나누기)

- Learnable한 embedding 처리

- class embedding, position embedding 합치기

- Transformer

- Predict

(2) ViT의 문제점

- 많은 양의 Data를 학습해야 함

- computational cost가 큼

- 일반적인 backbone으로 사용하기 어려움

 

3) End-to-End Object Detection with Transformer

(1) Contribution

- transformer를 처음으로 object detection에 적용

- 기존 object detection의 hand-crafted post process 단계에서 transformer를 이용함

(2) Architecture

Carion, N., Massa, F., Synnaeve, G., Usunier, N., Kirillov, A., & Zagoruyko, S. (2020, August). End-to-end object detection with transformers. In  European conference on computer vision  (pp. 213-229). Springer, Cham.

- 1 stage -> CNN backbone -> transformer encoder-decoder -> prediction head

- highest level feature map 사용

- Flatten 2D

- positional embedding

- Encoder-Decoder

(3) Train

- ground truth와 prediction이 N:N 매핑

- ground truth에서 부족한 object 개수만큼 no object로 padding 처리

 

4) Swin Transformer

(1) ViT의 문제점 해결

- CNN과 유사한 구조로 설계

- window로 cost를 줄임

(2) Architecture

Liu, Z., Lin, Y., Cao, Y., Hu, H., Wei, Y., Zhang, Z., ... & Guo, B. (2021). Swin transformer: Hierarchical vision transformer using shifted windows. In  Proceedings of the IEEE/CVF International Conference on Computer Vision  (pp. 10012-10022).

- transformer를 4개로 나누어서 각 stage 별로 transformer를 수행함

- Patch partitioning : image를 patch로 나누어줌

- Linear embedding : Patch에 embedding 더하기 (class embedding을 제거)

- Swin transformer block : attention을 두 번을 진행함. cost를 줄임.

- Window Multi-head Attention : Swin tranformer에서는 Multi-head Attention 대신 Window Multi-head Attention을 사용

- Patch Merging : feature map의 사이즈를 절반으로 줄임

(3) Window Multi-head Attention

Liu, Z., Lin, Y., Cao, Y., Hu, H., Wei, Y., Zhang, Z., ... & Guo, B. (2021). Swin transformer: Hierarchical vision transformer using shifted windows. In  Proceedings of the IEEE/CVF International Conference on Computer Vision  (pp. 10012-10022).

- Window 단위로 embedding을 나누고, window 안에서만 transformer 연산 수행

- 단점 : receptive field 제한

(4) Shifted Window Multi-head Attention

- transformer block 2번째 layer에서 수행

- window size와 다르게 나뉜 부분 해결 필요

(5) Summary

- 적은 data에도 학습이 잘 이루어짐

- window 단위를 사용하여 computation cost를 줄임

- CNN과 비슷한 구조로 object detection, segmentation 등의 backbone으로 활용

 



⚽ 오늘의 회고

오전에는 5 fold로 나눈 데이터셋 실험 결과 공유하면서 어떤 데이터셋을 선택하면 좋을지 고민했다. 결과가 4개만 나와서 validation과 test mAP 차이가 적은 데이터셋을 선택하기로 했는데, 사실 5 fold의 데이터 분포가 비슷해서 mAP도 비슷하게 나왔다. 흠.. 이러면 데이터셋을 찾는 게 의미가 있는건지 고민..! submission 파일을 보니 class, x, y 좌표를 통해서 test 이미지에 시각화 할 수 있을 거 같아서 이것저것 해보았다. 사실 엄청 잘 되지는 않고.. 자꾸 오류나고 시간도 오래 걸리고 이게 맞는지, 이게 필요한건지 잘 모르겠지만 그래도 해보는 것에 의의를 두는걸로..! 

728x90
Comments