Machine Learning/Image

DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection

blog507 2024. 7. 4. 14:10
반응형

오늘은 DINO이라는 논문에 대해서 리뷰하겠습니다. 

본 논문은 DAB-DETR, Deformable-DETR, DN-DETR에 대한 기초 지식을 알고 있다는 전제하에 작성한 글입니다. 따로 해당 논문들에 대해에 대해 정리하겠지만 미리 공부하고 보면 더 도움이 될 것입니다.

세부적인 내용들은 찾아보시는 걸 권장하고 틀린 부분이 있으면 언제든 댓글로 말씀해주시면 수정하겠습니다.

 

Github : https://github.com/IDEA-Research/DINO

Paper : https://arxiv.org/abs/2203.03605


Abstract

  • 본 논문에서는 기존의 DETR(정확히는 Deformable DETR) 모델을 기반으로 한 객체 검출 성능 향상 방법을 제안
  • 향상된 디노이징(denoising) 앵커 박스 기법을 도입하여 정확도를 개선
    • DN-DETR에서보다 더 좋은 방법의 디노이징 방법을 씀
  • 모델의 훈련 및 추론 과정에서 효율적인 앵커 박스 제안을 통해 잡음을 줄이고, 객체 검출 성능을 향상

 

Introduction

다른 모델들과 성능 비교

  • DETR(Deformable Transformer)은 객체 탐지 분야에서 혁신적인 접근 방식
    • 기존의 CNN 기반 객체 탐지 모델들과 달리, DETR은 Transformer를 이용해 객체 검출을 직접적으로 수행 (End-to-End)
    • 치명적인 단점 : 느림
    • 본 논문에서는 향상된 디노이징 앵커 박스 기법을 도입하여 이러한 문제를 해결하려 함
  • 방법론 (뒤에서 자세하게 설명)
    • Contrastive Denoising Training
      • Ground truth 양성 샘플과 음성 샘플을 동시에 추가하여 대조적인 디노이징 훈련을 수행.
      • 같은 GT 박스에 두 가지 다른 노이즈를 추가해, 작은 노이즈가 있는 박스를 양성으로, 다른 노이즈는 음성으로 표시.
    • Mixed Query Selection
      • 인코더 출력에서 초기 앵커 박스를 positional query로 선택해, 다양한 쿼리 유형을 혼합하여 쿼리를 더 잘 초기화
    • Look-Forward-Twice
      • 뒷 레이어에서 정제된 박스 정보를 사용해 앞 레이어의 파라미터를 개선, 뒷 레이어에서 업데이트된 매개변수를 이용해 두 번의 전진 패스를 수행.

 

 

DINO: DETR with Improved DeNoising Anchor Boxes

Preliminaries

  • Conditional-DETR (이건 논문에는 없는데 그냥 정리했음)
    • 객체 공간(위치)을 학습할 수 있는 Embedding을 만들어서(즉, Condition) , 이 Content Embedding과 따로 학습시키고, Decoder Layer 중간 중간에 적절하게 주입
    • 2D 앵커 박스 (x,y) 사용
  • DAB-DETR
    • 쿼리는 두 부분으로 나뉨: 위치 파트(훈련 가능한 쿼리)와 콘텐츠 파트(디코더 임베딩).
    • 4D 앵커 박스 (x,y,w,h) 사용
    • 앵커 박스는 계층별로 동적으로 업데이트됨
  • DN-DETR (https://ainotes.tistory.com/10)
    • 초기 훈련에서 모호한 이분 매칭이 수렴을 느리게 한다는 문제를 발견
    • 노이즈가 섞인 GT 박스를 추가로 훈련하여 디노이징 기법을 통해 훈련을 가속화
  • Deformable DETR (https://ainotes.tistory.com/8)
    • Deformable attention을 도입해 기준점 주변의 중요한 샘플링 포인트에 집중 = Deformable Attention
    • 인코더 출력과 reference point(box?)를 디코더 입력으로 사용
    • 쿼리 선택 및 두 디코더 계층 사이의 gradient 분리 설계를 통해 반복적인 경계 상자 개선을 가능하게 함

 

Model Overview

Model Overview

  1. 이미지가 주어지면, ResNet이나 Swin Transformer와 같은 백본을 사용하여 다중 스케일 특징을 추출한 후, 이를 해당 positional embeddings과 함께 Transformer 인코더에 입력
  2. mixed query selection strategy
    1. 디코더의 positional query로 앵커를 초기화하기 위해
    2. content query를 초기화하지 않고, 학습 가능하게 남겨둠
  3. Deformable Attention
    1. 인코더 출력의 특징을 결합하고 query를 층별로(layer-by-layer) 업데이트
  4. Contrastive DeNoising Training
    1. taking into account hard negative samples
  5. look forward twice
    1. later layers의 정제된 박스 정보를 활용하여 인접 early layer의 매개변수를 최적화하기 위해, adjacent(인접) layers 간의 그라디언트를 전달

 

 

Contrastive DeNoising Training

DN-DETR Denoising 과정
DINO Denoising 과정

  • 노이즈 제거 훈련은 근처에 물체가 없는 앵커에 대해서는 "물체가 없다"고 예측하는 기능이 부족함. 특히 객체가 겹쳐있을 때도 마찬가지
    • 그래서 본 논문은 contrastive denoising(CDN)을 제안
    • 필자 생각
      • Anchor Based 기법에 비하여 DETR에서는 오브젝트 쿼리의 개수를 작게(100개 이내)로 설정하므로, 상대적으로 배경에 대한 학습 횟수가 적어진다. 따라서 예측 기능이 부족하다 라고 주장하는게 아닐지.
  • CDN이란?
    • Positive Query(P.Q)와 Negative Query(N.Q)를 생성하여 디코더에 입력하는 기법
    • P.Q
      • 객체의 실제 Ground Truth Bbox가 포함된 이미지 영역
    • N.Q
      • 그 외의 배경 영역
  • CDN 동작 방식
    • 객체가 n개일 경우, 2*n개의 Noise 쿼리(샘플)을 생성하는데, 이 과정에서 객체가 겹치는 상황에 대처가 가능
    • 같은 GT 박스에 대해 양성 샘플에는 적은 노이즈 λ1을, 음성 샘플에는 큰 노이즈 λ2를 추가
      • 음성 샘플은 "객체 없음"을 예측하도록 훈련
    • Positive Query에는 GIOU Loss가 적용되고, Negative Query에서는 Focal Loss가 적용
    • 한 줄 정리
      • Noise 샘플 쿼리에 대한 객체 존재 여부를 분류하고, bbox 중심 좌표를 다시 예측하면서 Denoising을 수행 

 

 

Mixed Query Selection

Mixed Query Selection 과정 (왼: DETR, 중간:Deformable DETR, 오:DINO)

  • DETR/ DN-DETR/DAB-DETR
    • 디코더의 query는 그림(a)와 같이 인코더 feature를 가져오지 않는 static(정적) 임베딩
  • Deformable DETR
    • Pure Query Selection이 있는데, (b)처럼 선택된 인코더 feature에 의해 content 쿼리와 위치 쿼리가 모두 생성 - 동적 임베딩
    • 전부 쿼리 선정(Query Selection)이 이루어지기 때문에 이미지 특성 정보가 소실될 수 있음
  • DINO
    • 다른 점은 positional query만 초기화하고 content query(디코더 임베딩)는 학습할 수 있도록 유지 - 혼합 쿼리
  • 왜 좋을까?
    • selected features(positional query)는 더 이상의 개선이 없는 preliminary content features (예비 콘텐츠 특징)이므로, 그것들은 모호함
      • 예를 들어, selected feature는 수의 객체를 포함하거나 객체의 일부일 수 있음
    • 대조적으로, 본 논문의 방식은 상위 K개의 선택된 기능으로 positional query만 향상시키고 Content query를 이전과 같이 학습 가능하게 유지
      • 모델이 더 나은 위치 정보를 사용하여 인코더로부터 더 포괄적인 콘텐츠 특징을 풀링하는 데 도움 → 인코더에 종속되지 않겠다라는 뜻으로 해석

 

 

Look Forward Twice(LFT)

Deformable DETR과 DINO의 box update 차이

  • Deformable DETR (그림 a)
    • optical flow estimation에서 영감을 얻어 훈련 안정화를 위해 gradient 역전파를 차단하고 각 디코더 계층에서의 Auxiliary loss(보조 손실)만을 기준으로 업데이트 하는 반복 경계 상자 개선 메커니즘을 사용
  • DINO (그림 b)
    • 뒷 레이어에서 개선된 박스 정보가 앞 레이어에서의 박스 예측을 수정하는 데도 도움을 줄 수 있음

 

 

 

Experiments와 Conclusion은 실험 결과 및 토의 부분이기 때문에 따로 적지는 않았습니다.

반응형