深度学习第28讲:目标检测算法经典论文研读之Faster R-CNN

     在上一期的经典论文研读中,笔者和大家介绍了 Fast R-CNN,提出了 RoI 层来解决之前的空间金字塔池化网络卷积层权重不能更新的问题,也使得检测速度更加快速了一些。但总体上而言,Fast R-CNN 的候选框生成策略仍然沿袭了之前的 R-CNN 和 SPP-Net 的选择性搜索(Selective Search)的方法,这使得网络检测的整体性能依然不是很高。

     基于深度学习的目标检测算法发展到 2016 年,以选择性搜索为代表的一类的候选区域生成方法早已不合时宜,以至于笔者很猜想之前的各位大佬像是挤牙膏一样的每次挤一点,直到最后牙膏挤完了才决定解决这个问题。于是任少卿、何恺明、RBG 和孙剑等一干大佬联手提出了 Faster R-CNN 和 RPN 网络,一举将之前遗留下来的两阶段目标检测算法的候选框生成问题解决,使得两阶段的目标检测算法速度变得更快。

640?wx_fmt=png

     Faster R-CNN 的关键贡献就在于提出了 RPN (Region Proposal Net 区域候选网络),利用输入图形进行整体卷积形成的特征图再次进行卷积来生成候选区域,且 RPN 的卷积层与检测网络 Fast R-CNN 共享,这使得 Faster R-CNN 的检测速度大为提升。所以 Fast R-CNN 的网络结构可以归纳为 RPN + Fast R-CNN 的架构:

640?wx_fmt=png

Faster R-CNN = RPN + Fast R-CNN

640?wx_fmt=png

RPN 网络

     简单来说,RPN 就像是 Fast R-CNN 的注意力机制,它告诉 Fast R-CNN 应该往哪看,应该确定图像中哪些物体为目标物体。

640?wx_fmt=png

     RPN 的示意图如下:

640?wx_fmt=png

      如上图左边 RPN 结构所示:RPN 对于整体上输入图像产生的特征图采用一个滑动窗口(sliding window)进行扫描,并通过每个滑窗位置产生两个连接的卷积层(全连接层),将特征图映射到一个更低维的特征向量,第一个卷积层将特征图每个滑窗位置编码成为一个特征向量,第二个卷积层则对应了每个滑窗位置输出 k 个区域得分和 k 个回归后的区域建议。第二个卷积层可以理解为两个并行的卷积层,一个是产生 k 个区域得分的分类层(cls layer),另一个则是产生 k 个回归区域的坐标位置层(reg layer)。

     于此同时,如上图右边所示,在滑窗时为每个滑动窗口生成了 k 个 anchors,翻译成锚定候选框,即参考候选框。这就意味着每个滑窗位置会同时预测 k 个候选区域,那么对于一个 W x H 的特征图而言,总共生成的候选框有 W x H x k 个。anchors 的作用相当于一种模板,anchors 生成之后根据图像大小计算滑窗中心点对应的原图中的区域中心点,通过中心点以及滑窗的大小即可得到滑窗的位置与原图位置的映射关系,然后根据原图和标签的 IOU 划定正负样本,让 RPN 网络学习该 anchor 是否有目标物体即可。

Faster R-CNN 的训练

     Faster R-CNN 的训练和之前的网络一样,也是需要借助经典网络的预训练结果来完成初始化和微调。具体过程包括 RPN 网络的预训练、Fast R-CNN 网络预训练、RPN 网络的微调和 Fast R-CNN 网络的微调和 RPN 网络与 Fast R-CNN 网络的联合训练等五个过程。

     其中 RPN 网络和 Fast R-CNN 网络的预训练均在 ZF-Net 或者 VGG16 上完成初始化,而 RPN 网络的微调训练也是对 ZF-Net 或者 VGG16 完成。对于ZF网络微调所有层,对VGG-16 网络仅微调 conv3_1 及 conv3_1 以上的层,以便节省内存。多任务损失函数形式如下:

640?wx_fmt=png

     在四种预训练和微调训练完成之后,便是对  RPN 网络与 Fast R-CNN 网络进行联合训练,联合训练的目的就是为了让两个网络的卷积层做到共享,降低计算量的同时加快了检测速度。以下是 Faster R-CNN 在 PASCAL VOC 2007 测试集上的效果。主要使用了 ZF-Net 作为预训练网络。

640?wx_fmt=png

     论文最后作者们还做了多组实验在不同的检测数据集上来验证 Faster R-CNN 的效果,笔者这里不再细述,感兴趣的朋友可以找来原文认真研读。

640?wx_fmt=png

论文原文地址:

https://arxiv.org/abs/1506.01497

Faster R-CNN 源码:

https://github.com/shaoqingren/faster_rcnn

参考资料:

Ren S, He K, Girshick R, et al. Faster R-CNN: Towards Real-Time Object Detection with Region Proposal Networks[J]. IEEE Trans Pattern Anal Mach Intell, 2015, 39(6):1137-1149.

https://blog.csdn.net/wopawn/article/details/52223282

往期精彩:


一个数据科学从业者的学习历程

640?

640?wx_fmt=jpeg

长按二维码.关注数据科学家养成记

640?wx_fmt=jpeg

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值