一种人体姿态检测方法及装置
技术领域
本发明涉及智能安防监控的技术领域,特别涉及一种人体姿态检测方法及装置。
背景技术
人的姿态检测和跟踪的目的在于,通过对输入的图像进行处理后,得到图像中人体的姿态。所谓姿态,即为人体的骨架。骨架模型可以作为一种高度抽象的人体姿态表达,是因为骨架与穿着、长相、性别等无关,只与人的姿态有关。基于骨架模型的这种高度抽象的特性,检测并跟踪人的姿态,对于分析人的动作和行为具有重要的意义。
目前,人体姿态检测的方案是基于图像识别与分类实现的,即:对一幅图像里的每一个像素进行识别与分类,以分析得出人体的不同部位,最终得到人体的骨架/姿态。
现有技术的不足在于:现有基于图像识别与分类的人体姿态检测解决方案需要大量的计算和数据处理才能实现,计算资源耗费过大。
发明内容
本发明实施例提出了一种人体姿态检测方法及装置,用以解决现有的人体姿态检测解决方案中存在的计算资源耗费过大的问题。
本发明实施例提供了一种人体姿态检测方法,包括如下步骤:
接收含有人体的第一深度图像;
将所述第一深度图像转化为三维云模型;
根据预先得到的人体姿态气泡模型和所述三维云模型进行优化拟合;其中,所述预先得到的人体姿态气泡模型是根据预先检测到的人体骨架关节点得到的;
根据所述优化拟合结果得到所述第一深度图像中人体骨架关节点坐标值;
根据所述第一深度图像中人体骨架关节点坐标值得到所述人体的姿态。
本发明实施例提供了一种人体姿态检测装置,包括:
接收单元,用于接收含有人体的第一深度图像;
转换单元,用于将所述第一深度图像转化为三维云模型;
优化单元,用于根据预先得到的人体姿态气泡模型和所述三维云模型进行优化拟合;其中,所述预先得到的人体姿态气泡模型是根据预先检测到的人体骨架关节点得到的;
关节点坐标获取单元,用于根据所述优化拟合结果得到所述第一深度图像中人体骨架关节点坐标值;
姿态确定单元,用于根据所述第一深度图像中人体骨架关节点坐标值得到所述人体的姿态。
本发明有益效果如下:
本发明实施例提供的人体姿态检测方法及装置,通过接收含有人体的深度图像,将其转化为三维点云模型,将其与预先得到的气泡模型进行优化拟合,以得到该含有人体的深度图像中的人体骨架关节点坐标值,从而确定人体的姿态。由于本发明实施例中提供的人体姿态检测方案,基于之前得到的气泡模型和需要检测的深度图像转化后的三维点云模型进行优化拟合就可以得到人体姿态,不需要对每张深度图像都进行图像识别与分类的处理计算,提高了人体姿态处理效率,大大节约了计算资源。
附图说明
下面将参照附图描述本发明的具体实施例,
图1为本发明实施例中提供的人体姿态检测方法流程示意图;
图2为本发明实施例中的人体姿态气泡模型示意图;
图3为本发明实施例中的人体骨架示意图;
图4为本发明实施例中的深度图像经过卷积神经网络处理的流程示意图;
图5为本发明实施例中的卷积神经网络训练示意图;
图6为本发明实施例中的人体姿态检测实现流程示意图;
图7为本发明实施例中提供的人体姿态检测装置结构示意图。
具体实施方式
为了使本发明的技术方案及优点更加清楚明白,以下结合附图对本发明的示例性实施例进行进一步详细的说明,显然,所描述的实施例仅是本发明的一部分实施例,而不是所有实施例的穷举。并且在不冲突的情况下,本说明书中的实施例及实施例中的特征可以互相结合。
图1为本发明实施例中提供的人体姿态检测方法流程示意图,如图1所示,人体姿态检测方法,可以包括如下步骤:
步骤101:接收含有人体的第一深度图像;
步骤102:将第一深度图像转化为三维云模型;
步骤103:根据预先得到的人体姿态气泡模型和三维云模型进行优化拟合;其中,预先得到的人体姿态气泡模型是根据预先检测到的人体骨架关节点得到的;
步骤104:根据优化拟合结果得到第一深度图像中人体骨架关节点坐标值;
步骤105:根据第一深度图像中人体骨架关节点坐标值得到人体的姿态。
具体实施中,接收含有人体的第一深度图像可以采用如下方式:例如,在需要检测人体姿态的场景中布置深度摄像机,通过深度摄像机定期或不定期地获取含有人体的深度图像;或者,深度摄像机将深度图像通过有线或无线传输至后台服务器,通过有线或无线传输从后台服务器获取含有人体的第一深度图像。其中,第一深度图像为需要进行人体姿态检测处理的深度图像,即,当前需要进行人体姿态检测处理的深度图像。
深度图像中每一个像素代表的是该像素对应的人或物与深度摄像机之间的物理距离。
具体实施中,将第一深度图像转化为三维点云模型可以通过三维激光扫描仪扫描、三维坐标测量机扫描或其他方式实现。点云是在逆向工程中通过测量仪器得到的产品外观表面的点数据集合,通常使用三维坐标测量机所得到的点数量比较少点与点的间距也比较大,叫稀疏点云;而使用三维激光扫描仪或照相式扫描仪得到的点云点数量比较大并且比较密集,叫密集点云。
本发明实施例具体实施中,可以根据具体的处理需要选择第一深度图像转化后的三维点云的疏密程度。
图2为本发明实施例中的人体姿态气泡模型示意图,如图2所述,人体姿态气泡模型在确定人体骨架关节点坐标值的基础上,可以用虚线代表人体的骨架,用圆球代表人体骨架的关节点和末端点。为模拟人体,在骨架上附着固定数量和大小的圆球(即气泡),圆球的大小和数量可以根据对于人体的先验信息来确定。
根据预先得到的人体姿态气泡模型和转化得到的三维点云模型进行优化拟合,得到第一深度图像中的人体骨架关节点坐标值。在第一深度图像中人体骨架关节点坐标值已确定的基础上,对应就可以得到人体的姿态。
具体实施中,图3为本发明实施例中的人体骨架示意图,如图3所示,人体骨架可以包括13个关节点,即:头、左肩、左肘、左手、右肩、右肘、右手、左跨、左膝、左脚、右跨、右膝、右脚。选择这13个关节点,基本可以满足人体姿态检测的需要。根据图3中这13个关节点的位置,可以确定图3中的人体姿态为站立,左手扶腰,右手向左上方指,双腿保持一定距离站立。
本发明实施例提供的人体姿态检测方法,基于之前得到的气泡模型和需要检测的深度图像转化后的三维点云模型进行优化拟合就可以得到人体姿态,不需要对每张深度图像都进行图像识别与分类的处理计算,提高了人体姿态处理效率,大大节约了计算资源。
实施中,在接收含有人体的第一深度图像之前,还可以包括:得到人体姿态气泡模型。
具体实施中,可以在接收含有人体的第一深度图像的同时,或者,在接收含有人体的第一深度图像之后,得到人体姿态气泡模型,也可以对含有人体的第一深度图像进行人体姿态检测。只是,需要在得到该人体姿态气泡模型后,再启动第一深度图像中的人体姿态检测,处理效率可能受影响,
具体实施中,也可以在接收含有人体的第一深度图像之前得到人体姿态气泡模型,这样,在第一深度图像处理时,就可以直接应用该人体姿态气泡模型,不必花费时间等待人体姿态气泡模型的获取,使得人体姿态处理效率较高。
技术人员可以根据实际需要确定得到人体姿态气泡模型与接收含有人体的第一深度图像之间的时间先后关系。
实施中,得到人体姿态气泡模型,可以具体包括:
接收含有人体的第二深度图像;
根据第二深度图像确定人体骨架关节点坐标估计值;
将人体骨架关节点坐标估计值填充成气泡模型。
具体实施中,为了得到人体姿态气泡模型,需要接收含有人体的第二深度图像,第二深度图像是对第一深度图像中的人体姿态检测的参考深度图像。例如,若需要对人体姿态进行实时检测,则第二深度图像可以是第一深度图像之前时刻的深度图像;若需要在已知某一时刻的人体姿态,需要对该某一时刻之前的人体姿态进行检测或推定时,第二深度图像也可以是第一深度图像之后时刻的深度图像。
具体气泡模型的填充方法,请参考上述关于附图2的说明,这里不再赘述。
相关的人体姿态检测方法中,有的是基于模型匹配实现的。这类方法需要收集大量的人的骨架/姿势数据(模型)并存储于数据库中,进行人体姿态检测时,将观测到的数据与存储在数据库中的模型进行匹配,从而得到人体姿态。由于相关的人体姿态检测方法中对于姿势的初始化使用非参数化的模型,需要事先收集大量人体姿态模型数据,模型数据库随着姿态模型数量的增加,检索时间和存储空间都将线性增长。且由于非参数化模型基于模版匹配,对于数据库中不存在的如遮挡情况下的人体姿态检测,存在适应性差的不足。
针对相关人体姿态检测方法中存在的需要大量采样模型数据和检测适应性差的问题,本发明实施例中的人体姿态检测方法采用了参数化模型-卷积神经网络。
实施中,根据第二深度图像确定人体骨架关节点坐标估计值,可以具体包括:
将第二深度图像输入至预先建立的卷积神经网络;
通过CNN(ConvolutionalNeuralNetworks,卷积神经网络简称)对第二深度图像进行处理;
根据卷积神经网络的处理结果确定人体骨架关节点坐标估计值。
具体实施中,本发明实施例中的第二深度图像确定人体骨架关节点坐标估计值是将含有人体的第二深度图像输入至卷积神经网络处理后得到的。
卷积神经网络是一种高效识别方法。20世纪60年代,Hubel和Wiesel在研究猫脑皮层中用于局部敏感和方向选择的神经元时发现其独特的网络结构可以有效地降低反馈神经网络的复杂性,继而提出了卷积神经网络。在模式分类领域中,由于CNN可以避免对图像的复杂前期预处理,可以直接输入原始图像,因而得到了更为广泛的应用。CNN主要用来识别位移、缩放及其他形式扭曲不变性的二维图形。由于CNN的特征检测层通过训练数据进行学习,所以在使用CNN时,避免了显式的特征抽取,而隐式地从训练数据中进行学习;再者,由于同一特征映射面上的神经元权值相同,所以网络可以并行学习,这也是卷积网络相对于神经元彼此相连网络的一大优势。卷积神经网络以其局部权值共享的特殊结构在语音识别和图像处理方面有着独特的优越性,其布局更接近于实际的生物神经网络,权值共享降低了网络的复杂性,特别是多维输入向量的图像可以直接输入网络这一特点避免了特征提取和分类过程中数据重建的复杂度。
卷积神经网络的每一层都可以理解为对该层的输入进行一定的非线性操作,即为一个从输入x到输出y的一个函数y=f(x;θ),其中θ是非线性操作的待定参数,如卷积操作的卷积核、全连接层的链接权重等。卷积神经网络将各个层连接在一起后,整体上也可以看作是从输入深度图x到输出关节坐标y的一个函数y=F(x;Θ),其中Θ由各层的所有参数组成。
具体实施中,若如图1所示的人体姿态检测方法根据预先得到的人体姿态气泡模型和三维云模型进行优化拟合运行失败或无法优化拟合得到相应的人体姿态时,也可以将含有人体的第一深度图像输入至本发明实施例预先建立的卷积神经网络,通过卷积神经网络对第一深度图像进行处理以得到第一深度图像中的人体骨架关节点估计值,根据第一深度图像中的人体骨架关节点估计值就可以确定出第一深度图像中的人体的姿态。虽然,将含有人体的第一深度输入至卷积神经网络进行处理以得到人体姿态的过程中,数据计算处理量较大,但是,可以在图1中所示的人体检测方法出现故障时,进行人体姿态的检测。
由于本发明实施例中采用了参数化的卷积神经网络,通过简单改变模型中的参数值,就可以检测人体姿态,而无需针对每种人体姿态采样建模,同时避免了模型匹配方案中存在的适应性较差的问题,且处理起来简单高效。
实施中,卷积神经网络可以包括多个依次连接的卷积层和多个依次连接的全连接层,卷积层对第二深度图像进行卷积、非线性、局部归一化及池化操作后,输入至全连接层。
由于现有的卷积神经网络如AlexNet、VGGnet、GooLeNet等通常规模很大,在普通计算机或移动计算设备上无法使用这些卷积神经网络进行实时地预测,且这些卷积神经网络通常用来处理正常的RGB三通道图片的分类问题。对于人体深度图像的处理,不是很适用,处理效果不理想。因此,本发明实施例中,设计了一个精简的卷积神经网络。
图4为本发明实施例中的深度图像经过卷积神经网络处理的流程示意图,如图4所示,具体实施中,本发明实施例中设计的卷积神经网络由多个卷积层和多个全连接层组成,其中,多个卷积层间依次连接,多个全连接层之间也依次连接。多个卷积层依次对输入的第二深度图像进行卷积、非线性、局部归一化和池化四种标准操作后,并将操作后得到的结果输入至标准的全连接层。
本发明实施例中设计的卷积神经网络的可以快速有效的对深度图像进行处理。该卷积神经网络用于确定深度图像中的人体骨架关节点的位置,输出分别对应人体骨架中13个关节点的坐标值。
实施中,卷积神经网络可以包括:三个卷积层和两个全连接层。
具体实施中,如图4所示,本发明实施例中设计的卷积神经网络可以包括三个卷积层和两个全连接层。技术人员也可以根据实际的数据处理要求选择卷积层和全连接层的数量。
实施中,卷积层的参数和全连接层的参数的确定方式可以如下:
获取第三深度图像中的人体骨架关节点坐标值;
将第三深度图像输入参考卷积神经网络,以获取第三深度图像中的参考人体骨架关节点坐标值,参考卷积神经网络为训练中的卷积神经网络;
将第三深度图像中的人体骨架关节点坐标值和参考人体骨架关节点坐标值作为后向传播算法的输入值,得到卷积层的参数和全连接层的参数。
具体实施中,参考卷积神经网络即为训练中的卷积神经网络,其处理精准性不高。通过第三深度图像训练,确定参考卷积神经网络中每一层的待定参数的过程称为训练过程。
图5为本发明实施例中的卷积神经网络训练示意图,如图5所示,在参考卷积神经网络训练过程中,需要收集训练数据(即,含有人体的第三深度图像),第三深度图像即为卷积神经网络训练过程中收集的含有人体的深度图像,第三深度图像收集的数量与卷积神经网络的准确度有关。通常,收集的第三深度图像越多,训练得到的卷积神经网络准确度越高,本领域技术人员可以根据实际的人体姿态检测需要来确定收集的第三深度图像的数量。
第三深度图像的收集可以直接通过深度摄像机获得,也可以是通过其他图像共享等方式获得。
由于第三深度图是训练数据,第三深度图像中人体骨架关节点坐标值是可以通过对第三深度图像中的人体进行物理测量方式得到的,具体采用什么方式进行物理测量,对本方案的实现影响不大,这里不做具体限定。
将含有人体的第三深度图像输入至参考卷积神经网络,经过参考卷积神经网络对第三深度图像进行处理,输出第三深度图像中的参考人体骨架关节点坐标值。
将第三深度图像中标定好的人体骨架关节点坐标值和经过参考卷积神经网络处理得到的第三深度图像中的参考人体骨架关节点坐标值作为后向传播算法的输入,通过后向传播算法处理,可以得到或优化出较为合理的卷积层参数和全连接层参数。即,由于参考卷积神经网络的精准性和训练后得到的卷积神经网络相比较低,经过参考卷积神经网络处理得到的第三深度图像中的参考人体骨架关节点坐标值和第三深度图像中标定好的人体骨架关节点坐标值存在一定的误差值,通过后向传播算法,调整参考卷积神经网络中的卷积层参数和全连接层参数,可以使其优化,缩小误差。
经过大量的第三深度图像的训练,对参考卷积神经网络中的卷积层参数和全连接层参数不断的调整,使误差稳定维持在一定的数值范围内(例如,当误差稳定维持在0.1%以内,或其他数值范围内,具体的数值范围,本领域技术人员可以根据实际情况来确定,这里不做具体限定),则该参考卷积神经网络训练完成,其卷积层参数和全连接层参数得以确定。训练完成的卷积神经网络即为人体姿态识别模型,可以用来确定深度图像中人体骨架关节点坐标值。
举例说明,具体实施中,训练集中的每张深度图均有人工标定好的骨架关节点坐标。给定参数Θ,参考卷积神经网络的对于训练深度图像样本xi的骨架预测为而人工标定的骨架关节点坐标为yi,因此是卷积神经网络处理训练深度图像样本xi的误差。我们使用来衡量卷积神经网络处理人体骨架关节点坐标的误差大小。卷积神经网络的训练过程即寻找参数Θ使得预测误差E(Θ)尽可能的小的过程。本发明实施中使用标准的后向传播算法进行训练,参数Θ的迭代更新公式为:Θt+1=Θt+Δt+1,
其中Δt+1可以如下确定:其中,表示E(Θ)在Θt处的随机梯度,αt是随t增大而逐渐减小的正数。经过大量的迭代更新,完成参考卷积神经网络的训练。
实施中,人体姿态气泡模型可以为A={Si|i=1...M},M为气泡个数,Si={Ci,ri},其中Ci为气泡i的球心位置,ri为气泡i的半径。
具体实施中,人体姿态气泡模型可以是根据确定的人体骨架关节点坐标值填充的,人体姿态气泡模型可以包含M个气泡。人体姿态气泡模型就是这M个气泡的集合。
因为气泡为球体,而球体有两个关键参数:球心位置和半径大小,因此,每个气泡可以表示为Si={Ci,ri},其中,Ci为气泡的球心位置,ri为气泡的半径,人体姿态气泡模型即可以表示为A={Si|i=1...M}。
实施中,根据预先得到的人体姿态气泡模型和三维云模型进行优化拟合,可以具体包括:
根据预先得到的人体姿态气泡模型和三维云模型采用代价函数进行优化拟合,代价函数为:
其中,x(*)为最邻近算子,Cx(p)为距离三维点云模型中p点最近的气泡的球心;F为三维点云模型,F={pi|i=1,2...P},|P|为三维点云模型中点的个数,|M|为人体姿态气泡模型中气泡的个数;
D(p,Cx(p))=abs(||p-Cx(p)||2-r)为三维点云模型到人体姿态气泡模型距离代价项,使人体姿态气泡模型贴近三维点云模型的算子;
Bb(Ci,d)为人体姿态气泡模型到三维点云模型距离代价项,使人体姿态气泡模型在三维点云模型所在平面之后;
为人体姿态气泡模型中气泡碰撞惩罚参数,
Cl(Ci,Cj)=max(λc*(ri+rj)-||Ci-Cj||2,0),,λc为碰撞容忍度,ri为气泡i的半径,rj为气泡j的半径,||Ci-Cj||2为气泡i球心Ci与气泡j球心Cj之间的距离;
为人体姿态气泡模型中气泡拉伸惩罚参数,El(Ci,Cj)=max(||Ci-Cj||2-λe*(ri+rj),0),λe为拉伸容忍度。
具体实施中,代价函数又称性能指标、费用函数或目标函数,是对过程或设备事先规定的最优化准则,也就是过程最优化要达到的目标的数学表达式。一般是状态变量,控制变量,操作变量的纯量函数或泛函。本发明实施例中,利用上面所述的代价函数公式根据预先得到的人体姿态气泡模型向三维云模型拟合优化,以得到第一深度图像中的人体姿态。
该代价函数中包括四项,第一项用于使人体姿态气泡模型贴近三维点云模型,其中D(p,Cx(p))=abs(||p-Cx(p)||2-r)。
第二项用于使人体姿态气泡模型在三维点云模型所在平面之后,由于三维点云是根据深度摄像机拍摄的第一深度图像中的人体表面转化得到的,而人体姿态气泡模型是根据检测的人体骨架关节点建立的,因为人体的骨架必然在人体表面的内部,即,人体姿态气泡模型必然在深度摄像机拍摄的第一深度图像中的人体三维点云模型的后面;
第三项是用于在确定人体姿态气泡模型中任意两个气泡球心之间的距离(即,气泡i球心Ci与气泡j球心Cj之间的距离)过近时进行惩罚修正。当出现气泡i球心Ci与气泡j球心Cj之间的距离超过λc*(ri+rj)时,则认为气泡i与气泡j有发生碰撞的可能,对代价函数进行惩罚修正。λc为碰撞容忍度,具体实施中可以取值0.8,本领域技术人员也可以根据实际情况,选择碰撞容忍度λc的数值,这里不做具体限定。
第四项是用于在确定人体姿态气泡模型中任意两个气泡球心距离(即,气泡i球心Ci与气泡j球心Cj之间的距离)过远时进行惩罚修正。当出现气泡i球心Ci与气泡j球心Cj之间的距离超过λe*(ri+rj)时,则认为气泡i与气泡j之间有发生拉伸的可能,对代价函数进行惩罚修正。λe为拉伸容忍度,具体实施中可以取值1.2,本领域技术人员也可以根据实际情况,选择碰撞容忍度λe的数值,这里不做具体限定。
实施中,当气泡的球心Ci的投影在第一深度图像中人体的区域内时,Bb(Ci,d)=max(0,d-Ci z),d为气泡的球心Ci投影的深度值,Ci z为气泡的球心Ci在深度z方向上的投影分量。
具体实施中,气泡球心Ci的投影是通过摄像机成像原理得到的气泡球心Ci在深度摄像机成像平面上的投影。气泡的球心Ci的投影与第一深度图像中人体的区域存在两种空间关系。即:(1)气泡的球心Ci的投影在第一深度图像中人体的区域内;(2)气泡的球心Ci的投影在第一深度图像中人体的区域之外。本发明实施例中的代价函数针对气泡的球心Ci的投影与第一深度图像中人体的区域空间关系的不同,采用的具体优化拟合算法有所区别。即,气泡的球心Ci的投影在第一深度图像中人体的区域内,则,说明人体姿态气泡模型中的气泡与第一深度图像中人体的关系较为合理,则人体姿态气泡模型到三维点云模型距离代价项Bb(Ci,d)惩罚应该不会很大,这里我们确定当气泡的球心Ci的投影在第一深度图像中人体的区域内时,Bb(Ci,d)=max(0,d-Ci z),d为气泡的球心Ci投影的深度值,Ci z为气泡的球心Ci在深度z方向上的投影分量。
实施中,当气泡的球心Ci的投影在第一深度图像中人体的区域之外时, 为距离气泡的球心Ci最近的三维点云p。
具体实施中,泡的球心Ci的投影在第一深度图像中人体的区域之外时,说明人体骨架位于人体表面之外了,即,人体姿态气泡模型中的气泡与第一深度图像中人体的位置关系异常。这种情况下,需要通过人体姿态气泡模型到三维点云模型距离代价项Bb(Ci,d)对代价函数进行调整,以使对这种异常情况进行修正,这里我们确定当气泡的球心Ci的投影在第一深度图像中人体的区域外时, 为距离气泡的球心Ci最近的三维点云p。人体姿态气泡模型中的气泡与第一深度图像中人体的位置关系异常程度越大,则需要人体姿态气泡模型到三维点云模型距离代价项Bb(Ci,d)调整的幅度一般也越大,具体的调整幅度以实际情况确定。
上面是对人体姿态检测方法的说明,下面进行举例说明。图6为本发明实施例中的人体姿态检测实现流程示意图,如图6所示,人体姿态检测流程可以如下实施:
接收深度摄像机拍摄的含有人体的深度图像;
对深度图像中的人体区域进行提取,以方便后续人体姿态检测。
判断是否已初始化,初始化的含义为是否已预先得到的人体姿态气泡模型,人体姿态气泡模型的含义及获取请参考上面说明,这里不再赘述。
若没有预先得到的人体姿态气泡模型,则将提取人体区域后的深度图像输入至人体姿态识别模型-卷积神经网络,经过卷积神经网络处理得到深度图像中的人体骨架关节点坐标,根据得到的深度图像中的人体骨架关节点坐标确定深度图像中的人体姿态。
若已经预先得到的人体姿态气泡模型,将提取的人体区域转化为三维点云模型,采用上述的代价函数根据预先得到的人体姿态气泡模型和三维云模型进行优化拟合得到深度图像中的人体姿态。
根据确定的深度图像中的人体骨架关节点坐标填充成人体姿态气泡模型为以后的人体姿态检测提供优化拟合基础,进行人体姿态检测的更新。
上面是对人体姿态检测方法的说明,基于同一发明构思,本发明实施例中还提供了一种人体姿态检测装置,由于该装置解决问题的原理与一种人体姿态检测方法相似,因此该装置的实施可以参见方法的实施,重复之处不再赘述。
图7为本发明实施例中提供的人体姿态检测装置结构示意图,如图7所示,人体姿态检测装置,可以包括:
接收单元701,用于接收含有人体的第一深度图像;
转换单元702,用于将第一深度图像转化为三维云模型;
优化单元703,用于根据预先得到的人体姿态气泡模型和三维云模型进行优化拟合;其中,预先得到的人体姿态气泡模型是根据预先检测到的人体骨架关节点得到的;
关节点坐标获取单元704,用于根据优化拟合结果得到第一深度图像中人体骨架关节点坐标值;
姿态确定单元705,用于根据第一深度图像中人体骨架关节点坐标值得到人体的姿态。
实施中,该人体姿态检测装置还可以包括:
气泡模型获取单元,用于在接收含有人体的第一深度图像之前,得到人体姿态气泡模型。
实施中,气泡模型获取单元可以进一步包括:
接收子单元,用于接收含有人体的第二深度图像;
关节点坐标子单元,用于根据第二深度图像确定人体骨架关节点坐标估计值;
填充子单元,用于将人体骨架关节点坐标估计值填充成气泡模型。
实施中,关节点坐标子单元具体可以包括:
输入孙单元,用于将第二深度图像输入至预先建立的卷积神经网络;
处理孙单元,用于通过卷积神经网络对第二深度图像进行处理;
人体骨架关节点坐标孙单元,用于根据卷积神经网络的处理结果确定人体骨架关节点坐标估计值。
实施中,处理孙单元具体可以用于通过包括多个依次连接的卷积层和多个依次连接的全连接层的卷积神经网络对第二深度图像进行处理,其中,卷积层,用于对第二深度图像进行卷积、非线性、局部归一化及池化操作后,输入至全连接层。
实施中,卷积神经网络可以包括:三个卷积层和两个全连接层。
实施中,该人体姿态检测装置还可以包括:确定卷积层参数和全连接层参数的参数单元,参数单元具体可以包括:
获取子单元,用于获取第三深度图像中的人体骨架关节点坐标值;
参考人体骨架关节点子单元,用于将第三深度图像输入参考卷积神经网络,以获取第三深度图像中的参考人体骨架关节点坐标值,参考卷积神经网络为训练中的卷积神经网络;
参数确定子单元,用于将第三深度图像中的人体骨架关节点坐标值和参考人体骨架关节点坐标值作为后向传播算法的输入值,得到卷积层的参数和全连接层的参数。
实施中,人体姿态气泡模型可以为A={Si|i=1...M},M为气泡个数,Si={Ci,ri},其中Ci为气泡i的球心位置,ri为气泡i的半径。
实施中,优化单元具体可以用于根据预先得到的人体姿态气泡模型和所述三维云模型采用代价函数进行优化拟合,所述代价函数为:
其中,x(*)为最邻近算子,Cx(p)为距离所述三维点云模型中|p|点最近的气泡的球心;F为三维点云模型,F={pi|i=1,2...P},|P|为三维点云模型中点云的个数,|M|为人体姿态气泡模型中气泡的个数;
D(p,Cx(p))=abs(||p-Cx(p)||2-r)为三维点云模型到人体姿态气泡模型距离代价项,使所述人体姿态气泡模型贴近所述三维点云模型的算子;
Bb(Ci,d)为人体姿态气泡模型到三维点云模型距离代价项,使人体姿态气泡模型在三维点云模型所在平面之后;
为人体姿态气泡模型中气泡碰撞惩罚参数,
Cl(Ci,Cj)=max(λc*(ri+rj)-||Ci-Cj||2,0),,λc为碰撞容忍度,ri为气泡i的半径,rj为气泡j的半径,||Ci-Cj||2为气泡i球心Ci与气泡j球心Cj之间的距离;
为人体姿态气泡模型中气泡拉伸惩罚参数,El(Ci,Cj)=max(||Ci-Cj||2-λe*(ri+rj),0),λe为拉伸容忍度。
实施中,优化单元具体用于当气泡的球心Ci的投影在第一深度图像中人体的区域内时,Bb(Ci,d)=max(0,d-Ci z),d为气泡的球心Ci投影的深度值,Ci z为气泡的球心Ci在深度z方向上的投影分量。
实施中,优化单元具体用于当气泡的球心Ci的投影在第一深度图像中人体的区域之外时, 为距离气泡的球心Ci最近的三维点云p。
本发明实施例提供的人体姿态检测方法及装置,通过接收含有人体的深度图像,将其转化为三维点云模型,将其与预先得到的气泡模型进行优化拟合,以得到该含有人体的深度图像中的人体骨架关节点坐标值,从而确定人体的姿态。由于本发明实施例中提供的人体姿态检测方案,基于之前得到的气泡模型和需要检测的深度图像转化后的三维点云模型进行优化拟合就可以得到人体姿态,不需要对每张深度图像都进行图像识别与分类的处理计算,提高了人体姿态处理效率,大大节约了计算资源。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器、CD-ROM、光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、设备(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理设备的处理器以产生一个机器,使得通过计算机或其他可编程数据处理设备的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理设备以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理设备上,使得在计算机或其他可编程设备上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程设备上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
尽管已描述了本发明的优选实施例,但本领域内的技术人员一旦得知了基本创造性概念,则可对这些实施例作出另外的变更和修改。所以,所附权利要求意欲解释为包括优选实施例以及落入本发明范围的所有变更和修改。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。