Faster R-CNN:详解目标检测的实现过程

本文详细介绍了Faster R-CNN的网络架构,包括区域建议网络(RPN)、感兴趣区域池化和基于区域的卷积神经网络。Faster R-CNN在目标检测中通过预训练的卷积神经网络提取特征,使用RPN生成目标建议,再通过RoI Pooling和分类网络进行目标分类和边框调整。文章还探讨了VGG和ResNet作为基础网络的选择,以及训练、损失函数和后处理步骤。
摘要由CSDN通过智能技术生成

本文详细解释了 Faster R-CNN 的网络架构和工作流,一步步带领读者理解目标检测的工作原理,作者本人也提供了 Luminoth 实现,供大家参考。

 

  • Luminoth 实现:https://github.com/tryolabs/luminoth/tree/master/luminoth/models/fasterrcnn

 

  去年,我们决定深入了解 Faster R-CNN,阅读原始论文以及其中引用到的其他论文,现在我们对其工作方式和实现方法有了清晰的理解。

  我们最终在 Luminoth 中实现了 Faster R-CNN,Luminoth 是基于 TensorFlow 的计算机视觉工具包,易于训练和监控,支持多种不同的模型。到目前为止,Luminoth 已经吸引了很大的关注,我们在 ODSC Europe 和 ODSC West 的论坛中也介绍过这个项目。(ODSC,Open Data Science Conference,专注于开源数据科学的会议)。

  基于开发 Luminoth 的工作和过去的报告,我们认为把所有实现 Faster RCNN 的细节和相关链接整合到一篇博客中是一个不错的点子,这对未来其他对此领域感兴趣的人会很有意义。

背景

  Faster R-CNN 最早在 2015 年的 NIPS 发布。其在发布后经历了几次修改,这在之后博文中会有讨论。Faster-RCNN 是 RCNN 系列论文的第三次迭代,这一系列论文的一作和联合作者是 Ross Girshick。

  这一切始于 2014 年的一篇论文「Rich feature hierarchies for accurate object detection and semantic segmentation」(R-CNN),其使用了称为 Selective Search 的算法用来提取感兴趣候选区域,并用一个标准的卷积神经网络 (CNN) 去分类和调整这些区域。Fast R-CNN 从 R-CNN 演变优化而来,Fast R-CNN 发布于 2015 年上半年,其中一种称为感兴趣区域池化的技术,使得网络可以共享计算结果,从而让模型提速。这一系列算法最终被优化为 Faster R-CNN,这是第一个完全可微分的模型。

框架

  Faster R-CNN 的框架由几个模块部件组成,所以其框架有些复杂。我们将从高层次的概述开始,之后会介绍不同组成部分的具体细节。

  从一张图片开始,我们将会得到:

    • 一个边框列表

    • 每个边框会被分配一个标签

    • 每对标签和边框所对应的概率

完整的 Faster R-CNN 框架

  输入的图片以(长×宽×高)的张量形式表征,之后会被馈送入预训练好的卷积神经网络,在中间层得到特征图。使用该特征图作为特征提取器并用于下一流程。

  上述方法在迁移学习中经常使用,尤其在为小数据集训练分类器时,其通常取用了在另一个较大数据集训练好的权重。我们在下一章节会深入了解这个部分。接着,我们会使用到区域建议网络(Region Proposal Network,RPN)。使用 CNN 计算得到的特征,去寻找到预设好数量的可能包含目标的区域 (边框)。

  使用深度学习进行目标检测最大的困难可能是生成一个长度可变的边框列表。使用深度神经网络建模时,模型最后一部分通常是一个固定尺寸的张量输出(除了循环神经网络)。例如,在图片分类中,输出是 (N,) 形状的张量,N 是类别的数量,其中在第 i 个位置标量含有该图片属于类别 i 的概率。

  RPN 中长度可变列表的问题可以使用锚点解决:使用固定尺寸的参考边框在原始图片上一致地定位。不是直接探测目标在哪,而是把问题分两个方面建模,对每个锚点,我们考虑:

    • 这个锚点包含相关目标吗?

    • 如何调整锚点以更好的拟合到相关目标?

  可能会有点困扰,但是没关系,下面会深入了解。

  在取得一系列的相关目标和其在原始图片上的位置后,目标探测问题就可以相对直观地解决了。使用 CNN 提取到的特征和相关目标的边框,我们在相关目标的特征图上使用感兴趣区域池化 (RoI Pooling),并将与目标相关的特征信息存入一个新的张量。之后的流程与 R-CNN 模型一致,利用这些信息:

    • 对边框内的内容分类(或者舍弃它,并用「背景」标记边框内容)

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值