dev-ima
이마의 개발 블로그
dev-ima
전체 방문자
오늘
어제
  • 분류 전체보기 (16)
    • deeplearning study (4)
    • toy project (3)
    • algorithm study (0)
    • Portfolio (0)
    • Design Pattern (1)
    • Computer Vision (3)
    • c++ (4)
    • MLops (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

공지사항

인기 글

태그

  • Computer Vision
  • image Enhancement
  • TITANIC
  • C++
  • 정적멤버변수
  • Recognition
  • static member method
  • 딥러닝 시스템
  • DEEPLEARNING
  • ML시스템
  • 머신러닝
  • Face Recognition
  • kaggle
  • cv
  • Object detection
  • instance segmetation
  • static member variable
  • static member
  • 정적멤버함수
  • Python
  • DETR
  • 비지도
  • ML system
  • ML workflow
  • MLops
  • UW-Madison GI Tract Image Segmentation
  • Data의 종류
  • machine learning
  • Unsupervised
  • UML 다이어그램

최근 댓글

최근 글

티스토리

hELLO · Designed By 정상우.
dev-ima

이마의 개발 블로그

DETR:End-to-End Object Detection with Transformers 논문 리뷰
deeplearning study

DETR:End-to-End Object Detection with Transformers 논문 리뷰

2022. 4. 18. 22:06

Abstract

본 논문은 object detection에서 direct set prediction problem을 해결하기 위해 제안되었다.

DETR 특징

  • NMS(non-maximum suppression)과 anchor generation과 같은 부가 component 제거
  • 이분 매칭(bipartite matching)
  • transformer encoder-decoder architecture
  • 병렬 예측

Introduction

본 논문은 end-to-end 구조를 활용한 object detection 연구를 진행하며 transformer 구조를 사용한다.

 

DETR은 이미지 내 모든 객체를 한번에 예측하고 predicted object와 groud truth 간에 이분 매칭을 수행 후, loss function로 end-to-end 학습 진행

 

기존의 객체 탐지 방법들은 복잡하고 다양한 사전 지식을 요구하는 문제가 있다. 본 논문에서는 NMS(non-maximum suppression)과 anchor generation과 같은 부가 component를 제거하여 DETR을 단순하게 구현

 

작은 object를 잘 탐지하지 못하며, 학습시 많은 시간이 소요된다는 단점이 존재한다.

 

Related work

  • bipartite matching losses for set prediction
  • encoder-decoder architectures based on the transformer
  • parallel decoding
  • object detection methods

2.1 Set Prediction

첫번째 문제는 하나의 물체에 대해 여러 탐지가 일어나는 경우이다. 기존 해결방법으로는 NMS를 통해 후처리를 진행한다. 본 논문에서는 이러한 후처리를 하지 않는다. 그래서 이분 매칭을 통해 각 대상 요소가 고유한 일치를 갖도록 보장한다. 그리고 이분법을 사용하게 되면 각 target에 대해 unique한 매칭이 가능하기 때문에, 병렬 디코딩이 가능하다는 장점이 있다.

2.2 Transformers and Parallel Decoding

Transformer의 main advantage는 global computations and perfect memory이다.

Transformer의 특징

  • Attention을 통해 이미지 내 문맥 정보 이해
  • 이미지 내 각 instance의 interaction 파악 용이
  • 큰 bounding box에서의 거리가 먼 pixel 간의 연관성 파악 용이

RNN을 대체하여 자연어처리, 음성처리 및 computer vision에서 사용되고 있다.

2.3 Object detection

2-stage detectors의 경우, region proposal을 통해 boxes를 예측한다.

1-stage detectors의 경우, achor 또는 object의 center를 예측한다.

위의 방법들은 대다수 post processing이 필요하여 처리과정이 복잡해진다. 본 논문에서는 anchor 대신 이미지에 대한 absolute box 예측으로 prediction set을 directly prediction하여 탐지 프로세스 간소화

Set-based loss.

몇몇 object detectors는 이분 매칭 loss를 사용한다. 하지만 최근 모델망들은 대부분 NMS와 같은 post processing을 통해 성능을 향상시켰다. 

direct set losses를 사용한다면, post-processing step은 필요하지 않다. 

The DETR model

direct set prediction을 위한 두가지 필수요소.

  • ground truth와 predicted box 간 unique matching을 강제하는 a set prediction loss
  • 일련의 object를 예측하고 이들의 관계를 모델링하는 architecture (figure 2)

3.1 Object detection set prediction loss

DETR은 고정된 수 N개의 예측으로 이루어진 set이 필요하다. decoder를 통한 단일 패스에서 고정 크기의 N prediction set를 추론한다. N은 이미지 내 일반적으로 분포하는 객체의 수보다 크게 설정한다.

 

DETR은 이분 매칭을 통해 각 객체별 loss값을 구하여 최소화한다.

ground truth : $$ y=groundtruth $$

predict : $$ \hat{y} = \begin{Bmatrix}\hat{y}_{i}\end{Bmatrix}_{i=1}^{N} $$

그리고 아래 수식을 보게되면, GT와 prediction의 매칭 결과의 합이 최소가 되는 시그마 값을 찾아야한다.

이분 매칭시, class prediction과 bbox prediction의 loss값을 모두 고려해야 한다.

이분 매칭을 수행시 헝가리안 알고리즘을 이용하여 최적의 매칭을 찾는다.

class imbalance를 해결하기위해 class prediction에 log를 사용

bounding box loss 값을 계산하기위해, L1 Loss와 GIOU Loss를 사용하여 계산을 수행한다.

3.2 DETR architecture

상단의 그림과 같이 DETR architecture는 간단하게 구현되어진다. 

세가지 주요 구성요소로 이루어진다.

transformer 논문을 아직 읽지 못하여 읽은 후 추가 정리가 필요할 것 같습니다. 전체적으로 이해 부족

  • CNN backbone
  • encoder-decoder
  • FFN(Feed Forward Network)

backbone

Resnet50을 backbone망으로 하였을 때, 활성화 맵을 2048 x height/32 x width/32로 설정한다. 그후, 1x1 convolution을 통해 특정 차원크기로 변경한다.

encoder

1차원으로 축소하여 dxHW feature 맵을 생성하여 encoder에 들어간다.

self-attention을 통해 픽셀 간의 연관성을 파악한다.

decoder

object queries가 indepently하게 decoding된다. decoder를 거쳐서 N개의 output embedding이 생성되고 각각 독립적으로 FFN에 전달되어 N개의 final prediction 생성

 

Discussion

transformer논문을 먼저 읽고 본논문을 읽었다면, 좀 더 encoder-decoder에 대하여 이해할 수 있지않았나 생각이 든다. 그래서 이 다음 논문리뷰는 transformer 관련 논문을 가지고 진행할 예정입니다.

기존의 2-stage and 1-stage object detection과 다르게 transformer를 이용하여 간단하게 모델을 구성하였다는 것에서 이렇게 모델을 구현할 수 도있구나라는 생각이 들었다. 또한 이분매칭을 진행할 때, prediction할 object의 수를 제한한 아이디어도 생각지도 못한 발상이여서 배울점이 많은 논문이였다고 생각이든다.

'deeplearning study' 카테고리의 다른 글

Machine Learning with Python -2주차-  (0) 2022.06.07
Machine Learning with Python -1주차-  (0) 2022.06.07
Mask R-CNN 논문 review (1부)  (0) 2022.05.24
    'deeplearning study' 카테고리의 다른 글
    • Machine Learning with Python -2주차-
    • Machine Learning with Python -1주차-
    • Mask R-CNN 논문 review (1부)
    dev-ima
    dev-ima

    티스토리툴바