1.本发明涉及计算机视觉技术领域,具体而言是一种引入热图梯度约束的人体姿态估计方法。
背景技术:2.人体姿态估计是计算机视觉领域中的一个重要课题,在智能安防、自动驾驶、智能家居金和动画建模等领域有着广泛的应用。该课题旨在预测一张图片中所有人体的关键点的坐标,例如手腕、脖子等。
3.根据训练时标注数据的表征形式不同,人体姿态估计算法主要分为两大类:基于坐标回归的方法和基于热图回归的算法。基于坐标回归的方法让人体姿态估计网络直接输出关键点坐标,这种方法的优点是可以从图片到关键点坐标端到端地反向传播,缺点是人体姿态估计网络需要拟合高度非线性的目标函数,并且关键点坐标提供的空间信息过于稀疏,使得人体姿态估计网络的训练难度大大增加,因此最终的预测效果较差。
4.基于热图回归的方法首先将标注的关键点坐标构建成高斯分布热图,让人体姿态估计网络以构建的高斯分布目标热图为预测目标,并在最终使用时从预测的热图中通过解码方法得到最终的预测坐标。这种方法相较于基于坐标回归的方法,降低了目标函数的非线性度,并且高斯分布目标热图为训练过程提供了更多的监督信息,因此获得更好的效果,成为了人体姿态估计的主流方法。
5.虽然基于热图回归的方法的已经取得较高的预测效果,但是目前基于热图回归的方法采用的均方误差损失函数这一训练目标,与最终从预测热图中解码出的预测坐标的准确率这一任务目标,这两者之间仍然存在不对齐的问题。具体而言,目前基于热图回归的方法在训练中会出现损失函数下降的同时,预测坐标的准确率反而下降的问题。该问题的原因在于,从热图中解码出的预测坐标的准确率这一任务目标,只需要预测热图的最大值点,也即热图中的高斯分布的均值,接近真实的关键点坐标。然而目前基于热图回归的方法在构建高斯分布目标热图时,不必要地固定了高斯分布的最大值。这导致对于一些困难样本,例如遮挡的关键点、膝盖等关键点,预测热图的置信度比较低,与目标热图的均方误差会很大。为了降低均方误差,这些样本的预测热图会在真实关键点坐标的四周产生其他峰值,从而导致最终的预测坐标的准确率下降。
技术实现要素:6.本发明为克服现有技术的不足之处,提出一种引入热图梯度约束的人体姿态估计方法,以期能预测出更有利于解码时精度恢复过程的热图,从而能提高人体姿态估计的预测精度。
7.本发明为达到上述发明目的,采用如下技术方案:
8.本发明一种基于热图梯度约束的人体姿态估计方法的特点是按如下步骤进行:
9.步骤1、对人体姿态估计数据库进行数据预处理:
10.所述人体姿态估计数据库中任意第a个样本是由一张原始图片ia、一个人体框bboxa和一组人体关键点μa组成;所述样本a的一组人体关键点坐标μa包含k个坐标,记为其中,表示第i个人体关键点的坐标,k表示人体关键点数;
11.使用样本a的人体框bboxa对原始图片ia进行裁剪,并缩放到指定尺寸后得到输入图片i
′a,并将原始图片ia上的人体关键点坐标μa转换到输入图片i
′a上的人体关键点坐标μ
′a;由{i
′a,μ
′a}构成样本a预处理后的一组人体姿态数据,从而得到包含n个样本的预处理后的人体姿态数据库d
p
;
12.步骤2、基于hrnet网络构建基于热图回归的人体姿态估计网络f
p
:
13.所述hrnet网络包括:输入层、b个特征提取与融合阶段和输出层;其中,所述输入层包括:卷积层、批标准化层、relu激活函数;b个特征提取与融合阶段由b个特征提取模块和b个融合模块构成,每个特征提取模块由卷积层、批标准化层、relu激活函数和残差连接组成,每个融合模块由卷积层、批标准化层和relu激活函数组成;所述输出层包括:反卷积层、卷积层、批标准化层和relu激活函数;
14.使用高斯分布对所述hrnet网络中所有卷积层、反卷积层和批标准化层进行权值初始化;
15.步骤3、使用引入热图梯度约束的损失函数训练人体姿态估计网络f
p
:
16.步骤3.1、根据所述人体姿态数据库d
p
中样本a的人体姿态数据{i
′a,μ
′a}中的人体关键点坐标μ
′a生成样本a的目标热图和目标热图梯度图其中,表示样本a的第i个人体关键点的目标热图,表示样本a的第i个人体关键点的目标热梯度图;
17.步骤3.1.1、利用式(1)生成样本a的第i个人体关键点的目标热图上坐标为(x,y)的像素值从而得到样本a的第i个人体关键点的目标热图最终得到样本a的k个人体关键点的目标热图
[0018][0019]
式(1)中,和表示预处理后的第i个人体关键点坐标μi′a的x轴值和y轴值,σ一个是固定的超参数,x和y分别表示目标热图的尺寸;
[0020]
步骤3.1.2、利用式(2)生成样本a的第i个人体关键点的目标热图梯度上坐标为(x,y)的像素值从而得到样本a的第i个人体关键点的目标热图梯度图最终得到样本a的k个人体关键点的目标热图梯度图
[0021][0022]
式(2)中,和表示第i个关键点在x轴和y轴方向的目标热图梯度图在坐标(x,y)的像素值;表示样本a的第i个人体关键点的目标热图上坐标
为(x+1,y)的像素值,表示样本a的第i个人体关键点的目标热图上坐标为(x,y+1)的像素值;
[0023]
步骤3.2、将所述人体姿态数据库d
p
中样本a的人体姿态数据{i
′a,μ
′a}中的i
′a输入到人体姿态估计网络f
p
中,得到样本a的预测热图中,得到样本a的预测热图表示样本a的第i个人体关键点的预测热图;
[0024]
利用式(3)生成样本a的第i个人体关键点的的预测热图梯度图上坐标为(x,y)的像素值从而得到样本a的第i个人体关键点的预测热图梯度图最终得到样本a的k个人体关键点的预测热图梯度图
[0025][0026]
式(3)中,和表示第i个关键点在x轴和y轴方向的预测热图梯度图在坐标(x,y)的像素值;表示样本a的第i个人体关键点的预测热图上坐标(x+1,y)的像素值,表示样本a的第i个关键点的预测热图上坐标(x,y)的像素值,表示样本a的第i个人体关键点的预测热图上坐标(x,y+1)的像素值;
[0027]
步骤3.3、建立引入热图梯度约束的人体姿态估计损失函数l
p
;
[0028]
步骤3.3.1、利用式(4)建立预测热图和目标热图之间的均方误差损失函数lh:
[0029][0030]
式(4)中,n表示所述人体姿态数据库d
p
中样本的数量;
[0031]
步骤3.3.2、利用式(5)建立预测热图梯度图和目标热图梯度图之间的均方误差损失lg:
[0032][0033]
式(5)中,n表示所述人体姿态数据库d
p
中样本的数量,k表示人体关键点数,x和y分别表示热图的尺寸,x-1和y分别表示x轴方向的热图梯度图的尺寸,x和y-1分别表示y轴方向的热图梯度图的尺寸;
[0034]
步骤3.3.3、利用式(6)建立引入热图梯度约束的人体姿态估计损失函数l
p
:
[0035]
l
p
=αlh+βlg(6)
[0036]
式(6)中,α和β表示对lh和lg进行权衡的超参数;
[0037]
步骤3.4、使用adam方法对人体姿态估计网络f
p
进行训练,并计算所述损失函数l
p
用于更新网络参数,当训练迭代次数达到设定的次数或损失函数达小于所设定的阈值时,训练停止,从而得到训练后的人体姿态估计网络
[0038]
步骤4、训练好的人体姿态估计网络的预测;
[0039]
步骤4.1、利用预训练的人体目标检测网络fd对待测图像i
test
进行预测,得到预测的人体目标检测框其中,表示人体目标检测网络fd对待测图像i
test
预测的第j个人体目标检测框,n表示人体目标检测网络fd对待测图像i
test
预测的人体目标检测框数量;
[0040]
步骤4.2、利用所述第j个人体目标检测框对待测图像i
test
进行裁剪,并缩放到所述指定尺寸后第j个预处理后的输入图像从而得到输入图像集合
[0041]
步骤4.3、所述第j个预处理后的输入图像输入到训练后的人体姿态估计网络中,得到输入图像的第i个人体关键点的预测热图从而得到输入图像的预测热图
[0042][0043]
从所述输入图像的第i个人体关键点的预测热图解码出输入图像的第i个人体关键点的预测坐标从而得到输入图像的k个人体关键点预测坐标记为
[0044]
步骤4.4、对所述待测图像i
test
的人体关键点预测坐标集合进行非极大值抑制,从而得到待测图像i
test
的最终人体关键点预测坐标集合其中,表示输入图像的最终人体关键点预测坐标。
[0045]
本发明一种电子设备,包括存储器以及处理器,其特点在于,所述存储器用于存储支持处理器执行所述人体姿态估计方法的程序,所述处理器被配置为用于执行所述存储器中存储的程序。
[0046]
本发明一种计算机可读存储介质,计算机可读存储介质上存储有计算机程序,其特点在于,所述计算机程序被处理器运行时执行所述人体姿态估计方法的步骤。
[0047]
与已有技术相比,本发明的有益效果体现在:
[0048]
1、本发明通过提出一种引入热图梯度约束的训练损失函数,可以让人体姿态估计网络在训练中更多地关注预测热图的最大值点和相对形状,解决了均方误差损失函数这一训练目标与预测坐标准确率这一任务目标之间不对齐的问题,从而实现了预测准确率更高的人体姿态估计;
[0049]
2、本发明提出的训练损失函数与人体姿态估计网络的具体架构解耦,可以运用在不同的人体姿态估计网络的训练中,对不同架构、不同分辨率、不同深度的人体姿态估计网络都能取得显著的预测准确率提升;
附图说明
[0050]
图1为本发明方法流程示意图;
[0051]
图2为本发明损失函数计算流程示意图。
具体实施方式
[0052]
本实施例中,一种引入热图梯度约束的人体姿态估计方法是通过让模型注重预测热图的形状约束,从而有效地提升困难样本上的预测准确度,最后实现精确的人体姿态估计,具体地说,如图1所示,是按如下步骤进行:
[0053]
步骤1、对人体姿态估计数据库进行数据预处理:
[0054]
人体姿态估计数据库中任意第a个样本是由一张原始图片ia、一个人体框bboxa和一组人体关键点μa组成;样本a的一组人体关键点坐标μa包含k个坐标,记为其中,表示第i个人体关键点的坐标,k表示人体关键点数;
[0055]
使用样本a的人体框bboxa对原始图片ia进行裁剪,并缩放到指定尺寸后得到输入图片i
′a,并将原始图片ia上的人体关键点坐标μa转换到输入图片i
′a上的人体关键点坐标μ
′a;本实施例中,缩放的指定尺寸为192
×
256;由{i
′a,μ
′a}构成样本a预处理后的一组人体姿态数据,从而得到包含n个样本的预处理后的人体姿态数据库d
p
;
[0056]
本实施例中,采用coco人体姿态估计数据库,包含149813个样本,每个样本的人体关键点数为17;
[0057]
步骤2、基于hrnet网络构建基于热图回归的人体姿态估计网络f
p
:
[0058]
hrnet()网络包括:输入层、b个特征提取与融合阶段和输出层;本实施例中,b设置为4;其中,输入层包括:卷积层、批标准化层、relu激活函数;b个特征提取与融合阶段由b个特征提取模块和b个融合模块构成,每个特征提取模块由卷积层、批标准化层、relu激活函数和残差连接组成,每个融合模块由卷积层、批标准化层和relu激活函数组成;输出层包括:反卷积层、卷积层、批标准化层和relu激活函数;
[0059]
使用高斯分布对hrnet网络中所有卷积层、反卷积层和批标准化层进行权值初始化;
[0060]
步骤3、使用引入热图梯度约束的损失函数训练人体姿态估计网络f
p
:
[0061]
步骤3.1、根据人体姿态数据库d
p
中样本a的人体姿态数据{i
′a,μ
′a}中的人体关键点坐标μ
′a生成样本a的目标热图和目标热图梯度图其中,表示样本a的第i个人体关键点的目标热图,表示样本a的第i个人体关键点的目标热梯度图;
[0062]
步骤3.1.1、利用式(1)生成样本a的第i个人体关键点的目标热图上坐标为(x,y)的像素值从而得到样本a的第i个人体关键点的目标热图最终得到样本a的k个人体关键点的目标热图
[0063]
[0064]
式(1)中,和表示预处理后的第i个人体关键点坐标μi′a的x轴值和y轴值,σ一个是固定的超参数,x和y分别表示固定的目标热图尺寸;本实施例中,σ设置为4;
[0065]
步骤3.1.2、利用式(2)生成样本a的第i个人体关键点的目标热图梯度上坐标为(x,y)的像素值从而得到样本a的第i个人体关键点的目标热图梯度图最终得到样本a的k个人体关键点的目标热图梯度图
[0066][0067]
式(2)中,和表示第i个关键点在x轴和y轴方向的目标热图梯度图在坐标(x,y)的像素值;表示样本a的第i个人体关键点的目标热图上坐标为(x+1,y)的像素值,表示样本a的第i个人体关键点的目标热图上坐标为(x,y+1)的像素值;
[0068]
步骤3.2、将人体姿态数据库d
p
中样本a的人体姿态数据{i
′a,μ
′a}中的i
′a输入到人体姿态估计网络f
p
中,得到样本a的预测热图中,得到样本a的预测热图表示样本a的第i个人体关键点的预测热图;
[0069]
利用式(3)生成样本a的第i个人体关键点的的预测热图梯度图上坐标为(x,y)的像素值从而得到样本a的第i个人体关键点的预测热图梯度图最终得到样本a的k个人体关键点的预测热图梯度图
[0070][0071]
式(3)中,和表示第i个关键点在x轴和y轴方向的预测热图梯度图在坐标(x,y)的像素值;表示样本a的第i个人体关键点的预测热图上坐标(x+1,y)的像素值,表示样本a的第i个关键点的预测热图上坐标(x,y)的像素值,表示样本a的第i个人体关键点的预测热图上坐标(x,y+1)的像素值;
[0072]
步骤3.3、建立引入热图梯度约束的人体姿态估计损失函数l
p
;
[0073]
步骤3.3.1、利用式(4)建立预测热图和目标热图之间的均方误差损失函数lh:
[0074][0075]
式(4)中,n表示人体姿态数据库d
p
中样本的数量;损失函数lh会出现损失下降的同时,预测坐标的准确率反而下降的问题,即均方误差损失函数lh这一训练目标与预测坐标准确率这一任务目标之间存在不对齐的问题。
[0076]
步骤3.3.2、利用式(5)建立预测热图梯度图和目标热图梯度图之间的均方误差损失lg:
[0077][0078]
式(5)中,n表示人体姿态数据库d
p
中样本的数量,k表示人体关键点数,x和y分别表示固定的热图尺寸,x-1和y分别表示固定的x轴方向的热图梯度图尺寸,x和y-1分别表示固定的y轴方向的热图梯度图尺寸;本实施例中,x和y分别设置为48和64;均方误差损失lg可以让人体姿态估计网络在训练中更多地关注预测热图的最大值点和相对形状,从而能够解决均方误差损失函数lh这一训练目标与预测坐标准确率这一任务目标之间不对齐的问题;
[0079]
步骤3.3.3、如图2所示,利用式(6)建立引入热图梯度约束的人体姿态估计损失函数l
p
:
[0080]
l
p
=αlh+βlg(6)
[0081]
式(6)中,α和β表示对lh和lg进行权衡的超参数;本实施例中,α和β分别设置为1和8;
[0082]
步骤3.4、使用adam(adaptivemomentestimation)方法对人体姿态估计网络f
p
进行训练,并计算损失函数l
p
用于更新网络参数,当训练迭代次数达到设定的次数或损失函数达小于所设定的阈值时,训练停止,从而得到训练后的人体姿态估计网络本实施例中,训练迭代次数设置为210,初始学习率设置为1e-3,在第170和200轮将学习率缩小到1/10;
[0083]
步骤4、训练好的人体姿态估计网络的预测;
[0084]
步骤4.1、利用预训练的人体目标检测网络fd对待测图像i
test
进行预测,得到预测的人体目标检测框其中,表示人体目标检测网络fd对待测图像i
test
预测的第j个人体目标检测框,n表示人体目标检测网络fd对待测图像i
test
预测的人体目标检测框数量;
[0085]
步骤4.2、利用第j个人体目标检测框对待测图像i
test
进行裁剪,并缩放到指定尺寸后第j个预处理后的输入图像从而得到输入图像集合
[0086]
步骤4.3、第j个预处理后的输入图像输入到训练后的人体姿态估计网络中,得到输入图像的第i个人体关键点的预测热图从而得到输入图像的预测热图
[0087][0088]
从输入图像的第i个人体关键点的预测热图解码出输入图像的第i个人体关键点的预测坐标从而得到输入图像的k个人体关键点预测坐标记为
[0089]
步骤4.4、对待测图像i
test
的人体关键点预测坐标集合进行非极大值抑制,从而得到待测图像i
test
的最终人体关键点预测坐标集合其中,表示输入图像的最终人体关键点预测坐标。
[0090]
本实施例中,一种电子设备,包括存储器以及处理器,该存储器用于存储支持处理器执行上述人体姿态估计方法的程序,该处理器被配置为用于执行该存储器中存储的程序。
[0091]
本实施例中,一种计算机可读存储介质,是在计算机可读存储介质上存储有计算机程序,该计算机程序被处理器运行时执行上述人体姿态估计方法的步骤。