➢Ross B. Girshick大神在201 6年提出
➢目标检测任务
给定图片中精确定位物体位置 ,预测物体的类别
尺度变化、 视角变化、姿态变化、场景不确定、多个类别
RCNN->SPPNet-> Fast- :RCNN-> Faster- RCNN升级
➢RBG 2014年提出
➢深度特征
RCNN步骤:
➢步骤一:训练分类网络(AlexNet)
➢步骤二:模型做fine-tuning
类别1000改为20
去掉FC
➢步骤三:特征提取
提取候选框(选择性搜索)
对于每一一个区域: 修正区域为CNN的输入,利用网络对候选框提取到特征
提取候选框(选择性搜索步骤)
➢step0:生成区域集R,具体参见论文《Efficient Graph-Based Image Segmentation》
➢step1:计算区域集R里每个相邻区域的相似度S={s1,2...}
➢step2:找出相似度最高的两个区域,将其合并为新集,添加进R .
➢step3:从S中移除所有与step2中有关的子集
➢step4:计算新集与所有子集的相似度
➢step5:跳至step2,直至S为空
➢步骤四:训练SVM分类器:每个类别对应一一个SVM
➢步骤五:回归器精修候选框位置:利用线性回归模型判定框的准确度
●RCNN缺点:
➢候选框选择算法耗时严重
➢重叠区域特征重复计算
➢分步骤进行,过程繁琐
➢Spatial Pyramid Pooling
➢空间金字塔池化
CNN不同尺度输入
仅对原图提取一次卷积特征
ssp:
➢结合SPPNet改进RCNN
ROI Pooling:单层SPPNet
➢多任务网络同时解决分类和位置回归
共享卷积特征
➢为Faster RCNN的提出打下基础,提供了可能
Fast RNN网络结构:
ROI Pooling:
ROI Pooling是pooling层的一种,为了将proposal抠出来的过程,然后resize到统一 的大小。
操作如下:
1、根据输入的image,将Roi映射到feature map对应的位置
2、将映射后的区域划分为相同大小的sections (sections数量和输出的维度相同)
3、对每个section进行max pooling操作
Fast RNN网络性能提升:
Fast RNN网络缺点:
➢存在瓶颈: 选择性搜索,找出所有的候选框十分耗时
➢那我们能不能找出 个更加高效的方法来求出这些候选框呢?
Region Proposal Network (RPN)网络
➢Region Proposal Network (RPN)
端到端的检测
Faster RNN网络结构:
➢主干网络: 13con+ 13relu+ 4pooling
➢RPN: 3x3+ 背景前景区分+初步定位
➢ROIPooling
➢分类+位置精确定位
➢Anchor
➢前景背景分类+框位置的回归
粗定位.
粗分类
找到候选区候,针对每个候选区来估计每个候选区的类别和坐标:
➢Anchor
➢三个面积尺寸(128, 256,512)
➢在每个面积尺寸下,取三种不同的长宽比例(1:1,1:2,2:1)
Faster RCNN性能对比
Faster RCNN算法改进
➢更好的网络特征
➢更精准的RPN
➢更完善的ROI分类
➢样本后处理
➢更大的mini-Batch
➢HyperNet是201 6年清华提出的优秀的Faster-RCNN变种
➢代季峰,何恺明,孙剑
➢Body+Head
➢base的VGG1 6换成了ResNet
➢通过position sensitive score map把目标的位置信息融合进ROI pooling
➢耗时的卷积都尽量移到前面共享的subnetwork上
➢旷视和清华大学在COCO,2017比赛拿到冠军
➢Body+Head
➢通过对head部分的修改减少了较多计算量
Light-Head RCNN VS Faster RCNN:
➢在精度上, Faster RCNN为了减少全连接层的计算量,使用了global average pool,这会导致在一定程度上丢失位置信息;
➢在速度上, Faster RCNN的每一个ROI都要通过R-CNN subnet做计算,这必将引起计算量过大,导致检测速度慢。
Light-Head RCNN核心结构
➢thinner feature map: score map维度变成了10*p*p=490
➢借鉴了Inception V3的思想,将k*k的卷积转化为1*k和k*1
➢R-CNN subnet部分使用channel为2048的fc层来改变前一-层的feature map的通道数,最后通过两个fc实现分类和回归。
主要强调通过多个任务来提高目标检测的效果, Mask- RCNN不仅包括了目标检测分类和bounding boxe任务之外,还包括了一个分割的任务。总而言之,Mask- RCNN综合考虑了多个任务,通过这种方式去提高深度学习目标检测的整体效果。
➢只有proposal自身的阈值和训练器训练用的阈值较为接近的时候,训练器的性能才最好
➢中科院nlpr实验室 ICCV2017
➢R-FCN可以看成是对一个proposal, 用- -些position-sensitive的weak classifier去做检测,然后把这些classifier的检测结果ensemble起来(position-sensitive Rol pooling)
➢这种方法没有考虑到region proposal的global的信息和context的信息。
在Faster RCNN后续的改进算法中经常用到的两种策略:
OHEM(在线难例挖掘)
➢根据输入样本的损失进行筛选,筛选出hard example,表示对分类和检测影响较大的样本,然后将筛选得到的这些样本应用在随机梯度下降中训练。
➢两个: ROI Network完成Soft- NMS
➢I0U小于阈值的Bbox, 降低阈值
Faster RCNN系列算法应用场景
●人脸检测与识别任务
●ADAS场景目标检测与识别(车、行人、非机动车)
●通用物体检测与识别
●自然场景下文本检测与识别等等