Mask R-CNN
- 1.摘要
- Mask R-CNN相关介绍与优点
- 2.引言
- 3.文献综述
- 3.1 R-CNN
- 3.2 Instance Segmentation【实例分割】
- 4. Mask R-CNN介绍
- 4.1 Faster R-CNN(相关细节请看相关文章)
- 4.2 Mask R-CNN
- 4.3 Mask Representation【遮罩表示法】
- 4.4 RoIAlign【感兴趣区域对齐】
- 4.4.1 RoIPool【感兴趣区域池化】
- 4.4.2 RoIAlign提出【解决不对齐问题】
- 4.5 Network Architecture【网络体系结构】
- 5. 算法训练过程
- 5.1 train【训练】
- 5.2 Inference【推断】
- 5. 实验
- 5.1 Instance Segmentation【实例分割】
- 5.2 Ablation Experiments【消融实验】
- 5.3 Bounding Box Detection Results【边界框检测结果】
- 5.4 Timing【调速】
- 6. 总结
- 6.1 FPN(特征金字塔网络)
- 6.2 候选框生成
- 6.3 RPN(区域建议网络)
- 6.4 ROI(感兴趣区域)
- 6.5 DetectionTargetLayer【检测目标层】
- 6.6 Network Heads【网络头部】
- 6.7 开始建模
- 7.阅读总结
1.摘要
Mask R-CNN相关介绍与优点
- 一个概念上简单、灵活和通用的
对象实例分割框架
。 - 有效地检测图像中的对象,同时为每个实例生成高质量的分割掩码。
- 通过添加一个用于预测对象掩码的分支,与现有的边界框识别分支
并行
,扩展了Faster R-CNN。 - 易于实现和训练,这有助于广泛的灵活架构设计。仅为
Faster R-CNN
增加了一小部分开销,以每秒5帧的速度运行。 - 很容易推广到其他任务,例如:允许我们在同一框架中估计人体姿势。
- 通过添加一个分支来预测每个
感兴趣区域(RoI)
上的分割掩码,并与现有的分类和边界框回归分支并行,从而扩展了Faster R-CNN
。掩模分支是应用于每个RoI
的小FCN
,以pixel-to-pixel
的方式预测分割掩模。 - 掩码分支只增加了少量的计算开销,从而实现了快速系统和快速实验
Mask R-CNN
可以被更广泛地视为实例级识别的灵活框架,并且可以很容易地扩展到更复杂的任务。- 展示了COCO系列挑战的所有三个方面的顶级结果,包括
实例分割
、边界框对象检测
和人物关键点检测
。 - 在没有钟声和哨声的情况下,
Mask R-CNN
在每项任务上都优于所有现有的单一模型参赛作品。
2.引言
- 视觉社区在短时间内快速改进了对象检测和语义分割结果。很大程度上,这些进步是由强大的基线系统驱动的。
- 例如:分别用于
对象检测
和语义分割
的Fast/Faster R-CNN
和全卷积网络(FCN)框架
。 - 这些方法在概念上是直观的,提供了灵活性和鲁棒性,以及快速的训练和推理时间。
- 例如:分别用于
- 算法目标:为实例分割开发一个相对可行的框架。
- 实例分割具有挑战性,因为它需要正确检测图像中的所有对象,同时还需要精确分割每个实例。因此,它结合了经典的计算机视觉目标检测任务中的元素,目标是对单个目标进行分类,并使用边界框对每个目标进行定位和语义分割,目标是将每个像素分类为一组固定的类别,而不区分对象实例。发现一个令人惊讶的简单、灵活和快速的系统可以超越现有的最先进的实例分割结果。
Mask R-CNN
是Faster R-CNN
的直观扩展,但正确构建掩码分支对于获得良好结果至关重要。RoIAlign
:Faster R-CNN
不是为网络输入和输出之间的pixel-to-pixel
对齐而设计的。这在RoIPool
(用于处理实例的事实上的核心操作)如何为特征提取执行粗略的空间量化中最为明显。为了修复错位,提出了一个简单的无量化层【RoIAlign】
,它忠实地保留了精确的空间位置(减小预测误差,相对于原图像素位置)。
RoIAlign
微小变化,具有很大影响:- 将掩模精度提高了10%到50%,在更严格的定位标准下显示出更大的增益。
- 必须将掩码和类预测解耦:
- 我们独立地为每个类预测一个二进制掩码,而不需要类之间的竞争 【类与类之间掩码损失无关性,互不影响】,并依赖网络的
RoI
分类分支来预测类别。
- 我们独立地为每个类预测一个二进制掩码,而不需要类之间的竞争 【类与类之间掩码损失无关性,互不影响】,并依赖网络的
- 相比之下,
FCN
通常执行per-pixel
多分类,这将分割和分类结合起来,并且根据我们的实验,对于实例分割效果不佳
- 模型结果
- 在COCO实例分割任务中,
Mask R-CNN
超越了之前所有最先进的单一模型结果 。 - 算法在COCO对象检测任务上也很出色。在消融实验中,我们评估了多个基本实例,这使我们能够证明其鲁棒性并分析核心因素的影响。
- 模型可以在
GPU
上以每帧200
毫秒的速度运行,快速的训练和测试速度,加上框架的灵活性和准确性,将有利于并简化未来对实例分割的研究。 - 通过COCO关键点数据集上的人类姿态估计任务展示了我们框架的通用性 。通过将每个关键点视为一个热二进制掩码,通过最小的修改,可以应用
Mask R-CNN
来检测特定于实例的姿势。
- 在COCO实例分割任务中,
3.文献综述
3.1 R-CNN
Region-based CNN (R-CNN)
方法用于边界盒对象检测,是关注可管理数量的候选对象区域 ,并独立于每个RoI
评估卷积网络 。R-CNN
被扩展 ,以允许使用RoIPool
处理特征地图上的RoI
,从而提高速度和准确性。Faster R-CNN
通过学习区域建议网络(RPN)
的注意力机制,推进了这一流程。Faster R-CNN
对许多后续改进 ,具有灵活性和鲁棒性,是当前几个基准测试中的领先框架。
3.2 Instance Segmentation【实例分割】
- 在
R-CNN
有效性的推动下,许多实例分割方法都基于分段建议。早期的方法采用自下而上的分段 。DeepMask
和后续工作学习提出细分候选,然后由Fast R-CNN
分类。 - 在这些方法中,分割先于识别,这是缓慢且不太准确的。
- Dai等人提出了一种复杂的多级级联,该级联从边界框建议中预测分段建议,然后进行分类。
- 我们的方法基于掩码和类标签的并行预测,这更简单、更灵活。
- Li等人将片段建议系统和对象检测系统结合起来,用于
“全卷积实例分割”(FCIS)
。 - 思想是完全卷积地预测一组位置敏感的输出信道。这些通道同时处理对象类、框和掩码,使系统快速运行。但是
FCIS
在重叠实例上表现出系统性错误,并产生虚假边缘 ,这表明它受到分割实例的基本困难的挑战。
- 实例分割的另一系列解决方案 是由语义分割的成功驱动的。从每像素分类结果(例如,
FCN
输出)开始,这些方法尝试将同一类别的像素分割成不同的实例。 - 与这些方法的分段优先策略不同,
Mask R-CNN
基于实例优先策略。我们预计,未来将研究这两种战略的更深入结合。
4. Mask R-CNN介绍
Mask R-CNN
在概念上很简单:Faster R-CNN
为每个候选对象提供两个输出,一个类标签和一个边界框偏移;为此,我们添加了输出对象掩码的第三个分支。Mask R-CNN
是一个自然而直观的想法。但附加的掩码输出与类和框输出不同,需要提取更精细的对象空间布局。
- 我们将介绍
Mask R-CNN
的关键元素,包括pixel-to-pixel
的对齐,这是Fast/Faster R-CNN
的主要缺失部分。
4.1 Faster R-CNN(相关细节请看相关文章)
- 简要回顾了
Faster R-CNN
探测器。Faster R-CNN
包括两个阶段。- 第一阶段称为
区域建议网络(RPN
),提出候选对象边界框。 - 第二阶段本质上是
Fast R-CNN
,使用RoIPool
从每个候选框中提取特征,并执行分类和边界框回归。
- 第一阶段称为
- 两个阶段使用的特征可以共享,以便更快地推断。
4.2 Mask R-CNN
Mask R-CNN
采用相同的两阶段程序。- 具有相同的第一阶段(即
RPN
)。 - 在第二阶段,在预测类和边框偏移的同时,
Mask R-CNN
还为每个RoI
输出二进制掩码。这与最新的系统形成对比,其中分类取决于掩码预测 。
- 具有相同的第一阶段(即
Mask R-CNN
遵循Fast R-CNN
的精神,即并行应用边界框分类和回归(结果证明,这在很大程度上简化了原始R-CNN
的多级管道)- 训练期间,每个采样RoI的多任务损失定义为
L = L c l s + L b o x + L m a s k L=L_{cls}+L_{box}+L_{mask} L=Lcls+Lbox+Lmask- 分类损失 L c l s L_{cls} Lcls和边界框损失 L b o x L_{box} Lbox与Fast R-CNN中定义的相同。
- 掩码分支对每个
RoI
都有一个 K m 2 Km^2 Km2维输出,它编码分辨率为 m ∗ m m*m m∗m的K
个二进制掩码,k
表示有k
个类别,m
表示特征图大小。 - 我们应用
per-pixel sigmoid
,并将 L m a s k L_{mask} Lmask定义为平均二进制交叉熵损失。 - 对于与
ground-truth
【背景真实值】类别k
相关的RoI
, L m a s k L_{mask} Lmask仅在第k
个掩码上定义(其他掩码输出不影响损失)【只在一个特征图上有损失,与其他特征图无关】
-
L
m
a
s
k
L_{mask}
Lmask
- L m a s k L_{mask} Lmask定义允许网络为每个类生成掩码,而无需类别之间的竞争**【类别之间无相关性】**;我们依靠专门的分类分支来预测用于选择输出掩码的类标签。这使掩码和类预测解耦。
- 这与将
FCN
应用于语义分割时的常见做法不同 - 语义分割通常使用
per-pixel softmax
和多项式交叉熵损失。在这种情况下,不同分类的掩码会竞争; - 它们没有使用,对于
per-pixel sigmoid
和二进制损失。通过实验表明,该公式是获得良好实例分割结果的关键。
4.3 Mask Representation【遮罩表示法】
- 掩码对输入对象的空间布局进行编码。提取掩模的空间结构可以通过卷积提供的
pixel-to-pixel
的对应来自然地解决。- 与全连接
(fc)
层不可避免地折叠成短输出向量的类标签或盒偏移不同 (全连接会导致不同特征叠加,不能获得pixel-to-pixel
结构)。
- 与全连接
- 使用
FCN
从每个RoI
预测 m ∗ m m*m m∗m掩码。- 允许遮罩分支中的每个层保持明确的 m ∗ m m*m m∗m对象空间布局,而不会将其折叠为缺少空间维度的矢量表示。
- 与先前方法不同,全卷积参数更少,并且如实验所证明的那样更准确,这些方法使用
fc
层进行掩模预测。
pixel-to-pixel
的行为要求我们的RoI
特征(它们本身是小的特征图)很好地对齐,以忠实地保持每像素的明确空间对应关系。这促使我们开发了以下RoIAlign
层,该层在掩模预测中起着关键作用。
4.4 RoIAlign【感兴趣区域对齐】
4.4.1 RoIPool【感兴趣区域池化】
RoIPool
是从每个RoI
中提取小特征图(例如,7×7)的标准操作。RoIPool
首先将浮点数RoI
量化为特征图的离散粒度,然后将该量化的RoI
细分为自己量化的空间仓,最后聚合每个仓覆盖的特征值 (就是最大池)。- 这些量化引入了
RoI
和提取的特征之间的不对齐 【与最大池化前的特征图没有pixel-to-pixel
之间对齐关系,不能找到原图位置的像素点】。 - 虽然这可能不会影响分类,因为分类对于小的平移是鲁棒的,但它对预测像素准确的掩码有很大的负面影响。【预测边框准确位置会有很大偏差】
- 这些量化引入了
4.4.2 RoIAlign提出【解决不对齐问题】
- 提出了一个
RoIAlign
层,它消除了·RoIPool·的苛刻量化,将提取的特征与输入正确对齐。 - 提出的改变很简单:
- 避免了
RoI
边界或容器的任何量化。 - 我们使用
双线性插值
计算每个RoI
容器中四个规则采样位置的输入特征的精确值,并聚合结果(使用最大值或平均值)。注意到:只要不进行量化,结果对精确的采样位置或采样的点数不敏感。
- 避免了
RoIAlign
带来了巨大改进。我们还与论文 (Instance-aware semantic segmen-tation via multi-task network cascades.) 中提出的RoIWarp
操作进行了比较。- 与
RoIAlign
不同,RoIWarp
忽略了对齐问题,并实现效果与RoIPool
一样量化RoI。因此,尽管RoIWarp
也采用了激励的双线性重采样,但如实验所示,它的性能与RoIPool
相当,证明了对齐的关键作用。
4.5 Network Architecture【网络体系结构】
- 为了证明我们方法的通用性,我们使用多个架构实例化
Mask R-CNN
。 - 为了清楚起见,我们区分了:
- (i)用于整个图像特征提取的卷积主干架构。
- (ii)分别应用于每个
RoI
的边界框识别(分类和回归)和掩码预测的网络头。
- 使用网络深度特征来表示主干架构。
- 评估了深度为
50
或101
层的ResNet
和ResNeXt
网络。 Faster R-CNN
与ResNets
的原始实现从第4
阶段的最终卷积层
提取了特征,我们称之为C4
。- 例如,具有
ResNet-50
的主干由ResNet-50-C4
表示。
- 例如,具有
- 评估了深度为
- 还探索另一种更有效的主干,称为特征金字塔网络(FPN)。
FPN
使用具有横向连接的自顶向下架构,从单个规模的输入构建网络内特征金字塔。- 具有
FPN
主干的Faster R-CNN
根据其规模从特征金字塔的不同级别提取RoI
特征,但其他方法类似于vanilla ResNet
。 - 使用
ResNet FPN
主干与Mask RCNN
进行特征提取,在精度和速度方面都获得了优异的提高。
network head
- 对于网络头部,我们严格遵循先前工作中提出的架构,在其中添加了全卷积掩码预测分支。
- 扩展了
ResNet
和FPN
论文中的Faster R-CNN
箱头。左/右面板显示了ResNet C4
和FPN
主干的头部,其中添加了掩码分支。ResNet-C4
主干上的头部包括ResNet
的第5
阶段(即9层“res5”)。- 对于
FPN
,主干已经包括res5
,因此允许使用更少滤波器的更高效的头部
5. 算法训练过程
- 根据现有的
Fast/Faster R-CNN
工作设置了超参数。使用迁移学习作为超参数对我们的实例分割系统对它们是鲁棒的。
5.1 train【训练】
- 与
Fast R-CNN
一样,如果RoI
的IoU
至少为0.5
,则RoI
被认为是正的,否则RoI
被视为负的。 - 掩码损失
L
m
a
s
k
L_{mask}
Lmask仅在正
RoI
上定义。掩码标签是RoI
与其相关ground-truth
(真实背景)之间的交叉点。 - 采用以图像为中心的训练。调整图像的大小,使其比例(较短的边缘)为
800
像素。 - 每个
mini-batch
每个GPU
有2
个图像,每个图像有N
个采样RoI
,正负比为1:3
。 - 对于
C4
主干,N
为64
;对于FPN
,N
为512
。 - 在
8
个GPU
(因此有效的小批量大小为16
)上训练160k
次迭代,学习率为0.02
,在120k
次迭代时降低了10
。 - 使用
0.0001
的重量衰减和0.9
的动量。 - 使用
ResNeXt
- 使用每个
GPU
1
个图像和相同的迭代次数进行训练,初始学习率为0.01
RPN
锚范围5
个比例和3
个纵横比**【5个不同面积的框,每个框有3个不同形状(面积相同,长宽比例不同)】**。为了方便消融,RPN
单独训练,除非另有规定,否则不会与Mask R-CNN
共享功能。RPN
和Mask R-CNN
具有相同的主干,因此它们是可共享的。
5.2 Inference【推断】
- 在测试时,
C4
主干的建议数为300
,FPN
的建议数是1000
。 - 我们对这些建议运行框预测分支,然后是非最大抑制。
- 然后将掩码分支应用于最高得分的
100
个检测框。尽管这与训练中使用的并行计算不同,但它加快了推理速度并提高了准确性(由于使用了更少、更准确的RoI
)。 - 掩码分支可以预测每个
RoI
的K
个掩码,但我们只使用第K
个掩码,其中K
是分类分支预测的类。然后将 m ∗ m m*m m∗m浮点数掩码输出调整为Ro
I大小,并在阈值0.5
处进行二值化。 - 由于我们只在前
100
个检测框上计算掩码,Mask R-CNN
为其Fatser R-CNN
对应项增加了一小部分开销(例如,在典型模型上约为20%
)。
5. 实验
5.1 Instance Segmentation【实例分割】
- 在COCO数据集上对
Mask R-CNN
与现有技术进行了彻底比较,并进行了全面消融。 - 报告了标准COCO指标,包括
AP
(在IoU
阈值上的平均值)、AP50、AP75和APS、APM、APL
(不同尺度的AP
)。除非另有说明,AP
正在使用掩码IoU
进行评估。与之前的工作一样,我们使用80k
列车图像和35k val
图像子集(trainval35k)
的联合进行训练,并报告剩余5k val
图像(minival)
的消融情况。 - 结果
- 将
Mask R-CNN
与表1中最先进的实例分割方法进行了比较。我们模型的所有实例都优于先前最先进模型的基线变体。 - 在没有钟声和哨声的情况下,具有
ResNet-101-FPN
主干的Mask R-CNN
优于FCIS++
,后者包括多尺度训练/测试、水平翻转测试和在线硬示例挖掘(OHEM)
。虽然不在这项工作的范围内,但我们预计许多此类改进将适用于我们的工作.
- 将
- 结论
- 在具有挑战性的条件下,
Mask R-CNN
也能取得良好的效果。 - 比较了
Mask R-CNN
基线和FCIS++
。FCIS+++
在重叠实例上表现出系统性的伪影,这表明它受到实例分割的基本困难的挑战。Mask R-CNN
没有显示此类伪影
- 在具有挑战性的条件下,
5.2 Ablation Experiments【消融实验】
- 架构:
- 如图显示具有各种主干的
Mask R-CNN
。 - 它得益于更深的网络
(50对101)
和先进的设计,包括FPN和ResNeXt
。 - 注意到,并非所有框架都能自动从更深层次或更高级的网络中受益
- 如图显示具有各种主干的
Multinomial vs. Independent Masks
【多项式与独立掩码】Mask R-CNN
将掩码和类预测解耦:- 当现有的框分支预测类标签时,我们为每个类生成一个掩码,而类之间没有竞争(通过
per-pixel sigmoid
和二进制损失)。将其与使用per-pixel softmax
和多项式损失(如FCN
中常用的)进行了比较。 - 这种替代方案将掩码和类预测的任务相结合,并导致掩码
AP
的严重损失(5.5分) - 表明:一旦实例被分类为一个整体(通过盒分支),就足以预测二元掩码,而不必考虑类别,这使得模型更容易训练
- 当现有的框分支预测类标签时,我们为每个类生成一个掩码,而类之间没有竞争(通过
Class-Specific vs. Class-Agnostic Masks
【阶级特定与阶级不可知掩码】- 默认实例化预测类特定的掩码,即
1
个 m × m m×m m×m每个类的掩码。 - 具有类不可知掩码的
Mask R-CNN
(即,无论类别如何预测单个m×m
输出)几乎同样有效:它具有29.7
个掩码AP
,而ResNet-50-C4
上的类特定掩码AP
为30.3
。 - 这进一步突出了我们方法中的分工,该方法在很大程度上分离了分类和分割
- 默认实例化预测类特定的掩码,即
RoIAlign
-
我们使用
ResNet50-C4
主干,它的步幅为16
。RoIAlign比RoIPool提高AP约3个点,大部分增益来自高IoU(AP75)
。RoIAlign
对最大/平均池不敏感;我们在论文的其余部分使用平均值 -
与
MNC
中提出的同样采用双线性抽样的RoIWarp
进行了比较。RoIWarp
仍然对RoI
进行量化,失去了与输入的一致性。RoIWarp的性能与RoIPool相当,但比RoIAlign差得多。
-
评估了具有
ResNet-50-C5
主干的RoIAlign
,该主干具有更大的32
像素步幅。我们使用与图4(右)相同的头部,因为res5
头部不适用。表2d显示,RoIAlign将掩模AP提高了7.3点,掩模AP75提高了10.5点(相对改善50%)
-
使用
RoIAlign
,使用stride-32 C5 features (30.9 AP)比tride-16 C4 features (30.3 AP , Table 2c).
更准确。 -
RoIAlign在很大程度上解决了使用大步长特征进行检测和分割的长期挑战。
-
当与
FPN
一起使用时,RoIAlign
显示出1.5
掩模AP
和0.5
盒AP
的增益,其具有更精细的多级跨步。对于需要更精细对齐的关键点检测,即使使用FPN
,RoIAlign
也显示出较大的增益(表6)。
-
Mask Branch
【掩码分支】- 分割是一个
pixel-to-pixel
的任务,通过使用FCN
来利用掩模的空间布局。 - 使用
ResNet-50-FPN
主干比较了多层感知器(MLP)
和FCN
。使用FCN比MLP提供2.1掩码AP增益。为了与MLP
进行公平比较,我们选择了该主干,以使FCN
头部的对流层未经过预训练
- 分割是一个
5.3 Bounding Box Detection Results【边界框检测结果】
Mask R-CNN
与表3中最先进的COCO边界框对象检测进行了比较。- 对于结果,即使训练了全
Mask R-CNN
模型,在推断时也只使用分类和框输出(掩码输出被忽略)。 - 使用ResNet-101FPN的Mask R-CNN优于所有先前最先进模型的基础变体,包括GRMI的单模型变体。
- 使用
ResNeXt-101-FPN
,Mask R-CNN
进一步改进了结果,与使用Inception-ResNet-v2-TDM
中的最佳先前单一模型条目相比,框AP
的裕度为3.0
点。 - 训练了一个
Mask R-CNN
版本,但没有掩码分支,在表3中用“Faster R-CNN,RoIAlign”
表示。由于RoIAlign
,该模型的性能优于[Feature pyramid networks for object detection.]中提出的模型。另一方面,它比Mask R-CNN低0.9分。 - Mask R-CNN在盒子检测方面的差距仅是由于多任务训练的好处
Mask R-CNN
在其掩码和框AP之间获得了一个小的差距:例如,在37.1
(掩码,表1)和39.8
(框,表3)之间的2.7
点。- 这表明我们的方法在很大程度上缩小了对象检测和更具挑战性的实例分割任务之间的差距。
5.4 Timing【调速】
-
Inference
【推理】- 训练了一个
ResNet-101-FPN
模型,该模型在RPN
和Mask R-CNN
阶段之间共享特征,随后对Faster R-CNN
进行了4
步训练。 - 该模型在
Nvidia Tesla M40 GPU
上以每幅图像195
毫秒的速度运行(外加15
毫秒的CPU
时间将输出调整为原始分辨率),并在统计上实现了与非共享图像相同的掩模AP
。 ResNet-101-C4
变体需要约400ms
的时间,因为它具有更重的箱头(图4),因此不建议在实践中使用C4变体。- 尽管
Mask R-CNN
速度很快,但是我们的设计并未针对速度进行优化,可以通过改变图像大小和提案数量等方式实现更好的速度/精度权衡,这超出了本文的范围。
- 训练了一个
-
Training
【训练】- Mask R-CNN训练速度也很快。
- 在COCO
trainval35k
上使用ResNet-50-FPN
进行培训,在我们的同步8-GPU
实施中需要32
小时(每16
个图像小批量0.72s
),使用ResNet-101-FPN
需要44
小时。 - 事实上,在训练集上训练时,快速原型制作可以在不到一天的时间内完成。我们希望这样的快速培训将消除这一领域的一个主要障碍,并鼓励更多的人对这一具有挑战性的课题进行研究。
6. 总结
6.1 FPN(特征金字塔网络)
- 特征金字塔用来提取特征
- 自下而上层
- 使用
Resnet
深度残差算法主干结构提取特征,返回每个阶段最后一层的数据。
- 使用
- 自上而下层
- 使用
线性插值
与此阶段的前一个阶段进行特征融合,以此类推,返回特征融合后每个阶段的值
- 使用
为什么要特征融合?【自己理解的,不知道对不对】
在特征提取前期阶段提取出的特征也很重要,前期特征语义性虽然弱,但是提取出的零碎特征在图片上数据比较明显
比如:一张图片中有一个人,前期可能会提取出人的主要特征部位(腿等位置),与后期的特征在进行融合,会使腿这个特征学习的更好
6.2 候选框生成
- 对提取的特征图进行区域金字塔网络【就是设置很多不同的框,在不同的框中提取特征】
RPN
会以每个像素点为中心,设置5
个不同大小的scales
,每个scales
有3
个不同的roatis
,进行生成- 例如;
scales:(32, 64, 128, 256, 512),roatis([0.5, 1, 2])
,所以每个像素点会生成15
个不同的框
- 例如;
6.3 RPN(区域建议网络)
- 将生成的候选框做前景和背景二分类
- 返回分类得分,分类概率,区域框数据
6.4 ROI(感兴趣区域)
- 筛选候选框
- 根据得分值选择
top-pre_nms_limit
个前景(top n
的得分最高的前景) - 根据阈值筛选候选框重叠比例大于阈值的,再选出得分最高的框
- 根据得分值选择
6.5 DetectionTargetLayer【检测目标层】
- 获取正负样本数据集
- 根据阈值设置正负样本
- 数据集正负比例为
1:3
6.6 Network Heads【网络头部】
- 将所有特征图大小统一一个尺寸,方便后期全连接层
ROI Align
:将特征图进行线性插值下采样方法
6.7 开始建模
7.阅读总结
Mask R-CNN
是对于以前的R-NN
算法的更新迭代- 相关知识点在前期都有涉及
- 此算法主要就是使用
FPN
,特征金字塔对特征进行融合 - 使用线性插值对特征进行上采样融合与下采样特征进入全连接层
- 只理解这么多东西。。。