Open-Vocabulary Object Detection via Vision and Language Knowledge Distillation, ViLD
https://arxiv.org/abs/2104.13921
고정된 카테고리에 속해있는 object만 검출하는 detection 모델을 Open-vocabulary로 확장.
어떻게?
vision-language model인 CLIP의 정보를 knowledge distillation 한다. 핵심 아이디어는 아래 그림과 같다. 연구실 세미나때 작성한 자료 ㅎㅎ!
기본 base는 간단하다. region proposal을 CLIP의 image encoder로 전달하고, class name을 text encoder로 전달해 얻은 둘의 feature를 similarity
그러면 드는 의문. detection model은 base class로만 학습이 되는데 region proposal은 base class의 object만 검출되는게 아닐까??
역시 이에 대한 내용도 다룬다.
novel에 대한 object도 localization할 수 있도록 class-agnoistic한 region proposal을 학습시키는데.. 2-stage detector에서 1-stage 과정(regress, class layer(object, no object) 모듈을 class-agnoistic한 module로 대체한다.
제안한 region에 대하여 ALIGN의 visial encoder로 전달하면 inference가 너무 느리다. 그래서 이를 해결하기 위한 바업ㅂ.
visual encoder의 knowledge를 student로 distill 한다.
미리 얻은 M개의 proposal를 ViLD-text와 visual encoder에 전달하여 둘의 출력값에 L1 loss를 가한다. 그러면 더 shallow한 head가 visual encoder를 모방.
또한 prediction ensemble도 수행한다.
base로만 학습된 ViLD-text는 base에 높은 출력값을 가지므로 novel에 generalization을 위해 ensemble.
즉, vild-text와 vild-image 두 head를 사용하여 ensemble을 한다. vild-text와 CLIP을 ensemble하면 inference가 너무 느림.
재밌는 점은 vision-language model의 정보를 distill하면 supervision model의 성능을 뛰어넘는다.