点击下方卡片,关注 「AI视界引擎」 公众号
( 添加时备注:方向+学校/公司+昵称/姓名 )
在实例分割任务上,当前最先进的两阶段模型存在几种不平衡问题。在本文中,作者解决了第二阶段训练期间正输入感兴趣区域(RoIs)的交并比(IoU)分布不平衡问题。
作者的自平衡R-CNN(SBR-CNN),是混合任务级联(HTC)模型的改进版本,引入了全新的边界框和 Mask 细化循环机制。通过改进的通用RoI提取(GRoIE),作者还解决了特征金字塔网络(FPN)层面上的特征级不平衡问题,这是由 Backbone 层低 Level 和高 Level 特征的非均匀整合引起的。
此外,架构的重新设计采用了全卷积方法,FCC进一步减少了参数数量,并获得了更多关于要解决的问题与所用层之间连接的线索。实际上,作者的SBR-CNN模型如果与其他最先进模型结合使用,同样甚至能显示出更好的改进。
事实上,以轻量级的ResNet-50作为 Backbone 网络,在COCO minival 2017数据集上进行评估,作者的模型在目标检测和实例分割上分别达到了45.3%和41.5%的AP,仅用12个周期,且无需额外的技巧。
代码可在https://github.com/IMPLabUniPr/mmdetection/tree/sbr\_cnn获取。
1 Introduction
如今,实例分割是计算机视觉社区中最受关注的话题之一,因为它反映了许多现有应用程序中的一个关键问题,即作者必须处理图像内的许多异质目标。它输出的结果是定位和分割一系列不确定数量的实例,每个实例都属于一个类别列表。这项任务对于包括医疗诊断[1]、自动驾驶[2]、报警系统[3]、农业优化[4]、视觉产品搜索[5]以及许多其他应用都至关重要。
大多数最近的模型源自被称为Mask R-CNN[6]的两阶段架构。第一阶段致力于独立于类别搜索有趣的区域,而第二阶段用于在每个区域上进行分类、定位和分割。这种分而治之的方法最早是在祖先网络Region-based CNN(R-CNN)[7]中引入的,该网络已经发展成几个连续的架构。尽管它取得了优异的结果,但最近的一些研究[8, 9, 10]发现了一些可能限制其潜力的关键问题。这些问题尚未解决,这些架构中的许多模块尚未得到充分利用,远未优化和被充分理解。
本文主要解决了[8]中提到的两个不平衡问题。第一个问题被称为IoU分布不平衡(IDI),当训练检测和分割头期间,由RPN提供的正区域建议(RoIs)的分布不平衡时出现。由于 Anchor 定系统的一些内在问题,随着IoU阈值的增加,可用的RoIs数量呈指数级下降,这使得网络容易对低质量 Proposal 过度拟合。作者的工作扩展了对-CNN的分析,该分析最初在[11]中引入,以理解架构限制,并在其间提出先进的配置以及对分割头的架构改进。
第二个问题被称为特征 Level 不平衡(FLI),当从特征金字塔网络(FPN)中选择特征进行定位和分割时出现。正如[8]所强调的,FPN的分层结构(最初设计用于提供多尺度特征)并未在不同层次之间提供低级和高级特征的很好整合。为了解决这个问题,传统的方法是在FPN之前平衡信息。相反,作者的工作改进了GRoIE[12]架构,并提出了一种更有效的解决方案,即融合来自所有FPN层的信息。
此外,作者还解决了由于引入新组件或扩大现有组件(例如[13])导致参数数量爆炸的常见问题。复杂性的增加导致训练期间优化搜索空间的增加,进而负面影响网络的泛化能力。此外,作者的实证结果支持了[14]关于要解决的问题与所使用层次之间联系的直觉,并将他们的工作扩展到完全卷积的解决方案。
总之,本文的主要贡献如下:
- 对RPN生成的 Proposal 中的IDI问题进行了广泛分析,作者通过在检测Head和RoI提取器之间的单头和双头循环架构(-CNN)以及分割头本身的全新内部循环来处理此问题。
- 重新设计模型头(FCC)朝向完全卷积方法,实证分析支持根据任务的一些架构偏好。
- 提出了一种性能更好的GRoIE模型,用于在两阶段实例分割和目标检测架构中提取RoIs。
- 对所有组件进行了详尽的消融研究。
- 提出了SBR-CNN,这是一个由-CNN、FCC和GRoIE组成的新架构,如果将其插入到主要的最先进模型中,仍然保持其质量。
本文的组织结构如下:
第2部分报告了与相关主题的最先进技术;
第3部分详细介绍了构成所 Proposal 的SBR-CNN的每个贡献;
第4部分通过进行若干消融研究和一个最终实验,比较了SBR-CNN与一些最先进模型,介绍了引入的不同架构增强的广泛评估;
最后,第5部分对所 Proposal 的工作进行了总结,并设想了未来研究可能的方向。
2 Related Works
多阶段检测/实例分割。针对目标检测的单阶段和双阶段架构已经研究了几年。例如,在[15]中提出的YOLO网络一步优化定位和分类,而[16]提出了一种单次射击网络,该网络使用边界框回归。由于单阶段架构并不总是能提供可接受的性能,并且在具有成千上万类别的应用中需要大量内存,因此提出了基于区域的识别方法[7],其中第一部分处理输入图像,而第二部分处理前一部分找到的边界框。这种方法已在Mask R-CNN架构[6]中使用,通过向Faster R-CNN[17]添加分割分支获得。这个想法已经被几项研究改进。例如,[18]以级联方式提供了复合 Backbone 网络。Cascade R-CNN架构[13]提出了使用多个顺序连接的边界框头,每个阶段都细化预测。在[19, 20, 21]中,他们引入了类似的级联概念,但应用于RPN网络。此外,受到本工作启发的Hybrid Task Cascade (HTC)网络[22],对 Mask 头也应用了级联操作。作者的工作朝着相同的方向推动,但将范式从级联更改为循环,其中单个神经网络块通过在输入中应用不同的条件来执行一个以上的功能。
IoU分布不平衡。两阶段网络使用第一阶段为后续阶段生成一组边界框 Proposal ,通过应用它们与 GT 之间的IoU的阈值来过滤积极的边界框。[8]描述了IoU分布不平衡问题,这是在训练和评估中使用的边界框中观察到的倾斜IoU分布。在[23]中,作者提出了一种硬示例挖掘算法,以选择最重要的RoIs来解决背景/前景不平衡问题。他们的工作与作者的不同,因为作者的主要目标是使RoIs在IoU的正范围内平衡。在[24]中,作者提出了一种IoU平衡的采样方法,该方法挖掘硬示例。所提出的采样是在RPN的结果上进行的,而RPN在生成高质量RoIs方面并不是非常优化,正如作者将看到的。另一方面,作者在检测器本身上应用重采样,这增加了返回更有意义的RoIs的概率。
在分析误报的来源并减少它们之后,[25]引入了一个额外的独立分类头,以附加到原始架构上。[26]的作者提出了一种新的IoU预测分支,支持分类和定位。他们不是在训练阶段利用RPN进行定位和IoU预测分支,而是 Proposal 手动围绕 GT 生成样本。
在[13, 22, 27]中,他们解决了呈指数级消失的正样本问题,利用三个顺序连接的检测器通过重采样 GT 来逐步提高假设质量。它与作者的方法不同,因为作者使用单个检测器和分割头来处理问题。[28]的作者对IoU不平衡对性能产生负面影响的事实给出了一个解释,这与作者的相似。然而,与作者的不同,他们设计了一个算法来系统地生成所需质量的RoIs,而作者的工作基于检测器本身的能力。
特征级不平衡。一个两阶段的网络借助附加在主干网上的FPN处理任何大小的物体图像。RoI提取层如何结合FPN提供的信息至关重要,以体现最大量的有用信息。这一层被许多衍生模型使用,如Mask R-CNN、Grid [29]、Cascade R-CNN [30]、HTC [22]和GC-net [31]。在[32]中,作者将RoI池化应用于单一且凭经验选择的FPN输出层。然而,正如[8]所指出的,这种方法由于与未利用信息相关的问题而存在缺陷。[33]的作者提出从每个尺度分别提取 Mask Proposal ,并在将结果包含在唯一且多尺度排名列表中进行重缩放时,只选择最好的。在[34]中,作者为每个图像尺度使用一个主干网,并通过最大函数将它们合并。相比之下,作者使用FPN简化了网络,避免了每个尺度的网络参数翻倍。
在SharpMask模型[35]中,在进行粗略 Mask 预测之后,作者以自顶向下的方式将特征层融合回来,以达到输入图像的相同尺寸。PANet [36]的作者指出,信息并不是严格与FPN的单个层相连。通过传播低级特征,他们构建了与FPN相似的结构,并与FPN耦合,结合了RoIs池化的图像。尽管作者提出的GROIE层受到这种方法的启发,但其大小与之不同。作者提出了一种新颖的方法来聚合RoIs池化的数据,使网络更轻量级,无需与FPN耦合的额外堆栈。
Auto-FPN [37]将神经架构搜索(NAS)应用于FPN。PANet通过AugFPN [38]进行了扩展。作者与之比较的模块被称为Soft RoI Selector [38],它包括在每个FPN层上的RoI池化层以连接结果。然后,它们通过自适应空间融合组合起来,以构建一个权重图,该权重图依次馈入1x1和3x3卷积。在作者的工作中,首先对FPN网络的每个输出层进行独特的卷积操作。之后,作者不是连接结果,而是将它们求和,因为这可能更有助于网络。最后,作者应用一个注意力层,其任务是进一步过滤多尺度上下文。
Multi-Scale Subnet [39]的作者提出了一种替代RoI Align的技术,该技术采用在不同尺度上提取RoI的裁剪和调整大小分支。为了保持每个分支的输出数量相同,他们使用1x1 Kernel 大小的卷积,执行平均池化以将它们减小到相同大小,然后再将它们相加。最后,他们使用3x3 Kernel 大小的卷积层作为后处理阶段。在作者的消融研究中,作者展示了这些用于执行预和后处理的卷积配置并不是能导致更好性能的最佳配置。
IONet模型[40]提出摒弃任何FPN网络,改为直接使用从 Backbone 网络获取的重新缩放、拼接和压缩(按维度)的特征,然后再进行分类和回归。最后,Hypercolumn[41]利用超列表示法对像素进行分类,使用1x1卷积并将结果上采样到公共尺寸以便求和。在这里,没有优化RoI池化解决方案和FPN层,以及简单处理从 Backbone 网络各个阶段提取的像素列可能是一个限制。实际上,作者在消融研究中显示,相邻像素对于最优信息提取是必要的。
在[42]中,他们避免选择FPN层并在其上进行RoI裁剪特征,而是在最后一个FPN层之上附加一个卷积分支,并根据实例进行条件约束。在作者的案例中,作者避免了在中间FPN层丢失信息的风险,让网络根据每个实例条件性地合并它们。
3 Self-Balanced R-CNN model
在本节中,作者将描述作者称为自平衡R-CNN(SBR-CNN)的新架构,它由三个主要贡献组成:一个增强版的-CNN [11](3.1小节),新的FCC Head 架构(3.2小节)以及新的性能更佳的GROIE [12]版本(3.3小节)。这些贡献将分别详细讨论。
Recursively Refined R-CNN (-Cnn)
图1:在RPN训练期间,不存在与 GT 边界框具有特定IoU值的 Anchor 点的次数百分比。
在典型的实例分割两阶段网络中,为了获得网络的良好训练,作者需要尽可能从RPN中获取好的候选目标。作者可以强调至少两个问题,这些问题是所谓的IoU分布不平衡(IDI)的一部分,这些问题困扰着训练过程。第一个问题如图1所示,与 Anchor 点系统有关。它被称为指数消失 GT (EVGT)问题,即用于标记正 Anchor 点的IoU阈值越高,错过的 GT 边界框(gt-bboxes)的百分比就指数级地越高。例如,超过80%的gt-bboxes没有与IoU(相对于gt-bbox)在0.85到0.9之间的对应 Anchor 点。由于对于每张图像, Anchor 点的最大IoU因每个gt-bbox而异,如果作者选择过高的IoU阈值,一些目标可能会在训练过程中被完全忽略,从而减少了真正使用的标注数量。例如,如果gt-bbox处于不幸的位置,其中与所有可用 Anchor 点的最大IoU为0.55,而作者选择的最低阈值为0.6,则没有 Anchor 点会与该目标关联,它在训练过程中将被视为背景的一部分。这就是为什么作者通常被迫使用非常低的阈值(通常以0.3为限),否则作者可能会遇到忽略 GT 一致部分的情况。第二个问题,称为指数消失正样本(EVPS)问题[13],与第一个问题有部分联系,因为用太低的阈值训练RPN会在其 Proposal 上反映出低质量问题。即使在最佳情况下,每个gt-bbox都有大于零的正 Anchor 点数量,随着所需IoU阈值的增加,RPN的 Proposal 数量仍然会指数级减少(见图3(a))。图2(a)展示了受Cascade R-CNN网络[13]启发的混合任务级联(HTC)模型[22],该模型训练多个依次连接的回归器,每个回归器专门用于预定的且不断增长的IoU最低阈值。这种架构在增加了 Head 的数量的情况下(是Mask R-CNN使用的三倍)提高了性能。
为了降低复杂性,作者设计了一个更轻量级的架构,称为递归精化R-CNN(-CNN)(见图2(b)),通过在所有IoU Level 上统一训练单一检测和 Mask 头,来解决IDI问题。[13]中指出,与多个IoU阈值优化相关的成本敏感学习问题[43, 44]需要多个损失函数。这促使作者寻找多种选择性训练来解决此问题。IoU阈值用于区分正(目标)和负(背景) Proposal 。通常,由于类似Mask R-CNN的架构受到EVGT和EVPS问题的影响,IoU阈值设置为0.5,以在足够训练RoI头的样本数量和不过度降低样本质量之间取得良好折中。因为IoU的最大值为1.0,作者在每次循环中统一选择0.5到0.9之间的不同IoU阈值。通过这种方式,作者采样一个 Proposal 列表,每次以不同的IoU质量分布来馈送检测器本身。作者在初始循环中直接依赖RPN。此外,这个新的 Proposal 列表用于馈送包含内部循环以细化 Mask 的分割头M1。
为了展示重新平衡的效果,在训练过程中,作者收集了 Proposal 与gt-bboxes之间IoU的信息。为了使比较更加公平,作者以三倍的迭代次数训练了Mask R-CNN。在图3(a)中,作者可以看到Mask R-CNN的IoU分布保持了指数递减的趋势。
如图3(b)所示,-CNN为每个循环呈现了明确定义的IoU分布。通过两个循环,作者已经有一个更平衡的趋势,并且通过加上第三个循环,斜率开始反转。在Cascade R-CNN中也可以观察到同样的趋势,其中Cascade R-CNN的第n阶段的IoU直方图(如[13]中图4所示)可以与-CNN的第n个循环进行比较。现在让作者定义检测Head损失(见图2(b))是如何组成的,接下来是 Mask 头的损失定义。对于给定的循环,定义B1为检测Head,由作为分类器和作为回归器组成,它们针对选择的IoU阈值进行训练,其中。让表示从输入特征使用 Proposal 提取的特征。在第一个循环中,初始的 Proposal 集()来自RPN。对于其余的循环,在循环中,作者有个 Proposal 集,通过使用从前一个循环中提取的特征和 Proposal 集的回归器获得。
给定的 Proposal 通过与所有个gt-boxes 计算IoU来比较它们之间的重叠。如果这些比较中没有一个是当前循环选择的阈值以上的IoU,那么将标签分配给,对应于“背景”类。否则,将对应于具有最大IoU的gt-bbox 的类别的标签分配给:
分配的标签是。循环的检测Head损失可以像Cascade R-CNN [13]中那样计算:
其中是分配给建议框的一组标签,是一个正系数。分类损失是一个多类交叉熵损失。如果不为零,还会使用定位损失,它是通过平滑L1损失计算的。
至于由M1 Mask 头执行的分割分支,采用一个单独的RoI提取模块来获得由B1检测Head提供的建议框的特征。与HTC类似,但使用单个 Mask 头,-CNN使用一个内部循环次迭代,其中,意味着在-CNN的第一个循环中,执行一次迭代(),在第二个循环中执行两次迭代,依此类推。在每次内部迭代中, Mask 头接收的输入是特征与一个卷积应用于前一次内部迭代的输出的和:
其中,在第一次循环中,应用于一个空张量,对于随后的迭代,则应用于前一次迭代的输出。通过这种机制,网络会迭代地改进其分割输出。
内部循环的最终输出随后通过进行上采样,以将尺寸从调整为。最后,应用另一个卷积,以将通道数减少到类别数:
对分割的损失函数是在上计算的,如下所示:
其中代表 GT 物体的分割,是二进制交叉熵损失函数。
最后,循环的总损失由之前损失的之和组成:
其中 表示一个静态定义的超参数,用于权衡每个循环的不同贡献。
作者在推理时也保持循环机制,在最后,作者合并所有预测,计算分类预测的平均值。
Fully Connected Channels (FCC)
为了进一步减少网络大小,作者 Proposal 用卷积层替换全连接(FC)层。在-CNN模型中,它们包含在两个模块中:检测Head和Mask IoU分支[45],后者为每个 Mask 学习一个质量分数。
在检测Head中,前两个FC层在定位和分类任务之间共享,然后每个分支有一个更小的FC层(见图4(a))。作者的目标是替换前两个共享的FC层,它们包含大部分权重,用卷积层以获得更轻的网络(见图4(b))。以下作者将用来指代这两个卷积层。输入特征图的形状为(是 Proposal 的数量),其宽度和高度非常小。[12]解决了类似问题,证明了随着核尺寸的增加,性能会得到提升,几乎覆盖了整个特征形状。作者选择了一个大的核尺寸,填充为3,以保持输入形状,将输入通道数减半。因此,第一个层的输入通道为256,输出为128,而第二个层将通道从128减少到64。
图4(c)展示了另一种版本,用两个具有小核的卷积(,填充3和,填充1)替换每个卷积,目的是提高平均精度和执行时间。表1显示了引入两种版本所获得的显著减少。
FCC的一个更重版本还包括在卷积之前的一个非局部层(见图4(d)和(e))。作者的非局部层与原始版本[46]不同,将内部卷积的核从
增加到
,以更好地利用输入特征中流动的信息。增加的执行时间缺点可以在将来的版本中减轻,例如,通过使用深度卷积[47]或类似机制。
在参数数量方面,FCC架构将它们从14M减少到2.2M,2.8M,8.6M和9.2M,如果作者分别使用版本,,和。
这些架构变化也考虑到了Mask IoU模块,该模块由四个卷积层和三个FC层组成。在这种情况下,前两个FC层也被替换,实现了以下权重减少:从16.3M减少到4.6M,5.1M,10.6M和11.1M,分别对应版本,,和。
正如[14]之前所注意到的,架构受到其试图解决的任务的影响。在作者的案例中,作者观察到卷积可以成功替换所有情况下的FC层。但是,如果任务涉及分类,则需要一个保留空间敏感性信息的机制(带有增强的非局部模块)。相反,当网络学习回归任务时,如Mask IoU分支,不需要注意模块。
Generic RoI Extraction Layer (GRoIE)
FPN是一种常用的架构,用于在不单独细化每个尺度的前提下从不同图像分辨率中提取特征。在类似于本文提到的两阶段检测框架中,FPN网络的输出层是试探性地作为顺序RoI池化的唯一来源。然而,尽管公式设计得非常好,但很明显,这一层是随意选择的。此外,仅将由 Backbone 网络提供的层组合起来,可能导致FPN层中低 Level 和高 Level 信息的非均匀分布[8]。这种现象需要找到一种方法,通过选择其中之一以避免丢失信息,并正确地将它们组合起来,以获得重新平衡的分布。从GRoIE[12]的提升中可以看出,如果通过一些额外的卷积滤波器适当地聚合所有层,更有可能产生更高质量的特征。目标是通过考虑所有层来解决FPN的特征不平衡问题,将学习最佳聚合方式的任务留给网络。
原始的RoI提取层架构仅由RoI池化器和用于选择应用RoI池化器以提取特征的FPN层的数学函数组成。在图5中,展示了GRoIE四阶段架构。给定一个 Proposal 的区域,从每个FPN层(第一阶段)池化一个固定大小的RoI。然后,对每个FPN层产生的个结果特征图(每个FPN层一个)进行单独的预处理(第二阶段)并将它们相加(第三阶段),形成一个单一的特征图。最后,在后期处理阶段(第四阶段)提取全局信息。预处理和后期处理阶段由单个或多个层组成,具体取决于提供最佳性能的配置(详见实验部分)。这些可以由简单的卷积层或更先进的注意力层(如非局部块[46])组成。
GRoIE架构保证了所有尺度的平等贡献,从所有FPN层中蕴含的信息中受益,并克服了选择任意FPN层的局限性。这个过程可以应用于目标检测和实例分割。作者的工作专注于改进GRoIE模型,并评估预处理和后期处理阶段的新构建块。特别是,正如作者对FCC所做的那样,作者为卷积层测试了更大和矩形的核,以更好地利用相邻特征之间的密切相关性。当应用于包含注意力机制更复杂的非局部模块时,涉及邻近特征的优势更为明显。然而,正如作者在消融研究中将看到的,正确地完成链中的这一步非常重要。## 4 实验
本节报告了为证明所提出架构有效性的广泛实验。在介绍了数据集、评估指标、实施细节和表格图例之后,以下小节报告了架构的三个主要创新点上的结果,即递归精化R-CNN(-CNN)、全连接通道(FCC)和通用RoI提取层(GRoIE)。最后一个小节展示了所有这些创新点如何共同为几种最先进的实例分割架构带来性能优势。
Dataset and Evaluation Metrics
数据集。与大多数近期关于实例分割的研究一样,作者在MS COCO 2017数据集[48]上进行了作者的测试。训练数据集包含超过117,000张图片和80个不同类别的目标。
评估指标。作者使用了python的_pycocotools_软件包提供的相同评估函数,在COCO minival 2017验证数据集上进行,该数据集包含5000张图片。
作者报告了边界框()和分割()任务的平均平均精度(AP)。主要指标是在IoU阈值从0.5到0.95的平均结果上计算的。其他指标包括和,分别对应0.5和0.75的最小IoU阈值。分别为小型()、中型()和大型()目标计算了单独的指标。
Implementation Details
为了进行公平的比较,作者使用了相同的硬件和软件配置来开展实验。当原作者发布的原始代码可用时,作者使用了这些代码。否则,作者使用了MMDetection [49] 框架中的相应实现。在HTC的情况下,作者没有考虑语义分割分支。
除非另有说明,以下配置已被使用。作者在2台服务器上进行了分布式训练,每台服务器配备了2x16 IBM POWER9核心和256GB内存以及4个配备Nvlink 2.0和16GB内存的NVIDIA Volta V100 GPU。每次训练包括12个周期,使用随机梯度下降(SGD)优化算法,每个GPU的批处理大小为2,初始学习率为0.02,权重衰减为0.0001,动量为0.9。学习率衰减的步骤设置在周期8和11。至于图像,作者将图像的长边和短边固定为1333和800,保持宽高比。ResNet50 [50] 被用作 Backbone 网络。
Table Legend
为了便于理解下表,作者简要介绍所使用的符号表示。由于 -CNN 在训练和评估阶段都存在循环,作者分别用 和 表示训练和评估循环的次数。每当只报告 时, 的值默认与 相同。在 HTC 的情况下, 对应于阶段的数量。
列 (头)指定包含多少对检测(B)和 Mask (M)头。在有多对()的情况下,列 Alt. (交替)提供了每个循环使用哪一对的信息。例如,在表5的第3行中,模型在训练和评估时使用三个循环和两对B和M。列 Alt 报告 "abb",意味着 B1 和 M1 只在第一个循环中使用,而 B2 和 M2 用于第二个和第三个循环。
列 、、、 是标志,分别表示带有相关损失的 Mask IoU 分支的存在、用卷积替换全连接(FC)层(),在检测Head内部(在表6中)或 Mask IoU 分支(在表7中),最后,在 卷积前后引入作者的 核的非局部块( 和 )。列 Speed 指的是在评估阶段每秒处理的图像数量,批量大小为1,且使用一个GPU。
Results for Recursively Refined R-CNN (-Cnn)
递归精细化R-CNN(-Cnn)部分的结果开始。
4.4.1 Preliminary analysis of -Cnn
描述。作者将Mask R-CNN和HTC与两个-CNN模型进行了比较:朴素版本(一对边界框B和 Mask M)和更深层版本(两对,交替为_aab_)。为了进行公平的比较,Mask R-CNN的训练周期从12个增加到了36个,同时使用了HTC网络的优化配置。
结果。朴素版本在参数数量上减少了最多,与HTC相比,在上降低了,但在上提高了。至于更深层版本,它在上与HTC持平,并在上进一步扩大了差距,同时仍然节省了大量参数。它们与HTC一样,需要相同的内存量和推理时间。这是由于训练过程和所使用的组件与HTC非常相似。
与Mask R-CNN相比,作者的-CNN(在两个版本中)即使Mask R-CNN训练的周期是其三倍(第2行)时,仍然表现优于它。这可以解释为训练网络的非常不同的方式,有助于在训练期间获得更高质量的边界框。此外,-CNN的训练阶段比Mask R-CNN更快(大约25小时对比35小时),尽管-CNN在评估阶段也要求使用循环机制这一缺点。
4.4.2 Ablation study on the training phase
描述。在这些实验中,网络的训练循环次数从1到4不等。评估的循环次数相应地变化。这些实验中所有测试的基本架构都是带有单一检测和 Mask 头对的朴素-CNN。这意味着所有的-CNN模型具有相同数量的参数,但如果循环次数增加,它们将接受更多的训练。
表2:-CNN、Mask R-CNN和HTC之间的比较。_模型_列包含了参数数量(百万)。表示用36个周期进行训练。
结果。结果在表3中报告。使用单个循环(第2行)不仅产生了与第3.1节提到的Mask R-CNN相似的IoU分布,而且导致了相似的性能。使用两个循环(第3行),由于IoU的重新平衡,作者可以达到-CNN几乎最佳性能,超过了Mask R-CNN的表现。在三个循环的情况下,网络提供了更多高质量的 Proposal ,在两个任务上达到了更好的性能。增加四个循环进行训练并没有改善目标检测任务,但仍然提高了分割性能。
4.4.3 Ablation study on the evaluation phase
描述。在这个实验中,作者关注评估阶段循环次数对结果的影响。作者将上述提到的朴素架构视为预训练模型,并改变评估阶段的循环次数。
结果。从表4中,作者观察到在评估阶段不能避免使用循环,因为它起到向网络提供高质量RoIs的作用。然而,仅使用两个循环,AP值已经显著提高(第3行)。从四个循环开始,无论是检测任务还是分割任务,性能都趋于几乎稳定。
4.4.4 Ablation study on a two-heads-per-type model
描述。在这个实验中,作者评估了在架构中改变循环次数和对头对之间的交替对性能的影响。值得强调的是,增加循环次数并不会改变权重的数量。
结果。表5报告了结果。在两个循环的情况下(第2行),模型的准确度表现良好,但仍然不如HTC。在三个循环和 aab 交替(第4行)的情况下,-CNN在两项任务上都超过了HTC。
在四个循环(第6行和第7行)的情况下,性能都高于HTC,尤其是对于_aabb_交替(第6行)。最后,在五个循环(第8行)的情况下,性能不再增加。
Results for Fully Connected Channels (FCC)
以下是全连接通道(FCC)部分的结果开头:
4.5.1 Ablation study on the Detection Head
描述. 在这一部分,作者评估了 Head 重新设计对完全卷积方法的影响。作者测试了两种版本(见图4(b-d)和图4(c-e)中的橙色部分),并在卷积之前(列)引入了具有更大核的非局部层(见图4(d)和(e)),为了进行更完整的消融研究,还在它们之后引入(列)。为了提供更全面的分析,还考虑了每种类型的两个 Head (列)和训练期间四个循环(列)的情况。
结果。表6总结了结果。如预期的那样,只有(见图4(b))的存在对性能有影响(见行#2与#3)。矩形卷积(行#4和图4(c)及(e))帮助几乎完全缓解了这种性能损失,接近原始性能(行#2),但与行#3相比,参数数量有所减少,执行速度也得到提升。
在之前的非局部块(行#5)提升了性能,与HTC的相匹配,并且显著超过了其。相反,在之后引入非局部块并没有带来任何好处。
在每种类型两个 Head 和四个循环的情况下,产生了比行#3更高的性能(见行#9和#8)。矩形卷积(行#10)与行#9相比,性能有所下降,但速度有了较好的提升。与之前的情况一样,引入作者的非局部模块(行#11和#12)相对于没有模块的模型(行#9和#10)带来了性能上的显著提升。总结来说,仅含的FCC使网络更轻量化,减少了14至18的权重百分比,尽管与使用全连接层相比,性能略有下降。此外,通过在之前插入非局部块,性能得到了提升,超过了原始性能,尽管执行时间有所增加。
4.5.2 Ablation study on Mask IoU module
描述。为了进一步提高性能,作者从[45]中借鉴了Mask IoU学习任务,并重新设计了其分支,以引入尽可能少的权重。在测试原始Mask IoU分支之后,就像之前在检测Head上所做的那样,作者进行了一项消融研究。作者考虑了两个 Baseline :表7中的较轻量级(第2行)和性能较好的(第8行)模型。它们分别对应于表6中的第6行和第11行。结果。表7总结了结果。如预期的那样,原始Mask IoU模块(第3行和第9行)改善了分割效果。与检测Head不同,仅含和核的重设计的Mask IoU分支(第4行和第10行)就足以与原始分支(第3行和第9行)保持几乎相同的性能,但引入了很少的新参数,几乎不影响执行时间。与之前的实验相反,矩形卷积(第5行)或作者的非局部块(第6行和第7行)没有带来任何明显的改进。
Results on Generic RoI Extractor (GRoIE)
在以下实验中,作者选择Faster R-CNN作为 Baseline ,以便拥有一个通用且轻量级的模型进行比较。作者接下来的实验目标是找到预处理和后处理的最佳层。Conv ,,意味着作者分别使用 Kernel 为,,的2D卷积。Conv 表示作者使用两个连续的2D卷积层,分别具有和。对于非局部块[46],作者测试了由 Kernel 为的卷积层组成的原始架构以及一个定制版本,该版本由 Kernel 为的卷积层组成。
4.6.1 Pre-processing module analysis
描述。对于这项消融分析,作者没有应用任何后处理。作者测试了两种类型的预处理:具有不同核大小的卷积层和非局部块。
结果。表8展示了结果。核大小的增加提高了最终性能,确认了相邻特征之间的紧密相关性。与第4.5.1节中对检测Head有帮助的矩形卷积不同,在这里使用矩形卷积并没有帮助。在非局部模块的情况下,原始模块并没有预期的优势。作者的带有较大核的非局部模块相对于其他模块有轻微的优势,但不足以证明引入的减速是合理的。
4.6.2 Post-processing module analysis
描述。在这个实验中,作者分析了后处理模块,在不应用任何预处理的情况下。
表9:后处理模块的消融分析。
结果。通过比较表8和表9,作者可以注意到性能趋势是相同的。然而,在后处理中,卷积性能的增加不太明显。与原始的非局部版本相比,作者使用核的版本获得了相当高的改进。
4.6.3 GRoIE模块分析
描述。最后,作者用最佳性能的预处理和后处理模块测试了GRoIE架构:以卷积作为预处理,以带有核的非局部作为后处理。
结果。从表10中,作者可以观察到性能的大幅提升,超过了原始AP 1.9%。
Experiments on SBR-CNN
描述。 在本次实验中,作者比较了Mark-RCNN、CondInst [42]和HTC与作者的SBR-CNN(自平衡R-CNN)模型的性能,配置如下:表现最佳的三循环模型,配备了重建的检测Head和MaskIoU头(见表7第4行),作者的GROIE使用最佳配置(见表10)替代了边界框和 Mask RoI提取器。此外,作者还考虑了GC-Net [31]和可变形卷积网络(DCN)[51],以探究作者所带来的性能提升是否与底层架构无关。为了尽可能公平,作者还比较了GC-Net和DCN与HTC的结合。例如,HTC+GC-Net意味着作者考虑了这两种架构的组合。
结果。从表11中作者可以看到,无论架构如何,作者的SBR-CNN在两个任务的所有指标上都达到了最高的AP值,即使对手是与HTC合并的模型。更具体地说,将其他模型与SBR-CNN融合不仅保持了性能提升,还增加了对SBR-CNN有利的差距。
以为例,观察独立情况下(第4行)的,SBR-CNN仅比HTC(第3行)高出0.3%。但是,当与GC-Net和DCN结合时,这种改进甚至更高(在GC-Net的情况下为0.9% - 第7行与第6行 - 在DCN的情况下为0.6% - 第10行与第9行)。考虑所有指标,改进最多增加了1.5%(见第7行与第6行的)。
在的情况下,当比较SBR-CNN+GC-Net与HTC+GC-Net(第7行与第6行)时,波动范围从+2.1%到+2.6%。考虑所有指标,最高的改进是+4.1%(见第10行与第9行的)。
5 Conclusions and future works
作者提出了一种新的目标检测和实例分割架构,名为SBR-CNN,它解决了影响源自Mask R-CNN的两阶段架构的两个内在不平衡问题:通过一种新的机制细化RoIs,在检测Head和RoI提取器之间循环以及分割头内部的 Mask 细化循环,来解决正输入边界框与IoU分布不平衡的问题;此外,作者还解决了影响FPN层的特征不平衡问题,提出了一种表现更好的RoI提取器,它能更好地整合低层和高层信息。最后,作者探讨了将模型头重新设计为轻量级全卷积解决方案(FCC)的效果。作者的实证研究表明,如果任务涉及分类,就有必要通过增强的非局部块保持一定的空间敏感性信息;否则,当涉及回归任务时,卷积头就足够了。
作者的SBR-CNN成功整合到其他最先进的模型中,仅使用小型 Backbone 网络如ResNet-50,就能达到45.3%的目标检测AP和41.5%的实例分割AP。在图6中,有一些SBR-CNN与Mask R-CNN的实例分割对比示例。很多时候,作者的检测置信度较低,分割更精确(见顶部的鸟)。作者的SBR-CNN模型也倾向于有更少的假阳性(见底部图像中的人),可能是由于高置信度值较少的后果。在图7中,作者还与HTC得到的结果进行了比较。作者的模型能够在图像中找到更多的目标,而且对于两个网络都找到的目标,作者也能获得更好的分割。最明显的案例是底部的例子。
参考
[1].Self-Balanced R-CNN for Instance Segmentation.
点击上方卡片,关注 「AI视界引擎」 公众号