美文网首页
R-CNN 的目标识别之路

R-CNN 的目标识别之路

作者: 雨住多一横 | 来源:发表于2019-04-16 21:27 被阅读0次

    参考博客

    大致可分为三步

    1、生成类别独立的候选区域,这些候选区域中包含了RCNN的最终定位结果。
    2、用神经网络去针对每个候选区域提取固定长度的特征向量(RCNN采用的神经网络为在ImageNet预训练的AlexNet)
    3、利用SVM进行分类

    生成候选区域

    • objectness
    • selective search
    • category-independen object proposals
    • constrained parametric min-cuts(CPMC)
    • multi-scale combinatorial grouping
    • Ciresan
      RCNN采用Selective Search算法

    特征抽取

    • R-CNN 抽取了一个 4096 维的特征向量,采用的是 Alexnet,基于 Caffe 进行代码开发。
    • 需要注意的是 Alextnet 的输入图像大小是 227x227。而通过 Selective Search 产生的候选区域大小不一,为了与 Alexnet 兼容,R-CNN 采用了非常暴力的手段,那就是无视候选区域的大小和形状,统一变换到 227*227 的尺寸。
    • 有一个细节,在对 Region 进行变换的时候,首先对这些区域进行膨胀处理,在其 box 周围附加了 p 个像素,也就是人为添加了边框,在这里 p=16。

    测试阶段的目标检测

    • 在测试阶段,R-CNN 在每张图片上抽取近 2000 个候选区域。
    • 然后将每个候选区域进行尺寸的修整变换,送进神经网络以读取特征,然后用 SVM 进行类别的识别,并产生分数。
    • 候选区域有 2000 个,所以很多会进行重叠。针对每个类,通过计算 IoU 指标,采取非极大性抑制,以最高分的区域为基础,剔除掉那些重叠位置的区域。

    训练

    RCNN采用迁移学习(预训练+fine-tune)

    • 预训练:提取在 ILSVRC 2012 的模型和权重
    • fine-tune:在 VOC 上进行 fine-tune

    R-CNN 将候选区域与 GroundTrue 中的 box 标签相比较,如果 IoU > 0.5,说明两个对象重叠的位置比较多,于是就可以认为这个候选区域是 Positive,否则就是 Negetive.
    R-CNN 采用的是 IoU 的阈值,这个 threshold 取 0.3,如果一个区域与 Ground tureth 的 IoU 值低于设定的阈值,那么可以讲它看成是 Negetive.
    IoU 的 threshold 它不是作者胡乱取值的,而是来自 {0,0.1,0.2,0.3,0.4,0.5} 的数值组合的。而且,这个数值至关重要,如果 threshold 取值为 0.5,mAP 指标直接下降 5 个点,如果取值为 0,mAP 下降 4 个点。
    一旦特征抽取成功,R-CNN 会用 SVM 去识别每个区域的类别,但这需要优化。
    因为训练的数据太大,不可能一下子填充到电脑内存当中,R-CNN 作者采取了一种叫做 Hard negetive mining 的手段。

    bbox回归

    • bbox 的值其实就是物体方框的位置,预测它就是回归问题,而不是分类问题。
    • 受 DPM 的启发,作者训练了一个线性的回归模型,这个模型能够针对候选区域的 pool5 数据预测一个新的 box 位置。具体细节,作者放在补充材料当中。

    RCNN用于语意分割

    区域分类技术是语意分割的标准做法,RCNN也能用于语意分割
    RCNN语意分割分为3个阶段:

    • 利用 CPMC 生成候选区域,然后将这些区域调整大小为 227x227,送到神经网络当中,这是 full 阶段,区域中有背景也有前景。
    • 这个阶段只处理候选区域的前景,将背景用输入的平均值代替,然后背景就变成了 0 ,这个阶段称为 fg。
    • full + fg阶段,将背景和前景简单拼接

    相关文章

      网友评论

          本文标题:R-CNN 的目标识别之路

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