YoojLee / paper_review

paper review archive
6 stars 2 forks source link

Open-Vocabulary Object Detection Via Vision And Language Knowledge Distillation (2022) #55

Open YoojLee opened 1 year ago

YoojLee commented 1 year ago

image

Summary

CLIP과 같은 open vocabulary image classification model (VLMs)으로부터 two stage detector에 Knowledge Distillation을 통해 open-vocabulary object detection을 수행하는 ViLD를 제안함. ViLD는 LVIS dataset에서 rare catogories에 대해 AP 기준 supervised를 outperform함. 또한, COCO에서 평가를 수행했을 때 기존 OVR-CNN 베이스라인을 뛰어넘는 성능을 보여줌.

Method Highlights

  1. class agnostic RPN Mask R-CNN (two stage detector) 내 class-specific한 localization module을 class-agnostic하게 대체 (class 별로 예측이 output되던 걸 모든 카테고리에 대해 하나씩 나오도록 함) -> 이를 통해 classifier에 novel categories에 대해서도 proposal을 추출할 수 있게 함.

  2. Replacing classifier with text embeddings CLIP이 작동하는 방식과 동일하게 category를 text로 feed해서 text encoder에 넣고 그 다음에 주어진 이미지와 유사도를 계산하는 방식으로 confidence score를 계산하게 됨. 여기서 y label과 비교해서 cross entropy loss를 계산해서 학습이 되는 구조. 여기서 category는 base class에 대해서만 활용이 된다는 점. inference 시에는 text encoder는 사용되지 않고, 학습된 embedding과의 cosine similarity를 계산해서 class prediction probability를 예측하는 구조임.

  3. Distilling from CLIP Image Embeddings naive한 접근으로 논문은 region proposal을 crop해서 CLIP 등 VLM의 Image Embedding에 통과시켜서 이를 text embedding과의 similarity를 계산하는 방식을 말하고 있음. 하지만, 이 경우에 inference 시 proposal에 대해서 모두 crop을 시켜줘야 하기 때문에 inference time이 매우 증가한다는 단점이 있음. 따라서 이 논문에서는 CLIP의 image embedding을 바로 모델에서 활용하는 것이 아니라, 이를 student detector에 distill하여 사용하고자 함. distillation을 위해서 CLIP의 Image Encoder $\mathcal{V}$가 teacher model이 되고, two-stage detector의 region embedding generator head $\mathcal{R}$이 student model이 된다. Distillation loss는 아래와 같이 L1 loss를 활용해 정의된다.

$$\mathcal{L}_{\mathrm{ViLD-image}} = \frac{1}{M} \sum{ \tilde{r} \in \tilde{P}} ||\mathcal{V}(\mathrm{crop}(I,\tilde{r}{\{1\times, 1.5\times\}})) - \mathcal{R}(\phi(I), \tilde{r})||_1$$

아래와 같이 최종 loss가 계산됨.

Experiments Highlights

image novel class에 대한 정보 없이 학습된 RPN이 novel class까지 포함해서 학습한 RPN 대비 성능 하락이 적음. 이는 학습 과정 중 novel class에 대한 노출이 없는 RPN도 novel categories에 일반화가 어느 정도 잘 됨을 보여줌.

image

저자들은 CLIP과 같은 open vocab classification 방법론을 OVD에 적용시키는 것이 효과적임을 보여주기 위해서, naive approach에 대해서 LVIS에서 실험을 진행함. confidence score에 objectness score를 반영하여 confidence score를 재산출한 방식(CLIP on cropped regions) 하에서 AP가 어느 정도 높게 산출됨. 특히, rare class에 대해서 기존의 supervised class 대비 높은 성능을 보여줌. 하지만, 기존의 naive approach는 나머지 categories에 대해서는 아직 성능 개선의 여지가 많이 존재함을 확인할 수 있음.

image LVIS 데이터셋에서의 ViLD에 대한 성능 평가와 기존 supervised model과의 비교를 나타낸 표임.

1) ViLD-text vs. GloVe embeddings: Text embedding으로 classifier를 대체한 방식. 이 경우, text embedding을 사용할 때에 image-aligned text embeddings가 중요함을 보여줌. Supervised-RFS 대비해서 ViLD-text는 rare class에 대해서 어떠한 노출이 없었음에도 불구하고, 전체 클래스에 대해 학습된 supervised baseline과 비교했을 때 버금가는 rare class AP를 보여줌. 다른 카테고리에 대해서도 competitive한 성능을 보여줌. 2) ViLD-image: Region embedding head 학습 시, distillation만을 사용하고 object category label에 대한 노출은 없는 경우임. Distillation만으로 rare class에 대한 성능이 많이 올라간 것을 알 수 있음. 다만, 나머지 class의 성능은 그리 좋지 못했음 (개인적으로 생각할 때는, 거의 모든 카테고리에 대해서 AP가 비슷한 것으로 봐서 해당 rare class에 대한 성능이 그리 reliable해보이진 않음.) 3) ViLD: 0.5의 distillation weight으로 loss 학습. ViLD-image, ViLD-text 대비하여 rare class에 대한 성능이 올라감. 두 가지를 함께 활용할 경우, rare class에 대한 detection performance가 개선됨을 확인. 그러나, ViLD-text에 대비해서 나머지 카테고리에 대해서는 성능이 하락함. 이를 토대로 ViLD-image와 ViLD-text objective 간의 충돌이 있었음을 추측해볼 수 있음. 이에, 저자들은 동일한 구조의 region embedding head를 ViLD-image와 ViLD-text에 대해 별도로 두고 학습을 진행한 후, confidence score에 대해서 각 head의 confidence score를 weighted geometric averaging하는 방식을 제안함. ensemble의 confidence score 산출은 아래와 같음. image

4) ViLD-ensemble: separate head를 적용함으로써 rare class 이외에도 전체적으로 성능이 개선됨을 알 수 있었음. 또한, backbone을 ViT-L/14의 CLIP과 ALIGN으로 변경함으로써 추가적인 성능 개선을 이뤄낼 수 있었음. 이 경우에 기존 LVIS challenge의 winner(fully-supervised; 성능 개선을 위해 다양한 테크닉 적용)에 버금가는 성능을 보여줌.

image COCO dataset에서 기존의 zero shot methods와 open-vocab 모델(OVR-CNN)과의 비교를 수행. OVR-CNN의 세팅을 따라 성능 평가를 수행. CLIP을 적용하기만 해도 rare class의 경우, OVR-CNN보다 더 좋은 성능을 보여줌. 하지만, 여전히 다른 카테고리에 대해서는 뒤처짐. ViLD의 경우에는 모든 카테고리에 대해서 OVR-CNN을 포함한 모든 베이스라인을 outperform. 또한, OVR-CNN과는 달리 ViLD의 경우에는 detection만을 위한 별도의 pre-training stage를 거치지 않아도 됨 (rather, they are leveraging off-the-shelf classification model).

image 다른 벤치마크로의 transfer에 대한 실험. Fine-tuning 대비 zero shot으로도 competitive한 성능이 나옴. Supervised baseline 대비해서도 Pascal VOC에 대해서는 competitive한 성능이 나옴. 그러나, COCO와 Objects365에 대해서는 perf gap이 증가함을 확인.

Strengths

  1. Open vocabulary object detection을 풀어나가는 데에 있어서 VLM 기반이라는 새로운 방향성을 제시. 또한, distillation이라는 방식을 통해서 보다 efficient하게 open vocab object detection을 학습하고자 함.
  2. novel category에 있어서 strong experimental results를 보여줌. (COCO 이외에도 더 challenging한 데이터셋인 LVIS에 대해 실험)
  3. 다양한, 흥미로운 실험들 (다른 attribute을 추가해서 dataset vocab을 확장하기가 용이함)

Weaknesses

  1. Generalized object proposals를 도출하기 위해서 RPN을 어떤 식으로 mod하는지 설명이 조금 부족함.
  2. image embedding을 추출할 때에 왜 M개를 별도로 두어야 하는지에 대한 설명이 조금 부족한 것으로 보임. (N개의 proposal에 대해 동시에 offline proposals를 별도로 추출해놓을 수도 있는 것 아닌가?)
  3. ViLD-text와 ViLD-image 간의 contention이 존재함으로 보아, ensemble 이외에도 조금 더 개선된 방식으로 문제를 해결할 수있을 것 같음.

아직, region proposal network가 어떤 식으로 학습되는지가 잘 이해가 안감. OVR-CNN을 좀 더 읽어보고 다시 읽으면 논문에 대한 이해가 제고될 것 같다.

YoojLee commented 1 year ago

https://openreview.net/forum?id=lL3lnMbR4WU