深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)

这篇具有很好参考价值的文章主要介绍了深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

1.Fast-RCNN论文背景
2. Fast-RCNN算法流程
3.Fast R-CNN 问题和缺点

这篇以对比RCNN来说明,如果你对RCNN网络没太熟悉,可访问这链接,快速了解,点下面链接

深度学习之目标检测R-CNN模型算法流程详解说明(超详细理论篇)

一、Fast-RCNN论文背景

论文地址https://arxiv.org/abs/1504.08083

  Fast R-CNN 是一篇由Ross Girshick 在 2015 年发表的论文,题为 “Fast R-CNN”。这篇论文旨在解决目标检测领域中的一些问题,特别是传统目标检测方法中存在的速度和准确性之间的矛盾。

  论文摘要:本文提出了一种基于快速区域的卷积网络方法来处理目标检测。快速 R-CNN 建立在以前的工作,有效地分类目标建议使用深卷积网络。与以往的工作相比,快速 R-CNN 采用了一些创新,以提高训练和测试速度,同时也提高了检测的准确性。快速 Fast 训练非常深的 VGG16网络比 R-CNN 快9倍,测试速度快213倍,并在 PASCAL VOC 2012上获得更高的 mAP。与 SPPnet 相比,Fast R-CNN 训练 VGG16的速度快3倍,测试速度快10倍,而且更准确。

二、Fast-RCNN算法流程

1.RCNN算法流程4个步骤:

(1)获取候选区域:对于一张输入的图像,首先使用selective search算法获取2000个左右的候选区域,由于selective search生成的候选区域是大小不一致的区域,而后续的卷积神经网络中的全连接层需要保证固定大小的输入,因此在输入卷积网络之后将其缩放至固定大小的图像;

(2)获取图像特征:将图像输入到卷积神经网络中获取图像特征,这一部分可以采用常用的图像卷积神经网络如VGGNet,AlexNet等。

(3)获取区域类别:在初步获得目标的位置之后,需要获取目标的类别,这一步采用SVM分类器来判断当前区域属于哪个类别。

(4)微调区域位置:尽管候选区域已经初步目标的位置,但是这个区域比较粗糙,因此使用回归器对区域位置进行微调

2.Fast-RCNN算法流程:

深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)

(1)输入图像;
(2)通过深度网络中的卷积层(VGG、Alexnet、Resnet等中的卷积层)对图像进行特征提取,得到图片的特征图;
(3)通过选择性搜索算法得到图像的感兴趣区域(通常取2000个);
(4)对得到的感兴趣区域进行ROI pooling(感兴趣区域池化):即通过坐标投影的方法,在特征图上得到输入图像中的感兴趣区域对应的特征区域,并对该区域进行最大值池化,这样就得到了感兴趣区域的特征,并且统一了特征大小,如图2所示;
(5)对ROI pooling层的输出(及感兴趣区域对应的特征图最大值池化后的特征)作为每个感兴趣区域的特征向量;
(6)将感兴趣区域的特征向量与全连接层相连,并定义了多任务损失函数,分别与softmax分类器和boxbounding回归器相连,分别得到当前感兴趣区域的类别及坐标包围框;
(7)对所有得到的包围框进行非极大值抑制(NMS),得到最终的检测结果。
深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)

3.Fast RCNN相比于RCNN改进

(1)Fast RCNN仍然使用selective search选取2000个建议框,但是这里不是将这么多建议框都输入卷积网络中,而是将原始图片输入卷积网络中得到特征图,再使用建议框对特征图提取特征框。这样做的好处是,原来建议框重合部分非常多,卷积重复计算严重,而这里每个位置都只计算了一次卷积,大大减少了计算量
(2)由于建议框大小不一,得到的特征框需要转化为相同大小,这一步是通过ROI池化层来实现的(ROI表示region of interest即目标)
(3)Fast RCNN里没有SVM分类器和回归器了,分类和预测框的位置大小都是通过卷积神经网络输出的
(4)为了提高计算速度,网络最后使用SVD代替全连接层

4.ROI Pooling(Region of Interest)

  它的输入是特征图,输出则是大小固定的channel x H x W的vector。ROI Pooling是将一个个大小不同的region proposals,映射成大小固定的(W x H)的矩形框。它的作用是根据region proposals的位置坐标在特征图中将相应区域池化为固定尺寸的特征图,以便进行后续的分类和输出回归框操作。它可以加速处理速度。

ROI Pooling有两个输入,一个是图片进入CNN后的特征图,另一个是区域的边框。ROI 的输出是一个region_nums x channels x W x H的向量。

  RoI可以看成是SPP的简化版本,原版SPP是多尺度池化后进行concat组成新特征,而RoI只使用一个尺度,可以将任意维度的特征矩阵缩放成固定维度。论文中的具体做法是,把高和宽都平均分为7*7的小块,然后在每一个小块做max pooling操作,channel维度不变,这样做能使输出维度固定,同时RoI Pooling不是多尺度的池化,梯度回传非常方便,为fine-tune卷积层提供了条件。(SPP Net不能fine-tune卷积层)

深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)

5.SPP Net
  在RCNN中,使用selective search方法在原始图像上生成近2000个Region Proposal,然后resize到固定尺寸,输入到CNN网络中,也就是说一张原始图片要进行2000次前向推理计算,存在着大量的重复冗余计算
  SPP Net的主要贡献在于:共享卷积计算和Spatial Pyramid Pooling(空间金字塔池化),使得每张图片只需要进行一次CNN网络的前向推理计算。在RCNN中需要图像块resize到固定大小,难免会有变形和失真

图中第一行是RCNN的流程,需要将每一个图像块输入到网络中。
第二行是SPP方法,大大减小了计算量。具体实现方法和过程下面将进行详细阐述。

深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)
深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)
训练过程:使用ImageNet预训练的AlexNet模型,输入图片进行前向推理,获得conv5特征,同时使用selective search算法在原图上获得候选框,然后将这些候选框映射在conv5特征图上提取到相应的SPP特征,接着将SPP特征fine-tune全连接层(卷积层不fine-tune),得到全连接层的特征。之后和RCNN一致了,将全连接层的特征输入到SVM分类器中进行分类,用SPP特征训练Bounding Box的LR模型来修正候选框的位置。
推理过程:与训练过程一致,原始图片输入到CNN网络中,经过selective search后映射获取到SPP特征,然后经过全连接层获取到分类特征,输入到SVM分类器中,同时SPP特征输入到Bounding Box的LR模型中

6.多任务损失函数

深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)
其中p是分类器预测的softmax概率分布p=(p0, p1, …),
u对应目标真实类别标签,tu对应边界框回归器预测的对应类别u的回归参数,v对应真实目标框的回归参数。

分类损失函数为Negative Log Likelyhood Loss:(考虑到p使用softmax算出来的,相当于分类是用CrossEntropyLoss算出来的)

深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)

三、Fast R-CNN 问题和缺点

1.训练和推断时间较长:Fast R-CNN 的训练过程相对较慢,需要先训练候选区域生成网络(RPN),然后再训练目标分类网络。此外,在推断阶段,需要对整个图像进行前向传播,计算较为耗时。

2.ROI Pooling 的固定大小:ROI Pooling 操作将不同大小的候选区域映射到固定大小的特征图上。这种固定大小的映射可能导致信息的损失或扭曲,特别是对于较小或较大的目标区域。

3.候选区域生成器的质量:Fast R-CNN 使用候选区域生成网络(RPN)生成候选区域,而候选区域生成器的质量直接影响到目标检测的准确性。如果候选区域生成器无法准确地提供包含目标的候选区域,那么最终的检测结果可能会受到影响。

4.依赖预训练模型:Fast R-CNN 通常需要在预训练的卷积神经网络(CNN)模型上进行微调。这意味着它对于预训练模型的选择和质量有一定的依赖性,如果预训练模型不够准确或不适用于特定的任务,可能会影响 Fast R-CNN 的性能。

5.基于滑动窗口的候选区域生成:Fast R-CNN 仍然采用了基于滑动窗口的候选区域生成方法,这可能导致在大规模图像上的计算量较大。尽管 RPN 可以减少滑动窗口的数量,但仍需要对整个图像进行扫描。

  GPU上Fast RCNN跑网络推理只需要0.32s,但是跑selective search就需要2s,也就是说selective search严重制约了Fast RCNN的速度,成为了主要瓶颈。(后面Faster RCNN提出了RPN网络解决了这个问题)文章来源地址https://www.toymoban.com/news/detail-500646.html

到了这里,关于深度学习之目标检测Fast-RCNN模型算法流程详解说明(超详细理论篇)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • Fast-Rcnn和YOLO的区别及mAP值的计算

    Fast-Rcnn和YOLO的区别及mAP值的计算 算法分类:YOLO所属类别为one-stage,Fast-Rcnn所属类别为two-stage two stage: 先进行区域生成,该区域称为region proposal(RP,一个有可能包含物体的预选框);再通过卷积神经网络进行样本分类,精度高,适合做高检测精度的任务 任务流程:特征提

    2024年02月05日
    浏览(26)
  • 【计算机视觉面经四】基于深度学习的目标检测算法面试必备(RCNN~YOLOv5)

    目标检测算法主要包括:【两阶段】目标检测算法、【多阶段】目标检测算法、【单阶段】目标检测算法。 什么是两阶段目标检测算法,与单阶段目标检测有什么区别? 两阶段目标检测算法因需要进行两阶段的处理:1)候选区域的获取,2)候选区域分类和回归,也称为基于

    2024年03月27日
    浏览(41)
  • 目标检测 - RCNN系列模型

    论文:Rich feature hierarchies for accurate object detection and semantic segmentation 地址:https://arxiv.org/abs/1311.2524 分为两个阶段: 目标候选框 Object Proposals Proposals缩放后放入CNN网络 目标候选框的实现:区域提案方法(Extract region proposals):使用选择性搜索selective search提取2000个候选区域,

    2024年01月23日
    浏览(22)
  • 深度学习目标检测项目实战(六)-基于Faster rcnn pytorch的遥感图像检测

    代码:https://github.com/jwyang/faster-rcnn.pytorch/tree/pytorch-1.0 使用RSOD遥感数据集,VOC的数据格式如下: RSOD是一个开放的目标检测数据集,用于遥感图像中的目标检测。数据集包含飞机,油箱,运动场和立交桥,以PASCAL VOC数据集的格式进行标注。 数据集包括4个文件夹,每个文件夹

    2024年02月06日
    浏览(50)
  • 目标检测算法:Faster-RCNN论文解读

    前言 ​ 其实网上已经有很多很好的解读各种论文的文章了,但是我决定自己也写一写,当然,我的主要目的就是帮助自己梳理、深入理解论文,因为写文章,你必须把你所写的东西表达清楚而正确,我认为这是一种很好的锻炼,当然如果可以帮助到网友,也是很开心的事情

    2024年02月08日
    浏览(34)
  • 【计算机视觉】目标检测 |滑动窗口算法、YOLO、RCNN系列算法

    首先通过前面对计算机视觉领域中的卷积神经网络进行了解和学习,我们知道,可以通过卷积神经网络对图像进行分类。 如果还想继续深入,会涉及到目标定位(object location)的问题。在图像分类的基础上(Image classification)的基础上,除了判断图像中的物体类别是什么,还需要给

    2024年02月20日
    浏览(35)
  • 论文阅读笔记 | 三维目标检测——PV-RCNN++算法

    如有错误,恳请指出。 paper:《PV-RCNN++: Point-Voxel Feature Set Abstraction With Local Vector Representation for 3D Object Detection》(2022 IJCV) 做点云检测的肯定知道了,这又是Shaoshuai Shi大佬的另外一篇文章,Shaoshuai Shi大佬的主页介绍:https://shishaoshuai

    2023年04月08日
    浏览(74)
  • 基于Pytorch构建Faster-RCNN网络进行目标检测(二)——预训练模型和预测

    CoCo的全称是Common Objects in Context,是微软团队提供的一个可以用来进行图像识别的数据集,包括检测、分割、关键点估计等任务,目前用的比较多的是Coco2017数据集。 Coco2017数据集是一个包含有大量图像和标注数据的开放数据集,它是微软公司在COCO项目基础上发展而来。这个

    2024年02月09日
    浏览(30)
  • 深度学习之基于YoloV8的行人跌倒目标检测系统

    欢迎大家点赞、收藏、关注、评论啦 ,由于篇幅有限,只展示了部分核心代码。    世界老龄化趋势日益严重,现代化的生活习惯又使得大多数老人独居,统计数据表明,跌倒是老年人的主要致伤原因。利用先进的计算机技术、传感器技术和图像信息处理技术实现人体跌倒

    2024年02月08日
    浏览(43)
  • 目标检测——Faster RCNN

    Faster RCNN是由 R-CNN、Fast R-CNN 改进而来,是非常经典的目标检测的两阶段网络。 此篇博客是我通过学习以下优秀博客归纳整理而得: 一文读懂Faster RCNN - 知乎 Faster R-CNN详解和网络模型搭建 - 知乎 Faster R-CNN:详解目标检测的实现过程 - 郭耀华 - 博客园 yolov5与Faster-RCNN 训练过程

    2024年02月06日
    浏览(46)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包