fasterr-cnn学习

chenying66 chenying66     2022-12-03     282

关键词:

学习经典的目标检测网络!膜拜大佬!!
Faster R-CNN的目的是使用区域候选网络来实现实时的目标检测任务

  1. 当前的目标检测网络依赖于区域候选算法来假设对象的位置。SPPNet和Fast R-CNN等减小了运行时间,但是此时也使得区域候选的计算成为整个执行时间的瓶颈。在这个工作中,我们引入一个区域候选网络将全图片的卷积特征与检测网络进行共享,因此得到一个几乎不需要花费的区域候选。
  2. RPN是一个全卷积网络,它可以同时预测对象的边界和在每一个位置上的objectness评分。RPN端到端的进行训练从而产生一个高质量的区域候选,它被用在Fast R-CNN中用于检测。我们进一步合并RPN和fast R-CNN入一个单一的网络,通过共享他们的卷积特征,即采用attention机制。RPN部分告诉这个统一的网络应该看哪里。
  3. Fast R-CNN使用非常深的网络,实现几乎实时的速率,当然,其中忽略了花费在区域候选上的时间。
  4. 在本文中,我们展示了一个算法上的改变,通过一个深的卷积神经网络来计算候选,此时,当给定检测网络的计算时,候选的计算是几乎不需要花费的。通过在测试时间共享卷积,在计算候选时的额外的花费是小的。
  5. 在Fast R-CNN的卷积层的基础之上,我们增加一些额外的卷积层从而在一个规则网格的每一个位置上同时进行区域边界和目标性的回归。
    RPN被设计用来有效的预测具有大范围尺度和纵横比的区域候选

    上述图中,(a)图中表示图像和特征图的金字塔模型,此时分类器在所有尺度上运行, (b)此时,金字塔仅在特征图上运行, ©以回归的方式使用参考boxes的金字塔。
    (a)叫做图像/特征金字塔,即使用不同的尺度对图像进行缩放,且为每一个尺度计算特征图。该种方法有效但是耗时
    (b)此时固定特征图尺寸,但是在特征图上使用多尺度的滑动窗口。通常,这种方法与(a)联合使用
    (c)本文使用的方法是对锚点进行金字塔·,更加的节省cost-efficient。此时针对具有不同的尺度和aspect比率的锚点box对bbox进行分类和回归。此时,图像、特征图、滑动窗口的尺寸都是唯一的。
  6. 我们介绍了新颖的“锚”盒,它们可以作为多种比例和纵横比的参考。 我们的方案可以看作是回归参考的金字塔(图1,c),它避免了枚举具有多个比例或纵横比的图像或过滤器。 当使用单比例尺图像进行训练和测试时,该模型表现良好,从而提高了运行速度。
    为了统一R-CNN和Fast R-CNN目标检测网络,我们提出一个训练模式。他在区域候选任务的精调和在固定候选时对目标检测进行精调这两个方面交替进行。这些模式收敛的很快,同时,在两个任务间可以进行卷积特征的共享。
  7. Faster R-CNN由两个模块组成,第一个模块是一个深度全卷积网络,用来提取区域,第二个模块是Fast R-CNN检测器,它会使用提出来的那些区域。
  8. 区域候选网络的作用:以任意尺寸的图像作为输入,输出一系列矩形的对象候选,每一个候选都有一个objectness分数。其中,objectness“对象”衡量一组对象类的成员与背景关系 “objectness” measures membership to a set of object classes vs. background.
    为了产生区域候选,我们在由最后一个共享的卷积层生成的卷积特征图输出上滑动一个小的网络。这个小网络将输入卷积特征图的n×n空间窗口作为输入。 每个滑动窗口都映射到一个较低维的特征(ZF为256-d,VGG为512-d,后面是ReLU [33])。
    这个特征被输入到两个姐妹全连接层:一个盒回归层reg和一个盒分类层cls。因为这个小的网络在滑动窗口上进行操作,所以在所有的空间位置上会共享全连接层
  9. 锚点:在每一个位置会有最多k个候选被提出来,于是reg层就有4k的输出,cls就有2k的分数(文章中使用了二分类)。这k个候选是针对k个参考框1进行参数化得到的,叫做“锚点”。在这里,每一个锚点以滑动窗口的中心为中心,且有对应的scale和aspect。
  10. anchors的平移不变性,从anchors的形式,和anchor相关的对候选的计算功能。当在图片中将一个对象进行候选,那么这个候选应该也平移,且同一个函数应该可以在这两个位置上都实现对候选的预测。平移不变性也减小模型的尺寸。
  11. 多尺度的anchors作为回归参考框架
  12. 在训练RPNs时的正负样本:我们给每一个anchor赋一个二分类的类标签。给下面两种anchor赋予正标签:和金标准盒有着最高的IOU重叠;一个anchor和金标准有着高于0.7的IOU重叠率。当非正的anchor与所有金标准盒的IOU率都低于0.3时,给它赋予负样本标签。介于正负样本之间的anchor不参与训练
  13. 多任务损失函数:

    仔细阅读这个损失函数:i表示anchor在mini-batch中的索引号,pi表示anchor i属于是一个对象的预测概率。这个损失函数分为两项,前者为类别loss,后者为回归loss。ti是指bbox的四个顶点构成的向量。且由于定义时,正样本的pi为1,负样本的pi为0,就代表后一项仅对正样本有效。
    且从上述公式中可以知道,本工作用于回归的特征是具有相同的空间尺寸。为了考虑到变化的尺寸,学习了一系列的k个bounding-box回归器。每一个回归器负责一个尺寸和一个纵横比,这k个回归器不共享权值。
  14. 在训练过程中,来源于一个单一图像的每一个mini-batch都包含很多正负样本anchors。但是,由于负样本较多,如果使用所有的anchors来对网络进行训练,将会使得结果偏向于负样本。于是,本文采取的方法是从一幅图像中随机采样256个anchors来计算该mini-batch的损失函数。
    15.有三种方式来训练有特征共享的网络:
    1. 迭代式训练。首先训练RPN,然后使用候选来训练Fast R-CNN,由fast R-CNN调节过的网络然后被用来初始化RPN,这个过程被迭代。该方法在本篇论文中的所有实验中被使用;
    2. 近似联合训练,此时这两个网络在训练过程中合并入一个网络。前向过程产生区域候选,这些候选将被视为固定大小、已经预计算的候选,来训练一个fast R-CNN检测器。在反向传播过程中,共享层的反向传播信号同时来源于RPN损失和Fast R-CNN损失。这个方法很容易实现,但是这种解决方案忽略了候选框坐标的梯度,但是这些梯度也是网络的响应。
    3. 非近似联合训练,此时的RoI池化层对于box坐标是可微的,可以将bbox坐标作为输入,从而可以在反向传播过程中计算关于box坐标的梯度。
  15. 本文提出的训练方案(主要针对如何在Fast R-CNN和RPN间共享卷积层)。首先训练RPN网络;然后,使用由RPN网络生成的候选框来训练一个单独的Fast R-CNN检测网络,到目前为止,两个网络之间并没有共享的卷积层;然后,使用检测网络来初始化RPN的训练,但是此时固定住共享的卷积层,只对专注于RPN的层进行优调;最后,保持共享层固定,只对专注于Fast R-CNN层的卷积层进行优化
  16. 实验结果:

    其中SS是selective search, EB是EdgeBoxes
    使用带RPN的Fast R-CNN网络,加快了训练速度,同时由于使用的候选框数目降低,使得最后region-wise的全连接层的花费也降低了。

深度学习论文翻译解析:fasterr-cnn:downtherabbitholeofmodernobjectdetection

论文标题:FasterR-CNN:Downtherabbitholeofmodernobjectdetection论文作者:ZhiTian,WeilinHuang,TongHe,PanHe,andYuQiao论文地址:https://tryolabs.com/blog/2018/01/18/faster-r-cnn-down-the-rabbit-hole-of-modern-object-det 查看详情

目标检测算法fasterr-cnn(详解)(代码片段)

FasterR-CNN学习目标1.FasterR-CNN2.RPN原理2.1anchors3.FasterRCNN训练3.1FasterR-CNN的训练3.2候选区域的训练4.效果对比5.FasterR-CNN总结6.总结7.问题8.开源kerasFasterRCNN模型介绍学习目标目标了解FasterR-CNN的特点知道RPN的原理以及作用【目标检测算... 查看详情

matlab深度学习采用fasterr-cnn实现车辆目标检测(代码片段)

本文展示了如何使用MATLAB训练FasterR-CNN目标检测器,实现对车辆的检测。本例使用一个包含295张图像的小标记数据集。每个图像包含一个或两个已标记的车辆目标。一个小的数据集对于探索FasterR-CNN训练过程是有用的,但... 查看详情

matlab深度学习采用fasterr-cnn实现车辆目标检测(代码片段)

本文展示了如何使用MATLAB训练FasterR-CNN目标检测器,实现对车辆的检测。本例使用一个包含295张图像的小标记数据集。每个图像包含一个或两个已标记的车辆目标。一个小的数据集对于探索FasterR-CNN训练过程是有用的,但... 查看详情

tensorflow2深度学习实战(十七):目标检测算法fasterr-cnn实战

前言:本专栏以理论与实战相结合的方式,左手看论文,右手敲代码,带你一步步吃透深度学习原理和源码,逐一攻克计算机视觉领域中的三大基本任务:图像分类、目标检测、语义分割。本专栏完整代码将在我的GiuHub仓库更新... 查看详情

r-cnn学习系列:从r-cnn到fasterr-cnn

...流程更清晰。 整个系列是从r-cnn至spp-net到fastr-cnn再到fasterr-cnn。 RCNN    输入图像,使用selectivesearch来构造proposals(大小不一,需归一化),输入到CNN网络来提取特征,并根据特征来判断是什么物体(分类器... 查看详情

tensorflow2深度学习实战(十六):目标检测算法fasterr-cnn解析

...#xff1a;https://github.com/Keyird/DeepLearning-TensorFlow2文章目录一、FasterR-CNN介绍二、算法流程三、网络结构1、Convlayers2、RegionProposalNetworks3、ROIPooling4、ClassiferandDetector四、损失函数五、网络训练一、FasterR-CNN介绍2015年,微软研究团队... 查看详情

tensorflow2深度学习实战(十六):目标检测算法fasterr-cnn解析

本专栏以理论与实战相结合的方式,左手看论文,右手撸代码,带你一步步掌握深度学习原理和源码,玩转计算机视觉领域中的三大基本任务:图像分类、目标检测、语义分割。本专栏完整代码将在我的GiuHub... 查看详情

tensorflow2深度学习实战(十七):目标检测算法fasterr-cnn实战

前言:本专栏以理论与实战相结合的方式,左手看论文,右手敲代码,带你一步步吃透深度学习原理和源码,逐一攻克计算机视觉领域中的三大基本任务:图像分类、目标检测、语义分割。本专栏完整代码将在我的GiuHub仓库更新... 查看详情

基于地基激光雷达数据和深度学习的fasterr-cnn的橡胶树个体分割

...目:IndividualRubberTreeSegmentationBasedonGround-BasedLiDARDataandFasterR-CNNofDeepLearningAbstract中国南方的橡胶树经常受到可能导致树体倾斜的自然干扰的影响。从扫描点云中对单个橡胶树进行准确的树冠分割是准确检索树参数的必要先决条... 查看详情

利用fasterr-cnn进行目标检测

由于毕业设计需要用到FasterR-CNN框架,故对此框架进行学习,为了更好的理解,找到了一篇非常详细的良心博客,这个系列分块对这篇博客翻译。供学习使用。首先贴出博文发原地址:http://www.telesens.co/2018/03/11/object-detection-and-cla... 查看详情

转r-cnn学习笔记5:fasterr-cnn

原文地址:http://blog.csdn.net/cv_family_z/article/details/46864473摘要:SPPNet和FastR-CNN降低了网络学习特征的时间,SS由于需耗时1~2s,EdgeBoxes 耗时约0.2s,提取proposal的方法成为检测的瓶颈。本文提出了RegionProposalNetworks(R... 查看详情

目标检测进阶:使用深度学习和opencv进行目标检测

使用深度学习和OpenCV进行目标检测基于深度学习的对象检测时,您可能会遇到三种主要的对象检测方法:FasterR-CNNs(Renetal.,2015)YouOnlyLookOnce(YOLO)(Redmonetal.,2015)SingleShotDetectors(SSD)(Liu等人,2015年)FasterR-CNNs 查看详情

r-cnn/fastr-cnn/fasterr-cnn

一、R-CNN横空出世R-CNN(RegionCNN,区域卷积神经网络)可以说是利用深度学习进行目标检测的开山之作,作者RossGirshick多次在PASCALVOC的目标检测竞赛中折桂,2010年更是带领团队获得了终身成就奖,如今就职于Facebook的人工智能实... 查看详情

fasterr-cnn:详解目标检测的实现过程

本文详细解释了FasterR-CNN的网络架构和工作流,一步步带领读者理解目标检测的工作原理,作者本人也提供了Luminoth实现,供大家参考。 Luminoth实现:https://github.com/tryolabs/luminoth/tree/master/luminoth/models/fasterrcnn   去年,我... 查看详情

r-cnn,fastr-cnn,fasterr-cnn算法分析比较与总结

论文链接:R-CNNFastR-CNNFasterR-CNN 本文对R-CNN,FastR-CNN,FasterR-CNN三个算法的实现过程等等进行了总结分析与比较。由于本文是以PPT的形式制作的,这里只粘贴PPT图片了。                      如有错误... 查看详情

使用nwpuvhr-10数据集训练fasterr-cnn模型(代码片段)

...下载链接二、基础环境配置三、训练及测试过程  使用FasterR-CNN算法在NWPUVHR-10数据集上实现目标检测。  使用FasterR-CNN算法在VOC2007数据集上实现目标检测的详细步骤→Windows10+Faster-RCNN-TensorFlow-Python3-master+VOC2007数据集。... 查看详情

r-cnn系列算法精讲:r-cnn—》fastr-cnn—》fasterr-cnn进阶之路(代码片段)

...ff1a;【AI菌】的Github文章目录综述一、R-CNN二、FastR-CNN三、FasterR-CNN综述我们常说的R-CNN系列,一共包含三个版本:R-CNN、FastR-CNN、FasterR-CNN。从命名上看,R是Region的缩写,CNN指我们常说的卷积神经网络。那么R-CNN其... 查看详情