🤵 Author :Horizon Max
✨ 编程技巧篇:各种操作小结
🎇 机器视觉篇:会变魔术 OpenCV
💥 深度学习篇:简单入门 PyTorch
🏆 神经网络篇:经典网络模型
💻 算法篇:再忙也别忘了 LeetCode
🚀 Real-Time Object Detection with RPN
目前先进的目标检测网络如 SPP-Net
和 Fast R-CNN
都采用区域建议算法 (region proposal algorithms) 假设目标位置 ;
这些网络都缩短了检测网络的运行时间,但 区域建议计算
依然是目标检测任务的 瓶颈 问题 ;
基于此,提出了一个 区域建议网络( Region Proposal Network,RPN ) ,实现与检测网络 共享
输入图像的 卷积特征
;
RPN
是一个完全的卷积网络,可以同时预测每个位置的 目标边框
(object bounds) 和 目标得分
(objectness scores) ;
RPN 经过端到端(end-to-end) 的训练,可以生成高质量的 区域建议
(region proposals) ;
在 ILSVRC 和 COCO 2015 比赛中,Faster R-CNN 和 RPN 是夺得 第一名 的基础 ;
🔗 论文地址:Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks
#pic_center
🚀 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)的深度全卷积网络 ;
- 使用建议框的 Faster R-CNN 检测器 ;
RPN 模块使用了 注意力机制
,实现其高效的检测 ;
🚩 Region Proposal Network
(a)构建了图像金字塔和特征图,并在所有尺度下运行分类器 ;
(b)在特征图上运行具有多尺寸(multiple scales/sizes)的过滤器金字塔 ;
(c)在回归函数中使用参考框(reference boxes)的金字塔 ;
RPN 的设计用于有效的预测具有广泛尺度和横纵比的区域建议框,避免了枚举多尺寸或宽高比的图像或过滤器 ;
RPN 将任意大小的图像作为输入,并输出一组 矩形目标建议框
(rectangular object proposals),每一个建议框都有一个 对象得分
(objectness score);
为生成区域 建议框
,在最后一个共享卷积层输出的卷积特征图(conv feature map)滑动一个小网络 (如上图所示) ;
这个小网络以输入卷积特征图的 n×n 空间窗口作为输入,每次滑动窗口(sliding window)都映射到一个 低维特征
;
然后将低维特征输入到两个同级的全连接层中 —— 回归层
(reg layer) 和 分类层
(cls layer) ;
RPN结构:一个n×n卷积层(滑动窗口) 和 两个1×1卷积层(reg 和 cla) 组成 ;
在每个滑动窗口的位置,同时预测多个区域建议框(作者取名为 Anchors),假设每个位置的最大预测数量为 k,则有:
reg layer
有 4k 个输出:每个建议框有4个参数 (x,y,h,w) ,这里的 x和y 对应着滑动窗口的中心 ;cla layer
有 2k个输出:每个建议框有2个得分 (目标概率 和 非目标概率) ;
这里有有一个重要的特性:Anchors 和 计算相对于Anchors的建议框 都具有 平移不变性
(translation invariant) ;
并利用多尺寸(Multi-Scale) Anchors 解决尺寸问题 ;
学习一组 bounding-box regressors
,每个回归器负责一个尺寸和一个横纵比 ;
🚩 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 复现
输出结果:
文章出处登录后可见!