논문 리뷰

[논문리뷰]Co-DETR: LVIS 데이터셋 SOTA

dohyeon2 2024. 10. 16. 15:00

목차

    안녕하세요 윤도현입니다. 오늘 소개할 논문은 2023년 ICCV에 개제된 DETRs with Collaborative Hybrid Assignments Training 일명 Co-DETR 이라는 논문입니다.

    먼저 제가 지금까지 다양한 Object Detection 모델이나 Instance Segmentation 모델을 테스트해보고 느낀점은 모델 re-train에 쓰인 데이터셋과 내 데이터셋이 유사(Class가 겹치거나 Annotation 형태가 비슷하거나)할 때 실제로도 좋은 성능이 나온다는 것이었습니다.

    그래서 제가 새로운 모델을 서칭하는 방법중 하나는 단순히 Papers with Code에서 성능지표가 가장 높은걸 찾기보다, 먼저 내 데이터셋과 유사(class or annotation 형태)한 Dataset을 pre-train한 모델을 찾는 것인데요. 그래서 COCO dataset과 동일한 이미지로 구성되어 있지만 더 세분화된 Class(1203개)를 갖고, 더 완성도 있고 다양한 annotation으로 구성된 LVIS를 찾았습니다. 결과적으로 제 학습 데이터셋과 유사한 LVIS v1.0 Dataset을 pre-Train한 논문들중에 가장 높은 mask AP를 보여주는 Co-DETR 이라는 논문을 리뷰하였습니다.

    (이해를 돕기 위해 제가 학습에 사용할 데이터셋은 아래와 같습니다. 천장에서 바라본 닭들의 모습인데요. 이를 annotation한 형태가 LVIS 데이터셋에서 Peanut, Banana, Donut class의 annotation 형태와 유사하다고 생각했습니다.)

    Fig 1. (좌) 천장에서 바라본 닭 데이터셋, (우) LVIS Banana, Peanut, Donut class annotation

    1. Introduction

    본 논문을 한마디로 정의하자면 "Deformable-DETR"의 decoder에서 적은 수의 positive query로 인해 학습이 잘 이뤄지지 않는다는 단점을 해결하기 위해 여러 auxiliary head를 추가함으로써 문제를 해결한 논문입니다. 결국 이 논문을 이해하기 위해서는 DETR, Deformable-DETR 두 가지 논문을 알아야 하는데요. 배경설명을 간단하게 드리겠습니다.

    • 기존 Object Detection 모델들은 이미지 내 고정된 지점마다 다양한 scale, aspect, ratio을 갖는 pre-defined anchor를 사용하였습니다.
    • 이후 anchor를 기반으로 생성한 여러개의 predicted-bbox와 ground truth bbox를 매칭합니다. 이때 하나의 ground truth bbox에 다수의 predicted bbox가 매칭되기 때문에 둘의 관계가 1: 다수 입니다.
    • 이렇게 학습된 모델 Inference 시, 다수의 후보군을 찾기 때문에 NMS와 같은 후처리 작업이 필요하다는 문제가 있었습니다.
    • 그래서 DETR이라는 논문에서는 이러한 pre-defined anchor를 사용하지 않고, ground truth bbox가 하나의 쿼리에만 할당되도록 하는 1:1 세트 매칭 방식을 도입하였습니다. (이를 위해 Hungarian algorithm 사용)
    • 하나의 ground truth를 예측하는 predicted bbox가 오직 하나이기 때문에 NMS와 같은 후처리 과정이 필요하지 않게 되었습니다.

    제가 정리한 DETR의 특징은 다음과 같습니다.

    • 트랜스포머의 self-attention을 통한 global information(전역 정보)를 활용함으로써 크기가 큰 객체를 faster rcnn보다 훨씬 잘 포착함
    • faster rcnn과 달리 anchor box, nms, region proposal과 같은 구성요소가 필요없음
    • 그러나 작은 객체 탐지 성능이 떨어지고, 학습시간이 매우 오래걸림

    이렇게 작은 객체를 잘 찾지 못하고, 학습시간이 오래걸리는 DETR의 문제를 해결하기 위해 Deformable-DETR이 발표되었습니다.

    Deformable-DETR에서는 다음과 같은 방법으로 기존 DETR의 문제를 해결하였습니다.

    • 첫째, 작은 객체를 잘 찾지 못하는 문제의 원인은 self-attention 매커니즘이 초기 단계에서 모든 픽셀에 대해 동일한 가중치를 부여하기 때문에, 작은 객체에 대해 충분히 학습하는게 불가능하다고 지적함
    • 더 자세하게는 작은 객체는 이미지 내에서 차지하는 비중이 적기 때문에, 초기 가중치가 동일하면 작은 객체가 충분한 attention을 받지 못하기 때문임
    • 이러한 문제를 해결하기 위해 Deformable Attention Module을 도입하였습니다.
    • Deformable attention module은 이미지 전체에 attention을 분산시키는 대신 참조점(reference point) 주위의 소수의 중요한 위치만 attention하는 방식으로 동작함
    • 또한 multi scale feature를 추출하여 각 스케일에서 중요한 위치만 attention함
    • 이를 통해 작은 객체가 있는 위치에 주의를 더 잘 집중할 수 있게되어 작은 물체도 잘 탐지할 수 있게됨
    • 둘째, 학습시간이 오래 걸리는 문제의 원인 또한 self-attention 매커니즘이 초기 단계에서 모든 픽셀에 대해 동일한 가중치를 주기 때문이라고 지적함.
    • 모든 픽셀에 대해 동일한 가중치를 줌으로써 결과적으로 객체가 있을법한 중요한 영역에 수렴하는데 오랜 시간이 걸리게 됨
    • 이러한 문제 또한 Deformable Attention Module로 해결함
    • Deformable Attention Module은 참조점 주위의 소수의 위치만을 샘플링해 주목하기 때문에, 전체 이미지를 대상으로 주의를 분산시키는 기존 방식보다 훨씬 적은 연산을 필요로하였음
    • 이를 통해 10배 더 적은 epoch로 DETR과 동일한 수준의 정확도를 얻었음

    이러한 Deformable-DETR에도 문제점은 존재했습니다. Deformable DETR은 1:1 세트 매칭을 사용하여 각 쿼리와 실제 객체(ground truth)를 연결합니다. 그러나 이 방식에서는 한 객체당 하나의 쿼리만 매칭되므로, **양성 쿼리(positive query)**의 수가 제한적입니다. 즉, 모델이 학습할 수 있는 양성 샘플의 양이 적어 학습 효율이 떨어진다는 문제점이 있었습니다.

    그래서 이러한 문제를 해결한 것이 본 논문인 Co-DETR 입니다. 해결방법은 3.method 부분에서 자세히 설명드리겠습니다.

    Fig 2. 기존 모델들의 Detection 과정
    Fig 3. DETR의 Detection 과정

    2. Related Works

    이 부분에서는 기존 1:다수 레이블 할당 방식과 1:1 세트 매칭 방식에 대한 배경지식을 제공합니다.

    (필요하신 분은 논문을 참고해주시면 감사하겠습니다.)

    3. Method

    3.1 Collaborative Hybrid Assignments Training

    fig 4. DETR Network Architecture

    그림을 보면서 순서대로 설명드리겠습니다. 기존의 DETR 모델은 다음과 같이 동작하였습니다.

    1. 먼저 입력 이미지가 backbone에 주어지면 feature map을 획득합니다.
    2. 획득된 feature map을 transformer encoder에 입력하여 latent feature를 획득합니다.
    3. 획득된 latent feature를 transformer decoder에 입력하여 물체의 정확한 위치와 클래스를 예측합니다.

    그러나 DETR은 앞서 설명드린대로 1:1 세트 매칭 방법을 사용하기 때문에 한 물체당 단 하나의 쿼리만 주어졌습니다. 그렇기 때문에 DETR 모델의 학습 과정에서 디코더(모델에서 물체를 예측하는 부분)가 물체에 대한 충분한 positive query를 받지 못해서 물체를 잘 찾지 못하게 되고, 인코더에게 올바른 피드백을 줄 수 없게되었습니다. 그 결과, 인코더(이미지에서 특징을 추출하는 부분)도 물체의 중요한 특징을 잘 잡아내지 못하게 되었고, 이 때문에 앞서 Introduction에서 말한대로 "decoder에서 적은 수의 positive query로 인해 학습이 잘 이뤄지지 않는 문제"가 발생하였습니다. 그렇다면 하나의 쿼리만 주어져서 positive query 갯수가 부족한게 문제라면 쿼리를 더 많이 주면 해결되지 않을까요?

    이렇게 디코더의 적은 수의 postive query로 인해 발생하는 인코더 출력에 대한 희박한 supervision을 완화하기 위해 본 논문에서는 다양한 1:다수 레이블 할당 패러다임(ATSS, Faster R-CNN)을 갖는 보조 헤드(auxiliary head)를 통합했습니다. 결과적으로 디코더의 부족한 positive query 개수를 보충해줌으로써, 인코더의 supervision 문제를 해결하였습니다.

    긍정쿼리(positive query)란?
    : 물체의 위치를 정확히 찾아내는 역할을 하는 정보

    보조헤드(auxiliary head)란?
    : ATSS, Faster R-CNN과 같은 1:다수 레이블 할당 방법을 사용하는 모델들을 말합니다. 보조 헤드는 하나의 물체에 여러 개의 긍정 쿼리를 할당할 수 있도록 도와줍니다. 예를들어, 하나의 물체에 대해 여러 위치를 긍정적으로 평가하고 훈련하는 방식을 말합니다.

    본 논문에서 쓰인 4가지 보조 헤드

    fig 4. Co-DETR Network Architecture

    새로운 Co-DETR 모델은 다음과 같이 동작합니다.

    1. 먼저 입력 이미지가 backbone에 주어지면 feature map을 획득합니다.
    2. 획득된 feature map을 transformer encoder에 입력하여 latent feature를 획득합니다

    3. 3.1 latent feature를 multi-scale adapter를 통해 feature pyramid {F1,⋯,FJ}로 변환합니다.
      3.2 정의된 K개의 보조 헤드는 레이블 할당 함수 Ak와 i번째 보조 헤드에 {F1,⋯,FJ}가 전송되어 예측 P^i를 얻습니다.
      3.3 레이블 할당함수 A로 예측값 P, 실제값 G를 비교하고 각 물체에 대해 한 개 이상의 좌표를 긍정으로 할당하고 나머지 좌표들을 부정으로 할당
    4. 디코더에서는 인코더로부터 전달받은 latent feature, 보조 헤드에서 전달받은 positive query들을 이용하여 물체의 정확한 위치와 클래스를 예측합니다

    레이블 할당함수 A(각 보조 헤드가 positive 및 negative를 어떻게 결정하는지 나타내는 수식)

    Ai: 레이블 할당함수

    Pi{pos}: i번째 보조 헤드에서 긍정적으로 할당된 예측 값들 (즉, 물체의 위치가 정확히 맞다고 판단된 값들)

    Bi{pos}: i번째 보조 헤드에서 긍정적으로 할당된 물체의 좌표들.

    Pi{neg}: i번째 보조 헤드에서 부정적으로 할당된 예측 값들 (즉, 물체가 없거나 잘못 예측된 값들).

    4. Experiments

    4.1 setup

    • Dataset: COCO 2017, LVIS v1.0, Objects365 사용
    • DETR 모델 파이프라인을 베이스라인으로 사용
    • k=2일 때, ATSS, Faster-RCNN을 보조 헤드로 채택함
    • K=1일 때, ATSS를 보조 헤드로 채택함
    • 학습 가능한 객체 쿼리의 수는 300으로 설정함
    • 손실함수의 가중치 λ1,λ2는 각각 1.0, 2.0으로 설정함

    4.2 Main Results

    • Table 2와 3에서 다양한 DETR 모델(Conditional, DAB, Deformable, DINO 등)들에 대한 Co-DETR 학습기법의 성능을 평가함
    • Co-DETR 학습기법을 적용했을 때, Conditional-DETR, DAB-DETR은 AP가 각각 2.4, 2.3 향상됨
    • Co-DETR 학습기법을 적용했을 때, Deformable-DETR은 epoch 12에서 AP가 5.8 향상됨(k=2)
    • Co-DETR 학습기법을 적용했을 때, Deformable-DETR은 epoch 36에서 AP가 3.5 향상됨(k=1)
    • Co-DETR 학습기법을 적용했을 때, Deformable-DETR++은 epoch 12에서 AP가 2.4 향상됨(k=2)
    • Co-DETR 학습기법을 적용했을 때, DINO-Deformable-DETR은 epoch 12에서 AP가 1.7 향상됨(k=2)

     

    4.3. Comparisons with the state-of-the-art

    • 심지어 LVIS 데이터셋에서 기존 EVA-02 model보다 AP가 2.7 가량 향상됨

    5. Conclusion

    • 본 논문은 Deformable-DETR 모델의 positive query 부족 문제를 단순히 보조 헤드를 추가함으로써 해결하였음
    • 단순히 기존 모델에 학습 모듈을 추가한 형태이기 때문에 본 논문에서 큰 novelty를 발견할 수는 없었습니다.

     

    6. 질문사항

    하정님 질문: CO-DETR에서 다수의 긍정쿼리를 사용한다고 했는데, 다수의 쿼리를 one to many로 학습할 때 k개의 쿼리가 각기 다르게 학습이 되는건가요? 아니면 동일한 가중치를 공유하나요? 

    윤도현 답변: 결론부터 말씀드리면, 각기 따로 학습됩니다. 각각의 보조헤드는 각각 개별적인 Network Model (Faster R-CNN, ATSS, RetinaNet, FCOS)들 이기 때문에 개별적으로 학습됩니다. 따라서 각각의 파라미터는 다르고, 각기 다른 Positive query를 생성하여 디코더에 전달합니다.
    추가적으로 각각의 네트워크 모델이 보조헤드로 붙어있는거면 네트워크가 엄청 커서 추론속도가 느린게 아닌가? 라고 생각할 수 있겠지만 아닙니다! 보조헤드들은 오직 "학습과정에서만" 추가적인 긍정 쿼리를 만들어서 인코더,디코더의 학습에 도움을 줍니다. 그런다음 Co-DETR 모델의 추론때에는 동작하지 않습니다.