ViLD(Open-Vocabulary Object Detection via Vision and Language Konwledge Distillation)

基于视觉语言(图像文本)知识蒸馏的目标检测

CLIP模型当成teacher模型,去蒸馏自己的模型,从而达到zero-shot。

模型具有检测新类别的能力。

baseline方法是一个Mask R-CNN由两阶段组成,一是生成proposal,然后筛选pospoal,第二步是进过分类头为每个pospoal确定目标类别。目标检测目标函数两部分,一部分是分类损失一部分是边界框回归参数(框定位)。文本来自物体的类别,是有监督的学习。

ViLD-Text模型将图像特征和文本特征联系到一起,但是open vocabulary(zero-shot)的能力还有待加强。文本端模型参数锁住。然后文本特征与图像特征做点乘,得到相似度就可以计算交叉熵,进而训练模型。

图像region embedding和背景以及文本特征做点乘计算相似度。这里ViLD-Text只是把图像特征和文本特征做了一下关联,这样就可以做zero-shot了。

ViLD-image右侧这里将M个proposal(这里M个相对于ViLD-Text中N个proposals更少了,M个是从N个中通过RPN预抽取出来的,这样做可以加速计算)经过裁剪和resize后送进CLIP中预训练好的图像编码器,得到M个image embedding(图像特征)。上述过程可以理解为将筛选后的每个proposal看做一个图像并提取特征。这里使用CLIP提取的proposal的特征看做伪标签,也就是groun true。右侧也就是知识蒸馏中的teacher网络。

另一边,将M个proposal送进目标检测的框架,希望这边抽出的特征与teacher网络(CLIP图像编码器抽取的特征)那边的特征尽可能一致。这样一来,监督信号就是CLIP中图像编码器抽取的特征,不再是人工标注的特征。因此,就不再受基础类的限制了,proposal既可以来自基础类Bade Category,也可以来自New Category。监督信号是CLIP里来的,而不是人工标注来的。

ViLD-image与ViLD-text结合起来即为ViLD。右侧为teacher网络,只有训练的时候抽取伪标签用,测试的时候用不到。左侧将N+M个proposal同时输入进目标检测框架,然后分开,M一端抽取的特征与右侧teacher网络的伪标签计算L1-loss。N一端用于抽取每个proposal的特征并与文本和背景配对计算交叉熵损失。

模型总览如上图,训练过程:一张图像经过backbone和RPN抽取proposal,然后每个proposal通过conv抽取region embedding。同时,经过裁剪和resize的proposal经过CLIP预训练好的图像编码器得到image embedding作为伪标签。然后region embedding与image embedding计算L1-loss。与此同时,文本信息经过文本编码器得到text embedding,region embedding与text embedding点乘计算相似度进一步计算交叉熵损失来匹配图像文本对。

测试过程:region embedding与text embedding(可以有新类)去匹配。

这个数据集有很多特别小或者不常见的物体,因此对这些物体标注也很少。APr就是对这种特别小的物体的检测结果。可以看出ViLD表现还是很好的,已经超过了监督学习+RFS的方法(这里这些小物体本来标注就很少,即使是基督的方式,模型看到的也不多,甚至可能产生误导)。

python的学习还是要多以练习为主,想要练习python的同学,推荐可以去看,他们现在的IT题库内容很丰富,属于国内做的很好的了,而且是课程+刷题+面经+求职+讨论区分享,一站式求职学习网站,最最最重要的里面的资源全部免费。

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网求职之前,先上牛客,就业找工作一站解决。互联网IT技术/产品/运营/硬件/汽车机械制造/金融/财务管理/审计/银行/市场营销/地产/快消/管培生等等专业技能学习/备考/求职神器,在线进行企业校招实习笔试面试真题模拟考试练习,全面提升求职竞争力,找到好工作,拿到好offer。icon-default.png?t=M85Bhttps://www.nowcoder.com/link/pc_csdncpt_ssdxjg_python

他们这个python的练习题,知识点编排详细,题目安排合理,题目表述以指导的形式进行。整个题单覆盖了Python入门的全部知识点以及全部语法,通过知识点分类逐层递进,从Hello World开始到最后的实践任务,都会非常详细地指导你应该使用什么函数,应该怎么输入输出。

牛客网(牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网)还提供题解专区和讨论区会有大神提供题解思路,对新手玩家及其友好,有不清楚的语法,不理解的地方,看看别人的思路,别人的代码,也许就能豁然开朗。

快点击下方链接学起来吧!

牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网

参考:

论文下载:http://arxiv.org/abs/2104.13921

参考:CLIP 改进工作串讲(上)【论文精读】_哔哩哔哩_bilibili

猜你喜欢

转载自blog.csdn.net/weixin_45104951/article/details/127079238