• Authors: Shilong Liu, Zhaoyang Zeng, Tianhe Ren, Feng Li, Hao Zhang, Jie Yang, Qing Jiang, Chunyuan Li, Jianwei Yang, Hang Su, Jun Zhu, Lei Zhang
• Published: ECCV, 2024.
1. Introduction
저자들은 Artificial General Inteligence(AGI)의 핵심 지표로 얼마나 open-world scenario를 능숙하게 다룰 수 있는지에 대해 언급하며 시작한다. 논문의 목표는 open-set object detection을 수행하기 위한 뛰어난 모델을 만드는 것이다. main contribution은 다음과 같다.
- Tight modality fusion based on DINO
- Large-scale grounded pre-train for zero-shot transfer
Tight modality fusion based on DINO
기존의 open-set detector를 만드는 방법으로 closed-set detector에 언어 정보를 결합해서 확장하는 방식을 많이 사용했다. Closed-set detector는 대개 feature를 추출하는 "Backone", feature enhancement를 수행하는 "Neck", 그리고 region refinement나 box prediction을 수행하는 "Head" 부분으로 구분된다.
보통 closed-set detector가 open-set detector가 되기 위한 generalized 탐지 성능을 얻기 위해선 language-aware region embedding을 학습해야한다. 이를 위해, 대개 Neck 혹은 Head의 출력에서 region output과 language feature를 사용하여 contrastive loss를 계산하는 방식을 사용한다.
또, 일부 연구에서는 이러한 embedding을 수월하게 하기 위해 최종 loss를 계산하기 직전에 image feature와 text feature를 결합하는 Feature fusion을 수행했다.
💡Language-aware region embeddings
Language information을 반영하여 region output을 보강하는 임베딩 방식. language-aware semantic space라는 공간에서 Image feature와 text feature가 비슷한 값(혹은 위치)를 갖도록 두 feature를 가공.
이러한 방법의 한 예시로, 논문에서 언급된 neck이나 head(혹은 두 곳 모두에서) region outputs과 language feature간의 Contrastive loss를 계산하는 것으로 위와 같은 효과를 얻을 수 있음.
비슷한 방식으로, 저자들도 아래의 그림처럼 총 3가지 Phase에서 feautre간의 결합과 2번의 Contrastive loss를 계산하도록 모델을 설계했다.

- Phase A: GLIP처럼 neck module에서 feature fusion을 진행.
- Phase B: OV-DETR처럼 language-aware query를 head의 입력으로 사용.
- Phase C: Head에서 feature fusion을 진행.
저자들은 파이프라인에 feature fusion이 많은 것이 서로 다른 modality 간의 alignment가 더 잘 되도록 도와주므로, 더 좋은 성능을 낼 수 있을 것이라고 한다.
Faster R-CNN 같은 clasical detector들은 대부분의 block에서 language information과 상호 작용하기 어려운 구조인 반면, DINO처럼 연속된 layer-by-layer 구조의 Transformer-based detector들은 상호 작용 구조를 만들기 용이했으므로 DINO 모델을 선택했다고한다.
Large-scale grounded pre-train for zero-shot transfer
대부분의 open-set detector들은 image-text 쌍으로 학습된 CLIP 모델을 사용하는 경우가 많은데, 저자들은 RegionCLIP 연구에서 시사된 것처럼 CLIP 기반의 모델은 region-text pair detection task에서 한계가 있다고 한다.
반면, GLIP은 object detection task를 일종의 pharse grounding task로 재구성했고, 대규모 데이터 셋을 사용하여 object region과 language pharse 간의 contrastive learning을 사용했다. 그 결과, closed-set과 open-set detection에서 놀라운 성능을 보여줬다. 저자들은 이러한 결과 주목해서 GLIP의 방식을 일부 수정하여 사용했다.
GLIP의 기존 방식은 '모든 카테고리'를 '하나의 문장'에 랜덤한 순서로 결합하여 하나의 문장으로 만들었다. 저자들은 이러한 방식이 feature extraction에서 서로 무관한 카테고리가 서로에게 줄 수 있는 잠재적인 영향에 대해 고려하지 못한다고 판단했고, 이 문제를 해결하기 위해 성능을 높이기 위해 sub-sentecne level text feature를 사용하는 기술을 도입했다.
결과적으로, Closed-set, Open-set dataset 그리고 REC(Referring Expression Comprehension) task에서 모두 큰 격차로 높은 성능을 보여줬다.
2. Related Work
Detection Transformers
Grounding DINO는 "DETR-like" model인 DINO를 기반으로 만들어진 모델이다. DINO 뿐만 아니라 "DAB-DETR"나 "DN-DETR"등 DETR-like model들은 많이 있지만, 이러한 detector들은 closed-set detection에 대해서만 연구되었거나, 사전에 정의된 카테고리라는 한계 때문에 generalization이 어렵다는 한계점이 있다.
Open-set Object detection
Open-set detection은 기존에 정의된 bounding box annotations과 language generalization을 통해 무작위 class를 detection 하는 것이다. 이와 관련하여 CLIP 기반 (OV-DETR) 혹은 GLIP과 같이 open-set detection에 관한 연구들이 진행되었지만, 대부분 부분적으로 일부 phase에서만 (GLIP은 phase A, OV-DETER는 phase B에서만) image-text feature fusion을 수행하였다. 저자들은 이러한 점들이 language generalization 성능에 있어서 sub-optimal한 상태를 불러올 수 있다고 주장한다.
3. Grounding DINO
Grounding DINO는 (Image, Text) 쌍을 입력으로 받아서, 다양한 bounding boxes와 noun pharse를 출력한다. 전체 모델 architecture는 다음과 같다.

3.1 Feature Extraction and Enhancer
Grounding DINO는 2개의 Encoder와 1개의 Decoder로 구성된다. 처음에는 Swin-Transformer와 같은 image backbone을 통해 multi-scale vanila image features를, BERT같은 text backbone을 사용하여 vanila text features를 추출한다. 그리고 추출된 feature를 feature enhancer에 입력하여 cross-modality feature fusion을 수행한다.
Feature enhancer의 구조는 Fig. 3의 block 2에 나와있다. Image-to-text Cross attention과 Text-to-image Cross attention은 GLIP의 아이디어를 참고했고, 이 구조를 통해 서로 다른 modality의 적합한 alignment를 할 수 있다.
3.2 Language-Guided Query Selection
Grounding DINO는 입력 text로부터 구체화된 정보를 가지고 이미지에서 object를 탐지하는 것이 목표다. Text 정보가 보다 수월하게 detection을 도와주기 위해서는 저자들은 "Language guided query selection module"을 구성했다.
이 module은 decoder queries에 적합한 feature들을 선택하는데 도움을 준다. 이 모듈을 수식으로 나타내면 아래와 같다.
$$ \mathbf{I}_{N_q} = \mathrm{Top}_{N_q}\left( \mathrm{Max}^{(-1)}\left( \mathbf{X}_I \mathbf{X}_T^{\mathrm{T}} \right) \right).
$$
수식을 살펴보면, $ \mathbf{X}_I $는 image backbone(Swin-Transformer)로부터 추출된 $N_{I}$ 개의 token을 갖는 image feature map이다. $ \mathbf{X}_T $는 text backbone(BERT)로부터 생성된 $N_{T}$ 개의 text feature다. 이 두 개의 값에 대해 inner product를 통해 similarity를 계산하여 그중에서 가장 높은 top $N_{q}$개 위치를 고르고, 나머지는 버린다.
여기서 선정된 값 $ \mathbf{I}_{N_q} $(similarity가 높게 나왔던 값들의 인덱스들)는 deocoder query initialization에 사용된다. 여기서 similarity가 높다는 것은 그 image token이 text와 관련이 있다는 것을 의미한다. 즉, 텍스트와 유의미한 관련이 있는 image feature 값들 어디에 있는지를 파악해서 decoder query의 초기값으로 사용한다는 것이다.
이 일련의 과정이 저자들이 구성한 Language-guided query selection이다.
저자들은 DINO처럼 "Mixed query selection"을 decoder query initialization에 사용했다. Decoder의 query는 "content" part와 "positional" part로 구성된다.
positional part는 dynamic anchor box들로 구성되었는데 앞서 설명한 selection 과정에서 생성된 $ \mathbf{I}_{N_q} $를 사용하여 DINO처럼 positional embedding을 통해 positional part에 해당하는 query를 만든다. 그리고 content part는 학습하며 업데이트되는 부분이다.
3.3 Cross-Modality Decoder
Initialized cross-modality query는 decoder에 있는 다양한 attention layer를 거쳐서 최종 출력에 도달한다. DINO와 decoder에 별도의 text cross attention layer가 있는데 이는 더 나은 modality alignment를 위한 것이다. (Phase C에 해당)
3.4 Sub-sentence Level Text Feature

선행 연구들에서는 "Sentence level"과 "Word level"의 representation 기법을 탐구했다. Fig. 4에서는 각각의 기법에 대한 간략한 설명을 보여준다.
먼저, sentence level의 경우 한 문장 전체를 하나의 feature로 encoding한다. 이때, 문장 안에 여러 pharse가 있다면, 각 pharse만 feature로 뽑고 나머지 word는 버리게 된다. 즉, 뽑힌 pharse 외의 word들은 버려지므로 원래 문장이 갖고있는 word간의 영향력이 떨어지게 된다.
반면, word level은 단어 단위로 feature를 뽑는 대신, 단어 간 순서, 위치 또는 함께 나온 단어 간의 관계도 같이 학습하게 되므로 임의의 순서로 연결된 경우, 단어 간의 불필요한 의존성이 발생해서 무관한 관계까지 feature에 섞이게 된다.
저자들은 이러한 두 방법론의 장단점에 주목하여 "Sub-sentence level representation"을 사용하였다. 이 방법은 category 이름 단위로 attention을 제한하여, word level에서 발생하는 무관한 관계끼리의 영향을 제거한다.
3.5 Loss function
다른 DETR-like 연구들처럼 bounding box regression에는 L1 loss와 GIOU loss를 사용했다
그리고 GLIP의 방법론을 따라 classification task에서 predicted objects와 language token 사이의 contrastive loss를 계산하여 학습하였다. 정확히는, 매 text feature의 query 마다 dot product를 수행해서 logits prediction을 수행하고 이 각각 logit마다 focal loss를 계산했다.
이렇게 계산된 box prediction regression cost와 classification costs를 기반으로 prediction과 ground truth 간의 Bipartite Matching을 수행하여 prediction된 bounding box와 class를 매칭시켰다. (DETR 모델처럼)
그리고 DETR처럼 encoder output과 deoder layer output에도 auxiliary loss를 추가했다.
4. Experiments
Grounding DINO는 크게 3가지 부분에서 성능을 비교하였다.
- Closed-set setting on the COCO detection benchmark
- Open-set setting on the zero-shot COCO, LVIS and ODinW
- Referring detection setting on RefCOCO/+/g
기본적으로 Image backbone으로 Swin-T와 Swin-L을 사용하였고, Text backbone으로는 BERT를 사용하였다.
COCO Detection Results

Zero-Sot Transfer of Grounding DINO (LVIS, ODinW)


Effects of RefC and COCO Data


5. Conclusion
Grounding DINO의 핵심 내용을 요약하면 다음과 같다.
- 기존의 DINO를 확장하여 text queryt 기반의 openset detection 모델을 제안.
- Tight modality fusion과 sub-sentence 활용을 도입한 성능 향상
- Open set detection 뿐만 아니라 REC task에도 적용 가능하며, zero-shot performance도 정량적으로 성능을 검증.
저자들이 생각하는 한계점은 GLIPv2처럼, segmentation task에서는 사용이 어렵다는 점과 학습 데이터 규모가 GLIP보다 작아서 성능이 제한적일 수 있다는 점. 그리고 이러한 학습 한계점으로 인해 False positive 문제가 발생할 수 있다는 점이 있다.
My Opinion
Grounding DINO 논문은 기존의 Closed-set detector인 DINO를 Open-set detector로 확장시키고 그 성능 결과를 정량적으로 분석한 논문이었다. 최근 Computer vision에서 많이 다루는 주제로 open-set이나 zero-shot 같은 키워드들이 있다고 생각하는데, Grounding DINO는 이러한 주제를 잘 담고있는 논문이라는 생각이 들었다.
내가 이해한 본 논문의 핵심 내용은 다음과 같다.
- DINO를 확장한 open-set detector architecture를 제안
- Text와 이미지, 즉 2가지 modality를 잘 융합하기 위한 구조(tight modality fusion)와 성능 향상을 위한 새로운 방법론(sub-sentence 활용)을 도입.
- Openset detector, REC 그리고 zero-shot task에 적용가능
토이 프로젝트를 했을 때, Grounding DINO로 object detection을 했었던 경험이 있다. 논문에서 제안한 것처럼 false positive case가 은근히 나오더라. 이때는, 프로젝트 초기기도 하고 데이터셋이 늘어나면서 다행히 해결되었지만 논문에서 말한 것처럼 데이터셋이 작으면 확실히 성능이 떨어진 건 맞는 것 같다.