오늘은 GLIP(Grounded Language-Image Pre-training)이라는 논문에 대해서 리뷰하겠습니다.
본 논문은 CLIP 등에 대한 기초 지식을 알고 있다는 전제하에 작성한 글입니다. 따로 해당 논문들에 대해에 대해 정리하겠지만 미리 공부하고 보면 더 도움이 될 것입니다.
세부적인 내용들은 찾아보시는 걸 권장하고 틀린 부분이 있으면 언제든 댓글로 말씀해주시면 수정하겠습니다.
(위의 언급된 기초지식들은 해당 블로그 다른 글에 작성되어있습니다.)
Github : https://github.com/microsoft/GLIP
Paper : https://arxiv.org/abs/2112.03857
Abstract
본 논문에서는 객체 수준, 언어 인식 및 의미론적으로 풍부한 시각적 표현을 학습하기 위한 Grounded Language-Image Pre-training(GLIP) 모델을 제시하였습니다. GLIP은 pre-training을 위해 object detection(객체 감지)와 phrase grounding(구문 접지)를 통합합니다.
구문 접지에 대해서는 이전 Grounding-DINO 글에도 간단하게 정리해놓았습니다. 구문 접지라는 내용이 논문에 굉장히 많이 나오기 때문에 꼭 숙지하시고 읽으시면 이해하는 데 좋을 것 같습니다.
https://ainotes.tistory.com/19
Introduction
Visual recognition 모델은 일반적으로 미리 결정된 객체 범주의 고정 집합을 예측하도록 훈련되며, 이는 새로운 시각적 개념과 도메인으로 일반화하기 위해 추가 레이블이 지정된 데이터가 필요하기 때문에 실제 응용 프로그램에서 사용하기에 제한됩니다. 즉, 정해진 데이터 라벨이 아니라면 다른 라벨의 객체들을 감지하는 데는 어려움이 있다는 뜻입니다.
그래서 텍스트와 이미지를 페어링하여 멀티-모달적인 방향으로 접근을 하여 zero-shot 학습이라는 많은 기존의 연구들이 있었습니다. 그 예로 CLIP을 들 수 있습니다.
그러나 이러한 CLIP 모델도 object detection, segmentation, uman pose estimation, scene understanding, action recognition, vision language understanding 등과 같은 세분화된 작업에는 object level 수준의 시각적인 표현이 매우 필요합니다.
그래서 본 논문에서는 문장의 구문과 이미지의 객체(또는 영역) 간의 세분화된 대응 관계를 식별하는 작업인 구문 접지가 객체 수준, 언어 인식 및 의미가 풍부한 시각적 표현을 학습하기 위한 효과적이고 확장 가능한 사전 학습 작업임을 증명하고, GLIP 모델을 제안합니다.
주요한 contribution은 아래와 같습니다.
1. Unifying detection and grounding by reformulating object detection as phrase grounding.
기존의 detection task에서 image만을 input으로 받는거에 반해, text(phrase, 문장)을 함께 입력해줍니다.
위의 그림을 예시로 들어보겠습니다.
그림 2의 왼쪽 그림을 보면 80개의 COCO 객체 클래스 이름으로 구성된 텍스트 문자열이 있고 "."으로 결합됩니다. 이를 오른쪽 그림과 같이 box classifier의 object classification logit을 word-region alignment scores(단어-영역 정렬 점수)로 변환할 수 있습니다. 즉, region(or box) visual feature과 token(or phrase) language feature을 내적한다고 보면 될 것 같습니다.
Language feature은 language model을 사용하여 계산이 되고, 이는 new detection(or grounding) 모델에 dual-encoder 구조를 제공합니다.
CLIP과 다른 점이 뭘까요?
CLIP은 마지막 dot product layer에서만 visual과 language를 fusion하지만, GLIP은 그림 2의 중간부분처럼 deep cross-modality fusion을 적용한다는 것입니다. Visual과 language feature가 서로 상호작용을 하며 우수한 성능을 보여준다고 저자는 설명합니다. 뒤에서 자세하게 설명하겠습니다.
2. Scaling up visual concepts with massive image-text data.
좋은 teacher model을 사용한다면 대규모 이미지-텍스트 쌍 데이터에 대한 grounding boxes를 자동으로 생성하여 GLIP pre-training data를 보강할 수 있게 됩니다. (= augmentation)
GLIP을 teacher model을 이용하여 이미지-텍스트 쌍 데이터를 가지고 학습을 합니다. Bbox annotation이 빠진 image-text데이터에는 pseudo-label을 생성해 Student Model을 학습합니다.
3. Transfer learning with GLIP: one model for all
Pre-training 과정에서 본 적 없는 데이터셋에서도 좋은 성능을 보여줍니다. 일반화가 뛰어나다는 뜻으로 해석하면 될 것 같습니다. 또한 GLIP는 사람의 추가적인 annotation이 거의 없거나 아예 없이 detection 분야 외에도 다양한 작업으로 transfer-learning이 될 수 있다고 저자는 설명합니다.
Grounded Language Image Pre-training
이 부분에서는 GLIP 모델에 대해서 자세하게 설명하겠습니다.
이론적으로 객체 감지와 phrase grounding은 매우 유사합니다.
3.1. Unified Formulation에서는 전통적인 객체 감지 방법과 phrase grounding 기술과 결합하는 방법을 설명합니다.
3.2. Language-Aware Deep Fusion에서는 이미지와 텍스트 간에 deep fusion을 추가하여 detection 모델을 언어 인식 및 strong한 phrase grounding 모델로 만드는 방법을 설명합니다.
3.3. Pre-training with Scalable Semantic-Rich Data에서는 reformulation 및 deep fusion을 통해 확장가능하고(scalable) 의미론적으로 풍부한 grounding data에 대해 GLIP을 Pre-training하는 기법에 대해 설명합니다.
3.1. Unified Formulation
(초반에 two-stage detector 등 객체 감지 모델에 대한 간단한 background 설명을 해주는데 해당 글에서는 굳이 적지는 않겠습니다.)
객체 감지과 Phrase Grounding의 loss 계산 구조가 유사하기 때문에 대부분의 Detection 모델은 Grounding의 form으로 바꿀수 있습니다.
Enc_I : Image encoder
Enc_L : Language encoder
O : the object/region/box features of the input image
W : classifier weight
S_cls : output classification logit
T : region과 class간의 target matching (이분 헝가리안 알고리즘 등..)
P : language encoder로부터 나온 contextual word/token features
기존의 객체 탐지 class가 Bird, Car, Dog...이었다면 이를 "Detection : Bird. Car. Dog. ~~~~" 처럼 프롬프트(prompt)로 변경하여 text encoder에 넣어줍니다. 결론적으로 이러한 방법을 통해 S_ground와 T를 얻을 수 있게 됩니다!!
근데 여기서 (sub)-word token수는 텍스트 prompt의 구문 수 c보다 항상 큽니다.
1) 일부 문구가 "traffic light"과 같이 여러 단어를 포함하기 때문
2) 일부 단일 단어 문구가 여러 개의 하위 단어 토큰으로 분할되기 때문 (toothbrush -> tooth / brush)
3) 일부는 "Detect:", ""과 같이 language 모델의 특수 토큰과 같은 추가 토근 때문
4) 토큰화된 sequence의 마지막에 [NoObj] 토큰이 추가되기 때문
3.2. Language-Aware Deep Fusion
CLIP 모델에서는 이미지와 텍스트는 별도의 encoder에 의해 인코딩되고 alignment scores를 계산하기 위해 마지막에만 융합됩니다. 저자는 이러한 모델을 late-fusion이라고 부릅니다.
하지만 GLIP 모델에서는 late-fusion 방식을 사용하지 않고, phrase grounding 모델을 학습하기 위해 visual과 language feature들의 deep fusion 방식을 사용합니다. (저자들은 early-stage fusion이라고도 하네요.)
위 GLIP 모델의 그림 중간에서 보시는 것처럼 마지막 몇 개의 encoding layer에서 이미지와 텍스트 정보들을 융합(fusion)합니다. 본 논문은 이미지 encoder로 Dyhead를 사용하고 텍스트 encoder로 BERT를 사용합니다.
deep fusion encoder는 아래와 같습니다. X-MHA가 먼저 수행되고 나서 각 개별 module에서 추가 계산을 하도록 되어있습니다.
L : Dyhead에서 DyheadModules의 개수
O : Vision backbone에서 visual feature
P : Language backbone(BERT)에서 token feature
X-MHA : Cross-modality Multi-Head Attetion
3.3. Pre-training with Scalable Semantic-Rich Data
현재 데이터를 수집하는 방법은 사람이 주석을 달기 때문에 비용이 상당합니다. 그래서 기존 연구들은 teacher 모델 (a pre-trained detector)들을 사용하여 raw 이미지로부터 box들을 예측하고, student 모델을 학습시켜 pseudo detection label들을 생성해냈습니다. 그런데 이렇게 만들어진 label은 teacher 모델 클래스에 국한되어있기 때문에 제한적으로 사용될 수 밖에 없었습니다. (=준지도학습)
하지만, GLIP 모델은 detection 데이터와 (특히)grounding 데이터 모두에 대해 학습이 가능합니다. 저자는 grounding data가 rich semantics to facilitate localization(localization을 용이하게 하는 풍부한 의미론?)을 제공하고 더 나아가서 self-training 방식으로 확장될 수 있다고 주장합니다.
왜 다를까요?
저자들이 주장하는 바는 아래와 같습니다.
Teacher 모델을 Gold Data로 학습합니다. 여기서 Gold Data란, human- Annotated Grounding + Detection 데이터를 의미합니다. Grounding data가 추가됨으로써 어휘를 확장하고 grounded caption에 나타나는 거의 모든 개념들을 알 수 있게 됩니다. (실제로 0.8M Gold Data를 사용하는게 2M detection 데이터를 사용하는 것보다 더 좋은 성능을 냈다고 합니다.
학습된 teacher 모델을 web collected 이미지-텍스트 데이터에 대한 box를 예측하여 pseudo label data을 생성합니다. Student model은 Gold Data + Pseudo label data로 학습합니다. 그렇게 되면 아래 그림처럼 의미론적으로 풍부한 개체(Semantically rich entities)에 대한 정확한 box를 생성할 수 있게 됩니다!
논문에서는 "the student model can possibly outperform the teacher model"이라고도 말합니다. 즉, Student 모델이 Teacher 모델보다 성능이 좋을 수 있다는 겁니다.
위의 예시 이미지를 가지고 설명을 해보겠습니다.
첫 번째 그림에서 Gold Data로 학습된 Teacher 모델 T는 왼쪽 그림의 이미지-텍스트 데이터를 pseudo labeling하려고 합니다. T는 vaccine이 무엇인지 모르는 상태이지만, 풍부한 Gold data덕분에 small vial(작은 병)은 뭔지 알고 있는 상태입니다.
그렇게 되면 현재 알고 있는 사실을 기반으로 educated guess(학습된 추측?)이 가능해집니다. 'a small vial of vaccine'은 하나의 세트이기 때문에 vial을 localize하면 vaccine도 같이 localize됩니다. 이렇게 해서 완성된 pseudo label이 student model에 입력됩니다.
(두 번째 그림도 마찬가지 예시입니다.)
논문의 Appendix에서 여러가지 예시를 들었는데 보시는 여러분들도 그림을 보시면서 해석해보시면 해당 내용을 이해하기 훨씬 쉬울 것이라 생각됩니다.
Experiments와 Conclusion은 실험 결과 및 토의 부분이기 때문에 따로 적지는 않았습니다.
'Machine Learning' 카테고리의 다른 글
PDFTranslate FastAPI 구현 (1) | 2025.02.04 |
---|---|
Stable Diffusion FastAPI 구현 (0) | 2025.02.03 |
Grounding-DINO FastAPI 구현 (1) | 2024.12.06 |
CNN 기반 모델들 (0) | 2024.06.25 |
딥러닝 기초 지식 (2) | 2024.06.11 |