Author :Horizon Max
✨ 编程技巧篇:各种操作小结
机器视觉篇:会变魔术 OpenCV
深度学习篇:简单入门 PyTorch
神经网络篇:经典网络模型
算法篇:再忙也别忘了 LeetCode
目前先进的目标检测网络如 SPP-Net
和 Fast R-CNN
都采用区域建议算法 (region proposal algorithms) 假设目标位置 ;
这些网络都缩短了检测网络的运行时间,但 区域建议计算
依然是目标检测任务的 瓶颈 问题 ;
基于此,提出了一个 区域建议网络( Region Proposal Network,RPN ) ,实现与检测网络 共享
输入图像的 卷积特征
;
通过 共享卷积特征
,将 RPN
和 Fast R-CNN
合并成一个单一的网络,并为神经网络加入 “注意力” 机制 ;
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
参考链接:Faster R-CNN: Down the rabbit hole of modern object detection
基于 选择性搜索
(Selective Search) 的区域建议
(region proposal) 算法成功的推动了目标检测的最新进展 ;
但与 高效的检测网络
(efficient detection networks) 相比,选择性搜索 仍要慢一个数量级,成为目标检测实时计算的 瓶颈 问题 ;
Faster R-CNN 利用提出的 深度卷积神经网络 计算建议框
(proposals),实现 区域建议网络 与 目标检测网络 共享卷积层
;
在测试阶段共享卷积,从而使得计算建议框的成本很小,从而解决了选择性搜索速度慢的缺陷 ;
Faster R-CNN 有两个模块组成:
RPN 模块使用了 注意力机制
,实现其高效的检测 ;
Faster R-CNN 算法流程:
特征图
;候选框
,并将生成的候选框投影到特征图上得到对应的 特征矩阵
;特征图
;(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所对应的建议框 都具有 平移不变性
(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) 负责一个尺寸和一个横纵比 ;
前面所说的 RPN 是一个训练用来 生成区域建议框
的网络,对于检测网络仍使用 Fast R-CNN ;
有三种方法用于共享特征训练网络:
Faster R-CNN 采用的是交替训练,先训练 RPN
然后利用生成的 建议框
训练 Fast R-CNN
,再用 Fast R-CNN 调整后网络 初始化RPN ;
# Here is the code :
# 后 续 更 新 ~
输出结果: