一种人体图像关键点姿态估计方法与流程

文档序号:24732486发布日期:2021-04-20 15:31阅读:135来源:国知局
一种人体图像关键点姿态估计方法与流程

1.本发明涉及图像处理技术领域,特别是涉及一种人体图像关键点姿态估计方法。


背景技术:

2.人体图像关键点姿态估计,是指从一张含有人体的图像中对人体骨架上的关键点进行建模估计,人体关键点一般定义为:踝关节,左膝关节,左臀部,右臀部,左膝关节,左踝关节,右踝关节,上颈部,头顶,右手腕,左肘,左肩,右肩,右肘,左手腕,最后通过训练好的姿态估计模型,对输入图像进行姿态估计,输出为含有人体骨架关键点的图像。
3.由于人体具有相当柔性,会出现各种姿态和形状,人体任何一个部位的微小变化都会产生一种新的姿态,同时其关键点的可见性受穿着、姿态、视角等影响非常大,而且还面临着遮挡、光照、雾等环境的影响,除此之外,2d人体关键点和3d人体关键点在视觉上会有明显的差异,身体不同部位都会有视觉上缩短的效果(foreshortening),使得人体骨骼关键点检测成为计算机视觉领域中一个极具挑战性的问题。
4.现有解决人体图像关键点姿态估计的人体骨骼关键点检测算法基本上是在几何先验的基础上基于模版匹配的思路来进行,核心就在于如何去用模版表示整个人体结构,包括关键点的表示,肢体结构的表示以及不同肢体结构之间的关系的表示。一个好的模版匹配的思路,可模拟更多的姿态范围,以至于能够更好的匹配并检测出对应的人体姿态。
5.也有人提出了基于深度学习的方法,比如g

rmi,paf,rmpe,mask r

cnn。普遍使用卷积神经网络来构建人体关键点姿态估计网络结构,现在通过行人检测网络识别出人体,但是现有的检测网络通常都是基于分类网络演变而来运用现有的分类网络框架进行修改,并且采用在imagenet上预训练好的模型进行fine

tuning,本发明针对检测这一具体任务提出一个专门的行人检测网络结构,随后将含有人体图像输入到该网络结构中,进行一系列非线性处理(用来拟合一个复杂的映射函数)得到生成的人体骨架关键点姿态图像,将生成的人体骨架关键点姿态图像与真实的标注的人体固件关键点图像作为损失函数的输入并计算该损失函数的值,求梯度来最小化这个值,并利用反向传播函数将求得的梯度反向传播并更新网络权重的参数,多次迭代直到该损失函数不变为止。
6.由于技术的进一步的发明以及高质量高精确度的人体骨架关键点图像对用户的体验和市场的竞争都具有重要的意义。而现有的人体图像关键点姿态估计生成质量不能满足要求,且不确定性比较大。因此,对人体图像关键点姿态估计方法进行一步改进,是很有必要的。


技术实现要素:

7.本发明的目的是针对现有技术中存在的技术缺陷,首先提出一种专有的检测网络detectionnet进而提供一种融合空洞卷积(dilated conv)的级联金字塔的深度神经网络的人体图像关键点姿态估计方法,以提高人体图像关键点姿态估计校正质量,降低不确定性。
8.为实现本发明的目的,本发明所采用的技术方案是:
9.一种人体图像关键点姿态估计方法,包括以下步骤:
10.步骤s1.将图像数据库中的图像数据预处理:
11.首先,将原始图像送入已经训练好的检测网络detectionnet检测,输入尺寸224*224,只输出人体用边界框标记的人体图像;然后将输出的人体图像裁剪,形成预定格式大小;
12.步骤s2.通过训练得到能够对人体图像进行姿态估计得到人体固件关键点图像的深度网络模型:
13.利用步骤s1中已经裁剪完成的人体图像作为网络的输入,以训练集中的json文件作为人体关键点标注信息像作为groundtruth,训练深度神经网络模型中的全局网络和矫正网络,获得训练好的完成从人体图像到人体关键点图像的姿态估计的深度神经网络模型;
14.其中,通过全局网络对输入的人体图像处理,得到不同尺寸的特征图,采用自底向上的u

shape的结构,与真实的标注的骨架关键点图像进行l2损失的计算,通过全局网络得到不同尺度的特征图输出,然后通过bottleneck和注意力机制模块然后进行上采样操作,对不同尺度的特征图进行concat操作后,进行l2损失的计算,模型迭代多次达到稳定后,完成模型的训练;
15.步骤s3.使用训练好的深度神经网络模型,对测试数据集中的图像进行姿态估计处理。
16.本发明使用全局网络和矫正网络两个网络分别定位关键点和对关键点进行修正,并采用l2损失函数,提高了生成关键点的进度和减小了不确定性,使用的以bottleneck与注意力机制为基础的矫正网络结构可以提高不同尺度之间的校正性能。
17.本发明全局网络通过使用残差网络resnet101结构作为骨干网络,提高了模型容量和加快训练速度。
18.本发明通过提出一种专有的检测网络,针对性质解决了一般的校正网络中忽略了各个尺度特征图之间通道权重分布问题,通过采用注意力机制模块来提升检测校正。借助提出的基于注意力机制模块的深度神经网络的人体图像关键点姿态估计模型,使用残差网络作为构建模型的基础,结合了级联金字塔结构,使得模型的校正性能更好并且泛化能力更强。
附图说明
19.图1所示为本发明在测试数据集中的一张人体图像上的测试结果,左边是输入人体图像,中间是采用注意力机制模块校正后输出图像,右边是不采用注意力机制模块校正后输出图像。
20.图2所示为本发明中专有的一中检测网络detectionnet方法结构框图。
21.图3所示为设计的2中不同类型的bottleneck结构图。
22.图4所示为p4,p5,p6之间的运算连接方式。
23.图5所示为resnet50网络的处理过程图。
24.图6所示为全局网络结构图。
25.图7所示为检测网络、全局网络中加和操作的局部示意图。
26.图8所示为本发明的整体网络结构图。
27.图9所示为bottleneck结构图。
28.图10所示为本发明的加入矫正网络后的整体结构图。
29.图11所示为本发明的空洞卷积(dilated conv)的卷积示意图。
30.图12所示为本发明设计的注意力机制模块示意图。
具体实施方式
31.以下结合附图和具体实施例对本发明作进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
32.本发明的人体图像关键点姿态估计方法,包括以下几个步骤:
33.步骤s1,先对图像训练集数据做特定数据增强,首先我们定义可以应用于图像的所有可能的数据增强,如下表(参数均对应于tensorflow相应函数参数):
34.操作名称
ꢀꢀꢀ
描述
ꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀꢀ
参数幅度范围
[0035][0036]
我们采用如下特定操作:
[0037][0038]
我们将增强策略定义为一组无序的k子策略(策略一~二)。在训练期间,将随机选择k个子策略中的一个,然后将其应用于当前图像。每个子策略都有2个图像增强操作,其中p为每个操作的概率值(范围0

1之间),m为参数幅度,并且将每个参数幅度都归一化到0

10区间范围之内。
[0039]
然后对训练数据集中的图像使用检测网络detectionnet进行目标检测,并对所有类别框只保留人体类的边界框,进行裁剪操作,生成对应大小为384*288的人体图像,然后使用数据集中的人体姿态关键点标注信息json文件,并调用coco api作为对应人体的标注
信息,以加快i/o的读取速度。
[0040]
其中,目标检测网络采用检测网络detectionnet并并且目标检测网络训练运用到了coco数据集的所有80个类别,最后选取了人体类别进行输出(输出图像形式为图像中将人体用边界框进行标记)。具体结构为图2,其中detectionnet具体设计以及图中模块解释如下:
[0041]
采用resnet50为骨干网络进行特征提取,使用标准高斯分布随机初始化resnet50网络;
[0042]
根据resnet50提取的特征,保留stage 1~4,4个尺度的特征图,并且命名为p2,p3,p4,p5,,并且通过连接卷积核大小为1*1的卷积核,增加stage5,特征图为p6的特征图;
[0043]
并且在stage4以后我们保持特征图的空间分辨率不变,也就是并且在stage4以后我们保持特征图的空间分辨率不变,也就是转换通过步长为2的3*3卷积或池化层完成,其中s
px
代表空间分辨率,i为原始图尺寸,其中原始图片尺寸为224*224,x∈[i,2,3,4,5,6],在p4,p5,p6,之间通过连接卷积核大小为1*1的卷积核,以保持通道数一致(通道数=256)。
[0044]
p4,p5,p6,之间的转换如图5,通过ab两种类型的bottleneck实现转化,ab两种类型的bottleneck的设计如图4,ab两种类型的bottleneck分别由1*1的卷积,3*3的空洞系数是2的空洞卷积,还有relu层得到。
[0045]
最后将stage4~6的特征图按照金字塔架构进行加和,其中侧向连接加和方式如图8,形成fpn特征金字塔,并且采用fast rcnn的方法进行目标检测,并通过回归损失和分类损失进行约束。多损失融合(分类损失和回归损失融合)即图3中的prediction操作,分类损失采用log loss(即对真实分类的概率取负log,分类输出k+1维),回归的loss和r

cnn一样(smooth l1 loss)。总的损失函数:
[0046][0047]
在检测网络最后的全连接层,接入了两个分支,一个是softmax用于对每个roi区域做分类,假如有k类待分(加上背景总共k+1类),输出结果为p=(p0………
p
k
),另外一个是bounding box,用于更精确的roi的区域,输出为代表k类的bounding box坐标,(x,y)为bounding box左上角坐标,(x+w,y+h)为bounding box右下角坐标。u为每个poi区域的ground truth,v为bounding box的ground truth的回归目标。其中λ为超参数,控制两个任务损失之间的平衡,这里λ=1。[u≥1]为1当u≥1。
[0048]
分类损失具体为:为一个log形式的损失函数。
[0049]
回归损失具体为:
[0050][0051]
其中v=v
x
,v
y
,v
w
,v
h
是类别为u的真实框的位置,而为类为u的预测框位置。并且
[0052]
另外,裁剪操作是指,对含有人体边界框的图像中的边界框区域,将框进行扩展到固定宽高比,然后进行裁剪,随后进行数据增强等操作,如随机翻转、随机旋转、随机尺度等操作。
[0053]
进一步的说,所有训练步骤中,数据集采用mscoco训练数据集(包括57k张图像和150k张含有人体实例图像),在步骤s1中,通过检测器网络(fpn+roialign)检测后,对于所有检测的边界框,只采用人体边界框(即在所有实验中仅使用所有类的前100个框中的人类类别的边界框),并对人体边界框扩展到固定宽高比hight:weight=384:288,对应的将裁剪图像的大小调整为默认高度384像素和宽度288像素,其后对应的数据增强策略,对于裁剪过后的图像采用随机旋转(角度为

45
°
~+45
°
)以及随机尺度(0.7~1.35),并将对应图片的标注信息(json文件包含人体边界框和关键点位置)作为groundtruth。
[0054]
其中整体detectionnet流程框图为图3。
[0055]
步骤s2,利用所述训练输入数据,训练融合空洞卷积(dilated conv)的神经网络的人体图像关键点姿态估计模型,以用来完成人体图像的关键点姿态估计任务。
[0056]
本步骤s2中,主要是利用步骤s1中的裁剪好的含有人体的图像和对应人体骨架关键点的标注信息为网络的输入,含有标注的人体固骨架关键点(形式为json文件,17个关键点分别用xy轴坐标形式标出)作为groundtruth,训练深度模型中的人体关键点估计网络,完成从人体输入图像到输出人体固件关键点图像的任务。具体地,将检测网络检测到的人体图像裁剪完成后,通过resnet101作为骨干网提取特征图,并且我们分别将不同conv特征的最后一个残差块表示为c2c3c4c5,再采用u形结构将每一层特征图进行自底向上加和,并对每次加和后生成的不同尺度特征图生成热力图采用l2损失函数计算,得到人体关键点。
[0057]
其中,在全局网络中利用卷积神经网络结构resnet101先进行特征提取,并且采用u

shape结构对特征图进行上采样和加和sum的操作再进行操作来保持生成特征图的大小和上一层残差层形成的特征图尺度一样。
[0058]
在这一实例中,全局网络中包含4个残差块。残差块具体结构为卷积神经网络,包括归一化层,激活层,卷积层;其中卷积层滤波器大小,步长,填充分别为3*3,1,1。残差层输入与输出之间有前传连接。卷积层的层数和每层卷积层中滤波器的个数及大小可根据实际情况进行选择设置,并且使用卷积层滤波器大小,步长,填充分别为3*3,1,1去从特征图生成对应的热力图。
[0059]
同理,残差块的个数也可以根据实际情况进行选择设置。在全局网络中,输入为真实人体图像x和groundtruth真实人体骨架姿态关键点图像y,y网络结构为在imagenet数据集上预训练过的resnet

101,
[0060]
该步骤中,利用裁剪过后的人体图像(384*288)作为模型输入,输入到resnet101的骨干网中,在通过7*7通道数=64,padding=3,stride=2的卷积核,输出为192*144*64的特征图,后进行max pooling,其中池化核大小为3*3padding=0,stride=2,输出为96*72*64的特征图。
[0061]
将生成的96*72*64特征图依次通过4个残差快c2c3c4c5,每个残差块对应输出为96*72*256,48*36*512,24*18*1024,12*9*2014。如图5所示。
[0062]
下一层残差块做进行1*1卷积操作后上采样后与上一层进行加和操作后,进行predict操作,其中用l2损失约束,流程如下:
[0063][0064]
与真实标注的人体骨架姿态关键点图像的热力图进行l2损失的计算。
[0065]
本发明中,所述的predict操作为,每一层叠加之后的特征图进行1*1conv的卷积之后再进行3*3的卷积生成17个feature map(17个关键点的热力图,采用mscoco数据集其中人体关键点数量为17),作为predict参与训练。
[0066]
其中,生成网络的损失函数为:
[0067][0068]
其中,x为输入图像,y为groundtruth对应的热力图,全局网络网络的输出为且其中f
generator
为全局网络每个残差块对应输出的17个feature map(关键点的热力图))。
[0069]
接着将全局网络的输出作为矫正网络的输入,即将全局网络的四个残差快产生的c2c3c4c5对应的4个尺度的特征图96*72*256,48*36*512,24*18*1024,12*9*2014,通过不同数量的bottleneck,bottleneck的结构如图9,操作如下:
[0070]
c5+3*bottleneck+unsample*8
[0071]
c4+2*bottleneck+unsample*4
[0072]
c3+1*bottleneck+unsample*2
[0073]
上述的矫正网络的处理具体的如图10所示,而且将全局网络中的每一层加和后的特征图,通过采用的bottleneck后,通过我们设计的注意力机制模块,如图12,其中设计为:
[0074]
1.将产生的特征图送去全局平均池化,第k个通道的特征图的全局平均池化操作可以表示为:
[0075][0076]
其中f
i
代表特征图,c为通道数,h为特征图的高,w为特征图的宽度,t为输出。
[0077]
2.将于输出的t经过1x1的卷积,使得每个通道的特征图通道数一致。
[0078]
3.接着进行sigmoid操作,然后与原始特征图进行外积操作,具体可表示为:
[0079][0080]
其中为外积,可以用线性代数表示为(uv为两个矩阵):
[0081][0082]
σ为sigmoid函数,可以用函数表达为(z为函数输入):
[0083][0084]
为1x1卷积操作。
[0085]
最后分别进行上采样,然后进行concat操作后通过bottleneck,采用l
2*
损失约束,其中l
2*
为矫正网络的输出的n个关键点损失(每个关键点均由l2计算出此处n=17)中最大的m个(设定m=9),只保留这m个关键点损失计入矫正网络损失函数(l2loss),随后通过3*3conv的卷积进行热力图生成。
[0086]
需要说明的是,本发明中,将步骤s2生成的各个尺度特征图,送入矫正网络中,采用各个尺度特征图图加和的方式,加和完成后的热力图,最后采用l_2损失函数计算,即可得到更为精确的人体关键点。
[0087]
之后,使用训练好的深度神经网络模型,对测试数据集中的含有人体的图像进行人体关键点估计。
[0088]
下面对空洞卷积(dilated conv)说明。参见图11所示,其中左侧的图代表普通3*3conv卷积,中间图代表dilated系数为2的空洞卷积(dilated conv),右侧图代表dilated系数为4的空洞卷积(dilated conv),实际的卷积kernel size还是3x3,但是空洞为1,也就是对于一个7x7的图像patch,只有9个点和3x3的kernel发生卷积操作,其余的点略过。
[0089]
也可以理解为kernel的size为7x7,但是只有图中的9个点的权重不为0,其余都为0。可以看到虽然kernel size只有3x3,但是这个卷积的感受野已经增大到了7x7(如果考虑到这个2

dilated conv的前一层是一个1

dilated conv的话,那么每个点就是1

dilated的卷积输出,所以感受野为3x3,所以1

dilated和2

dilated合起来就能达到7x7的conv),右侧图是4

dilated conv操作,同理跟在两个1

dilated和2

dilated conv的后面,能达到15x15的感受野。对比传统的conv操作,3层3x3的卷积加起来,stride为1的话,只能达到(kernel

1)*layer+1=7的感受野,也就是和层数layer成线性关系,而dilated conv的感受野是指数级的增长。
[0090]
本发明是利用卷积神经网络的高度非线性拟合能力,针对人体图像姿态估计任务,构造以人体图像作为输入的神经网络。特别的,神经网络通过外加的注意力机制模块,选择性关注不同尺度特征图之间的权重分布。这样,利用基于注意力机制模块的校正网络可训练一个具有良好感知效果的图人体骨架关键点姿态估计模型。在测试阶段,使用测试集中的图像作为模型的输入,得到生成的效果图,如图1所示。
[0091]
需要说明的是,本发明中所提出的融合注意力机制的神经网络的人体图像关键点姿态估计模型包含两个子网,分别是全局网络,矫正网络,整个模型的目标函数为l2。在完成人体图像姿态估计时,整个模型的最终目标函数为l2损失函数,能降低至最低且保持稳定。
[0092]
为了详细说明本发明的具体实施方式及验证本发明的有效性,将本发明提出的方法应用于一个公开的数据集中训练。该数据库包含一些自然场景的照片,比如花,树等等。选择该数据集的全部图像作为训练数据集,先对训练数据集中的所有图像使用训练好的特征金字塔网络(fpn)进行目标检测,只输出人体类别边界框,生成对应的裁剪完成的人体图像,并且利用数据集中标注好的人体关键点坐标信息json文件,作为模型的输入,利用梯度反传训练全局网络和矫正网络,直到最后网络收敛,得到人体骨架关键点姿态估计模型。
[0093]
为了测试该模型的有效性,对输入图像进行处理,可视化结果如图1所示。在实验中,通过与groundtruth真实图像进行了对比,实验的结果如图1所示。该实施例有效证明了本发明所提出方法对图像超分辨率的有效性。
[0094]
以上所述仅是本发明的优选实施方式,应当指出的是,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以做出若干改进和润饰,这些改进和润饰也应视为本发明的保护范围。
当前第1页1 2 3 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1