Segmenter 논문리뷰
1. Introduction
[1] CNN 기반 Semantic Segmentation의 한계점
•
CNN 기반 Semantic Segmentation 모델들의 특징
◦
Encoder를 사용해서 저해상도의 image feature를 추출하고, Decoder로 추출된 image feature를 upsampling하여 각 픽셀에 대한 class score를 포함한 segmentation map을 생성.
•
CNN 기반 Semantic Segmentation의 한계점
1.
CNN기반 모델들에서는 Convolutional filter를 사용하기 때문에 전체이미지에 대한 global information을 파악하기 어려움.
→ Convolution filter는 고정된 크기의 커널을 사용해서 local information을 추출하기 때문에 국소적인 영역에서의 feature 추출에는 유리하지만 global context를 인식하는데는 한계가 있음.
→ 필터 사이즈가 고정되어있기 때문에 만약 작은 필터를 사용하게 된다면 작은 객체는 잘 분할할 수 있지만, 큰 객체는 전체적인 형상을 파악하기 어려울 수 있고, 큰 필터는 반대로 작은 객체를 놓칠 수 있음.
→ Semantic Segmentation에서 이미지 패치가 전체 이미지내에서 어디에 위치해 있는지 등과 같은 global information을 파악해야지만 local한 패치를 정확하게 분할할 수 있는 경우도 발생하기 때문에 CNN 기반 semantic segmentation에는 한계가 존재.
2.
Convolution filter는 인접한 픽셀간의 local한 관계는 잘 파악하지만, 멀리 떨어진 픽셀간의 장거리 의존성(Long-term Dependency)를 파악하는데 한계가 있음.
•
CNN 기반 Semantic Segmentation의 한계점을 극복하기 위한 제안방법들
◦
DeepLab
: Dilated convolution(확장 합성곱)과 spatial pyramid pooling을 사용해서 feature aggregation(Feature 결합)을 진행하는 모델
→ convolution filter의 receptive field를 확장할수 있고, multi-scale feature를 파악할 수 있음.
◦
NLP 기반의 Segmentation 방법들
▪
전역적 문맥을 파악하기 위해 channel, spatial attention, point-wise attention을 도입함
→ 하지만, 이러한 방법들 모두 근본적으로 CNN 기반 백본모델을 사용하기 때문에 local한 특성과 패턴을 학습하는데 초점이 맞춰져 있다는 한계가 있음. (convolutional backbones are still biased toward local interaction.)
[2] Transformer 기반의 semantic segmentation의 장점
•
Transformer 기반의 semantic segmentation의 특징
◦
transformer 구조를 사용하면 semantic segmantation 문제를 sequence-to-sequence 문제로 치환해서 해결할 수 있고, 이를 통해 모델의 모든 stage에서 전역적 정보를 파악할 수 있음.
→ NLP에서 transformer는 자연어(문장,글 등)을 word sequence 형태로 변환해서 self-attention연산을 수행하고 이를 통해 각 단어가 전체 corpus에서 어떤 위치에 있는지, 어떤 의미를 가지는 등의 전역적 문맥을 고려함.
→ 이처럼, vision 문제에서도 전체 이미지를 작은 사이즈의 패치로 나누고, 이 패치들을 sequence 형태로 만들어 transformer의 입력으로 주게되면, 전체 이미지 내에서 작은 패치들이 갖는 global context를 파악할 수 있음. (ViT)
•
Transformer 기반은 Semantic Segmentation 모델 사례
◦
ViT
◦
DeiT → token기반 distillation 기법 사용
◦
SETR → ViT 백본을 사용하고, CNN 디코더를 사용하는 모델
•
Transformer 기반의 semantic segmentation은 self-attention연산을 수행하는 과정에서 quadratic cost가 발생하는 단점이 있음. (이미지 데이터에 대한 attention 연산은 연산량이 더 많이 발생함)
3. Our Approach : Segmenter
[3] Segmenter Encoder와 Decoder 구조 이해
Segmenter는 Encoder로 ViT 모델을 사용, Decoder로는 Mask Transformer를 사용(DeiT)하는 구조.
1.
Encoder - ViT
Encoder 구조
2.
Decoder - Mask Transformer
Decoder 구조
•
Mask Transformer를 디코더로 사용했을 때의 장점
◦
CNN 기반 모델이 아닌 순수 Transformer 아키텍쳐를 디코더로 사용했을 때 전역적 문맥을 훨씬 효과적으로 학습할 수 있음.
◦
Mask Transformers는 패치 임베딩과 클래스 임베딩을 동시에 처리하고, Decoder에서도 Self-Attention 연산을 수행함.
→ 이 과정에서 클래스 정보와 전역적 문맥을 고려한 feature map을 생성할 수 있음.
◦
대표적인 CNN 기반 모델의 UNet의 Decoding 과정과 비교
▪
UNet은 Encoder에서 다운 샘플링된 feature map을 점진적으로 업샘플링하면서 원본 해상도로 복원
•
Skip Connection을 통해서 각 upsampling 단계를 통해 얕은 층의 feature map과 깊은 층의 feature map을 합치는 방식으로 다양한 해상도의 특징을 파악함.
•
얕은 층을 통해서 local information과 세밀한 특징을 추출
•
깊은 층을 통해서 global information과 추상적인 특징을 추출
→ 이 두 층을 skip connection으로 결합해서 local information과 global information을 모두 고려하게 됨 (local-global trade off 해결하고자 함)
▪
그래도 Segmenter 논문 저자는 UNet과 같은 CNN 기반 모델들은 백본모델이 FCN이고, convolution filter를 사용하기 때문에 모든 이미지 패치에 대해서 self-attention을 수행하는 Transformer 기반의 디코더가 global information 파악면에서는 더 좋은 구조라고 하는 것.
4. Experimental Results
[4] Implementation Details
•
Transformer models
◦
Encoder 백본 모델로 ViT Tiny, Small, Base, Large 모델을 사용
→ 레이어 수와, 토큰 사이즈에 따라 ViT 모델 사이즈(파라미터 수)가 달라짐.
◦
MSA 블록의 헤드 크기는 64로 고정 (Heads 값은 토큰 사이즈를 헤드크기(64)로 나눈 값)
◦
MSA 다음 MLP 블록의 hidden layer size는 토큰 사이즈의 4배로 지정
◦
ViT와의 비교를 위해 DeiT를 대조군으로 사용
◦
입력 패치 크기를 8×8, 16×16, 32×32로 나누어 패치 사이즈에 따른 여러 해상도에 대한 성능 평가 진행
•
Segmenter 사전학습은 ImageNet 데이터 셋에서 진행됨
◦
ViT 백본, DeiT는 ImageNet-21k에서 사전학습된 모델을 사용함
◦
Data Augmentation, Stochastic Depth, Dropout 정규화 기법을 사용해서 ImageNet에서 top-1 정확도를 향상시킴
•
Optimization
◦
loss function : pixel-wise cross entropy loss
◦
optimizer : SGD (base learning rate 사용, weight decay 0으로 설정)
◦
learning rate scheduler : polynomial learning rate decay 도입
◦
FineTuning Task에서 데이터셋 별 Hyperparameter
▪
ADE20K : 을 으로 설정, iter 160K
▪
Pascal Context: 을 으로 설정, iter 80K
▪
Cityscapes: 을 으로 설정, iter 80k
•
Inference
◦
슬라이딩 윈도우 기법을 사용해 여러 해상도, 사이즈의 이미지에 대한 모델 추론 결과 제공
◦
multi-scale inference(다중 스케일 추론)를 위해 0.5, 0.75, 1.0, 1.25, 1.5, 1.75의 비율로 다시 스케일한 이미지들을 사용해서 다양한 크기의 객체나 특징을 잘 감지하도록함
Swin-UNETR
•
Swin-UNETR 에서 encoder에 Swin Transformer를 적용함으로써 장점을 무엇이라고 기재하는지 논문 내용 파악.
1. Introduction
•
FCNN 기반 Network의 한계점
◦
Segmenter논문에서 언급된것과 동일하게 Convolution filter의 limited kernel size로 인한 long-range dependency와 global context 학습이 잘 안되는 문제를 제시
→ 다양한 크기와 모양의 brain tumor에 대한 정확한 segmentation이 힘듦
→ 추후 다양한 연구들에서 convolution kernel 사이즈를 조정하는 방식을 적용해서 해당 문제를 극복해보려고 했지만, receptive field가 local region으로 한정되는 문제 자체를 해결할 수 는 없음. (Ex DeepLab; Dilated Convolution 등)
•
Transformer 기반 Semantic Segmentation 모델들의 등장
◦
ViT 기반의 Segmentation 모델들은 long-range information과 global context 학습에 더 효과적임
ex : 의료영상분석 분야의 UNETR - ViT를 encoder의 백본모델, 디코더는 UNet을 사용함
•
Swin-UNETR
◦
계층적 Vision Trasformer 구조와 Shifted Window MSA를 사용하는 Swin-Transformer를 인코더로 사용하고, 디코더로 UNET을 사용함 (Skip Connection으로 연결)
◦
주요 Task는 multi-modal 3D brain tumor segmentation (2021 BraTS)
◦
Swin Transformer를 인코더로 적용한 이유(장점)
1.
Swin-Transformer의 계층적 구조를 통해 다양한 해상도에 대한 long-range dependencies 학습
•
ViT는 네트워크의 모든 레이어에서 고정된 해상도로 이미지 패치를 처리하기 때문에 단일 수준의 Feature Map이 형성됨
•
Swin Transformer는 계층적 구조를 통해서 다양한 해상도의 feature map을 형성하기 때문에 multi-scale의 global information과 장기 의존성을 학습하는데 효과적임.
2.
Shifted Window Multi-head Self Attention을 통해 global context를 효과적으로 학습가능
•
ViT는 모든 이미지 패치에 대해서 글로벌하게 셀프어텐션 연산을 수행하기 때문에 전체 이미지에 대한 전역적 문맥을 잘 파악할 수 있는데 CNN 기반 모델들과 비교했을 때 지역적 정보를 덜 고려하게 되어서 inductive bias가 상대적으로 낮음
•
Swin Transformers는 트랜스포머 블록에서 Window MSA, Shifted Window MSA를 사용해서 인코더에서 지역적 정보와 전역적 정보를 모두 효과적으로 학습할 수 있도록 함.