CaR 논문에서는 기존 오픈-보캐뷸러리 세그멘테이션 연구들이 가진 주요 문제점을 분석하고, 이를 해결하는 새로운 접근법을 제안합니다.
🔹 기존 연구의 문제점
기존 Open-vocabulary segmentation방법들은 크게 두 가지 접근 방식으로 나뉩니다.
(1) 마스크 라벨 기반 파인튜닝 방법
🔍 문제점
사전 학습된 비전-언어 모델(VLM) (e.g., CLIP)을 마스크 라벨이 있는 데이터셋으로 파인튜닝하는 방식.
하지만 마스크 라벨을 수집하는 것은 비용이 매우 크며, 따라서 학습 가능한 클래스 수가 제한적임.
파인튜닝 과정에서 사전 학습된 CLIP의 넓은 vocabulary 능력이 손실됨 (Fine-tuning Bias).
예를 들어, OVSeg [35] 같은 모델은 일반적인 객체는 잘 분할하지만, "Pepsi"나 "Coca Cola" 같은 개념은 제대로 인식하지 못함.
(2) 이미지-텍스트 학습 기반 방법
🔍 문제점
일부 연구들은 마스크 라벨 대신 이미지-텍스트 데이터(e.g., 웹 크롤링 데이터)를 활용하여 학습하는 접근 방식을 사용.
하지만 이미지 레벨 라벨을 기반으로 한 학습은 픽셀 수준의 정밀한 마스크 생성이 어렵고, 정합성이 낮음.
복잡한 파인튜닝 과정이 필요하고, 학습 파이프라인이 매우 무거워짐.
(3) 기존 Training-free 방법의 한계
🔍 문제점
일부 연구들은 CLIP을 직접 활용하여 훈련 없이 세그멘테이션을 수행하려 했음 (e.g., MaskCLIP [84], ReCo [55]).
하지만 CLIP은 이미지-텍스트 일치 학습에 최적화되어 있고, 세그멘테이션처럼 픽셀 단위의 예측에는 부적절함.
따라서 CLIP을 그대로 사용할 경우, 잘못된 마스크가 생성되거나, 불필요한 텍스트 쿼리가 남아있는 문제 발생.
🔹 CaR의 해결 방법
CaR은 기존 연구의 문제를 해결하기 위해 Recurrent Neural Network(RNN) 구조를 활용하여, 마스크 품질을 점진적으로 개선하는 방식으로 접근합니다.
✅ (1) CLIP의 Vocabulary 공간 유지
🔹 기존 연구에서는 CLIP을 Fine-tuning 하면 CLIP의 넓은 보캐뷸러리 능력이 손실되었음. ✔ CaR은 CLIP을 그대로 사용하고, Fine-tuning 없이 세그멘테이션을 수행하여 광범위한 개념을 유지.
✅ (2) RNN 기반 점진적 필터링
🔹 기존 연구들은 한 번의 CLIP 예측으로 마스크를 생성했기 때문에, 잘못된 마스크가 많고 텍스트 정합성이 낮음. ✔ CaR은 RNN과 유사한 점진적 필터링 방식을 도입하여, 잘못된 마스크를 걸러내고 점점 더 정제된 세그멘테이션을 생성함.
핵심 아이디어:
초기 텍스트 쿼리 리스트(h₀)를 제공하고, CLIP으로 마스크를 생성.
마스크가 텍스트와 정확히 매칭되지 않는 경우, 다음 반복(iteration)에서 해당 텍스트를 제거.
이를 여러 번 반복하여 최적의 텍스트-마스크 매칭을 찾아냄.
✔ 이렇게 하면 "Pepsi"와 "Coca Cola" 같은 개념도 올바르게 분할 가능해짐.
✅ (3) 두 단계 세그멘테이션 구조 (Two-stage Segmenter)
🔹 기존 연구들은 CLIP의 이미지 인코더만 활용하여 단순한 마스크를 생성했음. ✔ CaR은 두 단계(2-stage) 세그멘테이션을 도입하여 마스크 품질을 크게 개선.
1️⃣ 마스크 생성기 (Mask Proposal Generator)
CLIP + GradCAM을 활용하여 초기 마스크를 생성.
하지만 이 단계에서는 아직 마스크가 정확하지 않음.
2️⃣ 마스크 분류기 (Mask Classifier)
CLIP을 다시 활용하여 마스크가 실제로 텍스트와 일치하는지 확인.
시각적 프롬프트(e.g., Red Circle, Background Blur)를 활용하여 마스크-텍스트 정합성을 평가.
일치하지 않는 마스크를 제거하여 점진적으로 개선.
✔ 이렇게 하면 잘못된 마스크를 제거하면서도, 훈련 없이도 CLIP의 정보를 활용하여 세그멘테이션이 가능해짐.
✅ (4) 훈련 없이도 SOTA 수준의 성능 달성
🔹 기존 연구들은 세그멘테이션 성능을 높이기 위해 반드시 추가 훈련을 수행해야 했음. ✔ CaR은 단 한 번의 학습도 없이, 기존 Fine-tuning된 모델보다 높은 성능을 달성.
기존 Zero-shot 방법보다 Pascal VOC(+28.8 mIoU), COCO Object(+16.0 mIoU), Pascal Context(+6.9 mIoU) 성능 향상.
심지어 Fine-tuning된 모델보다도 성능이 더 높음.
Figure 3. The overall framework of our method
📌 Section 3: CLIP as Recurrent Neural Networks
CaR (CLIP as RNN)의 핵심 아이디어는 Recurrent Neural Network (RNN) 방식으로 CLIP을 활용하여 Open-vocabulary segmentation을 점진적으로 개선하는 것입니다. 이를 위해 CaR은 반복적인 과정(Recurrent Process)을 사용하여, 불필요한 텍스트 쿼리를 제거하고 더 정확한 마스크를 생성합니다.
🔹 3.1 Recurrent Neural Networks 개요
RNN이란?
RNN(Recurrent Neural Network)은 시퀀스 데이터를 처리하기 위한 모델로, 이전 단계의 정보를 다음 단계에 전달하여 점진적으로 결과를 개선하는 특징이 있음.
기본적인 RNN 공식:
여기서 h_t는 hidden state, x_t는 입력 데이터, y_t는 출력값을 의미.
✅ CaR은 RNN 개념을 차용하여, 텍스트 쿼리와 마스크 품질을 점진적으로 개선하는 구조를 설계했습니다.
텍스트 쿼리 (h_t)가 RNN의 hidden state 역할을 수행하며, 반복적으로 업데이트됨.
각 스텝에서 잘못된 텍스트 쿼리는 제거되며, 최적의 세그멘테이션 결과가 수렴될 때까지 반복.
🔹 3.2 CaR의 전체 구조
CaR은 Recurrent Process를 기반으로 작동하며, 다음의 세 단계로 구성됩니다.
(1) 입력 단계 (Input to Recurrent Model)
주어진 이미지 x_t와 함께, 유저가 입력한 텍스트 쿼리 리스트 h_0 가 입력됨.
이 텍스트 쿼리는 임의의 객체, 브랜드, 캐릭터, 랜드마크 등을 포함할 수 있음 (e.g., "Pepsi", "Coca Cola", "Iron Man").
초기에는 잘못된(존재하지 않는) 텍스트 쿼리도 포함될 수 있음.
(2) 반복 과정 (Recurrent Segmentation Process)
각 스텝 t에서, CaR은 동일한 세그멘테이션 모듈을 사용하여 이미지-텍스트 정합성을 점검하고, 불필요한 쿼리를 제거함.
이 과정은 다음과 같이 정의됨:
CLIP과 GradCAM을 활용하여 초기 마스크 y_t를 생성.
하지만 이 마스크는 정확하지 않으며, 일부 오브젝트가 잘못 분할될 수 있음.
✅ 2️⃣ 마스크 검증 및 필터링 (Mask Classifier)
생성된 마스크를 사용하여 각 텍스트 쿼리와의 정합성(유사도)을 CLIP으로 측정.
유사도가 낮은 텍스트 쿼리는 다음 반복에서 제거됨.
✅ 3️⃣ 텍스트 쿼리 업데이트 (h_t)
필터링된 텍스트 쿼리만 남기고, 이를 다음 단계로 전달.
특정 기준 (h_t == h_{t-1})이 충족될 때까지 반복 수행.
✅ 1️⃣ 마스크 생성 (Mask Proposal Generator)
✔ 이렇게 하면 점진적으로 더 정확한 세그멘테이션 결과가 생성됨.
🔹 3.3 두 단계 세그멘테이션 구조 (Two-stage Segmenter)
CaR의 핵심 모듈인 Recurrent Unit은 두 개의 서브 모듈로 이루어짐.
✅ 1️⃣ 마스크 생성기 (Mask Proposal Generator)
CLIP-ES의 알고리즘을 사용 (CLIP is Also an Efficient Segmenter: A Text-Driven Approach for Weakly Supervised Semantic Segmentation, CVPR'23)
CLIP의 이미지-텍스트 정합성을 활용하여 마스크를 생성하는 모듈.
GradCAM 기반으로 마스크를 생성하지만, 정확하지 않을 수 있음.
배경을 더 잘 구분하기 위해, 배경 텍스트 쿼리(background queries)를 추가하여 노이즈를 억제.
✅ 2️⃣ 마스크 분류기 (Mask Classifier)
생성된 마스크의 정확도를 CLIP을 활용해 검증하는 모듈.
여러 가지 시각적 프롬프트(Visual Prompts)를 적용하여 CLIP이 마스크를 더 잘 인식하도록 함.
🔴 Red Circle, 📉 Background Blur, ⚪ Gray Background 등을 활용.
마스크와 텍스트의 유사도를 계산하여, 유사도가 낮은 텍스트는 다음 스텝에서 제거.
✔ 이 과정을 여러 번 반복하면, 최종적으로 신뢰할 수 있는 마스크만 남게 됨.
🔹 3.4 후처리 단계 (Post-Processing)
Dense Conditional Random Field (CRF)를 사용하여 마스크 경계를 세밀하게 조정.
Segment Anything Model (SAM)을 활용하여 마스크 품질을 추가로 향상시킬 수도 있음. (Optional)
최종적으로, 각 픽셀마다 가장 높은 확신도를 가진 마스크 클래스를 선택하여 최종 출력을 생성.
✅ 정리
기존 방식 문제점CaR의 해결 방법
Fine-tuning이 필요하고 Vocabulary가 제한됨
CLIP을 그대로 사용하여 Fine-tuning 없이 세그멘테이션 수행
한 번의 예측으로 마스크를 생성 → 부정확함
RNN 방식으로 반복하여 점진적으로 마스크 품질을 개선
CLIP이 픽셀 단위 세그멘테이션에 적합하지 않음
두 단계 구조 (Mask Proposal Generator + Mask Classifier) 도입
마스크 품질이 낮음
DenseCRF와 SAM을 활용하여 품질 개선
📌 Section 4: Experiments (실험)
CaR의 실험 부분에서는 Zero-shot 세그멘테이션 성능과 기존 모델들과의 비교, 그리고 각 요소의 기여도를 분석하기 위한 Ablation Study를 수행합니다.
🔹 4.1 Zero-shot Semantic Segmentation (ZSSS)
✅ 목표:
CaR이 추가적인 학습 없이도 SOTA 성능을 달성할 수 있는지 검증
기존 Fine-tuning된 모델들과 비교하여 얼마나 성능이 좋은지 분석
✅ 비교 대상:
Fine-tuned 방법 (추가 데이터 학습 필요)
ViL-Seg, GroupViT, SegCLIP, ZeroSeg, TCL 등
추가적인 텍스트-이미지 데이터(수백~수천만 장)를 활용하여 학습된 방법
Zero-shot 방법 (추가 학습 없이 CLIP 활용)
MaskCLIP, ReCo 등
CaR (Ours)
Fine-tuning 없이 CLIP을 그대로 사용하면서도 SOTA 성능을 달성하는지 검증
✅ 결과:
CaR은 기존 Training-free 방법들보다 월등히 높은 성능을 달성
Fine-tuning된 모델보다도 더 나은 성능을 보이는 경우가 있음.
Model
추가 학습 여부
Pascal VOC
COCO Object
Pascal Context
MaskCLIP (Training-free)
❌
74.9
38.8
26.4
CaR (Ours, w/o SAM)
❌
91.4 (+16.5)
67.6 (+28.8)
36.6 (+10.2)
Best Fine-tuned Model (TCL+PAMR)
✅
83.2
55.0
31.6
✔ 훈련 없이도 Fine-tuned 모델보다 성능이 높음! ✔ 특히 COCO Object에서는 28.8 mIoU 증가, Pascal VOC에서도 16.5 mIoU 향상.
🔹 4.2 Ablation Studies (요소별 기여도 분석)
✅ 목표:
CaR의 각 요소가 성능에 어떤 영향을 미치는지 분석.
(1) Recurrence (반복 구조의 효과)
Recurrence 없이 단순히 한 번만 세그멘테이션을 수행할 경우, 성능이 크게 감소함.
한 번만 실행하면 15.2% mIoU에 불과하지만, 반복을 통해 67.6%까지 증가.
모델
Recurrence 사용 여부
Pascal VOC mIoU
CLIP-ES (Baseline)
❌
15.2
CaR (w/o Recurrence)
❌
41.1
CaR (Ours)
✅
67.6 (+26.5)
✔ 반복 구조가 없으면 성능이 크게 하락함 → RNN 구조가 매우 중요!
(2) Mask Proposal Generator의 CLIP Backbone 변경
Mask Proposal Generator의 CLIP 백본을 ViT-B에서 ViT-L로 변경하면 성능 향상.
CLIP이 강력할수록 마스크 품질도 좋아짐.
Mask Proposal Generator
Mask Classifier
Pascal VOC
COCO Object
ViT-B/16
ViT-B/16
54.1
15.9
ViT-L/14
ViT-B/16
50.6
14.1
ViT-L/14
ViT-L/14
67.6 (+13.5)
36.6 (+20.7)
✔ CLIP의 크기가 클수록 성능 향상! ✔ 특히 Mask Classifier에서 ViT-L을 사용하면 성능이 크게 증가!
(3) Visual Prompts의 효과 분석
마스크-텍스트 정합성을 평가할 때, 어떤 Visual Prompts를 사용하는 것이 효과적인지 분석.
단순히 마스크 부분을 블랙 처리하는 것보다, "Red Circle"이나 "Background Blur"가 더 효과적.