【论文解读】ACoL:对抗互补学习,弱监督物体定位方法

点击上方“AI公园”,关注公众号,选择加“星标“或“置顶”


作者:Sik-Ho Tsang

编译:ronghuaiyang

导读

无需标签,定位物体的位置,弱监督物体定位的端到端的方法,超越CAM和Hide-and-Seek。

ACoL: Adversarial Complementary Learning

对抗补充学习弱监督目标定位,ACoL,由悉尼科技大学,伊利诺伊大学香槟分校和新加坡国立大学提出。摘要:

  • 弱监督目标定位(WSOL)是对目标进行定位,但没有目标的包围框标签,只有图像级标签,用于训练。

  • 提出了一种简单的网络结构,该结构包含两个并行分类器,用于目标定位。前向传递的时候在分类的同时动态定位一些有区分性的目标区域

  • 这是一种对抗学习,两个并行的分类器被迫利用互补的目标区域进行分类,最终共同生成完整的目标定位

1. ACoL: 网络结构

ACoL: 网络结构
  • 传统上,深度分类网络通常利用特定类别的独特模式进行识别,生成的物体定位图只能突出目标物体的一小部分区域,而不能突出整个物体

提出的ACoL旨在通过对抗学习的方式发现整体的目标区域

1.1. ACoL结构

  • 提出的ACoL,包括三个组成部分,BackboneClassifier AClassifier b

  • Backbone:一个全卷积网络,作为特征提取器

  • 主干网的特征图被输入到以下并行分类分支。

  • 两个分支包含相同数量的卷积层然后是GAP层和softmax层用于分类。

具体来说,将分类器B的输入特征在分类器A产生的可区分区域的指导下进行部分擦除。

  • 对分类器A的定位图进行阈值分割,识别出可区分区域。

  • 然后将B分类器输入特征映射中的对应区域用0代替进行擦除,以实现对抗。

  • 更准确地说,大于阈值δ的区域被擦除。

  • 这样的操作鼓励分类器B利用目标物体的其他区域的特征来支持图像级标签。

  • 最后,将两个分支产生的定位图相结合,得到目标对象的整体定位图。采用Max函数进行融合操作。

  • 整个过程是端到端训练的。两种分类器均采用交叉熵损失函数进行训练。

1.2. VGGNet 和 GoogLeNet

  • 提出ACoL方法使用VGGNet和GoogLeNet。

  • 具体来说,对VGG-16网络删除conv5-3(从pool5到prob),对GoogLeNet网络删除最后一个inception。

  • 然后,添加两个kernel size 3 × 3, stride 1, pad 1, 1024个单元的卷积层和一个size 1 × 1, stride 1, 1000个单元的卷积层(CUB-200-2011和Caltech-256数据集分别为200和256个单元)。

  • 最后,在卷积层的顶部添加一个GAP层和一个softmax层。

1.3. 测试

  • 在测试过程中,根据预测的类提取融合后的目标图,通过线性插值的方法将融合后的目标图大小调整到与原始图像相同的大小。

  • 为了公平比较,我们使用CAM中详细介绍的相同策略,根据生成的目标定位图来生成目标边界框。

  • 具体来说,首先用一个固定的阈值分割前景和背景。然后,寻找在前景像素中覆盖最大连接区域的紧密边界框。

2. 消融研究

不同阈值下的定位误差
  • 观察到两个结果。

  • 提出的互补分支(分类器B)成功地与分类器A协同工作。

  • 需要一个设计良好的阈值。过大的阈值不能有效鼓励分类器B发现更多的有用区域,太小的阈值可能会带来背景噪声。

  • 三个分类器的级联网络也被测试。

  • 特别的是,添加第三个分类器,并通过融合分类器A和分类器b的目标定位图来擦除/引导其输入特征图,但没有明显的改善。

3. 实验结果

3.1. 分类

在ILSVRC验证集上的分类误差
  • GoogLeNet-ACoL 和 VGGNet-ACoL 要比GoogLeNet-GAP 和 VGGNet-GAP的结果更好。

在细粒度CUB-200–2011测试集上的分类误差
  • VGGNet-ACoL 达到了最低的 error 28.1%,没有使用包围框。

该方法可以使网络达到与原始网络等价的分类性能。这是由于擦除操作引导网络发现更多有区别的模式。

3.2. 定位

在ILSVRC验证集上的定位误差
  • ACoL 要比所有的baseline效果更好。

  • VGGNet-ACoL要远好于VGGNet-GAP 和 GoogLeNet-ACoL,比GoogLeNet-HaS-32还要好。

在细粒度CUB-200–2011测试集上的定位误差
  • 同样,该方法的Top-1误差比GoogLeNet-GAP小4.92%。

在ILSVRC验证集上的定位/分类误差
  • 使用了最先进的ResNet和DPN网络。

  • 使用集成DPN的分类结果,Top-1的误差从45.14%减少到了38.45%。

  • 此外,仅从CAM之后的前三个预测类中选择边界框,可以提高 Top-5的定位性能(由*表示)。

  • VGGNet-ACoL-DPN-ensemble模型达到了30.03%的误差在ILSVRC上。

在ILSVRC验证集上使用ground-truth标签的定位误差
  • 消除分类结果对定位精度的影响,使用ground-truth标签比较定位精度。

  • 所提出的ACoL方法的Top-1误差达到37.04%,超过了其他方法。

3.3. 可视化

和CAM方法的比较
  • 上图显示了本文的方法和CAM方法的定位包围框。

CAM只能捕获目标的一部分,而ACoL可以捕获目标的大部分。

提出方法的物体定位图
  • 对于上面的每一张图像,分别显示了分类器A(左中)、分类器B(右中)和融合后的图(右中)。

  • 提出的两个分类器(A和B)可以发现目标物体的不同部位,从而在给定的图像中定位同一类别的整个区域。

—END—

英文原文:https://sh-tsang.medium.com/acol-adversarial-complementary-learning-weakly-supervised-object-localization-e112e5343f

请长按或扫描二维码关注本公众号

喜欢的话,请给我个在看吧

  • 0
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在UniGUI中,通过设置UniDBGrid的OnBeforeCellRender事件可以实现某一个单元格只读的效果。具体代码如下: ```delphi procedure TForm1.UniDBGrid1BeforeCellRender(Sender: TUniDBGrid; ACol, ARow: Integer; AField: TField; AFont: TFont; var AText: string; var ABackColor, AForeColor: TColor; AAlignment: TAlignment; var ADone: Boolean); begin if (ACol = 1) and (ARow = 1) then // 设置第2行第2列的单元格只读 Sender.Columns[ACol].ReadOnly := True; end; ``` 在上面的代码中,我们判断单元格的行和列是否为指定的行和列,如果是,则将所在列的ReadOnly属性设置为True,实现该单元格只读的效果。 需要注意的是,通过OnBeforeCellRender事件设置的只读单元格是临时性的,只在该事件被触发时生效,如果需要在多个地方使用,需要在多个事件中分别进行设置。如果只需要在表格初始化时设置某些单元格只读,可以在UniDBGrid的OnGetCellProperties事件中设置ReadOnly属性,具体代码如下: ```delphi procedure TForm1.UniDBGrid1GetCellProperties(Sender: TObject; Field: TField; AFont: TFont; var Background: TColor; var AAlignment: TAlignment; var AReadOnly: Boolean); begin if (Sender as TUniDBGrid).DataSource.DataSet.RecNo = 2 then // 设置第2行的单元格只读 AReadOnly := True; end; ``` 在上面的代码中,我们判断当前单元格所处的行是否为指定的行,如果是,则将ReadOnly属性设置为True,实现该单元格只读的效果。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值