CLIP은 이미지-캡션 pair로 학습되어, 이미지 전체와 문장 전체를 matching하는 역할을 한다. 하지만, zero shot object detection이나 open vocabulary object detection과 같은 방법론에서는, 이미지 전체가 아닌 이미지의 sub-region에 대한 image recognition을 필요로 한다. 하지만, CLIP은 image subregion에 대한 분류에서는 좋지 않은 성능을 보인다.
위 figure의 (b)를 보면, CLIP을 imageNet classification에 적용하면 59.6%의 정확도를 보이지만 object detection dataset인 LVIS의 region들에 대한 classification에서는 19.1%의 정확도를 보인다. 따라서, 본 논문에서는 image region - region description 으로 CLIP을 pre train하는 방법을 제안한다.
RegionCLIP을 학습하기 위해서는 region(image-subregion)과 region description이 매핑된 데이터가 필요하다. 하지만 아쉽게도 그런 데이터는 not available하다. 그렇다고 manual하게 annotation을 추가하는 것은 scalable한 접근 방법이 아니다. 따라서 저자는 다소 새로운 방법을 제안한다.
Extracting image regions
두 번째 문제는, image region이 필요하다는 것이다. 이를 위해, 저자는 이미 학습되어 있는 region proposal network를 사용한다. 이미지-캡션 데이터셋의 이미지들에 대해 사전학습된 CLIP+feature pooling(RoIAlign)을 적용하여 개의 region image feature들()을 추출한다. 또한 동시에 RPN을 적용하여 개의 region image()들도 추출한다.
Align image regions and concept
마지막 문제는, 이렇게 추출된 image region과 concept를 align해 주어야 한다는 것이다. 저자는 생각보다 직관적인 방법을 제안한다. zero-shot CLIP classification과 유사한 방식으로, 각 region image feature ()들에 대해, 가장 유사한 concept embedding ()을 찾아서 맵핑해주는 것이다.
위에서 설명하듯 image region과 region description을 매핑해주는 척도는 cosine similarity이다.
이제 region-region description 데이터셋도 준비되었고, image-caption데이터셋도 준비되었으므로, regionCLIP을 학습할 수 있다. 해당 저자는 세 가지 training objective를 동시에 사용하여 regionCLIP모델을 학습한다.
이렇게 학습된 regionCLIP을 ViLD와 같은 open vocabulary object detection에 적용하여 open vocabulary object detection을 수행할 수 있다. 이 논문에서는, object detection을 위주로 실험을 진행하는데, 다음 섹션에서 살펴보도록 하겠다.
ablation에서는 regionCLIP의 여러 구성요소들의 변화에 따른 Coco detection dataset에서의 open vocabulary object detection 및 zero shot detection성능의 차이를 살펴본다.
첫번째로 살펴볼 내용은, pretraining과정에서 image-text pair 데이터를 포함시키는지의 여부이다. 해당 여부에 따른 성능은 아래와 같다. image-text pair이 pretraining에 사용된 경우 성능이 더 좋다. 특히, open vocabulary object detection에서 novel class에 대한 성능 향상 폭이 상당히 크다. 본 논문에서는 image-text pair가 contextual information을 학습하는 데 도움을 주었을 것이라고 이야기한다.
두번째로 살펴볼 내용은 image region-region description 데이터셋을 만들 때, image region을 어떻게 추출할 것인가에 대한 것이다. default모델은 사전학습된 RPN을 통해 image region과 region feature를 뽑아냈다. 하지만, 이렇게 하지 않고 그냥 random crop을 통해 region을 뽑아낼 수도 있다. 그리고 예상 외로 random crop을 통해 얻은 region으로 데이터셋을 구성하여 pretraining을 해도, 최종 성능이 나쁘지 않다. 본 논문에서는, regionCLIP이 그만큼 robust한 region represnetaion을 학습할 수 있기 때문이라고 이야기한다.
세번째로, pre-training에 사용된 데이터셋과 concept pool을 구성하는 데 사용된 데이터셋에 따라 최종 성능이 어떻게 변화하는지 살펴본다.CC3M은 매우 큰 규모의 데이터셋이고, Coco는 100,000여 개의 샘플들로 구성된 비교적 작은 규모의 데이터셋이다. 하지만, zero-shot object detection의 경우 Coco data로 pre training한 결과가 가장 우수하다. 하지만 이는 test dataset이 coco detection dataset이기 때문인 것으로 보인다. zero-shot이 아닌 open vocabulary object detection결과를 보면, pretraining에는 CC3M 데이터셋을 / concept pool에는 coco caption을 사용한 모델의 결과가 가장 우수하다. 이는 모델이 큰 규모의 데이터셋을 통해 더욱 generic한 visual representation을 학습했기 때문이라고 볼 수 있다.
다음으로 볼 것은 pretraining에 사용되는 손실 함수이다. pretraining과정에서는 contrastive loss와 distillation loss가 동시에 사용된다.
이 결과를 통해 distillation loss는 teacher model인 CLIP의 visual-semantic knowledge를 inherit하는 역할을 하고, contrastive loss는 transfer learning을 위한 더 discriminative한 feature를 학습하는 역할을 한다고 추정해볼 수 있다.
다섯 번째로 볼 것은, teacher model과 student model의 모델 구조에 따라 성능이 어떻게 변화하는가에 대한 것이다.
우선 zero shot object detection의 경우, teacher model을 개선시킬 때 최종 성능이 많이 개선된다. 하지만 student model의 개선은 그다지 큰 성능 향상에 기여하지 못한다.
반면 transfer learning이 가능한 open vocabulary object detection의 경우, teacher model의 개선은 최종 성능에 큰 영향을 주지 않으나 student model을 개선할 경우, 최종성능이 큰 폭으로 향상된다.
zero-shot inference는 teacher model에 영향을 많이 받고, transfer learning의 경우 student model의 capacity에 영향을 크게 받는다는 것을 추정해볼 수 있다.
본 논문에서는 open vocabulary object detection을 위해, coco detection이나 LVIS와 같은 객체 탐지 데이터셋의 base class로 transfer learning을 수행한다. 이때 base class들에 대한 overfitting을 막기 위한 목적으로, transfer learning에서 cross entropy loss를 적용할 때 focal scaling을 적용한다.