位置: IT常识 - 正文

经典目标检测算法:RCNN、Fast RCNN、 Faster RCNN 基本思想和网络结构介绍(最新的目标检测算法2020)

编辑:rootadmin
经典目标检测算法:RCNN、Fast RCNN、 Faster RCNN 基本思想和网络结构介绍 目录一、目标检测的基本介绍1.1 什么是目标检测?1.2 目标检测算法的分类二、RCNN2.1 RCNN简介2.2 RCNN算法流程2.3 RCNN流程图2.4 RCNN框架2.5 RCNN的缺点三、Fast RCNN3.1 Fast RCNN简介3.2 Fast RCNN算法流程3.3 Fast RCNN流程图3.3.1 总体流程3.3.2 softmax 分类器3.3.3 边界框回归器(bbox regressor )3.3 Fast RCNN 中 loss 的计算3.4 Fast RCNN框架3.5 Fast RCNN的缺点四、Faster RCNN4.1 Faster RCNN简介4.2 Faster RCNN算法流程4.2 RPN网络4.2.1 RPN网络结构4.2.2 anchor的定义4.2.3 RPN生成proposal的过程4.3 Faster RCNN框架五、三者的比较:RCNN、Fast RCNN、 Faster RCN六、参考资料一、目标检测的基本介绍1.1 什么是目标检测?

推荐整理分享经典目标检测算法:RCNN、Fast RCNN、 Faster RCNN 基本思想和网络结构介绍(最新的目标检测算法2020),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:经典目标检测算法,经典目标检测算法有哪些,目标检测常用指标,经典目标检测算法,经典目标检测的基本思想,目标检测经典模型,经典目标检测的基本思想,经典目标检测算法,内容如对您有帮助,希望把文章链接给更多的朋友!

所谓目标检测就是在一张图像中找到我们关注的目标,并确定它的类别和位置,这是计算机视觉领域最核心的问题之一。由于各类目标不同的外观,颜色,大小以及在成像时光照,遮挡等具有挑战性的问题,目标检测一直处于不断的优化和研究中。

1.2 目标检测算法的分类

传统的目标检测算法有:SIFT(尺度不变特征变换)、HOG(方向梯度直方图)、DPM(一种基于组件的图像检测算法)等。

基于深度学习的目标检测算法可以分为两类:二阶算法(Two Stage)和一阶算法(One Stage)。

二阶算法:先生成区域候选框,再通过卷积神经网络进行分类和回归修正。常见算法有 RCNN、SPPNet、Fast RCNN,Faster RCNN 和 RFCN 等。二阶算法检测结果更精确。 一阶算法:不生成候选框,直接在网络中提取特征来预测物体的分类和位置。常见算法有 SSD、YOLO系列 和 RetinaNet 等。一阶算法检测速度与更快。二、RCNN2.1 RCNN简介

RCNN(Region with CNN feature)算法出现于2014年,是将深度学习应用到目标检测领域的开山之作,凭借卷积神经网络出色的特征提取能力,大幅度提升了目标检测的效果。

RCNN在PASCAL VOC2012数据集上将检测率从35.1%提升至53.7%,使得CNN在目标检测领域成为常态,也使得大家开始探索CNN在其他计算机视觉领域的巨大潜力。

论文:《 Rich feature hierarchies for accurate object detection and semantic segmentation 》 作者:Ross Girshick 源码(作者提供):https://github.com/rbgirshick/rcnn

2.2 RCNN算法流程

RCNN继承了传统目标检测的思想,将目标检测当做分类问题进行处理,先提取一系列目标的候选区域,然后对候选区域进行类。

其具体算法流程包含以下4步:

(1)生成候选区域:

采用一定区域候选算法(如 Selective Search)将图像分割成小区域,然后合并包含同一物体可能性高的区域作为候选区域输出,这里也需要采用一些合并策略。不同候选区域会有重合部分,如下图所示(黑色框是候选区域):

要生成1000-2000个候选区域(以2000个为例),之后将每个区域进行归一化,即缩放到固定的大小(227*227).

(2)对每个候选区域用CNN进行特征提取:

这里要事先选择一个预训练神经网络(如AlexNet、VGG),并重新训练全连接层,即 fintune 技术的应用。

将候选区域输入训练好的AlexNet CNN网络,得到固定维度的特征输出(4096维),得到2000×4096的特征矩阵。         

         (3)用每一类的SVM分类器对CNN的输出特征进行分类:

此处以PASCAL VOC数据集为例,该数据集中有20个类别,因此设置20个SVM分类器。

将2000×4096的特征与20个SVM组成的权值矩阵4096×20相乘,获得2000×20维矩阵,表示2000个候选区域分别属于20个分类的概率,因此矩阵的每一行之和为1。

         分别对上述2000×20维矩阵中每一列(即每一类)进行非极大值抑制剔除重叠建议框,得到该列即该类中概率最大的一些候选框。

非极大值抑制剔除重叠建议框的具体实现方法是:

第一步:定义 IoU 指数(Intersection over Union),即 (A∩B) / (AUB) ,即AB的重合区域面积与AB总面积的比。直观上来讲 IoU 就是表示AB重合的比率, IoU越大说明AB的重合部分占比越大,即A和B越相似。

         第二步:找到每一类中2000个候选区域中概率最高的区域,计算其他区域与该区域的IoU值,删除所有IoU值大于阈值的候选区域。这样可以只保留少数重合率较低的候选区域,去掉重复区域。

比如下面的例子,A是向日葵类对应的所有候选框中概率最大的区域,B是另一个区域,计算AB的IoU,其结果大于阈值,那么就认为AB属于同一类(即都是向日葵),所以应该保留A,删除B,这就是非极大值抑制。

(4)使用回归器精修候选区域的位置:

通过 Selective Search算法得到的候选区域位置不一定准确,因此用20个回归器对上述20个类别中剩余的建议框进行回归操作,最终得到每个类别的修正后的目标区域。具体实现如下:

如图,黄色框表示候选区域 Region Proposal,绿色窗口表示实际区域Ground Truth(人工标注的),红色窗口表示 Region Proposal 进行回归后的预测区域,可以用最小二乘法解决线性回归问题。

通过回归器可以得到候选区域的四个参数,分别为:候选区域的x和y的偏移量,高度和宽度的缩放因子。可以通过这四个参数对候选区域的位置进行精修调整,就得到了红色的预测区域。

2.3 RCNN流程图

2.4 RCNN框架

RCNN由四个部分组成:SS算法、CNN、SVM、bbox regression。

2.5 RCNN的缺点

(1)训练和测试速度慢,需要多步训练,非常繁琐。

(2)由于涉及分类中的全连接网络,因此输入CNN的候选区域尺寸是固定的,造成了精度的降低。

(3)候选区域需要提前提取并保存,占用的空间很大。对于非常深的网络,如VGG16,从VOCO7训练集上的5000张图片上提取的特征需要数百GB的存储空间,这个问题是致命的。

RCNN 成为了当时目标检测领域的SOAT算法,尽管现在已经不怎么用了,但其思想仍然值得我们借鉴和学习。

三、Fast RCNN3.1 Fast RCNN简介

在RCNN之后,SPPNet解决了重复卷积计算和固定输出尺寸两个问题,SPPNet的主要贡献是在整张图像上计算全局特征图,然后对于特定的建议候选框,只需要在全局特征图上取出对应坐标的特征图就可以了。但SPPNe仍然存在一些弊端,如仍然需要将特征保存在磁盘中,速度还是很慢。

Fast RCNN算法是2015年Ross Girshick(还是这位大佬)提出的,在RCNN和SPPNet的基础上进行了改进。根据名字就知道,Fast RCNN更快更强。其训练步骤实现了端到端,基于CGG16网络,其训练速度比RCNN快了9倍,测试速度快了213倍,在PASCAL VOC2012数据集达到了68.4%的准确率。

论文:《Fast R-CNN》 源码(作者提供):https://github.com/rbgirshick/fast-rcnn

3.2 Fast RCNN算法流程

(1)一张图像生成1K~2K个候选区域(使用Selective Search算法,简称SS算法),我们将某个候选区域称为ROI区域。

(2)将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵。

R-CNN vs Fast-RCNN:

R-CNN依次将2000个候选框区域输入卷积神经网络得到特征,存在大量冗余,提取时间很长。 Fast-RCNN将整张图像送入网络,一次性计算整张图像特征,这样就可以根据特征图的坐标获得想要的候选区域的特征图,不需要重复计算。

(3)将每个特征矩阵通过 ROI pooling 层缩放到7x7大小的特征图。

经典目标检测算法:RCNN、Fast RCNN、 Faster RCNN 基本思想和网络结构介绍(最新的目标检测算法2020)

前面讲到RCNN需要将候选区域归一化到固定大小(227227),而Fast RCNN并不需要这样的操作,Fast RCNN通过pooling层将每个候选区域的特征图都变为77,如下图所示:

(4)将特征图展平(reshape)为向量,通过一系列全连接层和 softmax得到预测结果。

3.3 Fast RCNN流程图3.3.1 总体流程

如图,将一张图像输入到 Deep ConvNet 中得到图像的特征图,根据ROI区域与整体图像的坐标映射关系 (RoI Projection)进行特征映射(Conv feature map),能够得到每一个候选区域(ROI区域)的特征矩阵。

将每一个特征矩阵通过RoI pooling layer,池化到固定尺寸(7*7),然后展平为向量(vector)。再经过两个全连接层(fully connected layers,FC),得到ROI特征向量(ROI feature vector)。

之后 ROI feature vector 并联两个FC,其中一个用于目标概率预测(softmax),另一个用于边界框参数的回归(bbox regressor,bbox 表示 bounding box)。

3.3.2 softmax 分类器

softmax 分类器输出N+1个类别的概率,如下图所示。PASCAL VOC2012数据集中有20个分类,因此会输出21个类别的概率,其中第一个为背景概率,其余20个为每个分类的概率。所以softmax的FC中有N+1个节点。

3.3.3 边界框回归器(bbox regressor )

一幅图片中会画出N+1个分类的候选框,每个候选框都有x、y、w、d四个参数,所以 bbox regressor 的FC中有 4(N+1) 个节点。

边界框参数回归的计算方法:

3.3 Fast RCNN 中 loss 的计算

因为在Fast RCNN 中需要预测N+1个类别的概率以及边界框的回归参数,所以定义了两个损失函数:分类损失和边界框回归损失。

3.4 Fast RCNN框架

首先回顾一下RCNN的框架:

RCNN由四部分组成,因此需要多步训练,非常繁琐。

Fast RCNN将CNN特征提取,SVM边界框分类,bbox regression边界框回归三部分结合到了一起,都融合到同一个CNN中。那么Fast RCNN就只有两部分了:先通过SS算法获取候选框,再通过CNN完成特征提取、分类和边界框回归。

那么自然而然的,在接下来的 Faster RCNN 算法中,就要考虑如何将 Region proposal 也融入到CNN中,将整个算法合并为一个网络,这样就可以实现端到端的目标检测。

3.5 Fast RCNN的缺点

1、尽管用到了GPU,但Region proposal还是在CPU上实现的。在CPU中,用SS算法提取一张图片的候选框区域大约需要2s,而完成整个CNN则只需要0.32s,因此Fast RCNN 计算速度的瓶颈是Region proposal。

2、无法满足实时应用,没有真正实现端到端训练测试;

四、Faster RCNN4.1 Faster RCNN简介

Faster RCNN 是作者 Ross Girshick 继 RCNN 和 Fast RCNN后的又一力作。同样使用 VGG16作为网络的backbone,推理速度在GPU上达到5fps(包括候选区域的生成),准确率也有进一步的提升。在2015年的ILSVRC以及cOco竞赛中获得多个项目的第一名。

4.2 Faster RCNN算法流程

Faster RCNN = RPN + Fast RCNN

RPN 是指 Region Proposal Network,建议区域生成网络。 Faster RCNN 中用 RPN 来代替了 Fast RCNN 中的SS算法。

算法流程:

(1)将图像输入网络得到相应的特征图。

(2)使用RPN网络生成候选框,将RPN生成的候选框投影到特征图上获得ROI区域的特征矩阵。

(3)将每个ROI区域的特征矩阵通过 ROI pooling 层缩放到7x7大小的特征图,接着将特征图展平为vector,之后通过一系列全连接层得到预测结果。

Faster RCNN 网络的基本结构如下:

4.2 RPN网络4.2.1 RPN网络结构

         图中的 conv feature map 是图像输入网络得到相应的特征图,通过sliding window处理之后产生一个256d的一维向量。该向量通过两个全连接层,分别输出分类概率scores和边界框回归参数coordinates,其中k是指 k个 anchor boxes,2k个scores是每个 anchor box 分别为前景和背景的概率(注意这里只区分前景和背景,所有的类别都归为前景),4k个coordinates是因为每个anchor box 有四个参数。

4.2.2 anchor的定义

那么什么是 anchor呢?

首先要明确,anchor不是候选框(Proposal),后面会提到二者的区别。

我们在特征图中找一个点,就可以在原图中找到对应的一个像素点,以该像素点为中心,画出9个不同大小和长宽比的框,称为anchor 。如下图所示,这些anchor里面可能包含目标,也可能没有目标。因为我们在一张图中想找的的目标的大小和长宽比并不是固定的,所以这里用9个不同大小和长宽比的anchor来进行预测。

那么为什么是9个anchor呢?

论文中给出了每个anchor的面积和长宽比:

所以特征图中的每个位置在原图中都会生成 33=9 个anchor,如下图所示,蓝色的三个anchor是面积为128128的,红色是面积为256256的,绿色是512512的。

4.2.3 RPN生成proposal的过程

对于一张 1000x600x3 的图像(三通道),用3x3的卷积核进行特征提取得到60x40的特征图,则共有 60x40x9 (约2w个)个anchor。忽略超过图片边界的 anchor 后,剩下约 6000 个anchor。

对于这6000 个 anchor,通过RPN生成的边界框回归参数将每个 anchor 调整为proposal(前面提到了每个anchor经过RPN都输出2个概率和4个边界框回归参数),这里就能看到anchor和proposal的区别。这个过程就是 RPN 生成候选框的过程。

RPN 生成的候选框之间存在大量重叠,基于候选框的cls得分,采用非极大值抑制,IoU设为0.7,这样每张图片只剩下 2000 个候选框。

4.3 Faster RCNN框架

         Faster RCNN 在Fast RCNN的基础上更进一步,将候选框生成也融入到CNN网络中,使得 候选框生成、特征提取、候选框分类、候选框边界回归这四大部分都结合在一个CNN网络中,避免了分步训练,实现了真正端到端的目标检测。         

五、三者的比较:RCNN、Fast RCNN、 Faster RCN

三者都是二阶算法,网络框架比较:

可以看到,从RCNN、Fast RCNN 到 Faster RCNN,网络框架越来越简洁,目标检测效果也越来越好。

三者的优缺点比较:                  

六、参考资料

视频(B站):Faster RCNN理论合集

博客:Faster R-CNN论文笔记——FR

博客:Faster RCNN 优缺点说明

本文链接地址:https://www.jiuchutong.com/zhishi/299182.html 转载请保留说明!

上一篇:大型语言模型的推理演算(大型语言模型的教育应用)

下一篇:react实现路由跳转(react路由exact)

  • 移动通用流量是什么意思

    移动通用流量是什么意思

  • 华为mate30pro必要贴膜吗(华为mate 30 pro需要配手机壳吗)

    华为mate30pro必要贴膜吗(华为mate 30 pro需要配手机壳吗)

  • 酷开是什么(酷开是什么电视)

    酷开是什么(酷开是什么电视)

  • 如何评论别人快手作品(如何评论别人快手视频)

    如何评论别人快手作品(如何评论别人快手视频)

  • 抖音怎么设置匿名评论(抖音怎么设置匿名用户)

    抖音怎么设置匿名评论(抖音怎么设置匿名用户)

  • 怎么把qq留言板一次性删除(怎么把qq留言板锁起来)

    怎么把qq留言板一次性删除(怎么把qq留言板锁起来)

  • 微信发的图片不清晰怎么办(微信发的图片不显示怎么回事)

    微信发的图片不清晰怎么办(微信发的图片不显示怎么回事)

  • 抖音剩余粉丝未授权无法查看(抖音剩余粉丝未授权怎么移除)

    抖音剩余粉丝未授权无法查看(抖音剩余粉丝未授权怎么移除)

  • 淘宝加购什么意思(淘宝说的加购是什么意思)

    淘宝加购什么意思(淘宝说的加购是什么意思)

  • 联想笔记本开机键是哪个图标(联想笔记本开机键在哪)

    联想笔记本开机键是哪个图标(联想笔记本开机键在哪)

  • 抖音充不了币怎么回事(抖音充不进抖币)

    抖音充不了币怎么回事(抖音充不进抖币)

  • iphone烫手怎么回事(苹果手机烫得很)

    iphone烫手怎么回事(苹果手机烫得很)

  • 钉钉属于阿里系吗(钉钉是不是阿里的)

    钉钉属于阿里系吗(钉钉是不是阿里的)

  • 京东卖家货款多久到账(京东商家贷款额度)

    京东卖家货款多久到账(京东商家贷款额度)

  • 手机腾讯会员怎么分享给别人使用(手机腾讯会员怎么分享二维码登录微信)

    手机腾讯会员怎么分享给别人使用(手机腾讯会员怎么分享二维码登录微信)

  • 华为p40可以反向充电吗(华为p40可以反向给苹果手机充电吗)

    华为p40可以反向充电吗(华为p40可以反向给苹果手机充电吗)

  • 新建文档时word默认的字体和字号分别是(怎么建文档)

    新建文档时word默认的字体和字号分别是(怎么建文档)

  • 手机微信扫描二维码怎么用(手机微信扫描二维码后电脑不能登录)

    手机微信扫描二维码怎么用(手机微信扫描二维码后电脑不能登录)

  • 手机优酷vip怎么与电视同步(手机优酷vip怎么分享二维码登录)

    手机优酷vip怎么与电视同步(手机优酷vip怎么分享二维码登录)

  • 抖音怎么取消显示年龄(抖音怎么取消显示买过的店)

    抖音怎么取消显示年龄(抖音怎么取消显示买过的店)

  • 解压密码怎么用(html解压密码怎么用)

    解压密码怎么用(html解压密码怎么用)

  • rx580显卡配什么cpu(rx580搭配)

    rx580显卡配什么cpu(rx580搭配)

  • 直播唱歌需要什么设备(直播唱歌需要什么配置)

    直播唱歌需要什么设备(直播唱歌需要什么配置)

  • 特立尼达和多巴哥的棱皮龟 (© Shane P. White/Minden Pictures)(特立尼达和多巴哥)

    特立尼达和多巴哥的棱皮龟 (© Shane P. White/Minden Pictures)(特立尼达和多巴哥)

  • MNIST数据集下载+idx3-ubyte解析【超详细+上手简单】(mnist数据集下载码)

    MNIST数据集下载+idx3-ubyte解析【超详细+上手简单】(mnist数据集下载码)

  • mv命令  移动或改名文件(linux用mv文件移动指定文件)

    mv命令 移动或改名文件(linux用mv文件移动指定文件)

  • 什么是进口增值业务
  • 固定资产的折余价值计算公式
  • 存货减值税务处理
  • 资产损失税前扣除管理办法 税屋
  • 增值税申报表中应税货物销售额
  • 餐费可以抵扣吗
  • 红发票和蓝发票
  • 计提和缴纳企业所得税分录
  • 嵌入式软件运行的主要流程是什么
  • 固定资产按月折旧了,还能一次折旧么
  • 营改增后自建厂房抵扣
  • 一般开发间接费
  • 企业注销未分配利润要交个人所得税吗
  • 电子产品发票税是多少
  • 小规模纳税人如何升级为一般纳税人
  • 发票清单太多怎么办理
  • 减免所得税额明细表
  • 限制性股票股利会计处理
  • 新购进的固定资产可以一次性抵扣
  • 在会计中加速折旧的方法
  • 财务报表申报完可以修改吗
  • 专票有电子发票有抵扣联吗
  • 分期收款发出商品属于什么科目
  • 个人所得汇算清缴是什么
  • win10系统中怎么共享文件
  • 多发的工资可以从下月扣除吗
  • win10怎么调出命令行窗口
  • 中秋福利发放现金文案怎么写
  • linux命令使用
  • 小规模企业亏损情况说明范文
  • 消费税和增值税的征税范围有何不同
  • windows7旗舰版最新版本
  • 日落时分谭咏麟歌词
  • sysmon安装
  • 前端开发从入门到放弃
  • css样式修改
  • 计算机视觉的未来发展方向有哪些
  • 滞纳金的计算公式为
  • 管家婆中已经过账的进货单怎么删除?
  • 担保贷款借款人征信不好有影响吗
  • 机械租赁公司月薪多少
  • phpcms建站流程
  • 累计折旧怎么做账
  • sqlServer查询当前ip地址
  • 递延所得税资产和所得税费用的关系
  • 营业成本怎么理解
  • 企业会计人员审计程序
  • 生产企业成本核算案例
  • 复利现值系数表系数表
  • 个体工商户税收新政策
  • 生产辅料清单
  • 应交税费其他收入会计分录
  • 纳税人将外购的货物用于非应税项目
  • 企业的赔偿款抵什么税
  • 收到赠送样品如何入账
  • 咨询服务行业的收入与成本
  • 开发票时如何添加商品编码?
  • 工业企业自制半导体材料
  • 如何删除win10系统
  • u盘安装win7系统鼠标键盘没反应
  • win10自带邮件怎么登录foxmail账号
  • mac怎么传输文件夹
  • unix常用命令
  • scheduler.exe - scheduler是什么进程 有何作用
  • Ghost XP SP3电脑市场专业装机版 V5.5
  • 禅道界面
  • Win7系统启动qq无法访问个人文件怎么解决
  • windows 8 开发者预览版
  • win7重新安装windows
  • glortho函数
  • android studio入门项目
  • shift妙用之解决shell编程中的入参问题
  • nodejs.
  • emacs win10
  • shell中大括号
  • javascript 拖拽
  • 平谷大集时间表2022
  • 湖南增值税普通发票查询系统官网
  • 运输类税点
  • 河北税务交社保显示未找到对应的城乡居民应缴费额配置
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设