目标检测算法——Fast R-CNN

简介: 目标检测算法——Fast R-CNN

1.Fast R-CNN简介


Fast R-CNN

其论文的名字就是 Fast R-CNN,原文链接。Fast R-CNN与R-CNN相同,同样使用VGG16作为网络的backbone,与R-CNN相比训练时间快9倍,测试推理时间快213倍,准确率从62%提升至66%(再Pascal VOC数据集上)。


Fast R-CNN 算法流程可分为3个步骤

  1. 一张图像生成1K~2K个 候选区域(使用Selective Search方法
  2. 将图像输入网络得到相应的特征图,将SS算法生成的候选框投影到特征图上获得相应的特征矩阵
  3. 将每个特征矩阵通过ROI(Region of Interest) pooling层缩放到 7x7 大小的特征图,接着将特征图展平通过一系列全连接层得到预测结果

image.png


2.Fast R-CNN处理过程


1)候选区域的生成

与R-CNN一样,利用Selective Search算法通过图像分割的方法得到一些原始区域,然后使用一些合并策略将这些区域合并,得到一个层次化的区域结构,而这些结构就包含着可能需要的物体。

但是,Fast R-CNN与R-CNN不同的是,这些生成出来的候选区域不需要每一个都丢到卷积神经网络里面提取特征,而且只需要在特征图上映射便可,见下一个步骤。

image.png


2)投影特征图获得相应的特征矩阵

Fast-RCNN没有像RCNN一样,其不限制输入的图像的尺寸,其将整张图像送入网络,得到了一个特征图。紧接着从特征图像上提取相应的候选区域。这些候选区域的特征不需要再重复计算,简洁了不少的时间。

image.png

但是这其中涉及训练数据正负样本采样的问题。不过Fast R-CNN与Faster R-CNN处理得不同,也可以不用太过的在意。

在Fast R-CNN中,并不适用SS算法提供的所有的候选区域,SS算法会差不多得到2000个候选框,但是训练的过程中其实只需要使用其中的一部分就可以了,Fast R-CNN中好像只挑选了其中的64个。其中还是分为正样本与负样本,正样本指的是在候选框中确实存在所需检测目标的样本;而负样本指的是候选框中没有所需检测的目标,也就是只有背景。

视频up主所理解的一个意思是,当数据不平衡时,数据会有所偏向。如果全部只有正样本,那么网络就会有很大的一个概率认为候选区域是我们需要的一个检测目标,这样就会有问题,所以存在正负样品。

正样本的定义为候选框与真实的目标边界框的iou大于0.5;负样本的定义为候选框与所有真实的目标边界框的iou值最大的区间为0.1-0.5。重点是其实没有完全适应SS算法提供的所以的边界框。


3)ROI层缩放

有了训练样本之后,将训练样本的候选框通过ROI Pooling层缩放到统一的尺寸。

image.png

ROI Pooling层的具体做法是,将候选框所框选的训练样本,这是一个比较抽象的特征信息。将其划分为77,也就是49等份。划分之后,对每一个区域做一个最大池化下采样操作,也就是MaxPooling操作。如此对49等分的候选区域操作,便得到了一个77的特征矩阵。

image.png

也就是说,无论候选区域的特征矩阵是怎么样的尺寸,都被缩放到一个77的大小,这样就可以不去限制输入图像的尺寸了。因为,作进一步的工作的是输入图像的候选区域,而候选区域总是能被缩放为77的尺寸的,所以也就和输入图像的尺寸无关。

在R-CNN当中,其使用的卷积神经网络要求输入是227*227大小,但是Fast R-CNN就不需要考虑这个因素。


4)展平特征图利用全连接层得到预测结果。

概率分类器

输出N+1个类别的概率(N为检测目标的种类, 1为背景)共N+1个节点。

image.png

其中的第0个节点表示的背景的概率。剩下的20个是其他所需检测的类别概率。这个概率是经过softmax处理之后的,是满足一个概率分布的,其和为1.而既然现在是需要预测21个类别的概率,所以目标概率预测的全连接层为21个节点。


边界框回归器

输出对应N+1个类别的候选边界框回归参数(d x , d y , d w , d h )。需要注意,这是每一个类别都有这4个参数。所以共(N+1)x4个节点。

image.png

也就是4个4个为一组,一组为一个边界框回归参数。那么如何根据回归参数得到最后的预测边界框?

对应着每个类别的候选边界框回归参数(d x , d y , d w , d h)

image.png

Px,Py,Pw,Ph 分别为候选框的中心x,y坐标,以及宽高

Gx,Gy,Gw,Gh 分别为最终预测的边界框中心x,y坐标,以及宽高


3.Fast R-CNN损失函数


image.png

  • p是分类器预测的softmax概率分布p = (p0, …, pk)
  • u对应目标真实类别标签
  • tu对应边界框回归器预测的对应类别u的回归参数(tux,tuy,tuw,tuh)
  • v对应真实目标的边界框回归参数(vx,vy,vw,vh)


其中真实目标边界框回归参数的计算公式为:

image.png

其中对于分类损失:

image.png

  • p是分类器预测的softmax概率分布p = (p0, …, pk)
  • u对应目标真实类别标签


其中对于边界框回归损失:

image.png

注意,这个损失是由4个部分组成的。分别对应着我们回归参数 x 的smoothL1的回归损失,回归参数 y 的smoothL1的回归损失,回归参数 w 的smoothL1的回归损失与最后的回归参数 h 的smoothL1的回归损失。

  • tu对应边界框回归器预测的对应类别u的回归参数(tux,tuy,tuw,tuh)
  • v对应真实目标的边界框回归参数(vx,vy,vw,vh)


而具体的smoothL1损失的计算公式为

image.png

λ 是一个平衡系数,用于平衡分类损失与边界框回归损失。

[u ≥ 1] 是艾佛森括号,也可以理解为一个计算公式。当u满足条件是,公式的值为1;而当u不满足条件时,也就是u<1时,也就是u=0时,(u为类别的标签),此时类别标签为背景,公式的值为0.


u代表了目标的真是标签,u ≥ 1表示候选区域确实属于所需检测的某一个类别当中,也就是对应着正样本。当u=0时,此时候选区域对应着为背景,不属于所需检测的某一个类别当中。那既然是背景,就没有边界框回归损失这一项了。

也就是Fast R-CNN的总损失 = 分类损失 + 边界框回归损失然后对其进行反向传播就可以训练Fast R-CNN网络了。


4.Fast R-CNN总框架


image.png

再来看一下Fast R-CNN网络结构的框架

直接将输入的图像输入到神经网络中得到一个特征图,通过ss算法得到的候选区域,根据映射关系找到每一个候选区域的特征矩阵。将特征矩阵通过ROI Pooling层统一缩放到7*7的大小,然后将其展平处理,然后通过两个全连接层,得到ROI feature Vector。在ROI feature Vector的基础上,并联两个全连接层。其中的一个全连接层用于目标概率的预测,另外的一个全连接层用来边界框回归参数的预测。

以上便是整个Fast R-CNN的结构处理流程。


Fast R-CNN框架

image.png

Fast R-CNN比R-CNN快了200多倍,选择Fast R-CNN的速度瓶颈就在ss算法上


参考资料:

https://www.bilibili.com/video/BV1af4y1m7iL?p=2

目录
相关文章
|
24天前
|
机器学习/深度学习 运维 监控
实时异常检测实战:Flink+PAI 算法模型服务化架构设计
本文深入探讨了基于 Apache Flink 与阿里云 PAI 构建的实时异常检测系统。内容涵盖技术演进、架构设计、核心模块实现及金融、工业等多领域实战案例,解析流处理、模型服务化、状态管理等关键技术,并提供性能优化与高可用方案,助力企业打造高效智能的实时异常检测平台。
|
5天前
|
存储 监控 算法
基于跳表数据结构的企业局域网监控异常连接实时检测 C++ 算法研究
跳表(Skip List)是一种基于概率的数据结构,适用于企业局域网监控中海量连接记录的高效处理。其通过多层索引机制实现快速查找、插入和删除操作,时间复杂度为 $O(\log n)$,优于链表和平衡树。跳表在异常连接识别、黑名单管理和历史记录溯源等场景中表现出色,具备实现简单、支持范围查询等优势,是企业网络监控中动态数据管理的理想选择。
21 0
|
5月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
本研究基于MATLAB 2022a,使用GRU网络对QAM调制信号进行检测。QAM是一种高效调制技术,广泛应用于现代通信系统。传统方法在复杂环境下性能下降,而GRU通过门控机制有效提取时间序列特征,实现16QAM、32QAM、64QAM、128QAM的准确检测。仿真结果显示,GRU在低SNR下表现优异,且训练速度快,参数少。核心程序包括模型预测、误检率和漏检率计算,并绘制准确率图。
154 65
基于GRU网络的MQAM调制信号检测算法matlab仿真,对比LSTM
|
1月前
|
机器学习/深度学习 监控 算法
面向办公室屏幕监控系统的改进型四叉树屏幕变化检测算法研究
本文提出一种改进型四叉树数据结构模型,用于优化办公室屏幕监控系统。通过动态阈值调节、变化优先级索引及增量更新策略,显著降低计算复杂度并提升实时响应能力。实验表明,该算法在典型企业环境中将屏幕变化检测效率提升40%以上,同时减少资源消耗。其应用场景涵盖安全审计、工作效能分析及远程协作优化等,未来可结合深度学习实现更智能化的功能。
44 0
|
4月前
|
机器学习/深度学习 存储 算法
基于MobileNet深度学习网络的活体人脸识别检测算法matlab仿真
本内容主要介绍一种基于MobileNet深度学习网络的活体人脸识别检测技术及MQAM调制类型识别方法。完整程序运行效果无水印,需使用Matlab2022a版本。核心代码包含详细中文注释与操作视频。理论概述中提到,传统人脸识别易受非活体攻击影响,而MobileNet通过轻量化的深度可分离卷积结构,在保证准确性的同时提升检测效率。活体人脸与非活体在纹理和光照上存在显著差异,MobileNet可有效提取人脸高级特征,为无线通信领域提供先进的调制类型识别方案。
|
4月前
|
机器学习/深度学习 数据采集 算法
基于PSO粒子群优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目展示了基于PSO优化的CNN-LSTM-SAM网络时间序列预测算法。使用Matlab2022a开发,完整代码含中文注释及操作视频。算法结合卷积层提取局部特征、LSTM处理长期依赖、自注意力机制捕捉全局特征,通过粒子群优化提升预测精度。适用于金融市场、气象预报等领域,提供高效准确的预测结果。
|
5月前
|
机器学习/深度学习 数据采集 算法
基于WOA鲸鱼优化的CNN-GRU-SAM网络时间序列回归预测算法matlab仿真
本项目基于MATLAB 2022a实现时间序列预测,采用CNN-GRU-SAM网络结构,结合鲸鱼优化算法(WOA)优化网络参数。核心代码含操作视频,运行效果无水印。算法通过卷积层提取局部特征,GRU层处理长期依赖,自注意力机制捕捉全局特征,全连接层整合输出。数据预处理后,使用WOA迭代优化,最终输出最优预测结果。
|
5月前
|
机器学习/深度学习 数据采集 算法
基于GA遗传优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本项目使用MATLAB 2022a实现时间序列预测算法,完整程序无水印。核心代码包含详细中文注释和操作视频。算法基于CNN-LSTM-SAM网络,融合卷积层、LSTM层与自注意力机制,适用于金融市场、气象预报等领域。通过数据归一化、种群初始化、适应度计算及参数优化等步骤,有效处理非线性时间序列,输出精准预测结果。
|
5月前
|
机器学习/深度学习 算法 安全
基于深度学习的路面裂缝检测算法matlab仿真
本项目基于YOLOv2算法实现高效的路面裂缝检测,使用Matlab 2022a开发。完整程序运行效果无水印,核心代码配有详细中文注释及操作视频。通过深度学习技术,将目标检测转化为回归问题,直接预测裂缝位置和类别,大幅提升检测效率与准确性。适用于实时检测任务,确保道路安全维护。 简介涵盖了算法理论、数据集准备、网络训练及检测过程,采用Darknet-19卷积神经网络结构,结合随机梯度下降算法进行训练。
|
4月前
|
机器学习/深度学习 数据采集 算法
基于WOA鲸鱼优化的CNN-LSTM-SAM网络时间序列回归预测算法matlab仿真
本内容介绍了一种基于CNN-LSTM-SAM网络与鲸鱼优化算法(WOA)的时间序列预测方法。算法运行于Matlab2022a,完整程序无水印并附带中文注释及操作视频。核心流程包括数据归一化、种群初始化、适应度计算及参数更新,最终输出最优网络参数完成预测。CNN层提取局部特征,LSTM层捕捉长期依赖关系,自注意力机制聚焦全局特性,全连接层整合特征输出结果,适用于复杂非线性时间序列预测任务。

热门文章

最新文章