Grounding DINO

Liu 2023 · 논문

한 줄 요약 — 자유 형식 텍스트 프롬프트로 기술된 임의의 물체를 긴밀한 언어-비전 Transformer 융합을 통해 찾아내는 open-set 객체 검출기로, 널리 쓰이는 Grounded SAM 파이프라인의 검출 담당 절반이다.

문제

표준 검출기(YOLO, DETR)는 닫힌 집합(closed-set)이다: 학습된 고정된 카테고리(예: 80개의 COCO 클래스)만 검출한다. Open-set 검출의 핵심은 언어를 도입하여 닫힌 집합 검출기가 보지 못한 개념으로 일반화되게 만드는 것이다 — 고정된 레이블 집합이 아니라 의미론적 공간에서 분류되는, 언어를 인식하는 영역 임베딩을 학습하는 것이다. 기존의 open-set 검출기는 두 모달리티를 부분적으로만 융합했다: GLIP은 넥(neck)에서만 융합하고(단계 A), OV-DETR은 디코더 입력에만 언어를 주입한다(단계 B). 이 논문의 주장은 융합이 검출기의 세 단계 전부 — 넥, 쿼리 초기화, 헤드 — 에서 일어나야 하며, 더 긴밀한 융합이 더 나은 open-set 일반화를 낳는다는 것이다.

방법 및 아키텍처

DINO(DETR 변형)를 기반으로 한 이중 인코더-단일 디코더 아키텍처다: 이미지 백본(Swin-T/Swin-L)이 다중 스케일 시각 특징을 추출하고, 텍스트 백본(BERT-base)이 프롬프트(연결된 모든 카테고리 이름, 또는 지시 표현)로부터 토큰 특징을 추출한다. 이어서 세 개의 융합 모듈이 따른다:

INq=TopNq(Max(1)(XIXT))\mathbf{I}_{N_q} = \texttt{Top}_{N_q}\big(\texttt{Max}^{(-1)}(\mathbf{X}_I \mathbf{X}_T^{\intercal})\big)

여기서 Max(1)\texttt{Max}^{(-1)}은 텍스트 차원에 대해 최댓값을 취한다. DINO의 혼합 쿼리 선택을 따라, 선택된 특징이 위치 부분(동적 앵커 박스)을 초기화하고 콘텐츠 쿼리는 학습 가능한 상태로 남는다.

부분 문장(sub-sentence) 텍스트 표현: 카테고리 이름을 이어붙이면 BERT 안에서 무관한 카테고리들이 서로 어텐션할 수 있게 되므로, 어텐션 마스크로 카테고리 간 어텐션을 차단하면서도 단어별 특징은 유지한다 — 문장 수준보다 세밀하고 단어 수준보다 깔끔하다.

학습: 박스에는 L1 + GIoU 손실을, 분류에는 GLIP을 따라 예측된 물체와 언어 토큰 사이의 대조 손실을 사용한다(각 쿼리는 박스 하나와 텍스트 토큰들과의 내적 유사도를 출력한다); Hungarian 매칭 비용은 2.0/5.0/2.0(cls/L1/GIoU), 손실 가중치는 1.0/5.0/2.0이다. 검출 + grounding (+ 캡션) 데이터로 학습한다. REC에서는 가장 높은 점수의 박스가 반환된다.

실험 결과

SLAM에서의 의미

Grounding DINO는 언어 기반 의미론적 SLAM을 실용적으로 만드는 요소다: 새로운 환경마다 검출기를 재학습하지 않고도 자연어로 명명된 물체로 지도를 채울 수 있다. 텍스트 프롬프트가 붙은 박스를 SAM에 넘기면(Grounded SAM) 기술된 어떤 물체에 대해서든 인스턴스 마스크를 얻을 수 있다 — ConceptGraphs 같은 개방형 어휘 3D scene graph 시스템과 Clio 같은 태스크 주도 매핑의 인식 프론트엔드다 — 그리고 이는 로봇이 SLAM 지도에 대해 직접 언어 지시(“화이트보드로 가라”)를 실행할 수 있게 한다.

관련 문서