IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 人工智能 -> 深入理解Detectron 2—区域建议网络(Region Proposal Network) -> 正文阅读

[人工智能]深入理解Detectron 2—区域建议网络(Region Proposal Network)

本文翻译自博客Digging into Detectron 2 — part 4 | by Hiroto Honda | Medium

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

嗨,我是计算机视觉研究员 Hiroto Honda1[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 中,?RPN3 中的所有计算都 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)”的参考框。

生成锚框

基础网络架构和代码库结构一节中,锚框被定义成如下形式:

MODEL.ANCHOR_GENERATOR.SIZES = [[32], [64], [128], [256], [512]]
MODEL.ANCHOR_GENERATOR.ASPECT_RATIOS = [[0.5, 1.0, 2.0]]

这是什么意思?
ANCHOR_GENERATOR.SIZES 列表的五个元素对应五个级别的特征图(P2 到 P6)。例如 P2 (stride=4) 有一个大小为 32 的锚点。
纵横比定义了锚的形状。对于上面的示例,共有三种形状:0.5、1.0 和 2.0。让我们看看实际的锚点(图 5)。 P2特征图上的三个anchor的纵横比为1:2、1:1和2:1,面积与32×32相同。在 P3 级锚点是 P2 级锚点的两倍。

Figure 5. Cell anchors for P2 and P3 feature maps. (from left: 1:2, 1:1 and 2:1 aspect ratios)

这些锚点在 Detectron 2 中称为“单元锚点”。(锚点生成的代码在这里。)因此,我们获得了 5 个特征图级别的 3×5=15 个单元锚点。

# cell anchors for P2, P3, P4, P5 and P6. (x1, y1, x2, y2)
tensor([[-22.6274, -11.3137,  22.6274,  11.3137],
        [-16.0000, -16.0000,  16.0000,  16.0000],
        [-11.3137, -22.6274,  11.3137,  22.6274]])
tensor([[-45.2548, -22.6274,  45.2548,  22.6274],
        [-32.0000, -32.0000,  32.0000,  32.0000],
        [-22.6274, -45.2548,  22.6274,  45.2548]])
tensor([[-90.5097, -45.2548,  90.5097,  45.2548],
        [-64.0000, -64.0000,  64.0000,  64.0000],
        [-45.2548, -90.5097,  45.2548,  90.5097]])
tensor([[-181.0193,  -90.5097,  181.0193,   90.5097],
        [-128.0000, -128.0000,  128.0000,  128.0000],
        [ -90.5097, -181.0193,   90.5097,  181.0193]])
tensor([[-362.0387, -181.0193,  362.0387,  181.0193],
        [-256.0000, -256.0000,  256.0000,  256.0000],
        [-181.0193, -362.0387,  181.0193,  362.0387]])

未完待续。。。。

  人工智能 最新文章
2022吴恩达机器学习课程——第二课(神经网
第十五章 规则学习
FixMatch: Simplifying Semi-Supervised Le
数据挖掘Java——Kmeans算法的实现
大脑皮层的分割方法
【翻译】GPT-3是如何工作的
论文笔记:TEACHTEXT: CrossModal Generaliz
python从零学(六)
详解Python 3.x 导入(import)
【答读者问27】backtrader不支持最新版本的
上一篇文章      下一篇文章      查看所有文章
加:2021-07-26 12:05:46  更:2021-07-26 12:07:23 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年3日历 -2024/3/29 14:30:07-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码