Self-Correction for Human Parsing https://arxiv.org/pdf/1910.09777v1.pdf
LIP排行榜:http://sysu-hcp.net/lip/parsing_lb.php
为细粒度语义分割任务(例如人体解析)标注数据是挑战性的。不同语义部位之间,以及具有相似外观的不同类别之间的模糊边界通常会造成标注的混淆,从而导致标签出现噪声。为了解决标签的噪声问题,我们提出一种净化策略,称为人体解析自纠错(SCHP),以逐步提高监督标签和训练得到的模型的可靠性。具体地是,我们以一个用噪声标签训练的模型作为初始模型,设计了一个循环学习的规程,通过迭代地在线聚合当前习得的模型和之前的最优的模型,推断出更可靠的伪标签。而且,这些纠正过的标签可以进一步提升模型的性能。这样,在自纠正的学习轮回中,模型和标签将相互作用得变得更加鲁棒和准确。得益于SCHP的优越性,我们在2个单人解析的基准上(LIP和Pascal person-Part)上取得最先进性能。我们的整个系统在CVPR2019 LIP挑战赛中排名第一。开源:https://github.com/PeikeLi/Self-Correction-Human-Parsing
1 引言
人体解析是一项精细的语义分割任务,其目的是将人体中的每一个图像像素分配给一个语义类别,如手臂、腿、裙子、裙子等。在图像编辑、人体分析、虚拟试穿和虚拟现实等几个潜在的应用场景中,理解人的详细语义部分是至关重要的。全卷积神经网络的最新进展[22,3]实现了人类解析任务的各种性能良好的方法[18,27]。
为了学习可靠的人体解析模型,需要大量的像素级掩模进行监督学习。然而,为人体解析标记像素级注释比那些传统的像素级理解任务困难得多。特别是对于那些传统的语义分割任务[22,3],属于一个实例的所有像素共享同一个语义标签,这很容易被标注者所判别。而人体解析不同,标注者需要区分每个人体部位。此外,不同部位之间的模糊边界会造成混淆,这使得任务更具挑战性。
因此,由标注者的观察粗心造成的标签噪声是不可避免的,如图1a所示。这种不完整和低质量的标签是阻止人体解析性能进一步提高的重要障碍,而这一点却常被忽略。本项工作中,我们研究人体解析任务中标签带噪声的训练问题,目标是通过在训练阶段逐步优化带噪声的标签来提高模型的性能和泛化能力。
我们提出一种净化策略,称为SCHP,在训练过程中逐步提高标签和模型的可靠性。具体地说,整个SCHP框架可分为2个子过程,即模型聚合和标签优化过程。从一个用噪声标签训练的模型作为初始模型,设计一个循环训练规程,迭代地在线聚合当前习得的模型和之前的最优模型,推断出更可靠的伪标签。此外,纠正过的标签还可以反过来提高模型的性能。这样,自纠正机制能够使模型和标签相互促进,从而在训练过程中产生更鲁棒的模型和更准确的标签。
此外,为了解决不同语义部位之间的边界不明确问题,我们提出了一个网络结构,称为边缘感知的增强上下文嵌入(A-CE2P).。理论上,我们所提的网络是CE2P[27]的一个直观的推广和扩充。我们使用一致性约束来增强CE2P,使得边缘信息不仅通过不同层级的特征图融合隐式地改进结果,而且在人体解析和边缘预测之间有一个显式的约束。请注意,我们并没有声称我们在网络结构上有创新,但是我们取得了更优的性能。
总体地说,我们的贡献如下:
——提出简单有效地自纠正策略,通过在线模型聚合和标签优化,使得模型性能和标签准确性能够相互促进;
——提出一个通用的人体解析网络A-CE2P,隐式和显式地捕获边缘信息和解析信息;
——在两个流行的基准上进行广泛研究,并取得最先进水平,在大规模基准LIP上取得59.36 mIoU,比之前的最好方法高出6.2个点。
2. 相关工作
人体解析 人体解析的研究分几个不同方面,早期的研究[31,18]将姿势估计和人体解析同时作为多任务学习。[27]将边缘预测和人体解析相结合,以提升边缘的预测。大多数先前工作假设标签是高质量的。然而,因为时间和成本问题,标签是有噪声的,如图1a所示。人工清洗标签是不现实的。因此,我们提出一种新的自纠正机制来解决这个问题。
伪标签 伪标签是半监督学习中的一种常用技术。在半监督学习中是给无标签数据生成伪标签。然而,在我们的监督学习框架中,因为我们无法定位到标签的噪声,因此所有的真值标签都是被平等对待的。从蒸馏的角度讲,伪标签包含很多暗知识[13],这些知识可以作为净化的信号。在这些发现的启示下,我们设计了一个循环迭代的规程,迭代地在线聚合当前习得的模型和之前的最优模型,推断出更可靠的伪标签。同时,这些纠正过的伪标签还可以反过来提升模型的性能。
自组合 有一系列工作[16,29,15]研究各种场景下的自组合方法。例如,[29]是将模型权重取平均,用在半监督学习中。[15]也是对模型权重取平均并取得更好的泛化性能。与他们的方法不同,我们提出的自纠正方法是通过一个模型和标签相互促进的过程来纠正训练数据带噪声的标签。我们用的是一种在线的方式,同时对模型权重和模型输出取平均。就我们所知,我们是首个将标签噪声问题公式化为模型和标签相互优化,并用在细粒度语义分割中以进一步提升性能。此外,我们所提方法是在线训练,基于循环训练规程,只带来很少的额外计算。
3. 方法
3.1 回顾CE2P
CE2P[27]是一个很好的用于人体解析任务的框架,其是将边缘预测和人体解析结合起来,以获得精确的边缘区域预测。具体地说,CE2P由三个关键分支组成,即解析分支、边缘分支和融合分支。其中,边缘分支用来生成与类无关的边缘特征图。在融合分支中,来自解析分支的语义感知特征和来自边缘分支的边缘感知特征被拼接起来,以进一步地生成精确的人体解析输出。
尽管CE2P是一个已经整合看语义分割领域中最有用功能的框架,但仍有一些有待进一步加强的地方。首先,传统的交叉熵损失只是间接地优化mIoU指标;其次,CE2P只是在不同层级的特征图融合的基础上,通过边缘预测隐式地改进解析结果,没有显式的约束来确保解析结果保持边界预测的几何形状不变。
此外,很少有人研究CE2P框架的多功能性,即容纳其他模块的能力。其关键功能,解析分支可分为3个模块,即主干模块、上下文编码模块和解码模块。具体地说,主干模块可以使用任何的全卷积结构的主干网,例如基于ResNet[12]的语义分割网络。上下文编码模块利用全局上下文信息来区分细粒度的类别信息。这个模块可以是任何有效的上下文模块,例如基于特征金字塔的方法,如PSP[33],ASPP[4],或者基于注意力的模块,如OCNet[32]。更详细的网络架构可以参考我们的代码。
3.2 增强版CE2P (A-CE2P)
A-CE2P是CE2P的一个直观推广和增强,其可以增加额外的强大模块来提升性能。本项工作中,我们的自纠正训练使用A-CE2P作为人体解析的基本框架。图2所示是A-CE2P框架的概述。值得注意的是,A-CE2P的几个独特特性是:
有针对性地训练 对于一张图片,对于第个类别的第个像素,假设人体解析的真值标签是,人体解析的预测是。我们将使用传统交叉熵损失的像素级监督训练最小化目标定义为:
其中是像素数,是类别数。
众所周知的是,传统的交叉熵损失通常能够很方便地训练网络,但它只是间接地优化mIoU。为了解决这个问题,按照[1]的方法(也就是lovasz softmax),我们使用一个额外的、容易处理的替代损失函数来直接优化mIoU。最终的损失函数是交叉熵损失和mIoU损失的组合:
一致性约束 在CE2P中,平衡的交叉熵损失被用来优化边缘区域的预测,使学习到的边缘感知特征能够通过融合分支帮助区分人体部位,方便人体解析。
在A-CE2P中,我们建议通过显式地保持解析预测与边界预测的一致性来进一步利用预测的边界信息,即确保预测的解析结果与预测的边缘尽可能精确地匹配。直观地,我们添加了一个约束项来惩罚不匹配:
其中,是边缘分支预测的边缘映射,是解析结果生成的边缘映射。为了避免非边缘区域的像素左右该损失函数,我们只允许为正的边缘像素参与到一致性约束项的计算中。
简言之,总的损失函数是:
其中λ1、λ2和λ3是平衡这3项的超参数。通过最小化来端到端地联合训练模型。
3.3 用自纠正,在噪声中训练
以A-CE2P为网络,使用我们提出的自纠正方法,通过在线的模型和标签的相互改进过程来获得鲁棒的模型和优化的标签,过程如图3所示。
训练策略 我们所提的自纠正训练策略是一个模型和标签的聚合过程,可以迭代地提升模型性能和优化真值标签。这种提升依赖于初始模型的性能,换句话说,如果在过程中网络生成的结果不够精确的话,可能会对迭代过程有负面影响。因此,我们在获得一个好的初始模型后,也就是在原始的带噪声的训练集的损失曲线变得平坦之后,才开始我们的自纠正训练。
为了和其它方法能够公平地比较,我们缩短了初始阶段的训练时长,并保持总的训练epoch不变。在初始阶段之后,我们使用带warm restarts的循环训练规程。每个循环包含个epoch。在实践中,我们使用一个具有循环重启的余弦退火学习率规程[23](cosine annealing learning rate scheduler with cyclical restart)。和被设定为初始学习率和最终学习率,是自上一次重启后的训练的epoch数,因此,学习率规程可以公式化为:
在线模型聚合 我们的目标是从过去的最优模型中发现所有潜在的信息,以提高未来模型的性能。在我们的循环训练策略中,直观地讲,模型会在每个周期结束时收敛到局部极小值。这些次优模型之间存在较大的模型差异。在这里,我们将每个循环后得到的所有次优模型的集合表示为,是总的循环轮数。
在每一轮的最后,我们将当前轮的模型权重和前一轮的次优模型权重聚合,生成新的模型权重:
其中表示当前循环轮数,。
在用上一轮的最优模型权重来更新当前轮的模型权重后,我们对所有的训练数据在前向传播一个epoch,以重估计所有批量归一化层中的一些超参数的统计值,例如移动平均和标准差。在这些轮的模型聚合中,网络会有一个更宽的model optima,模型的泛化能力也相应的提升。
标签的在线优化 众所周知的是多类分类的软标签会包含暗知识[13]。我们的目的是挖掘所有这些暗信息,以提高模型性能,减少标签的噪声。在更新了公式(6)中的模型权重后,我们还更新训练数据的真值标签。这些生成的伪标签更加的unambiguous,更加的平滑,并且包含细粒度类别之间的相关信息,作为下一轮训练的真值标签。伪标签的连续地、迭代地优化,可以提高模型性能和模型的泛化能力。此外,伪标签还能减轻或消除原始数据标签的噪声。这里,我们将每轮后的预测的标签记为。和模型权重的取平均过程一样,我们将真值标签更新为:
其中,是模型生成的伪标签。我们所提的自纠正训练流程细节见算法1。
请注意,模型和标签是在每一轮训练完后逐步地相互改进的。整个训练过程是在线的,不需要额外的训练epochs。此外,几乎不需要额外的计算。
3.4 讨论
SCHP能推广到其他任务吗? 我们的方法对数据类型没有假设。但自校正是建立在过程中产生的软伪标签的基础上的。因此我们的方法应该可以推广到分类和分割任务上,但可能不适用于回归任务,如检测。
当数据集无噪声时,SCHP仍能带来提升吗? 虽然我们提出的自纠正方法可以在噪声数据集上带来提升,然而,当数据集的标签是相对干净的时候,在线模型聚合过程可以看做是模型的自组合,也可以带来更好的性能和泛化能力。而且,在线标签优化过程仍然可以带来提升,因为可以使用伪标签来挖掘暗知识,而不是使用独热编码的真值标签。
传导 vs. 归纳 (Transduction vs. Induction) 本项工作关注的是监督学习,然而,我们的方法也适用于半监督学习,即假设所有测试图像是一次可用的,并将所有测试样本与训练图像一起进行自校正处理。
4. 实验
本节我们将我们的SCHP和其它的单人解析最先进方法进行全面的消冗研究和比较,以验证每个组件的贡献。
4.1 数据集和评估指标
数据集 在LIP[18]和PASCAL-Person-Part[6]两个人体解析的基准上评估。
LIP[18]是最大的人类解析数据集,它包含50462幅图像,其中包含19个语义人体部分标签的像素级注释。从真实场景中采集到的图像包含了具有挑战性的姿势和视图、严重遮挡、各种外观和低分辨率的人。训练集30462张,验证集10000张,测试集10000张。
PASCAL Person Part[6]是一个相对较小的数据集,由PASCAL VOC 2010标记,包含1716张训练图像和1817张验证图像。真值标签包含6个语义部位,包括头、躯干、上/下臂、上/下腿和一个背景类。由于尺寸上的巨大变化,这个数据集具有挑战性。
指标 我们报告了人体解析任务的3个标准指标,包括像素准确度、平均准确度和mIoU。注意,mIoU常被用于表示整体性能。
实现细节 我们选择ResNet-101[12]作为提取特征的主干,并使用ImageNet[8]预训练权重。具体来说,我们固定了前三个残差层,并将最后一个残差层的步长设置为1,扩张率为2。这样,最后一层的输出被放大为输入图像尺寸的1/16。我们采用金字塔场景解析网络[33](PSPNet)作为上下文编码模块。我们使用473×473作为输入分辨率。训练的总批量大小为36。联合损失函数的超参数为λ1=1,λ2=1和λ3=0.1。初始学习率设为7e-3,采用线性递增warm up,持续10个epoch。为了比较公平,我们总共训练150个epoch,前100个epoch用于训练初始模型,接着训练5轮自纠正流程,每轮包含10个epoch。
4.2 与最新技术的比较
在表1中,我们将网络的性能与其他最先进的方法进行比较。可以观察到,即使是我们的基线模型也优于所有其他最先进的方法,这说明了A-CE2P框架的有效性。我们还应用了多尺度和水平翻转的测试数据增强作为对比。我们的SCHP的表现优于其它方法,并且带来了很大的提升,实现了6.26% mIoU的增长。考虑到已经是将最先进模型作为基线,这可以说是个巨大的提升,尤其是在一些样本数量很少的类别,例如scarf,sunglasses以及一些容易混淆的类别,例如dress,skirt以及左肢和右肢的混淆。带来提升的主要原因是我们在自纠正过程中同时使用模型聚合和标签优化。此外,SCHP预测结果和真值标签的定性比较如图4所示。从中可以看出,SCHP可以获得比真值标签更好的解析结果。
为了验证我们方法的泛化能力,我们在表2中进一步报告了在PASCAL Person Part基准上与其它方法的比较。从中可以看出,我们的SCHP优于以前所有方法。值得注意的是,我们的SCHP优于DPC[2]。DPC是一种基于NAS的方法,可以在小数据集上轻松获得最优结果,而且我们是使用ResNet-101作为主干,而DPC是使用更强大的主干如Xception[7]。此外,DPC还使用了MSCOCO作为额外数据来预训练,而我们的模型只在ImageNet上预训练。这些结果充分证明了本文方法的优越性和泛化能力。
4.3 消冗研究
我们进行了大量的消冗研究来验证SCHP的每个组件的作用。所有消冗实验是在LIP基准上进行的。
网络结构的选择 我们的SHCP是一个通用框架,可以适配不同主干和上下文编码模块。图5a所示是在不同主干上使用和不使用SCHP的对比,从轻量级的MobileNet-V2[28]到相对较大的ResNet-101[12]。有趣的是,轻量级MobileNet-V2达到了52.06% mIoU,加上SCHP后达到53.13% mIoU,这个结果甚至比ResNet-101以前的一些结果[27]要好。我们注意到网络越深性能越好(18 vs. 50 vs. 101)。在各种主干下,SCHP会带来一致性地提升,分别为1.08、1.40和1.70。这表明了我们方法的鲁棒性。图5b所示是通过改变上下文编码模块来进一步检查SCHP的健壮性。具体地是,我们选择了3种不同类型的模块,包括基于多级的全局池化的金字塔场景解析网络(PSP)[33],基于多级的扩张卷积池化的空间金字塔池化(ASPP)[4]和基于注意力机制的OCNet[32]。尽管这3个模块的基线模型的性能相近,我们的SCHP始终带来提升,相比PSP、ASPP和OCNet的mIoU分别提高了1.70、1.30和1.00点。这进一步凸显了我们方法中自纠正机制的有效性。注意,虽然可以使用这些高级模块获得更好的效果,但是网络结构的修改不是本研究的重点。我们的基线模型使用使用ResNet-101作为主干,PSP作为上下文编码模块。
有针对性训练的影响 我们的网络是端到端训练的,组合的优化目标如公式(4)所述。不同损失函数的对比见表3。表中,表示用于优化边缘部分的二值交叉熵损失。表示易处理的、代理mIoU指标的损失函数。表示用以确保解析结果与边缘预测结果一致的一致性约束项。如果这3项都不用的话,就是基础的交叉熵损失。通过引入边缘损失,mIoU指标提升0.4,提升主要是由于对不同部位的边界的准确预测。加了IoU损失后,平均准确度提升2.8个点,mIoU提升2.2个点,而像素准确度几乎不变。这凸显了IoU损失可以极大地解决小物体和不常出现的类别上预测难的问题。最后,在解析结果和边缘预测间加上一致性约束项可以将平均准确度提升0.59,将mIoU提升0.55。
自纠正的效果 表4我们验证了我们所提的SCHP的每个组件的效果,包括模型聚合(MA)和标签优化(LR)。所有的实验都是用A-CE2P网络。当不用MA和LR时,我们的方法就简化为常规训练。当使用MA时,mIoU提高1.1个百分点。当使用LR时,mIoU提高0.6个百分点。当两者都用时,取得最佳性能。可以观察到,模型聚合和标签优化是相互促进的。
为了更好地定性描述SCHP,图1b可视化了自纠正过程每轮的伪标签。请注意,这些伪标签都被缩放到原始大小,并且使用argmax操作以便更好地说明问题。自纠正过程消除了边界不准确、细粒度分类混乱、左右部位混淆、多人遮挡等标签噪声。
不出所料,我们纠正的标签的一些边缘往往比真值标签更平滑。
这些结果证明了我们提出的自校正方法的有效性。
直观地说,我们的自校正过程是一个相互促进的过程,既有利于模型聚合,也有利于标签优化。在一轮一轮的自校正中,模型变得越来越鲁棒,而通过挖掘增强的模型产生的伪标签的暗知识,标签的噪声被隐式地纠正了。纠正后的标签比真值更平滑,也说明了我们的设计在结合边缘信息上的有效性。
在自校正周期中,模型变得越来越鲁棒,而通过挖掘增强模型产生的伪掩模中的暗信息,对标签噪声进行隐式校正。修正后的标签比实际情况平滑的事实也说明了我们的模型体系结构设计对于结合边缘信息的有效性。
自纠正的轮数的影响
自纠正的轮数是一个超参数。为了和其它方法[27]公平地比较,我们保持总的训练epoch数不变
自校正周期的影响。
通过一个循环学习的调度器,实现了自校正的目的。循环数是此进程的虚拟超参数。为了与其他方法进行比较[27],我们保持整个训练周期不变。性能曲线如图6所示。很明显,在这一过程中,性能不断提高,在第一个循环之后性能提高最大,并且在最后趋于饱和。我们的方法可以在延长更多训练周期的情况下获得更高的性能。值得注意的是,MA,lrandschpi在循环0时的表现并不相同。这个小差距是由于对批处理范数参数的重新估计造成的。从性能曲线上,我们还清楚地展示了模型聚合和标签细化过程的互利性。图7显示了自校正过程的更多可视化
5结论和今后的工作
本文针对人工句法分析中的标签噪声问题,提出了一种有效的自校正策略。我们所提出的方法实现了新的状态和一个大的边际增益。此外,自我纠正机制是一项一般性的培训战略,可纳入任何框架,以进一步提高业绩。将来,我们希望将我们的方法扩展到多人解析和视频多人解析任务。
网友评论