周 伟, 刘智威, 李群智
(1.中金甲子 (北京) 私募投资基金管理公司, 北京 100020;2.中国科学院 自动化研究所, 北京 100190;3.北京空间飞行器总体设计部, 北京 100094)
人体姿态估计通常可分为单人人体姿态估计和多人人体姿态估计2 种任务。 其中多人人体姿态估计任务一般在实际中应用更为广泛。 该任务指在无约束场景下同时完成人体目标的检测以及人体关节点的定位,可为诸如行为识别[1-3]、姿态跟踪[4-5]、行人重识别[6-7]和人机交互等计算机视觉任务提供重要的先决条件或先验信息。 近年来,基于自顶向下方法的多人人体姿态估计算法[8-11]取得了较为领先的性能。 该类方法分为2 步:第1 步采用人体检测器检测出图片中所有人的检测框;第2 步将每个检测框内的人体图像分别送入单人人体姿态估计网络中进行姿态估计。 因此算法的最终性能取决于人体检测器和单人人体姿态估计算法2 个模块。 目前,人体姿态估计算法的提升空间远大于人体检测器。
在无约束场景下的人体姿态估计任务中,多变的人物服饰、复杂的场景和高灵活度的姿态等因素导致样本的分布极为复杂,给算法带来了极大的挑战。 具体来说,2 个样本在拥有相似的服饰和背景等表观的情况下,其人体姿态仍可能存在很大的差别,同时,2 个样本在拥有差距较大的服饰和背景等表观的情况下,其人体姿态也可以保持一致。 由此可知,现实中的任何训练集都无法为每种姿态涵盖所有诸如服饰、皮肤、背景和遮挡等因素造成的表观变化。 然而,当今主流的人体姿态估计方法通常采用坐标响应图回归的框架,其优化目标是建立每个训练样本的人体表观信息与相应关节点坐标之间的对应关系,因而对训练数据的多样性有较强的依赖。由于训练集中的样本存在同表观姿态不足或同姿态表观不足的现象,回归网络在学习中容易将姿态的判别与姿态无关的表观信息关联起来,从而难以训练出能够有效提取人体姿态特征的特征提取器。 该问题最终也影响了算法在未知样本上的泛化性能。
为了解决上述问题,针对人体姿态估计算法提出了新的设计维度:通过建模并引入样本间的姿态相似度信息,根据该信息用度量学习方法对网络进行优化,使得高层特征具有对姿态的强判别能力,从而增强网络在未知测试样本上的泛化性。 实现该方法需要设计的2 个核心环节为样本间姿态相似度的建模以及优化目标函数的选取。 其中,目标函数可选用判别学习任务中常见的分类损失或度量学习损失,其优化目标是对于2 个姿态相似度高的样本,网络对其提取的高层特征也应该接近。 反之,对于2个姿态相似度低的样本,网络对其提取的高层特征也应该相差较远。 由于人体姿态空间较为复杂,样本类别的边界难以人工界定,简单地对数据集通过现有姿态聚类的方式进行划分,容易产生样本分布不均衡以及“长尾”现象等常见的优化问题[12]。
为了解决上述问题,本文结合人体姿态任务的特点对上述特征判别性学习方法进行了更合理的设计,提出了一个基于点特征优化的局部样本关系模型(Local Sample Relation Module,L-SRM)。 该模型在回归网络的高层将整体姿态特征分解成逐点特征,并将对整体姿态的分类问题转化为每个关节点各自的分类问题。 该方法可根据不同样本中对应关节点所处的图像空间位置信息来近似计算样本间的相似度。 最终,L-SRM 在增强网络高层特征对人体姿态的判别性的同时,也避免了在复杂的姿态空间中进行样本间相似度定义所带来的问题。 除此之外,为了进一步提升点特征优化的优化质量,同时在L-SRM 中提出了Multi-Context Uncertainty Module(MCUM)。 综上,本文的贡献总结如下:
① 针对人体姿态估计算法提出了新的设计维度:通过建模样本间的姿态相似度关系对网络进行优化,增强网络对人体姿态的判别能力及在未知测试样本上的泛化能力。
② 对基于姿态相似度度量学习的人体姿态估计算法的设计进行了深入的研究。 通过分析人体姿态空间存在的类别难界定以及样本姿态分布不均等问题,提出了局部样本关系模型对姿态相似度进行建模并用于网络优化。
③ 所提出的方法不仅在人体姿态估计主流数据集上的精度超过了所有同期方法,同时有效提升了算法在跨域数据集上的泛化性能。
人体姿态估计作为一个具有学术和实际双重价值的经典计算机视觉任务,已有数十年的研究历史。在手工特征时代,其中一类代表性的方法是将图像中的人体姿态描述为一个全局的特征,并通过该全局特征直接进行分类或回归从而得到估计结果[13-14]。 由于通过手工形式直接设计出的人体姿态全局特征表达能力较弱,该类型方法只可在约束场景下得以应用。 另一类代表性方法为基于图结构(Pictorial Structure,PS)[15-18]的方法,其通过设计手工特征对图像中人体部件可能的位置进行检测,再通过建模部件间的空间位置关系对部件的位置加以约束,最终推理得到人体的整体姿态。 得益于训练数据规模的增大以及深度学习方法的引入,人体姿态估计取得了重要的突破,基于深度学习的方法在性能上也远远超越了基于手工特征的方法。 而其中自顶向下的人体姿态估计方法在多人人体姿态估计任务取得了主导地位,该类型方法的研究重点为人体姿态估计网络结构设计。 现有人体姿态估计网络主要包括多尺度上下文融合、人体骨架结构先验以及级联回归3 个代表性的设计思路,以下分别对其进行介绍。
多尺度上下文融合:Newell 等[19]提出了一个对称的沙漏结构网络用于人体姿态估计任务。 设计时采用前半段连续降采样,后半段上采样的形式,使得整体网络结构类似一个沙漏。 同时通过跨层连接将网络前半段的底层特征与网络后半段的高层特征在相同分辨率上进行融合。 跨层连接的过程可看作对不同尺度上下文的融合,最终保证了网络的输出既具有通过大感受野学习到的高层语义信息,也保存了底层特征中的细节信息。 Chen 等[8]提出的级联金字塔网络则借鉴了目标检测任务中特征金字塔网络[20]所使用的多尺度上下文融合方法,并设计了一个全局网络和一个校正网络分别在不同层级对多尺度上下文进行融合。 Sun 等[11]则提出了一个高分辨率网络,其在网络的所有层级均保持着一个高分辨率的特征图。 并通过并行结构逐渐将主网络中的高分辨率特征图与子网络中的低分辨率特征图进行融合,该网络的性能也超越了当时的人体姿态估计方法。
人体骨架结构先验:人体骨架结构的先验知识可作为辅助人体姿态估计网络进行学习的重要手段。 其中一类代表性的方法[21-23]利用人体关节点中已知的连接关系,在网络训练中加入了人体部件响应图的回归。 相比单独回归关节点响应图的方法,该方法引入了关节连接关系作为额外的约束,从而提升了性能。 然而该类型方法仅仅利用了单个人体样本内部的关节点连接关系,尚未考虑不同样本间的关系。
级联回归:通过级联回归逐渐校正预测结果的思想最早在图像分类任务中以网络深层监督的方式出现。 Szegedy 等[24]提出了在分类网络中间层加入辅助分类器的方法,从而有效地帮助了深层网络的优化。 在人体姿态估计任务中,级联回归通常表现为多个子网络堆叠而成的网络结构。 其中堆叠结构中的每一级根据前一级提取出的图像特征及其预测结果,预测出更加精准的响应图。 级联回归的思想在许多人体姿态任务[19,25-26]中都得到了成功的应用并有效地提升了性能。
总的来说,上述人体姿态估计算法在设计中均只考虑了单个人体样本的信息,而本文提出在网络训练中从多个人体样本的角度出发,对人体样本间的关系进行建模并以此通过判别性学习优化网络。其对于避免网络过拟合以及提升网络在未知样本上的泛化能力等方面具有重要的意义。
考虑到自顶向下方法在性能上的优势,本文选用自顶向下的多人人体姿态估计算法进行研究,并选取了其中代表性的SimpleBaseline[10]方法作为研究的基础算法框架。 为此对SimpleBaseline 算法进行简要的介绍。 首先,基于深度学习的人体姿态估计算法的目标是寻找一个非线性映射:
式中,I∈RH×W×3表示输入姿态估计网络的人体图像,该图像由前一阶段的人体检测器检测得到;y∈R2N表示网络预测出的人体关节点坐标;fW为对应参数为W的卷积神经网络。 在SimpleBaseline 算法中,fW为一个全卷积网络,该网络可分为前后2 个部分。前半部分为主干网络,通过逐层下采样的方式来提取用于表达图像中人体姿态的高层特征,该主干网络的结构采用视觉任务中常用的残差网络[27]。
为了便于理解,将残差网络中不同阶段输出的特征图分别定义为C2,C3,C4,C5。 整个基础框架的后半部分由建立在残差网络的顶层输出C5上的3 个连续反卷积层所组成,其通过连续上采样和一个1×1 的卷积层将高层特征解码成空间响应图用于提取关节点坐标。 响应图上的峰值位置即为网络预测的关节点坐标位置。 该部分所使用的反卷积个数以及核大小等参数均为实验所得的最优参数。图1 为所采用的基础网络框架SimpleBaseline 的结构示意。
图1 SimpleBaseline 的网络结构示意Fig.1 SimpleBaseline network structure
在无约束场景下的人体姿态估计任务中,无规则变化的人物服饰、复杂的场景和高灵活度的姿态等天然存在的数据特点使得该任务有着极为复杂的样本分布。 举例来说,2 个样本在拥有相似的服饰和背景等表观的情况下,其人体姿态仍可能存在很大的差别,如图2 中样本一和样本二所示。 同时,2 个样本在拥有差距较大的服饰和背景等表观的情况下,其人体姿态也可以保持一致,如图2 中样本二和样本三所示。 因此训练集通常远远无法涵盖所有可能的变化情况,存在由于一些样本不足的少见姿态形式所导致的样本不均衡现象。 该现象最终也导致了回归网络难以鲁棒地提取人体姿态特征,且未知样本上的泛化能力不足。 为了应对上述问题,提出判别学习是在训练数据有限的情况下增强网络对姿态识别鲁棒性的一个有力方法。 具体来说,通过建模并引入样本间的姿态相似度信息,根据该信息用度量学习方法对网络进行优化,从而增强网络对人体姿态的判别能力。 如图2 所示,当网络在优化过程中将样本一、样本二和样本三之间的姿态相似度作为已知先验时,很容易在特征提取阶段将服饰颜色等姿态无关的表观信息进行去除,并选择学习对姿态更有判别力的特征提取方式。 因此,如何更好地将判别学习与人体姿态任务相结合是本研究的重点。 通过介绍一种直观的判别学习方法来对该问题进行更为深入的分析。
图2 关键点语义不确定性带来的优化难问题Fig.2 Optimization problem related to the semantic uncertainty of landmark
在人体姿态任务中,判别学习的目的在于约束网络对2 个具有相似姿态的样本所提取出的高层特征尽可能接近,同时,对2 个姿态相差较大的样本所提取的高层特征相差较远。 为了找到较好的样本姿态相似度建模方式,首先使用代表性的无监督聚类方法k-means 对训练集中所有样本的姿态进行聚类,此时属于同一簇的姿态即可看作相似姿态。 以下详细阐述姿态聚类的过程。
在聚类过程中,每个样本的姿态被表示为关节点坐标串联而成的2N维向量,其中N代表人体中的关节点个数。 由于人体姿态估计数据集通常包含许多部件被遮挡或超出图像边界的人体样本。 因此该类样本部分关节点的标注也相应缺失,从而由于向量维度不一致而无法直接参与聚类。 为了解决该问题,提出了一个人体姿态重建(Human Pose Restoration,HPR)算法对姿态标签中缺失的关节点坐标进行估计,从而保证每个样本的姿态标签都可参与到无监督聚类过程之中。 HPR 算法的流程如算法1所示。 使用HPR 方法估计出所有样本中缺失的标注后,对所有样本的姿态进行面内几何变化的数据增广,再通过k-means 进行聚类。 由于聚类的类别个数属于超参数。 实际使用中,分别实验了聚类中心个数设置为500,1 000,2 000 时算法的性能表现,并从中选取最优的结果作为最终结果。
算法1 人体姿态重建算法输入: 原始训练集中所有的姿态标签G、原始训练集中所有标注完整无缺失点的姿态标签Ga输出: 姿态重建后的所有姿态标签Gr 1.Gr=Ga 2.找出训练集中所有包含缺失点的姿态标签Gm ←G-Ga 3.在Ga 上使用k-means 聚类出典型的姿态模板集合(聚类中心集合):Ta=kmeans(Ga)4.for Gm 中每个姿态标签向量p do 5. 初始化最小距离:dmin=inf 6. for Ta 中每个姿态标签向量pt do 7. 使用常规普氏分析法求解从Gr 变换到p 的相似度变换矩阵8. 计算变换后的pt 与p 的欧氏距离:d=‖M(pi)-p‖2 2 9. if d 接下来,为了根据上述定义好的样本间的姿态相似度关系进行优化,使网络的高层特征具有对姿态的强判别性。 在基础架构SimpleBaseline 中残差网络的顶层输出C5之上加入了一个新的分支,该分支包含2 个连续的全连接层和一个Softmax 分类器,根据当前样本所属的姿态类别对高层特征进行分类。 在网络的训练过程中,该分支所引导的姿态分类任务和原有解码器分支引导的响应图回归任务协同进行。 从而使网络的高层特征C5既具有对人体姿态所属类别的判别性,也包含了用于判别关节点位置的细节信息。 由于该方法在定义样本间姿态相似度时将每个样本的姿态看作一个整体。 本文将该算法框架称之为全局样本关系模型(Global Sample Relation Module,G-SRM)。 G-SRM 的 算 法 框 架 如图3 所示。 图3 全局样本关系模型的算法框架Fig.3 Global sample relation module 根据后续实验所示,在SimpleBaseline 的基础架构下加入G-SRM 虽可在一定程度上提升人体姿态估计的精度。 然而,G-SRM 为算法性能带来的增益较为有限,仍未达到理想的效果。 通过分析可知,导致其性能受限的原因可分为以下几点:① 由于现实中任何训练集都无法为每种姿态涵盖大量诸如服饰、皮肤、背景和遮挡等因素造成的表观变化,部分少见的姿态缺少足够的样本,使得姿态分类任务存在样本分布不均衡以及“长尾”现象等常见的分类优化难问题。 ② k-means 聚类方法对类别个数较为敏感,手动调节的姿态类别数难以保证聚类结果的可靠性。 ③ 图像空间中复杂的姿态形式会加大聚类中不同类别各自的类内方差,最终影响了聚类的质量。 总的来说,G-SRM 的主要缺点在于聚类得到的典型姿态模板(类中心)难以真正对样本间的姿态相似度(样本关系)进行可靠的建模。 为了解决上述问题,将上述对姿态特征的判别学习任务分解成多个对人体关节点特征的判别学习子任务,从而简化对样本间姿态相似度的定义。 具体地,将新的样本间姿态相似度定义为:对于人体结构中任意位置的关节点,若2 个样本中该关节点所处的图像空间位置接近,则网络对上述样本提取的关节点高层特征也应该接近;否则,提取的关节点高层特征应该相差较远。 在该定义中,每个样本的状态空间大小为N×Hg×Wg,其中N为人体结构中的关节点总数,Hg×Wg代表图像空间中划分的网格个数。 相比G-SRM所定义的样本间姿态相似度,上述新的相似度定义方法在有效描述姿态间相似度的同时,大大减少了样本分布的复杂性。 从而避免了直接建模复杂的全局姿态间关系时所遇到的问题。 据此,将G-SRM 进行改进并提出了一个基于关节点特征分布优化的L-SRM。 下文对L-SRM 的算法细节进行介绍。 2.3.1 解离的关节点表达学习 为了在网络高层分别优化每个人体关节点的特征分布,首先需要获取独立的关节点特征。 为此在局部样本关系模型中提出了一个关节点解离表达模块 ( DisentangledJointRepresentationModule,DJRM),该模块替换了基础框架SimpleBaseline 中原有的解码器部分,在把高层特征解码成关节点坐标响应图的同时将整体姿态特征解离成每个关节点独立的特征。 考虑到整体姿态特征会包含关节点连接关系等人体结构先验信息,且该信息对于推断遮挡点等方面具有重要的作用。 L-SRM 的算法框架如图4 所示。 因此,DJRM 在SimpleBaseline 网络的大部分层中都保留了整体姿态特征,其仅在C5之后的层将其解离成不同人体关节点各自独立的特征。 具体地,DJRM 首先在共享特征C5的基础上增加了一个3×3 的卷积层用于建立共享特征到关节点独立特征的映射,即图4 中C5层到DF层的过程。 图4 局部样本关系模型的算法框架Fig.4 Local sample relation module 之后在DF层之上通过4 个组数为N的分组反卷积来回归出N个关节点的响应图。 由于所有分组反卷积层的组数均被设置为关节点个数,因此对不同关节点坐标的解码是个完全独立的过程。 即从DF层开始,任意一个关节点的位置信息只与每层特定的几个通道中的特征有关。 DJRM 在训练时采用均方误差(Mean Squared Error,MSE)损失来监督坐标高斯响-应图的回归。 其公式如下: 2.3.2 样本局部关系的定义与优化 如上所述,关节点解离表达模块可在网络高层将原有的全局姿态特征解离成每个关节点的专属特征。 由此可通过分别优化每个关节点特征的方式来提升网络高层特征对姿态的判别性,以减少姿态无关表观信息对算法鲁棒性造成的潜在影响。 为了实现对每个关节点特征的判别性学习,首先要从关节点的角度对样本间姿态相似度进行定义。 对于人体结构中第k个位置的关节点来说,L-SRM 首先将尺度为H×W像素大小的输入图像分为Hc×Wc个空间网格。 并将每个网格看作分类任务中的一个类别。如果在某一样本中,该关节点的标注位置落入了第i个网格中,L-SRM 即在优化时将第k个关节点所属的类别视为第i类。 为了根据该相似度信息对关节点特征进行优化,L-SRM 在DF层的基础上额外增加了N个分支网络。 其中N代表关节点个数,每个分支网络包含3 个连续的全连接层和一个Softmax分类器,且只与DF中特定关节点对应的特征相连。在网络训练时,每个分支根据其对应的关节点的所属类别进行分类学习,从而使每个关节点的高层特征具有对该点所在空间位置的判别性。 分类的损失函数公式为: 式中,DFk表示DF层中第k个关节点对应的特征部分;gk表示与DF相连的第k个分支网络所对应的映射;i和j分别为图像空间中网格的索引,即关节点类别的索引,其中i表示第k个关节点真实位置对应的网格索引。 从整体姿态的视角来看,2 个样本中的人体拥有相似的姿态可以近似等价于大部分关节点在2 个样本中所处的空间位置都比较接近。 此时L-SRM 可通过拉近大部分关节点的高层特征使得整体特征也拥有了对人体姿态的判别性。 对于优化目标函数的选取,除了Softmax 分类损失,三元组损失(Triplet Loss)[28]也是增强特征判别性的有效方法,该损失直接优化高层特征间的欧式距离。 在L-SRM 中对基于三元组损失的优化方式也进行了实验,具体公式如下: 不同样本中的不同人体关节点由于其内在属性或所处外在环境的不同,人类对这些人体关节点位置的认知难度也有所不同。 举例来说,相比膝盖、胯等处于身体中央且易被服饰遮挡的人体关节点,处于人体头部的关节点通常拥有更易于辨别的表观信息。 不同标注人员对该类点标注位置的方差也较小。 该现象可称为不同关节点内在属性的不同所导致的认知难度差异,MS-COCO[29]数据集在其评测规则中也考虑了该现象。 另一方面,在较复杂的拥挤或遮挡场景下,被遮挡的关节点由于其周边表观信息的反常变化,相比其他可见的关节点也具有更大的认知难度。 已有人体姿态估计算法通常在优化目标中将人体结构中的每个关节点等同看待。 由于不同关节点的认知难度有所不同。 对所有关节点等同优化时,部分本身难以优化且误差过大的关节点会影响其他易优化关节点的学习。 基于上述问题,本文将不确定度估计的思想[30-33]引入L-SRM 中以解决人体姿态估计任务的相关问题。 具体地,提出了MCUM 用于L-SRM 中的关节点回归学习。 MCUM根据当前输入图片,通过无监督学习的方式为每个关节点预测出一个不确定度。 该不确定度可用于度量图片中每个关节点的认知难度。 在学习不确定度的同时,MCUM 在训练中自适应地降低了认知难度较大关节点的学习权重,以便网络将学习能力集中在更容易收敛的关节点上。 MCUM 对不确定度的预测过程可表示为: 式中,σ=[σ1,σ2,…,σn]∈RN表示MCUM 对当前样本中每个关节点预测出的不确定度;M代表MCUM 所对应的映射函数;N代表关节点个数;C2,C3,C4,C5作为残差网络中不同层级的特征,也对应着不同尺度的上下文信息,将其结合有助于对关节点不确定度进行更好的预测。 图5 所示为MCUM的网络结构。 图5 基于多尺度上下文的不确定度预测模块结构Fig.5 Multi-context uncertainty module 为了通过预测不确定度的方式对样本中每个关节点的学习进行自适应加权。 将预测出的关节点坐标和不确定度分别看作一个高斯分布的均值与方差,并将原有的坐标响应图回归问题替换为一个后验概率最大化问题。 式中,y∈RN×2为网络预测出的关节点坐标响应图通过Softmax[34]层计算得到的关节点坐标;∈RN×2为标注的关节点坐标位置。 采用极大似然估计的思想求解上述后验概率最大化问题,并通过负对数似然损失对其求解,该损失如下: 不难看出,上述损失函数的理想目标要求σ与同时趋近于0。 实际训练中,如果网络对于某个关节点位置的认知难度较大,则项的值一般较大。 为了降低整体的损失值,MCUM 可预测出更大的不确定度σ来降低该关节点的学习权重。 总的来说,MCUM 的使用有利于缓解网络在训练过程中难以优化某些离群样本点以及认知较难样本点时所带来的问题,从而有效提升局部样本关系模型L-SRM 的性能。 综上所述,L-SRM 所使用的整体损失函数可定义为: 式中,λ1,λ2,λ3为超参数,分别表示各项子损失函数的学习权重;LRSM表示判别学习任务的优化目标;LMSE和LReg表示回归任务的优化目标。 后续实验表明,当λ1设置为10-4,λ2及λ3设置为1 时,算法取得了最理想的性能。 为了从多方面验证上述方法的有效性,在实验阶段使用了MS-COCO[29]和CrowdPose[35]两个均具有挑战性且数据分布差异较大的数据集。 MS-COCO:MS-COCO[29]是一个具有挑战性的无约束场景多人人体姿态估计数据集,共包含了200 000 余张图片和250 000 余个人体实例。 该数据集为每个人体实例标注了最多17 个关节点。 其中很多人体实例由于遮挡,超出边界等原因只含有部分关节点的标注。 这也大大增加了该数据集的挑战性。 所有的实验均按照MS-COCO 标准协议所规定的训练集和测试集进行训练和测试。 在分析实验中使用val2017 测试集进行算法性能测试并最终在test-dev2017 测试集上与其他主流方法进行了公平的性能对比。 按照MS-COCO 的测试协议,实验采用目标关键点相似度(Object Keypoint Similarity,OKS)来计算对每个人体实例姿态估计的误差。 并通过为OKS 设置10 个不同的阈值,来计算算法的平均准确率(mean Average Precision,mAP)用于最后的评测结果。 CrowdPose:CrowdPose[35]数据集是一个面向拥挤场景的人体姿态估计数据集。 该数据集为图像中的每个人体实例标注了最多14 个关节点,且14 个关节点中的绝大部分关节点对应的语义位置均在MS-COCO 的标注范围之内。 值得注意的是,该数据集中人与人之间的交互重叠率远大于MS-COCO 数据集,因此使用该数据集验证算法在跨域数据上的泛化能力。 CrowdPose 共标注了20 000 张图片中的80 000 个人体实例。 该数据集所使用的评测指标同样为不同OKS 下的mAP。 实验设置细节:本方法在实验中使用残差网络作为主干网络,该主干网络的初始模型参数由ImageNet上预训练得到。 而全局样本关系模型和局部样本关系模型中新加入的网络层均采用0 均值,方差为0.01的高斯分布进行初始化。 在局部样本关系模型中的关节点解离表达模块中,所有分组反卷积中每组的输出通道个数均设置为32,即每个分组反卷积层的通道总数为32×N,N为每个人体关节点的个数。DF层的通道个数同样被设置为32×N。 同时,全局样本关系模型和局部样本关系模型中所有用于分类的分支网络均将隐含层的输出维度设置为1 024。 数据增广方面,采用与基础架构SimpleBasline[10]一样的参数设置。 具体地,在训练时所使用的面内几何变换操作包括水平翻转、-40°到40°的面内旋转以及70%到130%的包围盒尺度变换等操作。 对于增广后的训练图片,在实验中根据不同需求将其缩放到256 pixel×192 pixel 与384 pixel×288 pixel 两种尺度作为网络的输入。 训练的初始学习率为0.001,训练总epoch 数为140。 训练过程中分别在90 和120 个epoch 时将学习率下降10倍。 实验所用的优化器为Adam[36]。 训练所使用的硬件计算资源为8 块NVIDIA Titan X (Pascal)GPU。 在测试阶段,由于本文所提出的方法属于自顶向下的多人人体姿态估计方法,因此需要先对原始图像进行目标检测以提取每个人体的检测框。 公平起见,实验采用SimpleBasline[10]所使用的人体检测结果作为人体检测结果。 同时为了与已有方法保持一致[8,10,19],测试时对输入的测试图片进行镜像翻转,并将原图和镜像图的人体姿态估计结果求平均作为最终结果。 为了验证本文提出的L-SRM 中各个模块发挥的作用,通过控制变量配置了5 组不同的实验并在MS-COCO 的val2017 测试集上进行了测试和分析。为了公平对比各个方法,实验中所使用的主干网络均为50 层的残差网络,输入图片的尺度均为256 pixel×192 pixel。 首先,为了验证在人体姿态估计网络原有的回归任务中引入判别性学习的作用,在基础框架SimpleBasline 上加入基于整体姿态判别性学习的G-SRM 进行实验,评估采用MS-COCO 的val2017 测试集。 如表1 所示,加入G-SRM 将算法的mAP 从70.4 提升到了71.4。 该现象证明了判别学习在人体姿态估计任务中对性能提升的有效性。 为了对比L-SRM 中的关节点特征优化方法与G-SRM 中的整体姿态特征优化方法,使用不包含基于MCUM 的L-SRM 进行实验。 对比表1 中第2 行和第4 行的结果可知,L-SRM 将G-SRM 的性能从71.4 进一步提升到了72.0。 该现象证明,关节点特征判别学习可以克服整体姿态判别学习的缺点,带来更多的性能增益。 表1 各模块对整体算法性能的影响Tab.1 Influence of different modules on the overall algorithm performance 除此之外,判别学习中优化方式,即损失函数的选取也是一个关键的环节。 进一步对L-SRM 中不同损失函数的表现进行了对比,并分别选取Softmax分类损失和三元组损失2 种损失函数进行了实验和分析。 为了使三元组损失达到更好的效果,在对其实验中加入了困难样本挖掘以及超参数搜索等策略。 然而,如表1 中第3 行和第4 行所示,三元组损失仅达到了70.1 mAP,该结果显著低于Softmax 分类损失72.0 mAP 的结果。 可见Softmax 分类损失相比对采样策略等其他因素要求较为严格的三元组损失,更适用于人体姿态估计任务中的判别性学习。 最后,对L-SRM 中使用的MCUM 的有效性进行了验证。 如表1 中第4 行和第5 行的实验结果所示,将MCUM 引入L-SRM,使得mAP 性能从72. 0提升到了73.2。 该结果说明,MCUM 与L-SRM 中判别学习任务之间存在较好的互补性,可以显著地提升网络的优化质量。 各项优化目标的权重平衡:如式(10)所示,本方法的整体优化目标主要由2 部分所组成,是一个多任务学习的过程。 多任务学习中每个任务的学习权重往往对算法的最终性能有着重要的影响。 对此,进一步研究了为判别学习和回归2 个任务设置不同学习权重比时算法整体性能的差异。 具体地,本实验将式(10)中的λ2与λ3设置为1,并通过调节λ1/λ2的值来进行该实验,实验选用50 层的残差网络作为主干网络,选用尺度为256 pixel×192 pixel的输入图片。 如表2 所示,当判别学习任务即Softmax 分类损失的学习权重被设置为10-4时,算法的性能达到了最优。 此时可认为判别学习任务和回归任务达到了一个较好的平衡。 表2 式(10)中分类任务与回归任务不同学习权重比所带来的影响Tab.2 Different learning rates in equation (10) 基于误差分布的算法泛化性分析:为了分析判别性学习在提升人体姿态估计算法泛化性方面发挥的作用,本实验对不同方法在测试集不同样本上的误差分布进行了观察和分析。 由于已有人体姿态估计算法通常对训练数据的依赖性较强,可以认为算法在测试集中预测误差较大的样本往往和训练样本之间有一定的分布差异。 因此该预测误差较大的难测试样本可用于分析算法的泛化性能。 具体来说,本实验首先采用基准算法SimpleBaseline 对测试集中的所有样本进行预测,之后根据SimpleBaseline 在每个测试样本上预测得到的OKS 大小将测试样本分成10 组。 此时可认为对应OKS 值较小(预测误差较大)的组中的样本与训练样本之间有一定程度的分布差异。 如图6 所示,当使用不包含MCUM 的L-SRM 方法时,算法在原本测试误差较大的样本上有着显著的性能提升。 该现象可说明本方法引入的判别性学习更关注提升人体姿态估计算法在未知样本上的泛化性能和鲁棒性,而不是进一步提升简单样本的回归精度。 当进一步加入MCUM,即使用标准的L-SRM 方法进行测试时,算法的整体性能虽然从72.0 提升到了73. 2,然而从图6 中无法观察到MCUM 对算法测试误差分布的改变。 可见MCUM并没有对算法泛化性能的提升起到明显的促进作用。 图6 对比不同方法在MS-COCO 测试集上的误差分布变化Fig.6 The deviation distribution on the MS-COCO test set 跨数据集的算法泛化性分析:为了从跨数据集的角度验证L-SRM 对提升算法泛化性方面发挥的作用。 本实验使用MS-COCO[29]训练集对网络进行训练,并在与该训练集分布差异较大的Crowd-Pose[35]测试集上对算法性能进行测试,实验选用50 层的残差网络作为主干网络, 选用尺度为256 pixel×192 pixel 的输入图片。 如表3 所示,引入L-SRM 在跨域的CrowdPose 测试集上取得了7. 8%的性能提升。 该结果远高于在同域的MS-COCO val2017 上2.3%的性能提升。 由于CrowdPose 相比MS-COCO 更有挑战性,该现象也进一步说明了L-SRM 在提升算法泛化性上的作用。 表3 L-SRM 在跨域数据集上对SimpleBaseline性能提升发挥的作用Tab.3 Performance improvement of L-SRM to the SimpleBaseline on trans-domain datasets 网格数目分析:如2.3.2 节所述,L-SRM 在优化关节点特征时,将输入图像空间分成Hc×Wc个网格,并根据样本中每个关节点在图像中所处的网格对其特征进行分类。 以此实现关节点特征的判别性学习。 因此,分类网格的划分密度是该优化过程中的一个重要超参数。 过于稀疏的分类网格会导致类内样本的空间差异过大,而过于稠密的分类网格可能存在由于约束过于严格而导致的优化难问题。 本实验对比了不同网格密度下L-SRM 的算法性能,实验选用50 层的残差网络作为主干网络,选用尺度为256 pixel×192 pixel 的输入图片,网格密度代表类别数与坐标响应图尺度的比值。 如表4 所示,当网格密度为1 时,算法的性能达到最优。 表4 不同密度分类网格下L-SRM 的性能对比Tab.4 Performance of L-SRM in different densities of grid 为了从定性的角度验证局部样本关系模型通过优化使网络的高层特征对人体姿态具有了更强的判别性。 通过实验对不同方法中网络提取的高层特征进行了可视化分析。 实验步骤如下,首先使用2.2 节所提到的聚类方法对全部样本的姿态进行了聚类,并从聚类结果中随机选取了6 个簇,其中每个簇可代表一组有相似姿态的样本。 之后分别采用基准方法SimpleBaseline 与所提出的L-SRM 提取所有样本的特征。 对于每个样本,本实验提取其在网络C5层的特征,并采用t-SNE 算法[37]将所有的特征降到二维进行可视化。 如图7 所示,显而易见,相比SimpleBaseline 提取的特征,L-SRM 提取的特征拥有对姿态更强的判别性,从而证实了判别性学习对于人体姿态估计算法的重要意义。 图7 不同方法的高层特征降维可视化对比Fig.7 Visualization of the high-level features of different methods 验证集结果分析: 本实验在 MS-COCO 的val2017 验证集上将本文所提出的方法与现有主流方法进行了性能对比,如表5 所示。 为了公平,所有方法的主干网络均采用50 层的残差网络[27]。 本实验选取了256 pixel×192 pixel 和384 pixel×288 pixel两种尺度的输入图片,以进行更全面的对比。 由表5可以看出,在基准方法中加入G-SRM 可在256 pixel×192 pixel 的输入图片尺度下将mAP 从70.4 提升到71.4,在384 pixel×288 pixel 的输入图片尺度下将mAP 从72.2 提升到72.9。 该现象证实了引入判别学习对于算法性能提升的有效性。 当使用L-SRM替换G-SRM 时,在256 pixel×192 pixel 输入图片尺度下算法的mAP 从71.4 进一步提升到了73.2,在384 pixel×288 pixel 输入图片尺度下算法的mAP 从72.9 进一步提升到了74.5。 该结果说明,基于关节点特征的优化方案克服了基于整体姿态特征优化方案的缺点,从而得到了更高的性能增益。 最终本方法在该验证集上取得了所有同期方法中的最佳性能。 表5 不同方法在MS-COCO 验证集(val2017)上性能对比Tab.5 Performance on the MS-COCO evaluation set (val2017) 测试集结果分析:除了在上述验证集上的性能对比实验以外,同样在MS-COCO 测试集上对本方法与更多不同类型的方法进行了全面的性能对比。为了公平,本实验只对比了仅使用MS-COCO 标准训练集进行训练的方法。 为了验证本方法在更强主干网络下的有效性,实验将主干网络替换为特征表达能力更强的152 层残差网络,并使用尺度为384 pixel×288 pixel 的输入图片用于训练和测试。 如表6 所示,即使152 层的残差网络已经拥有很强的特征表达能力和鲁棒性,本文所提出的L-SRM 仍然将其mAP 性能从73.7 提升到了75.3。 最终,本方法在性能上显著超越了所有以残差网络为主干的现有方法。 表6 不同方法在MS-COCO 测试集(test-dev)上性能对比Tab.6 Performance on the MS-COCO test set (test-dev) 在人体姿态估计领域中,基于响应图回归的深度学习方法虽占据主导地位,但其优化方式对训练数据多样性有较强的依赖。 真实世界中的训练集远远无法为每种姿态形式都涵盖表观变化丰富的样本,影响了网络在未知样本上的泛化能力。 基于上述问题,为了利用有限的训练数据增强网络对姿态识别的鲁棒性,在现有回归任务训练方法的基础上,进一步对样本间的姿态相似度信息进行挖掘,并提出在回归网络中引入度量学习方法来优化高层特征对人体姿态的判别性。 同时,为了更好地在人体姿态估计的框架下建模该判别学习任务,进一步提出了基于点特征优化的L-SRM。 通过在公开人体姿态数据集MS-COCO 和CrowdPose 上的实验验证,本文所提方法在相同主干网络下取得了所有算法中最好的性能,且有效提升了在跨域数据集上的泛化性能。2.3 局部样本关系模型
2.4 基于多尺度上下文的不确定度预测模块
3 实验结果与分析
3.1 数据集与实验设置
3.2 算法各模块分析
3.3 分析实验
3.4 可视化分析
3.5 对比实验
4 结束语