• toc {:toc}

Overview

  • 객체 탐지의 목적 : 카테고리 분류 + bbox 설정

image

  • 기존 객체 탐지 모델(Faster R-CNN)
  1. Heuristic proposals, anchors, window centers를 설정하는 방식으로 임의의 bbox를 설정한다.
  2. Near-duplicate prediction, bbox들이 서로 많이 겹쳐 중복되는 예측들이 많이 생성되고, 이를 NMS를 통해 하나의 bbox로 취합한다.
  3. bbox를 통해 탐지된 객체를 분류한다.
  4. 즉, 다음의 방식은 객체를 직접 찾는 방식이 아닌, 많은 bbox를 만들어 탐지하는 간접적인 방식이다.

image

  • DETR(DEtection TRansformer)에서는 기존의 간접적인 방식이 아닌, 직접적인 1대1 대응으로 bbox를 만들어 탐지하는 방식을 제안한다.

Prior Knowledge

DETR을 이해하려면 여러 사전 지식이 필요하다. 하나씩 살펴보자.

Set Prediction

Set Prediction에서 set은 (Classification Class, Bounding Box)를 의미한다. 객체 탐지에서의 Set Prediction은 앞에서 언급했다시피 간접적으로 탐지함으로써 near-duplicate, 중복 문제가 발생한다. DETR은 손실함수를 사용한 Hungarian algorithm을 사용하여 정답과 예측간의 이분 매칭(bipartite matching)방식을 사용하여 여분의 bbox를 만들지 않고, 1대1 대응으로 정답과 예측을 매칭한다.

  • Set = (Classification Class, Bounding Box)
  • Hungarian algorithm을 사용한 이분 매칭 1대1 대응 매칭 방식

Object Detection

기존의 객체 탐지 방식의 경우 처음 몇 가지 추측을 사용하여 예측을 생성하는 방식을 사용한다.

  • Two-stage detector : Proposals에 관한 예측 bbox를 생성한다.
  • Single-stage detector : Anchor or Grid of object centers에 관한 예측 bbox를 생성한다.

Zhang, S., Chi, C., Yao, Y., Lei, Z., Li, S.Z.: Bridging the gap between anchor-based and anchor-free detection via adaptive training sample selection. arXiv:1912.02424 (2019)을 따르면 객체 탐지의 최종 성능은 초반 bbox 예측 방식에 많이 의존한다. 이는 초반 bbox 예측, 설정에 따라 객체를 탐지하는 범위가 변경되기 때문이다.

DETR의 경우에는 Transformer의 encoder-decoder 방식을 사용하여 proposals, anchor, object center 등 사전 객체가 존재한다는 사전 지식에 대한 개입을 줄이고 고정된 개수의 bbox만 산출한다. 또한, Multi-head self-attention을 사용하여 여러 특징을 병렬적으로 산출할 수 있도록 했다.

  • 기존 방식 : 초반 bbox 예측 방식의 영향이 크다.
  • DETR : Transformer, Hungarian algorithm 등을 통해 1대1 대응을 만들어 고정된 개수의 bbox만 산출하고, 사전 지식이 필요하지 않도록 만들었다.

Box Loss

  • 는 각각 loss에 대한 가중치를 나타낸다.

imageGIoU Loss (Reference : https://herbwood.tistory.com/26)

  • |.| 는 area를 뜻한다.
  • 는 GIoU, generalized IoU를 뜻한다.
  • L1 Loss의 경우 2가지 큰 bbox, 작은 bbox를 가정하면 두 bbox의 loss는 서로 달라지는 문제점을 갖고, 이를 해결하기 위해 GIoU를 사용한다.
  • 기존의 방법들은 proposals, anchors 등을 사용해 위치를 조정하고 예측을 하기 때문에 예측하는 bbox의 범위가 크게 벗어나지 않는다.
  • 하지만 DETR은 사전 지식을 가지고 있지 않기 때문에 bbox의 예측 범위가 넓다.
  • 이를 보충하기 위해 GIoU를 사용하여 산출한다.

imageGIoU 사용 이유 (Reference : https://gaussian37.github.io/vision-detection-giou/)

  • 절대적인 거리 측정, 범위 측정을 통해서 bbox 손실을 측정한다.

DETR Model

객체 탐지 task에서 set prediction을 하기 위해서는 다음 2가지가 필요하다.

  1. 예측, 정답 bbox 사이에 유일한 매칭을 만들어주는 예측 손실 함수(Set Prediction Loss)
  2. 객체의 set을 한 번의 pass에서 예측하는 아키텍쳐와 관계에 대한 모델링

Object Detection Set Prediction Loss

  • DETR은 디코더를 통해 한 번의 pass에서 N개의 고정된 크기의 set을 추론한다.
  • N은 이미지의 일반적인 객체의 수보다 상당히 더 큰 값을 갖는다.(No Object포함)

훈련에서의 주요한 문제 중 하나는 정답에 관해 예측된 객체의 점수를 산출하는 것이다. DETR의 객체 점수 산출 손실 함수는 다음으로 구성되어 있다.

  1. 이분 매칭 손실 함수(Bipartite Matching Loss) - 이분 매칭 최적화
  2. Bbox 손실 함수 (Bounding Box Loss) - 객체의 탐지 최적화

Bipartite Matching Loss

  • : 정답 과 예측 에 대한 Matching cost
  • : 객체 분류에 대한 정답
  • : 1부터 N개의 객체에 대한 예측

즉, 1~N개의 객체 탐지를 하고 해당 예측과 정답과 비교하여 손실이 가장 적은 매칭의 인덱스를 선택한다. 이때 최적의 매칭은 Hungarian algorithm을 통해서 계산된다.

Matching Loss

𝟙𝟙
  • : 클래스에서의 예측 확률
  • : 예측 box
  • 위의 매칭 손실 함수는 proposal, anchors를 사용한 것과 같은 heuristic한 할당 방식과 동일한 역할을 한다.
  • 중복없이 직접적인 set prediction을 위해서 1대1 매칭을 하도록 만드는 Hungarian Loss를 사용한다.

imageMatching cost matrix(Reference : https://herbwood.tistory.com/26)

  • 이후 행렬의 최적의 matching cost는 Hungarian Loss를 사용해서 최적, 최소의 값으로 설정된다.
  • : 이전 단계에서 구한 최적 할당
  • 학습 시 No Object 인 경우 log 확률을 1/10으로 감소시킨다.
    • 이미지에 객체가 3개 있고 총 100개의 bbox를 DETR이 생성한다고 하자.
    • 97개는 No Objects로 설정될 가능성이 높기 때문에 negative sample의 수가 매우 많고, negative sample의 영향을 줄이기 위해 감소시킨다.

DETR Architecture

image image

CNN(Pretrained)

  • 사전 훈련된 CNN을 사용한다. 논문에서는 기본적으로 ResNet-50을 사용했다.

  • Input :

  • Output : , 논문에서 로 설정했다.

  • 이후 1x1 Conv를 거쳐 으로 압축()하고 flatten 시켜 로 만든다.

Encoder

Result

image

  • DETR의 기본적인 모델
    • ResNet-50 Based DETR, 6 encoder, 6 decoder, width 256
  • DC5의 경우 CNN을 통과한 특징맵의 해상도를 2배 늘린 모델을 말한다.

image

image

  • 인코더의 개수를 아예 사용하지 않는 경우 성능이 3.9%p 감소하고, 개수를 늘릴 수록 성능도 증가했다.
  • 인코더의 self-attention을 시각화했을 때 쿼리마다 다른 instance를 주목해서 본다는 것을 볼 수 있다.
  • 저자는 인코더를 통해 global 정보를 받아 추론하기 때문에 영향을 받는다고 주장한다.

image

  • 좌측 figure
    • 디코더 층을 지날수록 AP의 증가량을 보이고, NMS의 사용 유무에 대한 차이를 보인다.
    • AP50의 경우 NMS를 적용한 경우가 약간 더 좋은 성능을 보이나, 거의 동일한 성능을 보이고 gap이 줄어든다.
    • AP의 경우 gap이 거의 없기 때문에 DETR이 NMS가 필요하지 않은 모델임을 보인다.
  • 우측 figure
    • 몇몇 class는 이미지 내 instance가 충분히 등장하지 않는 경우가 있다.
    • 즉, 학습 데이터셋에 없는 개수의 객체를 탐지하기 위해 가상의 이미지를 생성해 탐지한 결과, 이미지 내의 24마리의 기린을 모두 잘 포착했다.
    • 이를 통해 object query에 강력한 class-specialization이 없음을 보였다.

image

  • 디코더의 attention을 시각화해 보았을 때 다음과 같이 객체의 경계 부분만을 포착하는 것을 확인할 수 있다.
  • 저자는 인코더가 global attention을 통해서 객체를 배경과 분리했기 때문에 객체의 경계만 포착함으로써 분리할 수 있다고 주장한다.

image

  • Importance of positional encoding
    • Spatial positional encoding을 적용하지 않았을 때 모두 적용한 것에 비해 7.8%p 감소했다.

image

image

  • 20개의 slot에 대한 시각화 결과
    • 각 점은 예측한 bbox의 중심 좌표를 의미한다.
    • 초록색 : 작은 bbox
    • 빨간색 : 큰 수평 bbox
    • 파란색 : 큰 수직 bbox
    • 대부분의 slot이 COCO 데이터셋에서 자주 등장하는 이미지와 비슷한 크기의 bbox를 예측하는 모드를 가진다.