Rich feature hierarchies for accurate object detection and semantic segmentation(理解)

0 - 背景

  该论文是2014年CVPR的经典论文,其提出的模型称为R-CNN(Regions with Convolutional Neural Network Features),曾经是物体检测领域的state-of-art模型。

1 - 相关知识补充

1.1 - Selective Search

  该算法用来产生粗选的regions区域,在我的另一篇博文Selective Search for Object Recognition(理解)中进行详细讲解。

1.2 - 无监督预训练&有监督预训练

1.2.1 - 无监督预训练(Unsupervised pre-traning)

  栈式自编码、DBM采用的都是无监督预训练,预训练阶段样本不需要人工标注数据。(详细思路后续再进行补充)

1.2.2 - 有监督预训练(Supervised pre-training)

  有监督预训练可以称为迁移学习,通过在别的训练集上训练好网络之后将参数作为当前任务网络的初始化参数,相比直接采用随机初始化等方法其精度有很大提高。

  在该论文提出的时候,图片分类的训练数据相比物体检测的数据多得多,因此通过用分类数据集预训练网络而后再将参数用于目标检测网络参数的初始化,是该论文的一个亮点。

1.3 - IOU

  IOU是算法给出的bounding box和真实box的匹配程度,其计算公式为$IOU=\frac{(A\cap B)}{(A\cup B)}$,等价于$IOU=\frac{S_I}{(S_A+S_B-S_I)}$

        

1.4 - 非极大值抑制

  如下图,在检测一个目标时候算法可能会给出一堆的bounding boax,这时候需要判断哪些bounding box是没用的,将它们丢掉。先假设有6个bounding box,根据分类器类别分类概率做排序,从小到大分别属于目标概率为A、B、C、D、E、F。

  • 从最大概率矩形框F开始,分别判断A~E与F的重叠度IOU时候大于设定的阈值
  • 假设B、D与F的重叠度超过阈值,那么就丢掉B、D;并标记第一个bounding box F是我们保留下来的
  • 从剩下的bounding box A、C、E中,选择概率最大的E,然后判断A、C与E的重叠度,重叠度大于阈值就扔掉,并标记E是我们保留下来的第二个bounding box
  • 重复上述过程,找到所有被保留下来的bounding box

         

2 - 总体思路

  首先输入一张图片,通过selective search定位出2000个物体检测框,然后采用CNN提取每个候选框中图片的特征向量,特征向量的维度为4096维,而后采用线性SVM对每个特征向量进行分类。概括起来有如下三个步骤:

  • 找出候选框
  • 每一个候选框采用CNN提取特征向量
  • 利用线性SVM对特征向量进行分类

   

2.1 - 各向异性&各向同性缩放

  由于selective search生成出的候选框大小规模都不一样,而传统CNN要求输入的图像尺度必须是固定的,因此需要采用各向异性或者各向同性缩放的方法来对图像大小进行缩放。

2.1.1 - 各向异性缩放

  不管图片的长宽比例,直接缩放成固定的$227 \times 227$,如下图(D)所示,优点是简单,缺点是很容易造成目标扭曲变形等等。

2.1.2 - 各向同性缩放
  • 方法一:直接在原始图片中,把bounding box的边界扩展成需要的固定尺度,然后再进行裁剪,如果已经延伸到原始图片边界外,采用bounding box中的像素颜色均值进行填充,如下图(B)所示
  • 方法二:先把bounding box裁剪出来,然后用固定的背景颜色填充成所需的固定大小尺度(背景颜色也是采用bounding box的像素颜色均值),如下图(C)所示

              

  论文中还提出了padding处理,上图1、3行采用了padding=0,而2、4行采用了padding=16。经过试验,作者发现采用各向异性缩放、padding=16的精度最高(这里作者提出,图像扭曲的影响并没有我们直观感觉到的那么大)。

2.2 - 正负样本标注

  上述产生的bounding box不可能刚刚好和人工标注的box完全匹配,因此我们需要对这些bounding box打上标签,方便下一步CNN训练使用。标注根据如下规则:

  • 如果该bounding box与真实box的IOU大于0.5,则为正样本,打上对应物体类别的标签
  • 否则为负样本,将其归为背景的类别

3 - 训练

3.1 - CNN网络架构

  提取特征的CNN结构有两个可选方案:Alexnet和VGG 16,经过测试Alexnet精度为58.5%,VGG 16精度为66%,但VGG 16的计算量大约是Alexnet的7倍。

3.2 - CNN有监督预训练

  目标检测的数据集较小,采用随机初始化参数则目前的训练量远远不够,因此先用ImageNet的分类数据集训练CNN,而后将模型结构微调成适应检测任务,直接采用分类模型参数,再做fine-tuning训练。(采用随机梯度下降优化方法,学习率大小为0.001)。

3.3 - fine-tuning阶段

  采用selective search生成的候选框,将其处理到指定大小尺度,对上面有监督预训练后的CNN模型进行fine-tuning训练。假设要检测的物体类别有N类,则需要将预训练的CNN模型最后一层替换成N+1个输出的神经元(额外加1表示背景),这一层采用随机初始化方法,其他网络层参数不变,再采用SGD(随机梯度下降)训练就可以了。(注:SGD学习率选择为0.001,batch size为128,其中32个正样本+86个负样本)。

3.3 - 关于CNN的思考

  疑问1:如果直接采用Alexnet作为特征提取器而不做fine-tuning训练是否可以?

  论文中也对该想法进行了实验,实验结果表明直接采用网络中$p_5$的输出作为特征提取结果的精度跟$f_6$和$f_7$差不多,反而$f_6$提取到的特征还比$f_7$的精度略高。可以总结出一个规则,如果不针对特定任务进行fine-tuning,而是把CNN作为特征提取器,卷积层所学到的特征其实是基础的泛化的特征,而后续的全连接层更多的学习到是特定任务的表示。

  疑问2:CNN的输出可以通过一个softmax层直接达成分类目的,为何还需要通过SVM进行分类?

  通过上述正负样本标注过程可以知道,训练集中正样本远比负样本少,并且只要IOU大于0.5便标注为正样本(条件宽松),而CNN的效果跟训练数据的大小有一定关系,所以少量的标注数据对于CNN来说还是不够,而SVM更适用于少量样本,因此SVM的效果会比softmax好,所以作者采用了额外的SVM分类器。(注:通过实验发现,当IOU的阈值采用0.3的时候效果最好,采用0.0的时候下降了4个百分点,采用0.5的时候下降了5个百分点)

4 - 参考资料

https://blog.csdn.net/mydear_11000/article/details/51882818

https://blog.csdn.net/liyaohhh/article/details/50824226

原文地址:https://www.cnblogs.com/CZiFan/p/9901000.html

时间: 2024-10-03 20:10:02

Rich feature hierarchies for accurate object detection and semantic segmentation(理解)的相关文章

Rich feature hierarchies for accurate object detection and semantic segmentation

一.主要思想 本文的主要思想首先采用Selective Search for Object Recognition论文的方法对每张图像分块得到多个个Region proposals,然后对每个Region proposal提取CNN特征,在采用线性svm进行分类,在VOC2012上面达到了 53.3%的mAP. 二.Object detection with R-CNN 1.模型框架 (1)获取Region proposals 采用Selective Search for Object Reco

论文解读1——Rich feature hierarchies for accurate object detection and semantic segmentation

背景 在2012 Imagenet LSVRC比赛中,Alexnet以15.3%的top-5 错误率轻松拔得头筹(第二名top-5错误率为26.2%).由此,ConvNet的潜力受到广泛认可,一炮而红.既然convNet在图像分类任务上能取得好成绩,是不是也能放到目标检测任务上呢.本文就是用convNet解决目标检测任务的首次探索.在PASCAL VOC 2010上的mAP达到了53.7%. 方法 模型一共分为三个模块. (1)region proposals(区域推荐)).在一张整图上面产生很

[论文理解]Region-Based Convolutional Networks for Accurate Object Detection and Segmentation

Region-Based Convolutional Networks for Accurate Object Detection and Segmentation 概括 这是一篇2016年的目标检测的文章,也是一篇比较经典的目标检测的文章.作者介绍到,现在表现最好的方法非常的复杂,而本文的方法,简单又容易理解,并且不需要大量的训练集. 文章的大致脉络如图. 产生region proposal 文章提到了滑窗的方法,由于滑窗的方法缺点非常明显,就是每次只能检测一个aspect ratio,所以确

论文: Feature Pyramid Networks for Object Detection

论文阅读: Feature Pyramid Networks for Object Detection Feature Pyramid 是提取图像特征领域的很重要的概念.在深度学习领域没有被提及是因为目前深度学习仍然受到计算量的限制. 本论文根据不同的feature maps给出了 Feature Pyramid Network,因为 Featrue Pyramid的尺度不变性,可以有效的解决Object Detection 中的目标物体不一致大小的问题. 熟悉图像处理的都知道 sift 算法,

【Network Architecture】Feature Pyramid Networks for Object Detection(FPN)论文解析(转)

目录 0. 前言 1. 博客一 2.. 博客二 0. 前言 ??这篇论文提出了一种新的特征融合方式来解决多尺度问题, 感觉挺有创新性的, 如果需要与其他网络进行拼接,还是需要再回到原文看一下细节.这里转了两篇比较好的博客作为备忘. 1. 博客一 这篇论文是CVPR2017年的文章,采用特征金字塔做目标检测,有许多亮点,特来分享. 论文:feature pyramid networks for object detection 论文链接:https://arxiv.org/abs/1612.031

Acquistion Location Confidence for accurate object detection

Acquistion Location Confidence for accurate object detection 本论文主要是解决一下两个问题: 1.分类得分高的预测框与IOU不匹配,(我猜应该是训练数据集导致的) 2.基于回归的边框修正是非单调的,缺乏可解释性. 贡献点 IoU-guided NMS Optimization refine PRpooling 1.IoU-guided NMS (1)传统 NMS :  根据边界框的分类置信度排序,每次选择cls score最大的框,并对

Parallel Feature Pyramid Network for Object Detection

ECCV2018 总结: 文章借鉴了SPP的思想并通过MSCA(multi-scale context aggregation)模块进行特征融合从而提出PFPNet(Parallel Feature Pyramid Network)算法来提升目标检测的效果. 1.使用spp模块通过扩大网络宽度而不是增加深度来生成金字塔形特征图 2.提出msca模块,有效地结合了大不相同规模的上下文信息 3.效果好:82.3% (Pascal VOC 2007), 80.3% (PASCAL VOC 2012),

论文阅读 | FPN:Feature Pyramid Networks for Object Detection

论文地址:https://arxiv.org/pdf/1612.03144v2.pdf 代码地址:https://github.com/unsky/FPN 概述 FPN是FAIR发表在CVPR 2017上的一篇文章,采用特征金字塔的方法进行目标检测.文中利用深层卷积网络固有的多尺度金字塔层次结构,高效地构造特征金字塔.文章提出了FPN--一种具有横向连接的自顶向下的结构,来构建所有尺度上的高级语义特征映射. 网络结构 下图展示了几种不同的利用特征的方式:(a)为图像金字塔,就是对图像resize

【论文笔记】Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

写在前面: 我看的paper大多为Computer Vision.Deep Learning相关的paper,现在基本也处于入门阶段,一些理解可能不太正确.说到底,小女子才疏学浅,如果有错误及理解不透彻的地方,欢迎各位大神批评指正! E-mail:[email protected]. ------------------------------------------------ <Faster R-CNN: Towards Real-Time Object Detection with Reg