赞
踩
关注公众号,发现CV技术之美
今日分享 ICCV2021 论文『MultiTask-CenterNet (MCN): Efficient and Diverse Multitask Learning using an Anchor Free Approach』,MultiTask CenterNet-CV多任务新进展!一节更比三节强的 MultiTask CenterNet,用一个网络同时完成目标检测、语义分割和人体姿态估计三个任务。
论文链接:https://arxiv.org/abs/2108.05060
项目链接:尚未开源
导言:
多任务学习是机器学习中的一种常见的方法,它允许使用共享的结构来训练多个目标。研究表明,通过一起训练多个任务,可以节省推理时间和计算资源,而多个目标任务的性能则保持在相似甚至更高的水平。然而,在感知相关的多任务网络中,只能运用在密切相关的任务,如目标检测、实例、语义分割或深度估计。具有不同任务的多任务网络及其对不同子任务效率的影响尚未得到很好的研究。
在本文中,作者增强了anchor-free的CenterNet方法来训练多个不同的感知相关的任务,包括目标检测和语义分割以及人体姿态估计。作者将这个DNN网络称为MultiTask CenterNet(MCN)。此外,作者还研究了不同的MCN设置的效率。MCN可以同时执行多个任务,在某些情况下甚至超过其相应的单个任务网络的性能。更重要的是,与单个任务网络的组成相比,MCN结构减少了推理时间,减少了网络大小。
01
Motivation
目前DNN被用到了生活中的各种任务当中,虽然有些任务很容易定义,比如图像分类,但很多任务是非常复杂的,需要复杂的数据处理流程。自动驾驶车辆的构建或对任意语音命令的理解就属于后者。这些复杂的任务很难以端到端的方式训练。因此,这些任务可以分成几个子任务,这些子任务可以由DNN分别处理,并且可以用损失函数很好地描述每个子任务的目标。在后面的步骤中,这些对子任务的结果进行后处理,达到最终的目标。
目前,大多数基于DNN的感知技术每次都集中于单一的任务上(如分类、检测、深度估计、语义分割、姿态估计等)。这种类型的学习机制可以通过单任务网络(STN)来学习,这称为单任务学习(STL)。
与STL相比,通过多任务网络(MTN)的多任务学习(MTL)的研究表明,多个任务相互关联的训练,有时甚至可以提高训练和预测的质量。当网络接收到相同类型的输入时,很可能会提取出类似的特征。在这种情况下,一个共享的backbone就可以充分利用这些输入特征的相似语义。
此外,从硬件的角度来看,共享特性处理步骤可以减少延迟、减少存储空间。在目前特定任务的网络中,通常由两部分组成,一部分是用于提取特征的主干网络,另一部分用于生成特定任务输出的head。
在本文中,作者将 anchor-free CenterNet增强到多任务网络(MCN),用于目标检测、语义分割和人体姿态估计(结果如上图所示)。与语义分割任务一起训练时,MCN可以在MSCOCO姿态估计任务上能够达到单一模型更好的性能。虽然不是所有的任务组合都性能相同,但MCN中节省的计算时间和网络大小被证明是有效的。
02
方法
本文研究了多任务网络对效率的提高,以及不同学习任务下对共享训练的影响。本文提出的MCN的网络结构如上图所示,MCN由堆叠的卷积层、ReLU激活函数和BatchNorm组成。主干网络可以采用ResNet或者DLA用于特征提取,后处理中的head可以用于不同的任务。
对于目标检测和人体姿态估计中,MCN架构中使用CenterNet作为Anchor Free的检测算法;语义分割采用全卷积方法。像CenterNet这样的Anchor Free检测算法可以直接使用由特征图生成的heatmap,而不需要使用默认边界框对边界框检测进行离散化。
与此相反,如MaskRCNN或如SSD等目标检测算法使用了默认的边界框,然后进行非最大抑制。在基于CenterNet的Anchor Free方法中,检测框被直接转换为二维高斯分布,其最大值标记了检测框的中心(如上图所示)。检测任务的损失函数可以由三部分组成:一部分是检测框中心位置的损失函数
,一部分是检测框大小的损失函数
,一部分是检测框的偏移量损失函数
。
CenterNet还可以用于人体关键点检测,独立于其目标检测架构。在该模型中,人体的关节被提取作为关键点。关键点可以类似于 的检测框中心损失函数,其偏移量用 进行回归。不同于标准的CenterNet,在提出的MCN体系结构中,作者训练了一个用于多个类的目标检测的模型,以及对person类别联合检测head。
此外,作者还扩展了语义分割的MCN架构。在语义分割架构中,模型对图像进行了像素级别的分类。主干网络生成的feature map被上采样到segmentation map的大小。然后用Softmax函数进行归一化,得到每个类的概率,这部分损失函数可以计为 。
就像之前的多任务一样,作者将这三个视觉任务一起训练。检测任务用 、 和 进行训练,而人体姿态估计除了对人体进行目标检测外,还需要 和 。因此,具有目标检测、语义分割和人体姿态估计的MCN的总损失函数描述如下:
其中
,
MCN训练的数据集是MSCOCO。它包含118k个图像,标记有80个类的实例分割。对于包含关键点的任务,需要向任务中继续添加MSCOCO关键点的标注信息。这些关键点的信息只适用于“person”类别。
因此,MCN可以训练具有一个类(“person”)或所有类的任务(如上图所示)。
03
实验
首先,作者单独进行检测和分割,以及同时训练检测、分割的实验。可以看到,在分割任务上,多任务的性能和单任务相似;在检测任务上,甚至比单任务高一点。
上图展示了检测、分割单独训练和联合训练的定性结果。
上表展示了单个任务和多个任务仅对单一类(person类)COCO的结果。对于person类,分割和检测head显示出相似的性能,关键点检测任务上,检测+分割+关键点三个任务联合训练比检测+关键点两个任务训练高出了0.5%。
上图为MCN对于单一类(person类)任务的定性结果。
此外,作者还评估了MCN和多个单一网络在三个任务上的速度对比,使用MCN网络可以进行高达142fps的GPU处理,如上图所示(Backbone为resnet18)。
为了验证MCN减少的参数量,作者对比了三个单一网络和MCN的参数量对比,如上表所示(backbone为DLA-34)。可以看出,多个单一网络是MCN参数的三倍左右。
04
总结
在许多需要将任务区分为多个子任务的应用中,多任务网络可以通过使用相同的主干网络来解决。多任务网络在计算机视觉中有广泛的潜在应用领域,如自动驾驶和医学成像。
在本文中,作者提出了多任务CenterNet(MCN)架构。MCN可以通过共享大部分网络层,减少延迟和参数的数量,从而显著减少推理时间和网络大小。与此同时,即使使用相同的backbone,多任务性能依旧可以保持在高水平。
通过比较与不同head的网络,作者还展示了哪些head对其他head的性能有很高的影响,以及哪些不同类关系在性能损失中起到了作用。同时,即使在Backbone中大多数参数都是共享的,head的添加通常也不会降低性能。
作者介绍
研究领域:FightingCV公众号运营者,研究方向为多模态内容理解,专注于解决视觉模态和语言模态相结合的任务,促进Vision-Language模型的实地应用。
知乎/公众号:FightingCV
END,入群????备注:CV
Copyright © 2003-2013 www.wpsshop.cn 版权所有,并保留所有权利。