DETR의 encoder는 다음과 같이 작동한다.

  1. Backbone CNN에서 나온 feature map을 “HW개의 위치 토큰”으로 펼친다.
  2. 각 위치에 “이 위치가 어디인지”를 나타내는 positional encoding을 더한다.
  3. 이 위치들에 대해 여러 층의 multi-head self-attention을 반복 적용한다.

이 때 self-attention 한 층에서 하는 일은 개략적으로 다음과 같다.

이 과정을 여러 층 반복하면

결국 Encoder는

“이미지 전체를 본 뒤, 각 위치가 어떤 물체/배경에 속하는지 구분이 잘 되는 표현 공간으로 재배열하는 역할”

을 한다.