其他分享
首页 > 其他分享> > 【深度学习】【论文笔记】【RCNN】Rich feature hierarchies for accurate object detection and semantic segmentation

【深度学习】【论文笔记】【RCNN】Rich feature hierarchies for accurate object detection and semantic segmentation

作者:互联网

RCNN

问题引入

RCNN提出的问题背景是

在2012年ILSVRC研讨会上,关于ImageNet结果的重要性得到了激烈的讨论,核心问题可以归结为:ImageNet上的CNN分类结果在多大程度上可以推广到PASCAL VOC挑战上的目标检测结果。

RCNN原论文的作者通过缩小图像分类和目标检测之间的差距来回答这个问题。作者关注的两个问题是:

作者如何利用深度网络进行对象定位

与图像分类不同,目标检测需要在图像中定位(可能有很多)对象。一种方法将定位定义为一个回归问题。这种策略在实践中可能并不成功。另一种方法是构建一个滑动窗口检测器(CNNs已经以这种方式使用了至少20年,通常用于约束对象种类,例如人脸和行人)。为了保持较高的空间分辨率,这些CNNs通常只有两个卷积层和池化层。RCNN作者考虑采用滑动窗口方法,并且他们的网络中有 5 5 5个卷积层,在输入图像中有非常大的接受域( 195 × 195 195×195 195×195像素)和步长( 32 × 32 32×32 32×32像素),这使得在滑动窗口范例中精确定位成为一个开放的技术挑战。

作者通过在“区域识别”范式内操作来解决CNN的定位问题,该范式在对象检测和语义分割两方面都取得了成功。测试阶段,作者的方法对输入图像生成 2000 2000 2000个左右的独立分类的候选区域,利用CNN从每个建议区域中提取一个固定长度的特征向量,然后用特定分类的线性SVM对每个区域进行分类。并且作者使用了一个简单的技术(仿射图像扭曲)来计算每个建议区域的固定大小的CNN输入,而不管该区域的形状如何。由于该系统将候选区域与CNN相结合,所以该方法被命名为RCNN:具有CNN特征的区域(Region)。
在这里插入图片描述
该系统包含了如下的步骤:

作者如何解决少量标注数据训练问题

检测面临的第二个挑战是标记数据稀缺,目前可用的数量不足以训练一个大型CNN。解决这个问题的传统方法是使用无监督预训练,然后进行有监督的微调。RCNN的第二个主要贡献是证明了在大辅助数据集(ILSVRC)上进行有监督的预训练,然后在小数据集(PASCAL)上进行特定区域的微调,这种方法是在数据匮乏时学习大容量CNNs的有效范例。

用RCNN进行目标检测

RCNN的目标检测系统由三个模块组成:

模块设计

区域推荐。近来有很多研究都提出了产生类别无关区域推荐的方法。比如: objectness(物体性),selective search(选择性搜索),category-independent object proposals(类别无关物体推荐),constrained parametric min-cuts(受限参最小剪切, CPMC),multi-scal combinatorial grouping(多尺度联合分组),以及Ciresan等人的方法,将CNN用在规律空间块裁剪上以检测有丝分裂细胞,也算是一种特殊的区域推荐类型。由于R-CNN对特定区域算法是不关心的,所以作者采用了选择性搜索以方便和前面的工作进行可控的比较。

选择性搜索算法介绍

特征提取。作者使用Krizhevsky等人所描述的CNN的一个Caffe实现版本对每个推荐区域抽取一个 4096 4096 4096维度的特征向量把一个输入为 277 × 277 277×277 277×277大小的图片,通过五个卷积层和两个全连接层进行前向传播,最终得到一个 4096 − D 4096-D 4096−D的特征向量。可以参考AlexNet获得更多的网络架构细节。为了计算region proposal的特征,首先要对图像进行转换,使得它符合CNNs的输入(架构中的CNNs只能接受固定大小: 277 × 277 277×277 277×277)。这个变换有很多办法,作者使用了最简单的一种。无论候选区域是什么尺寸和宽高比,作者都把候选框变形成想要的尺寸。具体来讲,变形之前,先在候选框周围加上 16 16 16的padding填充,再进行各向异性缩放。

RCNN中的各项同性与各向异性的简单解释

测试阶段的目标检测

测试阶段,在测试图像上使用selective search抽取 2000 2000 2000个推荐区域(实验中,作者使用了选择性搜索的快速模式)。然后变形每一个推荐区域,再通CNN前向传播计算出特征。然后使用对每个类别训练出的SVM给整个特征向量中的每个类别单独打分即对每一个框使用每个类别的SVM进行预测打分。然后给出一张图像中所有的打分区域,然后使用NMS(每个类别是独立进行的),拒绝掉一些和高分区域的IOU大于阈值的候选框。

NMS算法什么
那soft NMS算法又是什么

训练

RCNN的训练过程包括了三个阶段。

RCNN预训练意外的两个阶段对于正例和负例的定义有所不同。

标签:segmentation,作者,训练,object,detection,区域,277,CNN,RCNN
来源: https://blog.csdn.net/Matlab16/article/details/115516984