[ 目标检测 ] 经典网络模型3——Faster R-CNN 详解与复现


🤵 AuthorHorizon John

编程技巧篇各种操作小结

🎇 机器视觉篇会变魔术 OpenCV

💥 深度学习篇简单入门 PyTorch

🏆 神经网络篇经典网络模型

💻 算法篇再忙也别忘了 LeetCode


🚀 Real-Time Object Detection with RPN

目前先进的目标检测网络如 SPP-NetFast R-CNN 都采用区域建议算法 (region proposal algorithms) 假设目标位置 ;

这些网络都缩短了检测网络的运行时间,但 区域建议计算 依然是目标检测任务的 瓶颈 问题 ;

基于此,提出了一个 区域建议网络( Region Proposal Network,RPN ) ,实现与检测网络 共享 输入图像的 卷积特征

通过 共享卷积特征,将 RPNFast R-CNN 合并成一个单一的网络,并为神经网络加入 “注意力” 机制 ;

RPN 是一个全卷积网络,可以同时预测每个位置的 目标边框(object bounds) 和 目标得分(objectness scores) ;

RPN 通过端到端(end-to-end) 的训练,以生成高质量的 区域建议(region proposals) ;

ILSVRCCOCO 2015 比赛中,Faster R-CNNRPN 是夺得 第一名 的基础 ;


🔗 论文地址:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks

🖼 参考链接:Faster R-CNN: Down the rabbit hole of modern object detection


Selected examples of object detection results

在这里插入图片描述


🚀 Faster R-CNN 详解

🎨 Faster R-CNN 提出背景

基于 选择性搜索(Selective Search) 的区域建议(region proposal) 算法成功的推动了目标检测的最新进展 ;

但与 高效的检测网络(efficient detection networks) 相比,选择性搜索 仍要慢一个数量级,成为目标检测实时计算的 瓶颈 问题 ;


🚩 核心思想

Faster R-CNN 利用提出的 深度卷积神经网络 计算建议框 (proposals),实现 区域建议网络 与 目标检测网络 共享卷积层

在测试阶段共享卷积,从而使得计算建议框的成本很小,从而解决了选择性搜索速度慢的缺陷 ;


🎨 Faster R-CNN 网络结构

Faster R-CNN 有两个模块组成:

  • 生成 建议框(proposes regions)的 深度全卷积网络(RPN);
  • 使用 建议框(proposes regions)的 检测器(Faster R-CNN);

RPN 模块使用了 注意力机制,实现其高效的检测 ;

在这里插入图片描述

Faster R-CNN 算法流程:

  • 利用 CNN网络 提取输入图像特征得到 特征图
  • 使用 RPN网络 生成 候选框 ,并将生成的候选框投影到特征图上得到对应的 特征矩阵
  • 利用 RoI Pooling 层得到 7×7 大小 特征图
  • 目标分类预测 与 边界框回归调整 ;

🚩 Region Proposal Network

(a)构建了图像金字塔和特征图,并在所有尺寸下运行分类器 ;
(b)在特征图上运行具有多尺寸(multiple scales/sizes)的过滤器金字塔 ;
(c)在回归函数中使用参考框(reference boxes)的金字塔 ;

在这里插入图片描述


RPN 的设计用于有效的预测具有广泛尺度和横纵比的区域建议框,避免了枚举多尺寸或宽高比的图像或过滤器 ;

RPN 将任意大小的图像作为输入,并输出一组 矩形目标建议框(rectangular object proposals),每一个建议框都有一个 对象得分(objectness score);

在这里插入图片描述

在最后的卷积特征图(conv feature map)上使用一个滑动窗口(sliding window) 用于生成区域 建议框

滑动窗口 以卷积特征图的 n×n 空间窗口(默认n=3)作为输入,每次滑动都映射得到一个 低维特征

最后将得到的低维特征 输入到 两个同级的全连接层中 —— 分类层(cls layer) 和 回归层(reg layer) ;

注 :

每个滑动窗口可以通过多个 Anchor boxes 生成多个区域建议框,假设每个位置的 Anchor 数量为 k,则 :

  • anchors 对于 W×H 大小的卷积特征图,可以得到 W×H×k 个 Anchor ;
  • reg layer 有 4k 个输出:每个建议框有4个参数 (x,y,h,w) ,这里的 x和y 对应着滑动窗口的中心 ;
  • cls layer 有 2k个输出:每个建议框有2个得分 (有目标 和 无目标) ;

在这里插入图片描述

RPN结构:主要由一个3×3卷积层(滑动窗口) 和 两个1×1卷积层(reg 和 cla) 组成(如上图所示);


在这里插入图片描述

以 一个滑动窗口 和 三个Anchor 为例

这里有有一个重要的特性:Anchor 和 Anchor所对应的建议框 都具有 平移不变性(translation invariant) ;

利用多尺寸(Multi-Scale) 的 Anchor 可以解决生成的建议框的尺寸问题,默认情况下,k=9,即一共有 9种 Anchor (经验所得);

  • scales 3 种尺寸 :128 × 128,256 × 256,512 × 512 ;
  • aspect ratios 3 种横纵比 :1:1,1:2,2:1 ;

在这里插入图片描述

利用训练的 bounding-box regressors 实现建议框的尺寸微调,其中每一个回归器(regressor) 负责一个尺寸和一个横纵比 ;


🚩 Sharing Features for RPN and Fast R-CNN

前面所说的 RPN 是一个训练用来 生成区域建议框 的网络,对于检测网络仍使用 Fast R-CNN

有三种方法用于共享特征训练网络:

  • 交替训练(Alternating training);
  • 近似联合训练(Approximate joint training);
  • 非近似联合训练(Non-approximate joint training);

Faster R-CNN 采用的是交替训练,先训练 RPN 然后利用生成的 建议框 训练 Fast R-CNN,再用 Fast R-CNN 调整后网络 初始化RPN ;


🚩 Faster R-CNN 结构框图

在这里插入图片描述

在这里插入图片描述


🚀 Faster R-CNN 复现

# Here is the code :

# 后 续 更 新 ~

输出结果:




  • 4
    点赞
  • 27
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 2
    评论
根据引用\[1\]中提到的信息,Faster-RCNN的网络结构图包括四个关键模块:特征提取网络、生成ROI、ROI分类和ROI回归。特征提取网络用于提取图像中的特征,生成ROI模块用于生成候选区域,ROI分类模块用于对候选区域进行分类,ROI回归模块用于对候选区域进行位置回归。这四个模块通过一个神经网络结合在一起,形成了Faster-RCNN的端到端网络。 另外,根据引用\[2\]中提到的信息,Faster-RCNN的训练过程包括以下几个步骤:首先,使用ImageNet模型初始化一个RPN网络,并进行独立训练;然后,使用上一步RPN网络生成的proposal作为输入,使用ImageNet模型初始化一个Fast-RCNN网络,并进行训练;接下来,使用第二步的Fast-RCNN网络参数初始化一个新的RPN网络,并只更新RPN特有的网络层进行重新训练;最后,固定共享的网络层,将Fast-RCNN特有的网络层加入进来,形成一个统一的网络,并继续训练,对Fast-RCNN特有的网络层进行fine-tune。通过这些步骤,Faster-RCNN实网络内部预测proposal并实检测的功能。 综上所述,Faster-RCNN的网络结构图包括特征提取网络、生成ROI、ROI分类和ROI回归四个关键模块,并通过一系列训练步骤进行优化和调整。 #### 引用[.reference_title] - *1* *2* [Faster-rcnn详解](https://blog.csdn.net/WZZ18191171661/article/details/79439212)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [Faster RCNN 网络分析及维度分析](https://blog.csdn.net/qq_23981335/article/details/121017168)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Horizon John

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值