R-CNN随笔No.4

        之前的文章我们解释了R-CNN的主题内容,接下来我们将叙述文章的附录部分。我们分为三个部分:1.对象proposal的转换;2.正负例子的判断标准和为什么不只使用softmax;3.bounding-box回归。

        第一部分:我们知道CNN需要227*227的固定输入,而object proposal却是任意大小的,文章中提到了两种方法。第一种是先用一个紧致(像皮筋似的紧紧套在图像边框上)的正方形括在图片上,在做保持横纵比的缩放变换至所需大小。这个方法有两个形式,一种是带目标所在背景的(B列),另一种是只有目标对象(C列)。另一种即使文章使用的warp,使用仿射变换变化至指定大小(D列)。下图展示几种变换的效果。


        对于这些变换,我们都考虑包括原始目标对象的周围的其他上下文图像。这里作者第一了一个参数p,表示原始目标对象周围边框的大小。上图第一行展示了p=0的情况,第二行展示了p=16的情况。在所有方法中,如果带大小为p的边框的矩形超过了图像的大小,错过的数据使用图像的平均值填充。实验证明牌p=16的性能最佳。
        第二部分:这一部分讨论了两个问题。问题一,为什么在fine-tuning和在训练SVM时对正负样例的定义不同。我们先做简单的回顾,在微调阶段,我们将与ground-truth boxes间的IoU面积大于0.5的定为正,相反的为负(即为背景)。而在训练SVM的时候,我们直接将ground-truth boxes定义为正,而将与ground-truth boxes间IoU小于0.3的定义为负,这样就会有proposals(IoU大于0.3,却不是ground-truth boxes)落入灰色地带。我们之所以使用这样不同的定义是因为我们训练SVM时是在ImageNet数据上预训练的CNN上的,这时没有fine-tuning。在这种设置下,作者评价了一系列操作寻找训练SVM的最佳标记定义。当微调时,作者尝试使用了于在训练SVM时相同的定义标准,发现结果比当前的定义要差。
        作者还做出了这样的假设,对正负样例的定义不同并不是最重要的,其源自微调数据是有限的这个事实,在当前的fine-tuning阶段正负样例定义一下,许多proposals是“jittered”(我翻译为不确定的,即那些与ground-truth boxes间的IoU在0.5~1的proposals),这些proposals是的正样例的数目增大了30倍。而有一个合理的推测是在fine-tuning时大数据集可以有效避免过拟合。但作者也提醒我们使用这些“jittered”样例是次优的,因为其实网络无法微调到最佳。
        问题二,在微调后,我们为什么还要训练SVM。直接使用微调后的网络最后的softmax层做判断岂不是更加直截了当。作者发现这样做后网络在VOC 2007数据集上的的性能从54.2%降到了50.9%。性能下降的原因是包括在fine-tuning网络使用的正负例子的定义在内的多中影响极大降低了网络定位的准确性,并且softmax分类器的训练使用的是随机采样的负样例,而不是SVM训练使用的“hard negative”的子集。
        作者也提到有数据表明可以得到性能相同的只用fine-tuning而不用SVM的系统,作者假设fine-tuning的缺点是可以解决的,如果假设成立我们可以在不损失性能的前提下对R-CNN进行简化和加速。
        第三部分:作者使用简单的bounding-box回归来提高网络的定位性能。在使用SVMs对proposal做出判断后,我们使用对应的bounding-box回归预测一个新的bounding box。具体能容比较简单,思想类似于线性回归的推导,读者可自行查阅资料。
        到此为止,R-CNN的内容就结束了,有问题的读者可以在下方的评论中提出,也希望大家提出批评指正。再次谢谢大家!

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值