본문 바로가기

논문 리뷰/etc.

YOLO-World: Real-Time Open-Vocabulary Object Detection

[Project Page]

[Github]

[arXiv](2024/02/02 version v2)

 

 

Abstract

빠르고 정확하게 open-vocabulary detection이 가능한 YOLO 기반 모델인 YOLO-World 제안

 

[YOLO v1 ~ v7 총정리]

[YOLO v8]

 

 

Method

  • Model Architecture
  • Re-parameterizable Vision-Language PAN
  • Pre-training Schemes

 

 

Pre-training Formulation: Region-Text Pairs

전통적인 object detection에서는 instance annotation {box B, class c}를 통해 훈련된다.

본문의 annotation은 {B, text t}이며, YOLO-World는 이미지, 텍스트를 입력으로 받고 box {B}와 해당 embedding {e}를 출력한다.

 

Model Architecture

 

YOLO Detector, Text Encoder

YOLO v8, CLIP transformer text encoder

 

Text Contrastive Head

객체 임베딩 e와 텍스트 임베딩 w 간의 유사도 s를 계산하여 매칭한다.

 

Training with Online Vocabulary

4개의 이미지가 포함된 mosaic sample에 대해 해당 샘플에 포함된 positive nouns, 무작위로 샘플링된 negative nouns를 합쳐 80개의 Online Vocabulary를 구성한다.

 

Inference with Offline Vocabulary

User prompt를 인코딩하여 offline vocabulary를 얻는다.

 

Re-parameterizable Vision-Language PAN

YOLO v8과 같이 multi-scale image feature C로 하향식 및 상향식 경로를 따라 feature pyramid P를 구축한다.

또한 text-image 상호작용을 위해 T-CSPLayer, I-Pooling attention 제안.

 

Text-guided CSPLayer

Bottleneck을 통과한 image feature Xl (l ∈ {3, 4, 5})과 각 text imbedding Wj (j ∈ {man, woman, dog})의 상호작용을 기반으로 가장 관련성이 높은 단어 j를 찾고 sigmoid를 적용하여 image feature에 통합한다.

 

Image-Pooling Attention

각 scale의 feature를 max-pooling을 통해 집계하여 patch token 집합 X̃를 얻고 attention 수행.

 

Pre-training Schemes

Learning from Region-Text Contrastive Loss

훈련 시 입력 mosaic sample I와 텍스트 T가 주어지면 YOLO-World의 출력으로 얻은 annotation {Bi , ti}, 유사도 {Bk , sk}에 대해 YOLO v8에서 채택한 Task-Aligned Label assignment를 활용하여 예측을 GT annotation과 일치시키고 positive prediction에 t를 label로 할당한다.

 

이를 기반으로 object-text 유사도와 object-text 할당 간의 cross-entropy를 통해 contrastive loss Lcon을 구축한다.

또한 IoU, Distribution Focal Loss 추가. 입력 이미지 I가 image-text data에서 나온 경우 노이즈가 많으므로 λ = 0

 

Pseudo Labeling with Image-Text Data

Image-text pair에서 region-text pair를 생성하는 automatic labeling.

  1. n-gram 알고리즘을 통해 텍스트에서 명사구 추출
  2. 사전 훈련된 open-vocabulary detector (e.g. GLIP)를 사용하여 pseudo box 생성
  3. 사전 훈련된 CLIP을 통해 관련성이 낮은 pair를 필터링, NMS를 통해 중복 박스 필터링

총 82만 개의 annotation이 있는 25만 개의 이미지를 샘플링한다.

 

 

 

Experiments

빠르고 성능 좋아요.