目标检测算法——R-FCN

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

paper:R-FCN: Object Detection via Region-based Fully Convolutional Networks


提出的动机:


  • 从平移不变与可变性方面的理解:作者分析了图片分类任务中需要CNN平移不变性 与 对象检测任务中需要的平移可变性的困境;作者也认为越深的网络,对于位置预测越不敏感(因为CNN的平移不变性导致的),而ROI的设计是region-specific操作,破坏了这种平移不变性,使其对位置预测有效。本文提出一个位置敏感得分map技术,将类别和位置信息融入到ROI Pooling中。
  • 从计算消耗方面的理解:原始的Faster RCNN在RPN后附加一个网络用于ROI-wise(region-wise)的对象检测,这个附加的网络Batch大小是ROI数目,这样由于没有共享每个ROI的计算,从而导致的Faster RCNN的速度低,因而R-FCN意在解决这个问题。
  • 主要思想:受启发于FCN,进行像素级的识别,利用群众投票的方式,对ROI Pooling后的fmaps直接获取类别和位置,相当于使得类别和位置信息的获取是cost-free,且也相当于共享了两个任务的conv层。


1. Introduction


Region Proposal Network (RPN)提出了候选RoI,然后将其应用于评分图上。所有可学习的权重层都是卷积的,并在整个图像上计算;每个RoI的计算成本可以忽略不计。

image.png

网络由backbone(ResNet-101的前100层),RPN(生成 RoIs),backbone后的跟的最后一层卷积层,这一层有两个分支,分别对应的是分类分支和回归分支,这两个分支的卷积层产生若干位置敏感的score maps,然后RPN得到的RoI在这些maps上通过位置敏感的一个RoI pooling做池化操作,得到RoI-wise的结果。上图只显示了一个分支,没有体现完善。


backbone后的卷积层(分类分支为例)对每个category输出k×k个 position-sensitive score maps,对于C个种类+背景就会有k×k(C+1)channels。其中,对于每个种类,其k×k个maps中,每个maps分别编码该类物体位置上的一部分,例如如果人用的k×k是3×3=9,则9个maps中每个maps分别对应人的左上,中上(头),右上,,,右下(右脚)等。


R-FCN 最后用位置敏感 RoI 池化层,给每个 RoI 1个分数。选择性池化图解:看上图的橙色响应图像 (top−left),抠出橙色方块 RoI,池化橙色方块 RoI 得到橙色小方块 (分数);其它颜色的响应图像同理。对所有颜色的小方块投票 (或池化) 得到1类的响应结果。

image.png

R-FCN 在与 RPN 共享的卷积层后多加1个卷积层。所以,R-FCN 与 RPN 一样,输入为整幅图像。但 R-FCN 最后1个卷积层的输出从整幅图像的卷积响应图像中分割出感兴趣区域的卷积响应图像。


2. Visualization


RoI 分类的可视化。RPN 刚好产生包含 person 类的 RoI。经过 R-FCN 的最后1个卷积层后产生9个相对空间位置的分数图,对 person 类的每个相对空间位置通道内的 RoI 桶平均池化得到3×33×3的池化分数,投票后送入分类器判断属于 person 类。当分类正确时,该类通道的位置敏感分数图 (中间) 的大多数橙色实线网格内的响应在整个 RoI 位置范围内最强。


当RoI与ground truth贴合时候的sore maps:

image.png

当RoI与ground truth不重合时的score maps:

image.png

这些专门的特征图预计会在物体的特定相对位置被强烈激活。例如,“顶部中心敏感”分数图在物体的顶部中心位置附近显示出高分。如果候选框与真实对象精确重叠,那么RoI中的大多数kxk bins都会被强烈激活,并且它们的投票会导致高分。相反,如果候选框没有正确地与真实对象重叠,则RoI中的一些kxk bins不会被激活,投票分数较低。


参考资料:

https://blog.csdn.net/mingshili/article/details/80549871

https://blog.csdn.net/yanghao201607030101/article/details/109998647

https://blog.csdn.net/weixin_42905141/article/details/95307597


目录
相关文章
|
1月前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于MSER和HOG特征提取的SVM交通标志检测和识别算法matlab仿真
### 算法简介 1. **算法运行效果图预览**:展示算法效果,完整程序运行后无水印。 2. **算法运行软件版本**:Matlab 2017b。 3. **部分核心程序**:完整版代码包含中文注释及操作步骤视频。 4. **算法理论概述**: - **MSER**:用于检测显著区域,提取图像中稳定区域,适用于光照变化下的交通标志检测。 - **HOG特征提取**:通过计算图像小区域的梯度直方图捕捉局部纹理信息,用于物体检测。 - **SVM**:寻找最大化间隔的超平面以分类样本。 整个算法流程图见下图。
|
20天前
|
监控 算法 数据安全/隐私保护
基于三帧差算法的运动目标检测系统FPGA实现,包含testbench和MATLAB辅助验证程序
本项目展示了基于FPGA与MATLAB实现的三帧差算法运动目标检测。使用Vivado 2019.2和MATLAB 2022a开发环境,通过对比连续三帧图像的像素值变化,有效识别运动区域。项目包括完整无水印的运行效果预览、详细中文注释的代码及操作步骤视频,适合学习和研究。
|
25天前
|
JSON 算法 数据可视化
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
这篇文章是关于如何通过算法接口返回的目标检测结果来计算性能指标的笔记。它涵盖了任务描述、指标分析(包括TP、FP、FN、TN、精准率和召回率),接口处理,数据集处理,以及如何使用实用工具进行文件操作和数据可视化。文章还提供了一些Python代码示例,用于处理图像文件、转换数据格式以及计算目标检测的性能指标。
46 0
测试专项笔记(一): 通过算法能力接口返回的检测结果完成相关指标的计算(目标检测)
|
6天前
|
机器学习/深度学习 算法 数据安全/隐私保护
基于GA-PSO-SVM算法的混沌背景下微弱信号检测matlab仿真
本项目基于MATLAB 2022a,展示了SVM、PSO、GA-PSO-SVM在混沌背景下微弱信号检测中的性能对比。核心程序包含详细中文注释和操作步骤视频。GA-PSO-SVM算法通过遗传算法和粒子群优化算法优化SVM参数,提高信号检测的准确性和鲁棒性,尤其适用于低信噪比环境。
|
1月前
|
算法 安全
分别使用OVP-UVP和OFP-UFP算法以及AFD检测算法实现反孤岛检测simulink建模与仿真
本课题通过Simulink建模与仿真,实现OVP-UVP、OFP-UFP算法及AFD检测算法的反孤岛检测。OVP-UVP基于电压幅值变化,OFP-UFP基于频率变化,而AFD则通过注入频率偏移信号来检测孤岛效应,确保电力系统安全稳定运行。系统使用MATLAB 2013b进行建模与仿真验证。
|
11天前
|
存储 JSON 算法
TDengine 检测数据最佳压缩算法工具,助你一键找出最优压缩方案
在使用 TDengine 存储时序数据时,压缩数据以节省磁盘空间是至关重要的。TDengine 支持用户根据自身数据特性灵活指定压缩算法,从而实现更高效的存储。然而,如何选择最合适的压缩算法,才能最大限度地降低存储开销?为了解决这一问题,我们特别推出了一个实用工具,帮助用户快速判断并选择最适合其数据特征的压缩算法。
22 0
|
25天前
|
算法 计算机视觉 Python
圆形检测算法-基于颜色和形状(opencv)
该代码实现了一个圆检测算法,用于识别视频中的红色、白色和蓝色圆形。通过将图像从RGB转换为HSV颜色空间,并设置对应颜色的阈值范围,提取出目标颜色的区域。接着对这些区域进行轮廓提取和面积筛选,使用霍夫圆变换检测圆形,并在原图上绘制检测结果。
62 0
|
3月前
|
机器学习/深度学习 监控 算法
目标检测算法技术
8月更文挑战第11天
|
3月前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第5天
|
3月前
|
机器学习/深度学习 监控 算法
目标检测算法
8月更文挑战第8天