기존에 이미지에서 객체를 검출하는 알고리즘으로 RCNN 계열, YOLO와 같은 딥러닝 모델이 있는데, 최근에는 Transformer를 적용한 Detection 방법이 많이 연구되고 있다. 특히 End-to-End Object Detection with Transformers[1]는 Transformer를 Object Detection에 적용하는 방식을 처음으로 제안했다. Transformer 기반의 Detection 방법에 대한 베이스 논문으로 볼 수 있다. DETR(End-to-End Object Detection with Transformers)은 "DEtection TRansformer"의 약자로, Facebook AI에 의해 개발되었다.
Transformer를 적용한 Object Detection 방법의 장점으로는 RCNN 계열처럼 중간에 객체가 있을법한 영역을 먼저 추출하는 Region Proposal Network(RPN)이나 Anchor Generation이 필요없고, 후보 영역의 중복을 해소하는 Non Maximum Suppresion 같은 후처리 단계없이 바로 물체 집합을 검출할 수 있다.
DETR은 object detection을 직접적인 set prediction (집합 예측)으로 보고 검출한다. set 기반의 global loss 함수를 사용하여 bipartite matching을 통해 고유한 예측을 강제한다.
그림 1은 DETR 모델의 구조이다. 크게 (1) image feature를 추출하는 CNN backbone, (2) Transformer Encoder-Decoder (3) 최종 예측을 하는 Feed Forward Network로 나뉜다.
(1) CNN backbone
논문에서는 ResNet을 사용해서 이미지가 들어오면 h x w x C 형태의 feature map으로 변환합니다. 이 텐서에 1x1 convolution을 적용해서 채널의 개수를 C에서 d로 줄이고 h x w x d 텐서로 변환을 합니다. 여기서 h, w의 화소들을 Flatten으로 이어 붙여서 hw x d 행렬을 얻습니다. 이 행렬은 Transformer에 입력됩니다.
(2) Transformer Encoder-Decoder
DETR은 encoder-decoder 구조를 가지고 있습니다. CNN backbone을 통해 나온 입력 행렬은 encoder block을 거치게 됩니다. encoder block을 통해 변환된 행렬은 decoder의 multi head attention에 입력되어 key와 value 역할을 합니다.
decoder는 추출된 feature map을 사용하여 객체의 위치와 클래스를 예측합니다. 이때, Transformer의 Self-Attention 메커니즘을 사용하여 global 정보를 고려하며, 객체와 배경의 관계를 모델링합니다. 즉 Transformer의 인코더 부분은 CNN 특징 맵(feature map)을 입력으로 받아 컨텍스트 정보를 포함하는 새로운 feature map을 생성하고, 디코더 부분은 이 인코더 feature map과 객체의 위치 정보를 입력으로 받아 각 객체에 대한 bounding box와 클래스를 예측합니다.
(3) Feed Forward Network
decoder에서 출력된 행렬의 각 행을 Fully Connected로 통과시켜 box 정보로 변환합니다. 여기서 검출된 box 정보들은 실제 정답 box와 헝가리안 알고리즘을 이용해 최적 매칭 쌍을 구합니다. 최종적으로 예측하게 되는 정보는 좌표 (x, y), height, width, class가 됩니다.
Dataset
데이터셋은 논문에서는 COCO2017 Detection과 panoptic segmentation 데이터셋을 사용했다고 합니다. (약 118,000 장의 학습용 이미지와 5,000장의 validation 이미지) 하나의 이미지당 평균 7개정도의 객체가 있으며, 최대 63개의 객체가 있다고합니다.
DETR는 객체 검출에 대한 새로운 관점을 제시하며, 그 성능과 간결함으로 인해 많은 주목을 받았고, 의미있는 논문이라고 할 수 있습니다. 그러나 DETR는 아직 빠른 추론 속도를 필요로 하는 실시간 애플리케이션에는 적합하지 않을 수 있습니다.
'Computer Vision' 카테고리의 다른 글
Semantic Segmentation 개요:개체 영역 식별에 대한 소개 및 주요 문제 (0) | 2023.06.08 |
---|---|
MatCha - 차트 vision-language 추론 모델 (0) | 2023.05.30 |
Vision Transformer (0) | 2023.05.23 |
Text Detection : Arbitrary Shape Text Detection via Boundary Transformer (TextBPN++) 논문 리뷰 (0) | 2023.05.23 |
딥러닝 모델 경량화 방법 (0) | 2023.05.15 |