美文网首页
R-CNN(Regions with CNN features)

R-CNN(Regions with CNN features)

作者: 深度厌学 | 来源:发表于2017-07-04 15:33 被阅读0次

    测试

    图1 RCNN流程图

    1.  输入原始图片

    2.  利用选择性搜索(seletive search, SS)生成2000个候选区域(region propsal, RP)

    3.  将每个RP放缩到一定尺寸(如AlexNet 的227*227),利用深度卷积神经网络提取特征

    4. 基于步骤3提取的特征,利用SVM分类。

    5. BB(可选)和 NMS(mon-maximun suppression)

    训练

    fine-tuning

    1. 只使用放缩后的RP,在VOC上fine-tuning ImagNet的分类模型,分21类(20类 + 背景);

    2. 将每个RP分正负样本:称某个RP是正样本, 如果它与某个GT的IoU大于0.5,其余记为负的。也就是说IoU大于0.5的候选区域才认为包含物体, 其它的被认为是背景;

    3. batch_size=128,其中32是正样本, 96是负样本。这么做是因为标记为正的RP相对于背景来说太少了;

    分类器

    1. 分类器是SVM,不是DCNN的Softmax,原因看第三点。 记某个RP是负样本,若它与所有的GT的IoU都小于0.3(这个是根据val set通过网格搜索得到的, 注意这里和FT的阈值是不一样的,一个是0.3,一个是0.5)。只有GT视为正样本。其它的RP忽略。

    2. 训练SVM采用难负样本挖掘(hard negative mining),因为训练数据太多啦内存装不下,而且难负样本挖掘收敛速度快(mAP在一次遍历后就停止增长啦!);

    3. 论文里解释,一开始没有考虑FT,直接使用ImagNet的分类模型提取特征进行SVM分类,通过网格搜索得到0.3的阈值。后面考虑FT,如果采用0.3来区分正负样本,得到的结果比0.5差很多。文中猜测是其实不是阈值大小的问题而是数据量的问题(数据太少)。现在取0.5能把数据集扩充30倍,能避免网络过拟合,但是也引起了另一个问题--就是目标定位不精准。

    4. 还有一个问题--就是为什么不用Softmax而用SVM, 这当然是SVM的效果好啦(54.2%  > 50.9%)。为什么会这样? 文中猜测是因为FT的正负样本定义没有突出目标位置的精确,而且Softmax在负样本的选取上是随机采样的,而不像SVM的选取难负样本的子集。

    结果

    表一 VOC2007 test 结果

    w/o FT

    没有FT的情况下,提取不同层检测,结果fc6 > fc7 > pool5, 而且pool5和fc6的结果相差不大(才2%),这显示了CNN的表征能力来自卷积层而不是参数占大多数的全连接层。

    FT

    FT的情况下,提取不同层检测,结果fc7 > fc6 > pool5,而且fc6(7%)、fc7(~10%)的提高效果明显,而pool5不显著(~3%),这说明ImageNet的pool5的泛化性能很好,FT后性能提升主要来自全连接层。

    BB(bounding-box regression)

    图2 假正分布图

    从第一行可以看到错误主要来自定位误差,从第三列可以看出采用BB后定位误差下降不少

    - BB在SVM之后, NMS之前

    P 代表RP, G指GT, d 下标5代表pool5 根据val set lambda=1000

    如果P远离所有的GT,则d的学习没有意义。所以只学习至少与某个GT的IoU最大且IoU大于0.6的RP(根据val set)。

    参考文献

    1.  Rich feature hierarchies for accurate object detection and semantic segmentation

    2. Training Region-based Object Detectors with Online Hard Example Mining

    相关文章

      网友评论

          本文标题:R-CNN(Regions with CNN features)

          本文链接:https://www.haomeiwen.com/subject/fczthxtx.html