具体实施方式
为了使本发明的目的、技术方案及优点更加清楚明白,以下结合附图及实施例,对本发明进行进一步详细说明。应当理解,此处所描述的具体实施例仅仅用以解释本发明,并不用于限定本发明。
为了说明本发明所述的技术方案,下面通过具体实施例来进行说明。
实施例一
如图1所示为本发明实施例提供的人机交互命令获取方法的流程图,所述方法包括以下步骤:
在步骤S101中,获取视频图像。
在本发明实施例中,进行人机交互的终端可以通过摄像头等视频图像获取设备获取视频图像。
在步骤S102中,根据所述视频图像获取所述视频图像中的人脸位置信息和人手信息,所述人手信息包括:人手形状信息和人手位置信息。
在本发明实施例中,进行人机交互的终端在获取了视频图像之后,对该视频图像进行分析,通过对该视频图像的分析获取该视频图像中的人脸位置信息和人手信息,该人手信息包括:人手形状信息和人手位置信息。所述根据所述视频图像获取所述视频图像中的人脸位置信息和人手信息的步骤,包括:
1、确定人脸位置。
在本发明实施例中,进行人机交互的终端首先确定人脸的位置。进行人机交互的目标人的位置很少发生移动,因此人脸可能的移动范围也比较有限,而且人脸的特征比较明显,人脸内部各个部位的配置比较固定,因此只要目标人在视场内,则人脸一般都是可见的,且容易确定目标人的人脸位置。
2、根据所述人脸位置确定人手的可移动区域。
在本发明实施例中,进行人机交互的终端根据人脸的位置、人体结构和人体工学原理,通过计算确定人手的最大的可移动区域,在本帧图像的后续的步骤中,终端只会在该可移动区域检测人手的位置和形状。根据人脸位置确定人手的可移动区域的方法使用现有技术,在此不做赘述。
3、在所述可移动区域获取所述人手信息。
在本发明实施例中,进行人机交互的终端在上步骤中确定的可移动区域通过检测,获取人手位置信息和人手形状信息。所述在所述可移动区域获取所述人手信息的步骤包括:
a、预设第一时间阀值Ns,第二时间阀值Nns,所述第一时间阀值Ns小于第二时间阀值Nns;
b、判断当前图像帧是否需要进行全局检测,所述全局检测为:在所述可移动区域内检测人手的位置和人手的所有形状;
c、当需要进行全局检测时,判断是否需要进行基于肤色信息的全局检测;
在本发明实施例中,判断是否进行全局检测的依据是,当前图像帧距离上一次进行“局部检测”的时间是否大于所述第一时间阀值Ns,如果大于,则当前图像帧需要进行全局检测,所述第一时间阀值Ns和第二时间阀值Nns可以通过处理的图像帧的数量来度量。
d、如果判断不需要进行基于肤色信息的全局检测,则在所述可移动区域对预定义的人手形状进行检测获取所述人手信息;或者,
如果判断需要进行基于肤色信息的全局检测,则在所述可移动区域进行肤色分析,获取包含肤色信息的区域,在所述包含肤色信息的区域对预定义的人手形状进行检测获取所述人手信息。
在本发明实施例中,需要进行基于肤色信息的全局检测的条件是:
1、如果当前图像帧距离上一次不基于肤色信息的全局检测的时间大于第二时间阀值Nns,则当前图像帧使用不基于肤色信息的全局检测;或者,
2、如果当前图像帧跟踪的人手发生永久丢失,则当前图像帧使用不基于肤色信息的全局检测。
在步骤S103中,通过跟踪所述人手信息判断是否形成预定义静止手势,如果判断形成所述预定义的静止手势,则根据所述人脸信息和所述人手信息,生成人脸和人手的位置关系。
在本发明实施例中,进行人机交互的终端通过跟踪人手信息判断是否形成了预定义的某种静止手势,如果判断形成静止手势时,则根据所述人脸信息和所述人手信息,生成人脸和人手的位置关系。形成静止手势的条件包括:1、在一定数量的图像帧内,目标人手的位置不发生空间位置上的变化;2、在一定数量的图像帧内,目标人手保持固定的形状不变。
所示跟踪人手信息的过程即为局部检测,所述局部检测为:根据最近一次人手信息推断当前图像帧中人手允许出现的区域,在所述区域内使用滑动窗口方法对目标人手进行检测,获取人手信息。需要注意的是,这里根据最近一次人手信息来确定当前待检测人手形状,因此局部检测仅仅需要检测一种人手形状,而不像全局检测需要检测所有的人手形状;而且,需要检测的是静止手势,假定目标人手不会发生空间位置上的移动和人手形状的改变,因此,区域是包含最近人手信息的人手区域的一个较小领域。这样局部检测只针对一种人手形状,在一个较小的区域内,使用与原有人手尺寸近似的数个窗口尺寸来做滑动窗口检测,因此检测速度很快。局部检测的示意图如图2所示。
判断是否形成预定义的静止手势可以通过以下公式计算获得:
假设生成预定义的静止手势所使用的图像帧的数量为N,在第t图像帧,通过验证以下公式是否发生,来判断是否生成预定义的静止手势:
(a)、AccD(t)-AccD(t-N)>θ1N,θ1∈(0,1);
(b)、maxi{AccD(i,t)-AccD(i,t-N)}>θ2N,θ2∈(0,1);
(c)、# α∈(0,1),β∈(0,1]
其中N,θ1,θ2,α,β都是预定义的参数,
N受算法速度和视频采集速度的影响,算法越快,视频捕获的帧率越高,则N的取值也越大;
是最近N帧检测结果的均值位置,可通过公式 来实现快速计算;
AccP(t)、AccD(t)、AccD(k,t)、1≤k≤M(M代表所用的人手形状数目),其中代表所检测到的人手累积位置,代表截止目前共计在多少帧图像中检测到目标人手,代表截止目前总共在多少帧图像中检测到第k种手势。这里和分别代表第i帧中手部矩形区域的左上角坐标和右下角坐标,E(i)代表第i帧图像中是否存在(检测或跟踪到)目标人手,若存在则E(i)=1,否则,E(i)=0,Loc(i)=(0,0,0,0);p(i)∈{0,1,…,M}代表第i帧的手形类别,若E(i)=0,则有p(i)=0。这些积分量的更新公式为AccP(t)=AccP(t-1)+Loc(t),AccD(t)=AccD(t-1)+E(t),AccD(i,t)=AccD(i,t-1)+(p(t)==i)。如果手势识别中所需要的最大序列长度为N,则只需要存储最近N帧对应的积分量,在实现过程中用循环队列来存储这些积分量可充分节省存储空间。
上面两条先检验条件(a),若(a)成立再检验条件(b),若条件(a)和条件(b)都成立,再检验条件(c),当三项条件都满足时,说明静止手势发生,接着结合人脸人手相对位置和N帧中占比例最大的手形来进行手势识别。
在步骤S104中,根据所述位置关系生成交互手势。
在本发明实施例中,根据以上步骤中生成的位置关系可以生成交互手势。交互手势的示意图如图3所示。
在步骤S105中,根据所述交互手势获取对应的人机交互命令。
在本发明实施例中,进行人机交互的终端在获取了交互手势之后,根据预设的交互手势和人机交互命令的对应关系,获取人机交互命令。
本发明实施例,获取人脸位置信息和人手信息,生成人脸位置信息与人手信息的相对位置信息,进而生成交互手势,并通过交互手势获取对应的人机交互命令,由于人脸位置相对固定使得获取人机交互命令的方法简单方便,又由于人脸与人手的相对位置信息,可以生成多种人机交互命令,因此本方法不仅获取人机交互命令的方法简单方便,而且可方便获取多种不同的人机交互命令。
作为本发明的一个可选实施例,在所述根据所述视频图像获取所述视频图像中的人脸位置信息和人手信息的步骤之前,所述方法还包括以下步骤:
获取肤色信息,建立在线肤色模型。在本发明实施例中,进行人机交互的终端通过在上一次检测到目标人静止手势时,获取肤色信息,建立肤色模型。所述建立肤色模型的方法,具体为:
用若干个立方体区域界定肤色在RGB空间内的聚居区域,称为肤色模型F1,并建立肤色像素在CbCr空间的混合高斯分布,称为模型F2,在肤色检测时候,先使用F1排除大部分背景像素,对被分类为肤色的像素点,进一步使用F2来分类。通过检测各个像素点是否为肤色点,可以生成一幅肤色掩膜图像,然后使用联通区域分析办法获得若干个肤色区域,使得后续基于肤色信息的全局检测时只在最大的若干个肤色区域进行人手信息检测。
实施例二
如图4所示为本发明实施例提供的人机交互命令获取系统的结构图,为了便于说明,仅示出与本发明实施例相关的部分,包括:
视频图像获取单元401,用于获取视频图像。
在本发明实施例中,视频图像获取单元401可以通过摄像头等视频图像获取设备获取视频图像。
信息获取单元402,用于根据所述视频图像获取单元401获取的视频图像获取所述视频图像中的人脸位置信息和人手信息,所述人手信息包括:人手形状信息和人手位置信息。
在本发明实施例中,信息获取单元402在获取了视频图像之后,对该视频图像进行分析,通过对该视频图像的分析获取该视频图像中的人脸位置信息和人手信息,该人手信息包括:人手形状信息和人手位置信息。所述信息获取单元402包括:
人脸位置确定子单元4021,用于确定人脸位置。
在本发明实施例中,人脸位置确定子单元4021首先确定人脸的位置。进行人机交互的目标人的位置很少发生移动,因此人脸可能的移动范围也比较有限,而且人脸的特征比较明显,人脸内部各个部位的配置比较固定,因此只要目标人在视场内,则人脸一般都是可见的,且容易确定目标人的人脸位置。
可移动区域确定子单元4022,用于根据所述人脸位置确定子单元4021确定的人脸位置确定人手的可移动区域。
在本发明实施例中,进行人机交互的终端根据人脸的位置、人体结构和人体工学原理,通过计算确定人手的最大的可移动区域,在后续的步骤中,终端只会在该可移动区域检测人手的位置和形状。根据人脸位置确定人手的可移动区域的方法使用现有技术,在此不做赘述。
人手信息获取子单元4023,用于在所述可移动区域确定子单元4022确定的可移动区域获取所述人手信息。
在本发明实施例中,进行人机交互的终端在上步骤中确定的可移动区域通过检测,获取人手位置信息和人手形状信息。所述人手信息获取子单元4023获取所述人手信息的步骤包括:
a、预设第一时间阀值Ns,第二时间阀值Nns,所述第一时间阀值Ns小于第二时间阀值Nns;
b、判断当前图像帧是否需要进行全局检测,所述全局检测为:在所述可移动区域内检测人手的位置和人手的所有形状;
c、当需要进行全局检测时,判断是否需要进行基于肤色信息的全局检测;
在本发明实施例中,判断是否进行全局检测的依据是,当前图像帧距离上一次进行“局部检测”的时间是否大于所述第一时间阀值Ns,如果大于,则当前图像帧需要进行全局检测,所述第一时间阀值Ns和第二时间阀值Nns可以通过处理的图像帧的数量来度量。
d、如果判断不需要进行基于肤色信息的全局检测,则在所述可移动区域内对预定义的人手形状进行检测获取所述人手信息;或者,
如果判断需要进行基于肤色信息的全局检测,则在所述可移动区域内进行肤色分析,获取包含肤色信息的区域,在所述包含肤色信息的区域内对预定义的人手形状进行检测获取所述人手信息。
在本发明实施例中,需要进行基于肤色信息的全局检测的条件是:
1、如果当前图像帧距离上一次不基于肤色信息的全局检测的时间大于第二时间阀值Nns,则当前图像帧使用不基于肤色信息的全局检测;
2、如果当前图像帧跟踪的人手发生永久丢失,则当前图像帧使用不基于肤色信息的全局检测。
位置关系生成单元403,用于通过跟踪所述信息获取单元402获取的人手信息判断是否形成预定义的静止手势,如果判断形成所述预定义的静止手势,则根据所述人脸信息和所述人手信息,生成人脸和人手的位置关系。
在本发明实施例中,进行人机交互的终端通过跟踪人手信息判断是否形成了预定义静止手势,如果判断形成静止手势时,则根据所述人脸信息和所述人手信息,生成人脸和人手的位置关系。形成预定义静止手势的条件包括:1、在一定数量的图像帧内,目标人手的位置不发生空间位置上的变化;2、在一定数量的图像帧内,目标人手保持固定的形状不变。
所示跟踪人手信息的过程即为局部检测,所述局部检测为:根据最近一次人手信息推断当前图像帧中人手允许出现的区域,在所述区域内使用滑动窗口方法对目标人手进行检测,获取人手信息。需要注意的是,这里根据最近一次人手信息来确定当前图像帧人手形状,因此局部检测仅仅需要检测一种人手形状,而不像全局检测需要检测所有的人手形状;而且,需要检测的是静止人手形状,目标人手不会出现空间位置上的大的移动和人手形状的改变,因此,区域是包含最近人手信息的人手区域的一个较小领域。这样局部检测只针对一种人手形状,在一个较小的区域内,使用与原有人手尺寸近似的数个窗口尺寸来做滑动窗口检测,因此检测速度很快。
位置关系生成单元403通过以下公式判断是否生成预定义的静止手势:
假设生成静止人手形状所使用的图像帧的数量为N,在第t图像帧,通过验证以下公式是否满足,来判断是否有静止手势发生:
(a)AccD(t)-AccD(t-N)>θ1N,θ1∈(0,1);
(b)maxi{AccD(i,t)-AccD(i,t-N)}>θ2N,θ2∈(0,1);
(c)# α∈(0,1),β∈(0,1]
其中N,θ1,θ2,α,β都是预定义的参数,
N受算法速度和视频采集速度的影响,算法越快,视频捕获的帧率越高,则N的取值也越大;
是最近N帧检测结果的均值位置,可通过公式 来实现快速计算;
AccP(t)、AccD(t)、AccD(k,t)、1≤k≤M(M代表所用的人手形状数目),其中代表所检测到的人手累积位置,代表截止目前共计在多少帧图像中检测到目标人手,代表截止目前总共在多少帧图像中检测到第k种手势。这里和分别代表第i帧中手部矩形区域的左上角坐标和右下角坐标,E(i)代表第i帧图像中是否存在(检测或跟踪到)目标人手,若存在则E(i)=1,否则,E(i)=0,Loc(i)=(0,0,0,0);p(i)∈{0,1,...,M}代表第i帧的手形类别,若E(i)=0,则有p(i)=0。这些积分量的更新公式为AccP(t)=AccP(t-1)+Loc(t),AccD(t)=AccD(t-1)+E(t),AccD(i,t)=AccD(i,t-1)+(p(t)==i)。如果手势识别中所需要的最大序列长度为N,则只需要存储最近N帧对应的积分量,在实现过程中用循环队列来存储这些积分量可充分节省存储空间。
上面两条先检验条件(a),若(a)成立再检验条件(b),若条件(a)和条件(b)都成立,则检验条件(c),当三项条件都满足时,说明静止人手发生,接着结合人脸人手相对位置和N帧中占比例最大的手形来进行手势识别。
交互手势获取单元404,用于根据所述位置关系生成单元403生成的位置关系生成交互手势。
在本发明实施例中,根据以上步骤中生成的位置关系可以生成交互手势。交互手势的示意图如图3所示。
人机交互命令获取单元405,用于根据所述交互手势获取单元404获取的交互手势获取对应的人机交互命令。
在本发明实施例中,进行人机交互的终端在获取了交互手势之后,根据预设的交互手势和人机交互命令的对应关系,获取人机交互命令。
本发明实施例,获取人脸位置信息和人手信息,生成固定的人脸位置信息与人手信息的相对位置信息,进而生成交互手势,并通过交互手势获取对应的人机交互命令,由于人脸位置相对固定使得获取人机交互命令的方法简单方便,又由于人脸与人手的相对位置信息,可以生成多种人机交互命令,因此本方法不仅获取人机交互命令的方法简单方便,而且可方便获取多种不同的人机交互命令。
作为本发明的一个可选实施例,在所述信息获取单元402获取所述视频图像中的人脸位置信息和人手信息,所述系统还包括:
肤色建模单元406,用于获取肤色信息,建立在线肤色模型。
在本发明实施例中,进行人机交互的终端通过在上一次形成静止手势时,获取肤色信息并建立肤色模型。所述肤色建模单元406建立肤色模型的方法,具体为:
用若干个立方体区域界定肤色在RGB空间内的聚居区域,称为肤色模型F1,并建立肤色像素在CbCr空间的混合高斯分布,称为模型F2,在肤色检测时候,先使用F1排除大部分背景像素,对被分类为肤色的像素点,进一步使用F2来分类。通过检测各个像素点是否为肤色点,可以生成一幅肤色掩膜图像,然后使用联通区域分析办法获得若干个肤色区域,使得后续基于肤色信息的全局检测时只在最大的若干个肤色区域进行人手信息检测。
所属领域的技术人员可以清楚地了解到,为描述的方便和简洁,仅以上述各功能单元、模块的划分进行举例说明,实际应用中,可以根据需要而将上述功能分配由不同的功能单元、模块完成,即所述系统的内部结构划分成不同的功能单元或模块,以完成以上描述的全部或者部分功能。实施例中的各功能单元或模块可以集成在一个处理单元中,也可以是各个单元单独物理存在,也可以两个或两个以上单元集成在一个单元中,上述集成的单元或模块既可以采用硬件的形式实现,也可以采用软件功能单元的形式实现。另外,各功能单元、模块的具体名称也只是为了便于相互区分,并不用于限制本申请的保护范围。上述系统中单元、模块的具体工作过程,可以参考前述方法实施例中的对应过程,在此不再赘述。
所述集成的单元如果以软件功能单元的形式实现并作为独立的产品销售或使用时,可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分或者该技术方案的全部或部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机,服务器,或者网络设备等)或处理器(processor)执行本发明实施例各个实施例所述方法的全部或部分步骤。而前述的存储介质包括:U盘、移动硬盘、只读存储器(ROM,Read-Only Memory)、随机存取存储器(RAM,Random AccessMemory)、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述实施例仅用以说明本发明的技术方案,而非对其限制;尽管参照前述实施例对本发明进行了详细的说明,本领域的普通技术人员应当理解:其依然可以对前述各实施例所记载的技术方案进行修改,或者对其中部分技术特征进行等同替换;而这些修改或者替换,并不使相应技术方案的本质脱离本发明实施例各实施例技术方案的精神和范围。