source: Open-Det: An Efficient Learning Framework for Open-Ended Detection
이 논문은 우리가 이전 포스트에서 다룬 GenerateU의 한계를 깨부순 새로운 모델이다.
때문에 GenerateU의 포스트를 먼저 보고 오는 것을 추천한다. 👉 GenerateU 포스트 보러가기
Open-Ended Object Detection(OED)는 추론 시 추가적인 카테고리를 요구하지 않고, 객체를 탐지하고 자유 형식으로 해당 범주 이름을 생성하는 태스크이다.
그러나 GenerateU와 같은 기존 OED 모델은 훈련을 위해 대규모 데이터셋을 필요로 하며, 수렴이 느리고 성능이 제한적이다.
이를 위해 저자들은 네 가지 모듈로 구성된 Open-Det 프레임워크를 제안한다.
Open-Det은 객체 탐지와 객체 이름 생성기를 재구성하여 바운딩 박스 및 객체 이름 생성 과정 모두에서 모델 훈련을 가속화한다.
Visual과 Language의 간극을 해소하기 위해, 저자는 V-to-L 및 L-to-V 정렬을 제안하고, 프롬프트 증류기와 결합하여 VLM의 지식을 VL-prompts로 전이시켜 LLM의 정확한 객체 이름 생성을 가능하게 한다.
또한 Contradictory Supervision을 제거하기 위해 새로운 손실 함수인 Masked Alignment Loss를 설계하고 분류를 향상시키기 위한 Joint Loss를 도입하여 효율을 높인다.

GenerateU와 비교하여 Open-Det은 훈련 데이터의 1.5%, 훈련 에포크의 20.8%, 더 적은 GPU(V100 4개 : A100 16개) 자원만을 사용하여 훨씬 더 높은 성능을 달성하였다.
Figure 1을 보면 GenerateU의 지표들은 학습이 진행됨에 따라 완만하고 느리게 상승하는 반면, Open-Det은 초기 에포크부터 매우 빠르게 성능이 올라가는 것을 볼 수 있다.
단 31 에포크만에 GenerateU가 훨씬 더 많은 데이터와 자원을 들여 달성한 최고 성능 지점들을 모두 추월하거나 대등한 수준에서 도달하여, 프레임워크가 추구하는 Effective Learning을 완벽히 보여준다.
Open-Vocabulary Object Detection은 기존의 closed-set 탐지에서 Open-set 탐지로 범위를 크게 확장하여 훈련 데이터의 고정된 범주를 넘어선 객체 위치 파악 및 식별을 가능하게 한다.
그러나 OVD는 추론 시 탐지 결과를 얻기 위해 여전히 추가적인 어휘 입력을 필요로 하고, 이러한 의존성은 보조적 언어 지식 사전에 대한 필수적인 종속성을 생산하여, Open-world 시나리오에서의 모델 탐지 능력을 크게 제한한다.
최근 Open-Ended Object Detection, OED는 추론 단계에서 사전 정의 객체 범주의 필요성을 없애는 보다 일반적이고 실용적인 탐지 태스크로 부상했따.
GenerateU의 End-to-End 프레임워크는 OED를 Generation, 생성문제로 공식화하여, Dense Object Detection을 Free-form 및 관련 이름 생성을 가능하게 한다.
하지만, GenerateU의 비효율성을 야기하는 3가지 근본 원인이 있는데,
Detector에서 나온 Vision query를 고차원 특징 공간에서 LLM으로 직접 연결하는 방식은 두 모달리티 간의 근본적 정렬 한계를 가진다.
표현 차원과 정보 밀도의 비대칭성
가장 직관적인 한계는 두 Feature Space의 차원과 채널 구조가 완전히 다르다는 것이다.
- Vision Query (): 대개 Transformer 기반 탐지기의 디코더 쿼리는 차원 수준의 상대적으로 압축된 채널을 가진다. 이는 bbox를 찾고 정렬 지표를 연산하는 데에 최적화되어 있는 것이다.
- Text Embedding( or LLM Space): CLIP이나 T5같은 거대한 모델의 임베딩 공간은 보통 768차원 혹은 그 이상의 고차원 공간에 텍스트 세맨틱이 넓고 Dense하게 분포되어 있다.
256차원의 비전 쿼리를 단순히 Linear Layer 하나로 768 차원으로 맵핑해봐야, 고차원 언어 공간이 요구하는 풍부한 semantic 정보의 밀도를 채우지 못해 '정보 결핍(Insufficient Information)' 상태로 표현 정렬이 불완전해진다.
미니배치 혹은 이미지 내에 동일한 카테고리의 객체가 여러 개 존재할 때, 단순 Contrastive Alignment Loss를 사용한다면 하나의 쿼리 외에 다른 동일한 카테고리 텍스트 임베딩을 전부 Negative로 처리하여 Gradient Conflict를 유발한다.
GenerateU류 구조에서는 이미지 안의 객체 category들 사이의 관계를 충분히 고려하지 못해, alignment loss가 서로 충돌하는 supervision을 만들 수 있다고 주장한다.
예를 들어, 어떤 query가 특정 텍스트 embedding과 가까워져야하는 동시에, 비슷한 category나 관련 object 때문에 다른 방향의 gradient를 받을 수 있다. 그러면 학습 신호가 깨끗하지 않고, 서로 반대 방향으로 당기는 gradient가 생기는 것이다.
단순 Contrastive Alignment Loss는 무엇인가?
object query와 text embedding을 같은 공간에서 맞추는 loss이다.예를 들어, detector가 어떤 객체 query
q_i를 만들고, text encoder가 category text embeddingt_j를 만들었다고 해보자.
그러면 similarity matrix는S(i, j) = similarity(q_i, t_j)즉,
q_i가 각 text embedding과 얼마나 가까운지 계산한다.단순 contrastive loss는 보통 이렇게 생각한다.
q_i의 정답 text = t_i q_i는 t_i와 가까워져야 함. q_i는 t_i를 제외한 모든 t_j와 멀어져야 함이건 classification softmax랑 비슷하게,
q_i입장에서t_i하나만 정답 클래스고, 나머지 text embedding들은 전부 오답 class 인 것이다.
"중요한건 한 이미지 안에 같은 category 객체가 여러 개 있을 수 있으니, 문제가 발생하는 것이다."Open-Det은 Masked Alignment Loss로 이 False Negative를 제거해서 alignment 학습을 안정화하려고 하는 것이다.
T5 같은 모델은 32,128 개의 토큰에 대응하는 무거운 선형 레이어를 가진다.
학습 초기 정렬되지 않은 비전 쿼리가 이 거대한 Head에 입력된다면, 사전 학습된 강력한 가중치를 망가뜨려 수렴을 저해한다.
그렇다면 대규모 데이터셋에 대한 의존성을 제거하면서 훈련 수럼을 가속화하고, 훈련 효율성과 탐지 성능을 높이는 더 효율적인 OED는 없는가?
이러한 의문을 위해 저자들은 Open-Det이라는 프레임워크를 제안한다. 시각 탐지기와 객체 이름 생성기(LLM) 양단의 수렴을 가속화하며, 고정된 VLM으로부터 시각-언어 정렬 지식을 VL-prompts 형태로 증류(distillation)하는 혁신적 구조를 보인다.
Open-Det은 네 가지 핵심 요소로 이루어져있다.
구체적으로 Open-Det은 두 가지 주요 측면에서 전반적인 수렴 속도를 향상시킨다.
바로 (1)bbox detector와 (2)훈련 가속화.
기존의 Direct 매칭 방식과는 달리, Open-Det은 하나의 GT에 여러 쿼리를 매칭하는 One-to-Many구조와 최종 예측을 위한 One-to-One 구조를 분리하여 하나의 디코더 내에 통합했다.
이를 통해 추가적인 브렌치 없이 학습 수렴을 극대적으로 올린다.
하지만 inference 품질을 위해 one-to-one 구조도 유지를 해야하니, 이 둘을 Decoupled 하게 결합하여 detector convergence를 빠르게 만든다.
사실 여기가 더 중요하다. 박스만 잘 찾는다고 끝나는 것이 아닌, 이름을 생성해야 한다.
무거운 오리지널 LLM Head 가중치를 고정하여 초기 노이즈로부터 보호하고, 가벼운 LoRa Head만 학습시켜 파라미터를 아낀다.
LoRA head는 작은 low-rank parameter만 학습하는 방식으로, trainable parameter 수가 줄고, 학습이 가벼워진다.
LLM의 훈련을 용이하게 하고 robustness를 올리기 위해 Text Denoising훈련 접근 방식을 설계한다.
이건 LLM이 객체 이름을 생성할 때 입력 text나 prompt 쪽의 noise에 더 강해지도록 만드는 학습이다.
시각-언어 증류 모듈(VLD-M)을 Prompt Distiller 안에 넣는 것을 제안하여 VLM으로부터 시각-언어 정렬 지식을 LLM을 위한 새로 도입된 VL-Prompts로 전이시킨다.
GenerateU는 vision query를 LLM에 직접 넣는 쪽에 가까웠다면, Open-Det은 VLM의 vision-language alignment 지식을 가져와서 LLM이 이해하기 쉬운 VL-prompt로 바꾼다.
그 다음 BVLA-M이 나온다. BVLA-M은 Bidirectional Vision-Language Alignment Module로, Vision-Language Aligner 안에 들어가며, Vision query와 text embedding을 더 잘 맞추기 위해 설계된다.
중요한 점은 Bidirectional인데, 단순 vision에서 language로 맞추는게 아니라, vision-to-language와 language-to-vision 방향을 함께 고려한다. 객체 검출에서는 vision query가 text category 의미를 잘 찾아야 하는 동시에 text embedding도 어떤 visual query와 잘 대응되는지 안정적으로 정렬되어야 하기 때문이다.
이거 VL-SAM의 양방향 트랜스포머랑 비슷한건가?
비슷한 계열은 맞지만, Open-Det의 BVLA-M은 VL-SAM의 양방향 Transformer와 같은 구조는 아니고, "양방향으로 vision-language interaction/alignment를 보자"라는 철학이 비슷한거다.
# Open-Det의 BVLA-M 구조 S_align = cos(Q_d x M_VL, T_e) + cos(Q_d, T_e x M_LV)Q_d = detector가 만든 vision query T_e = text encoder가 만든 text embedding M_VL = vision → language 방향 projection M_LV = language → vision 방향 projection S_align = query-text alignment score matrix즉, Open-Det은 두 방향으로 similarity를 계산한다.
반면, VL-SAM의 양방향 Transformer가 SAM 계열의 two-way/bidirectional transformer이기 때문에, 이건 image token과 prompt/query token이 cross-attention으로 서로 정보를 주고 받는 구조이다. 서로 정보를 반영하면서 mask를 만드는 방향이다.정리하자면,
“VL-SAM의 양방향 Transformer와 문제의식은 비슷하지만, Open-Det의 BVLA-M은 transformer fusion module이라기보다는 양방향 projection 기반 alignment scoring module이다.”
이어 저자들은 Masked Alignment Loss를 제안한다.
이 loss의 목적은 contradictory loss와 gradient를 막는 것이다.
앞에서 말한 Contradictory Supervision 문제의 해결책이다.
단순 alignment loss를 걸면 잘못된 negative supervisoin이 생길 수 있어, 이는 그런 모순적 pair를 무작정 밀어내지 않도록 mask를 씌우는 방식인 것이다
또한 Joint loss도 소개한다. 이것은 Postiive query와 negative query의 classification을 더 잘 하도록 돕는다.
이 loss는 IoU score, alignment score, binary classifiaction score를 연결한다.
즉 "box가 정답과 얼마나 겹치는가"와 "text 의미와 얼마나 잘 맞는가" 를 classification 학습에 함께 반영하려는 것이다.
여기서 end-to-end는 box detection과 object name generation을 분리된 후처리로 보지 않고 하나의 학습 프레임워크 안에서 다룬다는 것이다.
위 구조들을 통한 vision-language alignment와 classification을 개선한다.
즉, 단순히 모듈을 추가한 것이 아니라, 학습 신호 자체를 정리하려는 논문이다.
Open-Det은 GLIP(A)와 같은 OVD 모델보다 AP_r + 6.8%, 전체 AP + 8.5%를 달성한다고 주장한다. 또 GenerateU와 비교해서는 훈련 데이터 1.5%, epoch 20.8%, 더 적은 GPU 만으로도 AP_r + 1.0%를 얻었다고 말한다.
정리
Open-Det은 detector 학습은 matching 구조로 빠르게 만들고, name generator 학습은 LLM head 안정화, text denoising, VLM 지식 증류, bidirectional alignment, loss 재설계를 통해 안정화한다는 논문이다.
이 섹션은 길지 않지만, Open-Det이 어떤 연구 흐름 위에 있는지 보여준다.
CLIP 기반 OVD 방법들을 먼저 빠르게 살피고 넘어가자.
ViLD는 CLIP의 지식을 detector로 distillation한다. 즉, CLIP이 알고 있는 image-text alignment 지식을 detector가 배우도록 만드는 방식이다.
중요한 점은 detector가 단순히 box만 예측하는 것이 아니라, CLIP이 가진 language-aware visual representation을 흡수하도록 학습한다는 것이다.
DetPro는 prompt learning 계열이다. CLIP에서 text prompt가 성능에 큰 영향을 주기 때문에 사람이 prompt를 고정하는 대신 continuous prompt representation을 학습한다.
즉 a photo of a {class} 같은 수동 prompt를 넘어서, detection에 더 적합한 prompt embedding을 학습하는 방향이다.
RegionCLIP은 CLIP을 image-level이 아니라 region-level로 확장하려는 방법이다. CLIP은 원래 이미지 전체와 텍스트를 맞추는 데 강하지만, object detection은 이미지 안의 특정 region을 다뤄야 한다.
그래서 RegionCLIP은 object region 단위의 visual representation을 CLIP-style로 학습한다.
BARON은 region들을 bag 형태로 구성해서 OVD 성능을 높이려는 방법이다.
핵심은 개별 region 하나만 보는 것이 아니라, 여러 region 후보를 묶어서 region-text matching을 더 풍부하게 만드는 방향이다.
논문은 그 다음으로 DETR/Transformer 계열 OVD도 말한다.
MDETR은 raw text query에 조건화된 object detection을 수행한다.
예를 들어 “red car” 같은 텍스트가 들어오면, 그 텍스트와 관련된 객체를 찾는 방식이다.
이건 detection을 language-conditioned task로 바꾼 중요한 흐름이다.
OV-DETR은 conditional matching을 통해 OVD를 수행한다. DETR의 matching 구조를 open-vocabulary 설정에 맞게 확장했다고 보면 된다.
VL-DET은 object-language alignment를 set matching 문제로 공식화한다.
이 논문 Open-Det에서도 alignment가 계속 중요하게 나오는데, VL-DET은 그런 흐름의 선행 작업 중 하나이다.
CORA는 region prompting과 anchor pre-matching을 통해 region-text distribution을 개선한다. 즉, region과 text가 더 잘 맞도록 사전 매칭 구조를 강화한다.
Region-Text Alignment와 일반화
OVD 방법들이 많이 발전했지만, 여전히 공통 문제가 있다.
논문은 이 문제를 region-text alignment와 limited generalization으로 본다.
OVD는 기본적으로 visual region과 text label을 맞추는 방식이다. 그런데 region representation이 text embedding과 잘 맞지 않으면, 학습하지 않은 category에 대한 일반화가 약해진다.
또 inference 때 보통 category vocabulary나 text query를 넣어줘야 하므로, 완전히 자유로운 detection은 아니다.즉, OVD는 closed-set detection보다 열려 있지만, 여전히 다음과 같은 한계들을 가진다.
- 사전 category vocabulary 또는 text query 필요
- region-text alignment가 어려움
- 새로운 category에 대한 일반화가 제한됨.
- 자유 형식 이름 생성은 직접 하지 않음
이 지점이 바로 OED로 넘어가는 발판이다.

3.1.은 Open-Det 전체가 어떻게 연결되어 있는지 보여준다.
논문은 Open-Det을 "four collaborative components" 로 구성된 프레임워크라고 설명한다.
즉, 네 개의 모듈이 따로 노는 것이 아니라 detector, VLM, prompt distillation, LLM generation이 서로 연결되어 OED를 수행한다.
이미지에서 객체 후보를 찾고, bbox와 decoder query를 만든다.
입력 이미지는 논문 표기로 I ∈ R^(H×W×3) 이다. 여기서 H, W는 이미지의 높이와 너비이다.
Object Detector는 backbone과 transformer encoder-decoder를 거쳐 decoder queries Q_d 를 생성한다. 이 Q_d가 중요하다. 이것은 단순 box 예측용 feature가 아니라, 나중에 object name generation에도 연결되는 핵심 visual representation이다.
즉, Object Detector의 출력은 크게 두 가지이다.
Q_d그리고 Q_d에서 binary score도 나온다. binary score는 이 query가 실제 객체인지 아닌지를 판단하는 점수이다.
이 모듈은 training 시에만 사용한다.
역할은 detector의 visual query Q_d와 VLM이 만든 text embedding T_e를 정렬하는 것이다.
학습 중에는 이미지에 대응되는 object names T가 있고, 이 object names는 VLM으로 들어간다. VLM은 텍스트를 embedding으로 바꿔 T_e를 만든다. 그 다음 Vision-Language Aligner가 Q_d와 T_e 사이의 alignment를 계산한다.
정리해보면,
T는 학습 중에만 주어지는 category text로, inference시의 후보 vocabulary가 아니라 training dataset에 있는 annotation이다.
여기서 중요한 결과가 VL_align 이다. 논문은 이것을 query-text matching을 위한 alignment indices로 설명한다. 쉽게 말하면, 어떤 visual query가 어떤 object text와 대응되어야 하는지를 알려주는 매칭 정보이다.
이 VL_align은 Object Detector를 학습시키는 supervision으로 쓰인다.
즉, Open-Det은 box만 보고 detector를 학습시키는 것이 아니라, 이 query가 어떤 이름의 객체와 의미적으로 맞는지까지 고려한다.
이것이 바로 Open-Det에서 GenerateU와 크게 달라지는 부분 중 하나이다.
GenerateU는 detector의 vision query를 LLM에 직접 넣는 방식에 가깝지만, Open-Det은 Prompt Distiller를 사용한다.
저자들은 이 모듈이 "replacing the direct use of vision queries as input for LLM in GenerateU" 라고 설명한다.
즉, 핵심은 이것이다.
GenerateU:
decoder query Q_d -> LLM -> object nameOpen-Det:
decoder query Q_d + VLM alignment knowledge -> VL-prompts P_vl -> LLM -> object name
Prompt Distiller 안에는 VLD-M, Vision-to-Language Distillation Module이 있다. 이 VLD-M은 다음 정보를 입력으로 받는다.
BEQ_dT_eVL_align그리고 VLM이 가진 vision-language alignment 지식을 decoder query 쪽으로 전달해서 VL-prompts P_vl을 만든다.
여기서 VL-prompt는 LLM이 이해하기 쉬운 형태로 정제된 visual-language prompt라고 보면 된다. raw visual query를 바로 LLM에 넣는 대신, VLM의 도움으로 언어 공간에 더 잘 맞는 prompt를 만드는 것이다.
Object Name Generator는 최종적으로 객체 이름을 생성하는 부분이다. Figure 2에서는 Generative Language Model과 LoRA Head가 이 역할을 한다.
Prompts Distiller가 만든 P_vl이 generative LLM으로 들어가고, LLM은 Object names를 생성한다.
여기서 Open-Det은 LLM 전체를 무겁게 흔드는 대신, LoRA Head를 사용한다. Figure 2에 LoRA Head와 Text Denoising 흐름이 표시되어있는데, 이것은 뒤 3.5에서 더 자세히 알아보도록 하겠다.
3.2는 Figure 2의 파란색 1번 구역, 즉 Object Detector ODR을 설명하는 부분이다.
이 모듈의 역할은 단순히 bbox만 예측하는 것이 아니라, 저자들은 Bounding Boxes and vision queries를 생성한다고 한다. 여기서 중요한 것은 vision queries이다.
Open-Det에서는 detector query가 두 가지 역할을 한다.
Q_d -> Box Head -> bounding boxes
Q_d -> VLD Module -> VL-prompts -> LLM -> object names
즉, ODR은 Open-Det 전체의 출발점이다. detector query가 부정확하면, box도 흔들리고, 뒤쪽 object name generation도 흔들린다.
때문에, 단순 Localization Module이 아니라, 검출과 이름 생성 사이를 연결하는 visual query 생산기라고 보는 것이 좋다.
ODE에서는 detector가 불안정하면, 뒤의 LLM도 제대로 학습하기 어렵다.
LLM은 detector가 만든 query를 바탕으로 객체 이름을 생성한다. 그런데 detector query가 초반에 객체를 제대로 대표하지 못하면, LLM은 잘못된 visual signal을 받아 object name을 생성하려고 한다.
그래서 Open-Det은 ODR의 covergence를 빠르게 만드는 데 신경 쓴다.
저자들은 DINO의 효율성과 one-to-many matching의 빠른 convergence에서 영감을 받았다고 한다.DINO는 anchor box denoising으로 DETR 계열 학습을 빠르게 만든 방법이고, one-to-many matching은 하나의 GT 객체에 여러 prediction을 Positive로 연결하여 학습 신호를 늘리는 방식이다.
여기서 말하는 DINO는 Meta의 self-supervised DINO가 아니라, object detection 쪽의 DINO detector를 말한다.
DINO: DETR with Improved DeNoising Anchor Boxes for End-to-End Object Detection
DETR 계열 detector는 보통 one-to-one matching을 사용한다.
하나의 ground-truth object는 하나의 prediction query와만 매칭된다. 이 방식의 장점은 중복 예측을 줄일 수 있다는 것이다.
예를 들어 이미지에 사람이 한 명 있다면, 최종적으로 하나의 query만 그 사람을 담당하게 된다. 그래서 NMS 없이도 깔끔한 detection이 된다.
하지만 단점도 있다.
학습 초반에는 정답 객체 하나당 positive query가 하나 뿐이다. 그러면 positive supervision이 적고, detector가 객체 위치를 빠르게 배우기 어렵다.
특히 DETR 계열이 초반 convergence가 느리다는 문제와 연결된다.
One-to-Many matching은 하나의 ground-truth object를 여러 prediction query와 매칭한다.
예를 들어 사람 한 명에 대해 query 3개나 5개가 positive로 학습될 수 있다. 그러면 같은 객체에 대해 더 많은 query가 localization 학습을 받는다.
정답 객체 하나를 여러 query가 배우므로, 학습 신호가 풍부해진다.
여러 query가 같은 GT box를 향해 학습되기 때문에 초반 localization convergence가 빨라질 수 있다.
하지만 one-to-many만 쓰면 문제가 있다. 같은 객체를 여러 query가 예측하므로 중복 detection이 많아질 수 있다. 최종 detection 결과는 깔끔해야 하기 때문에 one-to-one 구조도 필요하다.
여기서 Open-Det의 설계가 나온다.
기존 방법들은 one-to-one과 one-to-many를 같이 쓰기 위해 별도 branch나 head를 추가하는 경우가 많았다. 그런데 Open-Det은 추가 branch 없이 decoder 내부에서 둘을 분리한다.
논문 표현으로는 "Decoupling these two matching approaches"이다.
구체적으로는 decoder layer를 앞/뒤로 나눈다.
저자들은 "first four layers employ one-to-many matching" 이라고 한다.
앞쪽 layer에서는 one-to-many matching과 cross-attention을 사용한다. 목적은 box localization 강화이다. 여러 query가 GT object를 향해 학습되면서 객체 위치를 더 빨리 잡도록 만든다.
저자들은 "last two layers use one-to-one matching" 이라고 한다.
뒤쪽 layer에서는 one-to-one matching과 self-attention을 사용한다. 목적은 중복 detection 제거이다. 여러 query가 같은 객체를 잡는 상황을 정리하고, 최종적으로 하나의 객체에 하나의 예측이 대응되도록 만든다.
즉, Open-Det detector는 이런 흐름이다.
초반 layer: one-to-many로 빠르게 많이 배움
후반 layer: one-to-one으로 중복을 제거
Decoder layer 1: one-to-many
Decoder layer 2: one-to-many
Decoder layer 3: one-to-many
Decoder layer 4: one-to-many
Decoder layer 5: one-to-one
Decoder layer 6: one-to-one
지금까지의 구조를 다시 쓰면
Image
-> Backbone
-> Transformer Encoder
-> encoder features E
-> threshold-based query selection
-> Transformer Decoder with 6 layers
- layer 1-4: one-to-many matching
- layer 5-6: one-to-one matching
-> decoder queries Q_d
-> Box Head / Binary Head
앞의 4개 layer는 cross-attention을 사용한다고 되어 있다.
Cross-attention은 query가 image feature를 참조하는 과정이다.
즉, query가 이미지의 어느 위치, 어느 feature를 봐야 하는지 학습한다.
그래서 localization을 강화하는 데 적합하다.
query -> image feature를 바라봄 -> 객체 위치 정보 획득 -> box localization 개선
뒤의 2개 layer는 self-attention을 사용한다. Self-attention은 query들끼리 서로를 보는 구조이다.
여러 query가 같은 객체를 잡고 있다면, query들 사이의 관계를 통해 누가 최종적으로 그 객체를 담당할지 정리할 수 있다.
그래서 후반부 self-attention은 duplicate detection 제거와 잘 맞는다.
Open-Det이 강조하는 다른 포인트는 addition decoder branch가 필요 없다는 것이다.
기존 One-to-many + one-to-one 결합 방식은 별도 branch나 head를 두는 경우가 있었는데, Open-Det은 decoder layer 자체를 역할별로 나눈다.
그래서 구조적으로는 더 단순하다.
별도 branch 추가가 아니라,
같은 decoder 안에서 앞 4 layer / 뒤 2 layer 역할 분리
이 설계로 인해 training complexity를 낮추면서도 convergence를 더 빠르게 하려는 것이다.
3.2.의 후반부는 또 다른 문제를 다룬다.
기존 COD, VOD, OED framework들은 predefined queries에 의존하기 때문에 검출 가능한 객체 수가 고정되는 한계가 있다고 말한다.
DETR 계열을 떠올리면 보통 query 개수를 미리 정한다. 예를 들어 100개의 query를 두면, 모델은 최대 100개의 object slot을 가지고 예측한다.
물론 실제로 100개 안에서 충분한 경우가 많지만, 논문은 OED처럼 open-ended하고 객체 수가 유동적인 상황에서는 더 flexible한 query 선택이 필요하다고 본다.
Object Slot이란?
Object slot은, detector가 '여기 하나의 객체가 들어갈 수 있다' 라고 준비한 예측 자리라고 보면 된다.
DETR 계열에서는 보통 미리 정해진 개수의 query를 둔다고 했다.
예를 들어 100개의 query면, 모델은 이미지 하나를 보고 100 개의 object slot을 가지고 예측하는 것이다.slot 1 -> box + class/objectness slot 2 -> box + class/objectness slot 3 -> no object ... slot 100 -> box + class/objectnessslot의 각 출력은 위와 같은데, 중요한 것은 다음과 같다.
Object slot은 category slot이 아니다.
즉,person slot,,car slot,dog slot처럼 class 별 자리가 아니라는 것이다.그보다는 객체 instance 하나를 담당할 수 있는 빈 자리이다.
왜 Slot이 필요한가?
DETR류 모델은 anchor box를 촘촘히 깔고 후처리 하는 방식이 아니라, query/slot들이 서로 경쟁하면서 객체를 하나씩 맡는다.
그래서 one-to-one matching에서는
하나의 GT object <-> 하나의 object slot
이 되도록 학습한다. 이 덕분에 중복 box를 줄일 수 있다.
그래서 Open-Det은 threshold0based query selection을 도입한다.
Q_id = { e_t ∈ E | σ(Linear(e_t)) > λ }
여기서 E는 Transformer Encoder가 만든 encoder features로, 이미지 전체의 token feature들이라고 보면 된다.
e_t는 encoder feature E 안의 개별 token으로, 이미지 feature token 한 개이다.
Linear(e_t)는 각 token이 decoder query로 선택될 만한지 점수를 내는 linear layer이다.
σ는 sigmoid함수 이며, λ는 threshold로, 각 encoder token에 대해, 이 token을 query로 쓸만한지 측정하고 sigmoid score가 더 높으면 decoder query 후보로 선택한다.
왜 Threshold Query Selection이 중요할까?
이 방식의 장점은 query 개수를 고정하지 않아도 된다는 것이다.
기존 방식은 미리 정한 N개의 query 사용하는 방식이었지만, Open-Det은 encoder token 중 threshold를 넘는 token을 query로 선택하는 방식이다.
때문에 이미지마다 선택되는 query 수가 달라질 수 있다. 객체가 적은 이미지에서는 적은 query, 객체가 많은 이미지에서는 많은 query가 선택될 수 있는 것이다.
저잗르은 이 설계를 통해 efficiency and flexibility를 얻는다고 한다.
3.2 and Process
자, 그럼 3.2와 전체 구조를 연결해서 마무리해보자.
3.2의 Object Detector는 단순히 좋은 box를 만드는 모듈이 아니다.Open-Det 전체에서 ODR은 다음 세 가지를 담당한다.
빠른 localization 학습
앞 4개 decoder layer에서 one-to-many matching을 사용하여 box localization을 빠르게 배운다.
중복 없는 최종 detection
뒤 2개 decoder layer에서 one-to-one matching을 통해 duplicate detections를 제거한다.
유동적인 object query 생성
threshold-based query selection으로 이미지마다 필요한 만큼의 decoder query를 선택한다.
이렇게 만들어진
Q_d가 나중에 VLD Module과 LLM으로 이어지기 때문에, ODR은 object name generation의 기반이기도 하다.한 줄 요약: Open-Det의 Object Detector는 앞쪽 decoder layer에서 one-to-one matching으로 빠르게 위치를 배우고, 뒤쪽 layer에서 one-to-one matching으로 중복을 제거하며, threshold-based query selection으로 고정 query 수의 한계를 줄이는 모듈이다.

이 섹션의 목적은 간단하다.
Detector가 만든 vision query Q_d와 VLM이 만든 text embedding T_e를 더 잘 정렬하자.
논문은 이 alignment를 label matching의 핵심이라고 본다. 원분에서도 "Vision-Language modalities alignment is a core component" 라고 말한다.
Open-Det에서 detector는 decoder query Q_d를 만든다. 이 query는 이미지 안 객체 후보를 표현한다.
반면 VLM은 object name text를 받아 text embedding T_e를 만든다.
학습 중에는 이 둘을 맞춰야 한다.
둘은 의미 공간도 다르고, feature dimension도 다르다. 그래서 이 것을 해결하는 것이 핵심이다. 기존 방식의 단순 해결과 다르니, 주의깊게 보면 좋을 것 같다.
학습 중에는 이 둘을 맞춰야 한다. Q_d와 T_e.
vision query Q_d <-> text embedding T_e
예를 들어, 어떤 query가 야구 선수의 배트를 보고 있다면, 그 query는 "baseball bat" 또는 해당 object name embedding과 가까워져야 한다.
이 정렬이 잘 되면, 다음과 같은 이점이 있다:
기존 방식과 해결하는 방식이 약간 다르다고 했다.
논문이 지적하는 중요한 문제는 vision query와 text embedding의 channel dimension이 다르다는 점이다.
논문에서 나온 예는 다음과 같다.
Q_d: 256 channels
T_e: 768 channels
즉, detector query는 256차원인데, text embedding은 768차원이다.
기존 방식은 보통 Q_d를 text embedding 차원으로 올려서 비교한다.
Q_d: 256 -> 768
T_e: 768
그런데, 저자들은 이 방식이 충분하지 않다고 본다.
왜냐하면 Q_d자체가 text embedding보다 정보량이 적은 저차원 feature인데, 단순히 768로 늘린다고 해서, language semantic information이 풍부해지는 것은 아니기 때문이다.
근데 여기서 드는 의문이.. 꼭 language semantic info가 풍부해져야하나..? 그냥 차원 맞춰서 연산만 되면 되는거 아냐? 인데..
Open-Det에서는 단순 연산 가능성이 아니라, similarity가 의미 있는 supervision으로 작동해야 한다는 것이다.
음 어렵다. 계속 알아보자.
(차원을 맞추는 것과 의미를 맞추는 것은 다르다는 점을 생각하며 읽어보자.)
논문 표현으로는 이 language semantic info가 풍부해지지 않는 것을 alignment가 suboptimal Vision-Language alignment를 만들 수 있다고 한다.
Open-Det은 한 방향으로만 맞추지 않는다.
기존 방식이 대채로
Vision -> Language
로 늘리는 반면, BVLA-M은 다음 두 방향을 모두 사용한다.
Vision-to-Language, V-to-L
Language-to-Vision, L-to-V
즉, Vision query를 language space로 보내서 비교하고, 동시에 text embedding을 vision space로 보내서 비교한다.
이게 Figure 2 중 아래 구조의 핵심이다.

논문의 수식은 다음과 같다.
은 query-text alignment score matrix 이다.
즉, N개의 decoder query와 M개의 text embedding 사이의 모든 pairwise score를 담고 있다.
예를 들어, 는 i번째 decoder query가 j번째 object name text와 얼마나 잘 맞는지를 의미한다.
이 score는 뒤에서 query-text matching, VL_align, Masked Alignment Loss, VLD-M의 prompt distillation 등에 연결된다.
Figure 2에서 BVLA-M은 오른쪽 아래 확대 박스이다. (따로 회색만 뽑아 놓은 위 사진과 같다.)
왼쪽에서는
decoder queries Q_d
오른쪽에서는
text embeddings T_e
가 있다.
가운데에는 V-to-L, L-to-V로 양방향 화살표가 있다.
이 그림이 3.3의 거의 전부를 시각화하는데, Open-Det은 detector query와 text embedding을 단순히 한 방향으로만 맞추지 않고, 양쪽 공간에서 모두 similiary를 계산하여 alignment를 강화한다.
논문에서 정의한 shape은 다음과 같다.
논문 예시는 보통 이런 식이다.
즉, 와 는 channel dimension이 다르다. 그래서 바로 cosine similarity를 계산할 수 없다. 코사인 유사도는 마지막 feature dimension이 같아야 하니까 말이다.
에서 를 기준으로 왼쪽 수식을 살펴보자.
는 를 text embedding 차원으로 올려서 와 비교한다.
이제 와 차원이 맞는다.
그래서 pairwise cosine similarity를 계산하면
가 된다.
+를 기준으로 오른쪽 식도 같은 방식이다.
왼쪽 항과 오른쪽 항은 둘 다 최종적으로 같은 shape을 가진다.
그래서 **element-wise로 더할 수 있다.
이는 기존 방식의 중간 shape이 두 개 생기는 것과 명확히 다르다.
물론 최종 alignment score shape은 기존과 같다.
한 방향 projection만 쓰면, 저차원 visual query 를 고차원 text space로 억지로 올려서 비교 하는데, 이 방식은 연산은 되지만, visual query가 text semantic space에 충분히 잘 올라갔는지 보장하기 어렵다.
때문에 Open-Det의 BVLA-M은 양방향을 봐서 alignment를 한 공간에서만 판단하지 않고, 양쪽 modality의 관점에서 같이 확인한다.
갑자기 또 드는 의문: Cosine similarity
여기서의 cosine similarity는 vision feature와 query를 결합하는 연산이 아니라, 이미 만들어진 두 쿼리와 임베딩을 의미적으로 맞는지만 계산하는 것이므로, 주의하자
3.3과 전체 Framework
3.3은 독립적인 detectio module이라기 보다는, 학습 신호를 깨끗하게 만드는 정렬 모듈이다.
Open-Det 전체 흐름에서 보면
Object Detector -> Q_d 생성 VLM -> T_e 생성 BVLA-M -> Q_d와 T_e의 alignment score S_align 계산이
S_align이 좋아져야 뒤의 과정도 좋아진다.
- Object Detector가 더 정확한 query supervision을 받는다.
- VLD-M이 더 좋은 text-query pair를 사용한다.
- VL-prompt가 더 의미 있게 만들어진다.
- LLM의 object name generation이 안정된다.
한 줄 요약: BVLA-M은 detector query
Q_d와 text embeddingT_e를 Vision-to-Language와 Language-to-Vision으로 양방향 비교하여 더 안정적인 query-text alignment scoreS_align을 만드는 모듈이다.
3.4.는 Figure 2의 Prompts Distiller 내부, 특히 VLD-M, Vision-to-Language Distillation Module을 설명한다.
한 문장으로 말하면
VLD-M은 detector query 를 LLM이 이해하기 쉬운 VL-prompts 로 바꾸는 모듈이다.
이게 중요한 이유는, GenerateU처럼 detector query를 LLM에 바로 넣으면 semantic gap이 크다. 는 시각 detector feature이고, LLM은 언어 생성 모델이다. 그래서 Open-Det은 중간에 VLD-M을 넣어 VLM의 vision-language 지식을 query에 증류한다.
증류란?
큰 모델이나 이미 잘 학습된 모델이 가진 지식을, 다른 모델이나 작은 모듈이 배우도록 옮기는 과정이다.
쉽게 말해서 Consistency Model의 Teacher와 Student를 생각하면 되겠다.
일반적인 Knowledge Distillation
큰 image classifier가 있다고 해보자. 이미지를 보고 teacher model은 다음과 같이 예측했다.
dog: 0.70 wolf: 0.20 fox: 0.07 cat: 0.03정답 label은
dog하나 일 수 있지만, teacher의 출력에는 더 풍부한 정보가 있다.dog와 wolf가 비슷하다 dog와 fox도 약간 비슷하다 cat과는 덜 비슷하다Student 모델은 단순 정답
dog만 배우는 것이 아니라, teacher의 이러한 soft한 분포를 따라 하면서 더 좋은 representation을 배운다.이것이 바로 일반적인 knowledge distillation이다.
그럼 Open-Det에서는 무엇을 증류하는데?
Open-Det에서는 VLM이 이미 image-text pair로 학습되어 있어서, vision과 language를 맞추는 지식을 가지고 있다.
"baseball bat"라는 text embedding은 야구 방망이처럼 생긴 visual pattern과 가까워야 한다 # 이 정도는 VLM이 이미 알고 있다.그리고 아래와 같은 vision-language semantic structure도 embedding 안에 어느 정도 들어 있다.
"person"과 "baseball player"는 관련 있다 "bat"와 "glove"는 같은 장면에 자주 나온다 "helmet"은 사람 머리 근처에 나타난다Open-Det은 이 VLM의 지식을 VL-prompts에 옮기고 싶어 한다.
VLD-M은 뭘 배우는가?
VLD-M은 detector query 를 받아서 LLM이 사용할 수 있는 VL-prompt 을 만든다.
그런데 이 이 아무렇게나 만들어지면 안된다. LLM이 객체 이름을 잘 생성하려면 이 VLM의 text embedding 와 의미적으로 가까워야 한다.
그래서 Open-Det은 VLM이 만든 text embedding 를 일종의 target 처럼 사용하는 것이다.
VLD-M(Q_d, B, E, ...) -> P_vl VLM(text) -> T_e P_vl이 T_e와 가까워지도록 학습즉, VLD-M은 Detector query를 받아서 VLM text embedding과 비슷한 의미를 가진 VL-prompt를 만들도록 학습하는 것이다. 이것이 바로 VL-Prompt에 distill한다고 표현한다.
저자들은 먼저 기존 VLM의 한계를 말한다.
예를 들면 CLIP 같은 모델은 보통 web-scale image-text paired data로 학습된다.
즉, 이미지 전체와 문장/캡션을 맞추는 방식이다.
하지만 object detection에서 필요한 것은 이미지 전체가 아니라 region-text alignment이다.
이미지 안의 특정 region과 그 region 안의 객체들 각각의 text와 잘 맞춰야 하는데, 저자들은 바로 이 fine-grained region-text data가 얻기 힘들다고 한다. 이유는 복잡한 labeling과 높은 비용 때문이다.
문제는 바로 이것이다.
VLM은 image-text alignment에는 강하지만, region-text alignment에는 바로 강하지 않을 수 있다.
그런데 OED는 region-level object name generation이 필요하다. 그래서 VLD-M이 필요한 것이다.

Figure 3은 VLD-M의 전체 구조이다.
아래에서 위로 읽으면 이해가 쉽다.
가장 아래 양쪽과 중앙에 가 있다.
이것은 Object Detector가 만든 decoder query인 것을 알고 있다. 이 query는 특정 객체 후보를 나타낸다.
하지만, 만으로는 문제가 있다. 이것은 region-level detector feature라서, CLIP과 같은 VLM의 image-level text embedding과 바로 맞추기에는 정보가 부족할 수 있다.
그래서 VLD-M은 를 그냥 쓰지 않고, 주변 visual context를 더한다.
중앙 왼쪽에 backbone features 가 있다.
Backbone feature는 이미지의 spatial/local visual information을 담고 있다. texture, edge, local pattern, object 주변 배경과 같은 정보가 상대적으로 많이 남아 있다.
VLD-M은 가 를 deformable cross-attention으로 보게 한다.
Deformable cross-attention은 query가 이미지 feature 전체를 다 보지 않고, 자기 주변의 중요한 몇 개 위치만 골라서 보는 attention이다.
이러면 가 그냥 detector query로만 남는 게 아니라, 객체 주변의 시각 정보를 더 보강한 query가 된다.
Open-Det에서는 를 더 좋은 VL-prompt로 만들기 위해 주변 context를 추가하는 역할을 하는 것이다.
이렇게 왼쪽 branch에서 업데이트된 query 가 만들어지게 되고, 이것은 backbone feature에서 보강된 query라고 보면 된다.
중앙에서 오른쪽에는 encoder features 가 있다.
Encoder feature는 transformer encoder를 거진 feature이기 때문에 더 global하고 contextual한 정보를 담는다.
생각해보면, Transformer Encoder를 지나기 전의 Backbone에서 나온 feature는 지역적 시각 패턴에 강하다.
예를 들어 CNN backbone feature는 선, 색, 형태와 같은 local 한 visual 정보들을 많이 담고 있다. 그런데, transformer Encoder에서는 feature token들이 self-attention을 한다.
물론 깊어질수록 Receptive Field가 넓어져서, Global 정보를 반영하긴 하지만, 기본 연산이 local conv이기 때문에 위와 같이 표현했다.
Self-attnetion은 각각 image token이 다른 token을 볼 수 있게 하여, 특정 위치 feature도 자기 주변만 보는게 아니라, 다른 위치들과의 관계를 반영한다. 그래서 Encoder feature는 backbone feature보다 더 global/contextual한 정보를 담게 되는 것이다.
Transformer Decoder에서도 Query들끼리 masked self-attention을 하지 않나?
맞다. 그런데 정말 Query들 끼리만하기 때문에,
중복 detection 줄이기,각 query가 서로 다른 객체 담당하도록 조정하기등과 같은 효과가 나온다.
이렇게 단순 local texture보다 객체 간 관계나 더 넓은 문맥이 반영되었고,
VLD-M은 가 도 deformable cross-attetion으로 참고하게 된다.
그 결과 오른쪽 branch에서 가 만들어진다.
이것은 encoder feature에서 보강된 query이다.
Figure3를 보면 세 갈래가 위로 올라간다.
왼쪽 branch: : backbone feature 와 상호작용한 query이다.
오른쪽 branch : Encoder feature 와 상호작용한 query이다.
중앙 branch: : 원래 Decoder query 도 그대로 버리지 않고 가져온다. 중앙에서 MLP를 통과한다.
MLP의 역할은 VLD-M 안에서 업데이트된 query들을 text embedding과 비교 가능한 표현으로 변환하는 역할이다.
논문의 설명에 따르면, MLP는 두 개의 linear layer와 activation layer로 구성된다. 단순 선형 projection보다 더 유연하게 feature를 변환할 수 있다.
이 세 가지 정보를 같이 쓰는 이유는, 어느 하나만으로는 부족하기 때문이다.
상단을 보면 VLM knowledge distillation 블록이 있다.
여기서 사용하는 것은 아래 4가지이다.
3.3에서 BVLA-M은 와 사이의 alignment를 계산하고, aligned index 을 만든다. 3.4에서는 이 을 사용해서 어떤 이 어떤 와 잘 대응되어야 하는지 선택한다.
그 다음 과 사이의 Cosine Similarity Loss를 게산한다.
즉, BVLA-M이 query-text pair를 정하고, VLD-M이 해당 query에서 VL-prompt를 생성하며, 이 대응되는 와 가까워지도록 증류한다.
Cosine Similarity Loss
Cosine Similarity는 두 embedding의 방향이 얼마나 비슷한지 본다.
VLM embedding 공간에서는 보통 방햐 유사도가 의미 유사도를 나타낸다. 그래서 이 대응되는 text embedding 와 같은 방향을 갖도록 만들면, LLM에 들어가는 prompt가 더 언어 의미에 가까워진다.
즉, VLD-M의 학습 목표는 이 object name text embedding 와 의미적으로 가까워지게 만들기!
3.4 핵심 요약
VLD-M은 detector query 에 backbone/encoder context를 더해, image-like representation으로 보강하고, VLM text embedding 와의 cosine distillation을 통해 LLM 입력용 VL-prompts 을 생성하는 모듈이다.
쉽지 않네요 이번 논문...
알아야 할 것들이 너무 많습니다... 화이팅 👏💪
이 섹션은 객체 이름을 생성하는 LLM 부분을 어떻게 안정적으로 학습시킬 것인가를 다룬다.
Figure 2의 아래 주황색 영역을 참고하면 되겠다.

흐름을 간단히 보자면,
VL-prompts -> Generative Language Model -> object name 이다.
학습 초반에는 detector query와 language embedding 사이의 alignment가 아직 불안정하기 때문에, 약간 위험할 수 있다.
저자들은 3.5를 Noisy Alignment라는 말과 함께 시작한다.
학습 초반에는 decoder queries 가 아직 충분히 학습되지 않았다. 그래서 text embeddings 와 semantic gap이 크다.
즉, 초기에 발생하는 문제를 정리하자면,
가 아직 객체 의미를 잘 담지 못하여 와 의 alignment가 noisy 하다. 때문에 LLM이 불안정한 visual-language signal을 받는다.
저자들은 이 문제가 LLM의 pretrained Weights를 망가뜨릴 위험이 있다고 말한다. 특히 text generation을 담당하는 heavy-weight head layer가 문제이다.
LLM Head는 vocabulary token을 예측하는 큰 출력층이다. T5처럼 token vocabulary가 큰 모델에서는 이 head가 무겁고 민감하다. 그런데 하긋ㅂ 초반에 quality 낮은 query-text alignment로 이 head를 업데이트해버리면, 원래 LLM이 갖고 있던 언어 생성 능력이 흔들릴 수 있다는 것이다.
Open-Det은 초반 학습 단계에서 LLM Head를 Freeze 한다.
중요한 점은 LLM 전체를 완전히 얼리는 것이 아니라, head를 freeze하고, other weights는 active하게 둔다는 것이다.
이렇게 하면 noisy alignment가 들어와도 가장 민감한 출력 head가 직접 망가지지 않는다.
그 대신 Open-Det은 LoRA Head를 추가한다.
LoRA는 큰 Weight 전체를 업데이트하지 않고, 작은 Low-rank parameter만 학습하는 방식이다. 그래서 trainable parameter가 크게 줄고, 학습이 더 가벼워진다.
이 전략의 목적은 두 가지로, 초반 noisy signal이 기존 LLM Head를 망가뜨리지 않도록 pretrained LLM Head를 보호한다.
그리고, 학습 효율 또한 증가한다.
저자들은 흥미로운 관찰을 한다. text embeddings 를 LLM, 예를 들면 T5에 넣어서 text reconstruction을 시키면 training loss가 빠르게 감소한다고 한다.
이 말은 T5가 같은 embedding을 받아 원래 text를 복원하는 능력을 꽤 잘 배울 수 있다는 뜻이다.
Open-Det은 이 관찰을 이용한다.
Figure 2를 보면 쪽에 add noise가 표시되어 있다.

논문은 text embeddings에 Gaussian Noise를 추가한다.
여기서 는 text embeddings 의 standard deviation이다.
즉, 깨끗한 embeddings만 주는 것이 아니라, 일부러 noise가 섞인 embedding을 넣고 T5가 text를 reconstruct하도록 학습한다.
Text Denoising이 필요한 이유
실제 Open-Det 학습에서는 LLM이 항상 깨끗한 text embedding만 받는 것이 아니다. 최종적으로 VLD-M이 만든 VL-prompts 을 받는다.
그런데 은 detector query에서 출발한다. detector query는 초반에 noisy한데, 따라서 LLM은 어느 정도 오염된 prompt representation에서도 안정적으로 object name을 생성할 수 있어야 한다.
Text Denoising은 바로 이 상황을 미리 연습시키는 과정으로, 이를 통해 T5는 noisy input에 강해지고, 나중에 이 완벽하지 않아도 object name generation을 더 안정적으로 수행할 수 있다.
이 섹션의 핵심은 Open-Det의 loss 설계 파트이다.
여기서 제안하는 loss는 두 개이다.
Masked Alignment Loss와 Joint Loss.
기존 Alignment Loss의 문제
GenerateU에서는 Vision-Language alignment를 위해 BCE Loss를 사용한다.
- matched query-text pair는 가깝게
- Unmatched query-text pair는 멀리
그런데 이 방식이 objecet name들 사이의 관계를 고려하지 못한다고 저자들을 말한다.
Contradictory Losses and Gradients
예를 들어 Mini-batch 안에 비슷하거나 같은 category text가 여러 개 있다고 해보자.
text 1: dog text 2: puppy text 3: dog어떤 query가
text1: dog와 매칭되면, 기존 BCE 방식에서는 나머지 unmatched text를 전부 negative로 볼 수 있다. 그러면 같은 의미의text3: dog나 매우 유사한puppy까지 밀어내는 gradient가 발생할 수 있다.즉, 모델은 동시에
query를 dog쪽으로 당겨라,query를 또 다른 dog 또는 유사 dog text에서는 밀어내라라는 신호를 받는다.이것이 바로 논문이 말하는 Contradictory losses and gradients이다.
query-text alignment에서 생기는 모순된 supervision을 줄인다.
MAL은 text embedding끼리의 유사도를 먼저 계산하여, 같은 category 또는 매우 유사한 category를 negative로 취급하지 않도록 mask를 만든다.
논문은 binary mask를 이렇게 만든다.
여기서 는 text embeddings. 즉, text embedding끼리 서로 얼마나 비슷한지 보는 matrix를 만드는 것이다.
그 다음에는 threhsold를 적용한다. ()
유사도를 threshold와 비교하여 1, 0으로 둔다.
여기서 은 3.3에서 BVLA-M이 만든 query-text alignment score matrix이고, 은 query의 수, 은 text embedding 수 이다.
MAL이 실제로 하는 일은 다음과 같다.
기존 방식에서는 에 표시된 하나의 text만 positive이고, 나머지는 거의 다 negative이다.
MAL은 여기에 text similarity mask 을 곱한다.
이렇게 하면 matched text와 같은 category로 판단되는 text들도 positive 쪽으로 보정된다.
즉, MAL은 alignment label을 더 똑똑하게 수정한다.
binary score가 IoU score, alignment score와 일관되게 학습되도록 만든다.
Open-Det은 inference 시에, object name을 자동 생성한다. 그래서 OVD처럼 추론 시 외부 vocabulary를 넣고 alignment score로 결과를 다시 고르는 방식이 아니다.
또 detector는 많은 query를 만들 수 있으므로, duplicate detection을 줄이고 실제 object query만 남겨야 한다. 이를 위해 binary head가 필요하다.
문제는 binary label이 고정된 class label처럼 단순하지 않다는 것이다. Open-Det에서는 query가 positive인지, negative인지가 Vision-Language alignment와 matching 과정에 의해 동적으로 결정된다.
Joint Loss는 : binary score, : alignment score, : IoU score를 결합하는데, 이들을 geometric하게 섞은 joint quality score를 만든다.
즉, alignment와 binary score에 , IoU에는 만큼의 비중을 둔다.
왜 Square root를 쓸까?
논문은 이 이유도 명확히 설명하는데, 세 score를 곱하면 값이 너무 작아질 수 있기 때문이다.
Joint Loss의 역할
Joint Loss는 binary prediction을 단순한 objectness 분류로 보지 않는다.
대신 binary score가 다음과 함께 움직이도록 만든다.
- binary score
- alignment score
- IoU score
즉, 좋은 query는 object일 확률도 높고, text와 의미적으로도 잘 맞고, box도 정확해야 한다.
이렇게 binary head가 단순 object처럼 보이는가?만 뱅는 것이 아니라, localization 품질과 language alignment 품질까지 반영한 objectness를 배우게 된다.
학습 데이터는 VIsual Genome, VG를 사용한다.
"We train our model with a small set of detection data Visual Genome(VG)."
여기서 "small set"이 중요하다. VG 학습 이미지는 77,298장, 즉 약 0.077M이다. 앞에서 계속 강조했던 GenerateU보다 훨씬 적은 데이터로 학습한다는 주장을 실험 설정에서 실제로 고정한다.
즉, Open-Det은 대규모 image-text pretraining 데이터나 grounding dataset을 왕창 쓰는 쪽이 아닌, 비교적 작은 detection data로 OED를 학습하는 방향이다.
평가 데이터는 LVIS, COCO, Objects365이다.
주 평가 데이터는 zero-shot LVIS로, 카테고리 수가 1,203개로 많고, rare/common/frequent category 구분이 있어서 open-ended/open-vocabulary 성능을 보기 좋다.
추가로 COCO2017과 Objects365도 평가에 사용한다. 이 둘은 Open-Det이 LVIS에만 맞춰진 것이 아니라 다른 detection benchmark에서도 작동하는지 확인하기 위한 보조평가이다.
OED는 class label을 고르는 문제가 아니라, object name을 생성하는 문제이다. 그래서 평가도 일반 closed-set detection처럼 predicted class id와 GT class id가 같은지만 보면 안된다.
"compute the similarity score between generated object names and annotated category names using a fixed pre-trained text encoder."
즉, 모델이 생성한 object name과 정답 category name을 고정된 pretrained text encoder로 Embedding한 뒤, 둘의 similarity를 계산한다.
예를 들어 모델이 "couch"를 생성했고 GT가 "sofa"라면, 문자열은 다르지만 의미는 가깝다.
OED에서는 이러한 경우를 어느 정도 인정 할 수 있어야 하므로 text encoder similarity를 사용한다.
LVIS 기준으로 다음 AP들을 본다.
AP_r: rare categories에 대한 AP로, 이 논문에서 특히 중요하다.
AP_c: common categories에 대한 AP이다.
AP_f: frequent categories에 대한 AP이다.
AP: 전체 category 평균 AP이다.
평가는 LVIS 5k MiniVal subset에서 수행한다. 이는 MDETR, GLIP, GenerateU 등 기존 연구 프로토콜을 따른다고 한다.
Open-Det은 GenerateU와 공정하게 비교하고자 같은 계열의 backbone과 language model을 사용한다.
사용한 모델은 다음과 같다.
즉, 성능 향상이 단순히 더 큰 LLM이나 완전히 다른 backbone 때문이라고 보기 어렵게 맞춘 설정이다.
mini-batch size: 8
GPU: 4 Tesla V100
optimizer: AdamW
weight decay: 0.05
학습 설정은 위와 같은 설정을 따른다.
Learning Rate은 모듈별로 다른데,
Object Detector: 1e-4
Prompts Distiller: 1e-4
Object Name Generator: 2e-4
Object Name Generator가 더 크다. 이건 LLM 기반 생성부와 LoRA Head 등을 빠르게 적응시키려는 설정으로 볼 수 있다.

GLIP, Grounding DINO 같은 OVD 모델은 infernece 시에 text vocabulary/prior가 필요하다.
Open-Det은 object name을 직접 생성하므로 Vocabulary-free이다.
같은 VG 데이터만 사용했을 때 GenerateU는 149 epochs, Open-Det은 31 epochs이다. 그런데 Open-Det이 성능도 더 높다.
Open-Det은 0.077M VG 데이터만 사용하는데, GenerateU가 VG + GRIT5M = 5.077M을 쓴 경우와도 경쟁하거나 이긴다.
Table 1이 바로 핵심인데, 평가 대상은 LVIS MiniVal이고, zero-shot domain transfer 성능을 본다.
표에서 먼저 봐야 할 column은 Vocabulary-Free, Data Size, Epochs, 그리고 AP_r와 AP이다. 여기서 Vocabulary-Free는 추론 시 추가적인 category vocabulary 없이 탐지가 가능한지를 의미한다. OVD 모델들은 대체로 텍스트 vocabulary나 category prior를 입력으로 받아야 하지만, Open-Det과 GenerateU는 객체 이름을 직접 생성하는 OED 모델이므로 vocabulary-free 설정에 해당한다.
먼저 GLIP, Grounding DINO와 같은 OVD 모델과 비교해보자.
GLIP(A)는 0.660M 데이터를 사용하고, LVIS MiniVal에서 AP_r 14.2, AP 18.5를 기록한다. 반면 Open-Det은 0.077M 데이터만 사용하고도 AP_r 21.0, AP 27.0을 달성한다.
즉 Open-Det은 GLIP(A)가 사용한 데이터의 약 11.7%만 사용하면서도 AP_r +6.8, 전체 AP +8.5의 성능 향상을 보인다. 여기서 중요한 점은 단순히 성능이 높다는 것만이 아니다. GLIP(A)는 vocabulary-free가 아니지만, Open-Det은 추론 시 추가 vocabulary 없이 객체 이름을 직접 생성한다.
GLIP(C)는 더 큰 데이터셋을 사용한다. O365, GoldG, CAP4M을 포함하여 총 5.456M 데이터를 사용하고 AP 26.0을 기록한다. 그런데 Open-Det은 0.077M 데이터만으로도 AP 27.0을 달성한다. 데이터 규모로 보면 Open-Det은 GLIP(C)의 약 1.4%만 사용하면서 더 높은 전체 AP를 얻은 것이다.
이 결과는 Open-Det의 핵심 주장을 잘 보여준다. Open-Det은 단순히 OVD 모델보다 좋은 점수를 내는 것이 아니라, 훨씬 적은 데이터와 vocabulary-free 추론 조건에서도 경쟁력 있는 성능을 낸다.
Open-Det의 가장 중요한 비교 대상은 GenerateU이다. GenerateU는 Open-Det 이전의 대표적인 OED 프레임워크이며, 마찬가지로 vocabulary-free 설정에서 객체 이름을 생성한다.
같은 VG 0.077M 데이터만 사용한 경우를 보면 차이가 명확하다.
GenerateU는 149 epochs를 학습했을 때 AP_r 17.4, AP 25.4를 기록한다. 반면 Open-Det은 31 epochs만 학습하고도 AP_r 21.0, AP 27.0을 달성한다.
즉 Open-Det은 GenerateU 대비 약 20.8%의 epoch만 사용하면서도 AP_r +3.6, AP +1.6 향상을 보인다. 이는 앞에서 Figure 1을 통해 확인했던 빠른 수렴 속도가 최종 성능표에서도 그대로 드러난 결과이다.
더 흥미로운 비교는 GenerateU가 추가 데이터인 GRIT5M을 사용한 경우이다. GenerateU는 VG + GRIT5M, 총 5.077M 데이터를 사용했을 때 AP_r 20.0, AP 26.8을 기록한다. 그런데 Open-Det은 VG 0.077M만 사용하고도 AP_r 21.0, AP 27.0을 달성한다.
즉 Open-Det은 GenerateU가 사용한 데이터의 약 1.5%만 사용하면서도 AP_r +1.0, AP +0.2를 보인다. 이 부분이 Open-Det의 데이터 효율성을 가장 강하게 보여주는 지점이다.
또한 Open-Det을 50 epochs까지 학습하면 성능은 AP_r 21.9, AP 27.4로 더 올라간다. GenerateU + GRIT5M과 비교하면 AP_r +1.9, AP +0.6이다. Open-Det은 적은 데이터로 빠르게 수렴할 뿐 아니라, 학습을 조금 더 진행했을 때 추가적인 성능 개선도 얻는다.
Table 1의 하단은 backbone을 키웠을 때 Open-Det이 어떻게 확장되는지를 보여준다.
GenerateU Swin-Large는 VG + GRIT5M 5.077M 데이터를 사용해 AP_r 22.3, AP 27.9를 기록한다. 반면 Open-Det Swin-Small은 VG 0.077M만 사용하고도 AP_r 26.0, AP 30.4를 달성한다.
더 큰 backbone인 Open-Det Swin-Large를 사용하면 성능은 AP_r 31.2, AP 33.1까지 올라간다. GenerateU Swin-Large와 비교하면 AP_r +8.9, 전체 AP +5.2의 차이다.
이 결과는 Open-Det의 구조적 개선이 작은 모델에서만 우연히 나타난 것이 아니라, backbone scale이 커졌을 때도 유지된다는 것을 의미한다. 즉 Open-Det은 효율적인 구조이면서 동시에 확장성도 갖춘 프레임워크라고 볼 수 있다.
다만 Table 1의 모든 모델을 같은 의미로 직접 비교하면 안 된다. Mask R-CNN이나 Deformable DETR처럼 LVIS로 직접 학습되거나 fine-tuning된 모델은 Open-Det과 문제 설정이 다르다. Open-Det의 핵심 비교축은 closed-set detector와의 절대 우위가 아니라, vocabulary-free OED 설정에서의 데이터 효율성과 학습 효율성이다.

Table 2는 COCO와 Objects365에서의 zero-shot 평가 결과이다. 이 표는 Open-Det의 성능 향상이 LVIS에만 국한된 것이 아니라 다른 detection benchmark에도 전이되는지를 확인하기 위한 실험이다.
GenerateU Swin-Large는 VG만 사용했을 때 COCO에서 33.0 AP, Objects365에서 10.1 AP를 기록한다. 추가 데이터인 VG + GRIT를 사용하면 각각 33.6, 10.5까지 오른다.
반면 Open-Det Swin-Large는 VG만 사용하고도 COCO에서 35.8 AP, Objects365에서 13.8 AP를 달성한다. GenerateU가 추가 GRIT 데이터를 사용한 경우와 비교해도 COCO에서는 +2.2 AP, Objects365에서는 +3.3 AP 더 높다.
이 결과는 중요하다. Open-Det은 LVIS MiniVal에서만 좋은 것이 아니라, COCO와 Objects365처럼 다른 데이터 분포에서도 더 나은 zero-shot 성능을 보인다. 특히 추가 GRIT 데이터 없이 VG만 사용했다는 점에서, Open-Det의 개선이 단순히 데이터 규모에서 나온 것이 아니라 구조적 효율성에서 비롯된 것임을 보여준다.
정리
Table 1과 Table 2는 Open-Det의 핵심 주장을 실험적으로 뒷받침한다.
Open-Det은 OVD 모델과 달리 추론 시 추가 vocabulary에 의존하지 않는다. GenerateU와 같은 vocabulary-free OED 모델과 비교해도 훨씬 적은 데이터와 적은 epoch으로 더 높은 성능을 달성한다. 특히
0.077MVG 데이터만으로 GenerateU의VG + GRIT5M 5.077M설정을 뛰어넘는 결과는 Open-Det의 데이터 효율성을 가장 잘 보여준다.결국 이 실험 섹션의 메시지는 명확하다. Open-Det은 OED에서 단순히 성능을 높인 모델이 아니라, object detector, prompt distiller, object name generator, vision-language aligner를 함께 재설계하여 학습 효율과 데이터 효율을 동시에 개선한 프레임워크이다.
4.2에서는 Open-Det을 구성하는 각 모듈이 실제로 성능 향상에 얼마나 기여하는지를 분석한다.
앞선 Table 1, Table 2가 Open-Det이 기존 모델보다 좋은지를 보여줬다면, 4.2는 그 성능 향상이 어떤 구성요소에서 비롯되는지를 분해해서 보여주는 섹션이다.
즉, Open-Det이 단순히 여러 모듈을 붙여놓은 모델이 아니라, 각 구성요소가 실제로 의미 있는 역할을 하는지 검증하는 부분이다.

Table 3은 Open-Det의 주요 구성요소를 하나씩 추가했을 때 성능이 어떻게 변하는지를 보여준다.
가장 기본 baseline은 아무 구성요소도 추가하지 않은 상태이며, 이때 성능은 AP_r 10.2, AP 19.6이다. 여기서 ODR(Object Detector)을 추가하면 AP_r 13.9, AP 23.1로 상승한다.
이는 3.2에서 설명한 decoupled one-to-many / one-to-one matching 구조가 실제로 box detector의 수렴을 빠르게 만들고, 전체 detection 성능에도 영향을 준다는 것을 의미한다.
ODR은 단순히 detector 구조를 바꾼 모듈이 아니라, Open-Det 전체의 학습 안정성과 localization 품질을 끌어올리는 출발점이다.
그 다음 BVLA-M을 추가하면 AP_r 14.7, AP 23.5가 된다. 상승 폭 자체는 ODR만큼 크지는 않지만, Vision-Language alignment를 개선하는 방향으로 성능이 추가 개선된다.
BVLA-M은 decoder query 와 text embedding 를 단순히 한 방향으로만 맞추지 않고, V-to-L과 L-to-V 양방향에서 alignment score를 계산한다. 따라서 query-text matching이 더 안정적으로 이루어진다.
Table 3에서 가장 눈에 띄는 변화 중 하나는 VLD-M을 추가했을 때이다.
ODR과 BVLA-M만 사용한 경우에는 AP_r 14.7, AP_c 20.3, AP 23.5이다. 여기에 VLD-M을 추가하면 AP_r 16.3, AP_c 24.2, AP 26.3으로 오른다.
특히 AP_c는 +3.9, 전체 AP는 +2.8 상승한다.
이는 3.4에서 설명한 VLD-M의 역할이 실제로 중요하다는 것을 보여준다. VLD-M은 detector query를 그대로 LLM에 넣는 대신, backbone feature와 encoder feature를 통해 query에 visual context를 보강하고, VLM의 text embedding 지식을 VL-prompts로 증류한다.
VLD-M의 성능 향상은 Open-Det에서 semantic gap을 줄이는 과정이 단순한 아이디어가 아니라 실제 성능에 직접적으로 기여한다는 근거이다.
즉, Open-Det의 핵심은 “LLM을 붙였다”가 아니다. Detector query를 LLM이 이해할 수 있는 prompt representation으로 바꾸는 중간 과정이 핵심이다.
VLD-M까지 추가한 뒤 Object Name Generator, 즉 ONG를 추가하면 AP_r 16.9, AP 26.3이 된다. 전체 AP는 유지되지만 rare category 성능이 조금 오른다.
ONG에는 LoRA Head와 Text Denoising이 포함된다. 이는 LLM의 object name generation 학습을 안정화하기 위한 구성이다. 특히 rare category에서는 데이터가 부족하기 때문에, noisy prompt에서도 안정적으로 이름을 생성하는 능력이 중요하다.
마지막으로 Masked Alignment Loss와 Joint Loss를 추가하면 성능은 AP_r 21.0, AP 27.0까지 상승한다. Losses를 추가하기 전과 비교하면 AP_r +4.1, AP +0.7이다.
Table 3에서 가장 중요한 점은 최종 성능 향상이 특정 모듈 하나에서만 나온 것이 아니라, detector 구조, vision-language alignment, prompt distillation, name generation, loss 설계가 함께 누적되어 만들어진다는 것이다.

Table 4는 3.6에서 설명한 Masked Alignment Loss와 Joint Loss가 각각 어떤 영향을 주는지 보여준다.
기본 상태에서는 AP_r 16.9, AP 26.3이다.
Masked Alignment Loss만 추가하면 AP_r 18.6, AP 26.6이 된다. 즉 rare category 성능이 +1.7 상승한다.
MAL은 query-text alignment 과정에서 같은 의미의 text를 잘못 negative로 밀어내는 문제를 줄인다. 특히 rare category에서는 학습 샘플이 적기 때문에, 잘못된 negative supervision 하나하나가 더 큰 영향을 줄 수 있다.
Masked Alignment Loss는 rare category에서 발생하기 쉬운 contradictory supervision을 줄여 alignment 학습을 안정화한다.
Joint Loss만 추가한 경우에는 AP_r 19.5, AP 26.5이다. rare category 기준으로는 +2.6 상승한다.
Joint Loss는 binary score, alignment score, IoU score가 서로 일관되게 움직이도록 만든다. 좋은 query라면 object일 확률도 높고, box도 정확해야 하며, text와도 잘 맞아야 한다. Joint Loss는 이 세 조건을 함께 반영한다.
두 loss를 함께 사용하면 AP_r 21.0, AP 27.0으로 가장 좋은 성능을 얻는다.
MAL은 alignment label의 모순을 줄이고, Joint Loss는 objectness prediction을 localization 및 semantic alignment와 연결한다. 두 loss는 서로 다른 문제를 해결하기 때문에 함께 사용할 때 가장 큰 효과를 낸다.

Table 5는 Object Name Generator 내부의 LoRA Head와 Text Denoising이 각각 어떤 역할을 하는지 보여준다.
기본 상태에서는 AP_r 15.3, AP 26.0이다.
LoRA Head만 추가하면 AP_r 16.5, AP 26.4로 오른다. LoRA Head는 무거운 LLM head 전체를 직접 업데이트하지 않고, 작은 low-rank parameter를 통해 빠르게 적응하도록 돕는다.
이는 학습 초반 noisy alignment가 LLM의 pre-trained head를 망가뜨리는 문제를 줄인다.
Text Denoising만 추가하면 AP_r 19.9, AP 26.2가 된다. 특히 rare category에서 상승 폭이 크다.
Text Denoising은 text embedding에 Gaussian noise를 추가하고, LLM이 이를 다시 복원하도록 학습시키는 방식이다. 이를 통해 LLM은 완벽하지 않은 VL-prompt가 들어와도 더 안정적으로 object name을 생성할 수 있다.
LoRA Head와 Text Denoising을 함께 사용하면 AP_r 21.0, AP 27.0으로 가장 좋은 성능을 기록한다.
Table 5는 Object Name Generator의 핵심이 단순히 LLM을 사용하는 것이 아니라, LLM을 noisy visual-language prompt에 안정적으로 적응시키는 데 있다는 것을 보여준다.
4.2 정리
4.2의 ablation 결과는 Open-Det의 설계가 각각 독립적으로 의미 있는 기여를 한다는 것을 보여준다.
ODR은 detector convergence와 localization을 개선한다. BVLA-M은 query-text alignment를 강화한다. VLD-M은 VLM의 alignment 지식을 VL-prompts로 증류하여 semantic gap을 줄인다. Object Name Generator는 LoRA Head와 Text Denoising을 통해 LLM generation 학습을 안정화한다. 마지막으로 MAL과 Joint Loss는 alignment supervision과 binary classification을 더 일관되게 만든다.
결국 Open-Det의 성능 향상은 하나의 큰 모듈에서 나온 것이 아니라, OED 학습 과정에서 발생하는 병목들을 detector, alignment, prompt, generator, loss 단계에서 각각 정리한 결과이다.
4.3에서는 Open-Det이 실제로 Vision-Language alignment를 개선했는지 정량적으로 확인한다.
Open-Det에서 alignment 개선을 담당하는 핵심 모듈은 두 가지이다. 하나는 query-text alignment를 직접 개선하는 BVLA-M이고, 다른 하나는 VLM의 image-text knowledge를 VL-prompts로 증류하는 VLD-M이다.
논문은 LVIS MiniVal의 50,000개 이상 object instance를 대상으로 GenerateU와 Open-Det의 alignment score를 비교한다. Appendix의 Fig. 8에 따르면, GenerateU의 alignment score는 0.448 ± 0.026인 반면 Open-Det은 0.555 ± 0.074를 기록한다.
이 결과는 Open-Det의 성능 향상이 단순히 detector 구조 개선에서만 나온 것이 아니라, vision query와 text embedding 사이의 정렬 자체가 더 강해졌기 때문임을 보여준다.
또한 Appendix의 Fig. 9에서는 generated text와 ground-truth category name 사이의 similarity도 비교한다. Open-Det은 0.628 ± 0.067, GenerateU는 0.620 ± 0.077을 기록한다. 차이가 아주 크지는 않지만, Open-Det이 생성한 object name이 정답 category와 더 가까운 의미를 가진다는 근거로 볼 수 있다.
즉 4.3의 메시지는 명확하다. BVLA-M은 query-text alignment를 개선하고, VLD-M은 그 alignment 지식을 VL-prompts로 옮겨 LLM이 더 정확한 object name을 생성하도록 돕는다.
Open-Det의 핵심은 box를 더 잘 찾는 것뿐 아니라, 찾은 region을 언어 의미와 더 정확히 연결하는 데 있다.

4.4에서는 Figure 4를 통해 Open-Det의 정성적 결과를 보여준다.
Figure 4는 LVIS MiniVal 이미지에 대해 Ground Truth, GenerateU, Open-Det의 detection 결과를 비교한다. 논문은 Open-Det이 GenerateU보다 더 다양한 potential object를 탐지하고, 큰 객체뿐 아니라 작은 객체와 세밀한 부분까지 더 잘 잡아낸다고 설명한다.
예를 들어 Figure 4에서는 Open-Det이 cabinet, rug, light, radiator, fireplace 같은 실내 객체뿐 아니라, sidewalk, shadows, street, small sign, sky lift, head, pole, ear, eye, pillow 같은 세밀한 객체나 부분까지 더 풍부하게 탐지하는 모습을 보여준다.
Figure 4의 핵심은 Open-Det이 사전 vocabulary 없이도 이미지 안의 다양한 객체를 더 폭넓게 발견하고 이름 붙일 수 있다는 점이다.
GenerateU와 비교했을 때 Open-Det은 단순히 더 많은 box를 찍는 것이 아니라, 객체 크기와 granularity가 다른 대상까지 더 안정적으로 포착한다. 이는 앞선 Table 1, Table 2에서 보였던 성능 향상이 실제 시각화 결과에서도 드러난다는 의미이다.
결국 Figure 4는 Open-Det이 OED 모델로서 더 실용적인 이유를 직관적으로 보여준다. 추론 시 추가 category prior 없이도 이미지 속 다양한 객체 후보를 발견하고, 이를 자유 형식 이름으로 연결할 수 있기 때문이다.
4.5에서는 Open-Det의 한계를 짚는다.
저자들은 Open-Det도 GenerateU와 마찬가지로 cross-modal semantic discrepancy 문제에서 완전히 자유롭지 않다고 말한다. 즉 visual region과 image-like textual embedding 사이에는 여전히 의미적 간극이 존재한다.
이 간극은 하나의 모듈에서만 발생하는 것이 아니다. Backbone, detector, VLM, LLM이 서로 연결되는 과정 전체에서 발생한다. Open-Det은 BVLA-M, VLD-M, MAL, Joint Loss로 이 문제를 줄이지만, 완전히 제거하지는 못한다.
Open-Det의 한계는 결국 OED 자체의 어려움과 연결된다. Region-level visual feature를 free-form language generation으로 안정적으로 변환하는 것은 여전히 어려운 문제이다.
저자들은 향후 개선 방향으로 더 강한 foundation model 사용을 제안한다. 예를 들어 vision backbone으로 InternImage나 Strip-MLP, VLM으로 ALIGN이나 CogVLM, language model로 DeepSeek 같은 모델을 사용할 수 있다고 언급한다. 또한 추가 데이터셋을 활용하는 것도 성능 향상에 도움이 될 수 있다고 본다.
또 하나의 흥미로운 방향은 segmentation decoder를 Open-Det에 통합하는 것이다. Segmentation decoder가 추가되면 mask prior를 통해 더 정밀한 region feature를 얻을 수 있고, 이는 semantic gap을 줄이는 데 도움이 될 수 있다.
즉 Open-Det은 향후 detection과 segmentation을 함께 다루는 unified framework로 확장될 가능성이 있다.
정리하면, Open-Det은 OED의 학습 효율과 성능을 크게 개선했지만, visual region과 language representation 사이의 의미 간극은 여전히 핵심 과제로 남아 있다.
이 논문은 Open-Ended Object Detection(OED)을 위한 새로운 generative framework인 Open-Det을 제안한다.
Open-Det의 핵심 목표는 명확하다. 기존 GenerateU가 OED를 가능하게 만들었지만, 대규모 데이터와 많은 GPU 자원, 긴 학습 epoch을 요구한다는 한계가 있었다. Open-Det은 이 문제를 해결하기 위해 detector, prompt distiller, object name generator, vision-language aligner를 함께 재설계한다.
Open-Det의 핵심 기여는 OED에서 box detector와 LLM object name generator의 학습을 동시에 가속화했다는 점이다.
Detector 측면에서는 decoupled one-to-many / one-to-one matching 구조를 통해 box localization의 수렴을 빠르게 만든다. Language generation 측면에서는 VLD-M을 통해 VLM의 alignment knowledge를 VL-prompts로 증류하고, 이를 LLM에 전달하여 object name generation을 안정화한다.
또한 BVLA-M은 vision query와 text embedding을 양방향으로 정렬하여 semantic gap을 줄이고, Masked Alignment Loss와 Joint Loss는 학습 과정에서 발생하는 contradictory supervision과 binary classification 불안정을 완화한다.
결국 Open-Det은 단순히 새로운 모듈 하나를 추가한 모델이 아니다. OED 학습 과정에서 발생하는 병목을 단계별로 나누어 해결한 프레임워크이다.
정리하면, Open-Det은 적은 데이터와 적은 학습 자원으로도 vocabulary-free object detection과 free-form object name generation을 더 효율적으로 수행할 수 있음을 보여준다.
실험적으로도 Open-Det은 GenerateU보다 훨씬 적은 데이터와 epoch을 사용하면서 더 높은 성능을 달성한다. 특히 LVIS, COCO, Objects365에서의 zero-shot 결과는 Open-Det이 특정 데이터셋에만 맞춰진 개선이 아니라, OED 설정 전반에서 유효한 구조적 개선임을 보여준다.
물론 한계도 남아 있다. Visual region과 language representation 사이의 semantic gap은 여전히 완전히 해결되지 않았다. 하지만 Open-Det은 이 간극을 줄이기 위한 효과적인 방향을 제시했고, 향후 더 강한 foundation model이나 segmentation decoder와 결합될 경우 detection-segmentation을 아우르는 더 일반적인 open-ended perception framework로 확장될 가능성이 있다.
결론적으로 Open-Det은 OED를 더 실용적인 방향으로 밀어낸 논문이다. GenerateU가 “OED가 가능하다”를 보여준 논문이라면, Open-Det은 “OED를 더 효율적으로 학습할 수 있다”를 보여준 논문이라고 정리할 수 있다.