ECCV2020 GC-net
Geometry Constrained Weakly Supervised Object Localization
几何约束弱监督对象定位
基于类激活图方法的局限性
使用有时不明确的激活区域可能无法反映感兴趣对象的确切位置。因此,这些方法产生的监督信号不足以训练深度网络进行精确的对象定位。
需要手动仔细调整阈值,以便从相应的激活图中提取好的 bbox。
GC-net组成
GC-Net 由三个模块组成:检测器、生成器和分类器。检测器预测一组系数,这些系数表示包围对象的一些几何形状。生成器将系数转换为二进制掩码。然后分类器对生成的蒙版图像进行分类。在训练过程中,只需要分类标签,在推理过程中,检测器用于预测几何系数,从中可以计算出物体的位置。
Detector
检测器可以是用于图像分类的最先进的 CNN 架构,例如 VGG16、GoogLeNet 等。对于不同的几何形状,我们需要改变检测器中最后一个全连接层的输出个数,对几何形状的参数进行回归。比如普通矩形就是xywh,可旋转的矩形则是xywhθ,椭圆则是xyabθ。
Generator
Learning-driven generator
在生成器中,输入是一个 5 维向量(代表 5 个系数),送到一个全连接层,从而产生一个 144 维向量。新向量被重新整形为二维张量(不包括最后一维),然后一直通过转置卷积操作进行向上采样到原始图像的大小。
在我们使用掩码生成器优化检测器中的权重之前,有必要对其进行预训练,数据是预先准备的合成数据。
我们需要生成大量配对数据进行训练。以椭圆为例,配对数据定义为 5 个系数与对应于这些系数的gt二进制掩码。为了生成这样的配对数据,我们按照高斯分布随机抽样系数。通过 Dice 损失和合成的配对数据,我们能够训练掩码生成器。
掩码生成器训练完成后将冻结其权重,将其连接到detector,掩码生成器将会把detector预测的参数转化为二进制图像掩码
Model-driven generator
直接使用数学模型生成二进制图像掩码
Classifier
在推理阶段,分类器负责预测图像类别。
在detector训练阶段,它将生成的蒙版图像作为输入(也就是使用mask generator生成的二进制图像掩码从原图像中分别遮掩前景和背景)并执行两个互补的分类任务:一个用于对象区域,另一个用于背景区域。
使用分类器优化检测器中的权重之前,需要对其进行预训练。分类器可以使用 ILSVRC2012 进行预训练,然后进行微调以识别检测上下文中的对象。分类器训练完成后,我们冻结其权重并将其连接到生成器。
Detector训练
使用三个loss function进行Detector的优化
1. area loss
用于限制detector预测的几何形状尺寸,防止二进制掩码过大,并去掉更多背景,更加贴近目标
loss~area~=a·b
2. object loss
输入只剩对象区域的图像并使用交叉熵进行优化
熵代表了不确定性,熵越大代表不确定性越大
3. background loss
输入只剩背景区域的图像并计算熵,将负熵作为loss
熵越大代表不确定性越大,越说明当前划定的背景区域不包含前景目标(不确定性是从预测为各类别的概率得到的,预测为各类的概率越均衡,计算得到的不确定性越大,熵就越大),所以熵越大越好,由于优化需要找最小值,故添加负号作为loss function
与object loss区别在于object loss 是预测值与gt计算,background loss是预测值和自己计算
实验结果
对loc acc 和CorLoc的描述
More specifically, LocErr is 0 if both classification and localization are correct, otherwise 1. Classification is correct if the predicted category is the same to ground truth, and localization is correct if the value of intersection over union (IoU) between the predicted bbox and the ground truth bbox is greater than 0.5. The smaller the LocErr is, the better the network performs. The correct location (CorLoc) is computed solely based on localization accuracy. For example, it is 1 if IoU> 0.5. The higher the CorLoc is, the better the method is. In some experiments, we also reported the classification error (ClaErr) for performance evaluation.
CorLoc仅根据定位精度计算。例如,如果 IoU > 0.5,则为 1