1day_1paper icon indicating copy to clipboard operation
1day_1paper copied to clipboard

[27] SegFormer: Simple and Efficient Design for Semantic Segmentation with Transformers

Open dhkim0225 opened this issue 3 years ago • 0 comments

paper code

  1. positional encoding 이 필요없고, multi-scale output을 내는 encoder 제안
  2. MLP decoder + (local attention, global attention) 을 잘 조합

SegFormer

image (H×W×3) 이 들어왔을 때, (4×4) 크기의 patch 로 자른다. ViT 가 16x16 이었던 걸 생각하면 상당히 작은 patch 인데 이렇게 하는 편이 dense prediction task에 잘 맞는다.

이걸 hierarchycal transformer 에 넣어서 {1/4, 1/8, 1/16, 1/32} output들을 뽑아주게 된다.

Hierarchical Transformer Encoder

Mix Transformer encoders (MiT-B0 ~ MiT-B5) 를 설계했음. ViT와 비슷하지만 segmentation 용도.

Overlapped Patch Merging

중간에 feature-map 이 줄어드는 것을 볼 수 있는데 이건 Overlapped Patch Merging 이라는 것을 써서 가능하다 ViT 에서는 뜯어낸 (16×16×3) patch를 (1×1×C) 로 flatten 하듯이, (2×2×C) 를 (1x1x4C) 로 flatten 시키면, maxpooling 비스무레 사용 가능하다. swin 에서 지적했던 것처럼 patch 끼리만 보면 싫으니까, 어느정도 overlap 을 주어서 token을 준비한다. K(patch size) = 7 S(Stride) = 4 P(Padding) = 3 이를 이용해서 F1 (H/4 × W/4 × C1) 에서 F2 (H/8 × W/8 × C2) 를 만드는 것이 가능하다.

Efficient Self-Attention

Pyramid ViT 에서 사용했던 방식을 쓴다. Reduction R 에 대해, NxN 의 attention 이 필요하다 할 때, NxC 의 key에 대해서 reshape 을 수행한 후에 Linear 를 태워버린다. image 최종적으로 나오는 key shape 은 (N/R, C) 가 된다. ~결국 Linformer 아닌가?~

총 4개의 stage에 각각 reduction 은 [64, 16, 4, 1] 로 설정했다.

Mix-FFN

그림에서는 노랑 박스. ViT 는 Positional Encoding (PE) 으로 fixed size tensor를 썼는데, variable length input에 PE 를 reshape 해서 더하려면 interpolate 가 필요하고, 이게 성능 하락으로 이어진다. CPVT(https://arxiv.org/pdf/2102.10882.pdf) 에서는 data-driven PE 를 만들려고 3x3 conv를 써주기도 했다.

근데, 저자들은 semantic segmentation 에 대해서는 PE 가 딱히 필요없다고 주장한다. position 정보가 좀 부족하니까 Mix-FFN layer 를 다음과 같이 설계해서 쓴다. image 3x3 conv 정도면 position 정보를 충분히 줄 수 있다는 것도 실험적으로 증명한다.

image image

Lightweight All-MLP Decoder

image 디코더는 간단하게 위와같이 구성했다. 이 부분은 그림을 보는 게 더 간편하다.

SETR 과 다른점?

  • ImageNet-1K pretrain 만 했다. SETR 은 ImageNet-22K pretrain 했다.
  • SETR 은 ViT 써서 느리다
  • PE 를 없애서 효율적이다.
  • Decoder 도 MLP 로 간단하다.

Result

Ablation study

image ~Mix-FFN 좋은 건 알겠는데, computation 좀 썼잖아. 속도나 파라미터 어떻게 바뀌냐고.. ㅡㅡ 아...~

ADE20K

확실히 이 논문이 왜 떴는지 알겠다. 효율이 어마어마하게 나오긴 한다. image image

CityScape

image image

COCO

image

dhkim0225 avatar Nov 11 '21 03:11 dhkim0225