精华内容
下载资源
问答
  • 目标检测基础RCNN论文原文,Richfeaturehierarchiesforaccurateobjectdetectionandsemanticsegmentation
  • 目标检测的开山之作RCNN(cvpr2014),中文翻译我已经过校对。
  • RCNN,FastRCNN和FasterRCNN论文原文,介绍了经典的双阶段目标检测算法RCNN及其改进,属于深度学习必读论文
  • Mask RCNN论文理解

    2019-09-05 10:00:22
    特别声明:本文是阅读文章“Mask-RCNN论文解读”所做笔记。详细细节可参阅原文。 Mask-RCNN论文解读 Mask R-CNN是基于Faster R-CNN演进改良而来: 1)FasterR-CNN并不是为了输入输出之间进行像素对齐的目标而设计的...

    特别声明:本文是阅读文章“Mask-RCNN论文解读”所做笔记。详细细节可参阅原文。

    Mask-RCNN论文解读

    Mask R-CNN是基于Faster R-CNN演进改良而来:

    1)FasterR-CNN并不是为了输入输出之间进行像素对齐的目标而设计的,MASK R-CNN提出一个简洁非量化的层RoIAlign,不仅保留大致的空间位置,而且能够相对提高10%到50%的掩码精确度(Mask Accuracy),在更严格的定位度量指标下可以得到更好的度量结果。
    2)分割掩码和类别预测很重要,因此MASK R-CNN为每个类别分别预测了一个二元掩码
    3)FasterR-CNN的每个目标对象有两个输出:类标签(classlabel)边界框的抵消值(bounding-box offset)。Mask R-CNN增加了第三个分支的输出:目标掩码,实现对目标的空间布局更精细的提取。

    Mask R-CNN工作原理:
    使用了与Faster R-CNN相通的两阶段流程,第一阶段叫做RPN(Region Proposal Network),提出了候选对象边界框。第二阶段本质上就是FastR-CNN,使用来自候选框架中的RoIPool来提取特征并进行分类和边界框回归,但Mask R-CNN为每个RoI生成了一个二元掩码。掩码将一个对象的空间布局进行了编码,与类标签或框架不同的是,Mast R-CNN可以通过卷积的像素对齐来使用掩码提取空间结构

    Mask R-CNN技术要点:
    1)基础网络。将ResNeXt-101+FPN用作特征提取网络,增强了基础网络。

    2)ROIAlign层。ROIPool是一种针对每一个ROI的提取一个小尺度特征图(E.g. 7x7)的标准操作,用以解决将不同尺度的ROI提取成相同尺度的特征大小的问题。ROIPool首先将浮点数值的ROI量化成离散颗粒的特征图,然后将量化的ROI分成几个空间的小块(Spatial Bins),最后对每个小块进行Max Pooling操作生成最后的结果。通过计算[x/16]在连续坐标x上进行量化,其中16是特征图的步长,[ . ]表示四舍五入。这些量化引入了ROI与提取到的特征的不对准问题。由于分类问题对平移问题比较鲁棒,所以影响比较小。但是在预测像素级精度的掩模时会产生一个非常的大的负面影响。
    Mask R-CNN使用ROIAlign层来解决这个问题,并且将提取到的特征与输入对齐。核心思想是避免对ROI的边界或者块(Bins)做任何量化。使用双线性插值(Bilinear Interpolation)在每个ROI块中4个采样位置上计算输入特征的精确值,并将结果聚合(使用Max或者Average)。

    3)分割Loss。由原来的基于单像素Softmax的多项式交叉熵变为了基于单像素Sigmod二值交叉熵。该框架对每个类别独立地预测一个二值掩模,没有引入类间竞争,每个二值掩模的类别依靠网络ROI分类分支给出的分类预测结果。FCNs是对每个像素进行多类别分类,它同时进行分类和分割,这样对于对象实例分割会得到一个较差的性能。

    4)掩模表示。一个掩模编码了一个输入对象的空间布局。Mask R-CNN使用一个FCN对每个ROI预测一个掩模,保留了空间结构信息。

    展开全文
  • RCNN论文阅读笔记

    2019-05-24 17:32:44
    RCNN论文阅读笔记 原文:Rich feature hierarchies for accurate object detection and semantic segmentation 时间:2014年 文章解决了什么问题 目标检测发展停滞,通过复杂的ensemble模型才能勉强提高一些精度 用...

    RCNN论文阅读笔记

    原文:Rich feature hierarchies for accurate object detection and semantic segmentation
    时间:2014年

    文章解决了什么问题

    目标检测发展停滞,通过复杂的ensemble模型才能勉强提高一些精度

    用了什么方法

    两个 insights

    • 在bottom-up region proposals中应用卷积神经网络(AlexNet)
    • 提出当标签数据少的时候训练神经网络的模式——“supervised pre-training/domain-specific fine-tuning”

    三个模块

    • category-independent的region proposals
    • 提取特征的CNN,在ImageNet上pre-train,然后在目标检测数据集上fine-tune
    • 对每个类的SVM二分类器
      在这里插入图片描述

    训练过程

    • 在ImageNet上训练AlexNet
    • 用wrap的proposal region来fine-tuning,将最后一层1000的全连接层换成N+1N+1层的全连接层,其中NN是检测目标的类别,额外的1代表背景
    • 得到proposal和特征后,使用SVM分类
    • 使用proposal和特征进行bounding box regression,得到更好的bounding box

    效果如何

    • 在VOC 2010 test上将mAP提升到了53.7%,在VOC 2013上mAP为31.4%,第二OverFeat是24.3%
    • 当时相对快 13s/image on a GPU 53s/image on a CPU
    • 内存占用小,用CNN提取4096维特征,占用的内存小

    存在什么不足

    • 慢,CNN对每个proposal提取特征
    • multi stage,麻烦
    • 需要disk memory

    其他

    一些解释

    • PASCAL VOC dataset
    • DPM
    • bounding box regression
    • selective search
    • hard negative mining method

    为什么不直接使用fine-tune之后的CNN来进行分类?

    作者做了这样的实验,在VOC2007上mAP从54.2%降低到了41.3%,作者推测可能因为fine-tune时给的数据的定位可能没有做的很好

    发现

    作者通过在未经fine-tuning的网络上分析,发现去掉最后的两层fc层网络表现反而更好,这时去掉了大量的参数,前面的特征仅仅是用6%的网络参数得到的,因此发现CNN的表示能力主要来自于它的卷积层

    展开全文
  • http://www.telesens.co/2018/03/11/object-detection-and-classification-using-r-cnns/​...使用RCNN进行目标检测和分类经典的RCNN系列(主要是RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN),是two-sta...

    d1ce24d0030331124038dacb961484b4.png
    http://www.telesens.co/2018/03/11/object-detection-and-classification-using-r-cnns/www.telesens.co

    本文参考上文,做了部分翻译和自己的理解,欢迎交流讨论!

    使用RCNN进行目标检测和分类

    经典的RCNN系列(主要是RCNN,Fast-RCNN,Faster-RCNN,Mask-RCNN),是two-stage的经典目标检测模型。本文希望从细节上把这些模型了解清楚(Mask-RCNN的不在本文中介绍,因为Mask-RCNN主要用于分割任务,其在Faster-RCNN的基础上做了改进)

    本文主要介绍Pytorch版本的Faster-RCNN,代码见

    https://github.com/ruotianluo/pytorch-faster-rcnngithub.com

    文章内容如下:

    1. 图像预处理
    2. 网络结构
    3. 实现细节:训练
      1. 锚框生成层
      2. 区域推荐层
      3. 推荐层
      4. 锚框目标层
      5. 计算分类层损失
      6. 推荐目标层
      7. 裁剪池化
      8. 分类层
    4. 实现细节:推理
    5. 附录
      1. Resnet-50网络架构
      2. 非极大抑制(NMS)

    图像预处理

    训练和推理过程的预处理方法不是一样的,需要注意这一点!

    具体而言就是归一化的均值和方法分别是所有训练集和测试集数据的均值

    和方差。

    网络架构

    一个RCNN神经网络主要解决如下两个问题:

    • 从输入图像中获取感兴趣区域(Region of Interest - RoI)
    • 识别RoI中目标类别,主要以计算概率的方法得到

    RCNN包含三个子模块:

    • Head。也称为backbone,即骨干网络。
    • Region Proposal Network - RPN。RoI推荐网络,一是推荐可能存在目标的bbox,二是初步纠正anchor的坐标
    • 分类网络。对于Faster-RCNN,有两个分支,一是分类,二是bbox回归,纠正锚框坐标。对于Mask-RCNN,有三个分支,在Faster-RCNN的基础上增加了与FPN类似的反卷积网络。

    对于Head,一般是在ImageNe数据集上预训练好的CNN模型。由于预训练模型的浅层主要是基于边缘和颜色来作为特点,泛化能力较好。预训练模型的深层主要与特定任务相关,泛化能力较差。因此浅层的参数在训练的过程中保持相对稳定不变,可以设置较低的学习率,而深层的参数在训练的过程中需要针对数据集做较大修改,可以设置较高的学习率。

    对于RPN,接收来自Head的输入图像特征,送入有CNN和MLP组成的RPN,生成推荐框RoI(来源于锚框,并初步实现了框坐标纠正)。然后根据推荐框对应到特征图上的位置,裁剪特征图(Crop Pooling,在Mask-RCNN中使用RoI Align代替了RoI pooling),得到输出结果,送入分类网络。

    对于分类网络,对每个RoI进行分类和框坐标回归(二次框坐标修正)。

    在原文

    https://github.com/ruotianluo/pytorch-faster-rcnngithub.com

    中提到了网络初始化的问题,这里我多写几种方法:

    • Xavier初始化;
    • He初始化;
    • BN层的
      初始化为零(主要是针对带有skip-connection的模块,因为这样网络的前向和后向传播,在刚开始训练的时候均经过skip-connnection,一般认为这么做可以提高训练效率)。(参见论文bag of tricks ...... from 李沐)

    934b99b1654323a11291a2be608584bd.png

    上图把Head,RPN和分类网络描述在一张图中。其中

    表示经过预处理过后的输入图像的宽度和高度。

    对于head,输入

    分别表示输入图像的宽度、高度和通道数(3表示输入图像为RGB彩色图像),输入图像经过Conv2D降采样后变为
    (64个宽度为
    ,高度为
    的特征图),经过类似操作,head的输出为
    (1024个宽度为
    ,高度为
    的特征图),这个就是输入图像的特征图,有两个作用,一是输入到RPN中,另外一个根据RPN的推荐框来裁剪对应位置的特征图,作为分类网络的输入。

    对于分类网络(Classification Network),接收裁剪好的特征图,进行Pooling,变为统一长宽的特征图(对于Faster-RCNN,为RoI Pooling,对于Mask-RCNN,为RoI Align),然后送到两个分支。一个分支为分类网络,另一个分支为边界框回归网络。

    实现细节:训练

    简要介绍完网络结构之后,我们详细介绍下head, RPN和分类网络的细节。

    从网络架构可知,训练主要是要重新训练分类网络、RPN和微调head(可以考虑分开设置学习率)。

    要训练,首先要得到标签。对于目标检测而言,标签就是一个输入图像中的目标框的位置坐标和目标框中的目标类别。对于VOC和COCO数据,一般以Json格式的文件存储,可以使用python的Json包来处理。对于COCO,还提供了pycocotools这样的库(真是方便呀,但是要学习一下这个库的使用方法)。数据集介绍下:

    • PASCAL VOC:VOC2007包含9963张图像(包括训练验证测试),带有24640个目标,目标种类为20类。种类为:
      • Person: person
      • Animal: bird, cat, cow, dog, horse, sheep
      • Vehicle: aeroplane, bicycle, boat, bus, car, motorbike, train
      • Indoor: bottle, chair, dining table, potted plant, sofa, tv/monitor

    0fd1e99b7c76f0962b047a035f7e32c6.png
    • COCO(Common object in Context): COCO数据集要大于VOC2007,包含操作200k的标签图像,类别又90类。

    在原文https://github.com/ruotianluo/pytorch-faster-rcnn中提到使用VOC2007做训练,如果计算资源有限的情况下,是一个选择。

    下面重点来了,先看看两个麻烦一点的概念。

    • Bounding Box Regression Coefficients

    285e4ac1567ff3ccfec255509cbd0f72.png

    这里的图片看的不是很清楚。我们直接描述,令

    分别表示ground truth的左上角坐标和原始的左上角坐标,令
    分别ground truth的宽度高度和原始的宽度高度。那么回归系数为:

    ,
    ,
    ,

    这里使用回归系数,而不是直接回归坐标,是为了防止回归误差太大,导致回归框超出图像框的范围。另外回归系数不会受到仿射变换的影响。在原文中提到了使用回归系数在计算分类损失的时候具有优点,但是我在这里理解的不是很透彻,在讲述分类损失的时候可以感受到使用回归系数的优势。

    • Intersection over Union (IOU) Overlap

    9e112c579f1b5898d2c41c827abeb9e3.png

    e72b2a3472285fef32b6f5ab2910b9f3.png

    用交并比(IoU)来表示两个框的重叠程度,主要用在候选框的挑选上。

    50b391ccc6b22197c48251db993bf7c3.png

    上图是训练过程中需要执行的步骤。

    • Anchor Generation Layer,锚框生成层:这个层会根据预先设定的基尺寸、尺寸比例、尺寸缩放来生成锚框。因此这个框是固定大小的,在实际使用中一般尺寸比例为基尺寸为
      ,长宽比例为
      ,尺寸缩放比例为[8, 16, 32]。
    • Proposal Layer, 候选层:根据bbox系数修正锚框的坐标。根据锚框中的目标类型概率,和NMS算法来减少锚框数量(去掉IoU低于给定阈值的锚框)。
    • Anchor Target Layer, 锚框目标层:生成用于训练RPN的锚框以及对应的前景/背景标签和框系数。该层的作用仅仅用来训练RPN,并不会输出到分类网络中。
    • RPN Loss,RPN损失:该损失用来训练RPN网络,包括候选框的前景背景分类损失和框坐标回归损失。
    • Proposal Target Layer,候选目标层:该层是为了降低候选层输出的候选框的数量,并且生成供分类网络训练用的标签(包括框类别和坐标)。
    • ROI Pooling Layer, ROI池化层:实现一个空间变换网络,该网络对候选框进行池化,使得不同大小的候选框可以得到相同尺寸的输出。然后送到分类器分支和框回归分支。
    • 分类损失:与RPN损失类似,用来训练分类网络。在梯度反向传播过程中,误差也会流过RPN网络,进而会调整RPN网络的参数。分类网络包括:目标分类损失和框回归损失。

    Anchor Generation Layer

    f34369aeef52f690f8ba536d3b349d94.png

    锚框就是根据基尺寸、锚框长宽比例、锚框尺寸缩放比例来生成候选框,如上图所示,会生成9个候选框。由此可知,这些候选框对所有的图片都是一样的。这些锚框几乎包含了图片中的所有目标,但是大多数锚框都是空的。RPN网络的目标就是寻找有可能存在目标的锚框,并对锚框的坐标进行修正。

    Region Proposal Layer

    目标检测方法中需要的区域推荐系统,稀疏方法有selective search,密集方法有deformable part models。对于Faster RCNN和Mask RCNN而言,RPL根据锚框生成方法得到大量的密集锚框,并根据锚框包含目标的概率进行打分,以及进行锚框坐标的校正。主要做两件事情:

    • 从一系列锚框中,识别出包含前景框的锚框和背景框的锚框
    • 修正锚框的中心位置、长度和宽度。这里是通过锚框坐标修正因子来实现的。

    区域推荐层包含三个层:

    • proposal layer 候选层
    • anchor target layer 框目标层
    • proposal target layer 候选目标层

    RPN

    6e5824dc07871186cc1c03d398d999e4.png

    head部分将图片卷积处理后,分别经过1x1卷积到两个支路。一条支路为前景背景分类层,另一条支路为框回归层。由图可知,特征图的尺寸为

    ,特征图的每个点会生成9个候选框,因此候选框个数为
    。于是前景背景二分类网络的输出为
    ,框回归网络的输出为

    Proposal Layer

    ffe6c54a8eeac11fccb26abd6c45d411.png

    候选层的输入为所有的

    个锚框。通过应用基于前景分类得分的非极大值抑制从锚框中减少部分候选框。另外也通过框回归的坐标系数来校正候选框的坐标。

    Anchor Target Layer

    锚框目标层的目标是选出合适的锚框作为RPN网络的训练数据(这个也是让我挺疑惑的地方,在推理网络中生成训练数据)。RPN网络的目的:

    • 识别一个区域是前景还是背景
    • 对前景框回归一个合理的坐标校正参数

    下面作者认为讨论下RPN损失,有助于理解RPN网络。

    计算RPN损失

    RPN的目标是生成好的候选框(包含前景分类和坐标回归)。具体点,就是需要在锚框集合中,寻找到含目标可能性高的锚框,以及回归出这些锚框对应的坐标变换系数(包含位置、宽度和高度)。RPN损失的设计也是基于以上目的,那我们看下是不是这样的?

    RPN损失是分类损失和回归损失之和。分类损失使用交叉熵损失,框回归使用真实回归系数和预测系数之间的距离(RMSE)计算得到。真实回归系数使用与锚框最近的标签框计算得到,预测系数通过网络预测得到。

    Classification Loss

    cross_entropy(predicted_class, actual_class)

    Bounding Box Regression Loss

    回归框损失只计算了前景的回归框损失。作者认为背景框的回归损失没有意义,因为背景回归框没有对应的标签框。

    其中

    c1de50aae661bfa5f6db17735008fcd1.png

    上式中的

    需要人工设定,也可以成为超参数,一般设置为3。(PS: 这里作者介绍了在Python实现中,前景锚框bbox_inside_weights,也就是掩膜阵列一般作为向量运算,一般不要用for-if循环,因为循环不方便并行计算)

    所以,计算RPN损失需要两个要素:

    • 锚框的前景背景类别标签和打分(和softmax概率有关)
    • 对于前景锚框的目标回归系数

    下面介绍上面两个要素如何获取。

    1. 选择有目标的锚框
    2. 计算锚框和标签框的交并比(IOU)值,然后选择好的前景框

    按照IOU比选择前景框,有下面两种情况:

    1. type A:对于每个标签框(ground truth bbox),所有的前景框是与标签框IOU最大的锚框
    2. type B:前景框与标签框的IOU会超过一个阈值

    如下图所示。

    48615b7e286113ff72945e9ea90fe112.png

    在上图中,只有与标签框的重叠区域超过一定阈值(IOU超过一定阈值)的锚框才被选择下来(还有很多重复锚框,这个时候选择NMS算法,选择一个锚框作为结果)。这里的阈值非常重要,选择合理的阈值有助于提高RPN的效果。类似的,重叠区域小于一定阈值(IOU超过一定阈值)的锚框作为负样本。需要注意的是,不是所有非正样本(重叠区域大于一个指定阈值)是负样本,就是还有中间派,即不是正样本,又不是负样本。这类样本被称为“don't care”(不关心的样本,哈哈!!!)。这些样本不会用来计算RPN损失。

    因此有两个额外的阈值,与前景背景框的数量有关。前景背景框的总数量我们需要定义,以及前景框的占比也需要事先定义。如果通过测试的前景框数量操作一定阈值,则会随机将这些通过测试的前景框标记为“don't care”,对于背景框也是同样的操作。

    然后,计算前景框与其最重叠(IOU值最大)的真实框的框回归系数。这个相对简单,只需要按照公式计算即可。

    最后我们总结下anchor target layer。为记忆方便,我们列出该层的参数和输入输出配置:

    参数:

    • TRAIN.RPN_POSITIVE_OVERLAP:默认为0.7。用于选择正样本的阈值。如果锚框和ground truth框的IOU大于该值,则为正样本。
    • TRAIN.RPN_NEGATIVE_OVERLAP: 默认为0.3。用于选择负样本的阈值。如果一个锚框和ground truth框的IOU小于该值,则为负样本。锚框的IOU大于TRAIN.RPN_NEGATIVE_OVERLAP、小于TRAIN.RPN_POSITIVE_OVERLAP被标记为“don't care”。
    • TRAIN.RPN_BATCHSIZE:默认为256。前景锚框和背景锚框的综述。
    • TRAIN.RPN_FG_FRACTION:默认为0.5。前景框在batch_size中的占比(默认值设定的很平衡)。如果前景框的数量大于TRAIN.RPN_BATCHSIZE*TRAIN.RPN_FG_FRACTION,将会随机选择超过的部分为“don't care”。

    输入:

    • RPN网络输出(前景背景预测结果,框回归系数)
    • 锚框(通过anchor generation layer)
    • ground truth框

    输出:

    • 经过第一次纠正的目标框和对应的类别标签
    • 目标回归系数

    其它层,比如proposal target layer,ROI pooling和分类层被用来生成计算分类损失的数据。下面我们将与anchor target layer类似,看看如何计算分类层损失,以及计算该损失需要哪些数据。

    展开全文
  • RCNN论文学习

    2017-02-17 10:24:18
    原文http://blog.csdn.net/shenxiaolu1984/article/details/51066975Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE ...

    原文http://blog.csdn.net/shenxiaolu1984/article/details/51066975

    Girshick, Ross, et al. “Rich feature hierarchies for accurate object detection and semantic segmentation.” Proceedings of the IEEE conference on computer vision and pattern recognition. 2014.

    目录(?)[+]

    1. 思想
      1. 问题

        Region CNN(RCNN)可以说是利用深度学习进行目标检测的开山之作。作者Ross Girshick多次在PASCAL VOC的目标检测竞赛中折桂,2010年更带领团队获得终身成就奖,如今供职于Facebook旗下的FAIR。
        这篇文章思路简洁,在DPM方法多年平台期后,效果提高显著。包括本文在内的一系列目标检测算法RCNN, Fast RCNN, Faster RCNN代表当下目标检测的前沿水平,在github都给出了基于Caffe的源码

        思想

        本文解决了目标检测中的两个关键问题。

        问题一:速度

        经典的目标检测算法使用滑动窗法依次判断所有可能的区域。本文则预先提取一系列较可能是物体的候选区域,之后仅在这些候选区域上提取特征,进行判断。

        问题二:训练集

        经典的目标检测算法在区域中提取人工设定的特征(Haar,HOG)。本文则需要训练深度网络进行特征提取。可供使用的有两个数据库
        一个较大的识别库(ImageNet ILSVC 2012):标定每张图片中物体的类别。一千万图像,1000类。
        一个较小的检测库(PASCAL VOC 2007):标定每张图片中,物体的类别和位置。一万图像,20类。
        本文使用识别库进行预训练,而后用检测库调优参数。最后在检测库上评测。

        流程

        RCNN算法分为4个步骤
        - 一张图像生成1K~2K个候选区域
        - 对每个候选区域,使用深度网络提取特征
        - 特征送入每一类的SVM 分类器,判别是否属于该类
        - 使用回归器精细修正候选框位置
        这里写图片描述

        候选区域生成

        使用了Selective Search1方法从一张图像生成约2000-3000个候选区域。基本思路如下:
        - 使用一种过分割手段,将图像分割成小区域
        - 查看现有小区域,合并可能性最高的两个区域。重复直到整张图像合并成一个区域位置
        - 输出所有曾经存在过的区域,所谓候选区域

        候选区域生成和后续步骤相对独立,实际可以使用任意算法进行。

        合并规则

        优先合并以下四种区域:
        - 颜色(颜色直方图)相近的
        - 纹理(梯度直方图)相近的
        - 合并后总面积小的
        - 合并后,总面积在其BBOX中所占比例大的

        第三条,保证合并操作的尺度较为均匀,避免一个大区域陆续“吃掉”其他小区域。

        例:设有区域a-b-c-d-e-f-g-h。较好的合并方式是:ab-cd-ef-gh -> abcd-efgh -> abcdefgh。
        不好的合并方法是:ab-c-d-e-f-g-h ->abcd-e-f-g-h ->abcdef-gh -> abcdefgh。

        第四条,保证合并后形状规则。

        例:左图适于合并,右图不适于合并。
        这里写图片描述

        上述四条规则只涉及区域的颜色直方图、纹理直方图、面积和位置。合并后的区域特征可以直接由子区域特征计算而来,速度较快。

        多样化与后处理

        为尽可能不遗漏候选区域,上述操作在多个颜色空间中同时进行(RGB,HSV,Lab等)。在一个颜色空间中,使用上述四条规则的不同组合进行合并。所有颜色空间与所有规则的全部结果,在去除重复后,都作为候选区域输出。

        作者提供了Selective Search的源码,内含较多.p文件和.mex文件,难以细查具体实现。

        特征提取

        预处理

        使用深度网络提取特征之前,首先把候选区域归一化成同一尺寸227×227。
        此处有一些细节可做变化:外扩的尺寸大小,形变时是否保持原比例,对框外区域直接截取还是补灰。会轻微影响性能。

        预训练

        网络结构
        基本借鉴Hinton 2012年在Image Net上的分类网络2,略作简化3
        这里写图片描述
        此网络提取的特征为4096维,之后送入一个4096->1000的全连接(fc)层进行分类。
        学习率0.01。

        训练数据
        使用ILVCR 2012的全部数据进行训练,输入一张图片,输出1000维的类别标号。

        调优训练

        网络结构
        同样使用上述网络,最后一层换成4096->21的全连接网络。
        学习率0.001,每一个batch包含32个正样本(属于20类)和96个背景。

        训练数据
        使用PASCAL VOC 2007的训练集,输入一张图片,输出21维的类别标号,表示20类+背景。
        考察一个候选框和当前图像上所有标定框重叠面积最大的一个。如果重叠比例大于0.5,则认为此候选框为此标定的类别;否则认为此候选框为背景。

        类别判断

        分类器
        对每一类目标,使用一个线性SVM二类分类器进行判别。输入为深度网络输出的4096维特征,输出是否属于此类。
        由于负样本很多,使用hard negative mining方法。
        正样本
        本类的真值标定框。
        负样本
        考察每一个候选框,如果和本类所有标定框的重叠都小于0.3,认定其为负样本

        位置精修

        目标检测问题的衡量标准是重叠面积:许多看似准确的检测结果,往往因为候选框不够准确,重叠面积很小。故需要一个位置精修步骤。
        回归器
        对每一类目标,使用一个线性脊回归器进行精修。正则项λ=10000
        输入为深度网络pool5层的4096维特征,输出为xy方向的缩放和平移。
        训练样本
        判定为本类的候选框中,和真值重叠面积大于0.6的候选框。

        结果

        论文发表的2014年,DPM已经进入瓶颈期,即使使用复杂的特征和结构得到的提升也十分有限。本文将深度学习引入检测领域,一举将PASCAL VOC上的检测率从35.1%提升到53.7%
        本文的前两个步骤(候选区域提取+特征提取)与待检测类别无关,可以在不同类之间共用。这两步在GPU上约需13秒。
        同时检测多类时,需要倍增的只有后两步骤(判别+精修),都是简单的线性运算,速度很快。这两步对于100K类别只需10秒。

        以本论文为基础,后续的fast RCNN4(参看这篇博客)和faster RCNN5(参看这篇博客)在速度上有突飞猛进的发展,基本解决了PASCAL VOC上的目标检测问题。


        1. J. Uijlings, K. van de Sande, T. Gevers, and A. Smeulders. Selective search for object recognition. IJCV, 2013.
        2. A. Krizhevsky, I. Sutskever, and G. Hinton. ImageNet classification with deep convolutional neural networks. In NIPS, 2012
        3. 所有层都是串行的。relu层为in-place操作,偏左绘制。
        4. Girshick, Ross. “Fast r-cnn.” Proceedings of the IEEE International Conference on Computer Vision. 2015.
        5. Ren, Shaoqing, et al. “Faster R-CNN: Towards real-time object detection with region proposal networks.” Advances in Neural Information Processing Systems. 2015.
    (function () {('pre.prettyprint code').each(function () { var lines = (this).text().split(\n).length;varnumbering = $('').addClass('pre-numbering').hide(); (this).addClass(hasnumbering).parent().append(numbering); for (i = 1; i
    展开全文
  • Faster RCNN论文笔记

    2019-07-05 21:15:36
    论文原文:https://arxiv.org/abs/1506.01497 参考:https://blog.csdn.net/shenxiaolu1984/article/details/51152614 Abstract 最先进的目标检测网络依靠 region proposal algorithms来假设目标的位置。SPPnet[1...
  • Fast-Rcnn论文翻译

    2020-01-14 16:33:37
    译文仅供参考! 原文是pdf,想下载的话可以戳:http://www.gwylab.com/pdf/fast-rcnn_chs.pdf...
  • Fast-RCNN论文翻译

    2017-11-07 17:32:00
    本文实现了Fast-RCNN主要部分的翻译工作,在SPPnet出来之后,同在微软的R-CNN的作者Ross迅速怼了回去,抛出了更快更好的Fast-RCNN,思路为之一新的是,将之前的多阶段训练合并成了单阶段训练,这次的工作简洁漂亮,...
  • RCNN论文的概括理解

    2018-07-27 15:36:21
    原文题目:Rich feature hierarchies for accurate object detection and ... RCNN利用SS算法从一张图片中提取出2000+的候选框,将这些候选框输入到CNN(很类似Alexnet)里面得到4096维的特征(输出层的前一...
  • 更多论文解读的博客原文第一时间发布于我的github论文合集:ming71/CV_PaperDaily​github.com和个人博客:chaser​ming71.github.io欢迎关注,有想法欢迎一起讨论!私信评论均可。如有markdown语法知乎显示bug不...
  • faster-rcnn论文解读

    2018-01-28 13:01:24
    原文链接:http://blog.csdn.net/u014696921/article/details/52824107 paper链接:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks &创新点 设计Region ...
  • 2019年比较新的目标检测的论文,抛弃了主流的使用anchor回归检测框的机制。原文链接:https://arxiv.org/pdf/1904.07850.pdf​arxiv.org初步阅读,有很多细节不太清楚,先做个记录,以便后续交流学习。Objects as ...
  • Fast-RCNN论文总结整理

    2019-09-24 12:14:42
    此篇博客写作思路是一边翻译英文原文一边总结博主在阅读过程中遇到的问题及一些思考,因为博主本人阅读英文论文水平不高,所以还请大家在看此篇博客的过程中带着批判的眼神阅读!小墨镜带好,有什么不对的地方请在...
  • 原文链接:http://www.chenjianqu.com/show-75.html 论文:Ross Girshick.Fast R-CNN 素质三连 1.论文贡献 提出用于目标检测的Fast Region-based Convolutional Network method(Fast R-CNN) Fast ...
  • 个人博客:... 原文链接:http://www.chenjianqu.com/show-76.html 论文:Shaoqing Ren, Kaiming He, Ross Girshick, and Jian Sun.Faster R-CNN: Towards Real-Time Object Detection with Regio...
  • 更多论文解读的博客原文第一时间发布于我的github论文合集:ming71/CV_PaperDaily​github.com和个人博客:chaser​ming71.github.io欢迎关注,有想法欢迎一起讨论!私信评论均可。如有markdown语法知乎显示bug不...
  • 英文版论文原文:https://arxiv.org/pdf/1512.02325.pdf Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks Shaoqing Ren,Kaiming He,Dumitru Erhan,Ross Girshick&Jian Sun` ...
  • rcnn/fast_rcnn/faster_rcnn/mask_...原文链接 mask_rcnn paper 原文链接 r_cnn 原文链接 fast_rcnn 原文链接 FPN opencv 4.0 代码-mask_rcnn 深度学习笔记1 R_CNN 说明 Ross Girshick 2014年提出的,...
  • RCNN

    2018-04-17 20:55:57
    论文原文地址: Rich feature hierarchies for accurate object detection and semantic segmentation RCNN的全称是Regions with CNN features。整个方法的大致思路是先用Selective Search来生成2000个bounding box...
  • 内部包含R-CNN、FastRCNN、FasterRCNN、SPP、SSD、SegNet、YOLOv1~v3、FCN共十篇目标检测的论文原文
  • 论文译文】RCNN

    2019-01-24 14:48:52
    译文仅供参考! 原文是pdf,想下载的话可以戳:www.gwylab.com/download.html
  • 文章目录原文地址论文阅读方法初识(Abstract & Introduction & Conclusion)相知(Body)2. Fast R-CNN architecture and training2.1 The RoI pooling layer2.2 Initializing from pre-trained networks...
  • 论文译文】FastRCNN

    千次阅读 2019-01-24 14:50:56
    译文仅供参考! 原文是pdf,想下载的话可以戳:www.gwylab.com/download.html
  • 论文译文】FasterRCNN

    2019-01-24 14:53:25
    译文仅供参考! 原文是pdf,想下载的话可以戳:www.gwylab.com/download.html
  • Faster RCNN

    2018-04-17 21:04:52
    论文原文: Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks Faster RCNN的最大贡献是去掉了Selective Search来进行Region Proposal的生成,转而使用RPN(Region Proposal Network)...
  • 原文:...rbg大神的深度神经网络检测算法系列RCNN、Fast-RCNN、Faster-RCNN可谓是理论与实践的经典范例,论文创新点足够,在github上开源的代码更是造福广大码农,本文以当前最新Fast
  • Fast rcnn和fasterrcnn

    2019-11-24 16:58:55
    此篇博客写作思路是一边翻译英文原文一边总结博主在阅读过程中遇到的问题及一些思考,因为博主本人阅读英文论文水平不高,所以还请大家在看此篇博客的过程中带着批判的眼神阅读!小墨镜带好,有什么不对的地方请在...

空空如也

空空如也

1 2 3 4 5
收藏数 90
精华内容 36
关键字:

rcnn论文原文