算法详解之RCNN

图像检测流程

传统图像检测的基本流程:

输入——特征提取(手工/人为计算)——应用机器学习算法进行检测——输出检测结果

经典的特征提取算法(Sift/HOG/Fast/Surf/Orb)aa

CNN算法进行目标检测:

 

两步检测算法

First Trial-RCNN(2014)

详细流程:

  • 对输入图片进行Extract Region Proposal,即一张图片生成1k~2k个候选区域;
  • 将Region Proposal区域resize成相同大小输入CNN模型提取特征;
  • 将提取特征输入传统机器学习算法进行分类与回归,分类判别属于哪一类,回归是应用回归器精细修正候选框位置。

候选区域的生成:

使用了Selective Search1方法从一张图像生成约2000-3000个候选区域。基本思路如下:

  • 使用一种过分割手段,将图像分割成小区域;

  • 查看现有小区域,合并可能性最高的两个区域。重复直到整张图像合并成一个区域位置;

  • 输出所有曾经存在过的区域,所谓候选区域

候选区域生成和后续步骤相对独立,实际可以使用任意算法进行。

 

CNN部分(将图片裁剪为相同大小,得到相同维度的 vector)

 

NMS(非极大抑制)

NMS即non maximum suppression即非极大抑制,顾名思义就是抑制不是极大值的元素,搜索局部的极大值。

就像上面的图片一样,定位一个车辆,最后算法就找出了一堆的方框,我们需要判别哪些矩形框是没用的。

所谓非极大值抑制:先假设有6个矩形框,根据分类器类别分类概率做排序,从小到大分别属于车辆的概率分别为A<B<C<D<E<F。

  • (1) 从最大概率矩形框F开始,分别判断A、B、C、D、E与F的重叠度IOU是否大于某个设定的阈值;
  • (2) 假设B、D与F的重叠度超过阈值,那么就扔掉B、D;并标记第一个矩形框F,是我们保留下来的。
  • (3) 从剩下的矩形框A、C、E中,选择概率最大的E,然后判断A、C与E的重叠度,重叠度大于一定的阈值,那么就扔掉;并标记E是我们保留下来的第二个矩形框。
  • (4) 重复这个过程,找到所有被保留下来的矩形框。

Soft-NMS

作用: iou大时si小,起负相关作用,但初始si特别大时即使iou大,计算得到的si依旧很高,可以将两个都保留(区分两个挨的很近的不同物体)

阈值sigma通常为0.3

Fast R-CNN

Fast R-CNN的输入由两部分组成:一是待处理的整张图像;二是候选区域(region proposal)。

Fast R-CNN处理的第一步是对图像进行多次卷积核池化处理来获取卷积特征图。由于存在多个候选区域,系统会有一个甄别,判断出感兴趣区域,也就是Region of Interest, RoI。RoI池化层是SSP(Spatial Pyramid Pooling)层的特殊情况,它可以从特征图中提取一个固定长度的特征向量。每个特征向量,都会被输送到全连接(FC)层序列中,这个FC分支成两个同级输出层。其中一层的功能是进行分类,对目标关于K个对象类(包括全部”背景background”类)输出每一个RoI的概率分布,也就是产生softmax概率估计;另一层是为了输出K个对象中每一个类的四个实数值(bbox regression)。每4个值编码K个类中的每个类的精确边界框(bounding-box)位置。整个结构是使用多任务损失的端到端训练(trained end-to-end with a multi-task loss)(除去Region Proposal提取阶段)。

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值