姿势估计方法和装置、计算机系统与流程

文档序号:11865275阅读:226来源:国知局
姿势估计方法和装置、计算机系统与流程

本申请涉及计算机视觉,具体涉及姿势估计方法和装置、计算机系统。



背景技术:

关节型对象的姿势估计是计算机视觉领域中的基本任务之一。其解决了在图像中对象的部位定位问题,并具有如动作识别和人体跟踪等很多重要的应用。该任务所面临的主要挑战在于高度关节化、遮蔽、服装、灯光、杂乱的背景等。近来在人体姿势估计领域已利用深度卷积神经网络(DCNN)实现了最先进的性能。这些方法主要分为两类:利用DCNN对每个身体部位位置的热图(heat map)进行回归;以及学习深度结构化输出以进一步对身体关节之间的关系进行建模。

基于DCNN的热图回归模型已显示出学习更好的特征表达的可能性。但是,如图1(b)和图1(d)所示,这些方法可产生诸多假阳性。例如,在图1(b)中多数假阳性区域为未标注人员的头部,虽然这些假阳性区域是合理的但是将在训练中被当作误报。这些区域上的误差将反向传播以影响与头部检测对应的特征,而这是不适当的。图1(d)中示出了另一示例,其中处于背景(左上角)中的假阳性区域将在训练中被当作难阴性。

近来,深度结构化输出学习吸引了相当大的关注,并且在诸如语义分割、目标检测和深度估计等任务中显示出了可喜的成果。对于人体姿势估计,最近的研究将DCNN与全连接马尔可夫随机场(Markov Random Field)或身体部位位置的弱空间直方图结合,以检测身体关节位置之间的结构性约束。然而,利用卷积核学习空间约束的参数空间太大,使得学习变得非常困难。此外,对于具有各种可能姿势的人,例如,在图像中头部并不总是处于肩膀上方,这些方法效果甚微。



技术实现要素:

本申请实施例提供了一种姿势估计技术方案。

本申请实施例的一方面公开了一种姿势估计方法,该方法包括:提取图像中对象的多个身体部位中每个身体部位对应的特征以生成多个特征图,其中每个所述身体部位对应至少一个部位类型;为每个所述特征图中的每个特征预测部位类型分值,并根据所预测的部位类型分值建立多个部位类型得分图;对于每个所述部位类型得分图中的至少一点,根据与所述点对应的身体部位的相邻身体部位相关的消息,优化所建立的部位类型得分图;以及根据经过优化的部位类型得分图确定每个所述身体部位的估计位置和估计部位类型,以得到所述对象的估计姿势。

根据本申请的实施例,所述消息表示与所述点对应的身体部位的所述相邻身体部位的置信,以及在所述根据与所述点对应的身体部位的相邻身体部位相关的消息,优化所建立的部位类型得分图之前,姿势估计方法还包括:根据与所述点对应的身体部位的相邻身体部位的部位类型得分图确定所述相邻身体部位的置信。

根据本申请的实施例,根据与所述点对应的身体部位的相邻身体部位相关的消息,通过置信传播来优化所建立的部位类型得分图。

根据本申请的实施例,所述消息还表示所述身体部位与所述相邻身体部位之间的空间相容性。

根据本申请的实施例,根据所述身体部位与所述相邻身体部位之间的相对位置信息确定所述身体部位与所述相邻身体部位之间的空间相容性。

根据本申请的实施例,在确定所述空间相容性之前,姿势估计方法还包括:根据第一距离和第二距离确定所述相对位置信息,其中所述第一距离表示在x轴方向上所述身体部位与所述相邻身体部位之间的距离,所述第二距离表示在y轴方向上所述身体部位与所述相邻身体部位之间的距离。

根据本申请的实施例,通过卷积神经网络来提取所述图像中的所述特征。

根据本申请的实施例,通过卷积神经网络来提取所述图像中的所述特征之前,姿势估计方法还包括:根据预设数据集提取的特征图与所述预设数据集的参考部位类型之间的差别,训练所述卷积神经网络。

根据本申请的实施例,通过消息传递单元来传递消息和优化所建立的部位类型得分图,其中所述消息传递单元根据预设数据集预测的部位类型得分图与所述预设数据集的参考部位位置图之间的差别训练而得。

本申请实施例的另一方面公开了一种姿势估计装置,该装置包括:提取模块,提取图像中对象的多个身体部位中每个身体部位对应的特征以生成多个特征图,其中每个所述身体部位对应至少一个部位类型;预测模块,为每个所述特征图中的每个特征预测部位类型分值,并根据所预测的部位类型分值建立多个部位类型得分图;优化模块,对于每个所述部位类型得分图中的至少一点,根据与所述点对应的身体部位的相邻身体部位相关的消息,优化所建立的部位类型得分图;以及确定模块,根据经过优化的部位类型得分图确定每个所述身体部位的估计位置和估计部位类型,以得到所述对象的估计姿势。

根据本申请的实施例,所述消息表示与所述点对应的身体部位的所述相邻身体部位的置信,以及所述优化模块还用于根据与所述点对应的身体部位的相邻身体部位的部位类型得分图确定所述相邻身体部位的置信。

根据本申请的实施例,所述优化模块用于对于每个所述部位类型得分图中的至少一点,根据与所述点对应的身体部位的相邻身体部位相关的消息,通过置信传播来优化所建立的部位类型得分图。

根据本申请的实施例,所述消息还表示所述身体部位与所述相邻身体部位之间的空间相容性。

根据本申请的实施例,所述优化模块还用于根据所述身体部位与所述相邻身体部位之间的相对位置信息确定所述身体部位与所述相邻身体部位之间的空间相容性。

根据本申请的实施例,所述优化模块还用于根据第一距离和第二距离确定所述相对位置信息,其中所述第一距离表示在x轴方向上所述身体部位与所述相邻身体部位之间的距离,所述第二距离表示在y轴方向上所述身体部位与所述相邻身体部位之间的距离。

根据本申请的实施例,所述提取模块用于通过卷积神经网络来提取所述图像中的所述特征。

根据本申请的实施例,姿势估计装置还包括:网络训练模块,用于根据预设数据集提取的特征图与所述预设数据集的参考部位类型之间的差别,训练所述卷积神经网络。

根据本申请的实施例,所述优化模块包括消息传递单元,所述优化模块用于通过所述消息传递单元来传递消息和优化所建立的部位类型得分图;以及姿势估计装置还包括:单元训练模块,用于根据预设数据集预测的部位类型得分图与所述预设数据集的参考部位位置图之间的差别,训练所述消息传递单元。

本申请实施例的另一方面还公开了一种计算机系统,该系统包括:

存储器,存储可执行指令;

一个或多个处理器,与存储器通信以执行可执行指令从而完成以下操作:

提取图像中对象的多个身体部位中每个身体部位对应的特征以生成多个特征图,其中每个所述身体部位对应至少一个部位类型;

为每个所述特征图中的每个特征预测部位类型分值,并根据所预测的部位类型分值建立多个部位类型得分图;

对于每个所述部位类型得分图中的至少一点,根据与所述点对应的身体部位的相邻身体部位相关的消息,优化所建立的部位类型得分图;以及

根据经过优化的部位类型得分图确定每个所述身体部位的估计位置和估计部位类型,以得到所述对象的估计姿势。

本申请实施例的又一方面公开了非暂时性计算机存储介质,该介质存储计算机可读指令,当这些指令被执行时使处理器执行以下操作:提取图像中对象的多个身体部位中每个身体部位对应的特征以生成多个特征图,其中每个所述身体部位对应至少一个部位类型;为每个所述特征图中的每个特征预测部位类型分值,并根据所预测的部位类型分值建立多个部位类型得分图;对于每个所述部位类型得分图中的至少一点,根据与所述点对应的身体部位的相邻身体部位相关的消息,优化所建立的部位类型得分图;以及根据经过优化的部位类型得分图确定每个所述身体部位的估计位置和估计部位类型,以得到所述对象的估计姿势。

附图说明

在下文中,参照附图描述了本申请的示例性且非限制性的实施方式。这些附图仅为说明性的并且通常不代表精确的比例。不同附图中相同或相似的元件以相同的附图标记表示。

图1(a)示出了头部的真实位置;

图1(b)示出了通过传统深度卷积神经网络预测的头部的位置;

图1(c)示出了脚踝的真实位置;

图1(d)示出了通过传统的深度卷积神经网络预测的脚踝的位置;

图2示出了根据本申请的示例性身体部位的示意图;

图3示出了根据本申请的身体部位的组合的示例;

图4示出了根据本申请实施方式的姿势估计方法的流程图;

图5示出了根据本申请实施方式的姿势估计方法的示意图;

图6示出了根据本申请实施方式的训练CNN的流程图;

图7示出了根据本申请实施方式的训练消息传递单元的流程图;

图8示出了根据本申请实施方式的姿势估计装置的示意图;以及

图9示出了适合实施本申请实施方式的计算机系统的结构图。

具体实施方式

在下文中,将参照详细的说明及附图对本申请的实施方式进行详细的说明。

术语“身体部位”旨在描述所选择的身体的部位,优选地描述如头、颈、肩、膝盖、脚踝的部位,如图2所示。但是,本申请并不旨在受限于本文中所公开的实施方式。例如,出于准确性或效率考虑,可包括更多或更少的身体部位、甚至完全不同的身体部位。

术语“部位类型”旨在代表身体部位与相邻身体部位的组合信息,尤其是,身体部位与相邻身体部位之间的空间关系。例如,与处于水平状态的手臂(以下称为水平手臂)连接的手腕归为部位类型为1的手腕,与处于竖直状态的手臂(以下称为竖直手臂)连接的手腕归为部位类型为2的手腕。每个部位类型对应于一组具有相似相对位置的身体部位示例。图3示出了七个示例性身体部位的一些空间关系示例。从相对位置获得的组合信息与身体部位的外观具有极强的相关性。例如,水平手臂对应一种部位类型,竖直手臂对应另一种部位类型,这两种部位类型在姿势构型和外观上相异。身体部位的部位类型数量可以是预定的。不同身体部位的部位类型的数量可以是相同的或不同的。本申请在这方面不进行限制。

术语“特征图(feature map)”旨在代表从图像中提取的特征。特征图中的每个点对应于一个图像块,该图像块的中心为该图像中与特征图中的该点对应的点。

术语“卷积神经网络(Convolutional Neural Network)”及其缩写词“CNN”旨在表示用于机器学习的各种类型的前馈人工神经网络,在该网络中,各神经元可以以响应于覆盖视野的重叠区域的方式进行布置。

术语“最大后验(maximun a posteriori)”旨在描述根据经验数据通过使用扩充的优化目标来获得对难以观测量的点的估计,其中该扩充的优化目标结合了期望估计量的先验概率分布。

术语“反向传播算法”旨在描述一种与最优化方法(如梯度下降法)结合使用的、用来训练人工神经网络的通用方法。该方法用来计算损失函数(loss function)针对网络中所有权重的梯度。该梯度会反馈给最优化方法而使其利用该梯度更新权重以试图使损失函数最小化。

图4示出根据本申请实施方式的姿势估计方法的流程图。

在步骤100中,提取图像中对象的多个身体部位中每个身体部位对应的特征以生成多个特征图,其中每个身体部位对应至少一个部位类型。该图像可以是某一静态图像,也可以是视频的某一帧图像,本申请在这方面不进行限制。具体地,在该步骤中,针对每个身体部位的每个部位类型生成一个特征图。本领域的技术人员应理解,可使用多种方法提取特征图。例如,传统的方法使用手动生成的特征(如HOG和颜色直方图)借助监督分类器(如潜在支持向量机(latent SVM)或提升的随机森林算法)来检测图像中的身体部位。根据本申请的实施方式,可通过例如但并不限于卷积神经网络(CNN)来提取特征图。在本申请中,特征图中的每个点处的数值表示CNN的一个神经元对输入图像的图像块的响应。例如,如果神经元对圆形具有更高的响应,则在特征图中出现圆形处的点可具有更大的数值。

在步骤200中,为每个特征图中的每个特征预测部位类型分值,并根据所预测的部位类型分值建立多个部位类型得分图。在特征图中的每个点处预测的身体部位的部位类型的部位类型得分,组成该身体部位的部位类型的部位类型得分图。某一身体部位的某一部位类型的部位类型得分图中每个点处的数值,表示该点所对应的该图像块对应于该部位类型的该身体部位的可能性。根据本申请的实施方式,部位类型得分可通过例如但不限于Softmax函数单元,然后是对数函数单元来得出,其中通过Softmax函数单元对特征图中的每个点处的数值执行softmax函数功能,然后对数函数单元对经过Softmax函数单元处理的数值执行对数函数(log)功能以得到部位类型得分,但是并不限于此。

在步骤300中,对于每个部位类型得分图中的至少一点,根据与该点对应的身体部位的相邻身体部位相关的消息,优化所建立的部位类型得分图。在本申请实施方式中,上述的至少一点可通过对每个部位类型得分图进行例如但不限于降噪处理、采样处理、滤波处理等而选择得到。

在本申请实施方式中,上述消息可表示与该点对应的身体部位的相邻身体部位的置信。在本申请实施方式中,可根据与上述点对应的身体部位的相邻身体部位的部位类型得分图确定该相邻身体部位的置信。

如图2所示,可将身体部位建模为树状结构。但是,也可将身体部位建模为环状结构。在本文中,本申请使用循环结构作为示例来解释根据本申请的实施方式的消息传递过程,并且对于本领域的技术人员显而易见的是,本申请也适用于树状结构。在本申请实施方式中,根据与所述点对应的身体部位的相邻身体部位相关的消息,通过置信传播来优化所建立的部位类型得分图。然而,本领域技术人员可理解,还可通过其他各种方法来优化所建立的部位类型得分图,例如但不限于方差分析、因子分析、回归分析等。

在本申请中,消息传递过程和所建立的部位类型得分图的优化处理可由消息传递单元执行。具体地,在该步骤中,对于每个部位类型得分图中的每个点,消息传递单元根据与该点对应的身体部位的相邻身体部位相关的消息,来更新该点处的数值,从而优化所建立的部位类型得分图。在本申请实施方式中,该消息还可表示该身体部位与相邻身体部位之间的空间相容性。例如,如图5的左边部分所示,身体部位被建模为环状结构。消息传递如图5的右边部分所示。例如,身体部位颈部的相邻身体部位包括头部、左肩和右肩,因此对于颈部,消息传递单元根据与颈部相关的消息来优化头部、左肩和右肩的部位类型得分图,以及根据与头部、左肩和右肩相关的消息来优化颈部的部位类型得分图。消息传递单元可通过执行最大和置信传播算法(max-sum belief propagation algorithm)进行消息的传递。但是,对于本领域的技术人员显而易见的是,还可采用其他适当的方法。

在本申请的实施方式中,根据身体部位与相邻身体部位之间的相对位置信息确定该身体部位与该相邻身体部位之间的空间相容性。在确定空间相容性之前,根据本申请实施方式的方法还包括根据第一距离和第二距离确定相对位置信息,其中第一距离表示在x轴方向身体部位与相邻身体部位之间的距离,以及第二距离表示在y轴方向身体部位与相邻身体部位之间的距离。在本申请的实施方式中,可根据第一距离、第二距离、第一距离的平方以及第二距离的平方,确定该相对位置信息。具体地,两个相邻的身体部位i和j的空间相容性(spatial compatibility)Ψ可由公式(1)定义:

<mrow> <mi>&psi;</mi> <mrow> <mo>(</mo> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>l</mi> <mi>j</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>j</mi> </msub> <mo>|</mo> <mi>I</mi> <mo>;</mo> <msubsup> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> <mrow> <msub> <mi>t</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>j</mi> </msub> </mrow> </msubsup> <mo>)</mo> </mrow> <mo>=</mo> <mo>&lt;</mo> <msubsup> <mi>w</mi> <mrow> <mi>i</mi> <mo>,</mo> <mi>j</mi> </mrow> <mrow> <msub> <mi>t</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>j</mi> </msub> </mrow> </msubsup> <mo>,</mo> <mi>d</mi> <mrow> <mo>(</mo> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>-</mo> <msub> <mi>l</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>&gt;</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>1</mn> <mo>)</mo> </mrow> </mrow>

其中,li=(xi,yi)表示身体部位的像素位置,t表示身体部位的部位类型,d(li,lj)是由d(li-lj)=[Δx Δx2 Δy Δy2]T定义的形变特征,Δx=xi-xj以及Δy=yi-yj是身体部位i相对于身体部位j的相对位置,并且是四维形变权重。在本申请中,通过公式(1)所示的二次形变约束,可以以正则化方式减小参数空间。然而,本领域技术人员还可理解,可根据第一距离和第二距离,以及第一距离和/或第二距离中至少之一的加权等信息确定身体部位与相邻身体部位之间的空间相容性。

以下将详细描述本申请的消息传递过程。对于身体部位j,消息传递单元从相邻身体部位i获取的消息定义为mij(lj;tj),身体部位i的置信(belief)定义为ui(li;ti)。身体部位i的置信ui(li;ti)可根据以下来确定:部位类型为ti的身体部位i的部位类型得分图中对应于像素位置为l处的值;以及该身体部位i的相邻身体部位相关的消息。对于身体部位j,从其相邻身体部位i获取的消息mij(lj;tj)可根据以下方式来确定:各身体部位i和该身体部位j之间的空间相容性与身体部位i的置信的和的最大值。在本申请实施方式中,消息传递单元例如可根据规则(2)和(3)更新消息和置信:

<mrow> <msub> <mi>m</mi> <mrow> <mi>i</mi> <mi>j</mi> </mrow> </msub> <mrow> <mo>(</mo> <msub> <mi>l</mi> <mi>j</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>j</mi> </msub> <mo>)</mo> </mrow> <mo>&LeftArrow;</mo> <msub> <mi>&alpha;</mi> <mi>m</mi> </msub> <munder> <mi>max</mi> <mrow> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>i</mi> </msub> </mrow> </munder> <mrow> <mo>(</mo> <msub> <mi>u</mi> <mi>i</mi> </msub> <mo>(</mo> <mrow> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>i</mi> </msub> </mrow> <mo>)</mo> <mo>+</mo> <mi>&psi;</mi> <mo>(</mo> <mrow> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>l</mi> <mi>j</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>j</mi> </msub> </mrow> <mo>)</mo> <mo>)</mo> </mrow> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>2</mn> <mo>)</mo> </mrow> </mrow>

其中,αm和αu为归一化项,并且N(i)表示身体部位i的相邻身体部位的集合,φ(li,ti)是由对数函数单元所输出的对数概率。为简化标记,在此省略了模型参数。在本文中,使用泛洪机制(flooding schedule)进行消息传递过程。根据泛洪机制,在每个时间步上,在每个连接的两个方向同时传递消息。

如图5的右边部分所示,通过利用泛洪机制,根据公式(2)和(3),每个消息传递单元执行一次置信传播迭代。消息传递单元使每个身体部位向其每个相邻身体部位同时发送消息(表示为实线连接),并且在每个节点处通过将其一元势能与所有发来的消息进行求和而更新每个节点的置信(表示为虚线连接)。在本申请实施方式中,所有的消息在置信传播迭代开始时均初始化为常数函数。

虽然置信传播可能需要多次迭代而收敛,但是观察到三个消息传递单元的串联可足以产生令人满意的结果。然而,对于本领域技术人员显而易见的是,可使用更多或更少的消息传递单元,本发明对此没有限制。

在步骤400中,根据经过优化的部位类型得分图确定每个身体部位的估计位置和估计部位类型,以得到所述对象的估计姿势。在本申请实施方式中,对于每个身体部位,可在经过优化的部位类型得分图中选择具有最高得分的位置作为该身体部位的位置,并且选择与该身体部位的位置对应的部位类型作为该身体部位的部位类型。然而,本领域技术人员可理解,还可通过其他方式确定出每个身体部位的估计位置和估计部位类型,例如但不限于在经过优化的部位类型得分图中选择得分超过预设阈值的位置作为该身体部位的位置,或对经过优化的部位类型得分图再进行加权处理后选择数值最大的位置作为该身体部位的位置,或在经过优化的部位类型得分图中选择具有得分极大值的位置作为该身体部位的位置等。

例如,在本申请实施方式,在置信传播收敛之后,通过为每个身体部位选择具有最大置信的位置和类型而获得最优姿势估计。例如可通过公式(4)得出身体部位的估计位置和估计部位类型:

<mrow> <mo>(</mo> <msubsup> <mi>l</mi> <mi>i</mi> <mo>*</mo> </msubsup> <mo>,</mo> <msubsup> <mi>t</mi> <mi>i</mi> <mo>*</mo> </msubsup> <mo>)</mo> <mo>=</mo> <mi>arg</mi> <munder> <mi>max</mi> <mrow> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>i</mi> </msub> </mrow> </munder> <msubsup> <mi>u</mi> <mi>i</mi> <mo>*</mo> </msubsup> <mo>(</mo> <msub> <mi>l</mi> <mi>i</mi> </msub> <mo>,</mo> <msub> <mi>t</mi> <mi>i</mi> </msub> <mo>)</mo> <mo>,</mo> <mo>&ForAll;</mo> <mi>i</mi> <mo>&Element;</mo> <mo>{</mo> <mn>1</mn> <mo>,</mo> <mn>...</mn> <mo>,</mo> <mi>K</mi> <mo>}</mo> <mo>-</mo> <mo>-</mo> <mo>-</mo> <mrow> <mo>(</mo> <mn>4</mn> <mo>)</mo> </mrow> </mrow>

其中,是在最后一次迭代中所计算出的置信,该置信为具体位置和具体部位类型的最大后验,是最大后验分配,并且K表示身体部位的数量。

在本申请中,通过使用身体部位类型和二次形变约束,可排除假阳性区域,并减小参数空间的大小,从而更加有效且更加准确地估计对象姿势。

为了能够考虑身体部位的组合,可通过具有利用部位类型的局部图像块对CNN进行预训练。现有的人体姿势数据集使用身体部位位置l来标注,但是没有部位类型t。假设rij表示从身体部位i至其相邻身体部位j的相对位置,则相对位置rij在训练集上被聚类为Ti个集群。如图2所示,通过边连接的两个身体部位为相邻身体部位。每个集群对应于一个具有相似的相对位置的部位示例的集合,并且每个身体部位的部位类型可由集群成员导出。然后,为数据集获得真实的部位类型。在本申请中,集群可通过k均值聚类法(K-means clustering)获得。但是,本申请在这方面不进行限制。

在本申请实施方式中,可根据卷积神经网络从预设数据集提取的特征图与该预设数据集的参考部位类型之间的差别来训练该卷积神经网络。

图6示出根据本申请实施方式的训练CNN的流程图。如图6所示,CNN可通过以下步骤进行训练:

1)从预定的训练集获得图像块及相应的真实部位类型;

2)利用CNN提取特征并预测部位类型;

3)计算预测的部位类型与真实部位类型之间的差别;以及

4)利用该差别调整CNN的参数。

重复1)至4)直到预测的部位类型收敛为真实部位类型。步骤4)例如可利用反向传播算法执行,但是并不限于此。

在本申请实施方式中,可根据从预设数据集预测的部位类型得分图与该预设数据集的参考部位位置图之间的差别来训练消息传递单元

图7示出根据本申请实施方式的训练消息传递单元的流程图。如图7所示,消息传递单元可通过以下步骤进行训练:

1)从预定的训练集获得图像和相应的真实部位位置得分图;

2)利用CNN提取特征并预测部位类型,以建立部位类型得分图;

3)利用消息传递单元优化部位类型得分图,并根据经过优化的部位类型得分图确定出部位位置得分图;

4)计算所确定的部位位置得分图与真实部位位置得分图之间的差别;以及

5)利用该差别调整消息传递单元的参数。

重复1)至5)直到预测的部位类型得分图收敛为真实部位位置得分图。步骤5)例如可利用反向传播算法执行,但是并不限于此。步骤5)中被调整的参数包括例如但不限于上述的规则(2)和(3)中的归一化项αm和αu等。在本申请中,现有的人体姿势数据集使用身体部位位置(即,真实的位置)来标注,但没有部位类型。真实部位位置得分图是二值化图,并且通过将相对于真实位置的距离l小于或等于阈值的点处的数值设为1、以及将相对于真实位置的距离l大于阈值的点处的数值设为-1而生成。

根据本申请实施方式,在上述的步骤5)中,CNN和消息传递单元的参数可通过所确定的部位位置得分图与真实部位位置得分图之间的差别来联合地调整。通过联合训练CNN和消息传递单元,从而能够在通过结合全局姿势一致性进行训练时有效地减少模糊性和挖掘难阴性。通过二次形变约束,可以以正则化方式减小参数空间。

本领域技术人员可理解,虽然结合在图像中估计人体姿势的示例描述了本申请,但根据本申请实施方式的姿势估计方法也可用于其他对象(如动物,玩具等)的姿势的估计,本申请对此没有限制。

现参照图8,其示出了根据本申请实施方式的姿势估计装置的示意图。

如图8所示,姿势估计装置800可包括:提取模块810、预测模块820、优化模块830、确定模块840、网络训练模块850以及单元训练模块860。

提取模块810提取图像中对象的多个身体部位中每个身体部位对应的特征以生成多个特征图,其中每个身体部位对应至少一个部位类型。

预测模块820为每个所述特征图中的每个特征预测部位类型分值,并根据所预测的部位类型分值建立多个部位类型得分图。

优化模块830对于每个所述部位类型得分图中的至少一点,根据与所述点对应的身体部位的相邻身体部位相关的消息,优化所建立的部位类型得分图。

确定模块840根据经过优化的部位类型得分图确定每个所述身体部位的估计位置和估计部位类型,以得到所述对象的估计姿势。

本领域的技术人员应理解,提取模块810可通过实施多种方法提取特征。例如,提取模块810可通过使用手动生成的特征(如HOG和颜色直方图)借助监督分类器(如潜在支持向量机(latent SVM)或提升的随机森林算法)来检测图像中的身体部位。根据本申请的实施方式,提取模块810可包括例如但并不限于卷积神经网络(CNN),提取模块810通过卷积神经网络来提取特征。在本申请的实施方式中,姿势估计装置800还可包括网络训练模块850,其用于根据预设数据集提取的特征图与预设数据集的参考部位类型之间的差别,训练卷积神经网络。然而,本领域技术人员可理解,在通过其他单元或模块提取特征时,姿势估计装置800可包括用于训练该单元或模块的训练模块。可替代性地,根据本申请实施方式,姿势估计装置800可不包括网络训练模块850,本申请对此没有限制。

根据本申请的实施方式,预测模块820可包括Softmax函数单元和对数函数单元。Softmax函数单元用于执行softmax函数,以及对数函数单元用于执行对数函数。Softmax函数单元对通过提取模块810得到的特征图应用softmax函数,然后对数函数单元再对其执行对数函数功能,以得到部位类型得分。

根据本申请的实施方式,优化模块830可用于建模为树状结构或环状机构的身体部位,本发明对此并不限制。此外,优化模块830包括至少一个消息传递单元,优化模块830通过消息传递单元来传递消息和优化所建立的部位类型得分图。对于每个部位类型得分图中的至少一个点,消息传递单元根据与该点对应的身体部位的相邻身体部位相关的消息,来更新该点处的数值,从而优化所建立的部位类型得分图。在本申请实施方式中,优化模块830根据与部位类型得分图中的每个点对应的身体部位的相邻身体部位的部位类型得分图获取消息。在本申请实施方式中,上述消息可表示与部位类型得分图中的点对应的身体部位的所述相邻身体部位的置信,并且优化模块830可根据与部位类型得分图中的点对应的身体部位的相邻身体部位的部位类型得分图确定所述相邻身体部位的置信。此外,上述消息还可表示所述相邻身体部位的置信和所述身体部位与所述相邻身体部位之间的空间相容性,并且优化模块830还可根据身体部位与相邻身体部位之间的相对位置信息确定该身体部位与相邻身体部位之间的空间相容性。优化模块830根据第一距离和第二距离确定相对位置信息,其中第一距离表示在x轴方向上该身体部位与相邻身体部位之间的距离,以及第二距离表示在y轴方向上该身体部位与相邻身体部位之间的距离。在本申请的实施方式中,优化模块830可根据第一距离、第二距离、第一距离的平方以及第二距离的平方,确定该相对位置信息。对于每个部位类型得分图中的至少一点,优化模块830可根据与该点对应的身体部位的相邻身体部位相关的消息,通过置信传播来优化所建立的部位类型得分图。在本申请实施方式中,消息传递单元可执行最大和置信传播算法(max-sum belief propagation algorithm)来传递消息并优化部位类型得分图。但是,对于本领域的技术人员显而易见的是,消息传递单元还可采用其他适当的方法。每个消息传递单元根据泛洪机制,在部位类型得分图中,在相邻的身体部位所对应的点之间进行消息传递,并且每个消息传递单元执行一次置信传播迭代。在部位类型得分图中,与身体部位对应的点向每个相邻身体部位所对应的点同时发送消息(如图5的右边部分中示出的实线连接),并且每个点的置信通过将其一元势能与所有发来的消息进行求和而更新(如图5的右边部分中示出的虚线连接)。优选地,优化模块830中包括3个消息传递单元,然而本发明并不限于此。在本申请实施方式中,姿势估计装置800还可包括单元训练模块860,用于根据预设数据集预测的部位类型得分图与预设数据集的参考部位位置图之间的差别,训练消息传递单元。然而,本领域技术人员可理解,在通过其他单元或模块优化部位类型得分图时,姿势估计装置800可包括用于训练该单元或模块的训练模块。可替代性地,根据本申请实施方式,姿势估计装置800可不包括单元训练模块860,本申请对此没有限制。

在本申请的实施方式中,对于每个身体部位,确定模块840可在经过优化的部位类型得分图中选择具有最高得分的位置作为该身体部位的位置,并且选择与该身体部位的位置对应的部位类型作为该身体部位的部位类型。具体地,在置信传播收敛之后,确定模块840根据公式(4)并通过为每个身体部位选择具有最大置信的位置和类型而获得最优姿势估计。

此外,根据本申请实施方式,姿势估计装置800还可用于执行图6所示的训练CNN的方法,以及可执行图7所示的训练消息传递单元的方法。具体地,姿势估计装置800可通过根据通过所述卷积神经网络从预设数据集提取的特征图与该预设数据集的参考部位类型之间的差别来训练卷积神经网络,以及根据从预设数据集预测的部位类型得分图与该预设数据集的参考部位位置图之间的差别来训练消息传递单元。此外,姿势估计装置800还可通过预测的部位位置得分图与真实部位位置得分图之间的差别来联合地调整CNN和消息传递单元的参数。通过联合地训练CNN和消息传递单元,从而能够在通过结合全局姿势一致性进行训练时有效地减少模糊性和挖掘难阴性。通过二次形变约束,可以以正则化方式减小参数空间

应当理解,装置800中记载的诸模块或单元与参考图4至图7描述的方法中的各个步骤相对应。上文针对文件识别方法描述的操作和特征同样适用于装置800及其中包含的模块,在此不再赘述。装置800中的相应模块或可以与终端设备和/或服务器中的模块或单元相互配合以实现本申请实施方式的方案。

现参照图9,该图示出了适合实施本申请实施方式的计算机系统900的结构示意图。

如图9所示,计算机系统900包括中央处理单元(CPU)901,其可根据存储在只读存储器(ROM)902中的程序或从存储部分908加载至随机存取存储器(RAM)903中的程序而执行各种适当的动作和过程。在RAM 903中,还存储有系统900操作所需要的各种程序和数据。CPU 901、ROM 902和RAM 903通过总线904彼此连接。输入/输出I/O接口905也与总线904连接。

以下为与I/O接口905连接的部件:包括键盘、鼠标等的输入部分906;包括阴极射线管CRT、液晶显示设备LCD和扬声器等的输出部分907;包括硬盘等的存储部分908;以及包括网络接口卡(如LAN卡和调制解调器等)的通信部分909。通信部分909通过诸如因特网等网络执行通信处理。根据需要,驱动器910也与I/O接口905连接。如磁盘、光盘、磁光盘、半导体存储器等的可拆卸介质911可安装在驱动器910上,以便于从其上读出的计算机程序根据需要被安装入存储部分908。

具体地,根据本公开的实施方式,以上参照图4、图6和图7描述的过程可实施为计算机软件程序。例如,本公开的实施方式包括计算机程序产品,该产品包括有形地体现在机器可读介质中的计算机程序。该计算机程序包括用于执行图4、图6和图7中的方法的程序代码。在这种实施方式中,计算机程序可通过通信部分909从网络上下载并进行安装,和/或可从可拆卸介质911安装。

附图中的流程图和框图,图示了按照本发明各种实施例的系统、方法和计算机程序产品的可能实现的体系架构、功能和操作。在这点上,流程图或框图中的每个方框可以代表一个模块、程序段、或代码的一部分,所述模块、程序段、或代码的一部分包含一个或多个用于实现规定的逻辑功能的可执行指令。也应当注意,在有些作为替换的实现中,方框中所标注的功能也可以以不同于附图中所标注的顺序发生。例如,两个接连地表示的方框实际上可以基本并行地执行,它们有时也可以按相反的顺序执行,这依所涉及的功能而定。也要注意的是,框图和/或流程图中的每个方框、以及框图和/或流程图中的方框的组合,可以用执行规定的功能或操作的专用的基于硬件的系统来实现,或者可以用专用硬件与计算机指令的组合来实现。

本申请的实施方式所涉及的单元或模块可通过软件或硬件实施。所描述的单元或模块也可设置在处理器中。这些单元或模块的名称不应被视为限制这些单元或模块。

在另一方面,本申请还提供计算机可读存储介质。计算机可读存储介质可以是包括在上述实施方式的装置中的计算机可读存储介质,其也可以是未装配在上述装置中的计算机可读存储介质。计算机可读存储介质存储一个或多个程序,一个或多个处理器使用上述程序来执行本申请中所描述的估计方法。

上文仅仅是对本申请的优选实施方式以及所应用的技术原理的描述。本领域的技术人员应理解,本申请的发明范围并不限于由上述技术特征的特定组合构成的技术方案。在不脱离本发明的构思的情况下,本发明的范围还应覆盖由上述技术特征及其等同特征的任意组合构成的其他技术方案。例如,通过将以上公开的特征替换为具有相似功能的技术特征而构成的技术方案也落入本发明的范围内。

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