ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

深入理解Detectron 2—区域建议网络(Region Proposal Network)

2021-07-25 23:01:43  阅读:819  来源: 互联网

标签:objectness Network 特征 Region Detectron shape 256 anchor RPN


 Figure 1. Inference result of Faster (Base) R-CNN with Feature Pyramid Network.

嗨,我是计算机视觉研究员 Hiroto Honda¹[homepage] [twitter] 在这篇文章中,我想分享我对 Detectron 2 的了解——repo 结构、构建和训练网络、处理数据集等等。 2019 年,我使用Detectron 2所基于的 maskrcnn-benchmark 在 Open Images 竞赛 (ICCV 2019) 中获得了第 6 名。理解整个框架对我来说并不是一件容易的事,所以我希望这篇文章能帮助那些渴望了解系统细节并开发自己的模型的研究人员和工程师。

之前我们已经介绍了基础网络架构和代码库结构特征金字塔网络 数据加载器和Ground Truth实例 。本篇文章,我们将深入到最复杂但最重要的部分——Region Proposal Network(见图2)

Figure 2. Detailed architecture of Base-RCNN-FPN. Blue labels represent class names.

正如我们在第 2 部分中看到的,特征金字塔网络(Feature Pyramid Network)的输出特征图是:

output[“p2”].shape -> torch.Size([1, 256, 200, 320]) # stride = 4 
output[“p3”].shape -> torch.Size([1, 256, 100, 160]) # stride = 8
output[“p4”].shape -> torch.Size([1, 256, 50, 80]) # stride = 16
output[“p5”].shape -> torch.Size([1, 256, 25, 40]) # stride = 32
output[“p6”].shape -> torch.Size([1, 256, 13, 20]) # stride = 64

这也是 RPN 的输入。每个张量大小代表(批次、通道、高度、宽度)。我们在本博客部分中使用上述特征维度。

同时我们也有从数据集里面加载的真实标签值(参考数据加载器和Ground Truth实例

'gt_boxes': Boxes(tensor([
[100.58, 180.66, 214.78, 283.95],
[180.58, 162.66, 204.78, 180.95]
])),
'gt_classes': tensor([9, 9]) # not used in RPN!

对象检测器(object detectors)如何连接特征图和真实框位置和大小?让我们看看 RPN——RCNN 检测器的核心组件——是如何工作的。

图 3 显示了 RPN 的详细示意图。 RPN 由神经网络(RPN Head)和非神经网络功能组成。在 Detectron 2 中, RPN³ 中的所有计算都 GPU 上执行。

Figure 3. Schematic of Region Proposal Network. Blue and red labels represent class names and chapter titles respectively.

首先,让我们看看RPN head是如何出来来自于FPN的特征图。

1. RPN Head

RPN的神经网络部分很简单。它被称为 RPN Head,由 StandardRPNHHead 类中定义的三个卷积层组成。

1. conv (3×3, 256 -> 256 ch)
2. objectness logits conv (1×1, 256 -> 3 ch)
3. anchor deltas conv (1×1, 256 -> 3×4 ch)

五个级别(P2 到 P6)的特征图被一个接一个依次馈送到网络。 每一层的输出两个特征图,如下

1. pred_objectness_logits (B, 3 ch, Hi, Wi): probability map of object existence
2. pred_anchor_deltas (B, 3×4 ch, Hi, Wi): relative box shape to anchors

其中 B 代表批量(batch)大小,Hi 和 Wi 对应于 P2 到 P6 的特征图大小。

他们实际上是什么样子的?在图 4 中,每个级别的 objectness logits map 覆盖在输入图像上。您会发现在 P2 和 P3 处检测到小物体,在 P4 到 P6 处检测到较大的物体。这正是特征金字塔网络的目标。多尺度网络可以检测单尺度检测器无法发现的微小物体。

Figure 4. Visualization of objectness maps. Sigmoid function has been applied to the objectness_logits map. The objectness maps for 1:1 anchor are resized to the P2 feature map size and overlaid on the original image.

接下来,让我们接着会讲锚(anchor)的生成,这个是将真实框(ground truth box)与上面的两个输出特征图相关联的必要条件。

2.锚框生成Anchor Generation

要将对象图(objectness maps)和锚点增量图(anchor deltas map)关联到真实标签框,这就有必要使用称为“锚点(anchor)”的参考框。

未完待续。。。。

标签:objectness,Network,特征,Region,Detectron,shape,256,anchor,RPN
来源: https://blog.csdn.net/zhuguiqin1/article/details/119088420

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有