[Image recognition] Grounded Language-Image Pre-training

11 분 소요


Grounded Language Image pre-training review

title

0. Abstract

  • object-level, language aware, semantic-rich visual representations을 위해 object detection - phrase grounding unified network은 GLIP (Grounded language-image pre-training) model을 제안

  • 제안하는 모델은 Detection 및 grounding accuracy를 둘 다 향상 가능하고, self-training 방식을 위해 massive한 image-text pair data를 leverage 할 수 있다.

  • 27M grounding data (3M Human annotated), 24M web-crawled image-text pair data로 훈련하여, COCO 및 LVIS Datasets에서 49.8AP, 26.9AP를 달성했다.

  • COCO Training data로 훈련 후에는 60.8 AP, 61.5 AP를 달성했다.

  • Object detection에 관한 13개의 task 에서, 1-shot transfer learning으로 fully-supervised dynamic head와 비슷한 결과를 냈다.

  • Idea) Image-text pair로 훈련시킨게 왜 각 task에서 더 성능이 좋지? 두 task 간에 필요로 하는 weight는 서로 다를텐데, 어떻게 상호보완적인 결과가 되는걸까?

1. Introduction

  • Visual recognition의 기존 model들은 pre-determined sample 위주로 학습하여 generalization 성능이 떨어진다.

  • CLIP은 image-text pair data가 image-level visual representation을 학습하는데 좋다는 것을, 학습 후 image classification 혹은 text-image retrieval task에 transfer learning한 결과가 좋다는 것을 보여줌으로써 입증하였다. 하지만 fine-grained feature가 필요로 되는 task (object detection, segmentation ..)에는 부족함이 있었다.

  • 본 논문에서는 Phrase grounding이 object-level, language-aware, semantic-rich visual representation task에 transfer-learning시에 효과적임을 입증하고자 한다.

  • Parase grounding: Object - sentence간의 fine-grained correspondence를 확인하는 작업을 의미

  • 제안하는 방법은 object detection 및 phrase grounding을 통합함으로써, object detection을 context-free phrase grounding (즉, 이미지 전체의 맥락 보다는 각 객체에 집중한 phrase grounding) 으로, phrase grounding을 contextualized object detection task (각 object의 phrase로 전체 context를 추론하는 task) 로 보는 방법이다.

  • 1.1 Contribution

    1. Unifying detection and grounding by reformulating object detection as phrase grounding

    title

    • Detection model의 input을 일반 image에서, 일반 image + image description sentence로 변경하는 방법을 사용했다.

    • 또한 dual-encoder 형식을 취하여 두 feature을 곱하는 방식으로 하나의 feature로 통합시키고자 하였으며, 이 방식을 통해 모든 object detection model에 본 방식을 적용 가능하게했다.

    • CLIP은 마지막에 dot product layer를 통해서 두 특징을 고려하는 반면에, 본 architecture에서는 deep fusion 방식을 사용했다.

    • 결과적으로 볼 때, detection 및 grounding side 모두 성능이 향상되었다.

    1. Scaling up visual concepts with massive image-text data
    • GLIP 학습을 위해, 27M grounding data(human-annotated fine-grained data (3M) + web crawled data (24M))에 NLP parse를 teacher model로 삼고 pseudo annotations을 진행하여 data를 refine했다.

    • figure 2에서 확인 가능한 것처럼, 본 방식을 통하면 pre-determined label이 아닌 경우에도 prediction이 가능해 LVIS 및 13개의 down=stream task에 관해서 큰 성능 향상을 이끌어 냈다.

    • COCO 2017 val, test에서는 60.8 AP 및 61.5 AP를 이루어냈다.

    1. Transfer learning wigh GLIP: one model for all
    • 앞선 두 contribution인, grounding reformulation 및 semantic-rich pre-training을 통해 human annotations 없이도 COCO 및 LVIS에서 좋은 성능을 이끌어냈고, 13개의 object detection 관련 task에서도 좋은 결과를 이끌어냈다.

    • 또한 Object 365를 통해 10-shot supervised baseline보다 GLIP-L로 1-shot training 한 결과가 비슷한 수치가 도출되었다. (1-shot? class 중 하나가 겹친다는 말인가? 보통 stage의 개념이 shot 아닌가?)

    • 또한 GLIP 모델 전체가 아닌, 특정 기능을 수행하는 부분만 부분적으로 fine-tuning 한 경우에도 결과가 뛰어났다.

2. Related work

  • 기존 object detection을 훈련시키기 위한 데이터 셋들을 크게 만드는데는 많은 비용이 든다.

  • GLIP는 Phrase grounding을 object detection과 접목시켜서 image-text의 massive한 paired data를 활용하여 이를 극복하고자 했다. (이 방법이 해결 방안이 될 수 있는 이유는 크롤링을 적용해서, bounding box 없이도 detector를 훈련시킬 수 있게 한다는건가?)

  • GLIP는 Dynamic Head 기반으로 구현되어 있으며, 어떤 object detector에도 부착 가능하다.

  • 최근에는 visual representation problem을 풀기 위해, language supervision 없이 (?) vision -language 방식을 사용하는 CLIP, ALIGN 모델 등이 Contrastive learning 방식을 이용해서 open-vocabulary image classification을 수행했다.

  • 또한 MDETR은 End-to-End 방식으로 image-text matching problem을 해결했다.

  • 본 논문은 transfer-learning에 집중하고 있고, various task, domain에 적용할 수 있기를 바라지만, zero-shot은 아니다. 이는 우리가 데이터 셋으로부터 rare한 category라도 배제하지 않았기 때문이고, 그 이유는 rare한 sample이 가지는 information이 rich해서 rare한 category prediction에 도움을 줄 것으로 예상되기 때문이다

  • 이런 방식은 open-vocabulary object detection과 유사하지만, 그와 다르게 우리는 실제 transfer-learning 시 고려되어야하는 cost에 더 집중했다.

3. Grounded Language Image Pre-training

  • Object detection과 phrase grounding은 image 내 object에서 semantic concept을 도출한다는데 공통점이 있고, 이 점에 착안해서 본 모델을 구성했다.

  • 3.1. Unified formulation

    • 3.1.1. Background: object detection

      • 전형적인 object detector는 input으로 image를 받고, backbone network를 통해 feature extraction을 수행하고 그 후, box classifier와 bounding box regressor를 사용해서 prediction을 진행한다.

      • 학습에 사용되는 loss는 classification loss $L_{cls}$, localization loss $L_{loc}$로 나뉘며 통합된 loss는 아래 식과 같다.

      title

      • Two stage detector에서는 region proposal network (RPN)을 이용해서 sample의 background, foreground 여부를 판정하고 최종 anchor를 refine 하는데, 이 때 class에 관한 정보가 사용되지 않으므로 본 논문에서는 localization loss인 $L_{loc}$에 RPN loss를 통합했다.

      • 또한 one-stage detector에서는 $L_{loc}$에서 centerness가 사용되기도 한다.

      • 뜬금없이 이 내용이 왜 나오는거지? 본 논문에서 사용한건가? 그리고 anchor-based 방식에서 centerness를 사용하나?

      • Classifier는 단순한 linear layer로 구성되고, classification loss $L_{cls}$는 아래와 같이 나타낼 수 있다.

      title

      • $O \in R^{NxD}$: Input image -> backbone network의 output

      • $W \in R^{CxD}$: Weight matrix for box classifier

      • $S_{cls} \in R^{Nxc}$: output classification logits

      • $T \in 0^{Nxc}$: target

      • loss: Two stage에서는 cross-entropy, one stage에서는 focal loss.

    • 3.1.2. Object detection as phrase grounding

      • 3.1.2.1. object - phrase classification standard

        • 각 proposal을 c개의 class로 분류하는 대신에, 본 논문에서는 c개의 phrase로 분류하는 방법을 사용한다.

        • c개의 phrase로 분류하는 가장 간단한 방법은 class name을 그대로 사용하는 것이다. (i.e. Prompt = “detect: person, bicycle, car, …, toothbrush”)

        • 본 논문에서는 Pre-trained BERT를 사용해서, “person, bicycle, car, toothbrush”처럼 명사 단위로 분류 가능하도록 encoder $EnC_L$을 Initialize 했고, 이 결과가 좀 더 human-friendly한 phrase를 사용하는 것 보다 결과가 더 좋았다. (Section 5.2 참조)

      • 3.1.2.2. Grounding model

        • Grounding model은 image encoder $Enc_I$ 및 language encoder $Enc_L$로 구성되며, 각 encoder의 output간의 correlation은 alignment score를 통해 계산된다.

        title

        • Notation: O = Image encoding output, P=Prompt encoding output, $S_ground$ = alignment score

        • 즉, 이 구조는 일반적인 detector에서 backbone에서 나온 output이 classifier에 해당하는 weight (P) 를 통해 loss ($S_ground$)가 도출되는 과정과 흡사하게 되어있다고 생각하면 된다.

        • 도출된 $S_{ground} \in R^{NM}$ 과 target matching시에 phrase중 중요한 부분을 positive matching 시키고, added-token을 negative matching 시키기 위해서, $R^{Nc} \to R^{N*M}$로 label을 변형하고, phrase내에 속한 token의 probability의 average로 phrase의 probability를 결정지었다.

        • 또한 loss는 multi-label cross-entropy를 사용해서 multi-label로 token마다 loss를 구한 후 average하는 방식으로 사용하였다. (Section 4, 5 확인 필요!)

    • 3.1.3. Equivalence between detection and grounding

      • 소개했던 reformulation을 이용해서 우리는 어떤 detection model도 전부 grounding model으로 변환할 수 있다.

      • 또한 Dynamic head object detector에 reformulation을 적용하기 전과 후의 evaluation 결과가 같다는 점에서, 우리는 이론적으로는 detection과 grounding의 training 및 inference 과정이 같다는 것을 확인할 수 있었다고 한다.

      • 이러한 점들은 GLIP model이 zero-shot manner로 arbitrary detection task를 가능하게한다.

      • 제안하는 grounding formulation 방식은 MDETR과 매우 유사하고 loss 역시 MDETR의 contrastive loss와 유사하지만, reformulation 및 simple unified loss로 더욱 좋은 결과를 얻었다.

      • 또한 proposed grounding model은 여러 zero-shot detection model들과 유사하지만, GLIP는 detection과 grounding을 통합하는 방식을 사용한다는 점이 다르다. (zero-shot detection에 관한 조사 및 GLIP와의 명백한 차이점 조사가 필요)

  • 3.2. Language-Aware Deep Fusion

    • Equation 3에서는 image와 text가 alignment score를 계산하기 위해서 최종단에서만 곱해지는 것으로 나와있지만 (late-fusion 방식), vision-language literature에서는 visual - language간의 deep fusion 방식을 필요로 한다.

    • 그러므로 우리는 image 및 text encoding layer 간의 deep fusion을 수행하는 방식을 사용한다.

    title

    • Notation: $O^{0}$: Output of vision backbone, $P^{0}$: Output of language backbone (BERT), L: The number of Dynamic modules, X-MHA: cross-modality multi-head attention.

    • 즉, 각 backbone의 output을 받아서, Dynamic module 및 BERT Layer (Pre-trained BERT’s top layer)를 거치면서 각 output을 multi-head attention으로 묶는 방식을 통해, 기존 output + fused output을 다음 레이어의 input으로 받는 과정을 되풀이하며 진행한다.

    title

    • 위 식은 일반 transformer와는 다르게 , query, value, output으로 구성되어 있다. 개인적으로는 image와 language사이의 attention을 찾는 것 이기 때문에, image와 language vector가 서로서로 query, key의 역할을 하기 때문에 따로 key라고 하는건지..? (내용 추가 필요)

    • 결론적으로, deep-fused encoder는 두 가지 이점을 가진다.

      1. Phrase grounding performance를 향상시킨다.

      2. Visual feature이 language feature를 배울 수 있게 해서, prediction이 text prompt의 영향을 받게 하여, 다양한 downstream detection task를 잘 수행할 수 있게 한다.

  • 3.3. Pre-training with Scalable Semantic-Rich Data

    • Human annotation은 너무 costy했기 때문에, 기존에는 teacher detector로 psuedo label을 만들어서 학습하는 방식을 사용하곤 했지만, 그 방식은 기존 데이터셋에 있는 카테고리만 학습 가능한 단점이 있었다. (최대 2000개 가량의 카테고리)

    • 반면에 제안하는 방법을 사용했을 때, grounding data + detected data로 구성한 self-training 방식을 사용하여 좀 더 data가 담고있는 정보의 양을 semantic하게 늘릴 수 있었다. (Flickr30K - 44,518, VG Caption - 110,689)

    • 또한 우리는 human_annotated data (detection + grounding)를 사용해서 GLIP를 훈련시켜 teacher model로 삼아 image-text data를 추출하고, NLP Parser를 이용해서 noun phrase를 추출한 후, student model을 훈련시켜서, figure 2에서 확인했던 것 처럼 좋은 결과를 이끌어냈다.

    • 왜 student model이 teacher model보다 좋을까? 그 이유는 teacher model은 noun phrase가 포함되지 않은 데이터셋으로 학습했기 때문에, 즉 rich-language context 없이 훈련했기 때문에, 배우지 않은 카테고리에 관해 결과를 도출해낼 수 없기 때문이다. 저자의 말에 따르면 “Educated guess”를 하지 못하는 것이다.

4. Transfer to Established Benchmarks

  • GLIP의 성능을 보여주기 위해 활용한 데이터 셋은, MS-COCO (Object detection), LVIS (Object segmentation with 1000 categories), FLickr30K (Phrase grounding) Datasets 총 3가지다.

  • 또한 ablation study처럼 3가지의 핵심적인 기능에 관하여 검증을 진행하였는데, Table 2는 검증 시 configuration을 의미한다.

title

title

  • GLIP-T (A)

    • Dynamic head based model.

    • Classification loss -> word-region alignment loss

    • Language encoder를 사용한 것으로 볼 때, lately fusion 방식을 사용한 것으로 추정

    • Object 365 dataset으로 pre-training

    • Backbone은 Swin-tiny

  • GLIP-T (B)

    • A에서 Deep fusion 방식을 추가
  • GLIP-T (C)

    • COCO Dataset을 활용하지 않음

    • Gold grounding ata (human annotated data)를 활용 (Flickr30K, VG Caption, GQA)

  • GLIP-T

    • Data set: GLIP-T (C)에서 활용한 데이터 셋 + Object 365 + Cap4M (Web + GLIP-T (C)로 Pseudo labeling)

    • CC (Conceptual Captions with 3M Data) + SBU Dataset을 추가적으로 사용하니 성능이 조금 더 향상됨.

  • GLIP-L

    • Backbone: Swin-Large model

    • FourODs + Object 365 + OpenImages + Visual Genome + IMageNetBoxes + Gold ground (GLIP-T (C)) + CC12M + SBU + 24M with generated boxes (NLP Parser model)

  • 4.1. Zero-shot and Supervised Transfer on COCO

    • GLIP의 Transfer ability를 검증하기 위해서 COCO Dataset을 활용하여, 조건을 zero-shot transfer 및 fine-tune transfer로 나누어 실험을 진행했다.

    • 추가적으로 GLIP-L Model의 fine-tuning 결과 역시 검증하였다.

    • 또한 Dynamic Head model을 Object 365 dataset으로 훈련시키고, COCO Dataset에 대해서 zero-shot evaluation을 진행했다. (COCO의 모든 Categories는 Object 365에 포함되어 있다.)

    • 결과는 Zero-shot GLIP Model이 supervised model보다 성능이 더 좋았다. (특정 모델에 비해서는)

    • 특히, Fine-tuned GLIP-L model은 COCO에서 60.8 AP, 61.5 AP를 2017 val, 2017 test set에서 다른 bells (EMA, Mix up, label smoothing… ) 없이 달성했다.

    • 이와 같은 결과는 COCO에 모든 Categories를 Object 365가 가지고 있고, deep fusion 방식을 사용했고, 마지막으로 grounding data를 사용했기 때문이라고 언급하고 있다.

    • GLIP-T (A), (B) 및 (C)의 Performance 차이를 볼 때, deep fusion 방식은 2 AP, grounding data는 1.8 AP을 향상시킴을 알 수 있다. (저자는 가장 강력한 contributor가 grounding data라고 하던데..)

    • 반면에 image-text data의 도입으로 향상된 점은 없었기에, rare class에 관한 분석을 위해 LVIS experiments를 수행했다.

  • 4.2. Zero-SHot Transfer on LVIS

    • Model의 zero-shot performance 검증을 위해 LVIS Dataset 중에서 diverse하고 rare한 object를 사용하여 평가했다. LVIS Dataset 중, 5,000 장의 이미지를 포함한 MiniVal과 full-validation set을 사용하여 검증하였다.

    • Zero-shot evaluation으로도 GLIP-T는 MDETR과 유사한 수준의 성능을, GLIP-0L은 Supervised-RPS를 크게 압도하는 성능을 보여주었다.

    title

    • 결과적으로, Gold-grounding data는 4.2 AP, image-text data는 3.1 AP를 증가시켜서, semantically rich grounding data가 rare object recognition에 중요한 영향을 미치는 것을 확인했다.
  • 4.3. Phrase Grounding on Flickr30K Entities

    • Model의 ground entities를 평가하기 위해, Flickr30K (Image-text data with human annotations) datasets을 이용하여 MDETR과 같이 Pre-training을 하고 (??) 평가를 진행했다.

    title

    • GLIP-T (With gold-grounding data)는 MDETR(GoldG+)과 유사한 결과를 냈다. 또한 detection data를 추가하는 것은 image 및 text correlated task 사이의 시너지를 향상시켜준다는 것을 결과로부터 다시 한 번 확인할 수 있었다.

    • GLIP-L은 SOTA보다 2.8 AP 높은 87.1 Recall을 달성했다.

  • 4.4. Analysis

    • 이번 section에서는 다른 데이터 셋에 관해 GLIP-T의 Performance를 ablation study 형식으로 파악해보았다.

    title

    • 기본적으로는 detection dataset으로부터 bootstrap하는 방식으로 데이터를 만들었다. 이 때, detection dataset과 grounding data가 기존 pair가 아니더라도 효과가 좋을 수 있을까? 하는 의문점이 드는데, 3가지의 다른 데아터 셋 (bootstrap 방식으로 추출?)을 훈련시켰을 때는, 여전히 grounding data의 포함된 것이 performance가 더 좋았다.

    • 두 번째로, 일반적으로는 image와 categories를 늘리는 방식으로 dataset을 scaling-up 하는데, 이 방식에 비해서 grounding data를 scaling-up 하는 것이 얼마나 효과가 좋을까? 하는 의문점이다.

    • 결과적으로는, image와 categories만을 늘린 dataset으로 GLIP-T를 훈련시키는 것은 performance 증가가 없었고, gold-grounding data 및 image-text를 늘리는 것은 performance가 크게 향상됨을 확인했다.

5. Object detection in the wild

  • GLIP가 Real-world problem에 얼마나 잘 적용될 수 있을지 알기위해서, 13개의 dataset (Target size, ratio 등이 조금씩 다른 dataset들)을 조합해서 ‘Object detection in the wild’ 환경을 만들고 test 해보았다. (Detail한 내용은 Appendix 참조)

  • 결과적으로 두 가지 점을 통해서 GLIP의 Transfer performance가 뛰어나다는 것을 확인했다.

    1. Dataset의 fit한 data를 사용하지 않고도 baseline과 비슷한 performance를 보였다.

    2. 새로운 task에 적용시에, 모델은 그대로 두고 입력 text만 바꾸는 것으로도 좋은 performance를 보였다는 것을 볼 때, new domain transfer strategies를 enable하게 만들었다.

  • 5.1. Data Efficiency

    • 실험은 task-specific한 data를 zero-shot (no data provide)부터 X-shot (Provide at least X examples per category)까지 변화시키면서 측정했다.

    • 데이터 셋은 training data 중 category name을 pre-specified name으로 변형하되, hyperparameter는 고정시켜놓고 fine-tuning하는 식으로 진행하였다.

    • figure 3은 SOTA Model인 DyHead-T (pre-trained with Object 365)와 비교한 결과치를 나타낸다.

    title

    • 또한 각 데이터 셋에 대한 결과는 figure 4 및 appendix에서 나타난다.

    title

  • 5.2. One Model for All Tasks

    • Model이 커질수록 deployment에 관련된 주제는 부각되어 왔고, 따라서 한 모델이 얼마나 task-specific한 parameters 없이도 generalization이 잘 되는지가 중요하게 다뤄져왔다. 따라서 본 section에서는, GLIP를 deployment efficiency metric을 통해 평가했다.

    • 5.2.1. Manual prompt tuning

      • GLIP가 Language input에 따라서 큰 영향을 받는 만큼, 사용자가 이미지를 표현하는 어구를 자세하게 표현할 수록 GLIP의 Transfer 성능을 좋게 만들 수 있다.

      • 예를 들어, figure 5를 보면 input으로 object가 flat하고 round하다는 정보를 추가적으로 전달하는 것 만으로도, detection rate이 향상되었음를 확인할 수 있다. 이건 GPT-3과 매우 유사하게, 추가적인 annotated data나 model re-training 없이도 원하는 task를 수행 가능하다는 것을 뜻한다.

      title

    • 5.2.2. Prompt tuning

      • 우리는 easy한 deployment를 위해서 최소한의 parameter만 tuning하는 prompt tuning 방식을 사용한다.

      • Detection 관련 연구 중 하나 [56]에서는 box regression 및 classification head만 training 시키는’linear probing’의 효과를 주장했고, GLIP에서도 region 및 prompt embedding 사이의 box-head 및 projection layer를 fine-tuning하는 방식으로 ‘Linear probing’은 적용될 수 있다.

      • GLIP에서는 ‘Linear probing’을 위해서 language backbone을 사용해서 prompt embeddings를 얻고, 해당 prompt embeddings를 fine-tuning 하는 방식으로 ‘Linear probing’을 수행했다. (즉, language model의 input으로 들어가는 prompt만을 task-specific하게 수정해서 GLIP를 훈련시킴으로써 Task-specific한 network를 쉽게 훈련시킬 수 있다는 의미로 보여진다.)

      title

      • Figure 6은 GLIP의 각 모델들과 Dynamic head model을 각 fine-tuning 및 full-tuning method에 따라 학습시킨 결과를 의미한다.

      • GLIP-T (A) Model은 deep fusion 방식을 사용하지 않았기 때문에 prompt-tuning 및 linear tuning 시 비슷한 결과를 도출하였다. 반면에 GLIP-T 및 GLIP-L은 grounding model을 건드리지 않고, prompt-tuning만 가지고도 full-tuning에 가까운 결과를 얻었다.

      • 흥미롭게도, model과 data의 size가 커지면 커질수록, prompt-tuning 및 full-model tuning 사이의 performance 차는 줄어들었다. (GLIP-T, GLIP-L 비교 시).

      title

      • Table1에서는 GLIP-L이 prompt-tuning (With COCO)시, 14개의 dataset에서 높은 성능이 도출가능함을 보여준다.

6. Conclusion

  • GLIP는 object detection - phrase grounding을 통합한 네트워크로서, 여러 가지 조건의 fine-tuning 만으로 13개의 Object detection downstream task에서 좋은 결과를 보여주었다.

댓글남기기