논문리뷰

Matcher : Segment Anything With One Shot Using All-Purpose Feature Matching

황수진 2024. 9. 6. 19:37

https://openreview.net/forum?id=yzRXdhk2he

 

Matcher: Segment Anything with One Shot Using All-Purpose Feature...

Powered by large-scale pre-training, vision foundation models exhibit significant potential in open-world image understanding. However, unlike large language models that excel at directly tackling...

openreview.net

 

 

 

Abstract 

대규모의 사전학습 덕분에 vision foundation model은 open-world image understanding에서 상당히 많은 잠재력을 보여주었습니다. 그러나 바로 다양한 task에 수행할 수 있는 large language model과 같이, vision foundation model은 특정 task에 맞는 fine-tuning을 하는 task-specific model 구조를 필요로 했습니다. 

이 논문에선 다양한 perception task를 다루는 기존의 vision foundation model을 활용한 새로운 perception paradigm인 Matcher를 제안합니다. Matcher는 training없이 in-context example을 사용해 segmentation을 진행할 수 있습니다. 또한 Matcher framework에서 foundation model에 3개의 component를 합해 다양한 perception task에 활용될 수 있도록 만들었습니다. Matcher는 다양한 segmentation task를 통해 generalization 성능을 확인했습니다. 

 


 

Introduction

ChatGPT 와 같은 LLMs(large languiage models)은 NLP domain에서 많은 성과를 이뤘습니다. 이런 foundation model은 task들간의 이동이 가능하며 zero-shot과 few-shot generalization도 좋은 성능을 얻었습니다. 또한 다양한 language task에도 적용할 수 있습니다. 

large-scale image-text contrastive pre-training인 CLIP과 ALIGN은 다양한 classification task에서 좋은 zero-shot transfer ability를 보였습니다. DINOv2는 image와 raw image data의 pixel level부터의 복잡한 정보를 잡아내도록 학습함으로써 훌륭한 visual feature matching을 증명했습니다. 최근엔 SAM(Segment Anything Model)이라는 논문에선 class와 상관없이 성능이 잘 나오는 segmentation performance를 보여줬습니다. 하나의 모델로 다양한 작업을 처리할 수 있는 LLM과는 달리, VFM은 다양한 perception task를 바로 다루는 것이 어렵습니다. 예를 들어, 이런 방법들은 특정 task에 맞는 fine-tuning을 하는 등 task-specific model structure들이 필요합니다.

이 논문에선 새로운 visual research paradigm을 제시합니다. 

"investigating the utilization of VFMs for effectively addressing a wide range of perception tasks" : 다양한 task를 다룰 수 있는 방법 

그러나 여기서 foundation model을 사용하는 건 다음과 같은 이유로 간단한 일은 아닙니다.

1) VFM이 충분한 정보를 갖고있다고 해도 직접적으로 downstream perception task를 위한 각각의 model에 직접 적용하는 건 어려운 일입니다. SAM을 예시로 들어보자면, SAM은 다양한 task에서 zero-shot class-agnostic segmentation performance를 낼 수 있지만, 예측된 mask에 대한 semantic category를 제공하긴 어렵습니다. 게다가, SAM은 여러 애매한 mask output을 내는 경향이 있습니다. 다른 task를 적용할 땐 이런 애매한 output 중 최종 output을 선택해줘야 합니다. 다른 task에서 최종 결과로 적절한 mask를 선택하는 것은 어려운 일입니다. 

2) 다양한 task는 각각의 복잡하고 다양한 perception requirement를 갖고 있습니다. 예를 들어, semantic segmentation은 같은 semantic(의미)를 가지는 pixel들을 예측합니다. 그러나 video object segmentation은 같은 semantic category 내에서도 개개인의 instance를 구분해줘야 합니다. 그리고 각 task마다의 구조적 차이도 고려해줘야 합니다. 이러한 이유들로 단순히 foundation model을 결합하는 건 평균 이하의 성능을 나오게 됩니다.

 

이런 문제를 다루기 위해 'Matcher'를 제시했고, 이는 하나의 in-context example을 사용해 다양한 perception task를 다룰 수 있는 여러 foundation model을 효과적으로 합칠 수 있는 novel perception framework입니다. 이는 in-context learning을 통해 NLP에서 LLM이 상당한 generalization capability를 냈다는 것에서 영감을 받았고, Matcher는 특정 task를 이해할 수 있고 semantic feature에 맞는 matching을 함으로써 target의 위치를 알아내는 DINOv2를 활용했습니다. 이어서 이런 대략적인 위치 정보를 활용해 Matcher는 SAM을 이용해 정확한 perceptual한 결과를 낼 수 있습니다. Matcher framework엔 3개의 component로 이루어져 있는데 이는 foundation model과 조합이 되고 다양한 perception task를 다룰 수 있게 해줍니다.

 

우선 정확한 cross-image semantic dense matching을 위해 bidirectional matching strategy와 mask proposal 생성을 위한 prompt sampler를 제시합니다. 이는 다양한 mask proposal을 생성할 수 있고 matching 오류로 발생하는 false-positive 마스크를 막아주는 역할도 합니다. 나아가 reference maskmask proposal간의 instance level matching을 수행해 더 높은 quality의 mask를 선택하도록 합니다. 여기서 3가지의 metric을 사용하고(emd,purity, coverage), semantic similarity를 기반으로 mask proposal을 평가하고 mask proposal의 quality도 각각 평가합니다. 마지막으로 merged mask의 수를 조절해, Matcher는 target image에 대해 같은 semantic을 갖는 instance를 조절가능한 mask output을 출력할 수 있습니다. 

 

 

여기서 main contribution은 다음과 같습니다

- 다양한 perception task를 다룰 수 있는 vision foundation model에 대한 새로운 perception framework 제시 

- 3가지 component로 구성 (bidirectional matching, robust prompt sampler, instance-level matching) 이를 통해 vision foundation model의 segmentation quality와 open-set generality를 향상시킬 수 있습니다. 

- Matcher에서 좋은 성능과 generalization을 보여줌 

 

크게 3가지로 이루어져 있습니다

- Correspondence Matrix Extraction

- Prompts Generation

- Controllable Masks Generation 

 

 

Related Work

Vision Foundation Models 

nlp에서 masked language modeling의 영향을 받아 MAE는 asymmetric encoder-decoder를 사용하고 scalable vision Transformer model을 학습하도록 masked image modeling을 수행합니다. CLIP은 image-text pair를 통해 image representation을 학습하고 강력한 zero-shot image classfication 능력을 얻을 수 있습니다. image와 patch level discriminative self-supervised learning을 통해, DINOv2는 다양한 downstream task에 대한 visual feature를 학습합니다. 최근에, SAM은 강력한 zero-shot class-agnostic segmentation performance를 보였습니다. vision foundation model은 뛰어난 fine-tuning 성능을 보였지만, 여전히 다양한 visual perception task에 적용하긴 어렵습니다. 그러나 NLP에선 training 없이 ChatGPT와 같은 large language model은 다양한 language task를 해결할 수 있습니다. 이의 영향을 받아 다양한 perception task가 training없이 해결될 수 있고 in-context inference를 수행해 기존의 vision foundation model을 활용해 해결할 수 있습니다. 

 

Vision Generalist for Segmentation 

최근엔 Transformer 구조를 이용해 하나의 model로 여러 segmentation task를 통합하는 노력을 해왔습니다. generalist Painter는 다른 vision task의 output을 image로 재정의하고 supervised dataset을 통한 in-context training을 수행해 continuous pixel에 대한 masked image modeling을 활용했습니다. Painter의 변형으로, SegGPT는 generalization 성능을 높이기 위해 in-context training을 위해 novel random coloring 방법을 사용했습니다. PerSAM과 PerSAM-F는 SAM을 personalized segmentation에 적용한 것으로 training을 안하거나 2개의 trainable parameter를 사용해 수행할 수 있습니다. 이 논문에서 제시하는 Matcher는 one shot을 이용해 segmentation을 할 수 있는 training-free framework입니다. 위에서 설명한 방식들과 달리 Matcher는 다른 foundation model을 결합함으로써 다양한 segmentation task에 대해 높은 generalization performance를 냈습니다. 

 


 

Method

Matcher는 (1) all-purpose feature extraction model과 (2) class-agnostic segmentation model 을 결합해 one-shot으로 segmentation을 할 수 있는 training-free framework입니다. reference image x(r)mask m(r)을 포함한 in-context example이 주어지면, Matcher는 target image x(t)의 object나 part를 같은 semantic끼리 구분하게 됩니다. 

 

Matcher는 아래와 같은 구조를 가집니다 

 

크게 3가지 component로 이루어져 있습니다 : Correspondence Matrix Extraction(CME), Prompts Generation(PG), Controllable Masks Generation (CMG).

우선, Matcher는 x(r)과 x(t)의 image feature간의 similarity를 계산해 correspondence matrix를 뽑습니다. 그 다음 patch-level matching을 수행하고 matching된 point에서 여러 그룹의 prompt를 sampling합니다. 이렇게 sampling된 prompt들은 SAM의 input으로 들어가게 되고, mask proposal 생성을 가능하게 합니다. 마지막으로, high-quality mask를 뽑기 위해 reference mask와 mask proposal 간의 instance-level matching을 진행하게 됩니다. 이에 대한 자세한 설명은 subsection에서 진행됩니다. 

 

Correspondence Matrix Extraction

reference image와 target image의 feature를 뽑기 위해 기존의 off-the-shelf image encoder를 사용합니다. x(r), x(t)가 주어지면, encoder는 patch-level feature z(r), z(t) (shape:HxWxC) 를 출력합니다. 이 두 feature간의 patch-wise similarity는 target image에서 reference mask에서 가장 matching이 잘 된 region을 발견해 계산됩니다. correspondence matrix S는 다음과 같이 정의됩니다.

여기서 (S)ij는 z(r)에서 i번째 patch feature인 z(i)(r)과 z(t)에서 j번째 patch feature인 z(j)(t)간의 cosine similarity를 의미합니다. 간단히 줄여서 S=sim(z(r),z(t))라고 표현한다고도 합니다. 

이론상으론 matching된 patch가 가장 높은 similarity가 나올 것이라고 생각할 수 있습니다. 그러나 실제론 reference와 target object가 다른 생김새를 보이거나 다른 category에 존재할 수도 있기 때문에 꼭 그러지 않을 수도 있다고 합니다. 그렇기 때문에 encoder는 이런 feature에서 풍부하고 디테일한 정보들을 다 encoding 해야 합니다.

 

 

Prompts Generation

이제 dense한 correspondence matrix가 주어졌다면, target image에서 가장 비슷한 patch를 선택함으로써 대략적인 segmentation mask를 얻을 수 있습니다. 그러나, 이런 naive한 방법은 당연히 부정확하고, 많은 outlier가 존재할 것입니다. 그렇기 때문에 correspondence feature를 사용해 promptable segmentation을 위한 high quality point와 box guidance를 생성해야 합니다. 이 과정은 bidirectional patch matching과 prompt sampler로 이루어져 있습니다.

Patch-Level Matching 

encoder는 애매한 context나 여러 instance에 해당될 경우에 잘못된 matching을 할 수도 있습니다. 이런 matching outlier를 줄이기 위해 bidirectional matching strategy를 사용합니다. 

위의 그림에서 보면, 우선 z(t)와 reference mask에 대한 point P(r)={p(i)(r)} 간의 bipartite matching을 진행해 target image에 대한 forward matched point를 얻습니다. (S=sim(P(r),z(t)))

그리고 그 다음 그 반대인 reverse matching를 해줍니다. (S=sim(z(r),P(t)))

마지막으로 forward set에서 그에 해당하는 reverse point가 reference mask m(r)에 없으면 point들을 제거하는 과정을 거칩니다. 마지막 matched point은 P(hat)이 됩니다.

 

Robust Prompt Sampler 

다양한 semantic granularity에서도 강건한 segmentation을 할 수 있도록 해주는 promptable segment를 위한 robust prompt sampler를 사용합니다. 우선 point들의 위치를 기반으로 matched point P(hat)들을 k개의 cluster들로 clustering해줍니다. 이 때 k-means++ 방법을 사용합니다. 그 다음 3개 타입의 subset이 생성되어 prompt로 사용됩니다.

- part-level prompt는 각 cluster에서 sampling됩니다.

- instance-level prompt는 모든 matching된 point 내에서 sampling 됩니다.

- global prompt는 cluster center의 set 내에서 생성됩니다.

실제로 이 방법을 사용하면 mask proposal의 다양성이 높아질 뿐만 아니라 matching outlier에 의해 발생되는 false-positive mask의 문제를 줄여줄 수 있습니다. 

 

Controllable Masks Generation

image encoder에서 뽑힌 object의 edge feature는 background 정보와 혼동하여 구분할 수 없는 outlier를 유발할 수 있습니다. 이런 outlier들은 false-positive mask를 만들어 낼 수 있습니다.

이런 어려움을 극복하기 위해 instance-level matching을 통해 mask proposal로부터 high-quality mask를 뽑아 마지막 target mask를 얻기 위해 이렇게 선택된 mask들을 병합하게 됩니다.

 

Instance-Level Matching 

괜찮은 mask를 뽑기 위해 reference mask와 mask proposal간의 instance-level matching을 수행합니다. 이 matching을 Optimal Transport (OT)로 공식화하고 mask relevance를 결정하기 위해 mask 내에서의 dense semantic feature간의 구조적인 distance를 구하는 Earth Mover's Distance(EMD)를 사용합니다. OT 문제의 cost matrix는 C=1/2(1-S)에 의해 계산됩니다.

 

 

Experiments 

Experiments Setting 

Vision Foundation Models 

Matcher의 기본 image encoder로는 ViT-L/14로 이루어진 DINOv2를 사용합니다. image와 patch level 두 부분에서 large-scale discriminative self-supervised learning을 통해, DINOv2는 patch-level representation 능력을 얻을 수 있고, 다른 image들간의 정확한 patch matching을 얻을 수 있습니다. 그리고 Matcher의 segment로 ViT-H로 이루어진 Segment Anything Moel (SAM)을 사용합니다. 모든 실험에서, Matcher에 대해 어떠한 학습도 수행하지 않습니다. \

 

 

 

Conclusion

이 논문에선, 기존의 off-the-shelf vision foundation model을 결합해 training이 필요없는 framework를 제시해 다양한 few-shot segmentation task를 수행할 수 있도록 했습니다. 이런 foundation model을 결합해 긍정적인 시너지를 낼 수 있었고, Matcher는 기존의 model을 넘어서 complex capability를 얻을 수 있습니다. bidirectional matching, robust prompt sampler, instance level matching등과 같은 보편적인 component들을 사용해 foundation model의 능력을 더 향상시킬 수 있습니다.