Search
Duplicate

AI/ DEtection TRansformat(DETR)

DEtection TRansformat(DETR)

DETR은 object detection에 Transformer를 활용한 모델을 말한다. 이것은 Anchor box를 사용하고 예측한 결과에 대해 중복을 제거하는 Non-Maximum Suppression 같은 후처리 작업을 포함하는 기존 object detection Model과 달리 object의 위치를 직접 예측하여 별도의 후처리 없이 (cx, cy, width, height, class_label)을 출력하는 모델이다.
후처리가 없기 때문에 모델의 파이프라인이 매우 단순해져서 end-to-end로 모델을 학습시킬 수 있고, CNN backbone의 transformer 구조를 사용하는 어느 프레임워크에도 적용할 수 있다는 확장성도 갖는다.
전체 아키텍쳐는 아래 그림 참조. CNN backbone에서 시작해서 transformer의 encoder-decoder를 통과한 후에 마지막에 feed-forward network로 prediction한다. CNN backbone으로 입력 이미지에서 feature를 추출하고 해당 feature에 (positional encoding을 추가하여) Transformer의 입력으로 사용하기 때문에 ViT와 달리 입력을 patch 단위로 나누어 처리하지 않는다.
모델의 성능 또한 기존 object detection 모델과 비교 가능한 속도와 성능을 제시했고, panoptic segmentation에 대해서도 기존 모델을 능가하는 성능을 제시했음. (panoptic segmentation이란 pixel level로 segmentation하면서 개별 instance도 구별하는 작업을 의미한다. 따라서 동일한 사람이라도 각각 다른 instance에 pixel level로 할당됨)
Transformer 아키텍쳐를 사용하여 병렬로 처리된다는 장점을 가졌지만, 출력 또한 병렬로 나오기 때문에, 출력 결과가 어떤 object를 지칭하는 것인지 알기 위해 Bipartite Matching(참고 자료)을 별도로 수행해줘야 한다. 이때 Bipartite Matching은 Hungarian 알고리즘 같은 것을 사용할 수 있다. (여기서 Bipartite Matching은 단순히 object를 찾기 위한 것이고 학습되는 부분이 아니다.)
Bipartite Matching을 통해 모델의 예측한 결과가 어떤 object에 대한 것인지 알아내면, 그 object에 대한 모델의 bounding box와 class_label의 예측 결과를 ground-truth의 bounding box와 class_label과 각각 비교하고 합산하여 loss를 계산하고 역전파 하여 학습한다. Bipartite Matching과 loss 계산에 대한 상세한 식은 아래 참고의 논문 페이지 참조.

참고