안녕하세요. 오늘 소개드릴 논문은 CVPR2021년도에 게재된 Open-Vocabulary Object Detection Using Captions라는 논문입니다. 본 논문은 open vocabulary object detection(OVD)라는 방법론을 처음 제안한 시초논문에 해당합니다.
본 논문을 읽게 된 이유는 제가 맡게 된 센서과제의 최종 목표는 unseen 객체를 검출할 수 있는 짱짱 검출기를 만드는 것인데요. OVD라는 테스크가 해당 unseen 객체 검출 관점에서 준수한 성능을 내고, 점점 유명해지고 있는 추세인데요. 이후에 CVPR2024년도에 게재된 yolo world를 이해하고 적용하기 위한 사전 지식 습득 목적으로 읽어보게 되었습니다.
리뷰를 시작하기 전에 용어 하나만 정리하고 들어가겠습니다! base class와 target class라는 용어인데요.
base class는 bbox annotation이 되어 있는 클래스에 해당합니다. 즉, 학습에 사용되는 seen class정도로 이해해주시면 됩니다. 또한 base class는 라벨링이 되어 있다는 전재를 깔기 때문에, 굉장히 적은 종류의 클래스에 해당합니다. 이후에 OD를 위한 파인튜닝 단계에서 사용됩니다.
그리고 target class인데요. 그냥 학습 시에 보지 못한 unseen class와 동의어라고 생각해주시면 됩니다.
해당 클래스로 unseen 객체에 대한 검출 성능을 평가하게 되는데요. 당연히 실제 application 관점에서는 해당 클래스에 대한 annotation이 존재하지 않습니다. 그러나, 단순히 평가 단계에서는 annotation이 존재하지만 학습 단계에서 보여주지 않은 클래스로 사용합니다.
그럼 바로 리뷰 시작하겠습니다!
introduction
object detection(OD)라는 테스크는 딥러닝 방법론의 도래로 굉장히 높은 수준으로 발전하였는데요. 그러나 Faster R-CNN같은 기존의 검출기들은 높은 성능에도 불구하고 치명적인 단점이 존재합니다. 바로 cost가 많이 드는 annotation을 기반으로 supervision을 받아 학습한다는 점인데요.
OD 테스크가 굉장히 유명한 테스크 인지라, 위에 언급된 annotation에 대한 수고를 이미 선배 연구자분 들께서 해주셨고, Open Images나 MSCOCO같은 공용 데이터셋이 존재하기는 합니다만,
이런 데이터셋에는 한정된 category에 대해서만 라벨링이 되어있고, 더 다양한 category를 검출하는 검출기를 만들고 싶다면, 추가적으로 새로운 category에 대한 라벨링이 필요하게 됩니다. 이것이 여러 어플리케이션 관점에서 필요한 모든 것을 검출해버리는 다재다능한 검출기를 만드는 데 버틀넥으로 작용합니다.
이를 해결하고자 저자는 사람이 학습을 하는 방식에 대해 주목을 하는데요.
사람들은 객체를 인식하고 위치를 특정하는 방법을 natural supervision을 통해서 비용 없이 배우게 됩니다. 여기서 말하는 natural supervision은 단순히 세상을 살아가면서 시각적으로 본 것들 그리고, 다른 사람이 특정 객체 혹은 상황에 대해서 서술한 것을 듣는 것에 해당합니다.
이렇게 시각적인 패턴과 그것들에 대해 발화 된 언어를 함께 연상하는 방식으로 평생 동안 학습을 진행하는 데, 이런 방식이 풍부한 시각적 어휘(rich semantic vocabulary)와 풍부한 의미적 어휘(semantic vocabulary)를 학습하게 만들고, 이것을 사전 지식으로 해서 다양한 어플리케이션에 적용한다고 합니다.
이렇게만 말씀드리면, 이해하기가 조금 어려울 것이라고 예상되어 예시를 좀 가져왔는데요.
앞서 말씀드린 시각적 정보와 그것에 대해 어휘와 연상하여 학습하는 방식을 아래 그림에서 설명드리겠습니다.
우측처럼 사람이 댕댕이를 안고 있는 이미지와 “사람이 댕댕이를 안고있어”라는 발화가 natrual supervision으로 들어오게 되고, 이미지와 발화에 대해서 서로 연상하는 방식(발화→이미지, 이미지→발화)을 통해서 학습을 하게 됩니다.
더 구체적인 예를 들자면, 아기가 댕댕이 사진을 보고 “댕댕이”라는 단어를 연상하는 것을 넘어, 댕댕이 사진을 보고, 댕댕이의 생김새, 질감 등에 대한 시각적 정보에 관한 어휘(visual vocab)를 학습할 수 있게 되고, “멍멍”하고 짖는다. “뼈다귀”를 좋아한다. 처럼 댕댕이란 객체의 특성에 해당하는 의미론적 어휘(semantic vocab)을 학습할 수 있게 됩니다.
이런 방식으로 시각적 정보와 그에 대응되는 풍부한 어휘를 평생동안 학습하게 됩니다.
또한 사람은 특정한 객체를 인식하고 검출하는 것을 AI모델이 학습하는 것처럼 바운딩 박스를 그리면서 학습하지 않는데요. 대신에 몇 개의 주어진 샘플들에 대해서 빠르게 학습하고, 그것을 통해서 모든 종류에 객체들에 대해서 샘플의 도움 없이도 일반화 할 수 있습니다.
이 논문에서 저자는 사람의 시각적 정보와 이것에 대해 어휘를 연상하는 능력을 모방하기 위해서 두 단계로 나뉘는 “open-vocabulary obect detection(OVD) 프레임워크를 설계합니다.
(1) 특정 객체에 대해 제한 없는 어휘를 학습 시키기 위해서 방대한 이미지-캡션 쌍 corpus를 사용하여 사전학습 하는 것을 제안했고,
(2) 이를 통해서 얻은 사전 정보들을 이용하여 OD테스크를 수행하도록 파인튜닝을 시키기는 것을 제안했습니다. 이때 파인튜닝 시, 몇 개의 class에 대해서 만 annotation을 사용하여 학습을 진행합니다.
OVD를 위한 프레임 워크의 장점을 언급 드리자면, 적은 수의 base class에 대해서는 bbox annotation을 사용하고, 나머지 클레스에 대해서는 caption을 사용하여 학습 시키는 방식이 그것인데요. caption은 bbox annotation과 다르게 web사이트에서 무료로 쉽게 얻을 수 있다고 합니다. annotation을 위한 cost 측면에서 유리하고, 양적인 면에서도 유리하다고 하네요.
Figure 2.의 anotation에 대해서 설명 드리자면,
\mathcal{V}_{\Omega}는 세상에 존재하는 모든 words에 해당하는 집합이고,
\mathcal{V}_{C}는 사전학습 때 사용되는 이미지-캡션 데이터셋에 존재하는 words에 해당하는 집합입니다.
\mathcal{V}_{T}는 unseen 객체에 대한 words 집합(target class에 대한 집합)이고,
\mathcal{V}_{B}는 학습 때 보았던 seen객체에 대한 word 집합(base class에 대한 집합)입니다.
OVD는 이미지를 받아서, 주어진 target vocab(\mathcal{V}_{T})안에 있는 모든 객체를 검출하는 모델을 학습하는 것이 목표인데요.
이러한 모델을 학습시키기 하기 위해서 두 종류의 데이터셋을 활용합니다.
(1) image-caption datasets : 다양한 종류의 단어(\mathcal{V}_{C})들을 포함하고 있는 이미지-캡션 데이터셋 입니다.
(2) bbox annotation datasets : base classes(\mathcal{V}_{B})에 해당하는 적은 수의 특정 카테고리에 대한 BBox annotation 데이터셋 입니다.
또한 OVD라는 프레임워크를 처음 제시하는 논문이다 보니 관련 유사 테스크와의 비교를 통해서 본 테스크의 novelty를 강조하고 있는데요. weaky-supervised object detection(WSD)과 zero-shot object detection(ZSD) 차별점을 언급하는데요.
WSD는 학습 중에 타겟 클래스에 대한 단어인 \mathcal{V}_{T}에 대한 정보가 학습 시에 미리 제공된다는 점에서 차이가 있고, ZSD는 학습 시 caption 데이터를 활용하지 않는다는 점에서 차이가 있다고 하네요.
아래 Figure 1.은 앞서 설명 드린 OVD를 위한 전체 파이프라인을 소개하고 있습니다.
OVD라는 테스크에 대한 첫 서베이라서 그 컨셉과 기존 테스크와 어떤 차별점이 있는 지에 대해서 자세히 알아보았습니다.
3. Method
아래의 Figure 3은 저자가 제안하는 OVD의 전체 프레임워크를 보여주는 그림입니다.
크게 (1) 이미지-캡션 데이터셋으로 pretrain 과정과 (2) base class로 파인튜닝하는 과정, 그리고 (3) 테스트 시에는 target class를 사용하여 평가를 진행하는 과정으로 나뉩니다.
3.1. Learning a visual-semantic space
(1) pretraining
기존의 검출기를 학습시키는 파이프라인 중에서 분류기 쪽을 살펴보자면, 이미지넷 데이터셋으로 분류 테스크에 수행하여 백본을 사전학습 시키고, 그 백본을 가져옵니다. 그리고 label을 사용하여 몇 개에 사전에 정의된 클래스에 대해서 분류를 수행할 수 있는 새로운 classification head를 학습 시키게 되는데요.
이런 학습 과정이 zero-shot 세팅에서 문제를 일으키는 원인이 됩니다. 왜냐하면 학습에 참여했던 클래스에 대해서 특징을 추출하도록 최적화된 백본과 분류기를 사용했기 때문에, unseen 카테고리인 target class에 대해서는 인식을 할 수 없게 되는 것인데요.
그래서 zero-shot 방법론에서는 학습 때 보았던 몇 개의 객체 만을 인식할 수 있는 classification head를 제거하고, 사전 학습된 임베딩 레이어를 고정 시킨 채 사용하는 것으로 대체합니다. 그리고, 기존에 classification task가 특정 카테고리일 확률 값을 예측하도록 학습되었다면, zero-shot 방법론에서는 백본이 뽑은 visual feature들을 사전 학습 된 embedding feature로 가는 linear projection을 학습하도록 합니다.
(즉, 개,고양이 분류기가 각 클래스에 대한 확률인 0.8, 0.4로서 예측되는 것이 아닌, 만약 검출한 객체가 ‘개’였다면, 개에 대한 임베딩 피쳐를 아웃풋으로 내도록 학습시켰다는 것 같습니다.)
이렇게 함으로서 base class로 학습을 시킨 뒤, target class에 대해서 추론하는 것이 가능해집니다. (만약 target class가 사전학습한 임베딩 레이어에 존재하기만 한다면요…)
그런데 여기서 또 다른 문제가 발생하는 데, 만약 상대적으로 작은 크기와 종류인 base class로 학습시키게 되면 특정한 embedding space로 오버피팅이 되게 됩니다.
따라서 이를 방지하기 위해서 방대한 image-caption 데이터를 활용하여 사전학습을 진행하게 되고, visual feature를 text feature로 바꿔주는 “Vision to Language(V2L) projection layer라는 것을 사전학습 때 함께 학습 시키게 됩니다.
이렇게 함으로서 오버피팅을 일으키는 한정된 base class 내에서의 학습하는 것이 아니라, image와 그에 대한 caption이 제공하는 풍부한 정보를 학습할 수 있게 됩니다.
이것을 더 효과적으로 수행할 수 있도록 저자는 “visual grounding”이라는 방식과 “language transformer”를 사용하고, pretext task로 visual grounding 테스크와 추가적인 auxiliary self-supervision 테스크를 수행합니다.
아래 이미지는 본 논문의 사전학습 프레임워크 입니다.
이에 대해서 자세히 설명드리자면, 이미지 데이터(w\times{h})를 ResNet50에 해당하는 visual backbone에 태워서 특징맵을 뽑고, 그 특징맵을 (w/32\times{h/32})크기로 나눠서 region으로 갖고 있게 됩니다. 인덱스 i$로 나타내는 각 region은 [latex]d_{v}차원의 특징 벡터 r^{I}_{i}\in\mathbb{R}^{d{v}}로 이미지 상에 표현됩니다.
그리고 캡션을 처리하는 단을 보자면, 토큰화 된 캡션 C를 사전학습된 BERT를 백본으로 하여 임베딩 특징을 뽑습니다. 인덱스 j에 해당하는 각 토큰 마다 d_{l}차원의 워드 임베딩 벡터 e^{C}_{j}\in\mathbb{R}^{d{l}}을 추출하게 되는 것 입니다. 그리고 그것을 다시 여러 층을 멀티해드 어탠션 레이어에 적용하여(BERT) d_{l}차원의 문맥을 이해하는 토큰 단위의 임베딩 f^{C}_{j}을 추출하게 됩니다.
또한, 앞서 추출한 visual region representation(r^{I}_{i})을 language embedding space로 맵핑해주는 V2L layer에 태워서 language space로 projection시킨 visual feature region인 e_{i}^{I}를 뽑게 됩니다.
그리고 각 모달의 최종 특징들인 e_{i}^{I}와 f^{C}_{j}를 포지셔널 임베딩 등으로 강화하여 Multi-modal Transformer에 넣게 됩니다. 해당 Multi-modal Transformer는 BERT와 유사한 구조를 갖고, 각 모달에 대한 attention과 두 모달 간의 어텐션을 수행한다고 합니다. 그렇게 얻은 각 모달에 대한 출력으로 m^{I}_{i}, m^{C}_{j}를 얻습니다.
그리고 그림 상에 “Grounding”으로 표시 되어 있는 메인 pretext 테스크에 대해서 설명을 드리자면, 이미지 특징맵을 region으로 쪼갠 뒤, language space로 보낸 e_{i}^{I}와 caption을 토큰 단위로 쪼개서 language space로 보낸 e^{C}_{j}를 가깝게 만들어주는 것에 해당합니다.
각 region과 그에 대응되는 토큰을 알 수 없는 상태이므로, 이미지-캡션 쌍에 대한 global grounding score라는 것을 정의합니다. 식(1)
수식(1)에서 <.,.>_{L}은 내적연산에 해당하고, n_{I}, n_{C}는 각각 이미지 region과 캡션 토큰의 수에 해당합니다.
이미지 region(e_{i}^{I})과 캡션 토큰(e^{C}_{j}) 사이의 내적연산으로 local grounding score라는 것을 정의하고, 아래의 수식(2)를 가중치로 사용하여 가중 평균한 것을 global grounding score 정의합니다.
수식적으로는 이러하고,
이 global grounding score를 어디에 쓰냐 하면, 마치 contrasive learning처럼 한 배치 안에서 positive로 매칭된 이미지-캡션 쌍의 score는 최대화하고, negative로 매칭된 페어에 대해서는 score를 최소화하는 방향으로 학습하는 데 사용합니다.
이것을 기반으로 손실함수를 정의하는데,
식 (3)은 각 캡션마다 배치 안의 다른 이미지들을 negative 페어로 이용하는 것이고,
식 (4)는 각 이미지마다 배치 안의 다른 캡션들을 negative 페어로 사용한 것에 해당합니다.
\mathcal{B}_{I}와 \mathcal{B}_{C}는 이미지와 캡션에 대한 배치 사이즈에 해당합니다.
특히 캡션을 처리하는 부분인 embedding layer와 language backbone(BERT)는 freeze하고 학습을 진행하기 때문에 가중치 갱신은 visual feature에 해당하는 부분만 일어나게 되는데요.
즉, 주어진 캡션 특징에 visual feature를 맞추는 것으로 이해하면 될 것 같습니다.
위의 3,4 번 수식을 목적함수로하여 최적화 시킨 visual 백본과 V2L layer는 각 visual region을 가장 잘 표현하는 language space 상의 벡터로 바꿔주는 역할을 수행합니다.
그러나 grounding 테스크의 학습 시그널이 약하고, 직접적이지 못한 supervision에 해당하므로 모델은 올바른 이미지-캡션을 고르기 위한 최소한의 컨셉만 학습할 수 있다고 하는데요.
이를 보완해주기 위해서 auxiliary self-supervision 테스크를 수행합니다.
첫 번째로, PixelBERT에서 영감을 얻은 masked language modeling(MLM)을 수행하는데요. 단순히 캡션 C의 j번째 단어를 랜덤하게 [mask]토큰으로 치환하고, Multi-modal Transformer에서 뽑은 masked 토큰의 임베딩 m^{C}_{j}를 이용하여 마스킹된 단어를 맞추는 테스크입니다.
주어진 토큰들의 context를 고려하여 가장 캡션을 잘 완성 시키는 단어를 예측하게 함으로서, Multi-modal Transformer가 주어진 language space 상의 벡터를 더 잘 이해할 수 있게 만들어줍니다.
두 번째로 PixelBERT에서 사용된 image-text matching loss \mathcal{L}_{ITM}를 사용한다고 합니다.
최종적으로 각 이미지-캡션 쌍 마다 아래 수식(5)번의 total loss 함수를 최소화 시키는 방향으로 visual backbone, V2L layer, multi-modal transformer를 사전학습하게 됩니다.
사전학습을 위해서 사용된 language backbone(BERT)와 word embedding의 가중치는 고정하여 사용하고, visual backbone(ResNet)과 V2L layer, Multi-modal transformer는 학습을 진행하게 됩니다.
이후 인퍼런스 시에 visual backbone(ResNet)는 특징 추출기로, V2L layer는 classifier를 돕는 역할을 수행한다는 점에서 사전학습 단계에서 OD의 recognition 테스크를 위한 아케텍쳐의 학습이 진행되었다고 이해할 수 있습니다.
3.2. Learninng open-vocabulary detection
(2) fine tuning
기존에 사전학습이 진행된 visual backbone과 V2L layer를 가져와, base class에 대한 labeled dataset을 이용하여 object detection 테스크로 전이학습을 수행하게 되는데요.
특히 파인튜닝 단계에서는 classification에 대한 구조는 freeze한 상태로 localization에 대해서 학습을 하게 됩니다.
이미지를 resnet의 stem과 앞단의 3개의 블록에 넣어서 특징을 추출합니다. 이 특징맵을 RPN에 넣어서 objectness score와 bounding box 좌표를 예측합니다. 이후 NMS를 통해 겹치는 bbox를 제거하고, RoI pooling을 통해서 사이즈를 맞춰주게 됩니다. 최종적으로 RPN은 객체가 있을 것이라고 제안 된 영역에 대한 특징맵을 반환하게 됩니다.
그리고 ResNet의 4번째 블록에 제안 영역들을 넣어서 각 영역에 대한 최종 visual 특징 벡터 r^{I}_{i}을 얻습니다.
그리고 이전에 사전 학습 시켜둔 V2L layer를 통해서 r^{I}_{i}를 word embedding space 상의 벡터 e^{I}_{i}로 변환하게 됩니다.
사전 학습 시에는 그냥 임의의 사이즈로 쪼갠 특징맵을 visual feature로 사용하였다면, 파인 튜닝 단계에서는 RPN이 제안한 객체가 있을 법 한 영역들을 visual feature로 사용한다는 점이 다르네요.
그리고 앞서 언급했던 것처럼 classification head를 사전 학습 된 word embedding으로 대체하게 됩니다.
파인튜닝을 하는 동안에 분류 테스크에 대해서는 e^{I}_{i}를 다른 베이스 클레스 k의 임베딩 수식(6)을 통해 classification score를 계산하는 것으로 수행합니다.
여기서, e_{k}^{\mathcal{V}}는 사전 학습된 클레스 k의 word embedding에 해당합니다. 그리고 \mathcal{V}_{B}는 베이스 클래스의 집합이 되고, <.,.>는 내적연산에 해당합니다.
나머지 학습 파이프라인은 Faster R-CNN의 것을 그대로 사용한다고 합니다. 이 과정에서 visual backbone인 ResNet은 파인 튜닝을, RPN과 regression head는 초기 단계부터 학습을 진행합니다. classification을 위한 V2L layer와 word embedding은 고정한 채로 파라미터 갱신을 하지 않습니다.
(3) test
평가를 위한 추론 시에는 unseen 카테고리에 해당하는 target class \mathcal{V}_{T}에 대해서 평가를 진행합니다.
또한 classification을 위해서 기존의 베이스클레스로 구성된 임베딩에서 타겟 클레스로 구성된 word embedding으로 교체해줍니다.
그리고 타겟 클레스와 모델이 뽑은 e^{I}_{i}와 수식(6)을 계산해서 classification score를 구한다고 합니다.
여기서 오해를 불러 일으킬 수 있는 부분이 있어서 집고 넘어가자면, 추론 시에 타겟 클레스로 구성된 word embedding으로 교체를 하게 됩니다. 그런데,
실제 적용 관점에서 unseen 객체에 대해서 사전에 알 수가 없는데, 어떻게 unseen객체에 대한 임베딩으로 바꾸냐?라고 공격이 들어올 수 있다고 생각이 되는데요. 이것은 단순히 평가를 위해서 이미 알고 있고, 어노테이션이 있는 클래스를 학습에만 사용하지 않은 것에 해당합니다. 즉, 평가 시 사용될 클래스에 대한 정보가 이미 사전에 있기 때문에 설명의 용의성을 위해서 이렇게 표현을 한 것이지, 실제 어플리케이션 시에는 사전학습된 워드 임베딩 전체를 탑재하여, 워드 임베딩이 사전학습 때 배웠던 단어라면 모두 다 예측 할 수 있게 되는 것 입니다.
엄밀히 말하면 워드 임베딩이 배웠던 단어들에 해당 되는 closed vocab인데, 워드 임베딩의 사전학습 시에 방대한 양의 텍스트 데이터셋으로 학습을 진행하기 때문에 open vocab이라고 표현한다고 합니다.
4. Experiments
저자들은 OD로의 파인 튜닝과 평가를 위한 데이터셋으로 COCO 2017을 활용하였고, 48개의 base 클래스와 17개의 target 클래스를 선정하였다고 합니다.
그리고, 사전학습을 위해서 COCO와 동일한 이미지 구성과 train-test split으로구성된 이미지-캡션 데이터셋인 COCO Caption을 활용하였다고 합니다.
추가적으로 적용 관점에서 일반적인 상황을 고려하기 위해서 CC(Conceptual Captions)라는 3백만 장의 이미지-캡션 쌍으로 구성된 데이터셋으로 사전 학습한 모델에 대한 성능을 추가적으로 리포팅 했다고 합니다.
또한 평가지표로 IoU=0.5를 기준으로 한 mAP 성능을 선정했다고 합니다.
base class에 대한 성능은 coco validation image와 base class 라벨을 사용하여 평가하였고, target class에 대한 성능은 기존 base class에 대한 classification head를 target class embedding으로 교체 한 후 같은 데이터 셋으로 추론, 평가 한 것에 해당합니다. 추가적으로 classification head를 base 클래스와 target 클래스 모두에 대한 임베딩으로 교체한 후 동일한 데이터셋으로 추론 후 평가한 것을 generalized 표기된 항목으로 넣엇습니다.
4.1. baselines
해당 논문이 처음으로 OVD라는 테스크를 제안한 논문입니다. 그래서 동일한 방법론을 사용한 비교군이 없기 때문에 다른 유사한 테스크의 베이스라인 가져와서 비교하고자 했는데요.
첫 번째 베이스라인 테스크로 ZSD(zero-shot detection)을 선정하였습니다. 해당 테스크는 가장 OVD와 유사한 테스크로서 선정되었습니다. 그러나 ZSD는 이미지-캡션 쌍 데이터셋을 활용할 수 없고, DELO라는 방법론처럼 이미 타겟클레스에 대한 정보가 주어진 상태로 수행되는 방법론이 있어서 이것만을 가지고 비교하는 건은 불완전하다고 합니다.
그래서 두 번째로 WSD(weakly supervised detection)을 베이스라인 테스크로 선정하였다고 합니다. 해당 테스크는 캡션을 이미지 레벨의 라벨로 변환하여 사용한다고 합니다.(이미지-캡션 쌍을 데이터셋을 사용하는 모양입니다.) 그러나 해당 방법론은 OVD처럼 파인튜닝 단계에서 base class에 대한 annotation을 이용하지 않는다고 합니다.
그래서 세 번째 베이스라인 테스크로 weak and full supervision을 사용하는 테스크인 MSD(mixed supervision detection)를 선정했다고 합니다. 해당 테스크는 분류기의 가중치를 검출기의 가중치로 변환하는 것을 학습한다고
정리를 하자면 WSD와 MSD 방법론은 이미지 레벨의 라벨을 필요로 하며 타겟 클래스에 대해서 사전에 알려져있고, 모델이 이것에 대해 최적화하는 과정을 거친다고 합니다. 반면 ZSD는 타겟 클래스에 대해서 사전정보가 주어지지 않는 테스크 입니다.
아래의 Table 1은 다른 베이스라인 테스크의 모델과 OVD를 수행한 저자의 모델의 결과를 리포팅하고 있습니다.
먼저, 가장 유사한 테스크인 ZSD의 방법론들과 굵은 글씨체의 Ours를 비교를 하자면, 타겟클래스에 대한 성능이 엄청나게 크게 오른 것을 확인 할 수 있습니다. 이 성능차이를 통해서, 사전학습 시 방대한 양의 이미지-캡션 쌍의 데이터셋을 활용하고, unseen(타겟) 객체에 대한 상대적으로 풍부한 정보를 제공하는 caption을 활용한 학습이 효과가 있음을 보여주고 있습니다.
또한 WSD와 MSD 방법론으로 학습한 모델들과 비교했을 때, 타겟클래스에 대한 검출 성능이 OVD방법론이 더 좋은 것을 확인 할 수 있습니다. 두 방법론 모두 사전에 타겟 클래스에 대한 정보를 알고 있고, 그것에 최적화를 진행하는 방식의 학습이 적용이 됨에도 불구하고, OVD보다 타겟 검출 성능이 떨어지는 것을 알 수 있습니다. 이를 통해서 OVD방법론의 우수성을 보여주고 있습니다
추가적으로 FSD(fully supervised detection)과 base classes에 대한 성능을 비교할 수 있는데요. 다른 방법론들과 비교했을 때, 성능의 갭이 가장 작은 것을 확인 할 수 있습니다.
다음은 ablation study인데요. Table 2.는 OVD 파이프라인 중 수행된 여러가지 방법론의 효과를 보여주고 있습니다.
맨 아래의 Ours를 기준으로 하여, 하나씩 방법론을 소거하며 성능을 리포팅하고 있습니다.
맨 위부터 차근차근 내려가보자면, 첫 번째는 pretraining의 효과를 볼 수 있는데요. 큰 사이즈의 멀티 모달 데이터셋을 활용하여 사전학습하는 방식이 전체적인 성능을 물론 target 객체들의 검출에 필요한 모델의 일반화 능력의 대부분을 담당하는 것을 확인 할 수 있습니다.
그 아래는 사전 학습 시 visual grounding 테스크를 수행하지 않은 것에 해당하는 데요. 이는 임베딩 스페이스 상에서 positive pair끼리는 가까워지고, negative pair끼리는 멀어지도록 하는 방식으로 visual backbone과 V2L을 학습 시키지 않은 것에 해당합니다. 이를 통해서 grounding 테스크를 수행이 선행되지 않은 상황에서 auxiliary 테스크를 수행한다고 해도 그 효과는 그리 크지 않다는 것을 확인 할 수 있습니다.(target class기준 0.2 상승)
그 아래는 auxiliary 테스크를 수행하지 않았을 때의 성능인데요. 예상했던 데로 grounding 테스크가 성능의 전반을 담당하고 있다는 것을 알 수 있습니다. 추가적으로, 그라운딩 테스크가 수행된 후에 auxiliary가 추가적으로 부족한 부분을 보완하는 느낌으로 작동하며, auxiliary만 수행했을 때 보다 더 큰 상승효과가 있다는 것을 알 수 있습니다.(0.2 →1.5)
그 다음 두 실험들은 V2L layer에 대한 실험입니다. 먼저 V2L에 사전학습한 가중치를 전이시키지 않았을 때의 성능인데요. 단순히 깡통 V2L을 통한 인퍼런스에는 기존 V2L의 역할인 visual feature들을 language space로 올바르게 프로젝션 시켜주지 못하여 성능이 박살나는 것을 확인 할 수 있습니다.
그리고 OD테스크로 파인튜닝을 진행할 때, pretrain된 가중치를 freeze하지 않고, 학습에 참가하도록 설정했을 때의 효과인데요. V2L이 base class에 대해서는 조금 더 최적화가 일어나지만, 그의 효과로 기존에 학습했던 unseen 객체의 일반화 능력에 해를 끼치는 것을 확인 할 수 있습니다.
그 다음은 visual backbone을 이미지넷으로 가중치를 초기화하지 않은 상태에서 사전학습을 진행할 때의 성능인데요. 학습 초반에 이미지에서 올바른 특징을 뽑지 못하는 상태에서 사전학습을 진행하게 된다면, visual feature들이 language embedding space로 잘 변환이 된다고 하여도 좋지 못한 성능을 내는 것을 확인 할 수 있네요.
앞서 말한 CC(conceptual captions)데이터셋을 사전학습 시킨 것에 해당하는 데요. 이미지-캡션 페어가 올바르게 annotation이 된 COCO Caption과는 다르게, 자동적으로 웹 상에서 이미지 캡션 페어를 크롤링한 경우, 올바르지 못한 학습시그널이 가서 성능저하가 발생하는 것을 확인 할 수 있습니다. 그럼에도 불구하고 zero-shot 기반 방법론 보다는 높은 성능을 보이고 있는 것을 확인 할 수 있습니다.
좋은 리뷰 감사합니다.
세미나를 들은 후 리뷰까지 읽으니 연결성이 좋네요.
음 그래서… 저번주 세미나때 뜨거운 감자였던,, 두 모달을 동일 공간으로 연결시키는 곳이 grounding 인가요, 뒤쪽의 ITM 부분 인가요!?
감사합니다.