Machine Learning/Image

DN-DETR: Accelerate DETR Training by Introducing Query DeNoising

blog507 2024. 6. 17. 16:33
반응형

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

해당 논문은 헝가리안 알고리즘에 대한 기초 지식을 알고 있다는 전제하에 작성한 글입니다. 따로 헝가리안 알고리즘에 대해 정리하겠지만 미리 공부하고 보면 더 도움이 될 것입니다.

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

 

Feng Li, Hao Zhang, Shilong Liu, Jian Guo, Lionel M. Ni, Lei Zhang  et.al. "DN-DETR: Accelerate DETR Training by Introducing Query DeNoising" (2022)

https://arxiv.org/abs/2203.01305


Abstract

이 논문에서는 DETR(DEtection TRansformer)의 훈련을 가속화하기 위한 새로운 디노이징 훈련 방법을 제안합니다. DETR은 Transformer를 사용하여 객체 탐지를 수행하는 모델로, 전통적인 CNN 기반 모델에 비해 훈련 수렴 속도가 매우 느립니다. 본 연구는 이 문제의 원인을 분석하고, 디노이징 훈련을 통해 이를 해결하는 방법을 제안합니다.

 

1. Introduction

  • 객체 탐지는 이미지 내의 객체를 식별하고 분류하는 컴퓨터 비전의 핵심 과제이며, 전통적인 탐지기는 주로 컨볼루션 신경망(CNN)을 기반으로 함
    • 대표적 예시 : Faster R-CNN, YOLO, SSD
  • 최근 객체 탐지에 Transformer를 도입하여 DETR(DEtection TRansformer)이 제안됨.
    • DETR은 학습 가능한 쿼리를 사용하여 이미지 특징을 추출하고 이분 그래프 매칭을 통해 객체를 예측이 방법은 수작업으로 설계된 앵커와 비최대 억제(NMS)를 제거하고, 엔드 투 엔드 방식의 최적화를 가능케 함
    • 그러나 DETR은 기존의 탐지기보다 훈련 수렴 속도가 매우 느림. (COCO 데이터셋에서 좋은 성능을 얻기 위해 보통 500 에포크의 훈련이 필요)
  • 해당 논문에서는 DETR 훈련을 가속화하기 위해 쿼리 디노이징 기법을 도입한 새로운 훈련 방법인 DN-DETR을 제안

Deformable DETR에 비해 빠른 수렴속도를 보여준다.

왜 느릴까?

  • 기존 DETR 학습 주된 매커니즘
    • Object Query들의 임베딩이 Encoder와 Cross-Attention으로 학습이 이루어지면서, 이미지와 관련된 Features를 학습 ( = 이걸 Content Embedding이라 함)
  • 문제는 Content Embedding에 너무 의존함
    • 이게 적게 돌면 성능 저하
  • 또한, Position Embedding을 빼면 성능이 크게 저하하는 이슈도 있음
    • 객체에 대한 공간 정보에 대한 필요성 증가
  • 이분 그래프 매칭의 불안정성
    • 훈련 초기 단계에서는 최적화 목표가 일관되지 않음. 이는 이분 그래프 매칭이 불안정하여 매 에포크마다 동일한 이미지에 대해 다른 객체와 쿼리가 매칭되기 때문 => 즉, 최적화가 느림

 

2. Related Work

 

3. DN-DETR

3-1. 아키텍처

DN-DETR과 DAB-DETR의 차이점

DAB-DETR과 아키텍처에서 큰 차이를 두고 있지 않습니다. 이 단락에서는 DN-DETR이 어떠한 구조 차이가 있는 지 알아보겠습니다.

 

  • DAB-DETR 아키텍처를 기반으로 하며 그와 같이 쿼리로 4D 앵커 상자를 사용
  • DAB-DETR과의 차이점은 디코더 임베딩 → Class Label Embedding + Indicator
    • Class Label Embedding: 객체의 클래스 정보를 포함하는 고유 임베딩.
      • ex) '고양이' 클래스는 특정 임베딩 벡터로, '강아지' 클래스는 다른 임베딩 벡터로 변환
    • Indicator: 노이즈 객체와 실제 객체를 구분하는 역할을 하는 임베딩.
      • 실제 객체에는 '실제 객체'를 나타내는 인디케이터가, 노이즈 객체에는 '노이즈 객체'를 나타내는 인디케이터가 할당

 

3-2. 과정

이제, DN-DETR이 어떻게 학습이 되고 decoder 쿼리가 어떻게 동작하는 지 알아보겠습니다. 

(DAB-DETR에 대해 기본적인 지식이 있다면 이해하는 데 어렵지 않을 겁니다.)

DN-DETR은 Denoising이라는 개념이 들어갑니다. 먼저 Denoising이 뭔지 보겠습니다.

 

 

Denoising 요약

  • 노이즈 추가: GT 경계 상자에 노이즈를 추가하여 디코더에 입력. 이 노이즈는 주로 중심 이동(center shifting)과 상자 크기 조정(box scaling)을 통해 추가
  • 재구성 훈련: 노이즈가 추가된 쿼리를 사용하여 원래 GT 상자를 재구성하도록 모델 학습. 이를 통해 모델이 이분 그래프 매칭의 불안정성을 극복하고 더 빠르게 수렴 가능케 함

 

Denoising 과정

  1. Decoder 쿼리
    • 학습 가능한 앵커 쿼리: DETR에서 사용되는 학습 가능한 쿼리는 (x, y, w, h) 형식으로, x와 y는 중심 좌표를 나타내고 w와 h는 상자의 너비와 높이를 나타냄 
    • 노이즈 추가 쿼리: 실제 경계 상자에 노이즈를 추가하여 생성된 쿼리로, denoising 작업을 통해 재구성함
  2. Decoder 입력
    • 노이즈 추가된 GT 상자: 노이즈가 추가된 GT 상자를 디코더에 입력하여 모델이 이를 재구성하는데, 이 과정에서 노이즈는 두 가지 방법으로 추가
      • 중심 이동: 상자의 중심 좌표에 랜덤 노이즈 (Δx, Δy)를 추가
      • 상자 크기 조정: 상자의 너비와 높이에 랜덤 노이즈를 추가하여 크기를 조정

 

Matching part(매칭 파트)

  • 헝가리안 알고리즘(이분 그래프 매칭 방법 일종)을 사용하여 일반적인 매칭 학습 (=DETR)

 

Denoising part(노이즈 제거 파트)

  • 노이즈가 추가된 GT 객체(GT 상자, label 쌍)를 원래 GT로 재구성하는 것을 목표로 함

 

 

Attention Mask

  • Denoising 작업에서 attention mask는 정보 누출을 방지하는 역할을 함. attention mask는 다음과 같은 두 가지 유형의 정보 누출을 방지함
    1. matching part와 denoising part 간의 정보 누출: matching part 가 denoising part를 볼 수 없도록 하여 정보 누출을 방지
    2. 다른 노이즈 버전 간의 정보 누출: 각 노이즈 버전이 서로를 볼 수 없도록 하여 정보 누출을 방지

 

Label Embedding (Indicator)

  • Decoder Embedding은 Label Embedding으로 지정되어 Lable Denoising을 지원
    • 본 논문에서는 COCO 2017 데이터셋의 80개 클래스와 "unknown" class embedding을 포함하며, denoising part 와 matching part 를 구별하기 위해 인디케이터(Indicator)도 추가 
    • 인디케이터는 각 임베딩에는 해당 객체가 실제 객체인지 노이즈 객체인지를 나타냄 

 

 

 

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

반응형