본문 바로가기

논문 리뷰/Vision Transformer

MatteFormer : Transformer-Based Image Matting via Prior-Tokens 논문 리뷰

Trimap에서 추출한 Prior token을 이용해 ViT 기반 image matting 개선

 

Github

 

 

 

 

Abstract

본 논문에서는 trimap 정보를 최대한 활용하는 MatteFormer라는 transformer 기반 이미지 매팅 모델을 제안한다.

먼저 각 trimap 영역의 전역적 표현인 prior 토큰을 도입하고 이 토큰을 global prior로 각 블록의 self attention에 참여한다. 인코더는 PAST(Prior-Attentive Swin Transformer) 블록을 도입한 Swin Transformer이다.

 

 

 

Introduction

이미지는 foreground F, background B, alpha matte α로 다음과 같이 나타낼 수 있다.

 

이미지 매팅에서 추가 입력으로 trimap을 많이 사용하며, 원래는 CNN을 많이 사용하였지만 transformer를 활용한 활발한 연구들이 진행 중이다. ViT의 계산 복잡성을 줄이기 위해 local window를 사용하는 Swin Transformer 등이 나왔지만 수용필드가 작음.

 

MatteFormer에서는 trimap의 global context feature를 나타내는 prior 토큰을 정의하고 self attention에 사용한다.

 

Matte Former의 PAST 블록이 Swin 블록과 다른 점

  • 아래 그림과 같이 공간 토큰 뿐만 아니라 prior 토큰으로도 self attention이 계산되는 PA-WSA(Prior-Attentive Window Self-Attention) 계층
  • 각 블록에서 생성된 모든 prior 토큰을 기억하는 prior 메모리

 

 

 

Methodology

Network Structure

전형적인 인코더-디코더 구조. 각 인코더 블록은 패치 병합 계층과 PAST 블록으로 이루어져 있다.

 

Prior-token

먼저 trimap의 각 쿼리 영역(foreground, background, unknown)의 모든 토큰을 평균화하여 prior 토큰을 생성한다.

 

Prior 토큰 pq는 다음과 같이 공식화 될 수 있다.

(q = 각 영역의 쿼리, z = 공간 토큰의 feature, r = i번째 토큰이 해당 쿼리 영역에 있는지에 따른 이진 값)

 

Prior-Attentive Swin Transformer Block

Swin Transformer의 장점

  • Non-overlapping window로 인해 큰 이미지에서 효율적으로 계산 가능
  • Cross-window 연결로 장거리 종속성 강화

그러나 초반 계층에서 좁은 수용 필드로 attention 영역이 불충분함.

 

이 문제를 해결하기 위해 PAST 블록 제안

  • Self attention에서 prior 토큰으로 global feature에 참여 가능
  • Prior 메모리에서 누적된 정보를 다음 블록에서 유용하게 사용 가능

 

 

Self-attention with prior-tokens

 

PA-WSA 계층에서 수행되는 attention mechanism

K, V에만 prior 토큰 추가

B = swin transformer의 상대 위치 편향에 prior 토큰 추가.

 

Prior-memory

이전 블록의 prior 토큰이 현재 블록에 유용한 context를 전달할 수 있다. 

누적 토큰은 PA-WSA 계층에서 prior 토큰으로 사용되고 PAST 블록의 마지막에서 다시 누적된다.

 

Training Scheme

전체 손실 함수는 L1 loss + composition loss + Laplacian loss

  • L1 loss : 실측 alpha matte와 예측 alpha matte의  차이
  • Composition loss : 실측 이미지와 합성 이미지의 차이

 

 

Progressive Refinement Module

디코더 각각의 해상도에서 3개의 alpha matte를 얻는다.

이전 해상도 출력 al-1, 현재 해상도 출력 a'l을 이용해 al을 얻는 과정을 반복한다. (g는 unknown 영역을 얻는 마스크)

PRM으로 비확실 영역을 정제하는 데에만 집중할 수 있음.

 

 

 

Experiments

 

Composition-1k

 

Distinctions-646

 

Ablation

 

모든 블록에서 각 토큰에 대한 attention 비율

 

FLOPs