On the journey of

[논문읽기] VinVL : Revisiting Visual Representations in Vision-Language Models 본문

Experiences & Study/VQA

[논문읽기] VinVL : Revisiting Visual Representations in Vision-Language Models

dlrpskdi 2023. 10. 13. 15:03

Original Paper) https://openaccess.thecvf.com/content/CVPR2021/html/Zhang_VinVL_Revisiting_Visual_Representations_in_Vision-Language_Models_CVPR_2021_paper.html

 

CVPR 2021 Open Access Repository

VinVL: Revisiting Visual Representations in Vision-Language Models Pengchuan Zhang, Xiujun Li, Xiaowei Hu, Jianwei Yang, Lei Zhang, Lijuan Wang, Yejin Choi, Jianfeng Gao; Proceedings of the IEEE/CVF Conference on Computer Vision and Pattern Recognition (CV

openaccess.thecvf.com


들어가기에 앞서 )

human pose estimation 논문에 의하면, Top-down 방식은 영상에서 사람을 먼저 감지하고 BB에서 각 human pose를 추정하는 방식이다. 그러나 만약 detection을 하지 못한다면 아예 pose estimation을 진행할 수 없다. 반면 bottom-up approach의 경우,  사람의 관절 부위(key-point)를 감지하고나서 key-point간의 상관관계를 분석하여 포즈를 추정하게 된다. 이때 탐색해야 하는 공간이 많기 때문에 매칭하는 부분의 정확도 및 시간적 문제를 드러내고 있다. 이에,  2개의 approach를 함께 사용하여 모델을 구현하는 방식이 많아지는 트렌드였고, 이를 토대로 VL tasks에서 새로운(더 커지고 잘 디자인된) 모델들이 등장하고 있다.
Cross modal representation을 학습하는 것이 Vision+ Language task의 기본이라고 볼 수 있다. 보통 많은 VL task의 training data는 image-text 쌍으로 구성되는데, 해당 논문의 구성된 형태는 Faster-RCNN model를 수정한 형태로, 이미지와 관련된 텍스트 설명과 좀 더 정확한 이미지 표현을 유도하고자 이렇게 구성한 것으로 보인다.

본격적으로 논문읽기 시작 :)

1. Introduction

Vision language pre-training (VLP)은 VL task에 효과적으로 발전하고 있다. VLP는 2 stage로 구성된다.

  1. object detection model은 이미지와 이미지내의 object를 특정 벡터로 인코딩하도록 사전학습시킨다.
  2. cross-modal fusion model is pre-trained to blend text and visual features. 교차 모달 fusion model은 text, visual features를 혼합하기 위해서 pre-train시킨다. ⇒ pre-training의 목적은 self-supervised manner에서 image-text쌍의 cross modal representation을 학습하는 것이다.

보통적으로 VLP research들이 cross-modal fusion model 발전에 초점을 맞추고 있는 과정 속에서 이 논문은 object-centric visual resentation 향상과 VL tasks에서 시각적 특징이 중요하다는 입증하기 실험 및 연구에 초점을 맞추고 있습니다.

OD 모델은 Visual Genome 데이터 세트에서 학습! ⇒ OD 모델은 이미지의 객체 중심 표현을 제공하며 많은 VL 모델에서 블랙박스로 사용되었습니다. 이러한 작업을 하기위해서 논문은 ResNeXt152 C4 아키텍처를 대규모 객체 속성 감지 모델을 사전 학습한다. COCO. OpenImages(OI), Object365, Visual Genome(VG)데이터셋에서 학습시켰다.(VL tasks를 잘 할 수 있다.)

이미지의 visual 표현은 새로운 OD model에 의해 생성되며 OSCAR+ 사전 훈련중에 수정될 때, model을 validate를 하기 위해서 논문은 Transformer 기반 교차 모달 fusion model(OSCAR+)을 8.85 million text-image pairs로 구성된 데이터셋을 사전학습했다. VL understanding tasks(VQA, GQA, NLVR2, COCO text-image retrieval, COCO image captioning, NoCaps)를 포함한 down stream task를 위해 pre-train된 OSCAR+을 파인 튜닝했다.

 

⇒ 그 결과, 새로운 OD 모델에 의해 생성된 객체 중심 표현이 모든 VL 작업에 걸쳐 성능을 크게 향상시키며 GQA를 포함한 이러한 모든 작업에 대해 새로운 SOTA를 했다. 사전 훈련된 모델 중 의도적으로 설계된 NSM을 능가하는 모델이 없다.

논문 연구에서 얘기하고자 하는 것의 흐름
  1. VL 모델에서 시각적 특징이 중요하다는 것을 입증하기 위해
  2. 기존의 OD 모델보다 이미지의 더 나은 시각적 특징을 생성하고 SOTA를 크게 향상시킬 수 있는 새로운 객체 감지 모델을 개발하였으며
  3. 모든 주요 VL tasks에 대한 결과가 좋게 나온다.
  4. object categories, visual attribute training, training data scale, model size, and model architecturer에 관하여 다르게 설정했기 때문에 성능 변화에 대한 각각의 상대적인 기여도를 조사했다.
  5. 어떻게? 사전 훈련된 객체 감지 모델에 대해서 제거 연구(?)를 제공함으로써.
2. Improving Vision in Vision Language

위에서 보여지는 box or region features produced by a VG-pre-trained FasterRCNN model!

→ 대부분의 VL model은 visual features v만 사용하지만, OSCAR 모델은 q가 anchors 역할을 해서 VL joint representation learning을 더 잘 할 수 있게 해주고, 6~7 VL tasks에 대해서 성능 향상도 이뤄낼 수 있었다.

  • VQA : w가 question, y = answer
  • text-image retrieval : w가 sentence, y = matching score
  • image captioning : w가 주어지지않고, y = caption(text)

DL based VL models는 2 모듈 [image understanding module Vision], [cross modal understanding module VL]로 구성. 

Img, w는 각각의 inputrkqtdlek. Vision module의 Output는 q,v이고, q는 semantic representation of image(태그 또는 탐지된 물체)로, 본 내용은 OSCAR 논문에서 언급된 내용을 보면 좀더 쉽다 :) 

https://nowolver.tistory.com/189

 

[논문읽기] OSCAR : Object-Semantics Aligned Pre-training for Vision-Language Tasks

Original Paper ) https://arxiv.org/pdf/2004.06165.pdf Introduction & Background : 이전 VLP에 대해 VLP는 self-supervised learning으로 cross-modal representation을 학습한다 기존의 Transformer 기반의 연구들은 제한들이 vision 영역

nowolver.tistory.com

vision module에 대한 발전이 필요할 거 같다고 논문에서는 판단했고 visual representation을 더 잘 할수 있게 vision module을 발전하는 것에 목적을 담았다고 설명했다.

⇒ 더 큰 object detection dataset을 통해서 학습시키고, 시각적인 개체와 속성 범주 풍부하게 하고, 모델 사이즈를 키웠다.

그 후의 이야기는 다음 섹션에서 확인해보자.

Object detection pre-training

일단 object detection dataset 4개[COCO, OpenImageV5, Objects365v1, VG]에 대해서 OD model을 개선하기 위해서 사전학습시킨다. 근데, 속성 주석이 없기 때문에 Visual Genome fine-tuning을 하는 방식을 이용한다고 설명했다.

⇒ 이렇게 하면 개체와 속성을 모두 감지할 수 있다.

근데 데이터셋마다 특징이 모두 다르지 않을까? 여기 논문에서도 해당 내용에 대해서 말해주고 있는데,  VG 데이터셋은 개체와 속성에 대한 내용이 많지만 주석 누락이 된 경우도 있다는 문제가 있다.

⇒ 이에 데이터셋을 합치는 방법에 대해서도 논문에서 설명해주고 있다. 

Model pre-training

첫번째 conv layer, residual block, batch-norm layer는 동결한다. multi-scale training, horizontal flipping과 같은 데이터 확대 방법을 사용하며, X152-C4 아키텍처로 탐지 모델을 훈련하기 위해 ImageNet-5K 체크포인트에서 모델 백본을 초기화하고 16개 이미지의 배치 크기로 180만 반복 훈련시켰다.

Injecting attribute information into the model

pre-trained OD model에 attribute branch를 추가하며, 속성 정보를 넣기 위해서 VG dataset애서 OD model을 fine-tuning한다. 물체 탐지 사전학습 stage에서 object representation 사전훈련을 했기 때문에 더 높은 가중치를 줘서 VG dataset 속성 학습에 대해 fine-tuning을 더 잘 시킬 수 있었다고 표현을 했다.

그래서 결론적으로 fine-tuning model은 VG에서 객체 및 속성을 감지하는데 있어 진행하지 않은 모델보다 성능이 좋다.

Efficient region feature extractor for VL tasks

풍부하게 설정했던 visual object, 속성에 대해 class 인식하는 NMS처리는 중첩된 경계 box들을 제거하는데 많은 시간을 소요하게 된다. 그래서 위에 있는 NMS 방식이 아닌 NMS가 한번만 실행하도록(표현이 애매한데,,) 구성했다. 위의 그림 오른쪽 처럼 모든 클래스를 다 찾으면 시간이 오래 걸리므로 다 찾는게 아니라 process가 한번만 돌아서 탐지한 클래스에 대해서만 가져간다고 생각하면 된다. 개수에 제한을 두는 관점이 아님!

 

NMS 방식은 뭘까(NMS Process) ? 그 프로세스는 아래와 같다. 

  1. 하나의 클래스에 대한 bounding boxes 목록에서 가장 높은 점수를 갖고 있는 bounding box를 선택하고 목록에서 제거한 후, final box에 추가
  2. 선택된 bounding box를 bounding boxes 목록에 있는 모든 bounding box와 IoU를 계산하여 비교한다. IoU가 threshold보다 높으면 bounding boxes 목록에서 제거.
  3. bounding boxes 목록에 남아있는 bounding box에서 가장 높은 점수를 갖고 있는 것을 선택하고 목록에서 제거한다. 그리고 final box에 추가.
  4. 다시 선택된 bounding box를 목록에 있는 box들과 IoU를 비교하되, 이때  threshold보다 높으면 목록에서 제거.
  5. bounding boxes에 아무것도 남아 있지 않을 때 까지 반복!
  6. 각각의 클래스에 대해 위 과정을 반복한다. 

그리고 시간이 오래 걸리는 conv layer에 대해서 dilation=2 → dilation 설정 없이 진행하게 설정

→ 정확도 떨어짐 없이, 빠르게 진행 가능해짐

결론

이 논문에서 제시한 방법은 물체(개체) 카테고리의 다양성, visual attribute training, dataset의 크기, 모델 크기, 모델 구조에 대해서 바꾼 방법으로, 그 결과 VL tasks 7개에서 모두 SOTA를 찍었다고 하였다.

SOTA 인증이 가능하다 :) https://competitions.codalab.org/competitions/3221#results

 

CodaLab - Competition

Challenge Start: March 15, 2015, midnight

competitions.codalab.org

Github Code & Ref. 

OSCAR + Pretraining을 함께 진행한 깃허브 코드가 있다.

https://github.com/michelecafagna26/VinVL/tree/main/Oscar 

https://www.microsoft.com/en-us/research/blog/objects-are-the-secret-key-to-revealing-the-world-between-vision-and-language/