位置: IT常识 - 正文

fast-rcnn详解(faster rcnn详解)

编辑:rootadmin
fast-rcnn详解 Fast R-CNN 算法及训练过程

推荐整理分享fast-rcnn详解(faster rcnn详解),希望有所帮助,仅作参考,欢迎阅读内容。

文章相关热门搜索词:fastrcnn原理,fastrcnn详解,fast rcnn和rcnn,fast rcnn和rcnn,fast rcnn loss,fastrcnn详解,fast rcnn和rcnn,fast rcnn resnet,内容如对您有帮助,希望把文章链接给更多的朋友!

        R-CNN显著提升了目标检测算法的性能,但因为计算过于复杂,耗时很长,所以在实际的应用系统中,大都无法使用。经过分析可知,R-CNN的复杂性主要来自两个方面:一是需要针对大量的候选框分别进行计算;二是特征提取之后的分类器训练和位置回归,是几个独立步骤分别进行的。在训练过程中,提取的特征要先存储在硬盘上,然后训练SVM分类模型,最后训练位置回归模型,而测试过程也是类似的,特征提取之后,需要先进行SVM分类,再回归目标的准确位置,整个过程在计算时间和存储空间上,都需要很大的开销。8.2节介绍的SPP-Net算法解决了前一个问题,通过共享特征图,整幅图像仅须进行一次卷积计算,但特征提取之后的处理仍然是分步骤独立进行的。本节介绍的FastR-CNN算法,针对上述两个问题进行了改进,使得算法速度有了非常显著的提升。以一个较深的网络VGG16为例,FastR-CNN的训练速度是R-CNN的9倍,测试速度是R-CNN的213倍;即使和SPP-Net相比,Fast R-CNN的训练速度和测试速度,也分别有了3倍和10倍的提升。         如图,在测试阶段,Fast R-CNN将整幅图像和图像上生成的一系列候选框作为输入,通过卷积层和池化层计算得到特征图。对于每个候选框,使用下文将要介绍的ROI池化层,从每个候选框对应的特征图区域提取固定长度的特征向量。固定长度的特征向量经过若干全连接层的计算后,分成两个分支,一个分支通过softmax方法对候选框中的图像进行分类,另一个分支通过回归目标框相对于候选框的偏移量和缩放尺度来预测目标的准确位置。

 ROI池化层fast-rcnn详解(faster rcnn详解)

要使得网络能够适应各种尺寸图像的输入,和SPP-Net类似,在最后一个卷积层之后,也需要加入一步操作,以保证输出的特征图具有固定的尺寸。为了提高算法效率,Fast R:CNN对整幅图像也只做一次卷积运算,所有的候选框共享各个卷积层输出的特征图。对于每个候选框,都可以通过映射关系在最后一个卷积层输出的特征图上找到其对应的感兴趣区域(Region Of Interest,即ROI)。我们在每个ROT区城上划分固定尺寸的均匀网格(比如,划分成7×7的网格),因为网格中每个单元格的宽高和特征图的宽高成正比,所以经过ROL池化层之后输出的特征图就具有了相同的尺寸。在每个单元格内使用最大值池化之后,原来的特征图就被映射成一个较小的固定尺寸的新特征图。 很容易看出,这里介绍的RO1池化层,本质上就是SPP层的一个特例。

模型训练

和R-CNN的训练过程类似,Fast R-CNN的网络模型也使用ImageNet分类数据集进行预训练。除此之外,为了能够实现检测任务,Fast R-CNN需要对原始的分类网络进行结构调整。第一步,把最后一个池化层替换成上文所述的ROI池化层,网格的行数H和列数W需要与其后第一个全连接层的输入尺度相匹配(例如,对于VGG16,W=H=7)。第二步,将最后一个全连接层(用于ImageNet的1000个分类),替换成2个并行的全连接层,其中一个全连接层用于分类(k+1个类别,k表示目标类别数,1表示背景),另一个全连接层用于回归目标框的位置。第三步,网络的输入变更为两部分,一部分是图像列表,另一部分是这些图像上的感兴趣区域,即ROI。         SPP-Net算法,在训练调优阶段,SPP层之前的网络参数在实际训练的过程中是不进行更新的。其中一个根本原因就是,如果更新全部参数,计算的代价会非常高。根据SPP-Net算法,一个批次的ROI图像可能来自不同的原始图像,这些图像卷积计算的特征图是无法共享的(但同一张图像卷积计算的特征图是可以共享的)。另外,在SPP层的特征图上,每个点对应原图的感受野都非常大,对于比较深的卷积结构,几乎覆盖了整个原图,使得每次迭代进行前向推理时,都需要分别在多个图像上进行卷积计算,效率十分低。那么,是否有一种方法,既能在训练调优的过程中更新所有的卷积层,又能保证比较高的计算效率呢?正是基于这样的考虑,Fast R-CNN的作者设计了一套独特的训练方法。         Fast R-CNN在训练过程中,假设每次迭代输入ROI图像的个数是R(batch size=R),这R个ROI来自固定数量的N张图像,每张图像包含R/N个ROI,因为同一张图像的各个ROI能共享卷积计算结果,所以可以通过减少N的数量来提升计算效率。不过,如果所有ROI都来自同一个原始图像,各个ROI的相关度会过高,不利于模型收敛,在计算效率和模型收敛效率之间,需要找到一个平衡点。在实际训练的过程中,通常选取N=2,R=128。在训练时,每个批次选取2张图像,每张图像上再分别选取64个ROI作为输入进行计算。通过这样的方式,每次迭代的计算速度大致是分别从128张不同图像上选取ROI计算速度的64倍。         Fast R-CNN和R-CNN、SPP-Net相比,另一个明显的改进是采用了多任务(multi-task)策略。Fast R-CNN网络有两个并行的输出分支,对于每个ROI,第一个分支计算k个目标类别+1个背景类别的分类概率P=p=(p0,……,pK),这k+1个分类概率一般是通过在全连接层之后计算softmax得到的。第二个输出分支计算候选框归一化的偏移量和缩放尺度,我们把第k个类别对应的归一化的偏移量和缩放尺度记为,对于每个ROI,通过下面的公式计算分类和位置回归的联合损失, 其中分类损失。         其中u表示真实的类别;位置损失表示对于类别u,真实的归一化偏移量及缩放尺度元组与实际预测的归一化偏移量及缩放尺度元组之间的差异,通常可以用两个元组之间的L距离或L,距离来度量。Fast R-CNN的作者使用了一种介于L1距离和L2距离之间的度量方法,具体如下所示:

        

其中:

         

        损失函数计算公式(8-9)中的是一个示性函数,当x=true时,[x]=1;当x=false时,[x]=0。因此,当u是目标类别时,u>1的取值为true,[*]=1,损失函数由分类损失和位置损失两者构成,当u是背景时,u>=1的取值为false,[*]=0,损失函数仅由分类损失构成。损失函数计算公式中的是一个权重因子,用于调节和的比例,通常情况下取入=1,即和按照等比例相加。         在调优训练的过程中,假设进行SGD优化的每个小批次都会使用128个ROI,这些ROI分别来自样本数据集中随机选取的2张图像(实际操作的时候会遍历整个样本集),每张图像上各自选择64个ROI。这64个ROI中,25%是前景目标,75%是背景。划分前景、背景的依据是ROI和真值的交并比(IoU),当IoU  [0.5,1]时,ROI作为前景目标,当IoU  [0.1,0.5)时,ROI作为背景,当IoU<0.1时ROI不参与最开始的训练。训练好一个模型后,使用这些IoU<0.1的ROI进行难例挖掘(hard example mining)以进一步调优训练。在训练的过程中,为了增加样本的多样性,一般会使用50%的概率随机水平翻转图像,以此进行样本扩充。         训练过程中,需要计算ROI池化层的前向传播和后向传播。这里假设一个小批次的所有ROI都来自1张图像(前向传播的过程,对每张图像都是独立处理的,因此N>1的情况类似,可以直接推广过去)。假设是ROI池化层的第i个输入,是ROI池化层对r个RO1进行最大池化后的第j个输出,经过ROI池化层的前向传播,,其中表示所有以为最大池化输出的所有x对应的指标的集合。对于反向传播,损失函数相对于ROI层的输入x,偏导数为          这个公式的意思是,ROI池化层输入变量的导数等于各个ROI经过最大池化后输出变量的导数之和。因为最终的损失等于每个ROI带来的损失之和,所以利用求导公式以及最大池化的反向传播公式,很容易推导出上述结论。         为了适应不同的尺度目标,可以直接基于多尺度样本训练具有多尺度检测能力的模型,也可以在测试的时候,把待测试图像缩放为几个不同尺度,构造图像金字塔,使用模型在金字塔的每一层进行测试,以此提高模型对多尺度目标的检测能力。

测试过程

        在基于Fast R-CNN进行测试的时候,首先通过Selective Search等方法,在原始图像上生成2000个左右的候选框,对于每个候选框,使用训练好的模型进行预测,预测结果为各个类别的分类概率,以及每个分类所对应的包围盒相对于原始候选框位置的偏移量和缩放尺度。待所有的候选框都预测完毕,会得到大量的包围盒,使用前面介绍的非极大值抑制方法对包围盒进行合并,就得到了最终的预测结果。为了使预测更具有尺度鲁棒性,可以基于原始图像构造不同尺度的图像金字塔,把金字塔的每一层图像分别送入Fast R-CNN进行检测,从而得到对尺度变化更加鲁棒的结果。

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

上一篇:HTML小游戏11 —— 横版恐龙大冒险游戏(附完整源码)(html在线小游戏)

下一篇:计算机视觉项目-人脸识别与检测(计算机视觉项目论文)

  • 怎样才能成为那1%的牛人?(怎样才能成为那种人)

    怎样才能成为那1%的牛人?(怎样才能成为那种人)

  • 一个号码怎么弄两个qq号(电信套餐转移到另一个号码怎么弄)

    一个号码怎么弄两个qq号(电信套餐转移到另一个号码怎么弄)

  • 抖音怎么发超过60秒的视频(抖音怎么发超过30秒的视频)

    抖音怎么发超过60秒的视频(抖音怎么发超过30秒的视频)

  • 中国移动卡hd会收费吗(移动卡hd有什么用)

    中国移动卡hd会收费吗(移动卡hd有什么用)

  • 健康码通过什么定位(健康码通过什么记录行程的)

    健康码通过什么定位(健康码通过什么记录行程的)

  • ipad分屏没有中线(ipad2018分屏没有分隔条)

    ipad分屏没有中线(ipad2018分屏没有分隔条)

  • 苹果防水手机是哪款(苹果防水手机是哪几款)

    苹果防水手机是哪款(苹果防水手机是哪几款)

  • 电脑上的句号是哪个键(电脑上面句号)

    电脑上的句号是哪个键(电脑上面句号)

  • iphone11晚上面容识别不了(苹果11晚上面容识别)

    iphone11晚上面容识别不了(苹果11晚上面容识别)

  • 支付宝盒子红灯一直闪怎么回事(支付宝盒子红灯闪是什么意思)

    支付宝盒子红灯一直闪怎么回事(支付宝盒子红灯闪是什么意思)

  • 钉钉共享视频为什么没有声音(钉钉共享视频为什么黑屏)

    钉钉共享视频为什么没有声音(钉钉共享视频为什么黑屏)

  • 标压和低压的区别(标压和低压的区别 h t)

    标压和低压的区别(标压和低压的区别 h t)

  • oppo reno ace是曲面屏吗 (opporenoace是曲面屏吗)

    oppo reno ace是曲面屏吗 (opporenoace是曲面屏吗)

  • hd4g是什么网络(4g网络的hd是什么意思啊)

    hd4g是什么网络(4g网络的hd是什么意思啊)

  • 华为frdal10是啥型号(froal10华为是什么型号)

    华为frdal10是啥型号(froal10华为是什么型号)

  • 京东礼品卡退货可以退吗(京东礼品卡退货剪卡)

    京东礼品卡退货可以退吗(京东礼品卡退货剪卡)

  • 华为耳机怎么接电话(华为耳机怎么接电话和挂电话图解)

    华为耳机怎么接电话(华为耳机怎么接电话和挂电话图解)

  • 安卓手机用久了为什么会卡(安卓手机用久了发热严重)

    安卓手机用久了为什么会卡(安卓手机用久了发热严重)

  • 小米怎样设置国家地区(小米怎样设置国家服务)

    小米怎样设置国家地区(小米怎样设置国家服务)

  • vivo手机没有信号是什么原因(vivo手机没有信号是哪里出现了问题)

    vivo手机没有信号是什么原因(vivo手机没有信号是哪里出现了问题)

  • 手机怎么一秒充满电(怎样用手机一秒充满电)

    手机怎么一秒充满电(怎样用手机一秒充满电)

  • 微信小视频如何制作(微信小视频如何屏蔽好友)

    微信小视频如何制作(微信小视频如何屏蔽好友)

  • fast300m路由器设置(fast300m路由器设置重置后没有网)

    fast300m路由器设置(fast300m路由器设置重置后没有网)

  • 如何设置开机自启动(如何设置开机自动播放视频)

    如何设置开机自启动(如何设置开机自动播放视频)

  • 小米9怎么无线充电(小米9怎么无线充电充不上)

    小米9怎么无线充电(小米9怎么无线充电充不上)

  • 怎么安装双系统?win10稳定版和win11双系统安装图文教程(macbookpro怎么安装双系统)

    怎么安装双系统?win10稳定版和win11双系统安装图文教程(macbookpro怎么安装双系统)

  • 跨站脚本攻击(XSS)(跨站脚本攻击是什么)

    跨站脚本攻击(XSS)(跨站脚本攻击是什么)

  • 前端实现文件下载的方法(前端实现文件下载列表)

    前端实现文件下载的方法(前端实现文件下载列表)

  • 交个税步骤
  • 预缴企业所得税计税依据
  • 职工食堂费用计入管理费用
  • 公司货款退款怎么写
  • 交强险必须交车船使用税吗
  • 土地入固定资产还是无形资产
  • 出口退税中哪些是免税的
  • 利润率的百分比
  • 金税盘全额抵扣申报流程
  • 资产损失税前扣除管理办法
  • 小企业准则固定资产折旧每月折旧多折了
  • 应付职工薪酬如何具体到个人
  • 购货发票属于什么科目
  • 内控制度包括哪些制度
  • 污泥处置中心所得税优惠政策
  • 免税和不征税货一样吗
  • 税控盘证书密码一天可以输几次
  • 转让非独占许可使用权调整
  • 资本金结汇资金用途
  • 月销售额不超10万,免征教育费附加分录
  • 固定资产一次性计入费用的账务处理
  • 基金公司管理费收入增值税
  • 工程服务发票税率3%
  • 归还法人前期垫付款项
  • qq上的时间和手机不一样怎么办
  • Win11怎么自定义鼠标指针图案
  • 公司收到个人的款怎么做账务处理
  • 私募证券投资如何交易
  • 公司上市前缩股
  • 法人向公司借款要交什么税
  • win10电脑屏幕颜色变了怎么调到原来的
  • 包装物如何做会计分录
  • 企业事业单位应当采取有效措施
  • el-tree方法
  • ChatGPT-4 终于来了(文末附免费体验地址)
  • 准公益性企业
  • php5.5
  • 浅谈双减背景下的高效课堂
  • 工商变更后税务会自动变更吗
  • html零基础入门教程
  • vue watch和computed
  • discuz去除底部
  • 每月计提的工资包含社保吗
  • 印花税每个月都报吗
  • 公司租用员工的车需要发票吗
  • 员工借款未还离职怎么办
  • 房地产预计毛利率企业所得税
  • 个人所得税0申报什么意思
  • sqlserver2008安装步骤图文
  • asp连接mysql数据库
  • 个税子女教育扣除申报方式怎么选
  • 增值税征收类型
  • 企业重组后的债权怎么处理
  • 合并报表存货抵消
  • 让渡资产使用权什么意思
  • 公司奖励员工制度
  • 明细账分类账登记
  • 取得航空公司收票的票据
  • 定额发票收入怎么样确定
  • 备用金没有发票,只有支付凭证
  • 所有者权益的概念和特征
  • 技术服务费会计处理
  • 工业企业应收账款减少原因分析
  • 低值易耗品最新定义
  • sql server Bulk Insert命令详细
  • centos中rpm包怎么安装
  • adsl用户之间共享电话线路
  • 445端口 关闭
  • win7操作系统在哪儿卖
  • window 查看端口
  • linux ssh -v -p
  • Extjs4 Treegrid 使用心得分享(经验篇)
  • nodejs mocha
  • unity图集
  • unityui播放视频
  • node exit
  • 简单的横向棱纹魔杖
  • jquery关闭当前页面
  • 润泽一词出自哪里
  • 武汉税务地区编号
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

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

    友情链接: 武汉网站建设