欢迎访问 生活随笔!

凯发k8官方网

当前位置: 凯发k8官方网 > 人工智能 > 目标检测 >内容正文

目标检测

深度学习和目标检测系列教程 6-凯发k8官方网

发布时间:2024/10/8 目标检测 0 豆豆
凯发k8官方网 收集整理的这篇文章主要介绍了 深度学习和目标检测系列教程 6-300:目标检测fast-rcnn架构 小编觉得挺不错的,现在分享给大家,帮大家做个参考.

@author:runsen

使用 r-cnn 进行对象检测存在一些缺点。

  • r-cnn 消耗了大量的时间、存储和计算能力。
  • r-cnn 有一个复杂的多阶段训练管道(3 阶段——对数损失、svm 和 bbox 回归器的 l2 损失)

上一篇论文的同一作者(r-cnn)解决了 r-cnn 的一些缺点,构建了一个更快的对象检测算法,被称为 fast r-cnn。

fast r-cnn模型不是将区域候选框提供给 cnn,而是将输入图像提供给 cnn 以生成 特征向量。

将它们聚合到整个图像的一个 cnn 前向传递中,并且区域提议共享此特征矩阵。然后将相同的特征矩阵用于学习对象分类器和边界框回归器。总之,计算共享加速了 r-cnn。

在 fast r-cnn 中,图像只被送入底层 cnn 一次,而选择性搜索则像往常一样运行。这些由选择性搜索生成的区域提议然后被投影到由 cnn 生成的特征图上。这个过程称为roi projection(感兴趣区域)。

roi pooling

roi pooling一种最大池化,将任意大小的图像投影区域h x w中的特征转换为一个小的h x w固定窗口。

让我们考虑一个小例子来看看roi pooling
是如何工作的。我们将在单个 8×8 特征图、一个感兴趣区域和 2×2 的输出大小上执行感兴趣区域池化。输入特征图如下所示:


假设我们还有一个区域候选框(左上角,右下角坐标):(0, 3), (7, 8)。在图片中它看起来像这样:

通常情况下,每个图片都会有多个特征图和多个候选框,在示例中认为输出大小为 2×2,因此将其分成 (2×2) 个部分。

请注意,感兴趣区域的大小不必完全被池化部分的数量整除(在这种情况下,roi 是 7×5,有 2×2 个池化部分)。
每个部分的最大值是:

这就是区域候选框roi pooling的输出。

上面实例代码:https://github.com/deepsense-ai/roi-pooling

工作原理

fast r-cnn 的工作原理总结如下:许多步骤与 r-cnn 相同:

  • 首先,在图像分类任务上预训练卷积神经网络。
  • 通过选择性搜索提出区域(每张图像约 2k 个候选)。
  • 改变预训练的 cnn:
    • 用 roi 池化层替换预训练 cnn 的最后一个最大池化层。roi 池化层输出区域提议的固定长度特征向量。共享 cnn 计算很有意义,因为相同图像的许多区域提议高度重叠。
    • 用全连接层和 k 1 类上的 softmax 替换最后一个全连接层和最后一个 softmax 层(k 个类别)。
  • 最后,模型分支为两个输出层:
    • k 1 个类别的 softmax 估计器,输出每个 roi 的离散概率分布。
    • 一个边界框回归模型,它预测相对于 k 个类别中每个类别的原始 roi 的偏移量。

“fast r-cnn”之所以比 r-cnn 快,是因为不必每次都向卷积神经网络输入 2000 个区域候选框。相反,每个图像只进行一次卷积操作,并从中生成一个特征图。

附上fast-rcnn 相关github代码:

  • https://github.com/rbgirshick/fast-rcnn

总结

以上是凯发k8官方网为你收集整理的深度学习和目标检测系列教程 6-300:目标检测fast-rcnn架构的全部内容,希望文章能够帮你解决所遇到的问题。

如果觉得凯发k8官方网网站内容还不错,欢迎将凯发k8官方网推荐给好友。

  • 上一篇:
  • 下一篇:
网站地图