基于热力图和偏移向量的姿态识别方法、系统及存储介质与流程

文档序号:20841632发布日期:2020-05-22 17:34阅读:565来源:国知局
基于热力图和偏移向量的姿态识别方法、系统及存储介质与流程

本发明涉及深度学习技术领域,尤其是基于热力图和偏移向量的姿态识别方法、系统及存储介质。



背景技术:

热力图:是一种概率图,距离中心点位置越近的像素点的概率越接近1,距离中心点越远的像素点的概率越接近0,具体可以通过相应函数进行模拟,如gaussian等。

偏移向量:由点与参考点之间的距离推断出点与点之间的位移。

姿态估计:确定物体在图像(或立体图像、图像序列)中的姿态,重建人的关节和肢体的具体任务。

日常生活中人们通常使用拍摄照片的方式来记录生活,为了能更好地理解图片中人物信息,我们想要定位人们的位置,了解人们所进行的活动,如何实现这些目标是人体姿态估计的主要问题。姿态估计又称为人体关键点检测,主要识别人体关键部位的位置,比如鼻子、左眼、右眼、左耳、右耳、左肩、右肩、左手肘、右手肘、左手腕、右手腕、左臀、右臀、左膝、右膝、左脚踝和右脚踝等等。尽管进行了多年的研究,但至今仍是是计算机视觉中一个极具挑战性的问题,其难点主要来自于自然场景下的复杂背景,模糊,遮挡,光照的明暗,衣物的颜色。不仅如此,人与人之间的肢体交互也会造成强烈的干扰,例如肢体的重叠,肢体间的遮挡。

由于实际应用场景中的人物往往不止一个,目前的姿态估计算法主要为多人姿态算法。多人姿态估计算法主要有两种趋势,一种是自顶而下(top-down)的方法,另一种则是自底向上(bottom-up)的方法。自顶向下就是先利用目标检测(objectdetection)的方法,例如faster-rcnn(fasterregion-basedconvolutionalneuralnetworks)或ssd(singleshotmultiboxdetector)等得到图像中多个人物的检测框,然后把它们从原图中剪切下来分别传递给后面的姿态估计网络,该网络则针对剪切后的图像单独预测人体关键点。自顶向下的方法将多人姿态估计的问题转化为单人姿态估计。自底向上的多人姿态估计方法则是先检测所有人身上的关键点,然后对这些关键点进行聚类处理,将不同人的不同关键点连接在一块,从而聚类产生不同的个体。自底向上的多人姿态估计方法侧重于对关键点聚类方法的探索,即如何去构建不同关键点之间的关系。

随着深度学习技术在计算机视觉领域的迅猛发展,最近几年涌现出了大批采用深度学习解决人体关键点检测的研究工作。然而,大多数现有的工作都聚焦于如何设计数据在网络中的传递路径,以获取图片中丰富的空间信息和细节信息。例如,特征金字塔网络(featurepyramidnetworksforobjectdetection),级联的卷积神经网络(cascadedpyramidnetworkformulti-personposeestimation)和堆叠的沙漏网络(stackedhourglassnetworksforhumanposeestimation)等等。这些方法固然能提升人体关键点检测的准确性,但是它们忽略了预测点从低分辨率到高分辨率映射过程中,会发生微小的偏移,这造成了一定程度的精度损失。



技术实现要素:

有鉴于此,本发明实施例提供基于一种精度高的热力图和偏移向量的姿态识别方法、系统及存储介质。

本发明的第一方面提供了一种基于热力图和偏移向量的姿态识别方法,包括:

获取待识别目标图像;

对所述待识别目标图像进行特征提取;

根据提取的特征,预测关键点位置;

对预测得到的关键点进行修正,确定关键点的最终位置;以及

根据所述关键点,确定待识别目标的姿态信息。

进一步,所述对所述待识别目标图像进行特征提取这一步骤,包括:

对获取的待识别目标图像进行裁剪;

将裁剪得到的各个图像输入残差网络;以及

通过所述残差网络进行编码处理,得到第一特征图。

进一步,所述残差网络包括五组卷积层;

另外,所述通过所述残差网络进行编码处理,得到特征图这一步骤,包括以下步骤:

通过卷积核对特征图的各个通道进行变维处理,所述变维处理包括升维和降维;

对所述每个通道进行归一化处理;以及

对归一化处理后的结果进行非线性激活处理。

进一步,所述对所述待识别目标图像进行特征提取这一步骤,还包括解码步骤,所述解码步骤包括:

将获得的第一特征图输入反卷积结构;

通过反卷积结构对第一特征图进行解码;以及

获取各个通道的特征响应图。

进一步,所述根据提取的特征,预测关键点位置,包括:

从所述各个通道的输出结果中获取热力图;

计算每张热力图的最大值,得到每个关键点在热力图上的位置信息;以及

根据所述待识别目标图像与所述热力图之间的尺寸关系,将关键点的位置信息映射到所述待识别目标图像上。

进一步,所述对预测得到的关键点进行修正,确定关键点的最终位置这一步骤,包括以下步骤:

根据所述各个通道的输出结果确定关键点的偏移向量;以及

根据所述偏移向量,在所述热力图的最大值上加上所述偏移向量,确定关键点的最终位置。

进一步,还包括以下步骤:

采用均方误差损失函数来训练热力图;以及

在训练偏移向量时,采用了平滑的损失函数来处理真实的偏移和预测的偏移之间的差距。

本发明第二方面提供了基于热力图和偏移向量的姿态识别系统,包括:

获取模块,用于获取待识别目标图像;

特征提取模块,用于对所述待识别目标图像进行特征提取;

关键点预测模块,用于根据提取的特征,预测关键点位置;

关键点修正模块,用于对预测得到的关键点进行修正,确定关键点的最终位置;以及

姿态确定模块,用于根据所述关键点,确定待识别目标的姿态信息。

本发明第三方面提供了基于热力图和偏移向量的姿态识别系统,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的方法。

本发明第四方面提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的方法。

上述本发明实施例中的一个或多个技术方案具有如下优点:本发明的实施例通过提取图像的特征,接着预测关键点位置,还能对预测结果进行修正,最后识别得到姿态信息,本发明能够获得更加精确的姿态信息。

附图说明

为了更清楚地说明本申请实施例中的技术方案,下面将对实施例描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。

图1为本发明实施例的整体步骤流程图;

图2为本发明实施例的第一示例流程图;

图3为本发明实施例的第二示例流程图;

图4为本发明实施例的坐标偏移修正热力图预测坐标位置示意图;

图5为本发明实施例的各种算法在mscoco数据集上的对比结果;

图6为本发明实施例的各种算法在mpii数据集上的对比结果;

图7为本发明实施例的各种算法在crowpose数据集上的对比结果;

图8为本发明实施例的hope在mscoco数据集上的检测结果;

图9为本发明实施例的hope在mpii数据集上的检测结果;

图10为本发明实施例的hope在crowdpose数据集上的检测结果。

具体实施方式

下面结合说明书附图和具体实施例对本发明作进一步解释和说明。对于本发明实施例中的步骤编号,其仅为了便于阐述说明而设置,对步骤之间的顺序不做任何限定,实施例中的各步骤的执行顺序均可根据本领域技术人员的理解来进行适应性调整。

由于现有技术大部分只是针对网络结构进行创新的热力图方法,并且主要关注损失函数。但是基于热力图的方法有一个坐标映射的过程,它们忽略了预测点从低分辨率的热力图得到的坐标映射回原图损失中造成的损失,这限制了精确度的提升。

于是,本申请提供了一种基于热力图和坐标偏移的人体姿态估计方法,通过强鲁棒性的卷积神经网络提取特征来预测关键点的热力图和偏移向量,使用热力图预测关键点坐标,使用偏移向量来修正关键点的坐标,以获得更精确的位置信息。

参照图1,本申请实施例的具体实施步骤包括:

s1:获取待识别目标图像;

s2:对所述待识别目标图像进行特征提取;

如图2和图3所示,本申请实施例的特征提取是将图片转换为特征,模型的网络结构主要分两个部分,一个是编码模块,一个是解码模块。本申请的编码模块采用的是50层的残差网络,并删除了最后1x1的卷积层,该模块以全卷积的方式来提取输入图像的特征,特别是残差的设计使得它在许多计算机视觉的任务中都表现得十分优秀,具有很强的特征表达能力。

本实施例的残差网络由c1,c2,c3,c4,c5,5组卷积层组成,每层包含有n个残差模块。残差模块由交替的卷积层、bn层以及relu构成,1x1的卷积核主要用来对特征图的通道进行降维或者升维,在输入3x3的卷积核之前先经过一个1x1降维还能有效地减少下一个卷积核的计算量。而bn层则是批量归一化层,每个通道都有对应的四个参数,分别是均值、方差、伸缩变换的系数和偏置,用来对输入到该层的特征做归一化,防止在模型训练的过程中,中间层的数据分布发生改变,从而导致梯度消失或梯度爆炸的问题。relu作为一种非线性的激活函数,一方提高了网络的非线性表达能力,另一方面不会出现sigmoid函数在饱和区参数更新缓慢的问题。如图2所示,本申请实施例的编码步骤的具体实施步骤为:第一步,将获取到的图像进行裁剪;第二步,将图像输入到残差网络中;第三步,从残差网络中获取经过编码的特征图。

另外,本申请实施例还包括解码步骤,如图2所示,所述解码步骤包括:第一步,将获取到的特征图输入到反卷积结构中;第二步,反卷积结构对特征图进行编码;第三步,从一个1x1卷积将得到3*n个通道的特征响应图。如图3所示,网络分别输出了热力图和偏移向量,其中热力图对应了n个通道,分别用来预测n个关键点的位置,偏移向量对应了2*n个通道,分别用来预测每个位置上的关键点在x和y方向上的偏移量,最终网络末端特征图的尺寸是64*48,这在宽度和高度上都是输入图像的四分之一。

s3:根据提取的特征,预测关键点位置;

具体的,本申请实施例假设第k个关键点的位置是lk如果热力图上的位置xi和关键点lk的距离不超过半径r,则让圆内每个位置为真实关键点的概率服从一个高斯分布,这样更有利于网络的学习,即hk(xi)=g(xi-lk)if||xi-lk||≤r,否则hk(xi)=0,其中g表示高斯函数。很显然,距离关键点lk越近,则热力图上该位置是关键点的概率就越大。具体的,所述预测关键点的实施步骤包括:第一步,网络的输出通道中获得热力图;第二步,对于每一个关键点lk,都对应着一个热力图hk,求每张热力图上的最大值,得到每个关键点在热力图上的位置;第三步,根据输入图像尺寸和热力图寸的倍数关系,将坐标从热力图映射到输入的图像上。

s4:对预测得到的关键点进行修正,确定关键点的最终位置;

具体的,本申请实施例关键点在从低分辨率的图像映射到高分辨率的图像时会有精度的损失,如图4(b)所示,每个网格都表示一个像素的位置,图4(a)中矩形框框住的区域是热力图预测左手腕的位置,但是当其预测的坐标映射到输入图像的分辨率时,出现了较大的精度损失。从图4(b)中可以看出,热力图中的一个像素其实代表了原图16个像素的位置,因为宽和高都是原图的四分之一,并且每次热力图上的坐标乘4都只能映射到输入图像对应区域的第一个像素,也就是图4(b)中16宫格的左上角所在的位置,这是坐标映射过程中精度损失的根源所在。许多工作为了减少坐标映射的精度损失,在此阶段将热力图预测的关键点位置手动地偏移四分之一个像素,也就是在原始输入图像上偏移1个像素的距离,这样的操作确实能够减小映射后的关键点与真实关键点之间的期望误差,从而带来轻微的精度提升,但是并不能从根源上解决精度损失的问题。

基于这样的现状,本申请的网络除了输出热力图之外,还预测了每个位置xi相对输入图像的二维偏移向量ok(xi),让神经网络主动去学习映射后的关键点与真实关键点之间的偏移,ok(xi)表示第k张热力图上的某个位置xi经过映射之后,相对于输入图像上第k个关键点的偏移,目的在于纠正关键点的预测位置。因为有k个关键点,所以本申请的网络生成了k个这样的偏移字段,分别对每个关键点和他附近的位置求解了一个二维的回归问题。

参照图2,所述修正步骤的具体实施步骤包括:第一步,在网络生成了热力图和偏移向量之后,取热力图最大值所在的位置,第二步,热力图最大位置加上偏移向量得到就是最终映射到输入图像的关键点位置,即keypointpositions=heatmappositions*outputstride+offsetvectors。

s5:根据所述关键点,确定待识别目标的姿态信息。

另外,本申请实施例还提供了模型训练与测试的步骤,具体的:

本申请采用经典的均方误差损失函数来训练热力图,值得注意的是仅仅在关键点附近距离为r以内区域的概率值才会被计算损失,也就是说只训练关键点附近的那些点,这样做有利于网络的收敛,损失函数如所示。

关于训练偏移向量,受目标检测领域回归检测框坐标的启发,本申请采用了平滑的损失函数来惩罚真实的偏移和预测的偏移之间的差距,如所示。

这种损失函数可以让损失对一些异常的离群点更加鲁棒,从而控制梯度在网络中更好的反向传播。同样地,本申请也仅仅只是计算了距离关键点不超过r的那些位置上的损失。融合这两个损失之后,最终的损失函数如公式所示,其中λh和λo分别表示两个损失的权重,比例是4:1,训练模型使用的优化器是adam。

l(θ)=λhlh(θ)+λolo(θ)(3)

另外,本申请选择了三个来姿态估计领域中公开的测试数据集来进行实验测量,来进一步说明本申请相较于现有技术的优点:

本申请实施例的运行环境:6核,intelxeone5-2620处理器,64gb内存,titanx显卡,ubuntu16.04操作系统。

三个数据集分别是:(1)mscoco:mscoco数据集能应用在目标检测,语义分割,关键点检测等任务上。本专利主要使用了2017年的coco数据集,其中训练集包含了118287张图片,测试集包含了5000张图片,没张图片又有多个人物的标注。

(2)mpii:mpii人体姿态数据集是用于评估关节式人体姿态估计的最先进基准。数据集包括大约25k张图像,其中包含超过40k个带有注释的人体关节的人。这些图像是根据人类日常活动的分类系统收集的。整个数据集涵盖410项人类活动,每张图像都有活动标签。每个图像都是从youtube视频中提取出来的。数据中大约有25000张图片,包含了超过4万个未被标注的人体关键点实例,其中28000个实例是被用于网络的训练,剩下12000个样本被用来测试。

(3)crowdpose:我们还评估了我们的方法在crowdpose数据集,其中包含2万张图片和8万张人类实例。人群姿态数据集的设计是为了提高拥挤情况下的性能,使模型适用于不同的场景。

为了评价算法的有效性,本实施例的实验中采用了ap、pck性能评价指标,其中ap在coco和crowpose数据集中被作为评价指标,而pck在mpii数据集中被作为评价的指标。对象关键点相似度oks(objectkeypointsimilarity),它被用来计算预测的关键点和标注的关键点之间的相似度,其公式如下:

其中di表示预测的关键点和标注的关键点之间的欧式距离,s为对象的尺度,ki是一个控制衰减的按键控制常数,vi表示关键点是否可见。在给定oks的阈值s之后,测试集上的平均精度则可以由下面的公式计算得到:

关键点另一个重要的评价标准就是pck,该指标表示所有预测的关键点落入到对应标注的关键点周围一定标准化距离的比例。这个标准化距离往往与图片中人体躯干的最长距离有关。通常记为pck@σ,其中σ是区间[0,1]之间的一个小数,用σ乘以躯干最长距离则可得到评价指标中的标准化距离,具体计算方法如下:

其中n表示样本总数,k代表第k个人体关键点,所以整体的pck为:

而对于mpii数据集上使用的评价指标则是pckh,和pck不同的是,它将标准化距离时用到的躯干最长距离替换为头部最长距离。

本申请实施例分别在mscoco,mpii,crowpose三个数据集上与其他算法的ap、pck值作对比。这些方法包括简单的人体姿态估计和跟踪基线(simplebaselinesforhumanposeestimationandtracking,简称sb),在自然环境下进行准确的多人姿态估计(towardsaccuratemulti-personposeestimationinthewild,简称g-rmi),用于多人姿态估计的级联金字塔网络(cascadedpyramidnetworkformulti-personposeestimation,简称cpn),用于人体姿态估计的堆叠沙漏网络(stackedhourglassnetworksforhumanposeestimation,简称hourglass),用于人体姿态估计的学习特征金字塔(learningfeaturepyramidsforhumanposeestimation,简称fpn),量化紧密连接的u型网络(quantizeddenselyconnectedu-netsforefficientlandmarklocalization,简称denseu-net),通过卷积部分热图回归进行人体姿态估计(humanposeestimationviaconvolutionalpartheatmapregression,简称vcph)。本申请的算法简称为hope。

图5为本申请与其他算法在mscoco数据集上的结果;图6为本申请与其他算法在mpii数据集上的结果;图7为本申请与其他算法在corwdpose数据集上的结果。

从图5、6和7中可以看出,本申请无论是稀疏场景还是拥挤场景,其ap、pck值都优于其他算法。另外,图8展示了hope在mscooco数据集上的检测结果,图9展示了hope在mpii数据集上的检测结果,图10展示了hope在crowpose数据集上的检测结果。从图8-图10可以看出,本申请在关键点检测中返回的结果相关性比较高,进一步说明本专利在关键点检测中有较好的效果。

本发明实施例还提供了基于热力图和偏移向量的姿态识别系统,包括:

获取模块,用于获取待识别目标图像;

特征提取模块,用于对所述待识别目标图像进行特征提取;

关键点预测模块,用于根据提取的特征,预测关键点位置;

关键点修正模块,用于对预测得到的关键点进行修正,确定关键点的最终位置;以及

姿态确定模块,用于根据所述关键点,确定待识别目标的姿态信息。

本发明实施例还提供了基于热力图和偏移向量的姿态识别系统,包括:

至少一个处理器;

至少一个存储器,用于存储至少一个程序;

当所述至少一个程序被所述至少一个处理器执行,使得所述至少一个处理器实现所述的方法。

本发明实施例还提供了一种存储介质,其中存储有处理器可执行的指令,所述处理器可执行的指令在由处理器执行时用于执行所述的方法。

在一些可选择的实施例中,在方框图中提到的功能/操作可以不按照操作示图提到的顺序发生。例如,取决于所涉及的功能/操作,连续示出的两个方框实际上可以被大体上同时地执行或所述方框有时能以相反顺序被执行。此外,在本发明的流程图中所呈现和描述的实施例以示例的方式被提供,目的在于提供对技术更全面的理解。所公开的方法不限于本文所呈现的操作和逻辑流程。可选择的实施例是可预期的,其中各种操作的顺序被改变以及其中被描述为较大操作的一部分的子操作被独立地执行。

此外,虽然在功能性模块的背景下描述了本发明,但应当理解的是,除非另有相反说明,所述的功能和/或特征中的一个或多个可以被集成在单个物理装置和/或软件模块中,或者一个或多个功能和/或特征可以在单独的物理装置或软件模块中被实现。还可以理解的是,有关每个模块的实际实现的详细讨论对于理解本发明是不必要的。更确切地说,考虑到在本文中公开的装置中各种功能模块的属性、功能和内部关系的情况下,在工程师的常规技术内将会了解该模块的实际实现。因此,本领域技术人员运用普通技术就能够在无需过度试验的情况下实现在权利要求书中所阐明的本发明。还可以理解的是,所公开的特定概念仅仅是说明性的,并不意在限制本发明的范围,本发明的范围由所附权利要求书及其等同方案的全部范围来决定。

在本说明书的描述中,参考术语“一个实施例”、“一些实施例”、“示例”、“具体示例”、或“一些示例”等的描述意指结合该实施例或示例描述的具体特征、结构、材料或者特点包含于本发明的至少一个实施例或示例中。在本说明书中,对上述术语的示意性表述不一定指的是相同的实施例或示例。而且,描述的具体特征、结构、材料或者特点可以在任何的一个或多个实施例或示例中以合适的方式结合。

尽管已经示出和描述了本发明的实施例,本领域的普通技术人员可以理解:在不脱离本发明的原理和宗旨的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由权利要求及其等同物限定。

以上是对本发明的较佳实施进行了具体说明,但本发明并不限于所述实施例,熟悉本领域的技术人员在不违背本发明精神的前提下还可做作出种种的等同变形或替换,这些等同的变形或替换均包含在本申请权利要求所限定的范围内。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1