神经网络的认识(十)Faster R-CNN

Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks在 Region Proposal +CNN 分类的这种目标检测框架中, Region Proposal 质量好坏直接影响到目标检测任务的精度。如果找到一种方法只提取几百个或者更少的高质量的假选窗口,而且召回率很高,这不但能加快目标检测速度,还能提高目标检测的性能(假阳例少)。RPN(Region Proposal Networks)网络应运而生。

在这里插入图片描述

1) RPN 的核心思想是使用卷积神经网络直接产生 Region Proposal,使用的方法本质上就是滑动窗口。 RPN 的设计比较巧妙, RPN 只需在最后的卷积层上滑动一遍,因为 Anchor 机制和边框回归可以得到多尺度多长宽比的 Region Proposal。
2) Faster R-CNN 架构对于提取候选框最常用的 SelectiveSearch 方法, 提取一副图像大概需要 2s 的时间, 改进的 EdgeBoxes 算法将效率提高到了 0.2s, 但是这还不够。候选框提取不一定要在原图上做,特征图上同样可以,低分辨率特征图意味着更少的计算量,基于这个假设, MSRA 的任少卿等人提出 RPN(RegionProposal Network),完美解决了这个问题,我们先来看一下网络拓扑。
在这里插入图片描述
通过添加额外的 RPN 分支网络,将候选框提取合并到深度网络中,这正是Faster-RCNN 里程碑式的贡献。RPN 网络的特点在于通过滑动窗口的方式实现候选框的提取,每个滑动窗口位置生成 9 个候选窗口(不同尺度、不同宽高),提取对应 9 个候选窗口(anchor)的特征,用于目标分类和边框回归,与 FastRCNN 类似。目标分类只需要区分候选框内特征为前景或者背景。
边框回归确定更精确的目标位置,基本网络结构如下图所示:
在这里插入图片描述
训练过程中,涉及到的候选框选取,选取依据:

  • 丢弃跨越边界的 anchor;
  • 与样本重叠区域大于 0.7 的 anchor 标记为前景,重叠区域小于 0.3 的标定为背景;

对于每一个位置,通过两个全连接层(目标分类+边框回归)对每个候选框(anchor)进行判断,并且结合概率值进行舍弃(仅保留约 300 个 anchor),没有显式地提取任何候选窗口,完全使用网络自身完成判断和修正。
从模型训练的角度来看,通过使用共享特征交替训练的方式,达到接近实时的性能,交替训练方式描述为:

  • 根据现有网络初始化权值 w,训练 RPN;
  • 用 RPN 提取训练集上的候选区域,用候选区域训练 FastRCNN,更新权值 w;
  • 重复 1、 2,直到收敛。

因为 Faster-RCNN, 这种基于 CNN 的 real-time 的目标检测方法看到了希望, 在这个方向上有了进一步的研究思路。至此,我们来看一下 RCNN 网络的演进,如下图所示:
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
3) RPN 架构
RPN 采用任意大小的的图像作为输入,并输出一组候选的矩形,每个矩形都有一个对象分数。RPN 被用于训练直接产生候选区域,不需要外部的候选区域。
在这里插入图片描述
在这里插入图片描述
Anchor 是滑动窗口的中心,它与尺度和长宽比相关,默认采 3 种尺度(128,256,512), 3种长宽比(1:1,1:2,2:1),则在每一个滑动位置 k=9 anchors。我们直接看上边的 RPN 网络结构图(使用了 ZF 模型),给定输入图像(假设分辨率为600*1000),经过卷积操作得到最后一层的卷积特征图(大小约为 40*60)。在这个特征图上使用 3*3 的卷积核(滑动窗口)与特征图进行卷积,最后一层卷积层共有 256 个feature map,那么这个 3*3 的区域卷积后可以获得一个 256 维的特征向量,后边接 clslayer(box-classification layer)和 reg layer(box-regression layer)分别用于分类和边框回归(跟 Fast R-CNN 类似,只不过这里的类别只有目标和背景两个类别)。 3*3 滑窗对应的每个特征区域同时预测输入图像 3 种尺度(128,256,512), 3 种长宽比(1:1,1:2,2:1)的 region proposal,这种映射的机制称为 anchor。所以对于这个 40*60的 feature map,总共有约 20000(40*60*9)个 anchor,也就是预测 20000 个 regionproposal。
Faster R-CNN 将一直以来分离的 region proposal 和 CNN 分类融合到了一起,使用端到端的网络进行目标检测,无论在速度上还是精度上都得到了不错的提高。然而 Faster R-CNN还是达不到实时的目标检测,预先获取 Region Proposal,然后在对每个 Proposal 分类计算量还是比较大。比较幸运的是 YOLO 这类目标检测方法的出现让实时性也变的成为可能。这样设计的好处是什么呢?虽然现在也是用的滑动窗口策略,但是:滑动窗口操作是在卷积层特征图上进行的,维度较原始图像降低了 16*16 倍(中间经过了 4 次 2*2 的 pooling 操作);多尺度采用了 9 种 anchor,对应了三种度和三种长宽比,加上后边接了边框回归,所以即便是这 9 种 anchor 外的窗口也能得到一个跟目标比较接近的 regionproposal。

4)总结
在这里插入图片描述

发布了163 篇原创文章 · 获赞 117 · 访问量 21万+

猜你喜欢

转载自blog.csdn.net/u010095372/article/details/91344687