R-CNN手记(持续更新)

rcnn解决了目标检测中的两个关键问题:

1、目标检测速度

      这篇文章通过预先定义的提取一系列的可能的候选区域后,

      仅在这些候选区域上提取特征进行目标判断,大大提高网络目标检测的速度(之前都是通过卷积在输入图形上提取特征)

 

2、训练集

      解决了如何在小规模的标注数据集上进行大规模网络的训练的问题

 

R-CNN:突破了传统的目标检测算法的思想,为深度学在目标领域的首次成功突破:

            该算法主要包括区域提名、归一化处理、特征提取、分类及回归等步骤。

R-CNN相对于传统算法有了质的提升,

            但是也有缺点:候选框的数量众多,导致需要大量的运算、效率低、占用硬盘空间大、svm模型仍然需要优化等

 

Fast-RCNN和Faster-RCNN采用了自适应尺度池化对整个网络进行优化,从而规避了R-CNN中冗余的特征提取操作,提高了网络识别的准确率,未来的研究方向将是无需要预先提取候选框区域,这种方法更加迅速,其代表方法为YOLO和SSD

 

学习R-CNN的预备知识:

CNN:了解全连接层的原理,以及CNN网络中各个层的功能及结构

*NMS:了解非极大值一直的原理和目的

非极大值抑制举例:先假设有6个矩形框,根据分类器类别分类概率做排序,从小到大分别属于车辆的概率分别为A、B、C、D、E、F。
(1)从最大概率矩形框F开始,分别判断A-E中与F的重叠度IOU是否大于某个设定的阈值;
(2)假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。
(3)从剩下的矩形框A、C、E中,选择概率最大的E,然后判断E与A、C的重叠度,重叠度大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。

就这样一直重复,找到所有被保留下来的矩形框。

*HOG:了解HOG特征的概念,掌握滑动窗口用法的用途

SVM:了解SVM的思想,了解支持向量机等分类算法

 

由于组合了region proposals和CNNs,所以将该方法称为R-CNN:带有CNN特性的regions

 

知识点:

Selective search:一种从原始图片中提取bounding box(边界框)的方法,主要思想:

  1. 使用Efficient Graph-Based Image Segmentation获取原始图片分割区域
  2. 根据各跟个区域的颜色、大小、纹理、吻合等方面的额相似度合并分割区域

NMS(non max suppression):本质是搜索局部极大值,抑制非极大值元素

物体检测中应用NMS算法的主要目的是消除冗余(框中区域IoU大于某个值,且置信度confidence小于最大置信度的某个大框)的框,找到最佳物体检测位置。

Hard negative mining method

Hard mining就像是准备的错题集,错题集不会是每次所有做错的题目你都往上放。放上去的都是你没有掌握好的那些知识点(错的最多的),而这部分的学习对你是最有帮助的。

具体来说,假设要在一张厨房的图像里判断一致蜘蛛,由于厨房的图像里objects(负样本)可能有很多,蜘蛛(正样本)样本很少。这时候hard mining的意义就是选出那些对网络有帮助的负样本部分,而不是所有的负样本来训练网络。比如说,training过程中,被当前模型误判为蜘蛛最厉害的那些负样本会被挑出来参与loss运算和back propagation

 

R-CNN目标检测

  1. 选取一个网络训练一个分类模型(比如AlexNet),在大数据集上预训练
  2. 对模型在小数据及上做finetune:将分类数目从1000改为20、去掉最后一个全连接层
  3. 特征提取:使用ss提取所有的候选框,对于每一个区域,修正区域大小(resize)以适合cnn的输入(227*227),做一次前行运算,将第五个池化层输出存到硬盘(也就是候选框提取到的特征)
  4. 训练一个svm分类器来判断候选框里的物体的类别,bbox回归:每个类别对应一个svm,判断是不是属于这个分类,也就是positive,反之为negative

 

R-CNN目标检测包含三个模块

  1. Ss:选取不同大小的框,让框出现在不同的位置,得到这个框的判定得分,然后选出其中得分最高的那个框作为目标位置的预测
  2. cnn网络进行特征提取
  3. 类别相关的线性svm

 

Fine-tune说明:Cnn的主要表达能力主要来自卷积层,而不是更大更密集的全连接层。底层学习到的特征是通用的,在它之上的层大部分提升主要来自于学习特定领域的非线性分类器。

 

总结:

  1. R-CNN采用AlexNet,
  2. R-CNN采用ss技术进行region proposal
  3. R-CNN在ImageNet上进行预训练之后,利用成熟的权重参数在PASCAL VOC数据集上进行fine-tune
  4. R-CNN用CNN提取特战,然后用一系列的SVM做类别预测
  5. R-CNN的bbox位置回归基于DPM的灵感,自己训练一个线性回归模型
  6. R-CNN的语义分割采用CMPC生成Region
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值