Computer Vision/Object Detection, Segmentation

[ECCV 2020] DETR : End-to-End Object Detection with Transformers (Facebook AI)

논문 : https://arxiv.org/abs/2005.12872

코드 : https://github.com/facebookresearch/detr

참고자료 : https://www.youtube.com/watch?v=hCWUTvVrG7E


논문의 장점

  • 기존의 object detection 기술과 비교했을 때 구조가 매우 간단하며 또한 경쟁력 있는 성능을 보인다.

논문의 단점

  • 학습 시간이 오래걸림. (논문에서는 16개의 V100 GPUs 로 3일동안 300 epochs 학습)

제안하는 것

  • DETR (DEtection TRansformer) : ① 이분 매칭 손신 함수 + ② Transformer

  • backbone : 이미지에서 feature를 추출
  • positional encoding : 이미지에서 상대적인 위치 정보를 담기 위해 추가해줌 (각 픽셀들이 sequential 한 정보들로 변환)
  • encoder : sequential 한 정보들을 처리하기에 적합한 transformer encoder를 사용
  • decoder : object queries를 거쳐서 나온 결과는 각각 object에 대한 클래스바운딩 박스를 통해 object가 어디에 존재하는 지 알려줄 수 있도록 분류됨.

연구 배경 : 기존 방법의 문제점

  • 기존 object detection 방법들은 너무 복잡하며 다양한 라이브러리를 활용한다.
    • 사전 지식(prior knowledge) 요구 : bounding box 의 형태, bounding box 가 겹칠 때의 처리 방법 등

Main Contribution : 이분 매칭

  • 이분 매칭(bipartite matching)을 통해 set prediction problem을 직접적으로(directly) 해결함
    • set (집합) : 중복된 원소가 없고, 순서가 상관없다는 특징이 있음
    • set of box predictions (=N) : 미리 class 의 수를 설정함. 따라서 큰 값으로 설정해야 함
  • 학습 과정에서 이분 매칭을 수행함으로써 인스턴스가 중복되지 않도록 유도함

Main Contribution : Transformer

  • Transformer : sequential 한 데이터가 있을 때, 효과적으로 내재된 임베딩을 학습하기 위해 사용함
    • Attention을 통해 전체 이미지의 문맥 정보를 이해
    • 따라서 이미지 내 각 인스턴스의 상호작용 (interaction) 파악 용이
    • 큰 bounding box에서의 거리가 먼 픽셀 간의 연관성 파악 용이 
  • Encoder : 이미지의 특징(feature) 정보를 포함하고 있는 각 픽셀 위치 데이터를 입력받아 인코딩 수행
  • Decoder 
    • N개의  object query를 초기 입력으로 받으며 인코딩된 정보를 활용
    • 각 object query는 이미지 내 서로 다른 고유한 인스턴스를 구별

Transformer (Encoder)

  • 인코더는 d x HW 크기의 연속성을 띠는 feature map을 입력으로 받음
    • 이때 d는 image feature를 의미하고 HW는 각각의 픽셀 위치 정보를 담고 있음
  • 마지막 레이어에서 인코더의 self-attention map을 시각화 해보면 개별 인스턴스를 적절히 분리하는 것을 확인할 수 있음

Transformer (Decoder)

  • N개의 object query(학습된 위치 임베딩)를 초기 입력으로 이용함
  • 인코더가 global attention을 통해 인스턴스를 분리한 뒤에 디코더는 각 인스턴스의 클래스와 경계선을 추출함

 

Comparison with Faster R-CNN

Faster R-CNN과 비교했을 때, 충분히 높은 성능을 보이고 있다고 함. 큰 object에 대해서는 아주 높은 성능 향상을 보였고, 작은 object에 대해서는 성능이 떨어짐.

 

Ablation

Encoder 사이즈가 커짐에 따라서 성능이 향상됨. (Decoder는 고정)Decoder도 사이즈가 커질수록 성능이 향상됨.

 

Encoder는 global attention을 통해서 각각의 instance를 적절히 분리할 수 있음.Decoder는 말단정보(extremities, 예를 들어 코끼리의 코, 발 등)를 잘 잡아내어 클래스를 잘 예측하고 경계선도 잘 땀.