오늘은 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을 제안
왜 느릴까?
- 기존 DETR 학습 주된 매커니즘
- Object Query들의 임베딩이 Encoder와 Cross-Attention으로 학습이 이루어지면서, 이미지와 관련된 Features를 학습 ( = 이걸 Content Embedding이라 함)
- 문제는 Content Embedding에 너무 의존함
- 이게 적게 돌면 성능 저하
- 또한, Position Embedding을 빼면 성능이 크게 저하하는 이슈도 있음
- 객체에 대한 공간 정보에 대한 필요성 증가
- 이분 그래프 매칭의 불안정성
- 훈련 초기 단계에서는 최적화 목표가 일관되지 않음. 이는 이분 그래프 매칭이 불안정하여 매 에포크마다 동일한 이미지에 대해 다른 객체와 쿼리가 매칭되기 때문 => 즉, 최적화가 느림
2. Related Work
- DAB-DETR
- Deformable-DETR
3. DN-DETR
3-1. 아키텍처
DAB-DETR과 아키텍처에서 큰 차이를 두고 있지 않습니다. 이 단락에서는 DN-DETR이 어떠한 구조 차이가 있는 지 알아보겠습니다.
- DAB-DETR 아키텍처를 기반으로 하며 그와 같이 쿼리로 4D 앵커 상자를 사용
- DAB-DETR과의 차이점은 디코더 임베딩 → Class Label Embedding + Indicator
- Class Label Embedding: 객체의 클래스 정보를 포함하는 고유 임베딩.
- ex) '고양이' 클래스는 특정 임베딩 벡터로, '강아지' 클래스는 다른 임베딩 벡터로 변환
- Indicator: 노이즈 객체와 실제 객체를 구분하는 역할을 하는 임베딩.
- 실제 객체에는 '실제 객체'를 나타내는 인디케이터가, 노이즈 객체에는 '노이즈 객체'를 나타내는 인디케이터가 할당
- Class Label Embedding: 객체의 클래스 정보를 포함하는 고유 임베딩.
3-2. 과정
이제, DN-DETR이 어떻게 학습이 되고 decoder 쿼리가 어떻게 동작하는 지 알아보겠습니다.
(DAB-DETR에 대해 기본적인 지식이 있다면 이해하는 데 어렵지 않을 겁니다.)
DN-DETR은 Denoising이라는 개념이 들어갑니다. 먼저 Denoising이 뭔지 보겠습니다.
Denoising 요약
- 노이즈 추가: GT 경계 상자에 노이즈를 추가하여 디코더에 입력. 이 노이즈는 주로 중심 이동(center shifting)과 상자 크기 조정(box scaling)을 통해 추가
- 재구성 훈련: 노이즈가 추가된 쿼리를 사용하여 원래 GT 상자를 재구성하도록 모델 학습. 이를 통해 모델이 이분 그래프 매칭의 불안정성을 극복하고 더 빠르게 수렴 가능케 함
Denoising 과정
- Decoder 쿼리
- 학습 가능한 앵커 쿼리: DETR에서 사용되는 학습 가능한 쿼리는 (x, y, w, h) 형식으로, x와 y는 중심 좌표를 나타내고 w와 h는 상자의 너비와 높이를 나타냄
- 노이즈 추가 쿼리: 실제 경계 상자에 노이즈를 추가하여 생성된 쿼리로, denoising 작업을 통해 재구성함
- Decoder 입력
- 노이즈 추가된 GT 상자: 노이즈가 추가된 GT 상자를 디코더에 입력하여 모델이 이를 재구성하는데, 이 과정에서 노이즈는 두 가지 방법으로 추가
- 중심 이동: 상자의 중심 좌표에 랜덤 노이즈 (Δx, Δy)를 추가
- 상자 크기 조정: 상자의 너비와 높이에 랜덤 노이즈를 추가하여 크기를 조정
- 노이즈 추가된 GT 상자: 노이즈가 추가된 GT 상자를 디코더에 입력하여 모델이 이를 재구성하는데, 이 과정에서 노이즈는 두 가지 방법으로 추가
Matching part(매칭 파트)
- 헝가리안 알고리즘(이분 그래프 매칭 방법 일종)을 사용하여 일반적인 매칭 학습 (=DETR)
Denoising part(노이즈 제거 파트)
- 노이즈가 추가된 GT 객체(GT 상자, label 쌍)를 원래 GT로 재구성하는 것을 목표로 함
Attention Mask
- Denoising 작업에서 attention mask는 정보 누출을 방지하는 역할을 함. attention mask는 다음과 같은 두 가지 유형의 정보 누출을 방지함
- matching part와 denoising part 간의 정보 누출: matching part 가 denoising part를 볼 수 없도록 하여 정보 누출을 방지
- 다른 노이즈 버전 간의 정보 누출: 각 노이즈 버전이 서로를 볼 수 없도록 하여 정보 누출을 방지
Label Embedding (Indicator)
- Decoder Embedding은 Label Embedding으로 지정되어 Lable Denoising을 지원
- 본 논문에서는 COCO 2017 데이터셋의 80개 클래스와 "unknown" class embedding을 포함하며, denoising part 와 matching part 를 구별하기 위해 인디케이터(Indicator)도 추가
- 인디케이터는 각 임베딩에는 해당 객체가 실제 객체인지 노이즈 객체인지를 나타냄
Experiments와 Conclusion은 실험 결과 및 토의 부분이기 때문에 따로 적지는 않았습니다.
'Machine Learning > Image' 카테고리의 다른 글
DEER: Detection-agnostic End-to-End Recognizer for Scene Text Spotting (4) | 2024.07.23 |
---|---|
Grounding DINO: Marrying DINO with Grounded Pre-Training for Open-Set Object Detection (0) | 2024.07.12 |
DAB-DETR: Dynamic Anchor Boxes are Better Queries for DETR (1) | 2024.07.05 |
DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection (0) | 2024.07.04 |
Deformable DETR (1) | 2024.06.13 |