发明内容
为弥补现有技术的不足,本发明目的是提供一种单视角无标记人体运动跟踪的关节定位方法,在保证了足够精度和稳定性的前提下,极大地提高了算法的效率,其处理性能在普通PC上可以达到60帧每秒以上,完全达到了实用的目的。本发明的技术方案如下:
一种单视角无标记人体运动跟踪的关节定位方法,其特征在于,包含:
步骤301,检测手的位置,得到手的候选样本handCandidate={Hi(xi,yi)},i=0,1,...,numHandCandidate-1,其中,Hi(xi,yi)为第i个手的候选样本,numHandCandidate为手的候选样本的个数;
步骤302,筛选手的位置,对手的候选样本进行筛选,获得概率大的样本作为优选样本;
步骤303,检测肘部的位置,获得肘部的候选样本;
步骤304,组合筛选手与肘部的位置;对手与肘的优选样本两两组合形成前臂样本,再对该前臂样本进行优选,获得前臂的优选样本;
步骤305,组合筛选手、肘与肩的位置,根据该前臂的优选样本与肩的位置进行组合优选,获得手臂的样本;
步骤306,对手臂的候选样本进行优选加权,获得最终的手、肘、肩的位置。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该步骤301检测手的位置的具体方法为:
根据多种信息的融合,对输入的图像帧中手的可能位置进行检测,该多种信息至少包括如下之一:前景信息、肤色信息、运动信息,分别表示为:前景图像imgBG,肤色图像imgSkin,运动能量图像imgMEI。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该步骤301检测手的位置的具体方法为:
对输入的图像帧进行扫描,设人体的单位长度为sizeUnit,将手定义为图像中的一个矩形区域,边长表示为sizeHand,
满足如下条件的位置认为是手的可能位置H(xH,yH):
(1)处于前景,即pBG(xH,yH)>deltaBGH,其中,pBG(xH,yH)为H(xH,yH)处于前景的概率,deltaBGH为确定是否处于前景的阈值,0.3≤deltaBGH≤0.5,pBG(xH,yH)由下式获得:
pBG(xH,yH)=numPixelFG/(sizeHand·sizeHand)
其中,numPixelFG为H代表的手的矩形区域中处于前景的像素个数,由前景图像获得;
(2)可检测到肤色信息,即pSkin(xH,yH)≥0,pSkin(xH,yH)为H属于肤色的概率,pSkin(xH,yH)由下式获得:
pSkin(xH,yH)=numPixelSkin/(sizeHand·sizeHand)
其中,numPixelSkin为H代表的手的矩形区域中属于肤色的像素个数,由肤色图像获得;
(3)具有运动信息,即pMotion(xH,yH)≥0,pMotion(xH,yH)为H处于运动状态的概率,pMotion(xH,yH)由下式获得:
pMotion(xH,yH)=numPixelMotion/(sizeHand·sizeHand)
其中,numPixelMotion为H代表的手的矩形区域中属于运动状态的像素个数,由运动能量图像获得;
(4)处于合理的物理位置,即D(H,S)≤lengthArm,其中,S为躯干中的肩节点的位置;D(H,S)为手的位置H到肩S的距离;lengthArm为手臂的长度,3·sizeUnit≤lengthArm≤3.5·sizeUnit。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该扫描方式是逐像素扫描的方式或者根据一定的步长进行扫描的方式。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该步长为sizeHand的1/2至1/3。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该步骤302中对手的候选样本进行筛选的条件为:
(1)具有一定肤色信息,且距离上一帧的手的位置不远的样本优先保留;
(2)具有运动信息,且其在运动图像中与上一帧的手的位置相连的样本优先保留;
(3)距离上一帧的手的位置越近的样本获选的概率越大;
(4)肤色信息越多的样本获选的概率越大;
(5)运动信息越显著的样本获选的概率越大。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该对手的候选样本进行筛选的具体方法为:
(1)对于已检测到的手的候选样本handCandidate,根据该条件(1)选出优选样本Hi(xi,yi)),Hi(xi,yi)同时满足:pSkin(xi,yi)>deltaSkin和D(Hi,handLast)<deltaDis,筛选获得的优选样本个数记为numSkin;
其中,deltaSkin为肤色优选阈值,0≤deltaSkin≤0.2;handLast为上一帧的手的位置,deltaDis为距离限制阈值,与手的大小相关,sizeHand≤deltaDis≤2·sizeHand;
(2)对于剩下未被选中的样本,根据该条件(2)选出优选样本,Hi(xi,yi)同时满足:pMotion(xi,yi)>deltaMotion和bMotionConnection(Hi,handLast)=true,
其中,deltaMotion为运动信息阈值,0.1≤deltaMotion≤0.4,bMotionConnection(Hi,handLast)=true表示Hi与上一帧的手的位置在运动能量图像上相连通;本次选拔获得的优选样本个数记为numMotion;
(3)对于剩下未被选中的样本再做进一步优选;
设需要选出numGood个优选样本,50≤numGood≤150。则在剩下的样本中还需要再选出numLeft=numGood-numSkin-numMotion个样本;
如果numLeft>0,则继续进行如下优选过程:
对于样本Hi(xi,yi),该条件(3)所示的时域连续性概率表示为:
其中,δ=D(Hi,handLasf),为Hi与handLast之间的距离;σ为标准差,取值sizeUnit的2至4倍之间;
样本Hi(xi,yi)的联合概率可表示为:
pMergeHand(xi,yi)=pTempo(xi,yi)·pSkin(xi,yi)·pMotion(xi,yi)
选出联合概率pMergeHand最大的numLeft个样本作为优选样本;
通过以上步骤,最终获得numGood个优选样本。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,当本帧为初始帧或上一帧手的跟踪失败时,则假设上一帧的手的位置handLast处于自然状态,该手的位置根据人体结构的特点获得:此时双手位于身体两侧,距离人体躯干中轴线约为sizeUnit,所处高度处于身高的一半。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该步骤303检测肘部位置的方法为:
对输入的图像帧进行扫描,设肘部为图像中的一个矩形区域,边长为sizeElbow,sizeElbow取值为sizeUnit的1/2,肘部的候选样本E(xE,yE)应满足如下条件:
(1)处于前景,即pBG(xE,yE)>thBGE,thBGE为确定是否处于前景的阈值,0.2≤thBGE≤0.5;
(2)处于合理的物理范围,即肘不可能超过躯干上臂长度的范围,表示为D(E,S)≤lengthUpperArm,其中,D(E,S)为肘至肩的距离,lengthUpperArm为上臂的长度,取值sizeUnit的1至1.8倍;
符合上述条件检测出的肘部候选样本Ei(xi,yi),其概率由如下因素确定:
时域连续性,即其距上一帧肘部位置elbowLast的距离越近概率越大,时域连续性概率
其中,D(Ei,elbowLast)为样本Ei与elbowLast之间的距离;
躯干以外的候选样本具有更大概率,即:pDisTorso(xi,yi)=D(Ei,Torso)/DM,其中D(Ei,Torso)表示样本Ei(xi,yi)到人体躯干中轴线的垂直距离;DM为一经验常数,可取sizeUnit的1.5至2.5倍;
则样本Ei(xi,yi)的联合概率为:pMergeE(xi,yi)=pTempoE(xi,yi)·pDisTorso(xi,yi);
获得肘的候选样本为:
elbowCandidate={Ei(xi,yi)},i=0,1,......,numElbowCandidate-1,其中,Ei(xi,yi)为第i个肘的候选样本,numElbowCandidate为肘的候选样本的个数。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该步骤304组合筛选手与肘部的位置的方法为:
设前臂为具有一定长度的矩形,其宽度widthForeArm的取值范围在sizeUnit的1/3至1/2之间;
设由手样本Hi(xi,yi)与肘样本Ej(xj,yj)组合成前臂样本FA(i,j),该前臂样本FA(i,j)满足如下条件:
(1)长度处于合理范围,即lengthFA(i,j)=D(Hi,Ej)≤lengthForeArm,其中,lengthForeArm为前臂的长度,取值sizeUnit的1.4至2倍;
(2)处于前景,即pBGFA(i,j)>thBGFA;其中,thBGFA为判定前臂是否处于前景的阈值,取值0.2至0.5;
基于以上条件进行判定,获得前臂的候选样本为:
foreArmCandidate={FAk(i,j)={Hi(xi,yi),Ej(xj,yj)}},k=0,...,numForeArmCandidate-1
其中,FAk(i,j)={Hi(xi,yi),Ej(xj,yj)}为第k个前臂的候选样本,由手样本Hi(xi,yi)与肘样本Ej(xj,yj)组合而成,numForeArmCandidate为前臂的候选样本的个数。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该步骤305组合筛选手、肘与肩的位置的方法为:
进行3×3的窗口采样,获得9个肩部的候选样本Sn(xn,yn);
由肩部的候选样本Sn(xn,yn)与该前臂的候选样本FAk(i,j)={Hi(xi,yi),Ej(xj,yj)}进行组合,获得手臂的样本A(i,j,n),A(i,j,n)满足如下条件:
(1)长度处于合理范围,即lengthArm=D(Hi,Ej+D(Ej,Sn)≤lengthArm;
(2)上臂处于前景,即pBGUA(Ej,Sn)>thBGUA,其中thBGUA为判定上臂是否处于前景的阈值,取值0.2至0.5;
(3)上臂与前臂的相对位置符合人体动力学的原理,即两者的角度以及夹角处于合理范围;对于正面的人体运动而言,针对左臂,定义以下情况为无效:
angleFore>angle Up,当angle Up<-π/2且angleFore<angle Up+π时,或者
angleFore<angle Up,当angle Up>π/2且angleFore>-π/2时;
其中,angleFore为前臂{Hi,Ej}的角度,angleUp为上臂{Ej,Sn}的角度;角度取值范围为-π到π之间,水平向右为X轴正方向,其角度为0,处于X轴上方的角度为正,处于X轴下方的角度为负,水平向左为X轴负方向,其角度为π或-π;
基于以上条件进行判定,获得手臂的候选样本为:
armCandidate={Am(i,j,n)={FA(i,j),Sn(xn,yn)}},m=0,...,numArmCandidate-1
其中,Am(i,j,n)={FA(i,j),Sn(xn,yn)}为第m个前臂的候选样本,由手样本Hi(xi,yi)、肘样本Ej(xj,yj)与肩样本Sn(xn,yn)组合而成,numArmCandidate为手臂的候选样本的个数。
如上的一种单视角无标记人体运动跟踪的关节定位方法,其中,该步骤306对手臂的候选样本进行优选加权的方法为:
手臂样本A(i,j,n)的联合概率表示为:
pMergeArm(i,j,n)=pMergeHand(xi,yi)·pMergeE(xj,yj)·pBGFA(Hi,Ej)·pBGUA(Ej,Sn)·pBGCover(i,j,n)·pMotionFA(Hi,Ej)
其中,pBGCover为手臂样本的前景覆盖度概率;pMotionFA为前臂的运动信息概率;
基于手臂样本的联合概率pMergeArm对其进行排序,选取pMergeArm最大的numTop个样本作为优选样本,进行加权平均,获得最终的手、肘、肩位置;其中,numTop为选中的样本数,取值10至50之间;设优选的手臂样本为Am(i,j,n),m=0,…,numTop-1,则手臂位置为:
从而,手的位置(xHand,yHand)为:
肘的位置(xElbow,yELbow)为:
肩的位置(xShoulder,yShoulder)为:
本发明的有益效果是:
1.本发明在采用粒子滤波对躯干进行初步跟踪定位的基础上,提出一种新的关节的跟踪定位算法,在保证人体运动跟踪精度的基础上,极大地提高了跟踪效率,完全达到实时应用的要求。
2.针对人体的结构特点对不同的关节采用不同的信息融合算法进行检测,关节的跟踪定位快速、精确、稳定。
3.在普通PC上的处理速度达到每秒钟60帧以上,达到实时跟踪的性能。
4.本发明是针对单摄像头的无标记的人体运动跟踪,设备简单,方法先进。
5.本发明虽然是针对单视角的人体运动跟踪,但其算法也可以应用于多视角的人体运动跟踪,可以保证精度和提高效率。
具体实施方式
为了使本发明实现的技术手段、创作特征、达成目的与功效易于明白了解,下面进一步阐述本发明。
本发明主要针对单视角无标记人体运动跟踪,尤其是其中的关节定位方法。为了便于说明和理解,以下以左臂为例说明本发明方法。
图1所示为身体各关节点的位置。如果将“人”定义为一颗树,手臂则为“人”这棵树的一枝,包含手、肘、肩3个关节点,其中,肩为其根节点,手为末端节点。
基于人体结构的特点,本发明定义人体的单位长度为sizeUnit,身高和臂展的长度均为8个单位长度,即8·sizeUnit(见图1)。
图2表示了单视角无标记人体运动跟踪的流程。完成一个完整的人体运动跟踪需要经历如下步骤:
步骤201:视频图像输入。要在输入的视频中跟踪定位人体各关节的位置,首先需将输入的视频解析成连续的图像帧,即图像序列。输入视频可以是摄像头捕捉的实时视频数据,也可以是预先录制的视频文件等。输入视频的帧率一般为15-30帧每秒。
步骤202:图像预处理。基于步骤201获得的图像帧获得人体运动跟踪所需的各种信息。信息包括:前景图像,肤色图像,差分图像,运动能量图像等等。
步骤203:跟踪躯干。检测跟踪人体躯干的位置,并估计人体单位长度的大小,即size Unit。本发明采用粒子滤波算法只对躯干进行检测跟踪,能获得较好的效果,本发明检测跟踪人体躯干位置所使用的主要信息为前景图像。
步骤204:跟踪头部。头部处于人体躯干的顶端,跟踪头部主要是为了通过肤色信息的运用确保对躯干的跟踪是真实的“人”,以弥补前景图像的不足。
步骤205:跟踪左臂。在躯干的基础上,定位左臂的各关节,包括左手、左肘、左肩。
步骤206:跟踪右臂。在躯干的基础上,定位右臂的各关节,包括右手、右肘、右肩。
步骤207:跟踪腿部。在躯干的基础上,定位腿部的各关节,包括脚部、膝盖、髋部等。
步骤208:输出人体信息。
其中,步骤205、206和207均涉及到跟踪与定位各种关节。本发明主要解决人体运动跟踪中的关节定位问题。图3以手臂为例说明了关节运动的跟踪与定位方法。
图3所示为手臂的关节定位方法流程图。以左臂为例说明如下。
步骤301:检测手的位置。根据多种信息的融合,对输入的图像帧中手的可能位置进行检测。这些信息由如上所述的步骤202获得,信息包括:前景信息、肤色信息、运动信息等等,分别表示为:前景图像imgBG,肤色图像imgSkin,运动能量图像imgMEI。图4为输入图像及对应的前景图像、肤色图像、运动能量图像的示例。(a)为输入图像,对应的前景图像为(b)、肤色图像为(c),运动能量图像为(d)。
假设将手定义为图像中的一个矩形区域,边长为sizeHand,sizeHand根据躯干信息确定,一般地,sizeHand可取为sizeUnit的1/2至1/3(参见图1),sizeUnit由步骤203得到。以矩形区域的中心H表示手的位置,设H的图像坐标为(xH,yH),则其应满足如下条件:
(1)处于前景,即pBG(xH,yH)>deltaBGH,其中,pBG(xH,yH)为H处于前景的概率,deltaBGH为确定是否处于前景的阈值,根据所取手的大小sizeHand与sizeUnit的关系,一般可选择deltaBGH取值0.3至0.5之间。pBG(xH,yH)可由下式获得:
pBG(xH,yH)=numPixelFG/(sizeHand·sizeHand)
其中,numPixelFG为H代表的手的矩形区域中处于前景的像素个数,可直接由前景图像获得。
(2)一般可检测到肤色信息,即pSkin(xH,yH)≥0,pSkin(xH,yH)为H属于肤色的概率。pSkin(xH,yH)可由下式获得:
pSkin(xH,yH)=numPixelSkin/(sizeHand·sizeHand)
其中,numPixelSkin为H代表的手的矩形区域中属于肤色的像素个数,可直接由肤色图像获得。
(3)可能具有运动信息,即pMotion(xH,yH)≥0,pMotion(xH,yH)为H处于运动状态的概率。pMotion(xH,yH)可由下式获得:
pMotion(xH,yH)=numPixelMotion/(sizeHand·sizeHand)
其中,numPixelMotion为H代表的手的矩形区域中属于运动状态的像素个数,可由运动能量图像获得。
(4)处于合理的物理位置,即手不可能超出躯干手臂最长长度的范围。不妨表示为:D(H,S)≤lengthArm,其中,S为躯干中的肩节点的位置,这里不妨采用步骤203得到的初始位置,D(H,S)为手的位置H到肩S的距离;lengthArm为手臂的长度,一般地可取为sizeUnit的3至3.5倍(见图1)。
通过对图像进行扫描,满足以上条件的位置可以认为是手的可能位置。可以采用逐像素扫描的方式,也可以根据一定的步长进行扫描。一般地,可以选sizeHand的1/2至1/3作为步长,既可以提高扫描速度,也可保证覆盖整个图像,不会遗漏可能的手的位置。通过扫描得到的手的可能位置称为手的候选样本,记为:
handCandidate={Hi(xi,yi)},i=0,1,...,numHandCandidate-1
其中,Hi(xi,yi)为第i个手的候选样本,numHandCandidate为手的候选样本的个数。
步骤302:筛选手的位置。对手的候选样本进行筛选,获得概率大的样本作为优选样本。
由于人体运动跟踪针对实时视频进行处理,视频帧率一般在15-30帧每秒。因此,有如下信息可资利用:手和脸是裸露的,即其肤色信息容易检测到;相邻两帧之间,手的位置变化不会太大,即在时序上具有连续性;当手不动时,在上一帧手的位置可以检测到肤色信息;当手运动时,在上一帧手的位置与本帧手的位置之间可以检测到运动信息。
对于初始帧,即上一帧没有检测或跟踪到手的情况,本发明假设人体处于自然直立状态,即双手垂直放于躯干两侧,则手的位置可根据人体结构的特点获得:此时双手位于身体两侧,距离人体躯干中轴线约为sizeUnit,所处高度约为身高的一半,参见图1。这里的处理相当于关节定位的初始化检测,当跟踪失败后,能够立即恢复手的检测跟踪,肘部的处理方法类似。
基于这些常识,假设上一帧的手的位置为handLast(xLast,yLast),则进行优选时,本发明提出如下选择条件:
(1)具有一定肤色信息,且距离handLast距离较近的样本优先保留;
(2)具有运动信息,且在运动能量图像中与handLast相连通的样本优先保留;
(3)距离handLast越近的样本获选的概率越大;
(4)肤色信息越多的样本获选的概率越大;
(5)运动信息越显著的样本获选的概率越大。
基于以上条件,本发明进行优选的具体步骤如下:
(1)对于已检测到的手的候选样本handCandidate,根据条件(1)选出优选样本。即Hi(xi,yi)被选中,当它同时满足:
pSkin(xi,yi)>deltaSkin
D(Hi,handLast)<deltaDis
其中,deltaSkin为肤色优选阈值,一般可取值0至0.2之间;deltaDis为距离限制阈值,与手的大小相关,一般可取值sizeHand的1至2倍之间。
这次选拔获得的优选样本个数记为numSkin。
(2)对于剩下未被选中的样本,根据条件(2)选出优选样本。即Hi(xi,yi)被选中,当它同时满足:
pMotion(xi,yi)>deltaMotion
bMotionConnection(Hi,handLast)=true
其中,deltaMotion为运动状态概率的阈值,一般可取值0.1至0.4之间;bMotionConnection(Hi,handLast)表示Hi与handLast在运动能量图像上是否相连,其值为true表示两者相连通,false则相反,通过对运动能量图像进行连通域分析得到。
本次选拔获得的优选样本个数记为numMotion。
(3)对于剩下的样本再做进一步优选。假设需要选出numGood个优选样本,则在剩下的样本中还需要再选出numLeft=numGood-numSkin-numMotion个样本。numGood可根据实验确定,在保证手跟踪的精度的同时尽量小以保证运行效率。一般地,numGood可取值50至150之间。如果numLeft>0,则继续进行如下优选过程。
对于样本Hi(xi,yi),条件(3)所示的时域连续性概率,不妨假设其符合正态分布,则可表示为:
其中,δ=D(Hi,handLast),为Hi与handLast之间的距离;σ为标准差,根据经验确定,由于手为肢体末端,这里可取值sizeUnit的2至4倍之间。
由于时域连续性概率、肤色信息概率、运动信息概率彼此之间相互独立,根据联合概率定律以及条件(3)、(4)、(5),则样本Hi(xi,yi)的联合概率可表示为:
pMergeHand(xi,yi)=pTempo(xi,yi)·pSkin(xi,yi)·pMotion(xi,yi)
在剩下的样本中选出pMergeHand最大的numLeft个样本作为优选样本。
通过以上步骤,最终获得numGood个优选样本。
步骤303:检测肘部的位置。对图像帧中肘部的可能位置进行检查以获得肘部的候选样本。由于肘部并没有十分明显的物理特征,因此本发明主要利用前景信息imgBG。
设肘部为图像中的一个矩形区域,边长为sizeElbow。一般地,sizeElbow可取值为sizeUnit的1/2。不妨以该矩形的中心位置表示肘部,假设肘部的候选样本为E(xE,yE),则其应满足如下条件:
(1)处于前景,即pBG(xE,yE)>thBGE。这里thBGE为确定是否处于前景的阈值,一般地,可取值0.2至0.5之间。
(2)处于合理的物理范围,即肘不可能超过躯干上臂长度的范围。可表示为D(E,S)≤lengthUpperArm,其中,D(E,S)为其至肩的距离,lengthUpperArm为上臂的长度,一般可取值sizeUnit的1至1.8倍(见图1)。
符合上述条件的肘部样本,其概率由如下因素确定:时域连续性即其距上一帧肘部位置elbowLast的距离越近概率越大;躯干以外的候选样本具有更大概率,因为人体的自然姿态手臂是向外舒展的。对于样本Ei(xi,yi),其时域连续性概率可表示为
这里D(Ei,elbowLast)为样本Ei与elbowLast之间的距离;而后一种概率则可以表示为:pDisTorso(xi,yi)=D(Ei,Torso)/DM,其中D(Ei,Torso)表示样本Ei到人体躯干中轴线的垂直距离,DM为一经验常数,可取sizeUnit的1.5至2.5倍。则样本Ei的联合概率为:pMergeE(xi,yi)=pTempoE(xi,yi)·pDisTorso(xi,yi)。
与手的检测类似,通过对图像进行扫描,可以获得肘的候选样本为:
elbowCandidate={Ei(xi,yi)},i=0,1,......,numElbowCandidate-1
其中,Ei(xi,yi)为第i个肘的候选样本,numElbowCandidate为肘的候选样本的个数。
步骤304:组合筛选手与肘部的位置。对已有的手与肘的优选样本两两组合形成前臂样本,再对这些样本进行优选,从而获得前臂的优选样本。
前臂为连接手与肘的身体部件,设前臂为具有一定长度的矩形,而其宽度widthForeArm可根据躯干信息进行定义,基于图1的人体模型,一般地widthForeArm的取值范围在sizeUnit的1/3至1/2之间。假设由手样本Hi(xi,yi)与肘样本Ej(xj,yj)组合成前臂样本FA(i,j),则判定其为有效样本应满足如下条件:
(1)其长度处于合理范围,即lengthFA(i,j)=D(Hi,Ej≤lengthForeArm,这里lengthForeArm为前臂的长度,一般可取值sizeUnit的1.4至2倍。
(2)其处于前景,即pBGFA(i,j)>thBGFA。其中thBGFA为判定前臂是否处于前景的阈值,一般可取值0.2至0.5。
基于以上条件进行判定,最终获得前臂的候选样本为:
foreArmCandidate={FAk(i,j)={Hi(xi,yi,Ej(xj,yj)}},k=0,...,numForeArmCandidate-1
其中,FAk(i,j)={Hi(xi,yi),Ej(xj,yj)}为第k个前臂的候选样本,由手样本Hi(xi,yi)与肘样本Ej(xj,yj)组合而成,numForeArmCandidate为前臂的候选样本的个数。
步骤305:组合筛选手、肘与肩的位置。根据前臂的候选样本与肩的位置进行组合优选获得手臂的样本。
肩的位置基于躯干跟踪信息获得,其精确性有待近一步提高。因此这里在躯干跟踪估计的肩部位置的基础上进行一定小范围的扰动,例如进行3×3的窗口采样可以获得9个肩部的候选样本。由肩部的候选样本Sn(xn,yn)与前述前臂的候选样本FAk(i,j)={Hi(xi,yi),Ej(xj,yj)}进行组合可获得手臂的样本A(i,j,n),则判定其为有效样本应满足如下条件:
(1)长度处于合理范围,即lengthArm=D(Hi,Ej)+D(Ej,Sn)≤lengthArm。
(2)上臂处于前景,即pBGUA(Ej,Sn)>thBGUA。其中thBGUA为判定上臂是否处于前景的阈值,一般可取值0.2至0.5。这里对上臂的定义与前臂类似,其宽度widthUpperArm一般取值sizeUnit的1/3至1/2之间。
(3)上臂与前臂的相对位置符合人体动力学的原理,即两者的角度以及夹角处于合理范围。例如,对于正面的人体运动而言,针对左臂,本发明定义以下情况为无效的:
(3a)angleFore>angle Up,当angle Up<-π/2且angleFore<angle Up+π时
(3b)angleFore<angle Up,当angle Up>π/2且angleFore>-π/2时
其中angleFore为前臂{Hi,Ej}的角度,angleUp为上臂{Ej,Sn}的角度。这里的角度基于如下定义:角度取值范围为-π到π之间,水平向右为X轴正方向,其角度为0,处于X轴上方的角度为正,处于X轴下方的角度为负,水平向左为X轴负方向,其角度为π或-π。
基于以上条件进行判定,最终获得手臂的候选样本为:
armCandidate={Am(i,j,n)={FA(i,j),Sn(xn,yn)}},m=0,...,numArmCandidate-1
其中,Am(i,j,n)={FA(i,j),Sn(xn,yn)}为第m个前臂的候选样本,由手样本Hi(xi,yi)、肘样本Ej(xj,yj)与肩样本Sn(xn,yn)组合而成,numArmCandidate为手臂的候选样本的个数。
步骤306:优选加权平均。对手臂的候选样本进行优选加权,获得手、肘、肩的位置。
手臂样本包含了以下元素:手、肘、肩、前臂、上臂。根据联合概率定律,手臂样本A(i,j,n)的联合概率可表示为:
pMergeArm(i,j,n)=pMergeHand(xi,yi)·pMergeE(xj,yj)·pBGFA(Hi,Ej)·pBGUA(Ej,Sn)除了以上各个元素单独的特点,手臂作为一个整体,同时还具有如下特点:
(1)最大覆盖度原则,即覆盖人体前景更多的样本其概率更大;
(2)人体运动的特点是手臂运动是以肩为轴的一种旋转运动,而手的运动则是以肘为轴的一种旋转运动,因此总体来说前臂的运动信息是最显著的。
根据特点(1)可以得到手臂样本的前景覆盖度概率pBGCover;根据特点(2)可以得到前臂的运动状态概率pMotionFA。因此手臂样本的联合概率可表示为:
pMergeArm(i,j,n)=pMergeHand(xi,yi)·pMergeE(xj,yj)·pBGFA(Hi,Ej)·pBGUA(Ej,Sn)·pBGCover(i,j,n)·pMotionFA(Hi,Ej)
基于手臂样本的联合概率pMergeArm对其进行排序,选取pMergeArm最大的numTop个样本作为优选样本,进行加权平均获得最终的手臂位置,包括手、肘、肩。这里numTop为选中的样本数,一般地可以根据不同要求取值10至50之间。
假设优选的手臂样本为Am(i,j,n),m=0,...,numTop-1。则最终的手臂位置可计算如下:
进而有:
其中,(xHand,yHand)为手的位置;(xElbow,yElbow)为肘的位置;(xShoulder,yShoulder)为肩的位置。
经测试,采用本发明方法在普通PC(CPU:2.4G Hz,内存1G)上的处理速度达到了每秒钟60帧以上,完全符合实时应用的性能要求;同时,本发明对自遮挡、杂乱背景等情况均有良好的跟踪效果,具有很好的鲁棒性。图5所示为采用本发明的人体运动跟踪实例结果,图示了图像序列中第970帧至第1140帧的躯干、头部及手臂的跟踪结果,可以看出尽管背景杂乱、而且人体的运动包含了自遮挡情况,跟踪效果仍然非常准确。
使用本发明的单视角无标记人体运动跟踪的关节定位方法,融合了多种信息并针对人体的结构特点对不同的关节采用不同的信息融合算法进行检测,同时采用自末端向根部进行递归的搜索策略,很好地解决了树形结构的人体跟踪问题,在保证精确稳定性的同时达到实时跟踪的性能,可以广泛应用于人机交互、计算机视觉、人工智能等领域。
以上说明和图示仅为了清楚说明和易于理解本发明,本领域技术人员应可以增加或者减少某个步骤,或者对某个步骤做出简单变换,或者用于多视角情况下的关节跟踪定位,所有简单的变换和增减均属于本发明的保护范围。