CLIP is Also an Efficient Segmenter: A Text-Driven Approach for Weakly Supervised Semantic Segmentation

상솜공방·2025년 7월 18일

논문 리뷰

목록 보기
19/49

1. Introduction

Weakly Supervised Semantic Segmentation (WSSS)의 문제점과 이를 해결하기 위한 새로운 프레임워크인 CLIP-ES에 대해 소개합니다.

기존의 WSSS 방법

  • WSSS의 목표 및 도전 과제:

    • Semantic segmentation은 픽셀 단위의 레이블을 예측하는 것을 목표로 하지만, 이는 수작업으로 많은 시간과 노력이 필요한 픽셀 단위 주석(annotation)을 요구합니다.
    • WSSS는 이러한 주석 비용을 줄이기 위해 이미지-레벨 레이블, 바운딩 박스, 점 또는 스크리블과 같은 '약한 supervision'만 사용합니다. 본 논문은 이미지-레벨 주석을 사용하는 WSSS에 중점을 둡니다.
    • 기존의 이미지-레벨 레이블 기반 WSSS 접근 방식은 일반적으로 세 단계의 복잡한 프레임워크를 따릅니다.
      1. 초기 CAM (Class Activation Maps) 생성: 특정 데이터셋에서 분류 모델을 훈련하여 초기 CAM을 생성합니다.
      2. CAM 정제: 픽셀 어피니티 네트워크(pixel affinity network)나 추가적인 saliency 맵을 사용하여 초기 CAM을 정제합니다.
      3. 최종 segmentation 모델 훈련: 정제된 CAM을 가상 마스크(pseudo mask)로 사용하여 semantic segmentation 모델을 훈련합니다.
    • 이러한 다단계 프레임워크는 여러 모델을 훈련해야 하므로 높은 훈련 비용과 복잡성을 초래합니다.
  • Class Activation Maps (CAM)

    • CAM은 특정 이미지 내에서 모델이 특정 클래스(범주)를 인식하는 데 가장 중요한 영역(discriminative regions)이 어디인지를 시각적으로 보여주는 기술입니다.
    • 쉽게 말해, 모델이 "이 이미지는 '고양이'야"라고 판단했을 때, 이미지의 어느 부분이 '고양이'라고 판단하는 데 결정적인 역할을 했는지를 heatmap 형태로 나타내는 지도(map)입니다.
    • 초기 CAM은 특정 Convolutional Neural Network (CNN) 아키텍처, 특히 특징 맵(feature map) 바로 뒤에 Global Average Pooling (GAP) 레이어가 있는 모델에만 적용 가능했으나, gradient 기반으로 이를 시각화할 수 있는 GradCAM이 나와 model-agnostic 하게 되었습니다.
  • Pixel Affinity Network

    • WSSS에서 초기 CAM은 특정 객체의 가장 특징적인 부분만 활성화되는 경향이 있어, 객체 전체 영역을 정확하게 커버하지 못하는 '불완전성(incompleteness)' 문제를 가집니다.
    • Pixel affinity network는 이러한 초기 CAM의 한계를 보완하기 위해 사용됩니다. 이 네트워크는 이미지 내 픽셀들 간의 semantic affinity(의미적 유사성)를 학습합니다.
    • 즉, 시맨틱적으로 유사한 픽셀들은 서로 연결되도록 학습하여, 초기 CAM에서 활성화되지 않은 객체의 다른 부분까지 활성화 영역을 확장하고 정제하는 역할을 합니다.
  • Saliency Map

    • Saliency map은 이미지 내에서 사람의 시선이 가장 먼저 가거나, 가장 두드러지는(salient) 영역을 시각화한 지도입니다.
    • 컴퓨터 비전에서는 주로 이미지 내에서 객체나 중요한 영역을 탐지하는 데 사용됩니다.
    • WSSS에서는 이 saliency map을 보조적인 정보로 활용하여, 초기 CAM이 놓치거나 잘못 예측한 배경 영역이나 객체의 특정 부분들을 구분하고 정제하는 데 도움을 줍니다. 예를 들어, 객체와 배경을 더 정확하게 분리하는 데 사용될 수 있습니다.
  • Pseudo Mask

    • Semantic segmentation 모델을 훈련하려면 픽셀 단위의 정확한 '정답 마스크(ground truth mask)'가 필요합니다. 하지만 WSSS는 이러한 비용이 많이 드는 정답 마스크가 없습니다.
    • 이때, 초기 CAM이나 정제된 CAM을 마치 '정답 마스크'처럼 활용하는데, 이를 pseudo mask(가상 마스크 또는 의사 마스크)라고 부릅니다.
    • 즉, 모델이 예측한 CAM을 바탕으로 픽셀들을 특정 클래스로 분류한 후, 이 분류된 픽셀들을 모아놓은 마스크를 생성하고, 이 마스크를 새로운 segmentation 모델을 훈련시키는 '임시 정답'으로 사용하는 것입니다. 이는 완전 지도 학습(fully supervised learning) 환경과 유사하게 모델을 훈련할 수 있게 합니다.

CLIP과 관련된 연구

  • Contrastive Language-Image Pre-training (CLIP)

    • CLIP은 OpenAI에서 개발한 대규모 이미지-텍스트 쌍 데이터셋으로 사전 학습된(pre-trained) 멀티모달 모델입니다.
    • 두 가지 주요 구성 요소로 이루어져 있습니다:
      • Image Encoder (이미지 인코더): 이미지를 벡터(임베딩)로 변환합니다.
      • Text Encoder (텍스트 인코더): 텍스트를 벡터(임베딩)로 변환합니다.
    • CLIP은 학습 과정에서 대조 학습(Contrastive Learning) 방식을 사용합니다. 이는 주어진 이미지와 텍스트 쌍이 서로 "잘 매치되는지(긍정 쌍)" 또는 "매치되지 않는지(부정 쌍)"를 학습하여, 이미지와 텍스트 간의 의미적 유사도를 측정하는 임베딩 공간을 만듭니다.
    • 이러한 학습 방식 덕분에 CLIP은 이미지와 텍스트를 모두 이해하고, 이 둘 사이의 관계를 파악하는 강력한 능력을 갖게 되었습니다.
  • Zero-shot 분류 (Zero-shot Classification)

    • Zero-shot 분류는 모델이 학습 과정에서 한 번도 본 적 없는 새로운 카테고리의 데이터를 분류하는 능력을 의미합니다.
    • 일반적인 분류 모델은 훈련 데이터에 있는 카테고리에 대해서만 분류할 수 있지만, CLIP과 같은 모델은 이미지와 텍스트 간의 관계를 학습했기 때문에, 새로운 카테고리에 대한 텍스트 설명만 주어지면 해당 카테고리의 이미지를 분류할 수 있습니다.
    • 예를 들어, CLIP은 '바나나' 이미지를 학습한 적이 없어도, '바나나'라는 텍스트가 주어지면 '사과'나 '오렌지'와 같은 다른 과일 이미지와 구분하여 '바나나' 이미지를 분류할 수 있습니다. 이는 "A photo of a {}"와 같은 프롬프트(prompt)를 사용하여 가능한데, {} 안에 새로운 클래스 이름을 넣어 텍스트 임베딩을 생성하고, 이를 이미지 임베딩과 비교하여 분류하는 방식입니다.
  • DALL-E2 모델

    • DALL-E2는 OpenAI에서 개발한 텍스트-이미지 생성(Text-to-Image Generation) 모델로, 사용자가 텍스트 설명을 입력하면, 그 설명에 맞는 다양한 이미지를 생성해 줍니다.
    • 이 모델은 CLIP의 강력한 이미지-텍스트 관계 이해 능력에 기반하여 개발되었으며, CLIP의 이미지 인코더와 텍스트 인코더를 활용하여 텍스트 설명을 이미지 잠재 공간(latent space)으로 매핑하고, 이를 다시 이미지로 디코딩하는 방식으로 작동합니다. 즉, 텍스트와 이미지 간의 깊은 연관성을 학습한 결과물이라고 볼 수 있습니다.
  • GradCAM

    • GradCAM (Gradient-weighted Class Activation Mapping)은 앞서 설명한 CAM의 일반화된 버전입니다.
    • CAM은 특정 네트워크 아키텍처에만 적용 가능했던 한계를 가지고 있었지만, GradCAM은 그래디언트(gradient) 정보를 사용하여 특징 맵을 결합하기 때문에 네트워크 아키텍처에 대한 특별한 제약이 없습니다. 이는 CNN 기반 모델뿐만 아니라 ViT(Vision Transformer)와 같은 다른 아키텍처에도 적용될 수 있음을 의미합니다.
    • GradCAM은 특정 클래스의 예측에 얼마나 중요한 영향을 미쳤는지 측정하기 위해, 특정 클래스의 최종 점수(logit score)에 대한 특징 맵의 그래디언트를 계산합니다. 이 그래디언트를 가중치로 사용하여 특징 맵을 합산함으로써, 모델이 이미지의 어느 영역을 보고 특정 클래스를 판단했는지 보여주는 heatmap을 생성합니다.
    • 본 논문에서는 이 GradCAM을 CLIP에 적용하고, 여기에 softmax 함수를 도입하여 (Softmax-GradCAM) 클래스 간의 경쟁을 유도하여 혼동을 줄이는 데 활용합니다.

저자들의 제안

  • CLIP의 잠재력 탐색 및 CLIP-ES 제안:

    • 최근 Contrastive Language-Image Pre-training (CLIP) 모델은 4억 개의 이미지-텍스트 쌍으로 사전 학습되어 이미지와 텍스트 스니펫이 일치하는지 예측하며, zero-shot 분류에서 큰 성공을 거두었습니다. 이 모델은 데이터셋에 구애받지 않고 새로운 데이터셋에 직접 전이 학습(transfer)될 수 있습니다.
    • CLIP의 강력한 텍스트-이미지 생성 능력(예: DALL-E2)은 텍스트와 이미지 내 해당 구성 요소 간의 강한 연관성을 시사합니다.
    • ViT (Vision Transformer)의 Multi-Head Self-Attention (MHSA)은 패치 간의 semantic affinity를 반영하며, affinity 네트워크를 대체할 잠재력을 가지고 있습니다.
    • 본 논문은 이러한 CLIP과 ViT의 잠재력에 영감을 받아, 이미지-레벨 레이블만으로도 추가 훈련 없이 다양한 카테고리를 찾아낼 수 있는 CLIP의 능력을 탐색하고, 이 능력을 효율적으로 활용하여 고품질의 segmentation 마스크를 생성하는 새로운 WSSS 프레임워크인 CLIP-ES를 제안합니다.
  • CLIP-ES 프레임워크의 주요 개선 사항: CLIP-ES는 WSSS의 세 단계를 CLIP에 특화된 디자인으로 개선합니다.

    1. CAM 생성 단계:
      • GradCAM에 softmax 함수를 도입하여 비-타겟 클래스(non-target classes) 및 배경으로 인한 혼란(confusion)을 억제합니다. 이는 CLIP의 zero-shot 능력을 활용하여 가능한 혼란을 줄입니다 (Fig. 1 참조).
      • CLIP의 장점을 최대한 활용하기 위해 WSSS 설정에서 텍스트 입력(text inputs)을 재탐색하고 두 가지 텍스트-기반 전략(text-driven strategies)을 맞춤화합니다: sharpness-based prompt selection과 synonym fusion.
    2. CAM 정제 단계:
      • CAM 정제 단계를 간소화하기 위해 CLIP-ViT의 내재된 MHSA(Multi-Head Self-Attention)를 기반으로 하는 실시간 Class-Aware Attention-based Affinity (CAA) 모듈을 제안합니다. 이는 기존 방법론에서 별도의 affinity network를 훈련할 필요 없이 실시간으로 CAM을 정제합니다.
    3. 최종 segmentation 모델 훈련 단계:
      • CLIP이 생성한 마스크를 사용하여 최종 segmentation 모델을 훈련할 때, 확신(confidence) 있는 영역에 초점을 맞추는 Confidence-Guided Loss (CGL)를 도입하여 가상 마스크의 노이즈 문제를 완화합니다.
  • CLIP-ES의 성과:

    • CLIP-ES는 Pascal VOC 2012 The Pascal Visual Object Classes (VOC) Challenge와 MS COCO 2014 Microsoft COCO: Common Objects in Context에서 SOTA (State-of-the-Art) 성능을 달성합니다.
    • 가상 마스크 생성에 필요한 시간이 기존 방법의 10%에 불과하여 효율성 측면에서도 뛰어납니다.

2. Related Work

WSSS의 기존 방법과 CLIP 모델에 대해 다루고 있습니다. 이에 대한 설명은 위에 전부 나와있으므로 생략하겠습니다.

3. Method

3.1. Softmax-GradCAM

피처별 가중치 계산

주어진 수식은 GradCAM에서 클래스 활성화 맵(CAM)을 생성하는 데 사용되는 클래스 특징 가중치를 계산하는 공식입니다. 이 가중치는 특정 클래스에 대한 모델의 예측에 각 특징 맵이 얼마나 중요한 영향을 미치는지 나타냅니다. 모델이 추론한 클래스 로짓을 피처맵 값으로 미분한 것으로, 수식은 다음과 같습니다:

wkc=1ZijYcAijkw_k^c = \frac{1}{Z} \sum_i \sum_j \frac{\partial Y^c}{\partial A_{ij}^k}

각 항의 의미는 다음과 같습니다:

  • wkcw_k^c: 특정 클래스 cc에 대한 kk번째 특징 맵의 가중치입니다. 이 가중치는 해당 특징 맵이 클래스 cc를 예측하는 데 얼마나 기여하는지를 나타냅니다.
  • ZZ: 특징 맵의 총 픽셀 수입니다. 이는 그래디언트 합계를 정규화하여 공간 차원에 걸쳐 평균을 내는 역할을 합니다.
  • ij\sum_i \sum_j: 특징 맵의 모든 공간 위치(i, j)에 대한 합계를 의미합니다. 즉, 특징 맵 전체에 걸쳐 그래디언트를 합산합니다.
  • YcY^c: 클래스 cc에 대한 로짓(logit) 점수입니다. 로짓은 모델의 마지막 출력 레이어에서 소프트맥스 함수를 적용하기 전의 원시 예측 값입니다.
  • AijkA_{ij}^k: kk번째 특징 맵의 위치 (i, j)에서의 활성화 값입니다.
  • YcAijk\frac{\partial Y^c}{\partial A_{ij}^k}: 클래스 cc의 로짓 점수(YcY^c)가 kk번째 특징 맵의 위치 (i, j)에 있는 활성화 값(AijkA_{ij}^k)에 대해 얼마나 민감하게 변하는지를 나타내는 그래디언트입니다. 이는 특정 특징 맵의 특정 공간 위치가 해당 클래스 예측에 미치는 영향력을 측정합니다.

가중치를 피처맵에 곱해 CAM으로 변환

다음으로, 특정 클래스 cc에 대한 활성화 맵(CAMcCAM^c)으로 변환하는 공식입니다. 이는 위에서 계산한 wkcw_k^c을 각 피처맵에 weighted sum한 뒤 ReLU를 태워 음의 값을 절삭하는 과정이며, 수식은 다음과 같습니다:

CAMijc=ReLU(kwkcAijk)CAM^c_{ij} = ReLU \left( \sum_k w^c_k A^k_{ij} \right)

각 항에 대한 자세한 설명은 다음과 같습니다.

  • CAMijc\mathbf{CAM^c_{ij}}: 이는 특정 클래스 cc에 대한 Class Activation Map의 공간 위치 (i,j)(i, j)에서의 값을 나타냅니다. 이 맵은 이미지에서 해당 클래스에 가장 중요한 영역이 어디인지 시각적으로 보여줍니다. 값이 높을수록 해당 픽셀이 클래스 cc에 속할 확률이 높다는 것을 의미합니다.

  • ReLU\mathbf{ReLU} (Rectified Linear Unit): 활성화 함수 중 하나입니다. 수식은 ReLU(x)=max(0,x)\text{ReLU}(x) = \max(0, x)로 정의됩니다. 이 함수를 사용하는 이유는 다음과 같습니다:

    • 양의 영향 강조: 대상 클래스에 긍정적인 영향을 미치는 특징들만을 고려하고, 음의 영향을 미치는 특징들은 0으로 만들어 무시함으로써 CAM이 해당 클래스의 존재를 가장 강하게 나타내는 영역에 집중할 수 있도록 합니다.
    • 해석 가능성: 이를 통해 생성된 CAM은 특정 클래스의 존재에 대한 모델의 '증거' 또는 '확신'을 양수 값으로 명확하게 시각화하여 해석하기 용이하게 만듭니다.
  • k\mathbf{\sum_k}: 이는 모든 특징 맵(kk)에 대한 합산을 나타냅니다. 딥러닝 모델의 특정 레이어에서 여러 개의 특징 맵이 생성되는데, 이들 각각이 이미지의 다른 측면을 포착합니다. 이 합산은 모든 관련 특징 맵의 기여도를 통합합니다.

  • wkc\mathbf{w^c_k}: 이는 클래스 cc에 대한 kk번째 특징 맵의 가중치입니다. 이 가중치는 모델의 예측에서 해당 특징 맵이 클래스 cc에 얼마나 중요한 기여를 하는지를 나타냅니다. 원본 GradCAM 에서는 이 가중치를 대상 클래스 로짓(softmax 이전의 값)에 대한 특정 특징 맵의 기울기(gradient)를 평균하여 계산합니다.

    • 이 논문 CLIP is Also an Efficient Segmenter에서는 이 wkcw^c_k를 계산할 때 softmax 함수를 도입하여 (4번 공식 참고) 비대상 클래스와 배경으로 인한 혼동을 억제하고, 카테고리 간의 상호 배타성을 높이는 방식으로 개선했습니다.
  • Aijk\mathbf{A^k_{ij}}: 이는 kk번째 특징 맵의 공간 위치 (i,j)(i, j)에서의 활성화 값입니다. 이는 특정 특징 맵이 이미지의 해당 영역에 대해 얼마나 활성화되었는지를 나타냅니다.

기존 GradCAM의 문제점

그러나 기존의 Grad-CAM은 소프트맥스 함수를 적용하기 전의 로짓 스코어를 사용하여 기울기(gradient)를 계산했습니다. 그러나 이런 분류 태스크의 이진 교차 엔트로피 손실(binary cross entropy loss)은 이미지 내부에 섞여있는 다른 클래스들 간의 경쟁(competition)을 반영할 수 없습니다. 즉, CLIP 모델 자체는 교차 엔트로피 손실과 소프트맥스를 사용하여 학습되었지만, 하나의 이미지에 여러 요소가 혼재되어 있을 때는 카테고리 간의 명확한 구분이 어렵습니다.

이를 해결하기 위해 저자들은 Grad-CAM에 소프트맥스 함수를 도입하여 각 카테고리가 상호 배타적(mutually exclusive)이 되도록 만듭니다. 즉, 한 픽셀이 한 클래스에 속할 확률이 높으면 다른 클래스에 속할 확률은 낮아지도록 강제합니다. 이를 통해 타겟 클래스와 배경 또는 비타겟 클래스 간의 혼동(confusion)을 효과적으로 억제하고, 더 정확하고 완전한 Class Activation Map (CAM)을 생성하는 데 기여합니다.

  • 이진 교차 엔트로피 손실(Binary Cross-Entropy Loss, BCEL):

    • 이 손실 함수는 주로 이진 분류(binary classification) 문제, 즉 어떤 항목이 특정 카테고리에 '속하는지/속하지 않는지'를 판단할 때 사용됩니다.
    • 다중 레이블 설정에서는 이 BCEL이 각 클래스(예: 사람, 보트, 물)에 대해 독립적으로 적용됩니다.
    • 예를 들어, 이미지가 주어졌을 때 모델은 '사람' 클래스에 대해 BCEL을 계산하고, '보트' 클래스에 대해 BCEL을 계산하고, '물' 클래스에 대해 BCEL을 계산하는 식입니다.
    • 각 클래스의 예측값이 다른 클래스의 예측값에 영향을 주지 않습니다. '사람'이 있는지 없는지를 예측하는 과정이 '보트'가 있는지 없는지를 예측하는 과정과 독립적으로 이루어집니다.
  • Softmax 기반 GradCAM

    • 일반적인 GradCAM은 단일 레이블 분류에만 사용되었기 때문에, 소프트맥스(softmax) 함수와 교차 엔트로피 손실을 사용하여, 입력이 오직 하나의 클래스에만 속하도록 강제합니다 (예: 이 사진은 '개' 아니면 '고양이' 아니면 '새' 중 하나다).
    • 그러나 WSSS 태스크에서는 하나의 이미지에 여러 개의 요소가 들어있으므로, 타겟 클래스를 방해하는 다른 클래스들간의 경쟁을 반영하지 않으면 제대로 된 CAM 생성이 어렵습니다. 이를 해결하기 위해 모든 클래스에 대한 로짓값을 Softmax 함수로 반영합니다.
sc=exp(Yc)c=1Cexp(Yc)s_c = \frac{\exp(Y^c)}{\sum_{c'=1}^{C} \exp(Y^{c'})}
  • scs_c: 특정 클래스 cc에 대한 소프트맥스 적용 후의 스코어 또는 확률을 나타냅니다. 이 값은 0과 1 사이이며, 모든 클래스의 scs_c 값을 합하면 1이 됩니다.
  • YcY_c: 소프트맥스 함수가 적용되기 전의 클래스 cc에 대한 로짓(logit) 스코어입니다. 이는 신경망의 마지막 레이어에서 출력되는 원시(raw) 예측 값입니다.
  • exp()\exp(\cdot): 지수 함수를 나타냅니다. 이는 로짓 값을 양수로 변환하여 확률처럼 다룰 수 있게 하며, 더 큰 로짓 값에 더 높은 가중치를 부여합니다.
  • c=1Cexp(Yc)\sum_{c'=1}^{C} \exp(Y_{c'}): 모든 클래스(cc'은 1부터 총 클래스 수 CC까지)의 지수 함수가 적용된 로짓 스코어를 합산한 값입니다. 이 값은 정규화 항으로 사용되어 각 클래스의 스코어가 전체 스코어에서 차지하는 비율을 계산하는 데 사용됩니다.전체 수식을 간단하게 요약하면 다음과 같습니다.
  • 또한 저자들은 데이터셋에 정의된 카테고리간의 경쟁만으론 타겟을 배경으로부터 분리하기 어렵다는 것을 파악하고, 배경들 또한 카테고리에 추가하였습니다.
  • CLIP의 제로샷(zero-shot) 능력 덕분에, 이러한 배경 카테고리를 위해 분류 네트워크를 다시 학습시킬 필요 없이 단순히 입력 텍스트를 수정하는 것만으로 배경 픽셀을 억제할 수 있습니다.

이후 YcY^c 대신 scs_c를 미분하면, 아래와 같은 식이 나옵니다.

wkc=1ZijscAijkw_k^c = \frac{1}{Z} \sum_i \sum_j \frac{\partial s^c}{\partial A_{ij}^k}
=1ZijcYcAijkscYc= \frac{1}{Z} \sum_i \sum_j \sum_{c'} \frac{\partial Y^{c'}}{\partial A_{ij}^k} * \frac{\partial s^c}{\partial Y^{c'}}
=1ZijYcAijksc(1sc)+1ZijccYcAijksc(sc)= \frac{1}{Z} \sum_i \sum_j \frac{\partial Y^c}{\partial A_{ij}^k} * s^c(1 - s^c) + \frac{1}{Z} \sum_i \sum_j \sum_{c' \neq c} \frac{\partial Y^{c'}}{\partial A_{ij}^k} * s^c(-s^{c'})

각 항의 의미는 다음과 같습니다:

  • wkcw_k^c: cc번째 클래스에 대한 kk번째 특징 맵의 가중치입니다. 이 가중치는 최종 Class Activation Map (CAM)을 생성할 때 kk번째 특징 맵의 중요도를 결정합니다.
  • ZZ: 특징 맵의 전체 픽셀 수입니다. GradCAM에서 미분값의 합을 평균화하는 데 사용됩니다.
  • i,ji, j: 특징 맵 내의 픽셀 위치를 나타내는 인덱스입니다.
  • cc': 데이터셋에 정의된 모든 클래스를 나타내는 인덱스입니다.
  • YcY^{c'}: cc'번째 클래스의 로짓(logit) 점수입니다. 이는 소프트맥스 함수를 적용하기 전의 모델 출력값을 의미합니다.
  • AijkA_{ij}^k: kk번째 특징 맵의 (i,j)(i, j) 위치에서의 활성화 값(activation value)입니다. 이는 특정 레이어의 특징 맵에서 얻어지는 값입니다.
  • YcAijk\frac{\partial Y^{c'}}{\partial A_{ij}^k}: cc'번째 클래스의 로짓 점수가 kk번째 특징 맵의 (i,j)(i, j) 위치 활성화 값에 대해 얼마나 민감하게 변하는지를 나타내는 기울기(gradient)입니다.
  • scs^c: 소프트맥스 함수를 거쳐 정규화된 cc번째 클래스의 확률 점수입니다.
  • scYc\frac{\partial s^c}{\partial Y^{c'}}: cc번째 클래스의 소프트맥스 확률이 cc'번째 클래스의 로짓 점수에 대해 얼마나 민감하게 변하는지를 나타내는 기울기입니다.
    • 만약 c=cc = c'인 경우, scYc=sc(1sc)\frac{\partial s^c}{\partial Y^c} = s^c(1 - s^c)입니다. 이는 타겟 클래스 로짓에 대한 자기 클래스 확률의 변화를 나타냅니다.
    • 만약 ccc \neq c'인 경우, scYc=sc(sc)\frac{\partial s^c}{\partial Y^{c'}} = s^c(-s^{c'})입니다. 이는 비타겟 클래스 로짓이 타겟 클래스 확률에 미치는 영향을 나타냅니다.
  • ccc \neq c' 항은 타겟 클래스 cc가 아닌 다른 클래스 cc'가 활성화될 때 타겟 클래스 cc의 특징 맵 가중치(wkcw_k^c)를 억제하는 효과를 가집니다. 이는 클래스 간의 상호 배타성(mutually exclusive)을 강화하여, CAM이 특정 타겟 클래스에 더 집중하고 배경 및 관련 없는 객체를 효과적으로 억제하도록 돕습니다.

수식의 유도 과정

위 수식을 유도하는 과정을 따로 정리해보았습니다.

이 때 scs^c에 대한 소프트맥스 함수는 다음과 같이 정의 됐으므로,

sc=exp(Yc)k=1Cexp(Yk)s^c = \frac{\exp(Y^c)}{\sum_{k=1}^C \exp(Y^k)}

여기서 scs^ccc번째 클래스의 확률, YcY^ccc번째 클래스의 로짓(logit) 점수, k=1Cexp(Yk)\sum_{k=1}^C \exp(Y^k)는 모든 클래스의 exp(로짓)\exp(\text{로짓}) 값들의 합입니다.
계산을 간단히 하기 위해 분모를 ZZ라고 하겠습니다. (이는 논문에서 사용된 ZZ와는 다른 의미입니다. 여기서는 분모를 나타내는 약어로 사용하겠습니다.)

Z=k=1Cexp(Yk)Z = \sum_{k=1}^C \exp(Y^k)

따라서, sc=exp(Yc)Zs^c = \frac{\exp(Y^c)}{Z} 로 쓸 수 있습니다.

경우 1: c=cc' = c 일 때 (scYc\frac{\partial s^c}{\partial Y^c} 유도)

이 경우는 cc번째 클래스의 확률 scs^c를 자기 자신의 로짓 YcY^c에 대해 미분하는 것입니다. 이는 몫의 미분법(ddx(uv)=uvuvv2\frac{d}{dx} \left( \frac{u}{v} \right) = \frac{u'v - uv'}{v^2})을 사용하여 계산할 수 있습니다.

여기서:

  • u=exp(Yc)u = \exp(Y^c)
  • v=Z=k=1Cexp(Yk)v = Z = \sum_{k=1}^C \exp(Y^k)

각각을 YcY^c에 대해 미분하면:

  • u=Yc(exp(Yc))=exp(Yc)u' = \frac{\partial}{\partial Y^c} (\exp(Y^c)) = \exp(Y^c)
  • v=Yc(k=1Cexp(Yk))v' = \frac{\partial}{\partial Y^c} \left( \sum_{k=1}^C \exp(Y^k) \right)
    ZZ는 모든 exp(Yk)\exp(Y^k)의 합이므로, YcY^c에 대해 미분할 때 YcY^c 항만 남고 다른 YkY^k (kck \neq c) 항은 상수 취급되어 미분하면 0이 됩니다.
    따라서, v=exp(Yc)v' = \exp(Y^c)

이제 이 값들을 몫의 미분법 공식에 대입합니다:

scYc=uvuvv2=exp(Yc)Zexp(Yc)exp(Yc)Z2\frac{\partial s^c}{\partial Y^c} = \frac{u'v - uv'}{v^2} = \frac{\exp(Y^c) \cdot Z - \exp(Y^c) \cdot \exp(Y^c)}{Z^2}

이 식을 정리합니다:

scYc=exp(Yc)ZZ2(exp(Yc))2Z2\frac{\partial s^c}{\partial Y^c} = \frac{\exp(Y^c) \cdot Z}{Z^2} - \frac{(\exp(Y^c))^2}{Z^2}
scYc=exp(Yc)Z(exp(Yc)Z)2\frac{\partial s^c}{\partial Y^c} = \frac{\exp(Y^c)}{Z} - \left( \frac{\exp(Y^c)}{Z} \right)^2

소프트맥스 함수의 정의에 따라 sc=exp(Yc)Zs^c = \frac{\exp(Y^c)}{Z} 이므로, 이를 대입하면:

scYc=sc(sc)2\frac{\partial s^c}{\partial Y^c} = s^c - (s^c)^2
scYc=sc(1sc)\frac{\partial s^c}{\partial Y^c} = s^c (1 - s^c)

이로써 첫 번째 유도가 완료되었습니다.

경우 2: ccc' \neq c 일 때 (scYc\frac{\partial s^c}{\partial Y^{c'}} 유도)

이 경우는 cc번째 클래스의 확률 scs^c를 자기 자신이 아닌 다른 클래스 cc'의 로짓 YcY^{c'}에 대해 미분하는 것입니다. 역시 몫의 미분법을 사용합니다.

여기서:

  • u=exp(Yc)u = \exp(Y^c)
  • v=Z=k=1Cexp(Yk)v = Z = \sum_{k=1}^C \exp(Y^k)

각각을 YcY^{c'}에 대해 미분하면:

  • u=Yc(exp(Yc))u' = \frac{\partial}{\partial Y^{c'}} (\exp(Y^c))
    uuYcY^c에만 의존하며, YcY^{c'} (ccc' \neq c)과는 무관하므로, YcY^{c'}에 대한 미분값은 00입니다.
    u=0u' = 0

  • v=Yc(k=1Cexp(Yk))v' = \frac{\partial}{\partial Y^{c'}} \left( \sum_{k=1}^C \exp(Y^k) \right)
    ZZ는 모든 exp(Yk)\exp(Y^k)의 합입니다. YcY^{c'}에 대해 미분할 때, 합 내부의 YcY^{c'} 항(즉, exp(Yc)\exp(Y^{c'}))만 남고 다른 항들은 상수 취급되어 미분하면 0이 됩니다.
    따라서, v=exp(Yc)v' = \exp(Y^{c'})

이제 이 값들을 몫의 미분법 공식에 대입합니다:

scYc=uvuvv2=0Zexp(Yc)exp(Yc)Z2\frac{\partial s^c}{\partial Y^{c'}} = \frac{u'v - uv'}{v^2} = \frac{0 \cdot Z - \exp(Y^c) \cdot \exp(Y^{c'})}{Z^2}

이 식을 정리합니다:

scYc=exp(Yc)exp(Yc)Z2\frac{\partial s^c}{\partial Y^{c'}} = - \frac{\exp(Y^c) \cdot \exp(Y^{c'})}{Z^2}
scYc=(exp(Yc)Z)(exp(Yc)Z)\frac{\partial s^c}{\partial Y^{c'}} = - \left( \frac{\exp(Y^c)}{Z} \right) \cdot \left( \frac{\exp(Y^{c'})}{Z} \right)

소프트맥스 함수의 정의에 따라 sc=exp(Yc)Zs^c = \frac{\exp(Y^c)}{Z} 이고, 마찬가지로 sc=exp(Yc)Zs^{c'} = \frac{\exp(Y^{c'})}{Z} 이므로, 이를 대입하면:

scYc=scsc\frac{\partial s^c}{\partial Y^{c'}} = - s^c s^{c'}

이로써 두 번째 유도가 완료되었습니다.

그러므로 아래와 같은 식이 최종적으로 유도되는 것입니다.

wkc=1ZijscAijkw_k^c = \frac{1}{Z} \sum_i \sum_j \frac{\partial s^c}{\partial A_{ij}^k}
=1ZijYcAijksc(1sc)+1ZijccYcAijksc(sc)= \frac{1}{Z} \sum_i \sum_j \frac{\partial Y^c}{\partial A_{ij}^k} * s^c(1 - s^c) + \frac{1}{Z} \sum_i \sum_j \sum_{c' \neq c} \frac{\partial Y^{c'}}{\partial A_{ij}^k} * s^c(-s^{c'})

3.2. Text-driven Strategies

CLIP의 텍스트-이미지 이해도를 이용하여, 프롬프트를 통해 어떤 클래스를 활성화할지 정하는 과정입니다. 이 때 해당 태스크의 성능을 끌어올리기 위해 아래 두 가지 방법을 제안합니다.

3.2.1 Sharpness-based Prompt Selection

CLIP 모델을 활용한 WSSS에서 효과적인 텍스트 프롬프트를 선택하는 방법을 설명합니다.

  • 문제점 인식:

    • 일반적인 이미지 분류 작업에서는 여러 프롬프트를 결합하는 '프롬프트 앙상블(prompt ensembling)'이 단일 타겟 클래스의 점수를 극대화하여 분류 성능을 크게 향상시킵니다.
    • 그러나 WSSS은 이미지 내에 여러 객체가 존재하므로, 프롬프트 앙상블이 특정 타겟 클래스를 과도하게 두드러지게 만들면, 같은 이미지 내의 다른 타겟 클래스들의 점수를 억제하여 전반적인 분할 성능을 저하시킬 수 있습니다.
  • Sharpness 지표 제안:

    • 이러한 문제를 해결하고 WSSS에 적합한 프롬프트를 선택하기 위해, 저자들은 'Sharpness'라는 새로운 지표를 제안했습니다.

    • Sharpness는 다중 라벨 이미지에서 타겟 클래스 점수 분포의 '분산(dispersion)'을 측정하는 지표입니다. 이는 통계학에서 사용되는 변동 계수(Coefficient of Variation)에서 영감을 받았습니다.

    • Sharpness를 이해하기 위해선 분산, 표준편차, 변동계수의 개념을 알아야 합니다.

      • 분산: 관측값에서 평균을 뺀 뒤, 음의 값을 무시할 수 있도록 제곱하고, 그 값을 평균 낸 값으로, 데이터가 평균으로부터 얼마나 떨어져있는지를 파악하는 지표입니다.

      • 표준편차: 분산의 제곱근으로, 제곱 연산 때문에 실제 값에서 너무 먼 분산의 결과를 완화시킨 값입니다.

      • 집값은 천차만별이나, 쌀값은 큰 변동이 없는 것처럼, 데이터 분포에서 평균이 크면 데이터 분포도 넓어집니다. 따라서 평균 대비 표준편차를 계산하면 서로 다른 특성의 데이터 분포를 비교할 수 있습니다. 이점에 착안하여, 표준편차를 평균으로 나눈 것이 변동계수입니다.

      • 그러나 논문의 저자들은 변동계수의 개념을 살짝 비틀어 표준편차가 아닌 분산을 사용합니다. 이는 이미지 속의 각 개체에 대한 확률이 softmax를 거쳐 0부터 1 사이로 나오기 때문에, 제곱근을 거치지 않은 분산이 표준편차보다 더 작은 값을 갖기 때문입니다.

      • 만약 평균이 0에 가까울 경우, 분자가 매우 작아져 변동계수의 값은 요동칠 것입니다. 그러나 표준편차보다 작은 값을 가지는 분산을 분자로 쓸 경우 이러한 불안전성을 상쇄할 수 있습니다.

    • 이러한 지식을 가지고 sharpness 수식을 이해해봅시다:

      sharpness(prompt)=i=1nvar(si1,,sik)i=1nmean(si1,,sik)sharpness(\text{prompt}) = \frac{\sum_{i=1}^{n} \text{var}(s_{i1}, \dots, s_{ik})}{\sum_{i=1}^{n} \text{mean}(s_{i1}, \dots, s_{ik})}
      • 여기서 nn은 데이터셋에 있는 이미지의 총 개수입니다.
      • kk는 이미지 ii에 존재하는 카테고리 개수를 나타냅니다(k1k \ge 1).
      • sijs_{ij}ii-번째 이미지에서 jj-번째 클래스의 softmax 이후 점수를 의미합니다.
      • var()\text{var}(\cdot)는 분산을, mean()\text{mean}(\cdot)은 평균을 나타냅니다.
    • 분산은 데이터 포인트들이 평균으로부터 얼마나 떨어져 있는지를 나타내는 척도입니다.

    • 분산이 작다는 것은 si1,...,siks_{i1}, ..., s_{ik} 값들이 서로 매우 가깝게 분포되어 있다는 것을 의미합니다. 즉, 이미지 ii 내의 타겟 클래스들의 Softmax 점수들이 서로 비슷한 값을 가진다는 뜻입니다.

    • 따라서 이들의 합인 Sharpness 값이 낮을수록, 이미지 내의 여러 타겟 클래스 점수 분포가 더 균형적임을 의미합니다.

    • 실험 결과는 Sharpness와 분할 성능이 대체로 음의 상관관계(Sharpness성능\text{Sharpness} \downarrow \text{성능} \uparrow)를 보임을 입증했습니다. 즉, Sharpness가 낮은 프롬프트가 더 좋은 분할 성능을 제공합니다.

  • 효과적인 프롬프트 선택:

    • 이 지표를 통해 저자들은 "a clean origami {}."라는 프롬프트가 가장 낮은 Sharpness 값을 가짐과 동시에 최적의 분할 성능을 달성했음을 확인했습니다.
    • "origami"나 "rendering"과 같은 추상적인 묘사와 "clean", "large", "weird"와 같은 형용사가 분할 성능에 긍정적인 영향을 미친다는 것도 발견했습니다. 이는 일반적인 분류 작업과 달리, WSSS에서는 객체의 본질적인 특성을 설명하는 텍스트가 더 효과적일 수 있음을 시사합니다.

3.2.2 Synonym Fusion

이 섹션에서는 WSSS에서 CLIP 모델의 텍스트 입력 기능을 최대한 활용하기 위해 동의어(synonym)를 사용하는 전략인 '동의어 통합(Synonym Fusion)'에 대해 설명합니다.

  • 목적: CLIP이 이해하는 풍부한 언어에 비해 데이터셋에 제공되는 카테고리 이름은 제한적이기 때문에, 동의어를 활용하여 CLIP의 언어 임베딩과 세그멘테이션 모듈간의 의미론적 이해도를 높입니다.
  • 동의어 병합 전략:
    • 논문에서는 동의어를 병합하는 다양한 전략(문장 수준, 특징 수준, CAM 수준) 중에서 문장 수준(sentence-level) 병합을 사용합니다.
    • 문장 수준 병합 예시: "A clean origami of person, people, human"과 같이 여러 동의어를 하나의 문장에 포함시키는 방식입니다.
    • 장점: 이 방식은 다의어 문제를 해소하고, 여러 번의 순방향 계산(multiple forward passes)이 필요한 다른 방법들에 비해 시간을 효율적으로 사용할 수 있습니다.
  • 동의어 획득 방법: 동의어는 WordNet과 같은 어휘 데이터베이스나 Glove 워드 임베딩(word embedding)을 통해 얻을 수 있습니다.
  • 맞춤형 단어 사용: 특정 카테고리의 성능을 향상시키기 위해 맞춤형 단어를 사용할 수도 있습니다. 예를 들어, 'person' 카테고리의 CAM이 얼굴에만 집중되는 경향이 있을 때, 'person with clothes'와 같이 옷을 포함하는 표현을 사용하면 전체 몸을 커버하는 CAM을 생성하는 데 도움이 될 수 있습니다. 이는 CLIP이 'person'과 'clothes'를 별개의 카테고리로 처리할 가능성에서 비롯됩니다.

이러한 동의어 통합 전략은 이미지 수준 레이블만을 사용하는 WSSS에서 텍스트 입력의 중요성을 강조하며, CLIP의 언어 이해 능력을 적극적으로 활용하여 초기 CAM의 품질을 높이는 데 기여합니다. 특히, 데이터셋의 한정된 어휘에서 발생하는 의미적 모호성을 줄여 모델이 더 정확한 영역을 식별하도록 돕습니다.

3.3. Class-aware Attention-based Affinity (CAA)

CLIP-ES 프레임워크의 두 번째 단계는 초기 CAM을 정제하는 것입니다. 이 단계에서 저자들은 Class-aware Attention-based Affinity (CAA) 모듈을 제안했습니다.

  • 해결해야 할 문제: Multi-Head Self-Attention (MHSA)은 의미론적으로 유사한 개체들을 공통적으로 활성화하기 때문에 class-wise한 성격이 떨어집니다. 그러나 CAM은 클래스별(class-wise)이기 때문에, MHSA를 직접 사용하면 노이즈가 있는 픽셀이 의미론적으로 유사한 영역으로 전파되어 노이즈를 증폭시킬 수 있기 때문입니다. 따라서 이러한 한계를 극복하기 위해 제안된 CAA는 CLIP-ViT 모델의 내재된 MHSA를 기반으로 실시간으로 초기 CAM을 정제하는 것을 목표로 합니다.

  • CAA 작동 방식:

    • 클래스별 CAM 및 어텐션 가중치 확보: 이미지로부터 각 타겟 클래스 cc에 대한 클래스별 CAM 맵 McRh×wM^c \in R^{h \times w}와 MHSA에서 얻은 어텐션 가중치 WattnRhw×hwW_{attn} \in R^{hw \times hw}를 얻습니다.

    • Sinkhorn normalization: 비대칭적인 어텐션 가중치 WattnW_{attn}는 Sinkhorn normalization을 통해 이중 확률 행렬(doubly stochastic matrix) DD로 변환됩니다. 해당 정규화 과정은 각 행과 열을 각각 softmax를 취합니다.

      • 행을 정규화할 경우 쿼리가 모든 키를 골고루 참조하게 됩니다.
      • 열을 정규화할 경우 하나의 키가 모든 쿼리에 균형잡힌 업데이트를 가능케 합니다.
    • 대칭 어피니티 행렬 AA:

      A=D+DT2,D=Sinkhorn(Wattn)A = \frac{D + D^T}{2}, D = \text{Sinkhorn}(W_{attn})
      • DD의 문제점: 원본 어텐션 가중치 WattnW_{attn}는 "asymmetric (비대칭적)"입니다. 즉, 패치 A가 패치 B에 주는 어텐션 값과 패치 B가 패치 A에 주는 어텐션 값이 다를 수 있습니다. 이는 "어피니티(affinity)" 또는 "유사성"을 나타내는 데 적합하지 않습니다. 어피니티는 상호적이고 대칭적인 관계여야 합니다 (예: A가 B와 유사하면, B도 A와 유사해야 함).

      • 해결책:

        • 대칭화: D+DTD + D^T는 모든 행렬을 대칭 행렬로 만드는 일반적인 방법입니다. 어떤 행렬 MM이 있을 때, M+MTM + M^T는 항상 대칭 행렬이 됩니다. 왜냐하면 (M+MT)T=MT+(MT)T=MT+M(M + M^T)^T = M^T + (M^T)^T = M^T + M이기 때문입니다. 즉, 전치(transpose)해도 원본과 동일해집니다.
        • 평균화: 22로 나누는 것은 단순히 합쳐진 값을 평균화하여 스케일을 유지하고, 원본 DD와 유사한 값 범위를 갖도록 하기 위함입니다. 이는 단순한 스케일링 요소입니다.
      • 어피니티에서 대칭성이 중요한 이유:

        • 일관성 있는 관계: 이미지 내 두 영역 간의 '의미론적 유사성'은 방향에 독립적이어야 합니다. 픽셀 X가 픽셀 Y와 유사하다면, 픽셀 Y도 픽셀 X와 유사하다고 간주되어야 합니다. 대칭 행렬은 이러한 일관된 관계를 보장합니다.
    • 어피니티 행렬과 CAM의 결합

      Mcaff=BcAtvec(Mc)M^{aff}_c = B^c \odot A^t \cdot vec(M^c)
      • 박스 마스크 생성: CAM 맵 McM^c를 임계값 λ\lambda로 이진화하여 마스크 맵을 얻습니다. 이 마스크 맵에서 연결된 영역들을 찾고, 이 영역들을 덮는 최소한의 직사각형 경계 상자를 사용하여 박스 마스크 BcR1×hwB^c \in R^{1 \times hw}를 만듭니다. 초기 CAM의 극심한 불완전성을 고려하여, 픽셀 마스크 대신 경계 상자 마스크를 사용하여 객체의 더 많은 영역을 커버합니다.

      • CAM 정제: 박스 마스크 BcB^c는 어피니티 가중치 AA에 적용되어, 각 픽셀이 의미론적으로 유사한 픽셀에 기반하여 정제됩니다. 이 정제 과정은 여러 번 반복될 수 있으며, 다음 공식으로 표현됩니다:
        Mcaff=BcAtvec(Mc)M^{aff}_c = B^c \odot A^t \cdot vec(M^c)

        • McaffM^{aff}_c: 클래스 cc에 대해 정제된 어피니티 맵입니다.
        • BcB^c: 클래스 cc의 CAM에서 얻은 박스 마스크입니다.
        • \odot: 하마르다드 곱(Hadamard product)으로, 요소별 곱셈을 의미합니다.
        • AA: 대칭 어피니티 행렬입니다.
        • tt: 정제 반복 횟수를 나타냅니다.
        • vec()vec(\cdot): 행렬을 벡터로 변환하는 연산입니다.
      • 예시

        • 이미지 안에 여자와 남자가 하나씩 존재한다고 합시다. 그리고 이 이미지를 ViT에 넣기 위해 패치로 나누었을 때, 첫 번째 패치에는 여자가, 두 번째 패치에는 남자가 포함되었다고 가정해보겠습니다.

        • 트랜스포머의 어텐션 맵은 의미적, 형상적 연관성을 파악하기 때문에, 이를 가시화 하면 남자와 여자 모두 활성화 될 것입니다. 같은 비슷한 외형을 하고 있는 인간의 모습이기 때문입니다. 이를 대칭화한 어피니티 맵 AA는 더욱 더 둘 사이의 어텐션 스코어가 높을 것입니다.

        • 그런데 CAM은 Classification에 특화된 것이니 CLIP을 통해 들어온 'girl'이란 인풋에 대해 여자가 포함된 첫 번째 토큰만 활성화 될 것입니다. 따라서 바운딩박스 BcB^c도 첫 번째 토큰에만 쳐질 것입니다.

        • 여기서 BcAtB^c \odot A^t를 하면 어텐션 맵의 남자 부분은 활성화 되어있더라도 바운딩 박스 바깥에 있으므로 잘려나갈 것입니다. 이렇게 해서, '여자'라는 객체에 대한 어텐션 맵만 잘라낸 후, 여기에 CAM 맵인 McM^c를 곱하여 둘의 정보를 융합합니다.

3.4. Confidence-guided Loss (CGL)

  • CGL의 목적: 대부분의 기존 방법들은 CAM에서 pseudo masks를 생성할 때 단순히 임계값을 설정하여 객체와 배경을 구분합니다. 그러나 이렇게 생성된 의사 마스크는 신뢰도가 낮은 픽셀들이 포함되어 노이즈를 발생시키고, 이는 모델 학습을 방해할 수 있습니다. CGL은 이러한 의사 마스크의 노이즈를 줄여 학습 과정을 개선하는 것을 목표로 합니다.

  • CGL의 작동 방식:

    • 신뢰도 맵 생성: 먼저, 각 픽셀이 특정 클래스에 속하는 신뢰도를 나타내는 CAM 맵(XRh×w×cX \in \mathbb{R}^{h \times w \times c})으로부터 신뢰도 맵(Conf(i,j)Conf(i, j))을 계산합니다. 여기서 hh는 높이, ww는 너비, cc는 대상 클래스의 수입니다. 이 신뢰도 맵은 각 픽셀의 신뢰도를 종합적으로 나타냅니다.

      • 수식:
        Conf(i,j)=max(1maxc(X(i,j,c)),maxc(X(i,j,c)))(8)Conf (i, j) = \max(1 - \max_c (X(i, j, c)), \max_c (X(i, j, c))) \quad (8)
      • 수식 설명:
        • X(i,j,c)X(i, j, c): 위치 (i,j)(i, j)에서 cc-번째 클래스에 대한 CAM 값.
        • maxc(X(i,j,c))\max_c (X(i, j, c)): 위치 (i,j)(i, j)에서 모든 클래스 중 가장 높은 CAM 값.
        • 1maxc(X(i,j,c))1 - \max_c (X(i, j, c)): 가장 높은 CAM 값이 낮을수록 (즉, 불확실할수록) 이 값은 커집니다.
        • max(A,B)\max(A, B): AABB 중 더 큰 값을 선택합니다.
          • B가 선택될 경우: 해당 픽셀은 특정 클래스에 속할 확률이 매우 높습니다.
          • A가 선택될 경우: 해당 픽셀은 어느 클래스에도 속하지 않을 확률이 매우 높습니다.
    • 손실 계산 조절: 생성된 신뢰도 맵을 활용하여 최종 손실 함수(L^(i,j)\hat{L}(i, j))를 정의합니다. 특정 임계값(μ\mu)보다 신뢰도가 낮은 픽셀에 대해서는 손실 계산을 무시함으로써 노이즈의 영향을 줄입니다.

      • 수식:
        L^(i,j)={L(i,j),Conf(i,j)μ0,Conf(i,j)<μ(9)\hat{L}(i, j) = \begin{cases} L(i, j), & Conf (i, j) \ge \mu \\ 0, & Conf (i, j) < \mu \end{cases} \quad (9)
      • 수식 설명:
        • L(i,j)L(i, j): 위치 (i,j)(i, j)에서 Semantic Segmentation 모델의 예측값과 의사 마스크 간의 Cross Entropy Loss.
        • Conf(i,j)μConf(i, j) \ge \mu: 픽셀 (i,j)(i, j)의 신뢰도 맵 값이 임계값 μ\mu 이상인 경우. 이 경우 정상적으로 손실 L(i,j)L(i, j)를 계산하여 모델을 학습시킵니다.
        • Conf(i,j)<μConf(i, j) < \mu: 픽셀 (i,j)(i, j)의 신뢰도 맵 값이 임계값 μ\mu 미만인 경우. 이 경우 해당 픽셀의 손실을 0으로 설정하여 무시합니다.
  • CGL의 장점:

    • 노이즈 완화: 수도 마스크 내의 불확실한 픽셀을 무시함으로써 노이즈의 영향을 효과적으로 완화합니다.
    • 추가 정보 불필요: CGL은 CAM 자체의 신뢰도 정보를 활용하므로, 의사 마스크를 생성하는 데 추가적인 정보나 복잡한 계산이 필요하지 않습니다.
    • 성능 향상: 실험 결과(Tab. 7)에 따르면 CGL을 적용했을 때 Segmentation 성능이 향상되었습니다.

4. Experiments

(추후 작성 예정)

5. Conclusion

  • CAM 생성 단계

    • 일일이 세그멘테이션 맵을 만드는 것은 너무 어려운 일.
    • 그러나 CLIP은 이미지와 텍스트에 대한 이해도가 매우 높아 추가 학습 없이 세그멘테이션 도데인에서 사용 가능.
    • CAM 생성 과정에서 텍스트 정보를 추가로 주어 생성 정확도를 높임
    • GradCAM에 softmax 함수를 달아 타겟을 제외한 요소나 배경이 영향을 주는 것을 억제
    • 이 때 CLIP에 정제된 텍스트 정보를 주어 어떤 개체를 세그멘테이션 할지 알려줌
  • CAM 정제 단계

    • 기존의 WSSS은 CAM을 만들고, 여기에 Affinity Net을 추가 학습시켜 수도 마스크를 생성.
    • 그러나 ViT의 셀프 어텐션은 패치들간의 시맨틱 유사도를 파악하기 때문에, 추가학습이 필요한 Affinity Net을 대체할 수 있음.
    • 셀프 어텐션 맵과 CAM을 결합하여 CAM을 정제.
  • 세그멘테이션 훈련 단계

    • CGL을 도입하여 수도 마스크의 퀄리티를 더욱 상승시킴
profile
상어 인형을 좋아하는 사람

0개의 댓글