Search

Segmenter : Transformer for Semantic Segmentation

카테고리
VCMI논문리뷰
Index
ML/DL
Segmenter
ViT
Semantic Segmentation
날짜
2024/02/02

1. Introduction

1.1 Segmenter 등장 배경

Semantic Segmentation 이란

각 이미지 픽셀을 객체에 해당하는 카테고리 레이블(클래스)에 매칭하는 작업.
이미지의 각 픽셀이 어느 클래스에 속하는 지 레이블을 만들고, 클래스 개수 만큼 output 채널을 생성.
→ 모든 output 채널을 합쳐 하나의 출력 이미지인 Segmentation Map을 생성
→ 사람과 옷 사이의 경계를 정확하게 구분하는 작업처럼, 타겟이 되는 작업에 대해 고해상도의 이미지 표현을 제공해야 함.

기존 Semantic Segmentation의 한계

최근의 Semantic Segmentation 방식은 컨볼루션 인코더-디코더 아키텍처에 의존
1) 저해상도 이미지 특징을 생성하는 인코더
2) 픽셀 별 클래스 점수를 가진 segmentation map으로 feature를 업 샘플링하는 디코더로 구성
Fully Convolutional Network 기반의 모델들을 사용해 높은 수준의 시맨틱 정보들을 파악할 수 있었음.
→ 컨볼루셔널 필터가 가지고 있는 지역적인 특성으로 인해 이미지의 global context를 학습하는 능력이 떨어짐.
Segmentation 작업에서 전체 이미지의 맥락을 고려하여 각 픽셀 또는 이미지의 일부를 올바르게 분류해야 하기 때문에 global context 를 확보하는 것은 중요함.

1.2 Segmenter 특징과 의의

Segmenter 란?

: semantic segmentation을 위한 트랜스포머 기반 모델

Segmenter 주요 특징

1.
Vision Transformer를 백본 모델로 사용하고, DETR 구조에 착안한 mask decoder를 제시
→ CNN 구조 사용하지 않음
2.
transformer 아키텍쳐를 적용하여 모델의 각 레이어마다 맥락 정보를 학습하고자 함.
→ 트랜스포머를 사용하여 이미지 요소들 사이의 전역적인 상호작용을 학습할 수 있고, 유도적 선험지식(Inductive Prior)가 없음.
Inductive Prior (유도적 선험지식) : 모델이 데이터에서 패턴을 학습하고 미래의 미지의 데이터에 대해 예측을 수행할 때 사용하는 사전에 내장된 정보나 가정 → 모델이 학습과정에서 데이터로부터 일반화를 할 수 있도록 함.
→ 이미지의 공간적 지역성과 같은 유도적 선험지식을 갖고 설계된 CNN기반의 모델과 차별화 됨.
3.
Vision Transformer와 같이 이미지를 작은 조각(Patch)로 쪼개서 linear patch embedding 형태로 변형한 input 데이터 형식을 사용함.
트랜스포머 인코더를 사용해 patch embedding을 생성하고, 디코더를 통해 업 샘플링 진행
디코더에서는 각 패치 임베딩에 대해 독립적으로 선형 변환(point-wise linear mapping) 진행해 클래스 score에 매칭 시킴.
→ 이 과정에서 각 패치 토큰에 대한 클래스 임베딩을 생성하게 되고, 클래스 마스크(Class Mask)로 사용됨

Segmenter 아키텍쳐의 의의

1.
첫번째 레이어부터 글로벌 컨텍스트를 파악할 수 있도록 하는 구조
2.
Vistion Transformer를 확장해 Semantic Segmentation Task에 활용
3.
point-wise linear decoder, mask transformer decoder 구조가 성능 향상을 이룸.
4.
이미지 분류를 위한 사전학습 진행 후, 중간 사이즈의 데이터셋에서 semantic segmetation을 위한 파인튜닝 진행
5.
ADE20K, Pascal Context 데이터 셋에서 SOTA를 달성 (IoU 53.63%)

2. Method

transformer 인코더를 통해 patch embedding seqeunce을 생성하고, point-wise linear mapping이나 mask transformer 를 수행하는 디코더를 거침
픽셀 단위의 cross-entropy loss 값을 계산해 end-to-end 학습을 진행

[Segmenter 모델 구조]

Encoder

Decoder

[Mask Transformer 특징 및 장점]

Segmenter의 Mask Transformer는 DETR, Max-DeepLab, SOLO-v2 구조에 착안하여 고안된 구조
→ MaxDeep-Lab과 같은 기존 선행 연구에서는 트랜스포머와 CNN을 혼합해서 사용한 hybrid 접근 방식을 사용하고 있고, 해당 방식에서는 패치 임베딩과 클래스 임베딩을 각각의 독립적인 스트림을 분할해서 처리해야함.
객체 임베딩(Object Embedding)을 도입하여 인스턴스 마스크를 생성

Mask Transformer의 주요 특징 및 장점

위의 방법들과 달리, Segmenter 아키텍처에서는 오직 Transformer 구조만 사용하고, Mask Transformer에서는 패치와 클래스 임베딩을 동시에 같이 처리하는 방식을 적용
[패치 임베딩과 클래스 임베딩을 동시에 처리하는 방식이 갖는 장점]
1.
클래스 임베딩을 사용하여 각 객체의 고유한 식별정보를 학습할 수 있도록 함.
→ 클래스 간의 경계가 모호한 경우에도 정확한 분류를 가능하게 함
→ 다양한 객체 클래스를 더 명확하게 인식할 수 있음(객체 식별 강화)
2.
이미지 전체의 Context 정보를 효과적으로 학습할 수 있음.
Mask Transformer의 패치 임베딩이미지의 각 부분에서 세밀한 텍스쳐와 형태정보를 인식하는 데 주로 사용되고, 클래스 임베딩은 객체의 클래스 정보를 담고 있음.
또한, Position Embedding을 고려한 Patch Embedding을 사용해 이미지의 전체적인 맥락정보를 학습
Mask Transformer에서는 이 둘을 내적하여 같이 고려한 segmentation mask를 생성함.
→ 각 객체의 세부정보 뿐만 아니라 이미지 전체의 맥락을 효과적으로 학습할 수 있고, 객체 간의 관계와 각 객체가 전체 이미지에서 차지하는 역할을 더 잘 학습할 수 있음

3. Experiment

3.1 Experiment Setup

3.2 Experiment Analysis