
학교에서 발표하라고 선정해주신 논문 리스트 중에 하나를 뽑았다..!
그게 바로 이 논문!
End-to-End Object Detection with Transformers
해당 논문은 ECCV 20에 있고 코드에 대한 링크도 있으니 깊이있게 공부하고 싶다면 참고하면 좋을 듯하다.
그럼 정리해보도록 하자
해당 논문은 Object Detection하는 새로운 모델을 제안한다.
DETR(DEtection TRansformers)이다.
이는 크게 2가지 요소로 구분된다.
Set-based Global LossTransformer encoder-decoder architecture논문에서는 DETR을 "이분 매칭을 통해 고유한 예측을 강제하는 집합 기반 글로벌 손실과 트랜스포머 인코더-디코더 아키텍처"라고 정의하였다.
결론적으로 DETR은 COCO 데이터셋에서도 잘 확립되고, 최적화된 Faster-RCNN과 동등한 정확도와 실행 성능을 보인다고 한다.
또한 Panoptic Segmentation을 쉽게 생성할 수 있다고 한다.
객체 탐지는 관심있는 객체에 대한 bounding box와 category label을 예측하는 것이다.
현대의 detector는 이 집합 예측 작업을 proposals 세트, anchors, 또는 window 중심에서 대리 회귀와 분류 문제를 정의함으로써 간접적으로 처리한다.
각각에 대해 설명해보면 아래와 같다.
이러한 방식들을 이용하여 객체의 위치와 레이블을 간접적으로 예측하곤 한다.
그러나 이들의 성능이 중복된 예측을 제거하는 후처리, Anchor set의 설계, Anchor에 타겟 박스를 할당하는 휴리스틱에 크게 영향을 받는다.
이러한 파이프라인을 간소화하기 위해, 해당 논문에서는 직접적인 집합 예측(Direct set prediction)을 제안한다.
정리해보면 DETR은 객체 탐지를 직접적인 집합 예측 문제(Direct Set Prediction Problem)로 바라보고 해결하는 방법이다.
시퀀스 예측에 유리한 트랜스포머의 '인코더-디코더'구조를 채택하였고, 이러한 구조를 통해 모든 요소간 쌍별 상호작용 모델링이 가능해져서 중복된 예측 제거와 같은 집합 예측의 제약을 해결해준다.
또한 DETR은 모든 객체를 한 번에 예측하며 예측 객체와 실제 객체 간의 이분 매칭을 수행하는 집한 손실 함수를 사용하여 End-to-end 학습을 수행한다.
그 결과, coco 데이터셋을 사용하여 Faster R-CNN과 비교하게 되는데, DETR이 큰 객체에는 더 좋은 성능을 보이지만, 작은 객체에 대해서는 더 낮은 성능을 보이는 것을 확인할 수 있었다고 한다.
DETR의 구조를 간략하게 표현하면 아래와 같다.

DETR은 공통 CNN과 Transformer architecture를 결합하여 최종 탐지 집합을 직접 (병렬로) 예측한다. 훈련 중에는 이분 매칭을 통해 예측과 실제 박스를 유일하게 매칭한다. 매칭되지 않은 예측은 "no object"클래스로 예측을 한다.
훈련 과정에 대해서만 좀 더 쉽게 설명해보자면,
먼저 예측과 실제 객체 박스 간의 유일한 매칭을 찾기 위해 이분 매칭을 사용한다. 이는 각 예측이 정확히 하나의 실제 객체 박스와 매칭되도록 한다.
만약 예측이 실제 객체 박스와 매칭되지 않는다면, 이 예측은 "no object" 클래스 예측을 하도록 설정한다. 만약 예측 박스가 배경을 탐지하고 있다면, no object로 예측한 것으로 판단한다는 뜻이다.
해당 단락에서 주어진 내용들을 정리해보면 아래와 같다.
기본적인 set prediction 작업은 주로 다중 레이블 분류를 말한다.
대부분의 다중 레이블 분류 작업에서는 근접 중복을 피해야 한다는 어려움이 있고, 이에 detector는 대부분 비최대 억제(Non-maximal Suppression)과 같은 후처리 방법을 사용하여 해결하려 한다.
비최대 억제(Non-maximal Suppression): 객체 탐지에서 중복된 탐지 결과를 제거하는 데 사용되는 기술
Direct Set Prediction은 비최대 억제와 같은 후처리 방법을 사용하지 않는 대신, 전역 추론 방식을 사용한다. 이는 예측 요소 간의 상호작용을 모델링하여 중복을 회피하려 한다.
고정 크기 집합 예측(Constant-size prediction)의 경우 밀집 전결합 네트워크(Dense Fully Connected Networks)를 사용하면 되지만, 비용이 매우 커서 가능하면 RNN과 같은 자기회귀적 시퀀스 모델을 사용하는 접근법을 사용하려 한다.
손실 함수로는 실제값과 예측값 간의 이분 매칭을 찾아 순열 불변성을 유지할 수 있게 해주는 헝가리안 알고리즘 기반의 손실 함수를 사용한다.
결론적으로 해당 논문에서는 이분 매칭 손실 접근법 + 병렬 디코딩 + 트랜스포머 형태의 모델을 제안한다.
Transformer: 기계 번역을 위한 새로운 attention 기반 구성 요소
Attention: 전체 입력 시퀀스에서 정보를 집계하여 데이터를 처리하는 방식
Attention 기반 모델은 전역 계산(Global Computation)에 유리하여 긴 sequence에서 RNN 보다 유리하다.
Transformer는 초기에 auto-regressive 모델에서 처음 사용되었다. 그러나 추론 비용이 출력 길이에 비례하고, 비싸서 병렬 시퀀스 생성(Parallel Sequence Generation)이 등장했다.
이에 해당 논문에서는 전역 계산이 가능한 Transfomer와 계산 비용을 낮출 수 있는 병렬 시퀀스 생성의 장점을 각각 가져와서 결합한다.
대부분의 Object detection 방법은 초기 추정값(Proposal, Anchor)에 기반해 예측을 수행한다.
그러나 이러한 과정으로 인해 초기 추정 성능에 영향이 크다는 사실이 입증되었다.
이에 해당 논문에서는 이러한 과정을 제거하고, Anchor 대신 입력 이미지에 대해 절대적인 박스 예측을 통해 탐지 과정을 간소화하고자 한다.
최근의 Detector들은 cnn에 기반한 encoder-decoder 구조로 이분 매칭 손실을 사용하여 직접 바운딩 박스 집합을 생성하였었는데, 이들의 문제점은 모두 RNN을 기반으로 해서, 병렬 디코딩을 활용하지 못한다는 점이다.
해당 단락에서 여러가지 변수가 나오는데 정리해보면 아래와 같다.
첫 번째로 DETR은 고정 크기 N개의 예측 집합을 추론하는데, 이 N은 이미지 내의 일반적인 객체의 수보다 훨씬 크게 설정한다. 이때 해당 논문에서는 예측된 객체와 실제 객체 간에 최적의 이분 매칭을 생성하고, 객체별 (바운딩 박스) 손실을 최적화한다.
y: 실제 객체들의 집합
y^ = {y~i} (i=1 to N) : N개의 예측 집합

σ: 이분 매칭을 찾기 위한, 최소 비용을 가지는 N개의 요소의 순열
만약 σ(3)=2라면, 실제 객체 3번인 y[3]은 예측된 객체 y^[2]와 매핑된다.
즉 σ(i)가 의미하는 것은 i번째 객체에 대해 가장 적합한 예측 객체 번호(인덱스)

σ^의 공식은 위와 같고, 이는 실제값과 예측 간의 pair-wise matching cost이다.
즉 이러한 매칭의 오차 값이 최소가 되는 경우를 찾게된다.
이 계산은 헝가리안 알고리즘을 사용하여 효율적으로 계산된다고 한다.

위의 값은 인덱스 σ(i)에 대해 클래스 ci일 확률을 표현하는 변수이다.
즉 실제 객체 i와 같다고 예측한 객체의 클래스가 ci일 확률인 것이다.

또한 해당 바운딩 박스를 나타내는 변수가 위와 같다.
이제 전체적인 수행 과정을 해보면 아래와 같다.
DETR은 디코더를 한 번 통과하여 고정 크기 N개의 예측을 수행
예측된 객체와 실제 객체 간의 이분 매칭(Bipartite Matching) 수행
이때 실제 집합은 y, 예측집합은 y^로 표현한다.
매칭 비용은 클래스 예측과 예측된 박스와 실제 박스 간의 유사성 두가지 모두 고려한다.
공식은 아래와 같고 이를 L_match로 표현한다.

여기서 σ는 최적의 매칭을 찾기 위해 헝가리안 알고리즘을 사용합니다.
매칭된 모든 쌍에 대해 헝가리안 손실 L_Hungarian을 계산한다.

Bounding box 예측

DETR의 상세한 구조는 아래와 같다.

주요 구성 요소는 아래의 3가지이다.
하나하나 살펴보자
먼저 입력 이미지 x_img ∈ R^(3xH0xW0)를 낮은 해상도의 활성화 맵 f ∈ R^(CxHxW)를 생성한다.
해당 논문에서는 C=2048, H, W = H0/32, W0/32이다.
1x1 convolution을 f의 채널 차원을 C에서 더 작은 d로 줄여 새로운 특징 맵 z0 ∈ R^(dxHxW)를 생성한다.
인코더는 시퀀스를 입력으로 받으므로, z0의 공간 차원을 하나의 차원으로 축소하여 dx(HxW) 특징 맵으로 평탄화한다.
평탄화된 시퀀스를 Transformer encoder의 입력으로 넣어준다.
Encoder는 다중 머리 자기 주의 모듈(Multi-head Self-Attention)과 FFN(Feed-forward Network)으로 구성되어 있고, Transformer의 순열 불변성을 보완하기 위해 고정된 위치 인코딩을 attention layer의 입력에 추가해준다.
순열 불변성(Permutation Invariance): 데이터의 순서가 중요하지 않을 때, 데이터의 순서가 바뀌어도 모델의 출력을 일정하기 유지하는 특성
Transformer의 기본 구조는 순열 불변적이지만, 실제로는 입력 데이터의 위치 정보를 보존하기 위해 위치 인코딩을 추가하여 순서 정보를 제공하곤 한다.
결론적으로 Transformer encoder는 고차원 특성 맵을 저차원 시퀀스로 변환하여,
self-attention을 통해 각 위치 간의 관계를 학습한다.
이를 통해 Encoder는 이미지의 전역적인 패턴을 학습하고, 출력으로 의미있는 임베딩을 제공하여 Decoder에서 각 객체에 대한 예측을 할 수 있도록 돕는다.
조금 단어가 어렵게 느껴진다면 단순히 객체별로 분리하는 과정이라고 생각하면 편하다. 아래의 사진이 encoder 결과를 시각화한 그림이다.

입력은 크기가 d인 N개의 Object Queries 임베딩이다.
여기서 N은 예측할 객체의 수를 의미하며, d는 디코더에서 처리할 임베딩의 차원을 나타낸다.
Object Queries(객체 쿼리): 학습된 Positional Encoding으로 각 임베딩에 위치 정보를 추가하는 역할을 하며, 객체에 대한 위치 정보를 포함한 특성을 얻기 위해 사용
Decoder는 순열 불변성을 가지기 때문에, 입력되는 N개의 임베딩이 서로 달라야 서로 다른 객체를 예측할 수 있다. 이를 위해 입력 임베딩에 Object Queries라는 학습된 Positional Encoding을 추가해주는 것
Decoder는 이 N개의 임베딩을 병렬로 처리한다.
이 부분이 기존 트랜스포머와의 차이점인데, Vaswani Transformer는 순차적으로 하나씩 예측하는 자기회귀 모델(Autoregressize Model)을 사용하는 반면, 이 논문에서 제시하는 Decoder는 한 번에 N개의 객체를 병렬로 디코딩한다.
내부 동작을 세세하게 살펴보면 아래와 같다.
1. Self-attention: 임베딩들 간의 상호작용을 고려해 각 객체의 특성 간 관계를 학습
2. Encoder-Decoder Attention: 인코더에서 얻은 정보와 입력 임베딩 간의 상호 작용을 통해 더 풍부한 정보 학습
그 결과 Decoder는 N개의 임베딩을 받아 N개의 출력 임베딩으로 변환한다.
크기가 d인 각 임베딩은 하나의 객체에 대한 정보(각 객체의 박스 좌표, 클래스 레이블)를 포함한다.
결론적으로 Transformer Decoder는 Self-Attention과 Encoer-Decoder Attention 매커니즘을 통해 객체 간 관계를 고려하면서 각 객체에 대한 전역적 추론을 수행하고, 이를 바탕으로 최종 예측을 만든다.
최종 예측은 3-layer perceptron을 사용하여 계산된다.
입력은 N개의 임베딩 벡터로, 각 벡터의 크기는 d이다.
3개의 Layer 중에서 첫 두 레이어는 ReLU 활성화 함수를 사용하여 중간 레이어의 출력을 생성(특징 학습)한다.
마지막 레이어는 선형 변환을 수행하여 최종 예측 결과를 생성한다.
최종적으로 N개의 바운딩 박스 좌표(중심 좌표, 높이, 너비)와 N개의 클래스 레이블(Softmax를 통한 확률 기반 클래스)를 출력한다.
FFN(Feed-Forward Network): 입력 데이터를 받아서 여러 층을 거쳐 출력을 생성하는 구조
선형 변환과 비선형 활성화 함수를 통해 특징 학습
해당 논문에서는 보조 손실을 사용하여 모델이 각 클래스의 객체 수를 정확하게 예측하도록 돕는다.
이는 모델이 각 클래스별로 적절한 수의 객체를 출력할 수 있도록 하는 데 유용하다.
구체적으로 각 Decoder layer 뒤에 예측 FFN과 헝가리안 손실(Hungarian Loss)을 추가하였다.
해당 논문에서는 여러 가지 비교를 수행하였는데, 나는 이 중에서 인상 깊었던 부분만 정리하도록 하겠다.
단순히 Faster R-CNN과 비교해본 결과이다.
여기서 DETR/DETR-DC5는 백본을 ResNet-50으로 DETR-R101/DETR-DC5-R101은 백본을 ResNet-101로 적용하였다는 것을 의미한다.
또한 DC5는 백본 마지막에 Dilation을 추가해준 것을 의미한다.

결론적으로 큰 객체에 대해서는 Faster R-CNN에 비해 더 좋은 성능을 보이는 반면, 작은 객체에 대해서는 더 좋지 않은 성능을 보인다.
Transformer라는 것 자체의 특성상 일반 CNN에 비해 지역 정보보다는 전역적인 정보에 집중하는 경향이 있어 도출되는 결과이다.
Encoder개수에 따른 분석이다.
layer가 없는 경우 있는 경우에 비해 4~5AP 가량의 성능 저하가 발생한다.
Encoder가 이미지 상에서 객체를 분리하는 역할을 하다 보니 해당 과정이 빠지게 되면 큰 객체에 대한 분리 성능이 특히나 크게 저하되는 것을 확인할 수 있다.

아래는 Decoder의 레이어 수에 따른 성능 비교이다.
여기선 추가적으로 NMS를 수행한 후에 결과까지도 포함하였는데,
이전에 Faster R-CNN은 NMS와 같은 작업을 수행해야만 하는 특징이 있었다면,
아래와 같이 DETR은 NMS를 수행해도 효과가 없다.
애초에 객체가 겹치게 예측을 하기 위한 이분 매칭을 수행하기 때문일 것이다.
또한 당연하게도 디코더 계층이 깊어질 수록 예측 정확도도 올라간다.
이는 계층이 깊어지고 파라미터가 많이 사용될 수록 성능이 좋아지는 Transformer의 주요 특징이기도 하다.

Encoder가 Global attention을 통해 이미지의 객체를 잘 구분하면, Decoder는 객체의 클래스와 경계를 잘 추출하는데 attention을 기울인다.
아래는 Positional Encoding 유무에 따른 성능 비교이다.
Positional Encoding을 사용하지 않고 Decoder에서 object query만 사용했을 때 AP가 7.8% 감소한다.
또한 모든 Attention layer에 object query를 추가하는 것과 비교했을 때 Decoder에 하나의 object query만 입력했을 때 AP 값이 1.4% 감소하는 것을 알 수 있다.
이 결과를 통해 DETR에서 positional encoding의 중요도가 큼을 알 수 있다.

slot: 모델이 이미지에서 특정 영역과 객체 크기를 예측하는 데 초점을 맞춘 단위
각 슬롯들은 다른 영역과 상자 크기에 초점을 맞춘다.
DETR은 다양한 유형의 객체를 더 정확하게 예측할 수 있음을 보여준다.

해당 논문에서는 DETR을 Panoptic Segmentation까지도 확장해서 사용하였다.
Panoptic Segmentation은 Semantic Segmentation과 Instance Segmentation을 결합한 개념으로 객체의 클래스와 인스턴스를 함께 구분한다.
수행 과정은 아래와 같다.
DETR의 Decoder의 출력(object query)가 encoder의 출력에 의해 인코딩되고 attention이 수행된다.
획득한 Attention map을 기반으로 다양한 해상도의 feature map을 사용하여 연산을 통해 masked image를 얻는다.
masked image의 각 픽셀에 argmax를 적용하여 특정 객체로 분류를 수행한다.

아래는 Panoptic segmentation의 결과이며,

이때 객체의 종류별로 Panoptic segmentation을 따로 수행하였다.
DETR은 Stuff class에 대해 우수한 성능을 보인다.
이 또한 Transformer가 전역 정보를 잘 활용하는 것 때문일 것이다.
DETR에 대해 정리하면 아래와 같다.
DETR은 global 정보 학습을 위해 바이너리 매칭과 Transformer를 기반으로 Direct Set Prediction을 적절히 활용한 Object detection 시스템
잘 알려진 object detection model인 Faster R-CNN과 유사한 성능
end-to-end 학습이 가능한 모델
구현하기 쉽고, panoptic segmentation 작업을 수행할 수 있는 유연한 구조
워낙에 잘 알려져 있던 논문이라 참고할 자료가 되게 많았던 것같다.
대학원 수업에서 DETR 논문 발표 기회가 생겨서 운좋게 더 자세히 읽을 시간이 생겨서 읽게 되었는데 Object detection을 transformer구조로 해석하고 동시에 panoptic segmentation까지 확장할 수 있어 잘 알려지게 된 모델인 것같다.
Computer vision쪽에서 연구를 수행하는 사람들에게는 꼭 한번은 읽어보아야할 논문이 아닐까 싶었다!😊👍