Cap2Det: Learning to Amplify Weak Caption Supervision for Object Detection 论文笔记

本文提出Cap2Det方法,通过文本分类器从图像标题中提取目标信息,解决弱监督目标检测问题。利用标签推理模块、多实例检测模块和在线调整模块,提高模型性能。实验表明,Cap2Det能在少量标签数据上学习,并在经典WSOD设置下表现出良好性能。
摘要由CSDN通过智能技术生成

前言

弱监督目标检测(WSOD)在训练时不需要详尽的box标注,但它要求image-level标签必须是准确的,也即在图像中至少有一个目标的标签是这个类,但是这些image-level标签依然需要人为实现。那么有没有更加自然的监督方式呢?答案是有的!比如当用户向网上上传图像时,通常会带有一些自然语言描述,或者一些视频的子标题。这些标注都是自然而然产生的,即人们是自愿提供的,因此这些标注与image-level标签相比是"free"的。

但是,现有的WSOD方法并不能使用这一类监督信息,原因如下:

  • 这些自然语言描述是非结构化的,它们需要经过解析之后才能提取出与目标相关的单词,而那些与目标无关的单词将会被去掉。
  • 这些描述既不精确又不详尽,可能包含图像中没有出现的内容,而忽略掉图像中出现的内容。

在这里插入图片描述
看上面右下角那个图,里面有一些很显眼的物体,比如桌子啊碗啊什么的,但是人们在描述这个图像是,没有提到这些物体。因此,如果直接将这些网络数据送入目前的WSOD方法中,会包含很多限制,而WSOD也不能很好地利用这些丰富的数据所提供的监督信息。

为了解决这个问题,本文根据图像以及与其相关的一些caption(句子描述)构建了一个目标检测器。本文的方法将人类书写的自由格式文本和视觉目标联系起来,并在图像中的目标上生成准确的bbox,该方法依赖于两个关键点:

  1. 训练了一个文本分类器,将caption映射到类标签。这个分类器不依赖于数据集,仅需一小组标签,并且可以推广到数据集边界之外。
  2. 由文本分类器预测出一系列伪gt标签,并利用这些标签来训练WSOD。

本文的方法首先提取proposal,然后对于每个proposal和每个类,学习检测分数(detection score)和类分数(class score),这两个分数经过refine之后生成最终的检测结果。

本文的贡献如下:

  • 提出了一个从caption中进行学习的新任务,并且设立了一个新的benchmark,不仅仅将目标类别当作ID,还利用了这些类别名称的语义和同义词;
  • 在这个benchmark上,将caption与类别单词匹配,通过利用caption使得模型达到了很好的性能;
  • 在经典的WSOD设置下,本文的模型证明了在image-level监督下也能达到很好的性能。

方法实现

在这里插入图片描述
上图是模型的整体结构,主要由三部分组成:

  • 标签推理模模块(label inference module):从文本中提取目标相关内容,方法的创新点就在于标签推理模型。

  • 多实例检测模块(multiple instance detection module):为每个proposal预测分类分数和检测分数;

  • 在线调整模块(online refinement module):对分数进行refine以得到最终检测结果。

1. 标签推理模块

WSOD的基础是这样一个假设:image-level标签应该是准确无误的。但是,这种"干净"的标注信息是很难获取的。在现实生活中,视觉目标的语义信息可能会以自然语言描述、句子甚至段落的形式出现,这些信息比单独的类标签更加noisy,而通过词汇匹配直接从这些caption中提取类标签的方法并不十分有效。考虑一个图像的以下三个句子描述:

“a person is riding a bicycle on the side of a bridge.”
“a man is crossing the street with his bike.”
“a bicyclist peddling down a busy city street.”

可以看出,只有第一句能够匹配"person"和"bicycle"这两个类,第二句中"man"和"person",以及"bike"和"bicycle"都是同义词,因此前两句都能精确描述"person"和"bicycle"这两个目标。第三句中没有出现"bicycle"这一目标。如果用这个样本来训练目标检测器,前两个句子可以作为true positive,而第三句将作为false negative被丢弃。

通过以上的观察,可以看到为了利用caption,必须放大caption提供的监督信号,并从中获取更多的信息。下图说明了放大监督信号的方法:
在这里插入图片描述

  • 这个纯文本模型以自由格式的文本作为输入,使用Glo Ve将单个单词嵌入到一个300D的空间中,并将嵌入的特征投影到一个400D的潜在空间中;
  • 然后利用最大池化将这些word-level表示聚合起来;
  • 最后利用得到的中间表示来预测目标类标签,这个预测结果回答了"图像中有什么",并且将作为伪image-level标签来训练目标检测器。

作者注意到,当使用伪标签来训练检测器时,存在一个微妙的平衡:召回率增加使得更多的数据得以使用,但是精度会随之降低,并因此威胁到之前"image-level标签应该是准确无误的"这一基础假设。 为什么会发生这种情况呢?因为基础假设使得模型对于false positive非常敏感,当给定一个不合适的标签,而没有一个proposal符合这个标签时,模型会感到困惑,从而导致了非最优的检测结果。

由此,本文最终采取了两个步骤

  1. 首先根据caption中出现的,并且在图像中也十分显眼的目标,对目标类标签和caption之间进行匹配;
  2. 如果没有目标可以匹配时,也即caption中并没有提到与图像中的目标相关的内容,那么就需要使用标签推理模块预测伪标签,以进行目标检测。

在这里插入图片描述
如上图所示,当使用COCO数据集中5%和100%的数据时,精度的范围在89%和92%之间,而召回率稳定在62%,这也意味着本文的模型能够从只含有少量标签的数据集中进行学习,然后仅需要自由形式的文本作为监督,就可以将知识迁移到其它的数据集上。

2. 多实例检测模块

在这里插入图片描述
接下来就是利用伪标签训练目标检测模型。如上图所示:

  • 图像被送入经过预训练的卷积层中,根据相应的特征特征来提取proposal
  • 然后通过ROIAlign将selective search生成的proposal裁剪为固定的大小,生成固定大小的卷积特征图
  • 最后通过box特征提取器为每个proposal提取出固定长度的特征向量。设图像 x x x生成的proposal为 [ r 1 , . . . , r m ] [r_1,...,r_m] [r1,...,rm],那么生成的proposal特征向量为 [ ϕ ( r 1 ) , . . . , ϕ ( r m ) ] [\phi(r_1),...,\phi(r_m)] [ϕ(r1),...,ϕ(rm)]

那么最终就是要生成image-level标签 p c ^ \hat{p_c} pc^ c ∈ { 1 ,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值