[讨论] 深度学习Region Proposal方法
Region Proposal 方法看的比较头大,现在在此总结一下,欢迎大家批评指正
One Stage VS Two stage
one stage | two stage |
---|---|
直接回归物体的类别概率和位置坐标值(无region proposal),但准确度低,速度相遇two-stage快。 | 先由算法生成一系列作为样本的候选框,再通过卷积神经网络进行样本分类。 |
直接通过主干网络给出类别和位置信息,没有使用RPN网路。这样的算法速度更快,但是精度相对Two-stage目标检测网络了略低。 | 对于Two-stage的目标检测网络,主要通过一个卷积神经网络来完成目标检测过程,其提取的是CNN卷积特征,在训练网络时,其主要训练两个部分,第一步是训练RPN网络,第二步是训练目标区域检测的网络。网络的准确度高、速度相对One-stage慢。 |
目前常用的典型的One-stage目标检测网络 YOLOv1、YOLOv2、YOLOv3 SSD、DSSD等 Retina-Net等 | R.Girshick et al等人在2014年提出的R-CNN到Faster R-CNN网络。 |
RCNN
出自论文 : Rich feature hierarchies for accurate object detection and semantic segmentation 链接
侯选框的选择
-
选取了Selective Search的方式对每张图提取了约2000个大小不一候选区域,为了使不同尺寸的候选区域可以喂给固定输入尺寸的网络提取特征,对这些候选区域都缩放到227,为避免缩放操作对识别检测精度的影响,作者对缩放过程做了优化,比如对候选区域边界扩展、warp等,并选取最好的缩放方式。
-
Selective Search for Object Recognition link
-
Selective Search 算法:
- 使用 Felzenszwalb and Huttenlocher【一种基于灰度值计算相临像素的方法】提出的方法得到初始分割区域R={r1,r2,…,rn};
- 初始化相似度集合S=∅;
- 计算两两相邻区域之间的相似度,将其添加到相似度集合S中;
- 从集合S中找出,相似度最大的两个区域 ri 和rj,将其合并成为一个区域 rt,从集合中删去原先与ri和rj相邻区域之间计算的相似度,计算rt与其相邻区域(与ri或rj相邻的区域)的相似度,将其结果加入到相似度集合S中。同时将新区域 rt 添加到区域集合R中;
- 获取每个区域的Bounding Boxes L,输出物体位置的可能结果L。
在每次迭代中,形成更大的区域并将其添加到区域提议列表中。以自下而上的方式创建从较小的细分segments到较大细分segments的区域提案,如下图最左侧。
-
在考虑相似性的部分作者也考虑了场景/光照/颜色/纹理/尺度/形状 等尺度综合衡量图片之间的相似程度等 来计算相关性。 还是手工产生的特征。
完整的RCNN
RCNN:
1):利用selective-search方法提取2000个自下而上的region proposal;
2):针对每一个region proposal我们用一个大的CNN网络计算特征;
3):利用线性SVMs分类器对每个region proposal进行分类;
4):进行回归分析调整region proposal区域。
RCNN 缺点:速度慢,占用太多磁盘资源等,但也正是这些痛点
参考:
【理解Selective Search 】!!
【Selective Search for Object Recognition 论文原文】
【图像处理—基于图的图像分割(Graph-Based Image Segmentation】
【R-CNN论文详解 】!!!
Fast-RCNN:
ROI 的取法应该是一样的 Selective Search
- 读取整个图片和一个ROI(Regions of Interest,也就是一系列划分的bounding box)集合作为输入);
- 然后convnet从整个图片中提取特征,得到feature map;
- 对每一个ROI区域,pooling层从feature map中提取一个固定大小的feature factor;
- feature factor被送往FC(fully-connected layer),被映射到两个部分,一部分是评估k个目标类加上catch-all"背景"类的softmax probability;另一部分产生bbox regressor,即针对k个目标对象的每一个4值真值数量(4 real-valued numbers),每个4值编码集合(set of 4 values)K类目标对象之一的bounding-box位置。
参考:
【Fast RCNN论文的概括理解】
【论文原文】
Faster-RCNN 之 RPN:
【TO - DO】RPN 网络设计!
【Faster R-CNN论文笔记——FR !!!非常棒的总结】
Faster R-CNN这篇论文解决了这个系统中的三个问题:
- 设计区域生成网络(RPN);
- 训练区域生成网络;
- 让区域生成网络和Fast RCNN网络共享特征提取网络。
Faster-R-CNN算法由两大模块组成:
- .PRN候选框提取模块;
- .Fast R-CNN检测模块。