sy00n / DL_paper_review

issues에 논문 요약
0 stars 0 forks source link

[2] Open-Set Semi-Supervised Object Detection #2

Open sy00n opened 1 year ago

sy00n commented 1 year ago

paper link : https://www.ecva.net/papers/eccv_2022/papers_ECCV/papers/136900142.pdf

Introduction

본 논문에서 제안하는 방법론은 Open-Set Semi-Supervised Object Detection task이다. 기존에 Semi-Supervised object detection 모델들은 unlabeled data(open-set 카테고리 포함)을 더 많이 추가해서 학습할수록 낮은 성능을 보임을 발견했는데, 이는 기본적으로 SSL에서 unlabeled data를 더 활용할수록 좋을 것이라는 belief와는 반대되 결과이다. 이러한 현상을 semantic expansion issue라고 하며, OOD object가 high confidence를 가지고 in-distribution object로 잘못 예측하게 되고 이로 인해 pseudo-label로 잘못 사용하게 되서 성능 저하로 이어지게 되는 것이라고 주장한다. (아래 fig1 참고)

image

이렇게 OOD sample을 사용했을때 오히려 성능을 저하시키는 해로운 영향을 제거하기 위해 기존 SSOD 학습 파이프라인에 추가 OOD filtering process를 추가할 것을 제안한다. 구체적으로는 먼저 OOD filtering을 수행하기 위해 oneline OOD detector를 사용한다. 하지만 그냥 적용할 경우 bounding box localization, box classification과 같은 다른 task와의 간섭 때문에 만족스러운 결과를 보이지 못했다. 따라서 object detector와 분리된(따로 학습하는) offline detection module을 제안한다. 그리고 Self-sup DINO 모델을 기반으로 하는데, 이것의 장점은 1) pre-training Dino는 label annotation을 필요로 하지 않아 low-level setting에 적절하고 2) Online OOD 방법과 비교했을 때 pseudo-label에서 OOD object를 탐지하는 데 더 효과적이며 이는 위에서 언급한 해로운 영향을 제거한다. 3) OOd detector와 object detector가 서로 독립적이기 때문에 각각 따로 학습되고 위에서 언급한 간섭을 방지할 수 있다.

Contribution

Semantic Expansion in Open-Set scenarios

image image

fig3을 보면 Open-set 설정에서는 제한된 성능 향상 폭을 보임을 발견했고 이러한 원인이 semantic expansion(fig 2a) 때문이라고 주장한다. 구체적으로 말하면 OOD/novel object가 unlabeled set에 있으면, closed-set classifier(Faster-RCNN에서는 ROI head)가 high confidence를 가지고 ID object로 예측하게 되는 것이다. 이로 인해 Over-confident, incorrect OOD instance는 confidence threesholding 후에도 ID object로 분류되는 경향이 있으며 train시에 당연히 잘못된 pseudo-label을 써서 EMA update를 하기 때문에 teacher network가 더 많은 OOD를 ID로 잘못 예측하게 된다. fig 2b처럼 모델이 오래 훈련될수록 OOD의 FPR이 증가한다.

이러한 문제를 해결하기 위해 본 논문에서는 detrimental effect를 제거하는 통합 프레임워크를 제안한다. instance-level task(e.g., object detection)에서 OOD detection을 더 잘하기 위해서 online/offline OOD detectior를 모두 고려했다. image

Online/offline을 비교한 결과, online OOD detector는 pseudo-labeling의 불안정성(classification noise) 으로 인해 성능을 저하시키고 OOD detection, object detection 두 task를 shared architecture로 설계하게 되면 sub-optimal performance를 보였다. 따라서 본 논문은 Offline OOD detection 방법론을 사용할 것을 제안한다. 즉, object detector와 OOD detector가 서로 구조상 분리되고 따로 학습된다.
이 구조의 장점은 1) 기존 SSOD 방법론들과 호환되며 2) OOD detector과 obejct detection 간의 competing task objectives를 완화한다는 점이다.

그렇다면 어떤 offline OOD detector를 쓸까? 간단하게 pretrained ViT-B를 fine-tuning 할 수 있겠지만, 이 경우 ImageNet-21k로 pretraining을 해야 하고 large amount of annotated label이 필요하기 때문에 semi-supervised setting에 적절하지 않고 불공정한 비교를 초래할 수 있다. 따라서 OOD detector로 label annotation을 전혀 쓰지 않은 ImageNet-1k 로 학습된 Self supervised DINO를 쓴다. Multi-class(K+1) training으로 DINO를 fine tuning 한 다음 OOD score를 계산한다. 여기서 K는 ID class 수이고 1은 OOD class에 해당한다.

또 이전연구들과 달리 학습에 더 많은 OOD 데이터가 있을수록 좋다고 가정하지 않는다. 따라서 사용가능한 ID labeled data만을 학습에 쓰고, 그 ID labeled data에 있는 background proposal patches를 OOD sample로 간주할 것을 제안한다.

DINO model을 fine-tuning 한 후 DINO층을 freeze하고 OOD detection을 수행한다.

1. Mahalanobis Distance

image (2)식에서 f(x)는 패치 x를 통과시켜 DINO에서 뽑은 intermediate feature vector를 의미한다. ˜μk는 k class에 대해 추정된 평균 벡터이고 ˜Σ는 공분산 행렬이다. 이 평균과 공분산은 모두 available labeled data로부터 추정된 값이다

2. Inverse Abstaining Confidence

image ˜pK+1는 DINO classifier에서 K+1 th class의 prediction confidence이다.

3. Energy Score

image (4)에서 T는 temperature value, k는 class 수, fi(x)는 logit을 의미한다. Energy loss 말고도 shannon entropyEuclidean Distance도 고려해서 실험했다. threshold를 정해놓고 이것보다 낮으면 OOD sample로 간주했다.

Integration with Semi-Supervised Object Detection

pseudo label에서 OOD object를 필터링하는 것을 목표로 fig4처럼 confidence threshold를 거친 이후에 OOD filtering을 추가해서 trained OOD detector를 SSOD 방법과 통합한다. 즉, pseudo-boxes는 Teacher모델의 predicted boxes에 confidence threshold, OOD filtering을 순차적으로 적용한 다음 (3)으로 student 모델을 학습한다. Teacher-Student Framework에서 Teacher model은 weakly-augmented unlabeled data를 input으로 해서 box prediction을 뽑고 confidence thresholding을 하면 Student가 같은 이미지에 강한 augmentation을 적용해서 인풋으로 받고 consistency loss를 최소화해간다. image 위 loss function은 supvervised, unsupervised가 합쳐져서 구성된다. ˆy이 pseudo-label을 의미한다.
이 pseudo label의 퀄리티를 높이기 위해 기존 연구들처럼 exponential moving average로 weight을 탐색한다.
(이 loss function은 일반적인 semi-supervised learning에서 주로 쓰이는 loss와 동일한 구성이다. )

Experiments

image Table 1을 보면 모든 metric에서 Onlife OOD가 훨씬 높은 결과를 통해 object detector와 OOD detector 간의 분리가 효과적이었음을 증명한다. image fig 6을 보면 더 많은 OOD objects를 쓴다고 해서 더 좋은 성능을 보이지 않는다. 반면에 우리의 OOD filtering을 수행했을 시 performance drop을 막고 정확도를 개선했다.

image
개인적으로 table 2가 주목할만했는데, In-distribution data class 가 많지 않아도 성능 저하가 크지 않다는 점이다.

image
labeled data sample은 많을 수록 즉 supervision을 더 줄수록 (당연한거겠지만) 좋은 결과를 보였다. UT는 기존 semi-supervised model인데 여기에 제안하는 self sup DINO 방법론을 결합한 결과가 더 좋은 성능을 보였다.

image 좀더 극단적인 실험 셋팅을 위해 OpenImagesv5에서 unlabeled data를 가져와서 실험을 한 결과, 놀랍게도 label을 가지고 supervision을 줘서 실험했을 때 보다 Self sup DINO가 더 좋은 성능을 보였고 이러한 원인을 human annotation에서 비롯된 noisy label 때문일 것이라고 추측한다.

Liminations and future work

(논문에 기재된 내용) 우리는 데이터셋 간의 covariate shift나 object category distribution의 mismatch등은 고려하지 않는다. 2-stage로 학습하다 보니 학습시에 컴퓨팅 리소스를 더 많이 요구한다. 물론 inference시에는 상관없긴 하다. 즉 하고싶은 말은 2-stage를 개선할 여지가 많다는 점이다. 통합 프레임워크로 잠재적인 성능 제고를 이끌 수 있는 연구가 나오기를 기대한다.