제가 논문을 읽고 이해한대로 정리한 리뷰입니다. 제가 잘못 이해한 부분이 있으면 댓글 남겨주세요.
논문 : https://arxiv.org/pdf/2005.12872.pdf
이번에 리뷰할 DETR 모델은 Object Detection 분야에서 Transformer를 사용하여 좋은 성능을 보여주는 논문이다.
Object detection의 목표는 객체의 bounding boxes 와 category labels을 예측하는 것이다. Modern Detector는 large set of proposals, anchors 또는 window centers 에 surrogate regression 및 classification문제를 정의하여 간접적인 방식으로 세트 예측 작업을 처리한다. 위와 같은 모델들의 성능은 거의 중복된 예측을 축소하기 직접 anchor sets을 정하고 휴리스틱하게 target box를 정하는 postprocessing 단계가 필수적이다. 본 논문에서는 이러한 pipline을 간소화하기 위해 direct set prediction approach를 제안한다. end-to-end 철학은 기계 번역이나 음성 인식과 같은 복잡한 구조화된 예측 작업에서 상당한 발전을 가져왔지만 아직 Object detection에서는 사용하지 않았다. 이전 선행 연구는 다른 형태의 사전 지식을 추가하거나 , 또는 까다로운 벤치마크에서 강력한 기준으로 경쟁력이 있는 것으로 입증되지 않았다. 본 논문은 이러한 격차를 해소하는 것을 목표로 한다.
Object detection를 direct set prediction problem 문제로 간주하여 학습 파이프라인을 간소화한다. 본 논문은 sequence prediction에 널리 사용되는 architecture 인 Transformer에 기반한 Encoder-Decoder architecture 를 채택한다. sequence의 요소 간의 모든 상호 작용을 명시적으로 모델링하는 Transformer의 self-attention 메커니즘은 이러한 architecture 를 특히 duplicate predictions 제거와 같은 set prediction 의 특정 제약 조건에 적합하게 만든다.
DETR은 한 번에 모든 object를 예측하고, 예측 객체와 ground-truth objects 사이에 bipartite matching을 수행하는 loss function으로 end-to-end로 학습한다. DETR은 spatial anchors or non-maximal suppression와 같은 사전 지식을 인코딩하는 여러 수작업을 사용하지 않아 detection pipeline이 간소화된다. 대부분의 기존 detection method과 달리 DETR 은 customized layer가 필요하지 않으므로 표준 CNN과 Transformer class를 포함하는 프레임워크에서 쉽게 재현할 수 있다.
direct set prediction에 대한 대부분의 이전 작업과 비교할 때 DETR의 주요 기능은 bipartite matching loss 와 (non-autoregressive) parallel decoding이 있는 Transformers의 결합이다. 대조적으로 이전 작업은 RNN을 사용한 autoregressive decoding에 중점을 두었다. matching loss function은 ground truth object의 uniquely한 예측을 할당하므로 예측된 object들의 permuation에는 변하지 않기 때문에, 병렬적으로 autoregressive decoding task를 제거할 수 있다.
매우 경쟁력 있는 Faster R-CNN baseline과 비교하여 가장 인기 있는 object detection 데이터 세트 중 하나인 COCO에서 DETR을 평가한다. Faster R-CNN 많은 design iteration을 거쳤으며 최 게시 이후 성능이 크게 향상되었다. 실험 결과 DETR은 Faster R-CNN과 비슷한 성능을 달성한다. 보다 정확하게는 DETR은 큰 object에서 훨씬 더 나은 성능을 보여 주며, 그 결과는 Transformer의 non-local computations에 의해 가능할 수 있다. 그러나 작은 object에 대해서는 낮은 성능을 얻는다. Faster R-CNN을 위해 FPN을 개발한 것과 같은 방식으로 향후 작업이 이 측면을 개선할 것으로 기대한다. DETR에 대한 Training settings은 여러 면에서 standard object detectors와 다르다. DETR은 extra-long training schedule 이 필요하며, Transformer의 auxiliary decoding losses인한 이점이 있다.
Transformer는 Vaswani et al.에 의해 소개되었다. machine translation을 위한 new attention-based building block이다. Attention mechanisms은 전체 입력 sequence에서 정보를 집계하는 신경망 계층이다. Transformer는 Non-Local Neural Networks와 유사하게 sequence의 각 요소를 스캔하고 전체 sequence에서 정보를 집계하여 업데이트하는 self-attention 레이어를 도입했다. attention 기반 모델의 주요 이점 중 하나는 global computations 및 완벽한 메모리로, 긴 sequence에서 RNN보다 더 적합하다. Transformer는 현재 자연 언어 처리, 음성 처리 및 컴퓨터 비전의 많은 문제에서 RNN을 대체하고 있다.
Transformers는 초기 sequence to sequence 모델에 이어 auto-regressive 모델에서 처음 사용되어 출력 토큰을 하나씩 생성했다. 그러나 엄청난 추론 비용(proportional to output length, and hard to batch)이 있다. 본 논문은 computational cost과 세트 예측에 필요한 global computations을 수행하는 능력 사이의 적절한 절충을 위해 Transfomer와 parallel decoding을 결합한다.
Detection에서 direct set predictions을 위해서는 두 가지 요소가 필수적이다.
전체 DETR architecture는 놀라울 정도로 단순하며 그림2와 같다. 크게 3가지 구조로 구성되어 있다.
많은 modern detectors와 달리, DETR은 일반적인 CNN backbone과 단 몇 백줄의 Transformer 구현을 제공하는 모든 딥러닝 프레임워크에서 구현될 수 있다. DETR에 대한 추론 코드는 Pytorch에서 50줄 미만으로 구현될 수 있다.
input image인 $$ x_{img} ∈ \mathbb{R} ^{3 \times H_0 \times W_0} $$ 일 때, 전통적인 CNN backbone 모델은 낮은 차원의 activation map $$ f ∈ \mathbb{R}^{C \times H \times W} $$을 생성한다. 본 논문에서는 $$ C = 2048, H, W = {\frac{H_0}{32}, \frac{W_0}{32}}$$ 값을 사용한다.
(작성 중)
YOLOv4: Optimal Speed and Accuracy of Object Detection (0) | 2023.03.24 |
---|---|
합성곱 신경망(CNN) (0) | 2022.03.12 |
hand-crafted features 와 End to end 차이점 (0) | 2021.10.01 |
댓글 영역