2 minute read

[SSL][OD] Label Match : Label Matching Semi-Supervised Object Detection

  • paper: https://arxiv.org/abs/2206.06608

  • git : https://github.com/hikvision-research/SSOD

  • CVPR 2022 accepted (인용수: 42회, ‘23.11.15 기준)

  • downstream task : SSL for OD

  • Contribution

    • self-training 기반 SSL의 label mismatch 문제를 두 가지 해결 방식으로 접근

      • distribution-level
        • unlabeled data의 “class distribution” 분포가 labeled data의 그것을 따른다고 approximate함
          • labeled data의 class distribution이란? 전체 instance 중에 해당 class에 gt box 의 비율 (class-dependent)
          • “unbiased pseudo label” 을 만들기 위해 label-distribution-aware confidence threshold를 사용
      • instance-level
        • reliable pseudo label, uncertain pseudo label을 분리함
        • reliable pseudo label은 기존 IoU based learning(Supervised learning)과 동일하게 one-hot vector로 학습
        • uncertain pseudo label에 대해서는 NMS를 통과한 Teacher의 Pseudo label과 매칭된 (IoU > 0.5) student의 proposal로 teacher의 RoIHead를 통과시켜 teacher의 pseudo label을 re-calibration시킴 → Pseudo label로 활용
    • mmdetection 기반으로 코드 제공, (당시) SSL for OD SOTA 달성

  • Overview

    • Baseline : mean teacher

  • Label Match

    • Re-distribution Mean Teacher : labeled data내의 instance 분포와 유사하도록 threshold를 tuning (ACT : Adaptive label-distribution-aware Confidence Threshold) → distribution-level

      • $n_i^l$ : i class의 labeled data 내 bbox 갯수

      • $C$: Class 갯수

      • $P_i^j$ : i class의 j unlabeled image에 대한 prediction score

      • $f-f$ : forground-forground 분포

      • $f-b$ : forground-background 분포

      • $t_c$ : 최적화 대상. dynamic threshold라 생각. $n_c^l*N_u/N_l$번째 prediction score

        • $P_c^{sort}$ : c lass의 prediction score를 내림차순으로 정렬한 list
          • unlabeled data의 subset (약 10k images)로 구성
          • K iteration마다 threshold를 변경해줌 → unlabeled의 class분포가 labeled의 class 분포와 유사해지도록 threshold를 조절함
    • Proposal Self-Assignment → instance-level

      • Reliable pseudo label : 기존 Supervised learning과 동일하게 IoU based matching으로 one-hot vector로 학습

        • $\alpha$ : reliable한 pseudo label의 비율을 hyperparameter로 setting (0.6)
      • Uncertain pseudo label : $t_c^r$보다 낮은 prediction score의 pseudo label. 일반적으로 location quality도 떨어짐.

        • Teacher의 uncertain pseudo label과 매칭된 student의 proposal을 teacher의 RoIHead에 다시 넣어서 refine시킨 값을 최종 pseudo label로 활용

          • $y_i^{uu}$ : teacher의 uncertain pseudo label
          • $y_i^{ur}$ : teacher의 reliable pseudo label
        • Classification loss만 학습

          • $n_p$ : uncertain teacher pseudo label과 매칭된 student의 proposal 갯수
          • $C$: class 갯수
          • $p_{i,c}^t$ : student의 i번째 proposal이 teacher의 RoIHead 통과하여 refined된 pseudo label의 prediction score
          • $p_{i,c}^s$ : student의 i번째 proposal
      • Reliable Pseudo Label Mining

        • Self-training을 통해 student, teacher 모두 점진적으로 성능이 향상됨 → uncertain pseudo label중 high quality을 선별하여 localization loss에 추가하고 싶다!가 동기

        • teacher의 proposal (잠재 pseudo labels) 중에 NMS 통과 전 proposal들의 mean score, mean IoU를 계산하여 threshold (0.8)이상이면 uncertain loss → reliable loss로 변경

          • regression loss 추가되고, one-hot label로 변경됨

          • NMS 통과 후 teacher의 prediction (pseudo label)을 기준으로 IoU 계산

          • higher mean score, higher mean IoU가 high quality임을 실험적으로 입증

  • Experiments

    • COCO

    • Pascal VOC

  • Ablations

    • Quality of Pseudo labels

      • (a) 고정 threshold (0.7, 0.8)은 iteration 경과후 accuracy drop. But ACT는 향상됨
      • (b) 고정 threshold (0.9)는 GT와 다르게 recall이 매우 안좋음. But ACT는 GT에 수렴
      • (c) KL Divergence가 GT와 비교해서 ACT > 고정 threshold임.
    • ACT adaptation이 head, tail class에 특히 효과가 좋음

  • Hyperparameter에 따른 성능 실험

    • K iteration, alpha, PSA (Proposal Self-Assignment)

    • PSA vs. IoU based matching

  • RPLM (Reliable Pseudl Label Mining)

    • Uncertain pseudo label 중 mean prediction, mean IoU가 높은 녀석들을 reliable loss로 대체하는 module
    • 성능 미세 상승

Updated: