学习笔记

1.简介

writers: Ross Girshick1 Jeff Donahue1,2 Trevor Darrell1,2 Jitendra Malik1算法

这篇论文于2014年发布在计算机视觉顶会CVPR上,做者在这篇论文中提出了一种更加优秀的object detection算法,由于对图像中对象的提取使用了region proposal(推荐区域) 方法,以及在特征提取过程当中使用了深度卷积神经网络(large convolutional neural network),因此,做者将这种目标检测算法命名为RCNN(Regions with CNN features)。到目前为止,RCNN算法已经不是解决object detection问题的最优方法,可是在这篇论文刚提出的时候,RCNN算法将mAP值在VOC-2012数据集上提升到了53.3%,较当时最好的算法提升了30%。网络

这篇文章的主要贡献在于两点:
(1) 将卷积神经网络应用到bottom-up区域候选方法上,用来定位图片中的对象
(2) 在可供训练的数据量较小的状况下,能够将模型在其余相关数据集上进行大规模学习,而后再进行将输出明确化的调整工做,能够达到良好的训练结果。svn

2.模型介绍

做者提出的RCNN模型如图:其中主要包含了三个模块,而且解决了对象定位以及参数训练的问题。
学习

从图中能够看到,做者的模型主要分为三个部分:
(1) 产生类别独立的region proposals
(2) 使用CNNs对每一个region提取出一个固定长度的feature
(3) 使用class-specific linear SVM对提取的features 分类.net

2.1产生region proposals

做者使用selective search 算法产生2000个region proposals
selective search 算法以下:

(图片转自blog:https://blog.csdn.net/u011436429/article/details/80277633)对象

产生initial region的方法能够参考论文《Efficient Graph-Based Image Segmentation》blog

2.2提取定长features

做者对每一个region proposal,使用Caffe implementation of CNN 提取到4096-dimensional 向量,须要注意的是,CNN模型的输入须要固定大小的227227的图片,因此在region proposal 经过CNN 提取特征以前,对图片进行填充,已达到输入须要的227227pixel图片

做者提取特征用的CNN的网络结构由5个卷积层以及2个全联接层构成ci

2.3SVN分类

在使用CNN提取到region proposals 的feature Vectors 后,对每一个类使用SVM判断候选区域是否包含了目标检测对象,对每一个region计算评分分值,利用这个分值做为该候选区域属于某个类别的可能性,采用非极大抑制,即若是两个scored regions 之间的intersection-over-union(IoU)值大于某个阈值时,丢弃分数小的regionget

3.模型训练

采用迁移学习
做者在 ILSVRC 2012数据集上训练好的CNN模型,而后调整输出目标

4.分类

一般对待一个二值化的分类器,它的结果只要 2 中,Positive 和 Negetive。
好比,有一个汽车分类器,它能够轻松地确认,一个方框里面包含了一辆汽车,那么它确定就是 Positive。
也能够很清楚地确认,若是一个背景方框中没有包含汽车,那么它就是 Negetive。
可是,比较难确认的是,若是一个方框,只有一部分与汽车重叠,那么如何标注这个方框呢?
R-CNN 采用的是 IoU 的阈值,这个 threshold 取 0.3,若是一个区域与 Ground tureth 的 IoU 值低于设定的阈值,那么能够讲它当作是 Negetive.
IoU 的 threshold 它不是做者胡乱取值的,而是来自 {0,0.1,0.2,0.3,0.4,0.5} 的数值组合的。
并且,这个数值相当重要,若是 threshold 取值为 0.5,mAP 指标直接降低 5 个点,若是取值为 0,mAP 降低 4 个点。一旦特征抽取成功,R-CNN 会用 SVM 去识别每一个区域的类别

论文没看完,由于理解误差,不少地方以为特别特别矛盾,写不下去了,等哪天懂了再补

相关文章
相关标签/搜索