具体实施方式
为了清楚地说明本发明实施例的方案,首先对体感装置及其功能进行介绍。
体感装置是一种3D体感摄影机,是以红外线发出人眼看不见的class1雷射光,透过镜头前的光栅将雷射光均匀分布投射在测量空间中,再透过红外线摄影机记录下空间中的每个散斑,撷取原始资料后,再透过晶片计算成具有3D深度的图像,并将具有3D深度的图像转换成骨骼数据图像,每幅骨骼数据图像即为一骨骼数据帧,在该骨骼数据帧中通过20个关节点来表示一个人体骨架,具体的人体骨架结构如图1所示。
当人物走进体感装置的视野范围的时候,体感装置即可将该人物的20个关节点的位置找到,关节点的位置通过三维坐标(x,y,z)表示,体感装置处于三维坐标的原点上,其中,与X轴平行的方向即为水平方向,与Y轴平行的方向即为垂直方向,与Z轴平行的方向即为景深方向,具体如图2所示。
本发明实施例直接使用上述体感装置采集的骨骼数据帧,并对该骨骼数据帧进行相关的处理来进行人的某一骨骼的动作类型识别,并将该动作类型识别结果应用于在线包装的节目播出控制上,下面通过各实施例对本发明的方案进行详细地描述。
实施例一
如图3所示,其为本发明实施例一的动作类型识别方法流程图,包括以下步骤:
步骤101:接收体感装置采集的骨骼数据帧。
所述骨骼数据帧中包含参考骨骼节点和至少一个设定骨骼节点在由互相垂直的水平方向、垂直方向和景深方向构成的三维坐标空间的坐标;
所述设定骨骼节点是根据实际动作识别的需要来确定的,可以是该骨骼数据帧中上述20个关节点中的任意一个。
步骤102:对接收的骨骼数据帧进行去噪处理。
需要说明的是,步骤102是本发明实施例一的优选步骤,图像采集及传输过程中会产生椒盐噪声及其他类型的噪声,本步骤102中可以针对不同类型的噪声进行去噪处理,以尽可能恢复采集的骨骼数据帧的原始数据,使得下述确定的动作类型更为准确。
步骤103:判断是否对当前骨骼数据帧中包含的设定骨骼节点都已进行了动作类型的确定,若是,则执行步骤122,若否,则执行步骤104。
步骤104:从未进行动作类型确定的设定骨骼节点中挑选一个设定骨骼节点,并执行步骤105。
步骤105:分别确定当前骨骼数据帧中该挑选的设定骨骼节点的水平方向、垂直方向和景深方向,并执行步骤106、步骤111以及步骤116。
这里的步骤106、步骤111和步骤116可以串行执行,也可以并行执行。
其中,骨骼数据帧中挑选的设定骨骼节点的的水平方向、垂直方向和景深方向分别是该骨骼数据帧中设定骨骼节点在水平方向上的位置相对于其前一骨骼数据帧中该设定骨骼节点在水平方向上的位置的变化方向、该骨骼数据帧中设定骨骼节点在垂直方向上的位置相对于其前一骨骼数据帧中该设定骨骼节点在垂直方向上的位置的变化方向以及该骨骼数据帧中设定骨骼节点在景深方向上的位置相对于其前一骨骼数据帧中该设定骨骼节点在景深方向上的位置的变化方向。
上述骨骼数据帧中设定骨骼节点的水平方向可以包括向右和向左;骨骼数据帧中设定骨骼节点的垂直方向可以包括向上和向下,骨骼数据帧中设定骨骼节点的景深方向可以包括向前和向后。
较优的,所述分别确定当前骨骼数据帧中该挑选的设定骨骼节点的水平方向、垂直方向和景深方向,具体包括:
判断当前骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值与前一骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值之差是否大于0,判断当前骨骼数据帧中该挑选的设定骨骼节点在垂直方向的坐标值与前一骨骼数据帧中该挑选的设定骨骼节点在垂直方向坐标值之差是否大于0,以及判断当前骨骼数据帧中该挑选的设定骨骼节点在景深方向的坐标值与前一骨骼数据帧中该挑选的设定骨骼节点在景深方向坐标值之差是否大于0;
在判断结果为水平方向的坐标值之差大于0时,确定当前骨骼数据帧中该挑选的设定骨骼节点的水平方向为向右;
在判断结果为水平方向的坐标值之差不大于0时,确定当前骨骼数据帧中该挑选的设定骨骼节点的水平方向为向左;
在判断结果为垂直方向的坐标值之差大于0时,确定当前骨骼数据帧中该挑选的设定骨骼节点的垂直方向为向上;
在判断结果为垂直方向的坐标值之差不大于0时,确定当前骨骼数据帧中该挑选的设定骨骼节点的垂直方向为向下;
在判断结果为景深方向的坐标值之差大于0时,确定当前骨骼数据帧中该设定骨骼节点的景深方向为向前;
在判断结果为景深方向的坐标值之差不大于0时,确定当前骨骼数据帧中该设定骨骼节点的景深方向为向后。
步骤106:判断确定的当前骨骼数据帧中挑选的设定骨骼节点的水平方向与水平标志方向是否相同;若是,则执行步骤107,若否,则执行步骤108。
水平标志方向初始化为未知方向,在此之后的各次执行过程中,即可通过步骤108获得实际的水平标志方向。
上述水平标志方向也即水平标志骨骼数据帧的水平方向。
步骤107:判断当前骨骼数据帧的帧号与水平标志骨骼数据帧的帧号之差是否在设定范围内,若是,则执行步骤109;若否,则执行步骤110。
需要说明的是,本步骤107是本发明实施例一的优选步骤,由于体感装置每秒可以采集30帧的骨骼数据,而通常情况下人物的动作类型每秒中的变化的频率是远达不到29次每秒的,因此,为了有效的对当前的动作类型是否有效进行准确的判定,执行本步骤107。
所述设定范围可以根据实际需要识别的设定骨骼节点在实际应用中的需要其动作类型的变化频率来确定,例如通过实验并对实验数据进行统计分析来确定,这里并不对所述设定范围进行限定。
在本发明实施例一的方案中也可以不执行步骤107,在步骤106中判断结果为是之后,直接执行步骤109。
步骤108:将当前骨骼数据帧的水平方向作为水平标志方向,将前一骨骼数据帧的帧号、前一骨骼数据帧的帧号中该挑选的设定骨骼节点在水平方向的坐标值作为水平标志骨骼数据帧的帧号、水平标志骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值;
上述水平标志方向也即水平标志骨骼数据帧的水平方向。
上述步骤108也即修改水平标志骨骼数据帧的相关参数。
需要说明的是,本步骤108是为后续骨骼数据帧中设挑选的定骨骼节点的动作类型的识别做准备。
步骤109:根据当前骨骼数据帧中挑选的设定骨骼节点在水平方向的坐标值与水平标志骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值,确定该挑选的设定骨骼节点在水平方向上的动作类型,并执行步骤121。
较优的,在本步骤109中,具体通过以下方式确定该挑选的设定骨骼节点在水平方向上的动作类型:
第一步:判断当前骨骼数据帧中挑选的设定骨骼节点在水平方向的坐标值与水平标志骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值之差是否大于设定值;
第二步:在当前骨骼数据帧中挑选的设定骨骼节点在水平方向的坐标值与水平标志骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值之差大于设定值时,确定该挑选的设定骨骼节点在水平方向上的动作类型为向右划,并且将该动作类型记录到动作类型数组中。然后将水平标志方向设定为未知方向,为下一个动作类型判断做准备;在当前骨骼数据帧中挑选的设定骨骼节点在水平方向的坐标值与水平标志骨骼数据帧中该设定骨骼节点在水平方向的坐标值之差不大于设定值时,判定该挑选的设定骨骼节点在水平方向上的动作类型无效。
第三步:判断水平标志骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值与当前骨骼数据帧中挑选的设定骨骼节点在水平方向的坐标值之差是否大于设定值时;
第四步:在水平标志骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值与当前骨骼数据帧中挑选的设定骨骼节点在水平方向的坐标值之差大于设定值时,确定该挑选的设定骨骼节点在水平方向上的动作类型为向左划,并且将该动作类型记录到动作类型数组中。然后将水平标志方向设定为未知方向,为下一个动作类型判断比较做准备;在水平标志骨骼数据帧中该挑选的设定骨骼节点在水平方向的坐标值与当前骨骼数据帧中挑选的设定骨骼节点在水平方向的坐标值之差不大于设定值时,判定该挑选的设定骨骼节点在水平方向上的动作类型无效。
上述的四个步骤更具体的对挑选的设定骨骼节点在水平方向的动作类型进行了判定,并进一步通过坐标差值与设定值的比较,更准确的确定了动作类型有效和无效,以及有效时具体的动作类型。
所述设定值可以通过在实际应用的场景中对实验数据进行统计分析得到。
步骤110:确定不能对该设定骨骼节点在水平方向上的动作类型进行判断。
步骤111:判断确定的当前骨骼数据帧中挑选的设定骨骼节点的垂直方向与垂直标志方向是否相同,若否,则执行步骤112;若是,则执行步骤113。
垂直标志方向初始化为未知方向,在此之后的各次执行过程中,即可通过步骤112获得实际的垂直标志方向。
上述垂直标志方向也即垂直标志骨骼数据帧的垂直方向。
步骤112:将当前骨骼数据帧的垂直方向作为垂直标志方向,将前一骨骼数据帧的帧号、前一骨骼数据帧中挑选的设定骨骼节点在垂直方向的坐标值作为垂直标志骨骼数据帧的帧号、垂直标志骨骼数据帧中挑选的设定骨骼节点在垂直方向的坐标值。
上述步骤112也即修改垂直标志骨骼数据帧的相关参数。
需要说明的是,本步骤112是为后续骨骼数据帧中该挑选的设定骨骼节点的动作类型的识别做准备。
步骤113:判断当前骨骼数据帧的帧号与垂直标志骨骼数据帧的帧号之差是否在设定范围内,若是,则执行步骤114,若否,则执行步骤115。
需要说明的是,本步骤113是本发明实施例一的优选步骤,由于体感装置每秒可以采集30帧的骨骼数据,而通常情况下人物的动作类型每秒中的变化的频率是远达不到29次每秒的,因此,为了有效的对当前的动作类型是否有效进行准确的判定,执行本步骤113。
步骤114:根据当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值与垂直标志骨骼数据帧中该挑选的设定骨骼节点在垂直方向的坐标值,确定该挑选的设定骨骼节点在垂直方向上的动作类型,并执行步骤121。
较优的,在本步骤114中,具体通过以下方式确定该设定骨骼节点在垂直方向上的动作类型:
第一步:判断当前骨骼数据帧中该设定骨骼节点在垂直方向的坐标值与垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值之差是否大于设定值;
第二步:在当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值与垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值之差大于设定值时,确定该设定骨骼节点在垂直方向上的动作类型为向上划,并且将该动作类型记录到动作类型数组中。然后将垂直标志骨骼帧的垂直方向设定为未知方向,为下一个动作类型判断比较做准备;在当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值与垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值之差不大于设定值时,判定该设定骨骼节点在垂直方向上的动作类型无效。
第三步:判断垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值与当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值之差是否大于设定值;
第四步:在垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值与当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值之差大于设定值时,确定该设定骨骼节点在垂直方向上的动作类型为向下划,并且将该动作类型记录到动作类型数组中。然后将垂直标志方向设定为未知方向,为下一个动作类型判断比较做准备;在垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值与当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值之差不大于设定值时,判定该设定骨骼节点在垂直方向上的动作类型无效。
步骤115:确定不能对该设定骨骼节点在垂直方向上的动作类型进行判断。
步骤116:判断确定的当前骨骼数据帧中挑选的设定骨骼节点的景深方向与景深标志方向是否相同;若是,则执行步骤117,若否,则执行步骤118。
景深标志方向初始化为未知方向,在此之后的各次执行过程中,即可通过步骤118获得实际的标志骨骼数据帧中设定骨骼节点的景深方向。
上述景深标志方向也即景深标志骨骼数据帧的垂直方向。
步骤117:判断当前骨骼数据帧的帧号与景深标志骨骼数据帧的帧号之差是否在设定范围内,若是,则执行步骤119;若否,则执行步骤120。
需要说明的是,本步骤117是本发明实施例一的优选步骤,是为了有效的对当前的动作类型是否有效进行准确的判定,执行本步骤117。
在本发明实施例一的方案中也可以不执行步骤117,在步骤116中判断结果为是之后,直接执行步骤119。
步骤118:将当前骨骼数据帧的景深方向作为景深标志方向,将前一骨骼数据帧的帧号、前一骨骼数据帧中该挑选的设定骨骼节点在景深方向的坐标值作为景深标志骨骼数据帧的帧号、景深标志骨骼数据帧中该挑选的设定骨骼节点在景深方向的坐标值;
上述步骤118也即修改景深标志骨骼数据帧的相关参数。
需要说明的是,本步骤118是为后续骨骼数据帧中设挑选的定骨骼节点的动作类型的识别做准备。
步骤119:根据当前骨骼数据帧中挑选的设定骨骼节点在景深方向的坐标值、当前骨骼数据帧中参考骨骼节点在景深方向的坐标值和景深标志骨骼数据帧中该挑选的设定骨骼节点在景深方向的坐标值,确定该挑选的设定骨骼节点在景深方向上的动作类型,并执行步骤121。
较优的,在本步骤119中,具体通过以下方式确定该挑选的设定骨骼节点在景深方向上的动作类型:
第一步:判断当前骨骼数据帧中设定骨骼节点在景深方向的坐标值与景深标志骨骼数据帧中该设定骨骼节点在景深方向的坐标值之差大于设定值,且当前骨骼数据帧中设定骨骼节点在景深方向的坐标值与当前骨骼数据帧中参考骨骼节点在景深方向的坐标值之差满足设定条件,并执行第二步;
第二步:在大于设定值且满足设定条件时,确定该设定骨骼节点在景深方向上的动作类型为点击,并且将该动作类型记录到动作类型数组中,然后将景深标志方向设定为未知方向,为下一个动作类型判断做准备;在不大于设定值或不满足设定条件时,判定设定骨骼节点在景深方向上的动作类型无效。
第三步:判断景深标志骨骼数据帧中该设定骨骼节点在景深方向的坐标值与当前骨骼数据帧中设定骨骼节点在景深方向的坐标值之差大于设定值,且当前骨骼数据帧中设定骨骼节点在景深方向的坐标值与当前骨骼数据帧中参考骨骼节点在景深方向的坐标值之差满足设定条件,并执行第四步;
所述设定条件可以为大于第一设定阈值小于第二设定阈值,所述第一设定阈值小于第二设定阈值。
第四步:在大于设定值且满足设定条件时,确定该设定骨骼节点在景深方向上的动作类型为向后,并且将该动作类型记录到动作类型数组中,然后将景深标志骨骼帧的景深方向设定为未知方向,为下一个动作类型判断做准备;在在不大于设定值或不满足设定条件时,判定设定骨骼节点在景深方向上的动作类型无效。
上述的四个步骤更具体的对挑选的设定骨骼节点在景深方向的动作类型进行了判定,并进一步通过坐标差值与设定值的比较,更准确的确定了动作类型有效和无效,以及有效时具体的动作类型。
所述设定值可以通过在实际应用的场景中对实验数据进行统计分析得到。
步骤120:确定不能对该设定骨骼节点在景深方向上的动作类型进行判断。
步骤121:根据确定的该设定骨骼节点在水平方向上的动作类型、在垂直方向上的动作类型和在景深方向的动作类型,确定该设定骨骼节点的动作类型,并跳转至步骤103。
在本步骤121中,由于确定了设定骨骼节点在水平方向上的动作类型、设定骨骼节点在垂直方向上的动作类型和设定骨骼节点在景深方向上的动作类型,而任一设定骨骼节点的动作类型可以分解为这三个方向上的动作类型,因此,由确定的这三个方向上的动作类型的结合可以确定设定骨骼节点的动作类型。
例如:假设所述设定骨骼节点为左手,确定的景深方向的动作类型为无效,确定的左手在水平方向上的动作类型为左划,左手在垂直方向上的动作类型为无效,则可以确定左手的动作类型为左划;假设所述设定骨骼节点为左手,确定的景深方向的动作类型为无效,确定的左手在水平方向上的动作类型为左划,左手在垂直方向上的动作类型为上划,则可以确定左手的动作类型为左上划。
步骤122:根据确定的至少一个设定骨骼节点的动作类型确定组合动作的动作类型。
这里,在确定的设定骨骼节点的动作类型只有1个时,组合动作的动作类型即为该设定骨骼节点的动作类型。
较优的,在所述骨骼数据帧中包含至少两个设定骨骼节点时,所述方法还包括:在确定每一设定骨骼节点的动作类型时,标记当前骨骼数据帧的帧号为该已确定动作类型的设定骨骼节点的帧号;
例如:假设当前骨骼数据帧的帧号为13,则在利用帧号为13的骨骼数据帧确定设定骨骼节点1的动作类型时,可以将13(也即当前骨骼数据帧的帧号)作为该已确定动作类型的设定骨骼节点1的帧号。
在分别确定每一设定骨骼节点的动作类型之后,根据确定的至少两个设定骨骼节点的动作类型确定组合动作的动作类型之前,所述方法还包括:
分别判断任意两个已确定动作类型的设定骨骼节点的帧号之差是否满足设定的条件;
根据确定的至少两个设定骨骼节点的动作类型确定组合动作的动作类型,具体为:
在任意已确定动作类型的设定骨骼节点的帧号之差满足设定的条件时,根据确定的至少两个设定骨骼节点的动作类型确定组合动作的动作类型。
通过本发明实施例一的方案,首先利用相邻骨骼数据帧中设定骨骼节点的坐标值之差与0的关系对当前骨骼数据帧的方向进行判定,然后在当前骨骼数据帧的帧号与标志骨骼数据帧的帧差号之差在设定范围时,利用当前设定骨骼节点数据帧中该设定骨骼节点的坐标值与相应的标志骨骼数据帧中该设定骨骼节点的坐标值的关系来判断设定骨骼节点的动作类型,实现了对设定骨骼节点的动作类型的识别,并且在动作类型数组的元素个数大于1时,根据确定的至少一个设定骨骼的动作类型,确定组合动作类型,进而可将该识别方法应用各种场景,达到对该应用场景时利用人物的实时动作进行控制的目的。
例如:在设定骨骼数据节点包括左手和右手时,分别确定该左手的动作类型及右手的动作类型,并根据左手和右手的动作类型确定手的动作类型。
具体实施时,在设定骨骼节点包含两个骨骼节点时,可利用存储了该对骨骼节点的动作类型的动作类型数组进行,其本质是确定组合动作类型,在确定组合动作类型时,若动作类型数组中元素大于1,取到动作类型数组中的最后一个元素作为确定的动作类型,再从动作类型数组中由后向前循环取到在它前边的动作类型。若两个动作类型对应的帧号的差值满足设定条件(该设定条件可为小于某个设定阈值),即同时发生,将该动作类型确定为某个组合动作类型,并将它前边动作类型删掉;否则,不做操作。若动作类型数组中元素不大于1,则不做操作。
例如:假设确定了左手的动作类型为左手右划,并同时确定了右手的动作类型为右手左划,则可确定双手的动手类型为双手合拢;确定了左手的动作类型为左手左划,并同时确定了右手的动作类型为右手右划,则可确定双手的动手类型为双手分开。
上述步骤101至步骤122实现了对动作类型的识别,在某些应用场景中可能需要对人物的指定骨骼节点的移动进行点的追踪,因此,在所述骨骼数据帧中包含指定骨骼节点在三维坐标空间的坐标时;所述动作类型识别方法还包括:
根据当前骨骼数据帧中的指定骨骼节点在水平方向坐标值与前一骨骼数据帧中指定骨骼节点在水平方向坐标值,以及当前骨骼数据帧中的指定骨骼节点在垂直方向的坐标值与前一骨骼数据帧中指定骨骼节点在垂直方向的坐标值,确定该指定骨骼节点的移动方向和移动距离。
所述指定骨骼节点和设定骨骼节点可以相同的,也可以不同的。
上述动作类型识别算法可以应用在手这一设置骨骼上,由于有左手和右手,而左手和右手的动作的组合称为手的动作,因此,在所述设定骨骼节点分别为左手和右手时,可以分别确定该左手的动作类型及右手的动作类型,并根据左手和右手的动作类型确定手的动作类型(也即组合动作类型)。
上述识别过程中,由于体感装置每秒记录30帧的数据,代表动作传递将会有33ms(1/30秒)的延迟,但是人类对事物的反应速度几乎都超过100ms,已经大于33ms的延迟。现在的计算机能在1ms处理多次浮点数的运算,上述动作类型识别方法有完全充分的时间计算相邻两帧之间的坐标数据差异,并根据帧号差值在设定范围的骨骼数据帧中分析设定骨骼节点并判断动作类型,实现1秒内正确判断出动作类型。进而该动作类型识别方法可应用于多种应用场景,如天气预报、图片新闻导读等节目播出类的场景,以及会议讲座、幻灯片播放等等应用场景。
针对本发明实施例一中在设定骨骼节点分别为左手和右手时,说明本发明的方案的可行之处的实验数据如下:
例如“右手左划”动作,找到若干实验者,让实验者在体感装置下做“右手左划”动作,每个实验者做20次,记录实验者全身节点的空间三维坐标,我们设定空间坐标见图4,此动作全程可分解为:
1、右手向离开躯干(即右)方向运动,此时右手的X值逐渐增大。
2、右手到达据躯干右侧最远点,此时右手的X值为最大。
3、右手向靠近躯干(即左)方向运动,此时右手的X值逐渐减小。
由上所述,右手的X值作为动作判断依据之一,通过实验记录,得出以下实验数据:
1、98.6%的实验者右手在最远点的X值都会大于右肘的X值。
2、99.1%的实验者在动作结束时右手的X值都会小于右肘的X值。
3、93.5%的实验者在动作全程右手的Y值都大于腰的Y值,而小于颈的Y值。
4、92.1%的实验者的右手左移过程中,右手的X值的变化绝对值都超过300mm,且变化时间大于200ms,小于1s。
本发明实施例二中即以本发明实施例一的方案应用于节目播出为例,对其应用进行进一步的说明。
实施例二
如图5所示,为本发明实施例二中的节目播出方法流程图,所述节目播出方法包括以下步骤:
步骤201:利用实施例一中的动作识别方法确定当前接收骨骼数据帧中至少一个设定骨骼节点的组合动作的动作类型;
步骤202:判断该确定的组合动作的动作类型是否为有效的动作类型;若是,则执行步骤203;若否,则跳转至步骤201。
在本步骤202中,若确定的组合动作的动作类型属于预先设定的动作类型集合,则判断确定的动作类型为有效的动作类型,否则,则判断确定的动作类型为无效的动作类型。
步骤203:根据存储的组合动作的动作类型与特效动画之间的对应关系,在未播出的特效动画列表中查找确定的动作类型对应的特效动画,并执行步骤204。
由于设定骨骼节点的动作类型是有限的,而特效动画的数量很可能一方面是数量超过动作类型的数量,另一方面,同一动作类型可以对不同的特效动画;因此,在本步骤203中,可以事先编排好特效动画的播出顺序,并将动作类型与包含播出顺序标识的特效动画建立一对多的对应关系,在进行查找时,即可利用组合动作的动作类型与包含播出顺序标识的特效动画之间的对应关系,准确的查找到确定的组合动作的动作类型对应的特效动画。
例如:假设设定骨骼节点为右手,右手右划这一动作类型与包含播出顺序标识的特效动画的对应关系为:右手右划对应播出顺序为1的特效动画1、播出顺序为5的特效动画3、播出顺序为10的特效动画4。
此时,可每次都从未播出的特效动画列表中查找动作类型对应的特效动画,例如:假设已执行过的动作类型与包含播出顺序标识的特效动画为右手右划对应播出顺序为1的特效动画1,则更新后的该动作类型与包含播出顺序标识的特效动画对应关系为:右手右划对应播出顺序为5的特效动画3、播出顺序为10的特效动画4。
步骤204:判断是否找到确定的组合动作的动作类型对应的特效动画,若是,则执行步骤205,若否,则不产生任何行为。
步骤205:将查找到的特效动画进行播出。
在上述播出过程中,需要使用特效动画随着播出人员的移动而移动时,可以使用实施例一中的确定该指定骨骼节点在水平方向的移动方向和移动距离,此时,所述节目播出方法还包括:
根据存储的指定骨骼节点与特效动画之间的对应关系和确定的指定骨骼节点的移动方向和移动距离,在确定的移动方向上将该指定骨骼节点对应的特效动画从当前位置移动至距离所述移动距离处的位置。
上述在确定的移动方向上将该指定骨骼节点对应的特效动画从当前位置移动至距离所述移动距离处的位置,实现了对点的跟踪。选定主持人某一部位为定点,播出某一特效动画时,当主持人移动时该特效动画随着移动,二者相对位置不变。这种节目播出方法可实现人机交互,使人控制播出设备精确可靠有实时性。
上述节目播出方法中常用的设置骨骼为双手,此时,本发明实施例一中的动作类型识别方法可识别的动作类型包括:左手右划、左手左划、左手下划、右手左划、右手右划、右手下划、双手分开、双手合拢等。
利用本发明实施例二的节目播出方法,可实现在主持人做出左手左划的动作,则一系列的图片从屏幕左方滑进;左手右划,图片从屏幕左方滑出。左手左滑,产生一个图表;右滑,图表消失。只要一个有效动作就能控制特效动画的播出,反映迅速,没有延迟,无需播控人员操作。播出控制端对整个播出过程控制精度高,安全可靠,节目更加灵活、生动,提高节目质量。
本发明实施例二中的假设指定骨骼节点为主持人头部时,在主持人左上方产生一个图片,主持人移动,可实现图片平滑移动,相对于主持人的位置不变,无需播控人员操作,图片移动位置准确,播出过程安全、稳定。
实施例三
与本发明实施例一的同一发明构思,本发明实施例三提供一种动作类型识别装置,如图6所示,该装置包括:接收模块101、第一确定模块102、第一判断模块103、第二确定模块104、动作类型确定模块105和组合动作类型确定模块106,其中:
接收模块101,用于接收体感装置采集的骨骼数据帧,所述骨骼数据帧中包含参考骨骼节点和至少一个设定骨骼节点在由互相垂直的水平方向、垂直方向和景深方向构成的三维坐标空间的坐标;
第一确定模块102,用于针对接收的每一骨骼数据帧中的每一设定骨骼节点分别确定当前骨骼数据帧中该设定骨骼节点的水平方向、垂直方向和景深方向,骨骼数据帧中设定骨骼节点的水平方向、垂直方向和景深方向分别是该骨骼数据帧中设定骨骼节点在水平方向上的位置相对于其前一骨骼数据帧中该设定骨骼节点在水平方向上的位置的变化方向、该骨骼数据帧中设定骨骼节点在垂直方向上的位置相对于其前一骨骼数据帧中该设定骨骼节点在垂直方向上的位置的变化方向以及该骨骼数据帧中设定骨骼节点在景深方向上的位置相对于其前一骨骼数据帧中该设定骨骼节点在景深方向上的位置的变化方向;第一判断模块103,用于分别判断确定的当前骨骼数据帧中设定骨骼节点的水平方向与水平标志方向是否相同,确定的当前骨骼数据帧中设定骨骼节点的垂直方向与垂直标志方向是否相同,以及确定的当前骨骼数据帧中设定骨骼节点的景深方向与景深标志方向是否相同。
第二确定模块104,用于在判断结果为水平方向相同时,根据当前骨骼数据帧中设定骨骼节点在水平方向的坐标值与水平标志骨骼数据帧中该设定骨骼节点在水平方向的坐标值,确定该设定骨骼节点在水平方向上的动作类型;在判断结果为垂直方向相同时,根据当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值与垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值,确定该设定骨骼节点在垂直方向上的动作类型;在判断结果为景深方向相同时,根据当前骨骼数据帧中设定骨骼节点在景深方向的坐标值、当前骨骼数据帧中参考骨骼节点在景深方向的坐标值和景深标志骨骼数据帧中该设定骨骼节点在景深方向的坐标值,确定该设定骨骼节点在景深方向上的动作类型;
动作类型确定模块105,用于根据确定的该设定骨骼节点在水平方向上的动作类型、在垂直方向上的动作类型和在景深方向上的动作类型,确定该设定骨骼节点的动作类型。
组合动作类型确定模块106,用于根据确定的至少一个设定骨骼节点的动作类型确定组合动作的动作类型。
较优的,所述第一确定模块102包括:
第二判断模块201,用于分别判断当前骨骼数据帧中该设定骨骼节点在水平方向的坐标值与前一骨骼数据帧中该设定骨骼节点在水平方向的坐标值之差是否大于0,当前骨骼数据帧中该设定骨骼节点在垂直方向的坐标值与前一骨骼数据帧中该设定骨骼节点在垂直方向坐标值之差是否大于0,以及当前骨骼数据帧中该设定骨骼节点在景深方向的坐标值与前一骨骼数据帧中该设定骨骼节点在景深方向坐标值之差是否大于0;
方向确定模块202,用于在第二判断模块的判断结果为水平方向的坐标值之差大于0时,确定当前骨骼数据帧中该设定骨骼节点的水平方向为向右;在第二判断模块的判断结果为水平方向的坐标值之差不大于0时,确定当前骨骼数据帧中该设定骨骼节点的水平方向为向左;在第二判断模块的判断结果为垂直方向的坐标值之差大于0时,确定当前骨骼数据帧中该设定骨骼节点的垂直方向为向上;在第二判断模块的判断结果为垂直方向的坐标值之差不大于0时,确定当前骨骼数据帧中该设定骨骼节点的垂直方向为向下;在判断结果为景深方向的坐标值之差大于0时,确定当前骨骼数据帧中该设定骨骼节点的景深方向为向前;在判断结果为景深方向的坐标值之差不大于0时,确定当前骨骼数据帧中该设定骨骼节点的景深方向为向后。
较优的,所述骨骼数据帧中还包含骨骼数据帧号,所述装置还包括:
修改模块107,用于在第一判断模块的判断结果为水平方向不相同时,将当前骨骼数据帧的水平方向作为水平标志方向,将一前骨骼数据帧的帧号、设定骨骼节点在水平方向的坐标值作为水平标志骨骼数据帧的帧号、设定骨骼节点在水平方向的坐标值;在第一判断模块的判断结果为垂直方向不相同时,将当前骨骼数据帧的垂直方向作为垂直标志方向,将前一骨骼数据帧的帧号、设定骨骼节点在垂直方向的坐标值作为垂直标志骨骼数据帧的帧号、设定骨骼节点在垂直方向的坐标值;在判断结果为景深方向不相同时,将当前骨骼数据帧的景深方向作为景深标志方向,将前一骨骼数据帧的帧号、设定骨骼节点在景深方向的坐标值作为景深标志骨骼数据帧的帧号、设定骨骼节点在景深方向的坐标值。
较优的,所述骨骼数据帧中还包含骨骼数据帧号;所述装置还包括:
第三判断模块108,用于在第一判断模块的判断结果为水平方向相同之后,判断当前骨骼数据帧的帧号与水平标志骨骼数据帧的帧号之差是否在设定范围内,以及在第一判断模块的判断结果为垂直方向相同之后,判断当前骨骼数据帧的帧号与垂直标志骨骼数据帧的帧号之差是否在设定范围内,以及在第一判断模块的判断结果为景深方向相同之后,判断当前骨骼数据帧的帧号与景深标志骨骼数据帧的帧号之差是否在设定范围内;
所述第二确定模块104,具体用于在当前骨骼数据帧的帧号与水平标志骨骼数据帧的帧号之差在设定范围内时,根据当前骨骼数据帧中设定骨骼节点在水平方向的坐标值与水平标志骨骼数据帧中该设定骨骼节点在水平方向的坐标值,确定该设定骨骼节点在水平方向上的动作类型;在当前骨骼数据帧的帧号与垂直标志骨骼数据帧的帧号之差在设定范围内时,根据当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值与垂直标志骨骼数据帧中该设定骨骼节点在水平方向的坐标值,确定该设定骨骼节点在垂直方向上的动作类型;在当前骨骼数据帧的帧号与景深标志骨骼数据帧的帧号之差在设定范围内时,根据当前骨骼数据帧中设定骨骼节点在景深方向的坐标值、当前骨骼数据帧中参考骨骼节点在景深方向的坐标值和景深标志骨骼数据帧中该设定骨骼节点在景深方向的坐标值,确定该设定骨骼节点在景深方向上的动作类型。
较优的,所述第二确定模块104,具体用于在当前骨骼数据帧中设定骨骼节点在水平方向的坐标值与水平标志骨骼数据帧中该设定骨骼节点在水平方向的坐标值之差大于设定值时,确定该设定骨骼节点在水平方向上的动作类型为向右划;在水平标志骨骼数据帧中该设定骨骼节点在水平方向的坐标值与当前骨骼数据帧中设定骨骼节点在水平方向的坐标值之差大于设定值时,确定该设定骨骼节点在水平方向上的动作类型为向左划;在当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值与垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值之差大于设定值时,确定该设定骨骼节点在垂直方向上的动作类型为向上划;在垂直标志骨骼数据帧中该设定骨骼节点在垂直方向的坐标值与当前骨骼数据帧中设定骨骼节点在垂直方向的坐标值之差大于设定值时,确定该设定骨骼节点在垂直方向上的动作类型为向下划;在当前骨骼数据帧中设定骨骼节点在景深方向的坐标值与景深标志骨骼数据帧中该设定骨骼节点在景深方向的坐标值之差大于设定值,且当前骨骼数据帧中设定骨骼节点在景深方向的坐标值与当前骨骼数据帧中参考骨骼节点在景深方向的坐标值之差满足设定条件时,确定该设定骨骼节点在景深方向上的动作类型为点击;在景深标志骨骼数据帧中该设定骨骼节点在景深方向的坐标值与当前骨骼数据帧中设定骨骼节点在景深方向的坐标值之差大于设定值,且当前骨骼数据帧中设定骨骼节点在景深方向的坐标值与当前骨骼数据帧中参考骨骼节点在景深方向的坐标值之差满足设定条件时,确定该设定骨骼节点在景深方向上的动作类型为后移。
较优的,所述装置还包括:
去噪模块109,用于在分别确定当前骨骼数据帧中该设定骨骼节点的水平方向、垂直方向和景深方向之前,对接收模块接收的骨骼数据帧进行去噪处理。
较优的,所述骨骼数据帧中包含设定骨骼节点在三维坐标空间的坐标;所述装置还包括:
第三确定模块110,用于根据当前骨骼数据帧中的指定骨骼节点在水平方向坐标值与前一骨骼数据帧中指定骨骼节点在水平方向坐标值,以及当前骨骼数据帧中的指定骨骼节点在垂直方向的坐标值与前一骨骼数据帧中指定骨骼节点在垂直方向的坐标值,确定该指定骨骼节点的移动方向和移动距离。
较优的,所述装置还包括:
标记模块111,用于在所述骨骼数据帧中包含至少两个设定骨骼节点时,在确定每一设定骨骼节点的动作类型时,标记当前骨骼数据帧的帧号为该已确定动作类型的设定骨骼节点的帧号;
第四判断模块112,用于分别判断任意两个已确定动作类型的设定骨骼节点的帧号之差是否满足设定的条件;
所述组合动作类型确定模块106,具体用于在任意已确定动作类型的设定骨骼节点的帧号之差满足设定的条件时,根据确定的至少两个设定骨骼节点的动作类型确定组合动作的动作类型。
实施例四
与本发明实施例二的同一发明构思,本发明实施例四提出一种节目播出装置,如图7所示,所述节目播出装置包括:确定模块31、存储模块32、查找模块33和播出模块34,其中:
确定模块31,用于利用实施例三中任一所述的动作类型识别装置确定组合动作的动作类型;
存储模块32,用于用于存储组合动作的动作类型与特效动画之间的对应关系;
查找模块33,用于根据存储的组合动作的动作类型与特效动画之间的对应关系,在未播出的特效动画列表中查找确定的组合动作的动作类型对应的特效动画;
播出模块34,用于在查找到组合动作的动作类型对应的特效动画时,播出查找到的所述特效动画。
较优的,存储模块32,还用于存储指定骨骼节点与特效动画之间的对应关系;
所述节目播出装置还包括:
移动模块35,用于根据存储的指定骨骼节点与特效动画之间的对应关系和动作类型识别装置确定的指定骨骼节点的移动方向和移动距离,在确定的移动方向上将该指定骨骼节点对应的特效动画从当前位置移动至距离所述移动距离处的位置。
本发明实施例将体感技术与在线包装中的节目播出相结合,利用人体动作控制在线包装的特效动画的播出。体感装置实时捕捉主持人的动作,主持人做了一个动作,动作类型识别装置会马上做出判断。如果是有效动作类型,就会触发节目播出装置播出相应的特效动画;如果是无效动类型作,不产生任何特效。不需要播控人员操作,就能准确地播出图文特效,减轻了播控人员的工作强度。动作类型识别方法容错能力较高,保证系统安全、稳定、高度可靠。使用人机交互,具有实时性,控制精度高,提出了线包装播出阶段一种新的节目播出方式。
本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。而且,本发明可采用在一个或多个其中包含有计算机可用程序代码的计算机可用存储介质(包括但不限于磁盘存储器和光学存储器等)上实施的计算机程序产品的形式。
本发明是参照根据本发明实施例的方法、装置(系统)、和计算机程序产品的流程图和/或方框图来描述的。应理解可由计算机程序指令实现流程图和/或方框图中的每一流程和/或方框、以及流程图和/或方框图中的流程和/或方框的结合。可提供这些计算机程序指令到通用计算机、专用计算机、嵌入式处理机或其他可编程数据处理装置的处理器以产生一个机器,使得通过计算机或其他可编程数据处理装置的处理器执行的指令产生用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的装置。
这些计算机程序指令也可存储在能引导计算机或其他可编程数据处理装置以特定方式工作的计算机可读存储器中,使得存储在该计算机可读存储器中的指令产生包括指令装置的制造品,该指令装置实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能。
这些计算机程序指令也可装载到计算机或其他可编程数据处理装置上,使得在计算机或其他可编程装置上执行一系列操作步骤以产生计算机实现的处理,从而在计算机或其他可编程装置上执行的指令提供用于实现在流程图一个流程或多个流程和/或方框图一个方框或多个方框中指定的功能的步骤。
显然,本领域的技术人员可以对本发明进行各种改动和变型而不脱离本发明的精神和范围。这样,倘若本发明的这些修改和变型属于本发明权利要求及其等同技术的范围之内,则本发明也意图包含这些改动和变型在内。