论文阅读:R-CNN

一.简介

        R-CNN来源于论文“Rich feature hierarchies for accurate object detection and semantic segmentation”,论文原文地址为http://arxiv.org/abs/1311.2524
        其基本思想是“将检测任务转换为分类任务”
R-CNN的算法原理图

二.算法原理

2.1模块设计

(1)产生区域建议模块
        本文中使用Selective Search的方法产生2000个Region Propopals。
(2)特征提取模块
        对于每一个Region Proposal,首先对这些区域进行膨胀处理,在其 box 周围附加了 p p p个像素,也就是人为添加了边框,在本文中 p = 16 p=16 p=16
        通过Selective Search产生的Region Proposals大小不一,为了适应AlexNet的输入图像的尺寸要求,作者无视Region Proposals的大小和形状,将膨胀后的每一个Region Proposal都暴力地resize到 227 × 227 227 \times 227 227×227的尺寸大小
        之后使用AlexNet对于每一个Region Proposal都抽取出一个4096维的特征向量

2.2模型训练

在R-CNN的训练阶段,主要可分为以下几个步骤:
(1)有监督的预训练
    在paper中,作者借助Caffe这一深度学习框架的CNN相关库,在ILSVRC2012的数据集上训练了一个CNN(此CNN为AlexNet),其实此时训练出来的CNN只具备图像分类的能力。关于ILSVRC2012数据集的介绍可以参考这篇博客:ILSVRC2012数据集介绍
(2)针对特定领域的Fine-tuning
        为了使得上一步中我们预训练的CNN能够适应新的任务(目标检测)和新领域(变形的候选窗口中的图像),作者使用resize的候选窗口中的图像进行SGD(随机梯度下降)训练(即Fine-tuning)
        上一步中训练得到的CNN的最后一层的分类层(softmax层)为1000个节点,根据Fine-tuning使用的数据集不同,将分类层改成 N + 1 N+1 N+1个节点,其中 N N N为此步骤中使用的数据集的类别数目,需要加的 1 1 1是背景。对于VOC数据集, N = 20 N=20 N=20;对于ILSVRC2013数据集, N = 200 N=200 N=200
        同时,这一步中使用的AlexNet除了需要改造最后一层softmax层的节点个数以外,为了模型精简,作者还去掉了倒数第二层的FC7
        选取IoU>=0.5的bounding box;在SGD训练中,设置学习率为0.001;在每一轮的SGD迭代中,在一张图像的所有类别中采样32个正窗口和96个背景窗口组成一个128大小的mini-batch
(3)物体类别分类器
        此时需要训练一个二分类器,输出结果为positive和negative
        首先需要明确定义好什么样子的example属于positive和negative,定义好之后就可以为每一个方框打上label。以识别汽车为例,对于一个方框包含了一辆汽车,定义为positive;若一个方框完全没有包含汽车,那它就是一个背景,定义为negative;如果一个方框一部分与汽车重叠,使用IoU的阈值(threshold),R-CNN中threshold取0.3,如果一个区域与ground truth的IoU值低于设定的阈值,那么可以讲它看成是 negative,否则为positive。很自然地,将判断属于positive的example定义为ground truth
        此时到目前为止,已经实现了特征提取和打上label,就可以使用此数据及标签来最训练并优化一个SVM
        由于数量过大内存装不下,这里作者采用的方法为hard negative mining

2.3模型测试

        在测试阶段,R-CNN在每张图片上提取大约2000 个Region Proposals
        然后对于每个Region Proposal使用“特征提取模块”进行先膨胀再resize,送进AlexNet以读取特征,然后用 SVM 进行类别的识别,并产生分数
        Region Proposals有 2000 个,所以会有很多重叠,针对每个类,通过计算 IoU 指标,采取非极大性抑制,以最高分的区域为基础,剔除掉那些重叠位置的区域

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值