YOLO를 포함한 기존 객체 탐지 모델들은 공통적인 수작업 컴포넌트가 있었다. 앵커 박스 설계, NMS 후처리, 앵커와 정답 박스의 매칭 규칙이다. 이것들은 도메인 지식이 필요하고 하이퍼파라미터 튜닝이 까다롭다.

Facebook AI의 Carion 등이 2020년 발표한 DETR(Detection Transformer)은 이 수작업 컴포넌트를 제거하고 트랜스포머로 End-to-End 탐지를 구현했다.

아키텍처

세 부분으로 구성된다.

CNN 백본: ResNet으로 이미지에서 특징 맵을 추출한다. (H/32 × W/32 × 2048)

트랜스포머 인코더-디코더

  • 인코더: 특징 맵을 시퀀스로 펼쳐 셀프 어텐션으로 전역 문맥을 포착한다
  • 디코더: N개의 학습 가능한 **오브젝트 쿼리(object query)**를 입력으로 받는다. 각 쿼리가 이미지에서 하나의 객체를 담당한다

FFN 예측 헤드: 각 쿼리의 출력으로 클래스와 바운딩 박스를 예측한다

이미지
  ↓ ResNet
특징 맵 (H/32 × W/32)
  ↓ 위치 인코딩 추가
  ↓ 트랜스포머 인코더
인코더 출력
N개 오브젝트 쿼리 → 트랜스포머 디코더 → N개 예측 (클래스 + 박스)

N = 100으로 설정하면 최대 100개 객체를 탐지한다. 실제 객체가 3개라면 나머지 97개는 “객체 없음(no object)” 클래스를 예측한다.

헝가리안 매칭 (Hungarian Matching)

N개 예측과 실제 정답 박스를 1대1로 연결하는 것이 핵심이다. 기존 모델처럼 앵커당 IoU 기준으로 정답을 할당하지 않는다.

헝가리안 알고리즘으로 예측-정답 간 비용이 최소인 이분 매칭을 구한다.

비용 = 클래스 예측 오류 + 박스 위치 오류 (L1 + GIoU)

최적 매칭이 구해지면, 매칭된 쌍에서만 손실을 계산한다. 매칭되지 않은 예측은 “no object” 손실만 받는다.

이 방식 덕분에 같은 객체에 여러 예측이 생기는 중복 탐지 문제가 구조적으로 사라진다. NMS가 필요 없다.

셀프 어텐션의 역할

DETR에서 트랜스포머 어텐션이 의미 있는 역할을 한다는 것을 시각화로 확인할 수 있다.

인코더의 어텐션 맵을 보면, 특정 위치를 쿼리했을 때 같은 객체에 속하는 영역들이 함께 강조된다. 트랜스포머가 객체의 경계를 스스로 파악하는 것이다.

디코더의 각 오브젝트 쿼리가 이미지의 서로 다른 영역에 집중한다. 쿼리들이 암묵적으로 이미지를 분할해 각자 다른 객체를 담당한다.

한계와 개선

느린 학습 수렴: COCO 데이터셋에서 Faster R-CNN은 수십 에폭이면 충분하지만 DETR은 500 에폭이 필요하다. 헝가리안 매칭이 초기에 불안정하고, 오브젝트 쿼리가 역할을 잡는 데 시간이 걸린다.

소형 객체 약점: CNN 백본이 32배 다운샘플링하므로 작은 객체의 정보가 손실된다.

이를 개선한 후속 모델들이 등장했다.

Deformable DETR(2021): 전체 특징 맵에 어텐션하지 않고 각 쿼리가 관련 위치만 샘플링하는 변형 가능 어텐션(deformable attention)을 사용한다. 수렴이 10배 빨라지고 다중 스케일 특징을 활용해 소형 객체도 잘 탐지한다.

DINO(탐지, 2022): 대조 학습과 혼합 쿼리 선택으로 성능을 높인 DETR 계열 모델이다. COCO 벤치마크에서 최고 성능을 오래 유지했다.

트레이드오프

DETR은 구조가 단순하고 앵커 관련 하이퍼파라미터 튜닝이 필요 없다. 그러나 학습이 느리고 대규모 GPU 클러스터가 필요하다. 실시간 탐지에는 여전히 YOLO 계열이 적합하고, 정확도가 중요하거나 맞춤 데이터셋에서 파인튜닝할 때 DETR 계열이 유리하다.