논문리뷰

[논문리뷰] Contrastive Model Adaptation for Cross-Condition Robustness in Semantic Segmentation

minyoung lee 2024. 1. 7. 02:29

이 논문은 ICCV 2023에 accepted 된 논문으로, Semantic Segmentation에서의 normal-to-adverse condition model adaptation에 대한 논문이다.

 

1. Motivation

기존의 Unsupervised Domain Adaptation (UDA) 연구들은, labeled source-domain data와 unlabeled target-domain data를 학습에 같이 이용하였다. 본 논문은 좀 더 general problem을 해결하기 위해서 source-free domain adaptation (일반적인 model adaptation) 에 대한 연구를 제시한다. 

source-free domain adaptation은

1) model은 source image에 대해서 pre-train되며, 2) unlabaled target images는 이용 가능한 상황이다.

 

이러한 task를 해결하기 위해서 본 논문은 다른 형태의 weak supervision을 사용하는 것에 대해 제시하였다.

weak supervision으로 image-level correspondences를 이용한다.

즉, unlabeled 상황이지만, reference images를 source domain과 target domain을 연결해주는 역할로 이용하여 문제를 해결하였다.

 

이 논문에서 제시하는 메소드인 CMA는 contrastive learning을 통해서 image pairs가 condition-invariant feature를 배울 수 있도록 한다. 이 때, embedding space에서 content에 따라 group 지어져야한다. 정확한 cross-domain semantic correspondences를 위해서 normal image의 viewpoint를 adverse image로 warp시켰다. 

embedding space에서 content에 따라서 group 지어져야하기 때문에, target feature와 같은 location을 가지는 reference feature는 다른 target feature보다 해당 target feature에 대해 더 가까이 있어야 한다고 주장한다.

이런 조건이 충족되는 embedding space는 효과적으로 condition-specific information을 제거하고, semantic content는 보존할 수 있을 것으로 기대하였다. 따라서 contrastive learning을 통해서 embedding space를 만드는 것을 목표로 한다.

target image에 대한 embedding을 anchor로 생각하고, 각 anchor(Fig 1 에서의 검은색)는 single positive(Fig 1 에서의 초록색)는 가깝게 당기고, negatives(Fig 1 에서의 빨간색)에 대해서는 멀어지도록 학습하게 된다.

2. Method - Constrative Model Adaptaion (CMA)

이 논문에서는 주어진 pre-tariend semantic segmentation model을 unlabaled dataset에 대해서 잘 fine-tune하기 위해서 새로운 메소드인 Constrastive Model Adaptation (CMA) 을 제시하였다.

Motivation에서 설명했듯이, 본 연구는 기존의 standard UDA와는 다르게 privay concerns 등의 이유로 labaled source data에 접근은 불가능한 상황이다.

CMA의 experiment setup을 우선 살펴보면,

1) semantic segmentation model은 source dataset으로 pre-trained 되어있다.

2) unlabeled adverse-conditon target samples로의 adaptation을 목표로 한다.

3) unlabeled reference image는 각 target image에 대해서 접근 가능하다.

 

2.1.  Architecture Overview

 

전반적인 architecture구조는 Figure 2와 같다. 

pre-trained source-model weights로 encoder ENC와 decoder DEC를 initialize한다. 

decoder weights는 source domain knowledge를 보존하기 위해서 frozen 시켰으며, \(ENC_\theta\)는 1) entropy minimization, 2) self-training, 3) proposed cross-domain contrastive (CDC) loss로 학습하였다. 

 

2.2.  Spatial Alignment

본 논문에서 reference image는 target image와 같은 위치를 찍은 normal image를 말한다. 따라서 reference-target image는 같은 scene이기는 하지만, GNSS-matched로 이루어진 pair이기 때문에 viewpoint가 다를 수 있다. 

이러한 차이는 pixel-accurate task인 Semantic Segmentation과 같은 경우 부정적 영향을 많이 받을 수 있다.

 

따라서 좀 더 정확한 match를 얻기 위해 reference image를 target image에 대한 view-point로 warp한다.

이 때 기존 기술인 UAWarpC를 선택하였다. 기존의 다양한 기술 중 해당 기술을 선택한 이유는 각 pixel에 대한 confidence score를 제공하기 때문인데, 이 confidence score는 추후에 설명할 CD loss를 위한 중요한 지표가 된다.

 

CMA를 학습시킬 때 UAWarpC는 frozen 되어있고, reference image feature를 warp 할 때 사용하게 된다.

 

warp를 적용할 때, image를 warp할 것인지, feature를 warp할 것인지에 대한 design초이스가 있었고, 두 경우를 모두 실험해보았을 때 feature warp 가 더 잘 작동했기 때문에 이를 선택하였다고 한다.

 

2.3. Cross-Domain Contrastive loss

이 loss는 encoder가 semantic 차이를 잘 학습하고, visual condition에는 invariant하도록 학습시키기 위해서 도입되었다. 

target image features는 anchors로 표현된다. constrastive learning을 적용하였기 때문에 각각의 anchors에 대해서 positive와 negative가 존재한다.

 

1) positive

positive는 target 이미지 patch 와 동일한 위치를 가지고 있는, 즉 match 되어있는 reference image feature에서도 동일한 위치의 patch에 해당한다.

즉, anchors와 positive는 다른 visual condition을 가지고 있으며, 비슷한 semantic를 가지고 있다. 

이러한 positive와 가까워지도록 학습된다.

 

2) negative

negative는 해당 anchor이외의 다른 target image feature patch들로, mode collapse를 막기 위해서 사용되었다.

negatives와는 멀어지도록 학습된다.

 

dense feature를 128-dimension embedding space에 projection하였다. 

projection head인 PROJ는 2개의 1x1 convolutions으로 이루어져 있다. (1x1conv - ReLU - 1x1conv)

$$PROJ_\theta \circ ENC_\theta$$는 anchors이고, positives & negatives는 exponential moving average (ema) model인 $$PROJ_{ema} \circ ENC_{ema}$$에서 얻었다.

 

negatives사용을 위해서 queue를 사용하였다. 많은 양의 negatives를 instnace discrimination에 사용할 수 있도록 하기 위해서 도입하였다. 이를 통해서 meaningful representations를 배울 수 있고, discrimination을 좀 더 challenging하게 만들기 때문이다. 

 

앞서 설명한 것과 같이, positives는 anchors에 맞추어서 warp된다. 

그러나, warp를해도, anchors와 positives는 same semantic content를 가지고 있지 않을 수 있다는 문제점이 있다. 

이러한 문제점이 발생하는 이유는

1) warping자체가 정확하지 않기 때문에

2) cars, pedestrians와 같은 dynamic objects들은 reference 와 target 이미지에서 다르게 나타나기 때문이다.

이러한 false positive는 contrastive loss에 excessive noise를 주입할 수 있는 위험이 있어서 이를 해결해야한다.

 

해결을 위해서 본 논문은 두 가지 전략인 patch-level grouping과 confidence modulation을 사용하였다. 

 

1) patch-level grouping

이전 논문을 바탕으로 anchors, positives, negatives의 square patches들에 대해서 average-pool spatial embeddings를 적용하였다. 

averaging을 했기 때문에 larget patch일수록 waring에서의 작은 오류와 dynamic object의 차이로 인한 small semantic 차이에 대해 더 forgiving하다. 즉, 발생하는 작은 오류들에 대해서 덜 민감하게 반응할 수 있게 된다.

 

그러나, 너무 큰 patch size일 경우에 local discriminative features를 학습하기 힘들다는 단점이 있다.

 

따라서 grid size는 key hyperparameter였고, 결과적으로 7x7 grid를 선택하였으며, 

excessive noise를 줄이는 효과 이외에도, memory, computational cost를 줄일 수 있다는 다른 효과도 기대해 볼 수 있다.

2) Confidence Modulation

WARP module에서 제공하는 confidence socre를 anchors와 positivesdml embedding을 위해서 사용하였다. 

"weighted average pooling"을 이용하는 것을 제안하였다.

patch embeddings를 생성할 때, 각 픽셀은 각각의 confidence score로 weighted되게 된다. 

따라서, dynamic object에 해당하는 pixel은 low-confidence correspondence를 가지기 때문에 aggregated patch embedding에는 낮은 영향을 끼치게 된다. 

또한 average confidence가 0.2보다 낮은 patch들은 false positive로 생각하여 버린다.

 

$$N_i$$는 patch i의 pooling receptive field의 모든 픽셀의 index들이 들어있는 set이다.

$$z_j^a, z^p_j \in \R^{128}$$ 는 pixel index j에 대한 각각 anchor와 warped positive의 proj head output이다. 

$$c_j$$ 는 corresponding warp confidence score이며, $$c_j$$ 가 0인 경우 valid correspondence가 없는 pixels가 된다.

 

anchors와 positives에 대한 unnoramlzied patch embeddings는 weighted sum으로 계산되며, embeddings는 $$a_i$$와 $$p_i$$를 계산하기 위해서 L2 normalized를 적용한다.

 

 

 

negative embeddings인 $$n_j$4는 simple average pooling을 통해서 얻어지고 마찬가지고 L2 normalized를 적용한다.

 

InfoNCE loss

embedding space를 생성하기 위해서, positive pair와 가까워지고, negatives pair와 멀어지는 InfoNCE loss를 적용한다. 이 때 negatives pair는 길이가 M인 queue에서 가져온다.

 

최종적인 aggregating the patch-wise losses에서는 low-confidenc patches는 discard된다.

 

$$c¯i$$는 patch i에 대한 average-pooled confidence이다.

 

patch-level grouping과 confidence modulation의 효과를 Figure 3 에서 확인할 수 있다. 

 

 

가운데 두 columns에서 각 pixel들은 confidence에 따라서 whited our 된 것을 확인할 수 있으며, orange patche들은 low  confidence로 인해서 삭제된 patch들이다. 

 

2.4. Complete Training Loss

CDC loss와 함께 두 commo loss를 적용하였다. 

1) Self-Training

pseudo-labeling을 적용하였으며, pseudo-label은 학습 전에 source model로부터 한 번 생성된다. 이는 source에 대한 regularization을 주입하기 위함이며, 가장 confidence가 높은 20%의 pixels만 남겨지고 나머지는 ignore 된다. 

model adaptation를 위해서 cross-entropy loss를 적용하였다.

 

2) Entropy Minimization

regularizer로 entropy minimization을 이용하였다. $$L_{ent}$$는 predicted class probabilities 에 대한 mean noramlzied entorpy이며, 최종 loss는 st, ent, cdc를 더한 형태가 된다.

 

3. Experiments

3.1. Setup

Datasets

source dataset : Cityscapes

target dataset : ACDC, Dark Zurich, RobotCar Correspodence, and CMU correspondence

(모든 target dataset은 normal- adverse-condition에 대한 corresponding pairs를 포함하고 있다.)

 

ACG Benchmark

adverse-condition generalization (ACG) benchmark

trained adverse-condition model에 대한 generalization performance를 위한 benchmark이다.

WildDash2, BDD100k, Foggy Zurich, and Foggy Driving을 조사하고, 정확하지 않은 sample들은 제거하였다. 

추가적으로 ACG를 121 fog, 255 rain, 276 snow, 300 night 이미지로 나누었다. 또한, ACG-night 이미지들은 다양한 adverse-weather image들을 포함하였다. (snowy nighttime scene)

 

 

Architecture and Hyperparameters

 

Architecture : SegFormer (SoTA) , DeepLabv2

모든 데이터와 architecture에 대해서 10k iteration동안 학습하였고, 첫 2.5k iterations 동안에는 $$PROJ_\theta$$에서 $$ENC_\theata$$로 흐르는 gradient를 멈추었다. ($$PROJ_\theta$$ 를 warm up 하기 위해서)

$$PROJ_\theta$$는 random하게 initialized module이기 때문에 $$ENC_\theta$$보다 learning rate를 10배 해주었다.

ema의 high momentum은 0.9999로 적용하였다.

 

3.2. Comparison to Model Adaptaion Methods

 

Table 1은 Cityscapes -> ACDC에 대한 성능 결과이다. 이 비교에서 CMA만 reference images를 사용하였다.  

SegFormer에서 CMA를 적용했을 때, 기존의 method와 비교했을 때 압도적으로 높은 성능을 보여주는 것을 알 수 있다. 또한, CMA는 static과 dynamic class에 대해서 , contrastive loss가 explicit하게 dynamic object를 목표로 하지 않았음에도 두 종류의 class에서 general하게 높은 성능을 보여주었다는 점을 강조하였다. 저자들은 이러한 universal performance gain은 global condition-level variations에 invariant한 학습을 진행했기 때문이라고 예측하였다. 

 

 

Figure 4는 ACDC에 대한 성능 결과이다. CMA가 좀더 좋은 quality를 보여주는 것을 확인할 수 있다.

1번째 snowy image에서는 side walk를 잘 판단하였고, 두번째에서는 fence를, 마지막 이미지에서는 wall을 잘 판단하였다. 

 

추가적으로 다른 3개의 adaptation setting (Cityscapes -> {Dark Zurich, RobotCar, CMU}) 에서의 실험을 진행하였다. 

Table 2 를 보면 CMA가 기존의 method를 다 능가한 것을 확인할 수 있다.

 

3.3. Comparison to Standard UDA Methods

 

기존의 standard UDA Method와 비교해보았을 때, CMA는 Source-Free로 했음에도 불구하고 성능 향상이 있었다고 주장하였다. 

 

3.4. Generalization and Robustness

adverse-condition models에 대한 generalization performance를 평가하기 위해서 Cityscapes -> ACDC model을 다양한 ACG benchmark에 대해서 평가하였다.

CMA는 다른 method에 비해서 높은 성능을 보여주었다. 

 

3.5. Ablation Study and Further Analysis

Ablation study

 

해당 논문에서는 warping하지 않는 patches를 이용했을 때는 성능이 하락하였다. 이는 exccessive noise가 contrastive loss에 영향을 미쳤기 때문이라고 해석하고 있다. 

본 논문에서 제시하는 모든 방법을 추가하였을 때 성능이 향상된 것을 확인할 수 있다. 

 

Effect of Reference Images

 

다른 메소드와는 달리 CMA는 추가적인 reference images를 CDC loss를 위해 사용하였다. 

비교를 위해서 CDC loss를 사용하지 않은 추가적인 성능 비교를 진행하였다.

reference image는 두가지 방법으로 사용하였다.

1) reference와 target image를 랜덤하게 mixing하였고 이 combination에 대해서 adaptation하였다.

2) curriculum으로 adaptation적용하였다. 즉, 처음에는 source -> reference 으로의 adaptation을, 그 다음에는 reference -> target으로의 adaptaion을 진행하였다.

 

이 경우 contrastive learning을 도입했을 때 성능이 가장 큰 향상이 있었으며, 이를 통해서 naive하게 reference images를 이용하는 것에 큰 benefits이 있었던 것은 아니라고 주장하였다. 

 

Alternative Contrastive Loss

 

다른 contrastive loss function을 적용했을 떄, RINCE가 좀 더 높은 성능을 보였으나, 이 loss를 적용하면 extra complexity가 필요하기 때문에 최종적으로 InfoNCE를 선택하였다. 

 

Hyperparameter Sensitivity

hyperparameter를 변경해보았을 때, 성능 변화가 비교적 insensitive함을 보여주었다.

 

Embedding Space Visualization

semantic feature에 대한 t-SNE plots를 해보았을 때 CDC loss를 적용한 경우, 적용하지 않은 경우에 비해서 class들끼리 잘 모여있는 것을 확인할 수 있다. 

 

4. Conclusion

CMA는 image-level correspondence를 통해서 condition-invariant features를 학습하였다. 그리고 큰 performance gain로 state of the art를 달성하였다. 

 

5. Discussion

Source Free 이지만, source에 대해 pretrained된 모델을 사용하고, normal image에 해당하는 reference image를 사용한다. 단순히 train때 normal image에 대한 label을 사용하지 않는 것으로 source free로 볼 수 있는가?

 

3.5부분에서, "해당 논문에서는 warping하지 않는 patches를 이용했을 때는 성능이 하락하였다. 이는 exccessive noise가 contrastive loss에 영향을 미쳤기 때문이라고 해석하고 있다." 논문에서는 warp를 해도 발생하는 noise로 인해서 patch-level grouping과 confidence modulation을 사용하는 흐름을 가져갔는데, 실험과 논문 설명의 흐름이 완벽하게 일치하지 않는 것인가?

 

논문에서 언급하지는 않았으나, Appendix까지 확인했을 때 특히 night domain에서 하늘을 잘 판단하는 qualitative result를 보았는데,이 점이 확실히 referene image에 대한 도움이 있었을 것 같다.

 

contrastive learning, condition-invariant feature 모두 이미 존재하는 접근 방식이었지만, weak supervision을 통해서 학습해낸 점이 의미가 있다고 볼 수 있을 것 같다. 하지만 기존의 foggy scene segmentation에서도 Clear Weather - Synthetic Fog에 대한 pair정보로 weak supervision을 사용하고 있는데, 이러한 method간의 비교도 필요할 것 같다.