CVPR 2023 | 自监督学习框架SOLIDER:用于以人为中心的视觉

2023-05-08 13:26 715 阅读 ID:1034
将门
将门

SOLIDER是CVPR2023录用的一篇来自于阿里达摩院的工作,文章全名叫做Beyond Appearance: a Semantic Controllable Self-Supervised Learning Framework for Human-Centric Visual Tasks。它是一个专门用于支持各种人体任务的视觉预训练模型。在现今的各种视觉智能场景中,对图像中人的理解和分析一直都是一个非常重要的环节。SOLIDER提供一种自监督训练方式,让我们可以充分利用世面上大量的人体无标注数据训练出一个可以通用于下游各种人体视觉任务的预训练大模型。

论文标题:Beyond Appearance: a Semantic Controllable Self-Supervised Learning Framework for Human-Centric Visual Tasks
论文链接:https://arxiv.org/abs/2303.17602
项目链接:https://github.com/tinyvision/SOLIDER  

一、背景介绍

现今以人为中心的视觉任务引起了越来越多的研究关注,因为它们在现实场景中有着广泛的应用。我们的目标是从大量未标注的人体图像中学习一个通用的人体表征。基于此,我们提出了一个自监督的学习框架,叫做SOLIDER。与现有的自我监督学习方法不同,该方法利用人体图像中的先验知识来自监督训练模型,为表征引入更多的语义信息。

此外,我们还注意到不同的下游任务通常对预训练的人体表征中语义信息和表观信息的需求程度各不相同。例如人体解析任务(human parsing)需要表征中包含更多的语义信息,而人体再识别任务(person re-identification)则需要更多的表观信息来进行不同人的识别。因此,一个单一的人体表征并不能适用于所有下游任务。SOLIDER 通过引入一个带有语义控制器的条件神经网络来解决这个问题。待预训练模型训练完成后,用户可以通过向语义控制器输入希望表征包含语义信息的比例,让控制器调整预训练模型,以生成符合指定语义信息量的人体表征。我们可以使用包含不同语义信息量的人体表征去适应不同的下游任务。我们实验发现SOLIDER可以在六个下游人体视觉任务中超过了state of the arts。

二、主要贡献

1. Semantic Supervision from Human Prior: 利用人体图片先验打伪标签,进行自监督训练,使得预训练模型包含更多的语义信息。

2. Semantic Controller: 引入一个语义控制器,控制预训练模型中语义信息的含量多少,来适应不同的下游任务。

三、具体方法

3.1 Overview

整个SOLIDER的训练流程图如图1所示:

                                                                                图1

3.2 Semantic Supervision from Human Prior

我们发现人体图片本身包含很强的先验。大部分人体图片中,人体基本占满整个图片,并且头朝上,脚朝下。这个先验之前也被很多工作使用过[1,2],因此,我们尝试用这种先验来指导模型自监督训练。简单来说,对每张图片,我们将图片像素特征进行聚类(这里我们以3类为例),沿Y轴将3类分别定义为上半身,下半身和脚。对每个像素根据其聚类结果打上伪标签,如图 2(b)所示。然后进行像素级别的3分类训练。

                                                                                 图2

聚类后我们发现很多时候由于噪声比较多,聚类效果并不好。为了达到更好的效果,借鉴[2]的思想,我们首先根据像素特征的模长进行2分类,将模长小的那类定义为背景类,如图2(d)所示。再对模长长的那类进行3分类聚类,得到前景中对应的三个语义part,如图2(e)所示。

除此之外,我们相信即使遮住了某个part,根据相邻语义part,模型应该有能力预测出被遮挡这个part属于哪一类。为了进一步提升语义信息的影响,我们引入MAE的思想,随机遮住某个part,然后让模型预测正确结果,进行自监督训练。

我们的框架以DINO作为baseline,模型的语义信息损失函数如下所示:

这里 fs(u,v) 表示来自于student的特征图中像素点(u,v) 的特征向量, y 为对应像素的聚类伪标签。整体损失函数如下所示:

3.3 Semantic Controller

我们发现不同的下游任务对人体表征中语义信息的含量多少有着不同的需求,我们希望一次训练得到的预训练模型可以适合不同的下游任务。因此,我们引入一个语义控制器,将整个预训练模型变成一个条件网络。语义控制器如图1中所示,它被加到了backbone每个block的后面,它的输入是一个标量 λ 和前一层的特征图,这个标量 λ 就是用来控制表征中语义信息的含量。

在训练时,首先我们将λ设为1,送到DINO中的teacher branch,得到语义伪标签。之后,我们随机采样一个λ值(范围为0~1,文中也给出了不同采样分布的比较),得到对应的teacher和student branch的特征图ft和fs,用DINO的contrastive loss训练ft和fs,用语义伪标签训练fs。最终公式如下所示:

在下游使用时,针对特定任务,我们预先设定对应的 λ 值,比如对行人再识别任务,我们将 λ 设为0.2,对于人体检测和人体解析任务,我们将 λ 设为1.0。然后进行下游任务的全参数finetuning。

四、实验结果

4.1 语义信息验证

首先,我们分析SOLIDER训练的模型是否包含了更多语义信息,如图3所示,左侧为DINO训练的模型,右侧为SOLIDER训练的模型。图中不同颜色表示不同人,不同形状表示人的不同语义part。可以看到左侧图片中,同一个人的不同part都聚在一起,不区分不同part。而右侧图片中,包含相同语义的part会聚在一起,即使来自于不同人,并且,如果相同语义的part表观也相似,他们会离的很近(比如红绿三角),表观不相似会有一定的距离(比如蓝红三角)。这说明相对于DINO训练的模型,SOLIDER模型包含了更多的语义信息。

4.2 λ验证

其次,我们想验证λ是否能够反映甚至控制表征中语义信息的含量。我们统计了两个距离,分别是训练集中不同图片同一个语义part之间的平均距离(inter-image distance)和同一个图片中不同语义part之间的平均距离(intra-image distance)。如图4所示,对于SOLIDER训练好的预训练模型,随着λ 变大,输出特征的intra-image distance在不断变大,inter-image distance在不断变小,说明不相同语义的part在不断拉近,也就是说特征的语义表达能力越来越强。

4.3 消融实验和SOTA比较

最后,我们对提供了相应的消融实验(图5)和state of the arts之间的比较(图6)。可以看到在绝大多数任务上,我们的效果要优于当前的state of the art方法。

                                                                                图5
                                                                                 图6

五、一些观点

1. 这里我们训练只采用了LUPerson数据集,并且能看出来效果并未达到瓶颈,随着数据量的增加,效果还能进一步提升。

2. CVPR23上OpenGVLab有一篇专注于human-centric pretrain的文章HumanBench,很惊艳的工作,很开心能看到有更多学者关注于human-centric pretrain的研究。HumanBench的工程量也非常庞大。但和我们不同的是,它更关注于multi-task的监督训练,希望模型在下游不finetune就能有个很棒的效果。而我们更侧重于自监督预训练,为了充分利用大量无标注数据。

参考文献

1. Yifan Sun, Liang Zheng, Yi Yang, Qi Tian, and Shengjing Wang. Beyond part models: Person retrieval with refined part pooling. In ECCV, 2018.

2. Kuan Zhu, Haiyun Guo, Zhiwei Liu, Ming Tang, and Jinqiao Wang. Identity-guided human semantic parsing for person re-identification. In ECCV, 2020.

作者:陈威华

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn