RCNN系统总结
作者:互联网
参考:https://www.cnblogs.com/skyfsm/p/6806246.html
https://blog.csdn.net/gentelyang/article/details/80469553
https://blog.csdn.net/u010725283/article/details/79020198
https://blog.csdn.net/hust_lmj/article/details/78974348
https://www.cnblogs.com/MY0213/p/9858383.html
RCNN之前:
手段:使用SIFT、HOG等人工提取的特征、区域选择为滑动窗口法。
特点:传统的目标检测方法大概分为区域选择、特征提取(SIFT、HOG等)、分类器(SVM 等)三个部分,其主要问题有两方面:一是区域选择策略没有针对性、时间复杂高,窗口冗余;另一方面手工设计的特征鲁棒性较差。
RCNN:
结构:
过程:
1. 在图像中取出约1000-2000个候选框 (使用选择性搜索)。
2. 每个候选框内图像块缩放至相同大小,并输入到CNN内进行特征提取 。(特征提取网络在分类阶段并不被训练,只有提取特征的作用。在BB回归的阶段,被训练。)。
3. 对候选框中提取出的特征,使用分类器判别是否属于一个特定类 (N种类别就有N个SVM)。
4. 对于属于某一类的候选框,用回归器进一步调整其位置。
特点:
最大的问题有三:需要事先提取多个候选区域对应的图像。这一行为会占用大量的磁盘空间;针对传统的CNN来说,输入的map需要时固定尺寸的,而归一化过程中对图片产生的形变会导致图片大小改变,这对CNN的特征提取有致命 的坏处;每个region proposal 都需要进入CNN网络计算。进而会导致过多次的重复的相同的特征提取,这一举动会导 致大大 的计算浪费。
但是它采用CNN网络提取图像特征,从经验驱动的人造特征范式HOG、SIFT到数据驱动的表示学习范式,提高特征 对样本 的表示能力;采用大样本下有监督预训练+小样本微调 的方式解决小样本难以训练甚至过拟合等问题(迁移学习)。提出来 region proposal + CNN的检测模型。
FAST RCNN:
结构:
过程:
1、在图像中取出约1000-2000个候选框 (使用选择性搜索)。
2. 对整张图片输进CNN,得到feature map。
3.特征提取阶段,同样是提取出整张图片的feature map,然后将原图上的候选框映射到feature map上。然后对各个候选框对应的feature map上的块做ROI pooling,提取出固定长度的特征向量;
4. 对候选框中提取出的特征,使用softmax分类器判别是否属于一个特定类 。
5. 对于属于某一特征的候选框,用回归器进一步调整其位置。
特点:
FAST RCNN输入网络的是一张原图,与RCNN相比明显提高了运算速度。直接使用 Softmax替代了R-CNN中SVM 进行分 类,同时在网络中加入了多任务函数边框回归,实 现了端到端的训练(除SS Region Proposal阶段)。多任务损失函数=分 类损失+&回归损失。候选框都是在原图上的,因为回归损失=候选框-原图中的GT.
因为Fast RCNN使用的是selective search选择性搜索,这一过程十分耗费时间,其进行候选区域提取所花费的时间约为2~3 秒,而提取特征分类仅需要0.32秒,这会造成无法满足实时应用需求,而且因为使用selective search来预先提取候选区域, Fast RCNN并没有实现真正意义上的端到端训练模式。
FASTER RCNN:
结构:
过程:
1. 对整张图片输进CNN,得到feature map。
2. 卷积特征输入到RPN,得到候选框的特征信息。RPN完成的功能:对于N*M大小的特征图生成N*M*K个anchars(特征图中每个小格默认生成K个anchars),然后从N*M*K个anchars中去掉一些(默认是20K个,去掉超过边界的还剩6000,NMS作用后还有2000个,最后根据置信度选择前300个。),完成前景和背景的判别,同时对边框进行粗调。
3. 将候选框输入到ROIPooling层和后续的网络进行分类和边框位置的细调。
特点:
而对于Faster RCNN来讲,与RCNN和Fast RCNN最大的区别就是,目标检测所需要的四 个步骤,即候选区域生成,特征 提取,分类器分类,回归器回归,这四步全都交给深度神 经网络来做,并且全部运行在 GPU上,这大大提高了操作的效率。 Faster RCNN可以说 是由两个模块组成的:区域生成网络RPN候选框提取模块+Fast RCNN检测模块.
RPN是全卷积神经网络,其内部与普通卷积神经网络不同之处在于是将CNN中的全连接层 变成卷积层。RPN生成20000个候 选框,去掉超出边界的剩下6000个,使用NMS去掉跟置 信度高的候选框到2000个,再选择前300个输入到ROIPooling。但是 对小物体的漏检比较严重,同时实时性不高。
SSD
结构:
过程:
1、在不同的featuremap上生成不同数量的default box(相当于faster rcnn中的anchars)。
2、将不同层产生的default box进行conect,如上图。
3、使用NMS进行default box的筛选。
4、对剩下的候选框进行分类和回归。
特点:
1. 引入了一种单阶段的检测器,比以前的算法YOLO更准更快(可达到实时),并没有使用RPN和Pooling操作;
2. 使用一个小的卷积滤波器应用在不同的feature map层从而预测BB的类别的BB偏差;
3. 可以在更小的输入图片中得到更好的检测效果(相比Faster-rcnn);
4. 在多个数据集(PASCAL、VOC、COCO、ILSVRC)上面的测试结果表明,它可以获得更高的mAp值
5、加入基于特征金字塔(Pyramidal Feature Hierarchy)的检测方式,相当于半个FPN思路。
欢迎大神批评指正。。。。。。。。。。。。。。
标签:总结,map,候选框,提取,特征,系统,CNN,RCNN 来源: https://blog.csdn.net/c_daofeng/article/details/99603450