APP下载

引入坐标注意力和自注意力的人体关键点检测研究

2022-12-13刘圣杰何宁于海港王程韩文静

计算机工程 2022年12期
关键词:关键点分辨率注意力

刘圣杰,何宁,于海港,王程,韩文静

(1.北京联合大学 北京市信息服务工程重点实验室,北京 100101;2.北京联合大学 机器人学院,北京 100101;3.北京联合大学 智慧城市学院,北京 100101)

0 概述

人体姿态估计又称人体关键点检测,其目的是根据图像、视频等输入数据来定位人体部位并建立人体表征(如人体骨骼)。近年来,人体姿态估计引起了很多研究人员的关注,已成为计算机视觉的基本任务之一,广泛应用于人机交互、运动分析、增强现实、虚拟现实等领域[1]。深度学习在人体关键点检测任务中取得了显著效果,但是其存在训练数据不足、模糊、遮挡等问题,因此,解决人体姿态估计问题仍然面临较大挑战[2]。

人体关键点检测可以分为基于2D 和基于3D 的两类方法。2D 人体关键点检测又可以分为单人关键点检测和多人关键点检测两种类别。

单人关键点检测研究主要在MPII 数据集上展开:WEI等[3]提出CPM,将深度学习应用于人体姿态估计任务,其网络结构中设计多个stage,同时用卷积层表达纹理信息和空间信息,提高了关键点检测的效果;NEWELL等[4]提出Hourglass 网络,其延续了多stage 结构设计,且结构中包含不同尺度的信息,通过不同stage 来保留不同的关键点信息,进一步提升了检测效果;BULAT等[5]改进了Hourglass 网络结构,提出更高效准确的跳跃连接网络,在MPII 数据集上其平均精度(AP)值高达94.1%。

多人姿态估计又称多人关键点检测,主要有自上而下和自下而上两种方法。自上而下的方法分为目标检测和单人人体关键点检测两个阶段。目标检测部分采用经典的目标检测算法从输入图像中检测单个人体,然后将检测到的结果进行裁剪并实现单人人体关键点检测。但是自上而下的方法主要存在3 个难点:关键点局部信息较弱,容易与背景信息混淆,因此,需要较大的感受野来区分关键点和背景信息;不同关键点的检测和区分难度不同,较难检测的关键点要区别对待;自上而下的人体关键点定位依赖于前一阶段的目标检测结果。FANG等[6]提出的RMPE 方法针对检测框定位误差、相同物体重复检测等问题,通过空间变换网络调整裁剪区域。CHEN等[7]提出的CPN 设计两个阶段的网络,通过特征金字塔检测简单关键点,再通过RefineNet 检测较难关键点。LI等[8]提出的MSPN 延续了Refine 的思想,在多阶段重复的上采样和下采样过程中,采用coarse-Fine 中间监督的方式进一步优化了人体关键点检测效果。QI等[9]提出的SSN 针对相同关节相似度较高而难以区分的问题,设计特征移动模块来补充空间信息,提高了近似关节点的检测精度。SUN等[10]提出的HRNet 由并行的从高到低分辨率子网组成,在不同分辨率子网间进行信息交换,保证网络中的高分辨率表征,提高了中小尺度人物的检测效果。自上而下的方法对人体检测框具有依赖性,对尺度信息不敏感,且多人图像中每个人体都需要人体检测框进行检测,导致计算量较高,使得该类方法很难应用于实时的人体姿态估计任务。

自下而上的方法分为关键点检测、关键点聚类这两个阶段。关键点检测和单人关键点检测方法基本相同,区别在于自下而上的方法需要全部检测出输入图像所有类别中的所有关键点,然后通过聚类处理,将关键点进行聚类以组合成不同的人体。自下而上方法的难点在于关键点聚类过程,即高效准确地构建不同关键点之间的关系。CAO等[11]提出的OpenPose 设计PAF 方法,使检测到的关键点迅速组合成单个人体,提高了人体姿态估计的效率。HIDALGO等[12]对OpenPose 中的方法进行改进,提高了其在多人场景中的运行速度,并进一步解决了遮挡问题。

对于2D 图像,现有网络对小尺度人物检测效果较差,进而影响网络整体的检测效果。通过大量实验发现,特征图多次上采样和下采样导致分辨率越低的分支越少保留位置信息和通道信息,很难捕获位置信息和通道信息之间的关系,且最小分辨率分支由于感受野较小而更关注局部信息,对全局信息提取能力不足。针对以上问题,本文提出一种改进的人体关键点检测网络CASANet(Coordinated Attention Self-Attention Network),采用CA 模块提升位置信息和通道信息的提取效果,使用自注意力模块在低分辨率特征图上捕获位置和通道之间的关系,最后在COCO 数据集上验证CASANet 的有效性。

1 相关工作

1.1 HRNet 高分辨率网络

在当前的人体姿态估计研究中,HigherHRNet[13]、DEKR[14]等骨干网络主要采用高分辨率的网络,因为高分辨率网络能够提高局部关节点信息的提取效果,所以本文选取常用的高分辨率网络HRNet 作为基础网络。HRNet 由于其特殊的结构而被广泛应用于姿态估计、目标检测、语义分割等视觉任务中,并获得了显著的效果。HRNet 的结构不同于传统的串联结构,传统串联网络结构仅将不同分辨率的特征图以串联的形式连接,难以融合不同分辨率特征图的信息,导致关键点检测效果较差。传统串联网络结构如图1 所示。

图1 传统串联网络结构Fig.1 Traditional serial network structure

高分辨率网络采用并联的方式实现不同分辨率特征图之间的信息融合,通过多次跨并行卷积进行多尺度特征融合,从而增强高分辨率的特征信息,使整个网络保持高分辨率表示,提升人体关键点检测的准确率。HRNet 的网络结构分为4 个阶段,每个阶段均包含不同分辨率的特征,第一阶段包含1/4 分辨率的特征,第二阶段包含1/4、1/8 分辨率的特征,第三阶段包含1/4、1/8、1/16 分辨率的特征,第四阶段包含1/4、1/8、1/16、1/32 分辨率的特征。每个阶段内包含的不同特征通过transition 进行融合,从而保证网络中的高分辨率信息。简略的HRNet 网络结构如图2 所示。

图2 HRNet 网络结构Fig.2 HRNet network structure

1.2 注意力机制

近年来,注意力机制[15-16]被广泛应用于图像分类、图像分割等计算机视觉任务,且取得了优异的效果。注意力机制最初主要用于人类视觉研究,一些学者在进行人类视觉研究时发现,人在观察某些事物时会首先关注一些具有区分性的重要信息而忽略其他相关信息,通过进一步研究发现这是一种信号处理机制,人工智能领域的研究人员将其引入到一些模型中,提高了模型的性能表现。目前,注意力机制已经在深度学习领域占据重要位置,成为该领域应用最广泛的组件之一。

注意力机制依照注意力域进行划分,可分为通道域注意力、空间域注意力和混合域注意力三大类:通道域注意力主要为不同通道划分不同的注意力权重,提高了重要通道对网络的影响;空间域注意力为特征图的每个像素空间位置分配不同的权重,保留了重要的空间特征;混合域注意力包含以上两种注意力。HU等[17]提出的SENet 通道注意力的主要思路是压缩每个2D 特征图,有效建立通道间的相互依赖关系。WOO等[18]提出的CBAM 通过使用大尺寸的卷积核引入空间信息编码,进一步推进了SENet的应用。后来出现的许多注意力机制,如GENet[19]、GALA[20]、AA[21]、TA[22]等,都使用了不同的空间注意力机制或设计不同结构的注意力块,扩展了SENet的思想。

自注意力机制是注意力机制的改进,其减少了对外部信息的依赖,更擅长捕捉数据或特征的内部相关性,比较典型的自注意力机制包括NLNet[23]、GCNet[24]、A2Net[25]、SCNet[26]、GSoP-Net[27]、CCNet[28],所有这些都利用自注意力机制来捕获不同类型的空间信息。然而,自注意力模块内部的计算量较大,可能会给网络增加一定的复杂度。

本文对主干网络中的特征传递过程进行研究,发现通过下采样获取到低分辨率分支的特征图中缺失位置信息和通道信息,而这些信息对热图的生成具有重要作用,进一步影响到关键点检测的准确率。为解决下采样过程中的信息丢失问题,本文引入CA模块提高对位置信息和通道信息的获取能力,降低下采样操作所带来的影响。引入自注意力模块捕获位置信息和通道信息的内部相关性,提高网络对信息的敏感性。

2 本文方法

人体关键点检测的主干网络多采用多阶段的不同分辨率网络结构,主体采用下采样的方式获得低分辨率的特征图,再通过上采样的方式恢复到原分辨率。多次下采样和上采样会导致位置信息和通道信息丢失,致使预测生成热图和标签生成热图有较大偏差。本文引入2 个模块解决以上问题:

1)CA 模块,该模块可以更好地捕获通道信息和位置信息,降低采样过程中的信息丢失,从而保证热图预测的准确性。

2)自注意力模块,该模块可以捕获通道信息和位置信息的内部联系,使得网络对不同特征的信息具有更好的区分度。

本文在上述2 个模块的基础上进行不同分辨率特征的融合,从而实现更好的预测效果。

2.1 CASANet 网络

本文采用HRNet 作为骨干网络,但是HRNet 网络结构中存在一些缺陷,低分辨率的分支对于通道信息和位置信息有一定缺失。本文设计的CASANet网络结构主要在1/16 分辨率特征后加入CA 模块,进一步对通道信息和位置信息进行提取,将提取到的信息作为下一阶段网络的输入。在1/32 的分辨率下捕获通道信息和位置信息之间的关系,将捕获到的信息作为下一阶段网络的输入。通过这2 个模块提取的信息能够克服主干网络自身的问题,提高网络对人体关键点的检测效果。在得到不同分辨率的特征之后对特征进行融合,特征融合方式有两种:低分辨率分支通过上采样的方式恢复分辨率并和高分辨率特征进行融合;高分辨率分支通过步长卷积降低分辨率并与低分辨率特征进行融合。最后,将融合后的不同分辨率的分支特征用于热图预测,通过解码的方式回归得到各关键点的坐标。

CASANet 网络结构如图3 所示,其中R为原始图像分辨率。

图3 CASANet 网络结构Fig.3 CASANet network structure

2.2 坐标注意力机制

坐标注意力机制是一种轻量化的注意力机制,该机制将位置信息嵌入到通道注意力中,本文利用该注意力机制捕获位置信息和通道信息。

一个坐标注意力块可以看作一个计算单元,能够增强网络的学习表达能力,其可以将任何中间特征张量X=[x1,x2,…,xC]∈RC×H×W作为输入,并通过转换输出与X张量具有相同大小同时具有增强表征的变换张量Y=[y1,y2,…,yC]。为了更加清晰地描述CA 注意力机制,本文首先分析被广泛使用的SE 注意力机制。

2.3 SE 注意力机制

通道注意力机制主要对通道间的依赖关系进行建模,可以自适应地调整各通道的特征响应值。由于普通卷积本身很难对通道关系进行建模,而构建通道相互依赖性可以增加模型对信息通道的敏感性,这些通道对最终的分类决策有重要贡献。此外,通道注意力机制中的全局平均池化可以帮助模型捕获全局信息,这是普通卷积难以实现的。SE 模块结构如图4 所示。

图4 SE 通道注意力模块结构Fig.4 Structure of SE channel attention module

从整体结构上看,SE 可以划分为Squeeze 和Excitation两步,Squeeze用于全局信息嵌入,Excitation可以对通道间的关系进行自适应调整。

给定输入X,第m通道Squeeze 步长的计算过程如式(1)所示:

其中:Zm是与第m通道相关联的输出。输入X来自具有固定核大小的卷积层,因此,其被视为局部描述符的集合。Squeeze 操作使收集全局信息成为可能。

Excitation 步骤的激励目的是完全捕获通道间的依赖关系,计算过程如式(2)所示:

其中:“·”表示通道乘法;σ为Sigmoid函数表示变换函数生成的结果。函数的计算过程如式(3)所示:

其中:T1和T2是2 个线性变换,可以通过学习来捕捉每个通道的重要性。SE 只考虑通过建模通道关系来重新衡量每个通道的重要性,忽略了位置信息带来的影响,而位置信息对于生成空间选择性的注意力图非常重要。因此,本文引入一种新的注意力块,不仅关注通道间的关系,还考虑对特征空间位置信息的提取能力。

2.4 坐标注意力模块

坐标注意力模块CA 通过精确的位置信息对通道关系和长期依赖性进行编码,整个过程分为两步:第一步完成坐标信息嵌入;第二步生成坐标注意力。坐标注意力模块结构如图5 所示。

图5 坐标注意力模块结构Fig.5 Structure of coordinated attention module

2.4.1 坐标信息嵌入

全局池化方法通常用于通道注意编码空间信息的全局编码,但由于其将全局空间信息压缩到通道描述符中,导致难以保存位置信息,而位置信息在视觉任务中对于捕获空间结构至关重要。为了促使注意力模块能够捕捉具有精确位置信息的远程空间交互,本文按照式(1)分解全局池化操作,将其转化为一对一维的特征编码操作。具体地,给定输入X,将全局池化操作分解为沿着输入特征图的水平方向(H,1)和垂直方向(1,W)分别进行池化操作,从而获得输入特征图的x、y轴相关位置信息。水平方向上得到的一维特征如式(4)所示:

垂直方向上得到的一维特征如式(5)所示:

上述2 种变换分别沿2 个空间方向聚合特征,生成一对方向感知的特征映射,这与通道注意力方法中产生单一特征向量的SE 模块不同,这2 种转换不仅能让注意力模块捕捉到沿着一个空间方向的长期依赖关系,而且保存沿着另一个空间方向的精确位置信息,这有助于网络更准确地定位感兴趣的目标。

2.4.2 坐标注意力生成

在坐标嵌入的过程中,式(4)和式(5)可以很好地获得全局感受野并编码精确的位置信息。为了有效利用由此产生的表征,本文设计第二个转换,称为坐标注意力生成。坐标注意力生成参照以下3 个标准:首先,这种转换应该尽可能的简单高效;其次,这种转换可以充分利用捕捉的位置信息来精确定位感兴趣区域;最后,它还能有效捕捉通道之间的关系。

通过信息嵌入中的变换后,将式(4)和式(5)进行拼接操作,并将其送入1×1 卷积函数F1中进行变换操作以获得注意力图,计算过程如式(6)所示:

其中:[·,·]表示沿空间维度的串联操作;δ是非线性激活函数;F1的作用是将水平和垂直方向的池化结果进行拼接;f是在水平方向和垂直方向进行编码的中间特征映射。

沿着空间维数将f分解为2 个单独的张量和。与SENet 相同,r是控制模块大小的一个超参数。利用另外2 个1×1 卷积变换Fh和Fw,分别将fh和fw变换为具有相同通道数的张量,如式(7)和式(8)所示:

经过1×1 卷积统一通道数,利用Sigmoid 函数获得注意力的权重数据。为了降低模型复杂度和计算量,通常使用适当的缩减比r(如32)来减少f的通道数,然后分别对输出gh和gw进行扩展,分别作为注意力权重。最后,坐标注意力块的输出Y如式(9)所示:

不同于只关注通道权重的注意力机制,坐标注意力块也考虑对空间信息进行编码。如上所述,沿水平和垂直方向的注意力同时应用于输入张量。2 个注意力图中的每个元素都能反映感兴趣对象是否存在于相应的行和列中,这种编码过程可以使坐标注意力更加准确地定位感兴趣对象的准确位置,使得模型进行更有效的识别。

2.5 自注意力模块

自注意力模块通过关注所有位置并在嵌入空间中取其加权平均值来计算序列中某个位置(如句子)的响应。自注意力模块的主要工作是捕捉长距离像素间的信息,针对2D 图像,这种关系表示图像中的像素与目标像素的关系权值。卷积神经网络因自身的局限性,只能利用目标周围局部信息来计算目标像素,局部信息可能会造成一定的偏差。针对该问题,可使用更大卷积核或加深网络深度,但是对于人体关键点检测任务,上述操作只能提高参数量,对网络整体增益效果较差。

本文引入已有的自注意力模块,以提高网络捕捉通道信息和位置信息内部关系的能力,克服传统卷积和下采样过程中信息丢失的缺陷。自注意力模块可以简单高效地嵌入在主干网络中,提高人体关键点检测的准确率。自注意力模块结构如图6 所示。

图6 自注意力模块结构Fig.6 Structure of self-attention module

输入信号X=H×W×256 通过3 个1×1 卷积进行降维,得到θ(xi)、ϕ(xj)、g(xk),该操作的主要目的是降级通道数、降低参数量。然后对θ(xi)、ϕ(xj)、g(xk)进行变形操作得到H×W×128 维,对变形后的ϕ(xj)进行转置,与θ(xi)进行矩阵相乘得到ϕ(xj)tθ(xi),经过Softmax 函数与g(xk)相乘,再通过1×1 卷积恢复维度为H×W×128,与输入信号维度保持一致,与xs进行相加操作,如式(10)所示:

其中:Wz是可学习的权重矩阵。

xs分支与输入信号一致是一种跳跃连接结构,保证输入信号在进行一系列维度转变之后还能起到一定的作用。这种结构可以克服普通卷积的局限性,更好地捕捉通道和空间的内部相关性。在特殊情况下,当式(10)中Wz初始化为0 时,这种结构可以允许自注意力模块在不破坏网络结构的前提下插入到任何网络中,体现了自注意力模块即插即用的特性。

3 实验结果与分析

本文实验环境为Ubuntu 18.04.6 LTS,64 位操作系统,Intel®Xeon®CPU E5-2678v3@2.50 GHz,内存12 GB,显卡RTX2080Ti 以及cuda10.0.130、cudnn7.5、Pytorch1.7 和Python3.6 的软件平台。网络预训练参数使用在ImageNet数据集上预训练模型的参数。实验中的优化器使用Adam,对模型设置的初始学习率为0.001,学习率衰减系数为0.1,分别在170 和200 周期时进行学习率衰减,分别衰减为1e-4 和1e-5。训练过程在200 个周期结束。

数据集采用MS COCO 2017,该数据集是一个大型丰富的物体检测、分割和字幕数据集,以环境感知为目标,主要从复杂的日常场景中截取图像,图像中的目标通过精确分割进行位置标定。图像包括91 类目标、328 000 个影像和2 500 000 个标签。COCO 人体姿态估计数据集中包含了超过20 万张图片以及超过25 万个人体实例对象,每个对象都标记了17 个人体关键点。

3.1 评价指标

实验中的评价指标选用MS COCO 2017 数据集官方给定的OKS,其计算公式如下:

其中:dj是检测的关键点坐标和真实值之间的欧式距离;vj表示能否观察到人体关键点;s是检测目标的大小;kj是每个关键点的衰减系数。

在实验中采用OKS 方法:AP50(表示在IoU 等于0.5 时的平均精度值)、AP75(表示在IoU 等于0.75 时的平均精度值)、mAP(mean Average Precision)为各类别AP 的平均值,APM表示中等尺度人体,APL表示大型尺度人体,AR 为每个图像中检测到固定数量的最大召回率。

3.2 结果分析

将本文提出的CASANet 算法与其他先进的人体关键点检测算法进行对比,表1 所示为各算法在COCOVAL 2017 验证集上的实验结果。从表1 可以看出,本文算法在相同输入尺度下取得了最高的精度值。CASANet 采用HRNet 作为骨干网络,在网络的1/16 分辨率特征图后加入CA 模块,增加了该分支对位置信息和通道信息的提取能力。在网络的1/32分辨率特征图后加入自注意力模块,使其减少对外部信息的依赖,提高特征内部的相关性。再将2 个分辨率分支通过融合模块进行特征融合,提高了网络对于中小尺度人体的关键点检测效果。本文提出的CASANet 算法在平均精度上相较基线方法有2.4 个百分点的提升,平均精度提升主要来自APM提升了2.9 个百分点,说明本文设计的方法极大提高了小尺度人体的检测效果。此外与输入图像更大、具有更大感受野的HRNet-W48 相比,本文CASANet算法依然提高了0.5 个百分点的精度,表明增大输入图像尺度会对关键点检测效果有进一步提升。

表1 各方法在COCOVAL 2017 数据集上的实验结果Table 1 Experimental results of various methods on COCOVAL 2017 dataset

表1 中还将本文方法与其他经典人体关键点检测方法的参数量和平均精度值结果进行了对比。相较基线网络,本文方法在参数量略有提升的情况下,在验证集上的准确率提高了2.4 个百分点。与性能较优的HRNet-W48 相比,本文方法的参数量不到其一半,平均精度值却高出0.5 个百分点。综上,本文网络可以在提升少量参数量的前提下提高人体关键点检测的平均准确率。

图7 所示为本文方法在COCO 验证集上的检测结果可视化效果。通过可视化效果可以看出,本文方法可以适用于不同情境下的人体关键点检测任务,且检测效果较优。

图7 CASANet 在COCOVAL 2017 数据集上的可视化效果Fig.7 Visualization of CASANet on COCOVAL 2017 dataset

3.3 消融实验分析

在COCOVAL 2017 数据集上进行消融实验,验证CA 模块和自注意力模块对网络检测性能的影响。

如表2 所示,在加入2 种模块后,仅提升了少量的参数,但平均精度值有了明显提升。其中,采用CA 模块时有1.1 个百分点的精度提升,使用自注意力模块时有1.7 个百分点的精度提升。通过引入CA模块可以更好地提取位置信息和通道信息,保证更有价值的通道特征和位置特征在特征图中占更高比重。通过引入自注意力模块可以凸显出重要特征,增强不同特征之间的内部联系,减少下采样过程中的图像特征丢失。同时采用2 种模块可以获得2.4 个百分点的精度提升,表明这2 种模块能够提升网络提取特征的效果,进一步提高人体关键点检测准确率。

表2 消融实验结果Table 2 Results of ablation experiment

此外,本文还针对2 个模块在不同阶段的分辨率分支的添加位置进行消融实验。从表3 可以看出,仅添加一个CA 模块,在任意分辨率分支对于参数量提升都是一致的,当仅添加在1/16 分辨率分支时,提升效果明显,相较基线网络有1.1 个百分点的性能提升。从表4 可以看出,仅添加一个自注意力模块在任意分辨率分支,对网络整体参数量提升一致,在1/32 分辨率分支上添加自注意力模块,对网络性能提升较大,精度值可以提高1.7 个百分点。由上述消融实验可知,在1/16 分辨率分支添加CA 模块,在1/32 分辨率分支添加自注意力模块,可以得到最优的检测准确率。

表3 CA 模块的消融实验结果Table 3 Ablation experiment results of CA module

表4 自注意力模块的消融实验结果Table 4 Ablation experiment results of self-attention module

4 结束语

本文将高分辨率网络作为骨干网络,结合CA 模块和自注意力模块设计CASANet 网络,以实现人体关键点检测。CASANet 网络可以更好地利用通道信息和位置信息,突出图像的底层特征,使特征图中保留更丰富的信息。在COCO 2017 数据集上的实验结果表明,该网络在参数量略微提升的情况下能够大幅提高人体关键点检测准确率。在人体关键点检测任务中,若要实现精度提升,通常需要更加复杂的网络以及更加庞大的参数量,如何在保证较高精度的同时降低网络参数量、提高检测实时性,将是下一步的研究方向。

猜你喜欢

关键点分辨率注意力
让注意力“飞”回来
肉兔育肥抓好七个关键点
建筑设计中的防火技术关键点
原生VS最大那些混淆视听的“分辨率”概念
一种提高CCD原理绝对值传感器分辨率的方法
“扬眼”APP:让注意力“变现”
基于深度特征学习的图像超分辨率重建
基于自适应块组割先验的噪声图像超分辨率重建
A Beautiful Way Of Looking At Things
机械能守恒定律应用的关键点