Abstract
본 논문에서는 Transformer 기반 detector인 DINO에 grounded pre-training을 결합하여, Grounding DINO라고 불리는 open-set object detector를 개발한다. 이 모델은 category name이나 referring expression과 같은 사람이 입력한 언어 정보를 바탕으로 임의의 객체를 탐지할 수 있다. Open-set object detection의 핵심 해결책은 closed-set detector에 language를 도입하여 open-set concept generalization을 가능하게 하는 것이다. Language modality와 vision modality를 효과적으로 융합하기 위해, 우리는 개념적으로 closed-set detector를 세 단계로 나누고, feature enhancer, language-guided query selection, cross-modality decoder를 포함하는 tight fusion solution을 제안한다.
우리는 먼저 object detection data, grounding data, caption data를 포함한 대규모 dataset으로 Grounding DINO를 pre-train하고, open-set object detection benchmark와 referring object detection benchmark 모두에서 모델을 평가한다. Grounding DINO는 COCO, LVIS, ODinW, RefCOCO/+/g benchmark를 포함한 세 가지 setting 모두에서 매우 우수한 성능을 보인다. Grounding DINO는 COCO zero-shot detection benchmark에서 52.5 AP를 달성한다. 또한 ODinW zero-shot benchmark에서 평균 26.1 AP로 새로운 기록을 세운다. 우리는 일부 checkpoint와 inference code를 https://github.com/IDEA-Research/GroundingDINO 에 공개한다.
Introduction
Artificial General Intelligence(AGI) 시스템의 능력을 보여주는 핵심 지표 중 하나는 open-world scenario를 얼마나 잘 처리할 수 있는가이다. 본 논문에서는 사람이 입력한 언어 정보로 지정된 임의의 객체를 탐지할 수 있는 강력한 시스템을 개발하는 것을 목표로 한다. 이러한 task는 일반적으로 open-set object detection이라고 불린다. 이 task는 generic object detector로 활용될 수 있는 잠재력이 크기 때문에 다양한 응용 가능성을 가진다. 예를 들어, generative model과 결합하여 image editing에 활용할 수 있다. 이러한 목표를 달성하기 위해, 우리는 두 가지 원칙을 바탕으로 강력한 open-set object detector인 Grounding DINO를 설계한다. 그 두 가지 원칙은 DINO 기반의 tight modality fusion과 concept generalization을 위한 large-scale grounded pre-train이다.
ⓐ Tight modality fusion based on DINO
Open-set detection의 핵심은 보지 못한 객체에 대한 일반화를 위해 language를 도입하는 것이다. 기존의 대부분 open-set detector는 language information을 활용하여 closed-set detector를 open-set scenario로 확장하는 방식으로 개발되었다. closed-set detector는 일반적으로 세 가지 중요한 module로 구성된다. feature extraction을 위한 backbone, feature enhancement를 위한 neck, 그리고 region refinement 또는 box prediction을 위한 head이다. Closed-set detector는 language-aware region embedding을 학습함으로써 새로운 객체를 탐지할 수 있도록 일반화될 수 있다. 이를 통해 각 region은 language-aware semantic space 안에서 새로운 category로 분류될 수 있다. 이 목표를 달성하는 핵심은 neck output 및/또는 head output에서 region output과 language feature 사이에 contrastive loss를 사용하는 것이다.

모델이 cross-modality information을 정렬하도록 돕기 위해, 일부 연구들은 최종 loss 단계 이전에 feature를 fusion하려고 시도했다. Feature fusion은 세 단계에서 수행될 수 있다. 첫째, neck 단계인 phase A, 둘째, query initialization 단계인 phase B, 셋째, head 단계인 phase C이다. 예를 들어, GLIP은 neck module에서 early fusion을 수행하고, OV-DETR은 language-aware query를 head input으로 사용한다. 우리는 pipeline에 더 많은 feature fusion을 도입하면 서로 다른 modality feature 사이의 alignment가 더 잘 이루어지고, 그 결과 더 좋은 성능을 얻을 수 있다고 주장한다.
개념적으로는 단순하지만, 기존 연구가 세 단계 모두에서 feature fusion을 수행하기는 어렵다. Faster RCNN과 같은 고전적인 detector의 구조는 대부분의 block에서 language information과 상호작용하기 어렵게 만든다. 고전적인 detector와 달리, DINO와 같은 Transformer-based detector는 language block과 일관된 구조를 가진다. Layer-by-layer 설계 덕분에 language information과 쉽게 상호작용할 수 있다. 이러한 원칙에 따라, 우리는 neck, query initialization, head 단계에서 세 가지 feature fusion 방식을 설계한다. 더 구체적으로는, self-attention, text-to-image cross-attention, image-to-text cross-attention을 쌓아 feature enhancer를 neck module로 설계한다. 그 다음 detection head의 query를 초기화하기 위해 language-guided query selection 방법을 개발한다. 또한 query representation을 강화하기 위해 image와 text cross-attention layer를 포함하는 cross-modality decoder를 head 단계에 설계한다.
ⓑ Large-scale grounded pre-train for zero-shot transfer
기존의 대부분 open-set model은 concept generalization을 위해 pre-trained CLIP model에 의존한다. 그러나 image-text pair로 pre-train된 CLIP의 효과는 region-text pair detection task에서는 제한적이며, 이는 RegionCLIP 연구에서도 지적되었다. 반면 GLIP은 object detection을 phrase grounding task로 재구성하고, 대규모 data에서 object region과 language phrase 사이의 contrastive training을 도입하는 다른 방식을 제시한다. 이 방식은 heterogeneous dataset에 대해 높은 유연성을 보이며, closed-set detection과 open-set detection 모두에서 뛰어난 성능을 보인다.
우리는 이러한 grounded training 방법론을 채택하고 개선하였다. GLIP의 방식은 모든 category를 random order로 하나의 sentence에 연결하는 것이다. 그러나 category name을 단순히 이어 붙이는 방식은 feature를 추출할 때 서로 관련 없는 category들이 서로에게 미칠 수 있는 영향을 고려하지 않는다. 이 문제를 완화하고 grounded training 동안 model performance를 향상시키기 위해, 우리는 sub-sentence level text feature를 활용하는 기법을 도입한다. 이 기법은 word feature extraction 과정에서 관련 없는 category 사이의 attention을 제거한다.
우리는 Grounding DINO를 large-scale dataset으로 pre-train하고, COCO와 같은 주요 object detection benchmark에서 성능을 평가한다. 일부 연구들은 open-set detection model을 “partial label” framework 아래에서 검토해 왔다. 즉, data의 일부 subset, 예를 들어 base category로 학습하고, 추가 category에서 test하는 방식이다. 그러나 우리는 실제 활용 가능성을 높이기 위해 fully zero-shot approach를 지향한다. 또한 우리는 object가 attribute와 함께 설명되는 또 다른 중요한 scenario인 Referring Expression Comprehension (REC)로 모델을 확장한다.
우리는 closed-set detection, open-set detection, referring object detection의 세 가지 setting 모두에서 실험을 수행하여 open-set detection 성능을 종합적으로 평가한다. Grounding DINO는 경쟁 모델들을 큰 차이로 능가한다. 예를 들어, Grounding DINO는 COCO training data를 전혀 사용하지 않고도 COCO minival에서 52.5 AP를 달성한다. 또한 ODinW zero-shot benchmark에서 26.1 mean AP로 새로운 state-of-the-art를 달성한다.
Related Work
ⓐ Detection Transformers
Grounding DINO는 DETR-like model인 DINO를 기반으로 한다. DINO는 end-to-end Transformer-based detector이다. DETR은 몇 년 동안 다양한 방향에서 개선되어 왔다. DAB-DETR은 더 정확한 box prediction을 위해 anchor box를 DETR query로 도입하였다. DN-DETR은 bipartite matching을 안정화하기 위해 query-denoising 방식을 제안하였다. DINO는 contrastive de-noising을 포함한 여러 기법을 추가로 발전시켰으며, COCO object detection benchmark에서 새로운 기록을 세웠다. 그러나 이러한 detector들은 주로 closed-set detection에 초점을 맞추고 있으며, 제한된 pre-defined category 때문에 novel class로 일반화하기 어렵다.
ⓑ Open-Set Object Detection
Open-set object detection은 기존 bounding box annotation을 사용해 학습되며, language generalization의 도움을 받아 임의의 class를 탐지하는 것을 목표로 한다. OV-DETR은 CLIP model로 encoding된 image embedding과 text embedding을 query로 사용하여 DETR framework 안에서 category-specific box를 decoding한다. ViLD는 CLIP teacher model의 knowledge를 R-CNN-like detector로 distillation하여, 학습된 region embedding이 language semantics를 포함하도록 만든다. GLIP은 object detection을 grounding problem으로 공식화하고, 추가 grounding data를 활용하여 phrase level과 region level에서 aligned semantics를 학습하도록 돕는다. 이러한 formulation은 fully-supervised detection benchmark에서도 더 강한 성능을 달성할 수 있음을 보여준다. DetCLIP은 large-scale image captioning dataset을 포함하고, 생성된 pseudo label을 사용해 knowledge database를 확장한다. 이렇게 생성된 pseudo label은 generalization ability를 확장하는 데 효과적으로 도움을 준다.
그러나 기존 연구들은 multi-modal information을 일부 phase에서만 fusion하기 때문에, language generalization ability가 sub-optimal해질 수 있다. 예를 들어, GLIP은 feature enhancement 단계인 phase A에서만 fusion을 고려하고, OV-DETR은 decoder input 단계인 phase B에서만 language information을 주입한다. 또한 REC task는 open-set detection에서 중요한 scenario임에도 불구하고, 일반적으로 evaluation에서 간과되어 왔다. 우리는 Table 1에서 본 모델을 다른 open-set method들과 비교한다.
Grounding DINO
Grounding DINO는 주어진 (Image, Text) pair에 대해 여러 개의 object box와 noun phrase 쌍을 출력한다. 예를 들어, 모델은 입력 이미지에서 cat과 table을 위치시킨 뒤, 입력 text에서 cat과 table이라는 단어를 해당 label로 추출한다. Object detection task와 REC task는 모두 이 pipeline에 맞게 정렬될 수 있다. GLIP을 따라, object detection task에서는 모든 category name을 하나로 이어 붙여 input text로 사용한다. REC는 각 text input에 대해 하나의 bounding box를 요구한다. 우리는 REC task의 output으로 score가 가장 큰 output object를 사용한다.
Grounding DINO는 dual-encoder-single-decoder architecture이다. 이 구조는 image feature extraction을 위한 image backbone, text feature extraction을 위한 text backbone, image와 text feature fusion을 위한 feature enhancer, query initialization을 위한 language-guided query selection module, 그리고 box refinement를 위한 cross-modality decoder로 구성된다.

각 (Image, Text) pair에 대해, 먼저 image backbone과 text backbone을 사용하여 각각 vanilla image feature와 vanilla text feature를 추출한다. 이 두 vanilla feature는 cross-modality feature fusion을 위해 feature enhancer module에 입력된다. Cross-modality text feature와 image feature를 얻은 뒤에는, language-guided query selection module을 사용하여 image feature에서 cross-modality query를 선택한다. 대부분의 DETR-like model에서 사용하는 object query와 마찬가지로, 이러한 cross-modality query는 cross-modality decoder에 입력되어 두 modality feature로부터 원하는 feature를 탐색하고 자기 자신을 업데이트한다. 마지막 decoder layer의 output query는 object box를 예측하고, 이에 대응하는 phrase를 추출하는 데 사용된다.
ⓐ Feature Extraction and Enhancer
주어진 (Image, Text) pair에 대해, 우리는 Swin Transformer와 같은 image backbone을 사용하여 multi-scale image feature를 추출하고, BERT와 같은 text backbone을 사용하여 text feature를 추출한다. 기존 DETR-like detector를 따라, multi-scale feature는 서로 다른 block의 output에서 추출된다.
Vanilla image feature와 text feature를 추출한 뒤, 이들을 cross-modality feature fusion을 위해 feature enhancer에 입력한다. Feature enhancer는 여러 개의 feature enhancer layer로 구성된다. 우리는 image feature를 강화하기 위해 Deformable self-attention을 사용하고, text feature enhancer에는 일반적인 self-attention을 사용한다. GLIP에서 영감을 받아, feature fusion을 위해 image-to-text cross-attention과 text-to-image cross-attention module을 추가한다. 이러한 module은 서로 다른 modality의 feature를 정렬하는 데 도움을 준다.
ⓑ Language-Guided Query Selection
Grounding DINO는 input text로 지정된 객체를 이미지에서 탐지하는 것을 목표로 한다. Object detection을 guide하는 데 input text를 효과적으로 활용하기 위해, 우리는 input text와 더 관련 있는 feature를 decoder query로 선택하는 language-guided query selection module을 설계한다.
Image feature를 , text feature를 라고 하자. 여기서 는 image token의 수, 는 text token의 수, 는 feature dimension을 의미한다. 우리의 실험에서는 feature dimension으로 을 사용한다. 일반적으로 우리 모델에서 값은 10,000을 초과하는 반면, 는 256보다 작다. 우리의 목표는 decoder의 input으로 사용하기 위해 encoder의 image feature에서 개의 query를 추출하는 것이다. DINO 방법을 따라, 우리는 를 900으로 설정한다.
Image feature에 대한 상위 개의 query index를 라고 할 때, 이는 다음 식으로 선택된다.
이 식에서 는 상위 개의 index를 선택하는 연산을 의미한다. 함수는 dimension을 따라 max 연산을 수행하며, 기호 는 matrix transposition을 의미한다. 우리는 Algorithm 1에서 PyTorch 스타일로 query selection 과정을 제시한다.
Language-guided query selection module은 개의 index를 출력한다. 우리는 선택된 index를 기반으로 feature를 추출하여 query를 초기화할 수 있다. DINO를 따라, decoder query를 초기화하기 위해 mixed query selection을 사용한다. 각 decoder query는 각각 content part와 positional part의 두 부분으로 구성된다 . Positional part는 dynamic anchor box로 구성되며, encoder output으로 초기화된다. 나머지 부분인 content query는 training 과정에서 learnable하게 설정된다.
ⓒ Cross-Modality Decoder
우리는 image와 text modality feature를 결합하기 위해 cross-modality decoder를 개발한다. 각 cross-modality query는 cross-modality decoder layer마다 self-attention layer, image feature를 결합하기 위한 image cross-attention layer, text feature를 결합하기 위한 text cross-attention layer, 그리고 FFN layer에 입력된다.
각 decoder layer는 DINO decoder layer와 비교했을 때 추가적인 text cross-attention layer를 가진다. 이는 더 나은 modality alignment를 위해 query 안에 text information을 주입해야 하기 때문이다.
ⓓ Sub-Sentence Level Text Feature
기존 연구에서는 두 종류의 text prompt가 탐구되었으며, 우리는 이를 sentence level representation과 word level representation이라고 부른다.

Sentence level representation은 전체 sentence를 하나의 feature로 encoding한다. Phrase grounding data의 일부 sentence가 여러 phrase를 포함하는 경우, 이 방식은 해당 phrase들을 추출하고 나머지 word는 버린다. 이 방식은 word 사이의 영향을 제거하지만, sentence 안의 fine-grained information을 잃게 된다.
Word level representation은 하나의 forward 과정에서 여러 category name을 encoding할 수 있게 한다. 그러나 이 방식은 category 사이에 불필요한 dependency를 도입한다. 특히 input text가 여러 category name을 임의의 순서로 연결한 형태일 때 문제가 된다. 일부 관련 없는 word이 attention 과정에서 서로 상호작용한다. 이러한 원치 않는 word interaction을 피하기 위해, 우리는 관련 없는 category name 사이의 attention을 차단하는 attention mask를 도입하며, 이를 sub-sentence level representation이라고 부른다. 이 방식은 fine-grained understanding을 위한 per-word feature는 유지하면서, 서로 다른 category name 사이의 영향을 제거한다.
ⓔ Loss Function
기존 DETR-like 연구들을 따라, 우리는 bounding box regression을 위해 L1 loss와 GIOU loss를 사용한다. Classification을 위해서는 GLIP을 따라 predicted object와 language token 사이의 contrastive loss를 사용한다.
구체적으로, 각 query와 text feature 사이의 dot product를 계산하여 각 text token에 대한 logit을 예측하고, 이후 각 logit에 대해 focal loss를 계산한다. Box regression cost와 classification cost는 먼저 prediction과 ground truth 사이의 bipartite matching에 사용된다. 그런 다음, 동일한 loss component를 사용하여 ground truth와 matched prediction 사이의 최종 loss를 계산한다. DETR-like model을 따라, 각 decoder layer 이후와 encoder output 이후에 auxiliary loss를 추가한다.
Conclusion
본 논문에서는 Grounding DINO 모델을 제시하였다. Grounding DINO는 DINO를 open-set object detection으로 확장하여, text를 query로 주었을 때 임의의 객체를 탐지할 수 있게 한다. 우리는 open-set object detector의 설계를 검토하고, cross-modality information을 더 잘 융합하기 위한 tight fusion approach를 제안하였다. 또한 detection data를 text prompt로 더 합리적으로 사용하기 위해 sub-sentence level representation을 제안하였다.
실험 결과는 우리의 model design과 fusion approach가 효과적임을 보여준다. 더 나아가, 우리는 open-set object detection을 REC task로 확장하고 이에 대한 평가도 수행하였다. 우리는 기존 open-set detector들이 fine-tuning 없이 REC data에 대해 잘 작동하지 않는다는 것을 보였다. 따라서 향후 연구에서는 REC zero-shot performance에 더 많은 관심을 기울일 필요가 있음을 강조한다.
Limitations:
Open-set object detection setting에서 우수한 성능을 보였음에도 불구하고, Grounding DINO는 GLIPv2처럼 segmentation task에는 사용할 수 없다. 또한 우리의 training data는 가장 큰 GLIP model보다 적기 때문에, 최종 성능에 제한이 있을 수 있다. 더불어, 우리는 모델이 일부 경우에 false positive 결과를 생성한다는 것을 발견했으며, 이러한 hallucination을 줄이기 위해서는 추가적인 technique이나 data가 필요할 수 있다.
Social Impacts:
본 모델과 같은 deep learning model의 사용은 adversarial attack에 취약할 수 있다. 또한 모델 출력의 정확성과 올바름이 항상 보장되는 것은 아니다. 더불어, 모델의 open-set detection 능력이 불법적인 목적으로 악용될 위험도 존재한다.