[ECCV 2022] Simple Open-Vocabulary Object Detection with Vision Transformers (OWL-ViT)

안녕하세요. 저번 주에는 OWOD 태스크 중 Foundation model을 활용한 FOMO를 리뷰했었는데, 이번 주 리뷰는 FOMO의 베이스라인으로 활용됐던 OWL-ViT에 대해 리뷰를 해보려고 합니다. OWL-ViT는 Open-World Localization을 위한 ViT라는 의미를 이름으로 담고 있는데요, 다양한 이미지-텍스트 데이터 쌍에서 학습된 Open Vocabulary object Detection(OVD) network라고 할 수 있겠습니다. 텍스트에 설명된 대상 객체를 검색하고 감지하기 위해 하나 이상의 텍스트 쿼리로 이미지를 쿼리하는 데 사용할 수 있는 모델이라고 볼 수 있습니다. OVD는 사전 정의된 클래스 집합에 국한되지 않고, 다양한 객체를 탐지할 수 있는 태스크를 말하는데, 전통적인 객체 탐지 모델은 학습 데이터에서의 특정 클래스만 인퍼런스 때 탐지할 수 있는 반면, OVD는 학습 데이터에 없는 새로운 클래스를 탐지할 수 있다는 점에서 OWOD와 유사한 면이 있다고 볼 수 있겠습니다.

그럼 리뷰 시작하겠습니다.

Introduction

object detection은 CV분야에서 근간이 되는 태스크라고 할 수 있겠습니다. 그래서 많은 연구들이 이루어져 왔고, 최근까지의 detection model들은 전형적으로 small, semantic categories에 대한 고정된 범주로 제한적이었습니다. 왜냐면 locaized training data 를 large/open label spaces에서 얻어진 것은 cost가 많이 들고, 시간도 많이 들기 때문이죠.
그러나 강력한 언어 인코더와 대조적인 이미지-텍스트 훈련의 개발, 즉 아케텍쳐의 개선들로 인해 이러한 상황이 변화했습니다. 특히 이런 모델들은 웹을 통해 풍부하게 제공되는 이미지-텍스트 쌍으로부터 이미지와 텍스트의 공유 표현을 학습하게 됩니다. 이렇게 많은 양의 이미지-텍스트 데이터들을 모아 contrastive learning으로 활용하자 zero-shot classification 성능과 기타 언어 기반 작업에서 주요한 개선을 가져올 수 있었습니다. 그래서 최근 많은 연구들은 이러한 모델의 vocabularity를 object detection 쪽으로 전이하고자 하는 경향을 보입니다. 예를 들면 cropped 이미지 임베딩에 대한 distillation이나 이미지 레벨 label을 통한 weakly supervision, 또는 self-supervision 등을 사용한다고 합니다.

그런데 여기서 저자들은 좀전에 언급한 이러한 방법들을 사용하지 않고도 강력한 open vocabulary detection을 달성하는 간단한 아키텍처와 end-to-end 훈련 레시피를 제공하고자 했습니다. 여러 분야로 확장되며 잘 사용되던 ViT를 시작으로 대규모 이미지-텍스트 데이터셋에서 contrastively pre-training을 진행합니다. 이 때 모델을 detection 태스크로 전이하기 위해 최소한의 변화만 주고자 하는데, 마지막 토큰 풀링 레이어를 제거하고 대신 각 트랜스포머 출력 토큰에 가벼운 classification & box 헤드를 추가하는 방식을 취했습니다. 그러면서 고정된 classification layer의 weight을 텍스트 모델에서 얻은 클래스 이름 임베딩으로 교체하여 open vocabulary classification을 가능하게 했습니다. standard detection 데이터셋에서 바이퍼타이트 매칭 loss라는 것을 사용하여 pretrained된 모델을 미세 조정하는데, 이미지와 텍스트 모델 모두 끝까지 fine-tuning됩니다.

이 접근 방식의 scaling 속성을 분석한 결과, 모델 크기와 사전학습 기간을 증가시키면 200억 개 이상의 이미지-텍스트 쌍에서도 detection 성능이 계속해서 개선되는 것을 발견했습니다. 이는 이미지-텍스트 쌍이 기존의 detection만을 위한 데이터와 달리 풍부하게 존재하고 추가 scaling을 가능하게 하기 때문에 중요하다고 볼 수 있겠습니다.

일단 핵심적으로 본 논문의 저자들이 제안하는 모델의 주요 특징은 “simplicity”와 “modularity”입니다.
이미지와 텍스트 구성 요소가 “융합되지 않았기 때문에” 모델은 쿼리 표현의 출처에 구애받지 않습니다.
따라서 이미지에서 유래한 임베딩으로 쿼리하여 one-shot detection learner로 모델을 simply하면서 수정 없이 사용할 수 있다고 합니다.

기존의 one-shot object detection은 객체를 보여주는 쿼리 이미지 패치만을 기반으로 새로운 객체를 탐지하는 데 있어 challeging한 문제였습니다.
이미지 조건부 one-shot 능력은 텍스트로 설명하기 어려운 객체(그러나 이미지로 쉽게 포착할 수 있는)를 탐지할 수 있게 하여 텍스트 조건부 detection의 강력한 확장성을 가져옵니다.

그런데 저자들은 이 문제에 특화되지 않은 일반적인 아키텍처를 사용함에도 불구하고, train 중 보류된 unseen COCO 카테고리에서 one-shot detection의 sota를 26.0에서 41.8 AP50으로 무려 72% 향상시켰습니다.

저자들의 모델은 LVIS 데이터셋의 unseen 클래스에서 open-vocabulary 텍스트 기반 탐지에서 전체적으로 34.6% AP와 드문 클래스에서 31.2% AP를 달성했습니다.

<contribution>

저자들이 주장하는 contribution은 다음과 같습니다.

  1. 이미지 레벨의 사전 학습을 open vocabulary object detection으로 전이하기 위한 간단하고 강력한 방법을 제안합니다.
  2. 현저히 우수한 one-shot의(이미지 조건부) 탐지 성능을 달성했습니다.
  3. 우리의 설계를 정당화하기 위한 자세한 scaling 및 ablation study를 제공합니다.

저자들은 그들의 모델이 다양한 프레임워크에서 쉽게 구현될 수 있는 강력한 baseline이 되고, open vocabulary localization이 필요한 작업에 대한 유연한 출발점이 될 것이라 믿습니다. 본 방법은 ‘Vision Transformer for Open-World Localization’ 에서 따와 ‘OWL-ViT’이라고 이름지었다고 합니다.

Related Work

[Contrastive Vision-Language Pre-Training]
이미지와 텍스트를 공유된 공간에 임베딩하는 아이디어는 예전부터 zero-shot에 대한 일반화를 달성하는 데 사용되어 왔습니다. contrastive loss, 아키텍쳐들의 개선 등으로 최근 모델들은 명시적으로 human annotation 없이도 웹 상의 이미지-텍스트 데이터셋을 구축해서 이들로부터 일관된 시각 및 언어적 representation을 학습할 수 있었습니다. 이는 사용 가능한 학습 데이터를 크게 증가시키면서도 zero-shot classification 벤치마크에서 큰 개선을 이루워왔습니다. 최근의 이미지-텍스트 모델들은 저자들의 접근 방식과 호환되지만, 그래도 가장 유사한 접근은 LiT과 ALIGN이라고 합니다.

[Closed-Vocabulary Object Detection]
Object detection 모델은 전통적으로 closed-vocabulary 세팅으로 구성되어왔습니다. 초기에는 SSD나 Faster-RCNN 등과 같은 ‘one-stage”, “two-stage” detector가 생겨나다가, 더 최근에 이르러서는 트랜스포머를 이용한 DETR이 object detection을 set prediction 문제로 간주하여 bipartite 매칭으로 학습되고, 좋은 결과를 달성했습니다. 이런 아키텍쳐는 region proposal이나 NMS 등을 필요로 하지 않았습니다.
후속 연구들은 DETR의 더 효율적인 변형 등을 제안하면서 Deformable DETR, Efficient DETR, ViDT 등의 모델들이 제안되었고, 디코더 단계가 없는 YOLOS라는 아키텍쳐도 등장했습니다. 저자들의 방법론 또한 DETR을 간소화하고 디코더를 사용하지 않았는데, 추가적인 detection 토큰을 사용하는 YOLOS와 비교했을 때, OWL-ViT는 각 이미지 토큰에서 하나의 객체 인스턴스를 직접 예측해서 모델을 더욱 단순화 한다고 합니다.

[Long-Tailed and Open-Vocabulary Object Detection]
Closed-Vocabulary 한계를 넘는 detection을 위해, 고정된 classification layer을 언어 임베딩으로 대체하여 open-vocabulary detector를 만들 수 있습니다. 최근 open vocabulary detection에서는 contrastively trained된 이미지-텍스트 모델들과 클래식한 object detectors들 결합하여 많은 발전을 이뤘습니다.(ViLD, MDETR, GLIP, RegionCLIP, DETIC, OVR-CNN)
이 연구들의 main challenge는 바로 rare한 class에 대한 localized한 annotation이 부족함에도 불구하고, 어떻게 하면 이미지-텍스트 백본의 이미지 레벨 representation을 detection단에게 전이해줄 수 있을까에 대한 고민의 결과물들이었습니다. cost가 많이 드는 human annotation 없이 스케일 확장이 가능하기 때문에 이미지-텍스트 사전학습을 효율적으로 사용하는 것이 역시 중요하다고 볼 수 있겠습니다.

ViLD는 class-agnostic한 성질을 가진 RPN에 의해 crop하게 된 이미지 영역에다가 CLIP 또는 ALIGN을 적용하여 얻은 임베딩을 distillation합니다. 그러나 RPN은 novel object에 대한 일반화 성능을 제한하고 이는 ViLD의 두 단계의 distillation-training 과정에 의해서 약화됩니다.

RegionCLIP은 caption data에 대한 pseudo-label을 생성한 후, region-text contrastive pretraining을 거쳐 detection으로 전이하는 multi-stage 학습을 사용합니다. 이에 반해 저자들의 방법은 공개된 detection 데이터셋에서 이미지와 텍스트 모델을 end-to-end로 미세조정하여 학습을 단순화하고 unseen class들에 대한 일반화 성능을 향상시킬 수 있다고 합니다.

MDETRGLIP은 전체 이미지에 대한 단일 텍스트 쿼리를 사용하여 detection을 phrase grounding 문제로 간주했습니다. 이는 한 번의 forward pass에서 처리할 수 있는 객체 카테고리의 수를 제한합니다. 이에 반해 저자들의 아키텍쳐는 이미지-텍스트 융합을 수행하지 않으며 여러 독립적인 텍스트 또는 이미지 기반 쿼리를 처리할 수 있어 더 단순하고 유연하다고 한 번 더 강조합니다.

OVR-CNN은 제한된 vocabulary에 대한 detection으로 이미지-텍스트 모델을 미세 조정하고, open vocabulary로 일반화하기 위해 이미지-텍스트 사전학습에 의존하는 점에서 저자들의 접근법과 가장 유사합니다. 그러나 저자들은 뭐가 차이가 있냐라고 언급하냐면 이 OVR-CNN과는 모든 모델링 백본과 loss 함수 선택에 있어서 다르다고 합니다. ResNet 대신 ViT를 쓰고, Faster-RCNN 대신 DETR 유사 모델을 쓰고, PixelBERT와 visual grounding loss 대신 LiT와 같은 이미지-텍스트 사전학습을 사용한다고 합니다.

이 와중에 DETIC은 저자들의 방식과는 조금 다르게 독립적으로, 이미지 레벨의 annotation만 있는 예제에서 classification 헤드만을 학습하여 long-tail detection 성능을 향상시켰다고 합니다.

저자들의 open-vocabulary detection 정의에서는 detection 학습과 test 간의 객체의 카테고리가 겹칠 수 있다고 합니다. 또한 학습 때 본 적이 없는 localized 인스턴스를 카테고리로 탐지할 때는 zero-shot으로 사용할 수 있는 것 같습니다.

[Image-Conditioned Detection]
open vocabulary detection과 관련된 태스크로 이미지 조건부 detection이 있습니다. 이는 특정 카테고리의 객체를 보여주는 단일 쿼리 이미지와 일치하는 객체를 탐지하는 것이라고 보면 됩니다. 이 태스크는 본질적으로 쿼리 이미지가 단일 학습 예제로 간주되기 때문에 원샷 객체 탐지라고도 합니다. 이미지 기반의 쿼리 방식은 객체의 이름조차 모를 때, 예를 들어 고유한 객체나 specialized한 기술 부분의 경우에도 open world detection을 가능하게 합니다. 저자들의 모델은 텍스트에서 기반한 임베딩 대신 이미지 기반 임베딩을 쿼리로 사용하여 모델 수정없이 이 작업을 수행해 낼 수 있다고 합니다. 최근엔 이 문제에 대한 기존 연구들이 주로 쿼리 이미지와 대상 이미지 간의 정교한 cross-attention을 사용하는 등 아키텍쳐 개선에 집중했는데, 저자들의 방법론은 대신 간단하면서도 큰 모델과 광범위한 이미지-텍스트 사전 학습에 의존합니다.

Proposed Method

<Overview>

좌측의 이미지는 우선 CLIP 과 유사하게 이미지-텍스트 쌍을 사용하여 이미지 와 텍스트 인코더를 contrastively하게 pre-training합니다. 그 후 우측의 이미지에서처럼, pre-training 된 인코더를 open vocabulary detection으로 전이해서 사용합니다. 이를 위해서 토큰 풀링을 제거하고 이미지 인코더 출력 토큰에 가벼운 classification, localization 헤드를 답니다. open vocabulary detection을 해내기 위해 쿼리 문자열은 텍스트 인코더로 임베딩되어 classification에 사용됩니다. 모델은 standard한 detection 데이터셋에서 미세조정되고, inference시에는 open vocabulary detection을 위해서 텍스트 기반의 임베딩을 사용하거나, few-shot 이미지 기반 detection을 위해 이미지 기반 임베딩을 사용하는 식으로 유동적으로 바뀔 수 있습니다.

저자들의 목적은 “simple”하면서 “scalable”한 open-vocabulary object detector를 만드는 것이었습니다.
그래서 그들은 closed-vocabulary detection에서 큰 성공을 거뒀으면서 scalability를 띄고 있는 standard한 트랜스포머 기반의 모델들에 집중했습니다. 이들은 two-stage로 방법론을 소개하는데요.

  1. large-scale image-text data에서 이미지와 텍스트 인코더를 서로 contrastively하게 pretrain한다.
  2. detection 헤드를 달고, medium-sized detection data에 대해 fine-tuning한다.

로 나눌 수 있겠습니다. 이 과정에서 모델은 open-vocabulary나 few-shot detection 을 위해 다른 방식으로 쿼리될 수 있다고 합니다.

<Architecture>

모델은 이미지 인코더로는 ViT를 사용하고, 텍스트 인코더로는 유사한 다른 트랜스포머 아키텍쳐를 사용합니다.(왼쪽 그림)
이미지 인코더를 detection에 맞게 적응하기 위해, token pooling과 최종 projection layer를 제거하고, 대신 각 output token representation을 선형적으로 projection하여 객체 별 이미지 임베딩을 classification에 사용합니다.(오른쪽 그림)
따라서 예측된 객체의 최대 수는 이미지 인코더의 token수(=시퀀스의 길이)와 동일합니다.
이는 bottleneck이 아니라고 주장하는데 그 이유는 모델의 시퀀스 길이가 최소 576이기 때문이라고 합니다.(예를 들어 입력 크기가 768×768인 ViT-B/32에서). 이는 오늘날의 데이터셋 최대 인스턴스 수(예를 들어 LVIS인 경우 294개의 인스턴스)보다 크다고 합니다. box 좌표는 token representation을 작은 MLP를 통해 얻고, 셋업은 DETR과 비슷하지만 디코더를 제거해서 더 간소화되었다고 합니다.

<Open-vocabulary object detection>

detection된 객체의 open-vocabulary classification을 위해 기존 연구를 따라 classficiation 헤드의 출력 레이어에서 학습된 클래스 임베딩 대신에 텍스트 임베딩을 사용한다고 합니다. 이 텍스트 임베딩(즉, 쿼리)은 카테고리 이름이나 다른 텍스트 객체 설명을 텍스트 인코더에 통과시켜서 얻습니다. 모델의 태스크는 각 객체에 대해 bbox와 각 쿼리가 해당 객체에 적용될 확률을 예측하는 것입니다. 각 이미지는 각각 분별되는 label space를 가지고, 이는 텍스트 문자열 집합으로 정의됩니다. 그래서 이 방식은 객체 카테고리 이름의 전체 집합을 각 이미지의 쿼리 집합으로 사용하는 특수한 경우의 고전적인 closed-vocabulary object detection을 포함합니다.

다른 방법들(MDETR 등)과 달리, OWL-ViT는 모든 쿼리를 하나의 토큰 시퀀스로 결합하지 않았습니다. 대신, 각 쿼리가 개별 객체 설명을 나타내는 별도의 토큰 시퀀스로 구성되며, 텍스트 인코더에 의해 개별적으로 처리됩니다. 또한, 이미지와 텍스트 인코더 간의 fusion을 포함하지 않았습니다. Early fusion은 직관적으로 봤을 때 두 모달리티 모두에서 representation을 가져갈 수 있다는 점에서 유익해 보일 수 있지만, 쿼리 인코딩을 위해 전체 이미지 모델을 통과해야 하고 이미지/쿼리 조합마다 반복되어야 하기 때문에 추론 효율성을 크게 감소시킨다고 합니다. 해당 모델의 셋업에서는 위와 반대로 이미지와 독립적으로 쿼리 임베딩을 계산할 수 있어, early fusion 방법보다 훨씬 더 많은 쿼리를 이미지당 사용할 수 있다는 것을 장점으로 꼽고 있습니다.

<One- or Few-Shot Transfer>

저자들의 셋업은 쿼리 임베딩이 텍스트 기원이 아닐 수도 있다고 합니다. 이미지와 텍스트 인코더 간의 fusion이 없기 때문에, 모델을 수정하지 않을 수 있는 장점을 가지며, 그러면서 classification 헤드에 텍스트 대신 이미지에서 파생된 임베딩을 쿼리로 제공할 수 있습니다. prototype의 객체 이미지의 임베딩을 쿼리로 사용함으로써, OWL-ViT는 이미지 조건부 one-shot 객체 탐지를 수행할 수 있습니다. 이미지 임베딩을 쿼리로 사용하는 것은 텍스트로 설명하기 어려운 객체의 탐지를 가능하게 합니다.

<Training>

이 이미지는 대체 속성이 비어있습니다. 그 파일 이름은 Pasted-Graphic-1024x340.png입니다

기존 연구에서는 주로 사전학습된 image-text 표현력을 분류 문제에 적용하는 방법을 많이 다뤄왔습니다. OWL-ViT는 이 방법론을 확장하여 open-vocabulary 탐지에 적용하고자 합니다. 기본적으로, 분류기는 영상 쿼리와 텍스트 쿼리 간의 유사도를 계산하여 출력을 내뱉는 방식으로 작동합니다. OWL-ViT의 아키텍쳐 구조는 조금 더 상세히 보자면 다음과 같습니다.

이미지 인코더: Vision Transformer (ViT)를 사용하며, 기존의 token pooling 및 projection layer를 제거하고 DETR과 유사한 구조의 탐지기를 부착합니다.
텍스트 인코더: Transformer 아키텍처를 사용하여 텍스트를 인코딩합니다.
쿼리 처리: 각 이미지에 대해 객체 카테고리 이름들을 쿼리로 제공하며, 분류 헤드는 각 이미지별로 정의된 레이블 공간에 대해 로짓을 출력합니다.
학습 방법은 크게 2단계로 나뉘는데,

  • Image-Level Contrastive Pre-Training

(왼쪽 그림) 학습 방식은 이미지와 텍스트 인코더를 contrastively하게 사전 학습하는 방식으로, 이미지-텍스트 데이터셋과 손실 함수를 LiT 방법론과 동일하게 사용한다고 합니다. 두 인코더는 모두 무작위 초기화 후 contrastive loss 형태로 학습을 진행하며, 이 때 패치 레벨의 피쳐가 아닌 텍스트 피쳐와 직접 contrastive learning을 수행할 이미지 레벨 피쳐가 필요하기 때문에 token pooling 과정을 적용합니다. 이 때 이미지 representation 에 대해선 token을 aggregate시키기 위해 MAP(multihead attention pooling)을 사용하고, 텍스트 representation에 대해선 텍스트 인코더의 최종 EOS(end-of-sequence) token을 사용합니다. 결국 두 모달리티의 피쳐를 가진 채로 CLIP과 동일하게 contrastive learning을 수행하는 것입니다. 이런 모델 구조에서 모델의 전체 파라미터 중 detection 헤드의 파라미터는 모델 크기에 따라 최대 1.1%정도만 포함하며, 인코더 전용의 아키텍쳐로 인해 모델의 대부분의 파라미터는 이미지 레벨의 사전학습 이점을 누릴 수 있게 됩니다.

  • Training the Detector

(오른쪽 그림) 인코더들의 사전학습까지 모두 마치고, 이제 OD 분류기에 대해 fine-tuning을 수행해야 하는데, 해당 분류기가 대형 트랜스포머의 경우 정교한 reguralization 과 data augmentation이 잘 동작하기 위해선 필요합니다. 그래서 기존의 방법론들을 따라가며 이를 수행하였다고 합니다. 그리고 본 방법론은 일반적인 detector 학습 절차와 유사하지만, 각 이미지에 대해 객체 카테고리 이름 세트를 쿼리로 제공합니다. 그러면서 DETR의 bipartite matching loss를 사용하되, long-tailed/open-vocabulary 탐지에 맞게 수정하여 focal sigmoid cross-entropy를 사용합니다. 이 때 모든 객체 카테고리가 모든 이미지에서 annotated된 것은 아니기 때문에, 여러 결합되고 annotated된 데이터셋을 사용하며, 각 객체는 여러 positive(present)와 negative(known to be absent) label을 가질 수 있습니다. 다시 말하면 동일한 물체가 다른 클래스 이름을 가질 수 있으며, 이를 위해 각 이미지에 대해 positive와 negative annotations를 쿼리로 사용하는 것입니다. 추가로, 데이터에서는 카테고리를 비율에 맞게 무작위로 샘플링하여 pseudo-negatives로 추가합니다.
OWL-ViT는 기존 방법론들에 비해 우수한 성능을 보인다고 주장하며, 특히 long-tailed 및 open vocabulary 탐지 문제에서 큰 개선을 이루었다고 하는데 실험파트를 살펴보며 확인해보겠습니다.

Experiments

우선 모델 구조의 detail을 보겠습니다.

OWL-ViT는 Vision Transformer (ViT) 구조를 이미지 인코더로 사용합니다. 이 때 ViT 모델의 크기, 패치 크기, Transformer와 hybrid 아키텍처를 따른 표기법을 사용합니다. 예를 들어, B/32는 ViT-Base 모델로 패치 크기가 32임을 의미합니다.
텍스트 인코더는 Transformer 아키텍처로 구성되어 있으며, 이미지 인코더와 유사한 구조를 가집니다. 기본 설정으로는 12개의 레이어, 512의 hidden size, 2048의 MLP 크기, 8개의 heads로 구성됩니다.
이미지와 텍스트 모델은 LiT 와 동일한 방식으로 약 36억 개의 이미지-텍스트 쌍으로 사전학습됩니다.
사전학습이 완료된 후 token pooling을 제거하고 detection heads를 추가합니다. 모델은 각 출력 토큰마다 하나의 박스를 예측합니다. 박스 좌표 예측 시 각 박스가 기본적으로 해당 토큰과 일치하는 이미지 패치 중심에 위치하도록 bias를 추가합니다. 이는 Region Proposal Networks가 미리 정의된 앵커에 대해 오프셋을 예측하는 방식과 유사하다고 볼 수 있겠습니다.

사전학습 시 대부분의 모델에서 이미지 크기는 224 × 224를 사용합니다. 사전학습 후 입력 크기를 변경하기 위해 이미지 위치 임베딩을 선형 보간법으로 조정하며, 모델은 batch size 256으로 최대 140,000 스텝까지 fine-tuning 된다고 합니다.

OWL-ViT는 open-vocabulary 디자인으로 인해서 서로 다른 레이블 공간을 가진 데이터셋을 쉽게 결합할 수 있다는 장점을 가지게 됐습니다. 이를 위해 정수형 레이블을 클래스 이름 문자열로 대체하면서 표현합니다. object level의 학습을 하기 위해 OpenImages V4 (OI), Objects 365 (O365), Visual Genome (VG) 등을 합치고 중복 제거를 통해 총 약 2백만 개의 이미지를 사용한다고 하며, 평가 데이터셋으로는 COCO, LVIS, O365를 사용합니다.

[Open-Vocabulary Detection Performance]

OWL-ViT는 LVIS v1.0 val 데이터를 주요 벤치마크로 사용합니다. 이 데이터셋은 희귀 카테고리가 많아 open-vocabulary 성능을 측정하기에 적합합니다. 평가 시 각 이미지에 대해 모든 카테고리 이름(총 1203개)을 쿼리로 사용하며, 클래스 예측은 7개의 프롬프트 템플릿을 앙상블하여 수행합니다. 일부 LVIS 카테고리는 학습 데이터셋에 포함되어 있어, ‘rare’ 카테고리의 박스 주석을 학습 데이터에서 제거하여 보지 않은 카테고리에 대한 성능을 측정합니다. ‘APLVIS’ 메트릭은 모델이 이 카테고리에 대해 ‘zero-shot’ 성능을 측정합니다.

Table 1에서는 OWL-ViT 모델과 기존 연구 결과를 비교합니다. 전체 LVIS 데이터셋을 사용하지 않은 open-vocabulary 모델과 비교하며, 일부 LVIS 데이터셋으로 학습한 결과는 회색으로 표시합니다. OWL-ViT는 다양한 아키텍처 크기에서 open-vocabulary(APLVIS)와 zero-shot(APLVIS) 시나리오 모두에서 경쟁력 있는 성능을 보입니다. 가장 성능이 좋은 모델은 공개된 CLIP 백본을 사용하여 31.2% APLVIS를 기록했습니다.

비교를 위해 MS-COCO 2017과 Objects 365 데이터셋에 대한 결과도 제공합니다. 이 평가에서는 일반화 성능을 측정하기 위해 O365+VG 대신 OI+VG로 모델을 학습시킵니다. 그러나 대부분의 COCO 및 O365 카테고리는 학습 데이터에 포함되어 있어 zero-shot이 아니며, 모델의 open-vocabulary 전이 능력을 테스트합니다. 최고의 모델(CLIP L/14)은 43.5% APCOCO, O365를 제외하고 학습한 모델은 15.8% APO365를 기록했습니다.

[Few-Shot Image-Conditioned Detection Performance]

앞서 설명한 것처럼 OWL-ViT는 텍스트 기반 쿼리 임베딩을 이미지 기반 쿼리 임베딩으로 대체하여 one- 또는 few-shot 객체 탐지를 수행할 수 있는데, few-shot detection에서는 예제 객체를 포함하는 박스를 가진 쿼리 이미지를 제공받습니다. 새로운 타겟 이미지에서 예제와 같은 카테고리의 객체를 탐지하고자 하며, 쿼리 임베딩을 얻기 위해 먼저 쿼리 이미지에서 추론을 실행하고, 쿼리 박스와 높은 박스 중복도가 있는 prediction 된 결과를 일부 필터링 후 선택합니다. 그런 다음 그 예측의 이미지 임베딩을 테스트 이미지의 쿼리로 사용합니다.

그런데 OWL-ViT는 이러한 태스크를 위해 설계되지 않았음에도 불구하고, COCO AP50에서 one-shot 및 few-shot detection 성능을 평가한 결과, 기존 방법들보다 훨씬 뛰어난 성능을 보였습니다(Table 2 참조). 이는 특히 conditioning queries의 수(즉 shot의 수)가 k = 10으로 증가할 때 두드러졌습니다.(이는 각 카테고리별로 여러 쿼리 예제(shot)의 임베딩을 단순 평균해서 쿼리합니다.) 이전 방법론들과 달리, 추론 중에 쿼리 이미지와 타겟 이미지의 특징에 대해 early fusion등을 사용하지 않아 얽히지 않게 했다는 것이, 수천 개의 다른 이미지 임베딩을 동시에 효율적으로 사용한 효과를 가져온 것 같고, 이로 인해 실효성있게 성능이 오른 것 같습니다.

위는 정성적 결과인데, 쿼리로 준 이미지만을 가지고 테스트 속 객체를 잘 찾아내는 모습을 보입니다.

Conclusion

상당히 복잡한 내용의 논문이었는데, 멀티모달로서의 image-text model을 open-vocabulary object detection으로 전이하면서도 강인한 성능을 보였다는 점이 주요한 내용이었던 것 같습니다. 그렇지만 짧은 기간 안에 해당 논문을 완벽히 이해하는 것도 쉽지 않았아서 해당 리뷰를 올린 뒤에도 지속적으로 논문을 다시 읽어보며 리뷰를 개선해나갈 예정입니다. 조금 더 읽어보면서 논문에 대한 저의 개인적인 생각들도 더 잘 확립해서 저번 주 리뷰한 FOMO와 태스크 세부 과정에서 어떤 점이 주로 달랐는지, 비교해볼 수 있으면 좋겠습니다. 다음 주는 더 완성도 있는 리뷰로 돌아오겠습니다. 감사합니다.

Author: 이 재찬

2 thoughts on “[ECCV 2022] Simple Open-Vocabulary Object Detection with Vision Transformers (OWL-ViT)

  1. 안녕하세요 좋은 리뷰 김사합니다.

    모델이 long-tail 분포를 갖는 데이터로 학습해도 강인한 성능을 보이도록 설계되었다고 하는데 어떠한 부분이 이에 대해 강인하도록 만들어주는 것인가요?

    그리고 리뷰에 올려주신 벤치마크 표에서 long-tail 분포에 강인한지는 AP LVIS rare 지표를 보면 되는 것인가요? 타 방법론과 백본이 달라 직접적인 비교가 어려울 것 같은데 이에 대해 어떻게 생각하시는지 궁금합니다.

    감사합니다.

  2. 안녕하세요 재찬님 리뷰 감사합니다

    박스가 해당 토큰과 일치하는 이미지 패치 중심에 위치하도록 bias를 추가하는 과정을 바운딩 박스를 효율적으로 예측하는 방법이라고 이해해도 될까요? 또 이 방법을 사용하는 이유가 시간을 단축시키기 위한 것으로 이해했는데, 실제 예측하는 성능에도 도움이 되나요?

답글 남기기

이메일 주소는 공개되지 않습니다. 필수 항목은 *(으)로 표시합니다