Study With Inha

[Paper Review] CVPR 2024, Open-World Semantic Segmentation Including Class Similarity 논문 리뷰 본문

Paper Review

[Paper Review] CVPR 2024, Open-World Semantic Segmentation Including Class Similarity 논문 리뷰

강이나 2024. 6. 9. 19:44
CVPR 2024, Open-World Semantic Segmentation Including Class Similarity

논문 링크: https://www.ipb.uni-bonn.de/wp-content/papercite-data/pdf/sodano2024cvpr.pdf
GitHub 링크: https://github.com/PRBonn/ContMAV

 

1. Introduction

컴퓨터 비전 기술이 실제 산업에 많이 적용됨에 따라서 조금더 넓은 coverage를 가진 기술에 대한 관심이 많아지고 있다.
본 논문도 컴퓨터 비전 task의 coverage를 넓히는 것을 목표로 하는 논문으로, Open World에서 발생하는 문제를 해결하고자 한다.

  • Closed world: 정해져 있는 class 중에 정답을 맞추는 task로, 과거 대부분의 computer vision task들이 집중한 분야
  • Open world: 정답이 될 수 있는 class의 개수를 한정짓지 않아 모든 class를 커버하는 것을 목표로 하는 task임

해당 논문에서는 segmentation을 수행할 때 두 가지 단계를 거치게 된다.
먼저, 이전에 학습된 적이 있어 기존에 알고 있는 class인지 새롭게 탐지한 class인지 구별하는 anomaly segmentation을 수행하며 이는 binary segmentation으로 볼 수 있다.
이후에는, 학습된 knowledge를 활용하여 새롭게 탐지한 novel class들 간의 pixel-wise segmentation을 수행하는 novel class discovery를 수행한다.

이를 통해서 기존에 학습된 적이 있는 known class들에 대한 성능을 저하시키지 않으면서도,
test datset에서 새롭게 탐지한 novel class에 대해서도 의미론적으로 유사성을 가지는 pixel끼리 하나의 class로 구분해줄 수 있다.
위 Figure 1에서와 같이, 학습된 적이 있는 class들을 잘 구분하고 있을 뿐만 아니라,
이전에 코끼리에 대한 class는 학습된 적이 없었음에도 코끼리 객체를 하나의 unknown class로 잘 구별해낸 모습을 확인할 수 있다.

 


3.2. Approach for Open-world Segmentation

Encoder Decoder로 이루어진 CNN 모델을 base로 구성되어 있다.
본 논문에서 제안하는 ContMAV의 특이한 점은 두 개의 Decoder로 구성되어 있으며,
두 Decoder의 결과를 post-processing을 통해 하나의 결과로 합쳐 최종 결과를 도출한다는 점이다.

  1. Semantic Decoder: 기본적으로는 semantic segmentation 수행을 목적으로 하나, 각 pixel들이 certain class로 구분된 근거를 댈 수 있도록 pre-softmax feature들을 known class에 대한 descriptor로써 활용한다. 이를 통해 unknown class를 마주하게 되더라도, 기존 descriptor와의 비교를 통해서 unknown class임을 탐지할 수 있게 된다.
  2. Contrastive Decoder: hypershpere 상에서 unknown class는 center로 가도록 하되 known class는 surface에 위치하도록 하기 위해서 contrastive loss와 objectoshpere loss를 함께 사용한다. (비슷한 개념은 본 논문 리뷰에서 확인할 수 있다) 즉, contrastive decoder에서는 unseen class들을 처리할 수 있도록 anomaly segmentation을 수행한다고 할 수 있다.

 

Semantic Decoder

Semantic segmentation은 이미지 내의 모든 픽셀들에 대해서
K개의 class들에 대한 categorical distribution을 예측하는 것을 목표로 한다.
이는 아래와 같은 weighted cross-entropy loss를 통해 학습될 수 있다.

  • $w_k$: 학습 데이터셋에서 해당 클래스 k가 나오는 빈도의 역수를 곱하여 class imbalance 문제를 완화하고자 하는 상수
  • $t$: one-hot encoded pixel-wise GT
  • $t_p$: one-hot encoded pixel-wise GT at pixel $p$
  • $\sigma$: softmax operation
  • $f_p$: pre-softmax feature predicted for pixel p

Semantic Decoder에서는 segmentation task를 수행하는 것을 목표로 할 뿐만 아니라
class descriptor를 만드는 것도 목표로 하고 있다.
따라서, 옳게 예측한 모든 true positive class에 대한 pre-softmax feature를 accumulate하는 과정이 필요하다.
이를 통해서 각 class마다 class prototype(= mean activation vector)인 $\mu_k$를 저장할 수 있게 된다.

즉, 매 epoch $e$마다 이전 epoch들에서 구한 mean인 $\mu^{e-1}_{k}$와 variance인 $\sigma^{e-1}_{k}$를 갖고 있게 된다.
이를 활용하면 feature loss function을 구성할 수 있게 된다.
해당 epoch에서 예측한 class의 feature와 이전 epoch들에서 얻었던 각 class prototype 간의 차이를 알 수 있게 되므로,
모델이 training data에 포함되지 않은 객체를 잘 인식할 수 있으며,
새롭게 탐지된 클래스가 이미 학습된 카테고리 중 어떤 클래스와 가장 유사한지에 대한 정보를 제공할 수 있게 된다.

위 feature loss function의 경우 가장 첫 번째 epoch에서는 계산되지 않는다.

최종적으로 semantic decoder에서는
weighted cross-entropy loss에 해당하는 semantic loss와 feature loss의 합으로 구성된다.

 

Contrastive Decoder

Contrastive Decoder는 기본적으로 anomaly segmentation을 목표로 한다.
이를 위해 known class에는 0을, unknown class에는 1을 부여하는 binary segmentation을 수행한다.
이 때 contrastive loss objectosphere loss를 함께 활용하게 된다.

Contrastive Loss를 위해서는 아래 두 단계를 거치게 된다.
1. 먼저 class k에 대한 mean feature representation을 아래와 같이 계산하게 된다.

여기서 $f^{d}_{p}$는 contrastive decoder에서 예측한 pixel p의 feature를 뜻하며, semantic decoder의 $f_{p}$와 동일하다.
2. 이후에 semantic decoder에서 얻은 normalized class prototype를 활용하여 다른 class와의 similarity를 구하게 된다.

이를 통해 같은 클래스 내에서는 running mean representation인 $\mu^{e-1}_{k}$와 서로 가까워지고,
다른 클래스끼리는 서로 밀어내도록 feature space를 구성할 수 있게 된다.
(여기서는 feature space를 hypersphere라고 가정했다.)

또한 Objectosphere loss는 학습 데이터에 포함된 데이터(=$D$)인지 아닌지를 구분하는 anomaly segmentation의 성능을 높일 수 있도록 한다.
known class의 경우, pixel feature가 특정 임계값($\rho$)보다 커질 수 있도록 하여 known class의 feature가 명확하게 표현되도록 하여 classification 정확도를 높인다.
unknown class의 경우, feature vector의 크기를 0으로 만들어 해당 픽셀이 unknwon class로 분류될 수 있도록 한다. 이는 모델이 새롭거나 이전에 보지 못한 객체를 탐지하는데 중요한 역할을 하게 된다.

최종적으로 Contrastive Decoder의 loss는 contrastive loss와 objectosphere loss의 weighted sum이 된다.

 

Post-Processing for Anomaly Segmentation

두 가지 디코더 (Semantic Decoder, Contrastive Decoder)의 결과를 결합하여 최종적인 segmentation 결과를 얻게 된다.
Semantic Decoder는 closed-wolrd에 대한 segmentation map을 제공할 수 있으며,
여기에 feature space 상에서의 loss function들을 추가했기 때문에 open-world 상황에도 대처할 수 있게 된다.
즉, 각 클래스에 대한 class prototype을 활용하여 multi-variate normal distribution을 구축하고,
predicted feature $f_{p}$의 class $k$에 대한 fitting score는 아래와 같이 나타낼 수 있다.

Fitting score가 가장 높은 class를 선택하고, 이 점수가 낮으면 해당 pixel은 unknown class로 간주하게 된다.
최종적으로는 unknwon class로 간주된 pixel들에 대해,
다른 unknown class들의 mean activation function들과 비교하여 가장 가까운 vector를 선택하게 된다.
거리가 임계값보다 낮으면 해당 픽셀은 기존에 발견했었던 unknown class에 속하고,
그렇지 않으면 새로운 unknown class로 분류되게 된다.
이를 통해서 다양한 unseen class들을 구별할 수 있게 된다.

 

Post-Processing for Open-World Semantic Segmentation

이미지 내에서 unseen class로 분류된 pixel들에 대해서 그들의 activation vector를 추출한 후 저장하고,
이것이 already-discovered class인지 아니면 완전히 새로운 class인지 식별하는 과정이 필요하다.
이를 위해 알려지지 않은 클래스로 간주되는 픽셀의 activation vector를
이미 발견된 unknown class 집합의 activation vector와 비교하여 already-discovered unknown class에 속하는지,
아니면 새로운 unknown class에 속하는지를 결정하게 된다.
이를 통해 real world에서의 robustness를 향상시킬 수 있게 되었다.

반응형
Comments