融合全局-局部上下文信息的小目标多人姿态估计
2024-04-23龙辰志陈平李传坤
龙辰志,陈平,李传坤
(中北大学信息探测与处理山西省重点实验室,山西 太原 030051)
0 引言
多人姿态估计旨在预测图像中所有人体目标各个重要关键点的位置,在许多视觉应用中对理解人体行为至关重要[1]。多人姿态估计通常有自顶向下和自底向上2种实现方法。自顶向下的方法[2-4]把多人姿态估计分解为多个单人姿态估计:首先利用目标检测模型预测图像上的人体检测框,然后根据检测框从图像中裁剪出对应区域,并作为单人姿态估计模型的输入得到对应的所有关键点输出。自底向上的方法[5-7]直接预测所有人体目标的关键点:首先检测出图像中所有目标的关键点,之后采用关键点匹配算法把所有的关键点进行分组,从而获得每个人体目标对应的关键点。自顶向下方法相比于自底向上方法最大的优势在于显式地解耦了图像中的不同目标,使得姿态估计模型只需要预测关键点位置而不用考虑关键点和目标之间的相关关系。虽然2种多人姿态估计方法都能够有效地识别正常尺度大小的目标,但对于小尺度的目标,由于像素信息有限,因此2种方法均难以有效识别。自底向上的方法不依赖于目标检测模型,一次性得到所有目标的关键点,但无法有效处理尺度变化问题以及目标信息冗余问题,导致小目标的姿态丢失或预测错误。而自顶向下方法因存在目标检测框,能够从图像中裁剪出不同目标对应的图像区域,并通过仿射变换和插值实现不同目标的尺度统一,使得该方法的识别精度更高。尽管如此,自顶向下方法严重依赖于人体目标检测,而当前的目标检测模型在识别小目标上仍是1个难点。
为此,本文提出一种融合全局-局部上下文信息的多人姿态估计方法。采用自底向上的方法实现小目标的多人姿态估计,无须额外的目标检测阶段,结合多解剖中心和可变形采样对多尺度目标进行精确定位,同时从聚类的角度,利用交叉注意力机制融合全局-局部上下文信息,实现高效准确的小目标多人姿态估计。
1 相关工作
1.1 多人姿态估计
自顶向下的方法首先利用目标检测模型得到人体检测框,然后对检测框裁剪的区域执行单人姿态估计。自底向上的方法直接预测所有可能的关键点,再将不同目标的关键点进行组合。文献[8]提出的高分辨网络(HRNet)在整个过程中保持多分支多分辨率表示,并通过融合多分辨率特征来丰富高分辨率特征表示。文献[9]提出的上下文实例解耦(CID)通过每个目标的中心位置线索来构建不同目标的空间和通道特征,实现不同目标的特征解耦。文献[10]提出的对偶解剖中心(DAC)采用多尺度训练的方法以及多解剖中心的姿态偏置回归,实现小目标姿态估计。文献[11]通过结构化空间学习和中途时间评估来学习丰富的特征结构信息和时序一致性信息,确保视频数据下姿态的连贯性和稳定性。文献[12]提出的Bi-Pose通过图像辅助的3D偏移预测和双向2D-3D转换策略提出一种利用图像信息和2D姿态进行3D姿态估计的方法,并利用2D误差和反投影网络进一步提高3D姿态的精度。
1.2 小目标识别
现有的姿态估计算法缺乏对小目标的研究,小目标识别多见于目标检测领域。文献[13]通过生成对抗网络学习大目标与小目标之间的残差表示,为小目标生成媲美大目标的超分辨率特征。文献[14]针对小目标像素区域小的问题,对包含小目标的图像进行过采样,并在保证没有重叠的情况下复制粘贴小目标数量来增加小目标的像素。文献[15-16]采用多尺度特征学习的方式,通过逐层上采样融合浅层特征和深层特征以获得空间定位能力和目标表征能力更强的特征。其他方法[17]利用环境和物体之间的关系以及物体与物体之间的关系来识别目标,通过1组对象的外观特征和几何特征实现关系建模,实现目标上下文信息的提取。
1.3 注意力机制
随着注意力机制[18-19]的发展,直接基于Transformer的模型已被广泛应用于多人姿态估计领域[20-23]。TokenPose[20]利用Transformer模块解码卷积神经网络(CNN)特征,并引入关键点Token从图像中学习视觉线索和关键点约束。PETR[21]利用Transformer编码器细化CNN提取的多尺度特征,并采用Transformer解码器直接捕捉关键点与目标之间的关系。GCEHNet[22]采用双分支输入把Transformer模块编码的全局上下文信息与CNN特征进行融合,扩大了CNN网络的感受野。CAPose[23]利用交叉注意力模块实现高分辨率特征和不同尺度低分辨率特征的有效融合,提高了Transformer编码器的学习效率。
2 本文方法
对于1张包含多人的RGB图像I,多人姿态估计的目的在于定位出M个人体实例以及对应的K个关键点位置。本文通过多中心点对小目标进行定位,并利用注意力机制提取有效的小目标上下文信息,实现小目标的姿态估计,模型的整体架构如图1所示。
图1 模型整体架构Fig.1 Overall architecture of model
2.1 多中心监督
考虑到小目标所占图像的像素区域小,不容易进行定位,本文通过设置多个解剖中心对小目标样本进行数据增强,保证在1个中心点无法定位的情况下通过多中心点对小目标进行定位。同时,多中心点的结果可以互相修正小目标的定位精度。在定位过程中可以不需要精确的结果,但必须定位出所有可能存在小目标的位置。中心点划分策略如图2所示,以COCO数据集为例,采用3种关键点划分方式。对于中等目标和大目标,只设置了1个中心点进行监督,图2(a)、图2(b)和图2(c)对小目标分别设置了1个、3个和5个中心点进行监督。对于不同的关键点划分方式,本文通过计算其内部的所有关键点坐标的均值点来表示监督的中心点坐标信息。
图2 中心点划分策略Fig.2 The strategies of center point partition
2.2 上下文信息提取
基于CenterNet等方法[9,24-25]的启发,本文通过回归中心点热图来定位目标的中心点坐标,并利用中心点的坐标从多尺度的特征中采样目标对应的局部上下文信息。
假设HRNet网络提取的第l级尺度特征为F(l)∈Cl×Hl×Wl。不同尺度的特征首先通过1×1卷积和上采样操作实现尺度和特征通道数的统一,然后把所有特征沿通道维度进行拼接,并通过1×1卷积头输出通道数量为K+C的关键点热图H∈(K+C)×H×W,额外的C个通道表示中心点数量,H和W表示输入图像高和宽的1/4。上下文信息提取的结构如图3所示。
图3 上下文信息提取结构Fig.3 Structure of contextual information extraction
模型在训练过程中需要计算K+C个热图,K个多人关键点热图用于辅助训练,在推理阶段可以直接舍弃,只保留C个中心点的热图。热图的标签通常根据平滑的高斯分布生成,对于第k类关键点坐标(xk,yk),由式(1)计算其在热图标签H*∈(K+C)×H×W上的响应:
(1)
其中:σ表示人体目标的标准差,采用文献[9]中的方法,通过计算目标所有关键点的最小外接矩阵自适应地计算目标标准差,以缓解不同目标的尺度变化问题。
在训练阶段,对模型生成的多人热图采用Focal loss[26]进行监督训练,以平衡热图回归中前景点和背景点之间数量的不平衡。Focal loss的计算如式(2)所示:
(2)
由于教育教学督导和评价机制的主要目的是督促和引导教学良性发展,使教师的教学工作和学生的学习效果都有提升,所以,教育教学督导和评价机制的建立、发展和完善都与学校和学院的教学质量保障和建设息息相关。因此针对教师的教育教学督导和评价机制提出以下的改进办法:
小目标通常包含较少的像素区域,在网络下采样的过程中很可能会进一步丢失小目标的空间信息。而上下文信息提供了除目标区域以外的信息,能够弥补小目标缺少的信息,有效提高小目标的识别精度。对于1个人体目标,其形状通常是不规则的,用完全包裹的矩形框进行采样可能会引入无关的背景信息或其他目标信息。为此,基于可变形卷积[28]的思想,以中心点向量v∈D为输入,利用全连接网络输出1个S×S大小的中心点采样偏置,用中心点坐标加上偏置得到的坐标对不同尺度的特征进行双线性插值采样,得到S×S长度的目标局部上下文信息。图4所示为可变形采样的实现过程。
图4 可变形采样的实现过程Fig.4 The implementation process of deformable sampling
为了获取可区分的目标上下文信息,本文采用对比学习中的InfoNCE[29]损失函数,通过最小化第m个目标向量与其他目标向量之间的余弦相似度,推断不同目标局部上下文信息之间的距离。对比损失如式(3)所示:
(3)
其中:sim(·,·)表示计算输入之间的余弦相似度;vm∈D表示采样第m个目标的平均局部上下文信息;τ=0.07表示模拟退火参数,用于控制输出的平滑程度,该值越趋近于0,输出越接近于独热编码的形式。
2.3 交叉注意力解耦
受图像分割[30]工作的启发,Transformer模型可以解释为带参数的聚类过程,Query可作为初始化的聚类中心,Query与Key计算注意力权重的过程相当于计算簇分配矩阵,注意力权重与Value的计算实现了聚类中心的更新,多层Transformer模型的堆叠相当于多次迭代的聚类过程。以采样的局部上下文信息作为初始化的聚类中心即Query,图像的全局上下文信息作为Key和Value,通过Transformer模型的聚类过程,实现局部和全局上下文信息的融合,即聚类中心的迭代更新,最终的聚类中心作为增强的目标上下文信息用来解耦得到不同目标对应的关键点热图。目标上下文信息与多尺度特征的计算实现了隐式的聚类过程,即通过计算上下文信息与每个空间像素特征之间的距离实现聚类,无须采用任何关键点后处理分组方法,实现自底向上的多人姿态估计。
采用ViT[31]方法添加可学习分类Token的思想,本文增加1个可学习的姿态TokenP∈K×D来表示最终融合的K个D维关键点上下文信息,把局部上下文信息Q∈L×D和姿态TokenP的拼接结果当作Transformer解码模块的输入Query。对于HRNet提取的深层低分辨率特征经过傅里叶位置编码[19]后直接铺平为1维的图像块,作为全局上下文信息G∈(H×W)×D,用于映射为Transformer解码模块中交叉注意力的Key和Value。图5所示为Transformer解码器结构。
图5 Transformer解码器结构Fig.5 Structure of Transformer decoder
整个Transformer解码模块共3层,注意力头设置为8,交叉注意力计算式如下:
(K+L)×(H×W)
(4)
Z=A*(G*Wv),Z∈(K+L)×D
(5)
其中:Wq,Wk,Wv∈D×D为映射矩阵,把输入映射为Query、Key、Value;*表示矩阵乘法;Z作为注意力的输出,当作新的Query作为下一层Transformer的输入。
最后,根据多层Transformer输出的姿态TokenP,从全局特征F中解耦得到不同的实例热图,如式(6)所示:
Hk=σ(Norm(pk)*Norm(F))
(6)
其中:σ表示Sigmoid激活函数;Hk∈1×H×W表示解耦的第k类热图;Norm表示对特征维度进行L2归一化;F∈D×H×W表示降维后的多尺度特征;pk∈1×D表示经过多层Transformer解码模块得到的姿态Token。模型根据不同目标的上下文信息生成不同的关键点热图,无须采用后处理方法对关键点进行分组,输出热图中只包含1个目标对应的关键点。该输出结果同样采用Focal loss进行监督训练,模型的整体损失如式(7)所示:
=λ1multi+λ2contrastive+λ3single
(7)
其中:λ1、λ2、λ3表示不同损失的权重系数;multi表示多目标中心点热图的Focal loss;contrastive表示上下文信息之间的对比损失;single表示单目标关键点热图的Focal loss。
3 实验结果与分析
本文在COCO多人姿态估计数据集上训练和验证模型。COCO关键点数据集包含64 000张带有270 000个人体实例标注的图像,每个实例标注17个关键点。
实验平台采用Ubuntu 18.04.5 LTS,显卡为NVIDIA Tesla V100,显存32 GB,CUDA 11.4,cudnn470.57.02,实验代码采用PyTorch1.7.1和Python3.6.9实现。优化器采用Adam,初始学习率设置为0.000 5,学习率衰减系数为0.1,共训练140个周期,在90个和120个周期时进行学习率衰减。本文采用包含随机旋转[-30°, 30°],随机缩放[0.75,1.50],随机平移[-40,40]和随机水平翻转(0.5)等数据增强方式进行训练。
3.1 评价指标
本文对于COCO数据集采用平均精度(AP)进行评估,并采用目标关键点相似度(OKS)来计算预测关键点和真实关键点的相似度,并比较不同相似度下的AP值。OKS计算式如下:
(8)
根据不同的OKS值计算不同的AP,AP50表示当OKS=0.5时的平均精度,同理AP75表示当OKS=0.75时的平均精度,AP表示OKS=0.5∶0.05∶0.95之间的平均精度均值,APM表示像素区域32×32像素96×96像素范围内目标的平均精度。
3.2 结果分析
本文对比所提的方法与其他自底向上多人姿态估计方法在COCO test-dev2017和COCO val2017数据集上的结果,如表1所示。本文方法在COCO test-dev2017数据集上实现了69.0%的AP,比DEKR方法提高了1.7个百分点,在APM上提高了3.3个百分点,比SWAHR方法的AP提高了1.1个百分点,在APM上提高了2.4个百分点。尽管本文方法的AP结果比CID方法提高了0.1个百分点,但是对比中等目标,APM实现了1.6个百分点的提升。与同样针对小目标姿态的DAC方法相比,本文方法的AP提高了0.5个百分点,APM也提高了1.4个百分点,与基于Transformer的PETR方法相比,本文方法的AP提高了0.5个百分点,但APM显著提高了2.3个百分点。实验结果证明了融合全局-局部上下文信息方法的有效性。
表1 不同方法在COCO test-dev2017和COCO val2017上的性能比较Table 1 Performance comparison among different methods on COCO test-dev2017 and COCO val2017
3.3 消融实验
为了详细说明不同模块对模型性能的影响,本文在COCO val2017数据集上进行消融实验,分别探究了中心点数量、可变形采样、对比学习损失、Transformer数量、损失函数权重系数的影响,并对算法效率进行分析。
表2所示为不同Transformer层数对模型性能的影响。随着Transformer层数的增加,模型的性能先提高后降低,可能的原因是随着层数的增加,模型开始过拟合。考虑到模型的计算效率和性能,本文最终选择3层的Transformer,后续的消融实验同样采用3层Transformer进行测试。
表2 Transformer层数的消融实验结果Table 2 Ablation experiment results of Transformer layers number
表3所示为不同的中心点数量对模型性能的影响。从表3可以看出,1个中心点取得68.7%的AP,而3个中心点取得69.3%的AP。因为小目标的单一中心点容易被遮挡,多中心点保证在有部分中心点遮挡的情况下还可以利用可见的部分对小目标进行姿态估计。随着中心点数量的增加,模型的AP开始降低,AP50却进一步增加,表明多中心点的确利于预测被遮挡的目标,但因引入了冗余的上下文信息,反而降低了模型的性能。
表3 中心点数量的消融实验结果Table 3 Ablation experiment results of center point number
表4所示为不同的损失权重系数对模型性能的影响。由于对比损失的数量级远小于热图损失,且模型的输出结果更容易受到单目标热图损失single的影响,因此本文固定λ1=1,λ2=1,仅改变λ3的大小。实验结果表明,随着λ3的变大,模型的精度在稳步提升,直到λ3=3之后精度开始饱和,进一步增大λ3的值反而导致精度降低。
表4 损失权重系数对模型性能的影响Table 4 Influence of loss weight factors on model performance
表5所示为本文方法与其他自底向上方法的参数量大小和浮点运算量,以及在Tesla V100 GPU上对比了batch size=1下的算法推理速度。从表5可以看出,本文方法在引入额外的多层Transformer的情况下,推理速度媲美其他方法。本文方法并行计算效率高,因此在参数量和计算量都不占优的情况下,仍能在GPU上取得很快的推理速度。图6所示为在不同人员数量下的推理时间。随着图像中人员数量的增加,本文方法的推理时间增长缓慢。
表5 算法效率分析Table 5 Analysis of algorithms efficiency
图6 在不同人员数量下的推理时间Fig.6 Inference time under different numbers of person
表6所示为消融实验结果。第1组实验在不采用任一种模块的情况下AP只有68.0%,加入对比损失后的AP相比第1组实验有0.7个百分点的提升,加入多中心监督后的AP有0.9个百分点的提升,同时加入对比损失和多中心监督后的AP有1.3个百分点的提升,同时加入上述3种模块后的AP有2.2个百分点的提升,APM甚至有3.0个百分点的提升。消融实验结果表明本文提出的多个模块均能有效提高模型的性能。
表6 消融实验结果Table 6 Ablation experiment results %
3.4 可视化分析
对于训练好的模型,本文在COCO test-dev2017数据集上选取了部分带有小目标的图像进行测试。本文方法在COCO test-dev2017数据集上的可视化结果如图7所示。本文方法在一定程度上提高了小目标的姿态估计性能,对于512×512像素的输入图像,如图7中第1行的第2列所示,模型最小能识别19×19像素的目标(用矩形框标出)。然而,在图7中,对于拥挤场景下的目标,本文方法无法得到满意的结果,面对严重遮挡的情况也只能对未被遮挡的部分进行预测。
图7 本文方法在COCO test-dev2017数据集上的可视化结果Fig.7 Visualization results of the proposed method on COCO test-dev2017 dataset
4 结束语
本文提出一种融合全局-局部上下文信息的多人姿态估计方法。利用多中心监督信息来增强小目标的定位能力,基于粗糙的定位结果,采用可变形的双线性插值采样方式有效提取小目标的上下文信息,结合HRNet提取的全局上下文信息和Transformer解码器对不同小目标的上下文信息进行聚类增强,实现了准确的小目标多人姿态估计。在COCO test-dev2017和COCO val2017公开数据集上的实验结果表明,本文方法有效改善了小目标的识别精度。下一步将针对遮挡和拥挤场景下的多人姿态估计,在保持小目标检测性能的同时实现对遮挡目标的有效识别。