[CVPR 2022] RegionCLIP: Region-based Language-Image Pretraining

안녕하세요 류지연입니다.

오늘 리뷰하려고 가져온 논문은 RegionCLIP입니다. 랩세미나에서 늘 CLIP이 언급돼서 늘 궁금했었는데요 동기 연구원의 기초교육 일정에 RegionCLIP 논문을 읽는 게 있어서 CLIP연구와 함께 기본이 되는 연구라고 생각이 들어서 선택했었습니다. 기존에 대량의 이미지-텍스트쌍에 대해 학습해 이미지 분류 태스크에서 좋은 성능을 보인 CLIP을 object detection에 적용할 수 있게 확장시킨 연구라고 보시면 됩니다. 본 연구에서는 CLIP을 Object Detection task에 바로 적용하는데의 어려움을 설명하며 이를 보완한 RegionCLIP을 제안합니다.

1. Introduction

본 연구 이전에도 vision-language representation을 학습하는 모델로 대표적인 CLIP, ALIGN이 있었습니다. 이미지와 그에 매칭되는 캡션을 매칭하는 방법으로 이미지-텍스트간의 관계를 학습했었는데요 여러 비전 task에 적용이 됐었고 특히 이미지 분류에 있어서 높은 성능을 보였었습니다. 자연스럽게 이를 Object Detection에도 적용해볼 수 있을지를 궁금해하는 사람들이 생기고 본 논문의 저자또한 이 부분을 확인하고자 해당 연구를 진행했었습니다.

이미지와 텍스트 쌍으로 사전학습한 CLIP을 가져와 R-CNN기반의 object dector를 만들어 이미지의 일부 영역을 crop한 후 텍스트와 매칭하도록 학습하고 실험해본 결과 분류 task에 비해 성능이 저조했습니다. (우측 막대 차트 참고) 실제 detection을 확인해보아도 (좌측 이미지 참고) 남자아이에 대한 좁은 영역의 바운딩 박스내에서 55%의 확률로 boy라고 예측하지만 이보다 더 큰 영역에서도 65%의 확률로 객체를 boy로 예측했다는 것을 확인할 수 있습니다. 이는 CLIP이 이미지 속 세부 영역에 대해 정확한 representation을 학습해서 boy라고 검출하는 거라고 볼 수 없습니다. 저자는 image-level의 캡션을 이미지 전체에 대해 매칭하도록 학습하기 때문에 캡션 내의 토큰 마다 가리키는 객체가 이미지에서 어디에 위치하는지 같은 region에 대한 정보는 학습되지 않는 게 문제의 원인이라고 설명합니다. 본 연구는 이를 보완하고자 이미지의 region-level의 representation 또한 학습해 Object Detection에서도 분류에서만큼의 좋은 성능을 얻을 수 있는 RegionCLIP을 제안하고 COCO, LVIS 데이터셋에 대해 Object Detection task에서 SOTA의 성능을 보였습니다.

본 연구의 contribution을 요약하자면 이미지의 region과 이와 매칭되는 region 기반의 캡션을 추가적인 annotation 작업 없이 만들고 이를 학습해 사전학습 모델이 Object Detection 작업에서 중요한 regional 한 representation을 학습하도록 한 것입니다.

2. Related Work

간단히 visual representation을 학습해 이미지 분류나 객체 검출을 수행하는 모델에 대한 기존 연구들이 어떤 과정으로 발전해왔는지에 대해 얘기하겠습니다.

이미지 분류나 객체 검출에 대해 초기에는 사람이 이미지마다 레이블을 단 데이터셋을 가지고 학습했다고 합니다. 라벨링된 데이터로 잘 학습된 모델을 가지고 라벨이 없는 데이터에 pseudo label을 붙이고 학습 시키는 semi-supervised learning이 제안됐었고요. 이후 annotation에 대한 비용부담으로 부터 자유로울 수 있는 방법인 self-supervised learning이 제안됐었습니다. 각 vision task에 대해 필요한 visual representation을 학습하도록 pretext task를 정의하고 이미지 내의 representation을 학습시킨 후 사전학습된 모델을 transfer해 원래의 타겟 task를 수행하도록 하는 방법입니다. 최근까지 진행되고 있는 연구로는 인터넷으로 부터 가져온 대량의 이미지-텍스트 데이터를 가지고 vision-language representation에 대한 사전학습을 시키는 방법입니다. 하지만 해당 연구는 보통 모델이 image-level의 representation만을 학습한 이미지 분류에 특화된 연구가 대부분입니다.

3. Method

본 연구의 목표는 visual encoder가 image region을 인코딩할 수 있게 하고 language encoder로부터 인코딩된 region description을 매칭할 수 있게 하는 것입니다.

다음으로 본 연구에서 제안하는 방법론에 대해 설명을 드리도록 할게요. 아래 Figure 2.는 본 연구의 Method의 overview를 나타낸 것입니다.

Visual region representation

데이터셋의 이미지들은 object localizer로 객체가 있을 법한 곳에 대한 region을 뽑아냅니다. 본 연구에서는 RPN을 사용합니다. 총 N개의 region이 propose된다고 했을 때 region 집합은 다음과 같이 나타낼 수 있습니다. \{ r_i\}_{i=1, ..., N} 그리고 모든 region을 CLIP의 visual encoder에 통과시켜 각 region r_i 마다 visual representation을 v_i 뽑습니다.

Semantic region representation

보통 하나의 이미지에는 여러 객체가 있습니다. 어떤 데이터셋은 또 여러 category의 데이터로 구성된 이미지로 이뤄져 있고요. 데이터셋의 모든 이미지에서 각 객체마다 label을 다는 것은 비용이 큽니다. 사람이 수작업으로 anntation을 하지 않고도 이미지의 각 region 마다 캡셔닝하는 방법을 저자가 새롭게 제안한 것이 본 연구의 contribution 중 하나였는데 그 방법은 다음과 같습니다.

데이터셋에 있는 모든 이미지 캡션에 대해서 parsing을 해 각 캡션에서 명사처럼 문장 속 중요한 의미를 갖는 단어들을 (논문에서는 object concepts라고 합니다.) 가지고 cocept pool을 만듭니다. 그리고 region description 즉 하나의 영역에 대한 표현으로 사전에 정의된 템플릿에 각 concepts를 넣어 description을 만듭니다. 예를 들어 ‘a boy holding a kite’라는 캡션이 어떤 이미지에 대해 매치되었었다면 boy와 kite라는 단어가 각각 object concept로 concept pool에 속하게 되고 그 중 kite에 대해서만 봤을 때 ‘a photo of kite’라는 region descriptor가 만들어지게 되는 것입니다. language decoder에 통과시켜 각 region description을 하나의 semantic embedding으로 변환합니다. C개의 concepts가 있다고 했을 때 \{ r_i\}_{i=1, ..., N}의 semantic embedding이 도출됩니다. concept pool로 부터 semantic embedding을 생성하는 과정은 Figure 2.에서의 아래 panel에 해당됩니다. 이후 CLIP과 같은 teacher encoder에 (앞서 Visual region representation 단계에서 각 이미지마다 추출했던) image region 에 대한 visiual 임베딩과 region descriptor 임베딩을 align 시킵니다. 논문에서 제안하는 visual encoder는 contrastive learning과 distillation의 방법으로 이 region-region descriptor 쌍을 매칭하도록 학습합니다. 이렇게 사전학습한 모델을 가지고 Zero-shot과 OVOD가 가능합니다.

Alignment of region-text pairs

visual encoder (teacher encoder)를 가지고 image region과 region descriptor을 임베딩한 concept embedding간의 correspondence를 학습합니다. 해당 부분은 Figure 2.의 두번째 panel에 나타내져 있습니다. 각 image region과 concept embedding은 Mathching score는 코사인 유사도로 계산됩니다. 이 코사인 유사도 값은 -1과 1사이의 값으로 1에 가까울 수록 유사도가 높은 임베딩 쌍이됩니다. 해당 식은 다음과 같습니다.

코사인 유사도가 높은 쌍에 대해 묶이게 되는데요 이렇게 도출된 region-text 쌍에 대해서 \{v_i, l_m\} pseudo label이 만들어집니다. 이후 이 pseudo label을 가지고 사전학습이 진행됩니다.

Our Pretraining scheme

사전 학습은 새롭게 만든 region-text 쌍과 기존의 데이터인 image-text 둘다에 대해 학습이 진행됩니다. region-text 쌍에 대해 contrastive loss와 distillation loss가 정의되고 이에 대해 학습이 됩니다. contrastive loss는 다음과 같이 정의되는데요. 알맞은 쌍이 잘 매칭되도록 학습시키는 방법입니다.

여기서 p(., .)는 또 아래와 같이 정의됩니다. 다음은 region v_i가 알맞은 semantic embedding l_m과 매칭될 확률을 나타냅니다. 위의 식을 다시 살펴 보면 p()의 값을 최대화하는 방향으로 (contrastive loss를 줄이는 방향으로) 학습합니다.

distillation loss는 다음과 같이 정의됩니다. teacher encoder로 부터 도출되는 분포와 본 연구에서 제안하는 visual encoder의 KL divergence를 구해 둘의 분포가 비슷하도록 하는 역할을 합니다.

$L_{K L}$은 KL divergence loss를 의미합니다. q는 각 encoder에서 도출되는 모든 concept semantic embedding에 대한 softmax값이 됩니다. 예를 들자면 concept pool이 다음과 같이 구성될 때 [“cat”, “dog”, “laptop”, “boy”, “bus”, …] q는 [0.01,0.05,0.02,0.85,0.03,…]이 될 수 있겠지요. teacher encoder에서의 예측과 같도록 학습하는 것 뿐만 아니라 모든 concepts에 대해 예측하는 정도 즉 분포를 따르도록 학습시킨다고 보면됩니다.

pretraining model 학습에 사용되는 최종적인 loss는 다음과 같습니다. L_{cntrst-img} loss는 기존의 image-text 쌍에 대한 contrastive loss입니다.

Transfer Learning for Object Detection

다음은 RegionCLIP으로 사전학습한 모델을 Object detection에 활용하는지에 대한 내용입니다. RegionCLIP을 object detector의 backbone으로 사용합니다. RPN으로 이미지의 region을 뽑은 후 각 region의 feature를 RegionCLIP에 통과키고 텍스트 임베딩과 매칭해서 해당 영역에서 객체를 classify 하도록 합니다.

4. Experiments

다음은 본 논문에서 제안한 RegionCLIP의 object detection에 대한 성능을 확인한 실험 결과입니다.

COCO 데이터셋에 대해서 OVOD에 대해 실험한 결과이고요 기존의 SOTA인 OVR의 방법론 보다 더 나은 결과를 보입니다.

다음은 LVIS 데이터셋에 대해 OVOD를 수행한 것에 대한 실험 결과입니다. 대부분의 지표에서 기존의 SOTA였던 ViLD의 성능을 outperform하는 것을 확인할 수 있습니다. 위 두 실험 결과를 통해 논문에서 제안하는 사전학습 method가 이미지에서 region-level의 representation 학습을 가능케 했고 결과적으로 OVOD에 대해 성능 향상에 영향을 주었음을 확인할 수 있는 실험이라고 볼 수 있겠습니다.

다음은 두 데이터셋에 대해서 Zero-shot inference에 대한 실험 결과입니다. CLIP 기반의 베이스라인의 성능을 능가하는 결과를 보임을 알 수 있습니다. 실험 결과, region-text alignment를 진행하는 Ours의 방법론이 이미지 region에 대한 인식 성능을 향상시킨다는 것을 확인할 수 있는 실험이었습니다.

5. Conclusion

image-level에서의 image-text representation을 학습하는 사전학습 모델 CLIP으로는 region-level의 representation을 이해하고 사용하는 게 중요한 Object dection에서는 아쉬운 결과를 보였는데요. Object Detection에 대해서도 이미지 분류만큼의 성능을 내도록 하기 위해 image region과 이에 대한 text를 align해 학습하는 모델인 RegionCLIP을 제안한 연구였습니다. 그리고 본 연구에서 image의 각 객체가 포함된 region에 대한 캡션을 사람이 직접 달지 않고도 생성할 수 있는 방법을 제안한 것도 하나의 contribution이였습니다. 본 연구에서 제안한 방법으로 OVOD와 Zero-shot Inference에 대해서도 기존 SOTA 모델을 능가하는 성능을 보였습니다.

Author: 류 지연

2 thoughts on “[CVPR 2022] RegionCLIP: Region-based Language-Image Pretraining

  1. 안녕하세요 지연님 리뷰 감사합니다.

    CLIP은 이미지 단위로 학습이 된건데, 그걸 RPN을 통해서 Region에 대한 representation을 하는건가요? 이걸 가능하게 하는 Loss 들에 대해서 조금 더 자세히 설명해주실 수 있으실까요? Distillation Loss가 분포를 같게 한다고 하는데, Contrastive Loss 외에도 Distillation Loss가 필요한 이유가 무엇인지 궁금합니다!!

  2. 류지연 연구원님, 좋은 리뷰 감사합니다.
    CLIP 및 RPN 을 기반으로 OVOD를 수행할 수 있게 만든 방법론이네요. 리뷰 읽다 궁금한 점들이 있어 간단한 질문 남기겠습니다.

    1. Figure 2의 아래에 보면 region description을 생성하고 이를 RPN region 영역과 유사도를 측정해서 contrastive learning을 위한 image-text pair를 만들게 되는데요, 기존의 CLIP이 한 장의 이미지 전체로 학습을 하다 보니 RPN으로 자른 각각 객체에 정확히 region description을 매핑할 수 있을지 의문이 듭니다. region과 description 간 매핑 과정에서 어느 정도 노이즈가 들어갈 수 있을 것 같은데 관련해서 논문에서 어떻게 서술되어있나요?
    2. distillation loss에서 teacher 와 student가 각각 정확히 어떤 인코더인지, distillation loss를 추가한 목적이 무엇인지 헷갈려서 이에 대해 알려주시면 감사하겠습니다.
    3. experiment에 OVOD 및 zero-shot 성능밖에 없나요? CLIP의 localization 능력에 대한 문제 제기를 한 논문이기에 RegionCLIP의 localization 성능을 보이기 위해 추가적인 시각화나 ablation study 같은 건 없는지 알고 싶습니다.

    감사합니다.

답글 남기기

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