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。https://www.nowcoder.com/link/pc_csdncpt_ssdxjg_python
他们这个python的练习题,知识点编排详细,题目安排合理,题目表述以指导的形式进行。整个题单覆盖了Python入门的全部知识点以及全部语法,通过知识点分类逐层递进,从Hello World开始到最后的实践任务,都会非常详细地指导你应该使用什么函数,应该怎么输入输出。
牛客网(牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网)还提供题解专区和讨论区会有大神提供题解思路,对新手玩家及其友好,有不清楚的语法,不理解的地方,看看别人的思路,别人的代码,也许就能豁然开朗。
快点击下方链接学起来吧!
牛客网 - 找工作神器|笔试题库|面试经验|实习招聘内推,求职就业一站解决_牛客网
参考:
论文下载:http://arxiv.org/abs/2104.13921
参考:CLIP 改进工作串讲(上)【论文精读】_哔哩哔哩_bilibili
ViLD(Open-Vocabulary Object Detection via Vision and Language Konwledge Distillation)相关推荐
- Simple Open-Vocabulary Object Detection with Vision Transformers
Paper name Simple Open-Vocabulary Object Detection with Vision Transformers Paper Reading Note URL: ...
- AVOD:Aggregate View Object Detection跑通(官方README小补充)
本地环境 Ubuntu20.04 + anaconda + tensorflow-gpu1.3.0 + cudatookit8.0 + cudnn6.0 + protobuf3.14.0(protob ...
- Shifting More Attention to Video Salient Object Detection (CVPR 2019)
Shifting More Attention to Video Salient Object Detection 现实生活中缺少一个完善的高质量标注的视频显著性目标检测(video salient ...
- 目标检测20年(Object Detection in 20 Years)
Object Detection in 20 Years: A Survey Zhengxia Zou, Zhenwei Shi, Member, IEEE, Yuhong Guo, and Jiep ...
- 【目标检测】论文笔记Arbitrary-Oriented Object Detection with Circular Smooth Label(2020)
目录 前情提要: 解决方案 Regression-based Rotation Detection Method Boundary Problem of Regression Method Some ...
- Open-Vocabulary Object Detection Using Captions论文讲解
文章目录 一.论文前言 二.提出原因 三.论文的核心 四.论文讲解 4.1 论文流程 4.2 OVD与之前相关的setting 4.3 结果对比 一.论文前言 目标检测是人工智能最突出的应用之一,也是 ...
- 【开放域目标检测】一:Open-Vocabulary Object Detection Using Captions论文讲解
出发点是制定一种更加通用的目标检测问题,目的是借助于大量的image-caption数据来覆盖更多的object concept,使得object detection不再受限于带标注数据的少数类别,从 ...
- 同r做一个窗口_目标检测(Object Detection):R-CNN/SPPnet/R-FCN/Yolo/SSD
这篇文章我是Survey目标检测(Object Detection)系列论文的一个总结. 包括R-CNN系列.SPP-net.R-FCN.YOLO系列.SSD.DenseBox等. 基本概念 目标识别 ...
- 论文笔记:CVPR 2022 Cross-Domain Adaptive Teacher for Object Detection
摘要 我们解决了对象检测中的域适应任务,其中有注释的源域和没有注释的感兴趣的目标域之间存在域间隙(注:在一个数据集上训练模型,再另外一个数据集上进行预测性能下降很大,在一个数据集上训练好的模型无法应用 ...
最新文章
- vs2017中报无法打开包括文件: corecrt.h: No such file or directory
- Microsoft Visual Studio Learning Pack 自动生成流程图插件(转)
- 详解 Weex JS Framework 的编译过程
- 信息系统项目管理师 案例1
- 一幅图秒懂LoadAverage(转载)
- php背景图片 存放位置,CSS中背景图片位置 background-position 的使用方法
- 如何解决移动端键盘弹起将底部导航栏顶起
- Qt之设置QWidget背景色
- iOS把UIImage保存到沙盒目录下以及少盒目录概述
- Silverlight 3 OOB 原理
- php序列化 java对象,在Java中反序列化一个序列化的php对象
- 【动态规划】P1220:区间dp:关路灯
- python pip安装
- uni-app 开发微信小程序,网络断开,无网络情况,刷新检查,重新加载
- 清华姚班毕业生开发新特效编程语言,99行代码实现《冰雪奇缘》
- 在ENVI5.3 下基于GLT/IGM文件的几何校正具体过程
- CAN总线介绍及硬件设计
- 数据库性能优化--超详细
- 中级软件设计师刷题笔记
- uni-app uni-fab修改图标 浮窗位置 是否展开
热门文章
- 每日三省吾身,省什么?
- SnnGrow快讯:微软被曝整合ChatGPT进必应向谷歌宣战?、消息称微软将把OpenAI人工智能技术整合至Office:或可编写电子邮件、学校封杀,大厂禁用,ChatGPT引发大面积恐慌?
- 爱与灾难·《致我们终将逝去的青春》
- Android绘图:360加速球
- access自动编号怎么解除_【转】Access中如何设置自动编号字段?
- Week2云计算从0到1学习-已脱敏
- Windows7 war3宽屏解决方案
- 上班[卒]如何面对复杂工作?“精要主义之父” 麦吉沃恩教你轻松工作
- js实现网站文本朗读(文字转语音)
- 07 基于python实现超级画板(完整的代码+说明文档+可执行程序exe)