본문 바로가기

인공지능/컴퓨터비전

[논문 리뷰] Image-to-Image Matching via Foundation Models: A New Perspective for Open-Vocabulary Semantic Segmentation

RIM(Relation-aware Intra-modal Matching) 논문은 Open-Vocabulary Semantic Segmentation(OVS) 문제를 해결하기 위해 기존의 Text-to-Image 매칭 방식이 아닌 Image-to-Image 매칭을 활용하는 방법을 연구

https://arxiv.org/abs/2404.00262

 

Image-to-Image Matching via Foundation Models: A New Perspective for Open-Vocabulary Semantic Segmentation

Open-vocabulary semantic segmentation (OVS) aims to segment images of arbitrary categories specified by class labels or captions. However, most previous best-performing methods, whether pixel grouping methods or region recognition methods, suffer from fals

arxiv.org

📌 RIM이 제시하는 기존 연구의 문제점과 해결책

RIM 논문에서는 기존의 Open-Vocabulary Semantic Segmentation (OVS) 연구들이 가진 주요 문제점을 지적하며, 이를 해결하기 위한 새로운 접근법을 제안합니다.


🔥 기존 연구의 문제점

기존의 OVS 방법들은 주로 CLIP과 같은 Vision-Language 모델을 활용하여 Text-to-Image Matching을 수행했습니다. 하지만, 이러한 방식은 다음과 같은 문제를 가지고 있습니다.

1️⃣ 크로스 모달 갭 (Cross-Modal Gap)

  • 기존 OVS 방법들은 텍스트(클래스 레이블)와 이미지(시각적 특징)를 직접 매칭하려 했습니다.
  • 하지만, 텍스트와 이미지의 표현 공간이 다르기 때문에 정확한 대응 관계를 형성하기 어렵고, 부정확한 매칭이 발생할 가능성이 큽니다.
  • 예를 들어, CLIP은 텍스트와 이미지 간의 거리를 줄이려 하지만, 여전히 완벽한 정렬(alignment)이 어렵습니다.

2️⃣ 공간적 관계 모호성 (Spatial Relation Ambiguity)

  • CLIP 기반 모델들은 이미지 전체를 하나의 전역적인 표현(global representation)으로 처리하기 때문에, 픽셀 단위나 영역(region) 단위의 정확한 매칭이 어렵습니다.
  • 즉, 한 이미지에서 특정 객체를 찾을 때, 배경 정보나 다른 객체들의 영향을 받아 잘못된 매칭이 발생할 가능성이 큽니다.
  • 예를 들어, 책상(desk)과 의자(chair)가 함께 있는 장면에서 CLIP은 이 두 개의 객체를 개별적으로 구분하기 어려울 수 있습니다.

3️⃣ 공동 출현 혼동 (Co-occurring Object Confusion)

  • CLIP과 같은 모델들은 객체가 자주 함께 등장하는 경우 이를 구분하기 어려운 경향이 있습니다.
  • 예를 들어, "책상(desk)"와 "의자(chair)"가 항상 같이 등장하는 경우, "책상"만 존재하는 이미지에서도 "의자"로 잘못 분류될 가능성이 있습니다.
  • 이는 CLIP이 이미지 전체의 의미를 학습하는 과정에서 발생하는 홀리스틱(holistic) 학습 특성 때문입니다.

4️⃣ 독립적 매칭의 한계 (Independent Matching Limitations)

  • 기존의 방법들은 각 객체를 개별적으로 처리하며, 객체 간의 관계를 고려하지 않았습니다.
  • 예를 들어, 특정 객체가 여러 개의 클래스와 유사할 경우, 다른 클래스들과의 상대적인 관계를 고려하지 않고 단순히 가장 높은 점수를 받은 클래스로 매칭하는 방식이었습니다.
  • 하지만, 이러한 방식은 객체 간의 유사성과 계층적 관계를 활용하지 못하기 때문에 분류 오류를 초래할 가능성이 큽니다.

RIM의 해결 방법

RIM은 위 문제점을 해결하기 위해 Image-to-Image Matching을 활용하고, 관계 인식(Relation-aware) 매칭 기법을 도입하는 방식을 제안합니다.


🔹 1. 크로스 모달 갭 해결 → Intra-modal Reference Construction (동일 모달 내 참조 구축)

✅ 기존의 Text-to-Image Matching이 아니라, Image-to-Image Matching을 수행
Stable Diffusion을 활용하여 각 클래스의 대표적인 이미지를 생성
Segment Anything Model (SAM)을 사용하여 생성된 이미지에서 해당 객체를 정확히 분리하여 참조
DINOv2를 활용하여 이미지 기반 참조를 더욱 정제

➡️ 결과적으로, 텍스트와 이미지 간의 매칭이 아닌, 이미지와 이미지 간의 매칭을 수행함으로써 모달 간 갭을 해소


🔹 2. 공간적 관계 모호성 해결 → SAM을 활용한 정교한 마스크 생성

✅ 기존의 방법들이 이미지 전체를 전역적인 표현으로 다룬 것과 달리, SAM을 이용해 픽셀 단위의 정확한 객체 영역을 추출
✅ 이를 통해 배경 정보를 효과적으로 제거하고, 정확한 객체 표현을 확보

➡️ 결과적으로, 기존의 전역적인 이미지 표현 방식보다 훨씬 세밀한 객체 단위 표현이 가능


🔹 3. 공동 출현 혼동 해결 → Background Segmentation & Masked Average Pooling (MAP)

✅ 기존 방법들은 배경 정보가 포함된 특징을 사용하여 객체를 구분하기 어려웠음
✅ RIM은 Stable Diffusion의 크로스 어텐션 맵을 활용하여 정확한 객체 영역을 찾고, SAM을 사용하여 배경을 제거
✅ 이후 DINOv2를 활용해 특정 객체의 핵심 특징만을 남기는 Masked Average Pooling (MAP) 기법을 적용

➡️ 결과적으로, 공동 출현 문제를 방지하고, 배경 정보를 효과적으로 제거하여 정확한 매칭 가능


🔹 4. 독립적 매칭의 한계 해결 → Relation-aware Matching (관계 인식 매칭)

✅ 기존 방법들은 개별적인 객체-클래스 매칭만 수행했지만, RIM은 클래스 간의 관계를 반영한 순위 기반 매칭(Ranking Distribution Matching) 기법을 도입
✅ 특정 객체가 여러 클래스와 유사할 경우, 단순 매칭이 아니라, 가장 적절한 순위로 정렬되는 클래스를 찾는 확률적 접근 방식을 적용
✅ 예를 들어, "책상(desk)"와 "의자(chair)"가 비슷한 경우, 책상이 1순위, 의자가 2순위로 정렬되도록 확률적으로 분포를 계산하여 최종 분류

➡️ 결과적으로, 객체 간의 관계성을 활용하여 더욱 정밀한 매칭이 가능해짐


🏆 정리: RIM이 기존 문제를 해결하는 방식

기존 문제점RIM의 해결 방법

크로스 모달 갭 Image-to-Image Matching (Stable Diffusion + SAM + DINOv2)
공간적 관계 모호성 SAM 기반 세밀한 객체 마스크 생성
공동 출현 혼동 Background Segmentation + Masked Average Pooling (MAP)
독립적 매칭의 한계 Relation-aware Matching (Ranking Distribution)

🚀 결론: RIM의 성능 개선 효과

✅ 기존 CLIP 기반 방법보다 PASCAL VOC 기준 mIoU에서 10% 이상 성능 향상
Training-free 모델이면서도, 기존 학습 기반 모델을 능가하는 성능 달성
Open-Vocabulary Segmentation의 새로운 패러다임(Image-to-Image Matching)을 제시

 

Figure 2. Framework of RIM Network

📌 RIM의 Method

Figure 2의 흐름을 따라 Proposal Generation → Intra-modal Reference Construction → Relation-aware Matching 순으로 진행

🏆 1. Proposal Generation (마스크 제안 생성)

목적:

  • 입력 이미지에서 Segment Anything Model (SAM)을 활용해 객체의 마스크(Region Proposals)를 생성
  • 기존 CLIP 기반 방법들이 픽셀 단위 또는 전체 이미지 기반으로 매칭을 수행한 것과 달리, 객체 단위로 정밀한 Region Features를 추출

방법:
1️⃣ 입력 이미지를 SAM의 인코더(EncI)에 통과시켜 이미지 특징(feature map)을 추출
2️⃣ SAM의 마스크 예측기(DecM)를 사용해 객체 마스크(Mask Proposals)를 생성
3️⃣ 각 마스크에 해당하는 영역만을 남긴 Region Feature를 생성

  • 마스크가 적용된 영역을 DINOv2Mask Average Pooling (MAP)을 통해 변환

출력:
Region Features → SAM이 예측한 객체 마스크를 기반으로 생성된 객체별 특징 맵

💡 기존 방법 대비 장점:

  • 픽셀 수준 매칭이 아닌 객체 단위로 정확한 매칭 가능
  • SAM을 활용해 새로운 카테고리에도 강력한 Zero-shot 성능 발휘

🎯 2. Intra-modal Reference Construction (동일 모달 내 참조 구축)

목적:

  • CLIP을 활용한 Text-to-Image 매칭이 아니라, Stable Diffusion을 이용해 Image-to-Image 매칭을 수행
  • 각 클래스의 대표적인 참조 이미지(Reference Images)를 생성하고, 이를 통해 클래스별 특징(Category Reference Features)을 구축

방법:
1️⃣ Stable Diffusion(SD) 모델을 이용해 각 카테고리에 대한 이미지 생성

  • 프롬프트 예시: "A photo of [category name]"
  • 각 클래스에 대해 K개의 참조 이미지 생성

2️⃣ Stable Diffusion의 크로스 어텐션 맵 활용

  • SD의 크로스 어텐션 맵을 사용하여 객체가 존재하는 영역을 파악
  • 특정 텍스트 토큰이 활성화된 영역을 기반으로 객체의 정확한 위치를 찾음

3️⃣ Segment Anything Model(SAM) 활용

  • SD에서 생성한 이미지를 SAM에 입력하여 객체 마스크를 자동 생성
  • SD의 어텐션 맵을 활용해 배경과 객체를 정확히 분리

4️⃣ DINOv2를 사용해 Reference Feature 생성

  • SAM이 생성한 객체 마스크를 이용하여 DINOv2의 Mask Average Pooling (MAP) 적용
  • 클래스별로 정제된 Image-based Reference Feature 생성

출력:
Category Reference Features → SD + SAM을 이용하여 클래스별 대표적인 이미지 기반 참조 특징 생성

💡 기존 방법 대비 장점:

  • CLIP을 통한 Text-to-Image 매칭보다 동일한 이미지 기반의 매칭이 훨씬 더 정확함
  • SD의 강력한 이미지 생성 능력을 활용해 카테고리별로 다양한 참조 이미지 확보 가능

🔗 3. Relation-aware Matching (관계 인식 매칭)

목적:

  • 기존의 개별 객체와 개별 클래스 간 매칭이 아니라, 클래스 간의 관계를 고려한 순위 기반 매칭(Ranking-based Matching) 수행
  • 유사한 클래스들을 함께 고려하여 더 정확한 분류 수행

👉 즉, 객체를 특정 카테고리에 할당할 때, 단순한 점수 비교가 아니라 "각 클래스가 얼마나 적절한 순위로 정렬되는지"를 고려하는 방식

방법:
1️⃣ 테스트 이미지의 Region Feature와 Reference Feature 매칭

  • SAM이 생성한 객체 마스크를 기반으로 DINOv2에서 Region Feature를 추출
  • 이를 참조 이미지에서 생성된 Category Reference Features와 매칭

2️⃣ Top-N Category Agents 선정

  • 특정 객체(Region Feature)와 가장 유사한 Top-N 개의 카테고리(예: sofa, chair, bench)를 선택
  • 이들을 Category Agents라고 부름
  • 각 Category Agent와 객체 간의 유사도를 계산해 벡터 s 를 생성

3️⃣ 순열(Permutation) 기반 확률 모델링

  • 기존 방식은 가장 높은 점수를 가진 클래스만 선택했지만,
    RIM은 각 클래스가 특정 순위로 정렬될 확률을 고려합니다.

💡 예제 (sofa, chair, bench)

  • 특정 객체가 있을 때,
    • "sofa > chair > bench" 순서가 될 수도 있고
    • "chair > sofa > bench" 순서가 될 수도 있음
  • 각 순열(Permutation)마다 확률을 계산하여, 가장 가능성 높은 순서로 정렬되는지 확인

4️⃣ 순열 확률 계산 (Ranking Distribution)

하나의 순열(예: "chair > sofa > bench")이 나올 확률은 아래와 같이 계산됩니다.

💡 쉽게 말하면:

  • "chair"가 가장 높은 순위로 올 확률 = chair의 유사도 점수 / (chair + sofa + bench 점수)
  • "sofa"가 두 번째로 올 확률 = sofa의 점수 / (sofa + bench 점수)

즉, 각 클래스가 특정 순서로 정렬될 확률을 계산하여 매칭을 수행합니다.

5️⃣ 테스트 객체와 참조 카테고리의 순위 분포 비교

  • 위 과정을 통해 특정 객체의 순위 확률 분포 를 얻음
  • 마찬가지로 각 카테고리 Reference Feature들도 동일한 방식으로 순위 분포 를 계산
  • 이제 테스트 객체의 순위 분포와 각 카테고리의 순위 분포 간의 유사도를 비교하여 최종 분류를 결정

➡️ 즉, 객체와 카테고리 간의 관계를 고려하여 가장 적절한 클래스를 선택!

 

🔍 Relation-aware Matching에서의 Subcategory Reference (세부 카테고리 참조)

Subcategory Reference FeaturesRIM의 Relation-aware Matching 과정에서 더 정밀한 매칭을 수행하기 위해 도입된 개념입니다. 기존 방식은 클래스 전체를 하나의 특징 벡터로 나타냈지만, 카테고리 내에서도 다양한 형태의 객체가 존재하기 때문에 세부적인 참조를 만들 필요가 있습니다.


🏆 왜 Subcategory Reference가 필요한가? (기존 방식의 한계)

기존의 Image-to-Image Matching 방식에서는 각 카테고리(class)에 대해 단 하나의 대표적인 Reference Feature를 사용했습니다.
하지만 현실적으로, 하나의 카테고리 안에서도 다양한 형태의 객체가 존재할 수 있습니다.

예시: '의자 (chair)' 클래스의 경우

  • 팔걸이가 있는 의자, 없는 의자
  • 바퀴가 달린 사무용 의자, 식탁용 나무 의자
  • 소파 스타일 의자

단 하나의 "의자(chair)" 참조 벡터만 사용한다면, 테스트 이미지 속 다양한 형태의 의자와의 매칭 정확도가 떨어질 가능성이 큽니다.

➡️ 이를 해결하기 위해, RIM은 Subcategory Reference Features를 생성하여 더 세밀한 매칭을 수행합니다.


🎯 Subcategory Reference를 어떻게 생성하는가?

기본적인 Category Reference Features는 Stable Diffusion과 SAM을 활용하여 생성된 다수의 참조 이미지(Reference Images)를 기반으로 구축됩니다.
이를 활용하여 각 카테고리 내부에서 더 세밀한 그룹을 만들기 위해 클러스터링을 수행합니다.

1️⃣ Step 1: 클래스별 참조 이미지에서 Feature Extraction

  • Stable Diffusion을 통해 "A photo of [category name]"을 프롬프트로 사용하여 여러 개의 참조 이미지(Reference Images)를 생성
  • SAM을 활용해 해당 이미지에서 객체 마스크를 분리하여 정제된 카테고리별 참조 데이터셋을 구축
  • DINOv2를 활용해 이들 참조 이미지에서 Feature Extraction 수행

2️⃣ Step 2: 클래스 내부에서 Subcategory Clustering 수행

  • 각 클래스별로 여러 개의 Reference Feature가 생성되었기 때문에, 이를 클러스터링하여 대표적인 Subcategory Reference를 구성
  • 예를 들어, "chair" 카테고리라면 다음과 같은 서브 그룹으로 나뉠 수 있음:
    • Subcategory 1: 회전식 사무용 의자 (Office chair)
    • Subcategory 2: 식탁 의자 (Dining chair)
    • Subcategory 3: 팔걸이 없는 일반 의자 (Armless chair)
    → 이처럼 각 카테고리에 대해 여러 개의 대표적인 Subcategory Reference Feature를 생성

3️⃣ Step 3: Region Feature와 Subcategory Reference Matching

  • 테스트 이미지에서 SAM을 이용해 Region Features를 추출
  • 각 Region Feature와 해당 카테고리의 모든 Subcategory Reference Features 간 매칭을 수행
  • 단일 대표 벡터를 사용하는 것이 아니라, 각 Subcategory Reference와의 관계를 고려한 가중 합을 통해 최종 점수 결정

🔑 Subcategory Reference를 활용한 최종 매칭 방법

기존 방식에서는 각 Region Feature와 개별 카테고리 전체의 대표 벡터(holistic reference feature)를 직접 비교했지만,
RIM에서는 각 카테고리의 Subcategory Reference를 활용하여 더 정밀한 매칭을 수행합니다.

기존 방식 (Holistic Matching)

➡️ 문제점: 클래스 하나에 대한 단일 대표 벡터만 사용하므로 다양한 형태의 객체를 포괄하지 못함

RIM 방식 (Subcategory Matching)

➡️ 해결책:

  1. 클래스 전체가 아니라 각 Subcategory Reference Feature와 매칭 수행
  2. 각 Subcategory의 유사도를 따로 계산한 후, 모든 서브 카테고리의 점수를 합산하여 최종 분류 결정

📌 결과적으로, Subcategory Reference의 역할

하나의 클래스 안에서도 다양한 형태의 객체를 효과적으로 구분할 수 있음
보다 세밀한 매칭을 통해 유사한 클래스 간 혼동을 줄일 수 있음
Ranking Distribution Matching과 결합하여 더욱 강력한 분류 성능을 제공함


🔥 실험 결과 (Table 2: Ablation Study)

실험에서도 Subcategory Reference를 추가하면 성능이 향상됨이 확인되었습니다.

실험 조건mIoU (%)

기본적인 Image-to-Image Matching (Text-to-Image 미사용) 38.7
Foreground Mask 사용 (배경 제거) 41.8
Relation-aware Matching 적용 43.1
Subcategory Reference 추가 적용 44.5

➡️ Subcategory Reference를 추가했을 때 성능이 43.1 → 44.5 mIoU로 향상됨