一种基于动态手势的VR交互方法、装置及电子设备
技术领域
本发明涉及虚拟现实领域,特别是涉及一种基于动态手势的VR交互方法、装置及电子设备。
背景技术
VR(Virtual Reality,虚拟现实)技术是利用电脑技术模拟产生一个三维空间的虚拟世界,提供使用者关于视觉、听觉、触觉等感官的模拟,让使用者如同身临其境一般,可以及时、没有限制地观察三维空间内的事物。
其中,VR技术中的人机交互指以有效的方式实现人与计算机输入、输出设备产生的虚拟世界实现对话的技术。具体的,VR技术中的人机交互的交互形式包括但不局限于外设、语音、动态手势等形式。
传统的基于指向和单击构成的动态手势的VR交互方法(即VR技术中的人机交互)中,在识别动态手势时,为了判断出每个手势的起点和终点,需要通过对视频帧重复分析来寻找动态手势的全过程,例如,现有技术中,对于包含动态手势的视频序列进行动态手势的识别的过程中,通过以选取的帧窗口来对帧窗口大小数量的视频帧进行分析,当一个包含动态手势的视频帧在第5帧为动态手势的开始时刻,第15帧为动态手势的结束时刻,整个视频序列为25帧,帧窗口大小为20时,对帧的分析的过程依次可以为1-20帧、2-21帧、3-22帧、4-25帧进行识别,在识别过程中包含部分动态手势的帧的过程都可以识别到动态手势,但是不能确定到在哪一帧进行动态手势的触发,同样的,也不能确定动态手势的结束时刻,从而需要对视频帧重复分析。
因此,现有技术中,在识别动态手势中不能快速地且精准地确定出动态手势开始时刻的视频帧和结束时刻的视频帧,最终导致VR交互的响应速度和精准度较低。
发明内容
本发明实施例的目的在于提供一种基于动态手势的VR交互方法、装置及电子设备,以提高VR交互的响应速度和精准度。具体技术方案如下:
为达到上述目的,本发明实施例提供了一种基于动态手势的VR交互方法,所述方法包括:
持续获取由VR设备采集的双目视频帧;
从所获取的各个双目视频帧的第一目视频帧中提取手型区域,所述第一目视频帧为:左目视频帧或右目视频帧;
识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,所述静态手势的识别结果包括:指向或单击;
当所得到的各个静态手势识别结果中包括单击和指向两类结果时,确定发生单击和指向的动态手势,并执行与所述动态手势对应的响应操作。
在本发明实施例提供的一种实现方式中,所述执行与所述动态手势对应的响应操作的步骤,包括:
确定目标手型区域中的食指区域,其中,所述目标手型区域为:所述各个手型区域中,所对应静态手势识别结果为指向的一个手型区域;
根据所述食指区域,确定食指的指向直线;
将所述指向直线与所述VR设备的显示区域的交点作为所述动态手势对应的交互点;
在所述交互点上响应单击操作。
在本发明实施例提供的一种实现方式中,其特征在于,所述从所获取的各个双目视频帧的第一目视频帧中提取手型区域的步骤,包括:
针对所获取的每个双目视频帧的第一目视频帧,对该第一目视频帧进行灰度化转换,并对灰度化转换后的图像通过阈值分割的方式进行二值化处理,得到二值化处理的图像;
提取所得到的各个二值化处理的图像中的手型区域。
在本发明实施例提供的一种实现方式中,所述识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果的步骤,包括:
提取各个手型区域的方向梯度直方图HOG特征;
将各个手型区域的方向梯度直方图HOG特征分别输入预先训练的支持向量机SVM模型,得到各个手型区域所对应的静态手势识别结果,其中,所述支持向量机SVM模型以包含指向或单击的静态手势的样本视频帧的方向梯度直方图HOG特征作为输入内容,以所述样本视频帧所包含的单击或指向的静态手势作为输出内容训练所得。
在本发明实施例提供的一种实现方式中,所述确定目标手型区域中的食指区域的步骤,包括:
以手型区域外包矩形的边为坐标轴进行Y轴上的手型区域的直方图投影,通过对投影的直方图进行阈值处得到手型的食指区域,所述Y轴为沿手指的高度方向。
在本发明实施例提供的一种实现方式中,所述根据所述食指区域,确定食指的指向直线的步骤,包括:
对所述食指区域和目标视频帧进行立体匹配,得到所述食指区域中的每个像素点的三维坐标数据,其中,所述目标视频帧为目标双目视频帧中的另一目视频帧,所述目标双目视频帧为包含所述食指区域所在第一目视频帧的双目视频帧;
将所述食指区域中的每个像素点的三维坐标数据进行线性拟合,得到食指的指向直线。
在本发明实施例提供的一种实现方式中,所述对所述食指区域和目标视频帧进行立体匹配,得到所述食指区域中的每个像素点的三维坐标数据的步骤,包括:
对所述食指区域和目标视频帧中与所述食指区域对应的目标区域的像素进行先验像素级别的立体匹配,得到第一视差值;
根据所述第一视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
在本发明实施例提供的一种实现方式中,所述根据所述第一视差和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据的步骤,包括:
将所述食指区域和目标视频帧扩大预定倍数;
在扩大预定倍数后,以所述第一视差值为基础,对当前食指区域和当前目标视频帧中与所述食指区域对应的目标区域的像素点进行亚像素级别的立体匹配,得到第二视差值;
根据所述第二视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
本发明实施例还提供了一种基于动态手势的VR交互装置,包括:
获取模块,用于持续获取由VR设备采集的双目视频帧;
提取模块,用于从所获取的各个双目视频帧的第一目视频帧中提取手型区域,所述第一目视频帧为:左目视频帧或右目视频帧;
识别模块,识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,所述静态手势的识别结果包括:指向或单击;
确定模块,用于当所得到的各个静态手势识别结果中包括单击和指向两类结果时,确定发生单击和指向的动态手势,并触发执行模块;
所述执行模块,用于执行与所述动态手势对应的响应操作。
在本发明实施例提供的一种实现方式中,所述执行模块,包括:
第一确定子模块,用于确定目标手型区域中的食指区域,其中,所述目标手型区域为:所述各个手型区域中,所对应静态手势识别结果为指向的一个手型区域;
第二确定子模块,用于根据所述食指区域,确定食指的指向直线;
第三确定子模块,用于将所述指向直线与所述VR设备的显示区域的交点作为所述动态手势对应的交互点;
响应子模块,用于在所述交互点上响应单击操作。
在本发明实施例提供的一种实现方式中,所述提取模块,包括:
第四确定子模块,用于针对所获取的每个双目视频帧的第一目视频帧,对该第一目视频帧进行灰度化转换,并对灰度化转换后的图像通过阈值分割的方式进行二值化处理,得到二值化处理的图像;
第一提取子模块,用于提取所得到的各个二值化处理的图像中的手型区域。
在本发明实施例提供的一种实现方式中,所述识别模块,包括:
特征提取子模块,用于提取各个手型区域的方向梯度直方图HOG特征;
第五确定子模块,用于将各个手型区域的方向梯度直方图HOG特征分别输入预先训练的支持向量机SVM模型,得到各个手型区域所对应的静态手势识别结果,其中,所述支持向量机SVM模型以包含指向或单击的静态手势的样本视频帧的方向梯度直方图HOG特征作为输入内容,以所述样本视频帧所包含的单击或指向的静态手势作为输出内容训练所得。
在本发明实施例提供的一种实现方式中,所述第一确定子模块,包括:
第一确定单元,用于以手型区域外包矩形的边为坐标轴进行Y轴上的手型区域的直方图投影,通过对投影的直方图进行阈值处得到手型的食指区域,所述Y轴为沿手指的高度方向。
在本发明实施例提供的一种实现方式中,所述第二确定子模块,包括:
第二确定单元,用于对所述食指区域和目标视频帧进行立体匹配,得到所述食指区域中的每个像素点的三维坐标数据,其中,所述目标视频帧为目标双目视频帧中的另一目视频帧,所述目标双目视频帧为包含所述食指区域所在第一目视频帧的双目视频帧;
第三确定单元,用于将所述食指区域中的每个像素点的三维坐标数据进行线性拟合,得到食指的指向直线。
在本发明实施例提供的一种实现方式中,所述第二确定单元,包括:
第一确定子单元,用于对所述食指区域和目标视频帧中与所述食指区域对应的目标区域的像素进行先验像素级别的立体匹配,得到第一视差值;
第二确定子单元,用于根据所述第一视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
在本发明实施例提供的一种实现方式中,所述第二确定子单元,具体用于:
将所述食指区域和目标视频帧扩大预定倍数;
在扩大预定倍数后,以所述第一视差值为基础,对当前食指区域和当前目标视频帧中与所述食指区域对应的目标区域的像素点进行亚像素级别的立体匹配,得到第二视差值;
根据所述第二视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
本发明实施例还提供了一种电子设备,包括处理器、通信接口、存储器和通信总线,其中,处理器,通信接口,存储器通过通信总线完成相互间的通信;
存储器,用于存放计算机程序;
处理器,用于执行存储器上所存放的程序时,实现权利要求1-8任一所述的方法步骤。在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的一种基于动态手势的VR交互方法。
在本发明实施的又一方面,还提供了一种计算机可读存储介质,所述计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述任一所述的一种基于动态手势的VR交互方法。
在本发明实施的又一方面,本发明实施例还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述任一所述的一种基于动态手势的VR交互方法。
本发明实施例中,持续获取由VR设备采集的双目视频帧;从所获取的各个双目视频帧的第一目视频帧中提取手型区域,所述第一目视频帧为:左目视频帧或右目视频帧;识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,所述静态手势的识别结果包括:指向或单击;当所得到的各个静态手势识别结果中包括单击和指向两类结果时,确定发生单击和指向的动态手势,并执行与所述动态手势对应的响应操作。本发明实施例所提供方案在寻找动态手势时,可以有效减小对视频帧的重复分析,且采用手型区域对应的静态手势识别结果来判定动态手势的方式,从而提高VR交互的响应速度和精准度。当然,实施本发明的任一产品或方法必不一定需要同时达到以上所述的所有优点。
附图说明
为了更清楚地说明本发明实施例或现有技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍。
图1为本发明实施例提供的基于动态手势的VR交互方法的流程图;
图2为本发明实施例提供的从所获取的各个双目视频帧的第一目视频帧中提取手型区域的具体实现方式的流程图;
图3为本发明实施例提供的执行与所述动态手势对应的响应操作过程的流程图;
图4为本发明实施例提供的识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果的具体实现方式的流程图;
图5为本发明实施例提供的根据所述食指区域,确定食指的指向直线的具体实现方式的流程图;
图6为本发明实施例提供的食指区域和目标视频帧进行立体匹配,得到所述食指区域中的每个像素点的三维坐标数据的具体实现方式的流程图;
图7为本发明实施例提供的根据所述第一视差和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据的具体实现方式的流程图;
图8为本发明实施例提供的基于动态手势的VR交互装置的结构示意图;
图9为本发明实施例提供的执行模块的结构示意图;
图10为本发明实施例提供的提取模块的结构示意图;
图11为本发明实施例提供的识别模块的结构示意图;
图12为本发明实施例提供的第二确定子模块的结构示意图;
图13为本发明实施例提供的第二确定单元的结构示意图;
图14为本发明实施例提供的电子设备的结构示意图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行描述。
下面首先对本发明实施例提供的一种基于动态手势的VR交互方法进行介绍。
需要说明的是,本发明实施例所提供的一种基于动态手势的VR交互方法的执行主体可以为一种基于动态手势的VR交互装置。其中,该基于动态手势的VR交互装置可以为运行于VR设备中的功能软件。如图1所示,本发明实施例所提供的一种基于动态手势的VR交互方法,可以包括如下步骤:
S101,持续获取由VR设备采集的双目视频帧。
由于用户发出动态手势的时刻不确定,因此,为了实现VR交互,可以持续获取由VR设备采集的双目视频帧,其中,双目视频帧包括:左目视频帧和右目视频帧。
可以理解的是,VR设备采集的双目视频帧是由双目摄像头所采集的,其中,左目摄像头采集左目视频帧,右目摄像头采集右目视频帧。
需要说明的是,在具体应用中,VR设备所采集的左目视频帧和右目视频帧可以均为NIR(近红外光谱)图像。
S102,从所获取的各个双目视频帧的第一目视频帧中提取手型区域,所述第一目视频帧为:左目视频帧或右目视频帧。
由于单击和指向的动态手势是涉及到手部的动作,因此,可以对所获取的各个双目视频帧的第一目视频帧执行提取手型区域的处理,并当前提取到的手型区域时,对提取到的手型区域执行进一步的处理。
需要说明的是,各个双目视频帧中的第一目视频帧的类型相同,即各个双目视频帧中的第一目视频帧可以均为左目视频帧,也可以同时为右目视频帧。
本发明实施例提供的具体实现方式中,对彩色图像的灰度化转换可以通过以下任一方式实现:
方式一:分量法,将彩色图像的每一个像素对应的R、G、B三个分量中的任何一个分量作为灰度图像的灰度值;
方式二:最大值法,将彩色图像中的每一个像素对应的R、G、B三个分量亮度的最大值作为灰度图像的灰度值;
方式三:平均值法,将彩色图像中的每一个像素对应的R、G、B三个分量的平均值作为灰度图像的灰度值;
方式四:加权平均法,将彩色图像中的每一个像素对应的R、G、B三个分量以不同的权值进行加权平均值作为灰度图像的灰度值。
本发明实施例提供的具体实现方式中,灰度化转换后的图像通过阈值分割的方式进行二值化处理,得到二值化处理的图像可以为:
对原始图像作中低通滤波,进行图像的预处理,降低或去除噪声;
通过双峰法、P参数法、最大熵阈值法或迭代法确定最佳的阈值T;
在灰度图像中像素的灰度值大于阈值T的像素值设置为225,小于阈值T的像素值设置为0,从而得到二值化处理的图像,其中,像素值为225为黑色,像素值为0为白色。
可以理解的是,彩色图像中的每个像素的颜色有R、G、B三个分量决定,而每个分量有255个中值可取,这样一个像素点可以有1600多万(255*255*255)的颜色的变化范围。灰度图像是R、G、B三个分量相同的一种特殊的彩色图像,其中一个像素点的变化范围为255种,灰度图像的描述与彩色图像一样仍然反映了整幅图像的整体和局部的色度和亮度等级的分布和特征。在数字图像处理中先将各种格式的图像转变成灰度图像进行处理,能够减少图像的计算量。
需要强调的是,上述所给出的从所获取的各个双目视频帧的第一目视频帧中提取手型区域的步骤的具体实现方式仅仅作为示例,并不应该构成对本发明实施例的限定。
S103,识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,所述静态手势的识别结果包括:指向或单击。
由于单击和指向的动态手势是由单击的静态手势和指向的静态手势构成,因此,为了确定出是否发生单击和指向的动态手势,可以识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,进而根据静态手势识别结果确定是否发生单击和指向的动态手势。
S104,当所得到的各个静态手势识别结果中包括单击和指向两类结果时,确定发生单击和指向的动态手势,并执行与所述动态手势对应的响应操作。
由于单击和指向的动态手势是由单击的静态手势和指向的静态手势构成,因此,可以判断所得到的各个静态手势识别结果中是否包括单击和指向两类结果。当判断结果为是时,表明发生单击和指向的动态手势,此时,可以执行与所述动态手势对应的响应操作。
本发明实施例提供的一种基于动态手势的VR交互方法中,通过持续获取由VR设备采集的双目视频帧;从所获取的各个双目视频帧的第一目视频帧中提取手型区域,所述第一目视频帧为:左目视频帧或右目视频帧;识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,所述静态手势的识别结果包括:指向或单击;当所得到的各个静态手势识别结果中包括单击和指向两类结果时,确定发生单击和指向的动态手势,并执行与所述动态手势对应的响应操作。本发明实施例所提供方案在寻找动态手势时,可以有效减小对视频帧的重复分析,且采用手型区域对应的静态手势识别结果来判定动态手势的方式,从而提高VR交互的响应速度和精准度。
为了得到较理想的手型区域,本发明提供了一种具体实现方式,如图2所示,步骤S102可以具体包括:
S1021、针对所获取的每个双目视频帧的第一目视频帧,对该第一目视频帧进行灰度化转换,并对灰度化转换后的图像通过阈值分割的方式进行二值化处理,得到二值化处理的图像;
S1022、提取所得到的各个二值化处理的图像中的手型区域。
其中,灰度化转换为将彩色图像转换为灰度图像的过程,二值化处理为将灰度图像转换为黑白二值图像的过程。可以理解的是,各个二值化处理的图像中仅仅存在黑白两类像素点,因此,可以基于黑白两类像素点所构成的区域形状来提取手型区域。
上述的方案通过对图像进行灰度化转换、二值化的预处理,能将手型区域从背景中提取出来,得到较理想的手型区域。
作为图1方法的细化,在本发明提供的一种具体实现方式中,如图3所示,步骤S103可以具体包括步骤S1031-步骤S1032:
S1031,提取各个手型区域的HOG(Histogram of Oriented Gradient,方向梯度直方图)特征;
S1032,将各个手型区域的方向梯度直方图HOG特征分别输入预先训练的SVM(support vector machine,支持向量机)模型,得到各个手型区域所对应的静态手势识别结果,其中,所述支持向量机SVM模型以包含指向或单击的静态手势的样本视频帧的方向梯度直方图HOG特征作为输入内容,以所述样本视频帧所包含的单击或指向的静态手势作为输出内容训练所得。
在本发明提供的一种具体实施方式中,包含指向或单击的静态手势的样本视频帧的方向梯度直方图HOG特征的获取过程为:
将包含指向或单击的静态手势的样本视频帧灰度化处理;采用显示器参数Gamma矫正法对灰度化后的图像归一化;计算图像每一个像素的梯度;将灰度图像划分为小的细胞单元,并统计每个细胞单元的梯度直方图;将每几个细胞单元组成一个块,一个块内所有细胞单元的特征穿起来便得到该块的HOG的特征,将图像中所有的块的HOG穿起来得到该包含指向或单击的静态手势的样本视频帧的方向梯度直方图HOG特征。
具体的,在本发明提供的一种具体实施方式中,支持向量机SVM模型的训练过程为:
将针对包含指向或单击的静态手势的样本视频帧的方向梯度直方图HOG特征和负样本的手势投入到SVM分类器中进行训练,得到支持向量机SVM模型。
其中,负样本手势为除去指向和单击的任何静态手势。
上述的方案进行静态手势的识别过程,通过HOG特征和SVM分类提高了静态手势识别的效率和准确率。
为了提高动态手势交互的响应速度,本发明提供的一种具体实现方式,如图4所示,步骤S104中的所述执行与所述动态手势对应的响应操作的步骤可以具体包括步骤S100-步骤S400:
S100,确定目标手型区域中的食指区域,其中,所述目标手型区域为:所述各个手型区域中,所对应静态手势识别结果为指向的一个手型区域;
需要说明的是,在确定手指的指向直线时,只是通过从目标手型区域中识别出食指区域,通过对食指区域的处理确定指向直线,而没有对全部手型区域处理,从而能够减少计算量,提高效率。
S200,根据所述食指区域,确定食指的指向直线;
其中,食指区域为包含食指的指尖到食指的指根之间的区域,由于食指区域是双目视频帧中的左目视频帧或右目视频帧中得到的,食指区域只是一个二维的区域,但食指的指向直线是由三维坐标所确定的,需要通过立体匹配算法进行立体匹配的到指向直线的三维数据。
S300,将所述指向直线与所述VR设备的显示区域的交点作为所述动态手势对应的交互点。
由于指向和单击的动态手势的目的是点击某一个点,因此,在确定出指向直线后,可以将所述指向直线与所述VR设备的显示区域的交点作为所述动态手势对应的交互点。
S400,在所述交互点上响应单击操作。
其中,该交互点上响应单击操作后的具体显示内容,本发明实施例不做限定。
通过上述的步骤S100-步骤S400可以完成与所述动态手势对应的响应操作。
在一种具体的实现方式中,通过确定目标手型区域中的食指区域,其中,所述目标手型区域为:所述各个手型区域中,所对应静态手势识别结果为指向的一个手型区域;根据所述食指区域,确定食指的指向直线;将所述指向直线与所述VR设备的显示区域的交点作为所述动态手势对应的交互点;在所述交互点上响应单击操作。在一种具体的实现方式中,通过只对食指区域进行立体匹配,提高了立体匹配的效率,从而提高了动态手势识别的响应速度。
为了能够准确的提取食指区域,本发明提供了的一种具体实现方中,步骤S100可以具体包括:
以手型区域外包矩形的边为坐标轴进行Y轴上的手型区域的直方图投影,通过对投影的直方图进行阈值处得到手型的食指区域,所述Y轴为沿手指的高度方向。
具体地,在Y轴上的手型区域的直方图的投影用于确定在对应的Y轴高度的手型区域中像素的个数,根据手型区域中像素的个数可以确定手型区域的食指区域的直方图的阈值,从而能够确定食指区域。
需要进一步说明的是,在食指区域的指尖的位置为开始存在像素点的位置,在指根的位置为像素点的个数明显小于手掌区域的像素点的个数,从能够确定投影直方图的阈值,进而得到食指区域。
通过上述的方案,能够准确快速的确定食指区域,并且,只对食指区域进行数据处理,提高了动态手势识别的效率。
为了提高匹配的精度,本发明提供了一种具体的实现方式,如图5所示,步骤S200可以具体包括步骤S210-步骤S220:
S210、对所述食指区域和目标视频帧进行立体匹配,得到所述食指区域中的每个像素点的三维坐标数据,其中,所述目标视频帧为目标双目视频帧中的另一目视频帧,所述目标双目视频帧为包含所述食指区域所在第一目视频帧的双目视频帧;
可以理解的是,当第一目视频帧为左目视频帧时,该目标视频帧则为右目视频帧;而当第一目视频帧为右目视频帧时,该目标视频帧为左目视频帧。
S220、将所述食指区域中的每个像素点的三维坐标数据进行线性拟合,得到食指的指向直线。
其中线性拟合的具体实现方式可以采用现有技术实现,在此不做限定。
为了提高立体匹配的算法的效率,在本发明提供的又一种具体的实现方式中,如图6所示,步骤S210可以具体包括步骤S211-步骤S212:
S211、对所述食指区域和目标视频帧中与所述食指区域对应的目标区域的像素进行先验像素级别的立体匹配,得到第一视差值;
具体地,第一视差的确定方式包括:
(1)将所述食指区域的图像分成若干块,对食指区域的若干块依次扫描,确定一个待匹配点,以待匹配点为中心,创建窗口,窗口中对应点的值用该点的灰度值表示;
(2)用窗口覆盖第一目视频帧的图像,选择出窗口覆盖区域内的所有像素点;
(3)同样用窗口覆盖目标视频帧的图像并选择出覆盖区域的像素点;
(4)左边覆盖区域减去右边覆盖区域,并求出所有像素点灰度差的绝对
值之和;
(5)移动目标视频帧的图像的窗口,重复(3)-(4)的处理;
(6)找到灰度差的绝对值之和最小的窗口,即在目标视频帧中与所述待匹配点对应的点;
(7)循环执行上述(1)-(6)步骤,寻找食指区域和目标视频帧中与所述食指区域对应的目标区域点的一一对应关系,根据对应关系对所述食指区域和目标视频帧中与所述食指区域对应的目标区域的像素进行先验像素级别的立体匹配,得到第一视差值。
举例而言,当第一目视频帧为左目视频帧,另一目视频帧为右目视频帧时,左目视频帧上的待匹配点的坐标为(x,y),目标视频帧中与所述食指区域中点(x,y)对应的目标区域点的坐标为(x-12,y),则进行立体匹配后得到的第一视差值为12。
S212、根据所述第一视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
其中,左右相机的标定参数包括:相机的内参数和相机的外参数,相机的内参数为内部几何和光学特性,相机的外参数为相机在三维坐标系中的位置和方向。
具体的,在得到的第一视差值和左右相机标定的内外参数的基础上,利用三角形测量原理确定食指区域中每个像素点的三围空间的坐标数据。
需要说明的是,通过电子设备来处理图像,首先将模拟图像进行空间和幅值的离散化处理编程计算机可以识别的处理对象,空间离散化是把一个图像分割成多个小区域(像素),幅值离散化是将这些小区域的灰度值用帧数来表示,像素是数字图像的最小的单位。在数字图像中,像素的坐标取整数,立体匹配的视差值也是整数,但在三维空间中物体的场景信息是连续的值,在立体匹配中存在误差。
为了消除这种误差,在本发明实施了提供的一种具体实现方式中,如图7所示,步骤S212可以具体包括步骤S2121-步骤S2123:
S2121、将所述食指区域和目标视频帧扩大预定倍数;
S2122、在扩大预定倍数后,以所述第一视差值为基础,对当前食指区域和当前目标视频帧中与所述食指区域对应的目标区域的像素点进行亚像素级别的立体匹配,得到第二视差值;
S2123、根据所述第二视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
需要说明的是,本发明实施例并不对预定倍数进行限定。举例而言,预定倍数可以为10、100…,以预定倍数对食指区域和目标视频帧进行扩大,当预定倍数为10时,扩大后的图像为原图像的10倍,图像中的像素可以精确到原来的0.1倍。在扩大预定倍数后,以第一视差值为基础,在与步骤B211相似的步骤进行立体匹配,得到第二视差值。举例而言,在扩大倍数为10倍扩大后,第一视差值为12的基础上,并且第一目视频帧为左目视频帧,目标视频帧为右目视频帧,当左目视频帧上的待匹配点的坐标为(x,y),目标视频帧中与所述食指区域中点(x,y)对应的区域(x-12.9,y)和(x-11.1,y)进行立体匹配,匹配的过程与步骤B211相似,从而得到第二视差值。
需要说明的是,第二视差值为亚像素匹配后的精准的视差值。
其中,左右相机的标定参数包括:相机的内参数和相机的外参数,相机的内参数为内部几何和光学特性,相机的外参数为相机在三维坐标系中的位置和方向。具体的,在得到的第二视差值和左右相机标定的内外参数,利用三角形测量原理确定食指区域中每个像素点的三围空间的坐标数据。
上述具体的实现方式中,通过对局部图像进行亚像素立体匹配,不仅提高了立体匹配的精度,而且提高了立体匹配的算法效率。
与方法实施例相对应的,本发明实施例还提供了一种基于动态手势的VR交互装置,该装置可应用于VR设备。图8为本发明实施例提供的基于动态手势的VR交互装置的结构示意图,所述装置包括:
获取模块810,用于持续获取由VR设备采集的双目视频帧;
提取模块820,用于从所获取的各个双目视频帧的第一目视频帧中提取手型区域,所述第一目视频帧为:左目视频帧或右目视频帧;
识别模块830,用于当提取到时,识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,所述静态手势的识别结果包括:指向或单击;
确定模块840,用于当所得到的各个静态手势识别结果中包括单击和指向两类结果时,确定发生单击和指向的动态手势,并触发执行模块;
所述执行模块850,用于执行与所述动态手势对应的响应操作。
本发明实施例通过持续获取由VR设备采集的双目视频帧;从所获取的各个双目视频帧的第一目视频帧中提取手型区域,所述第一目视频帧为:左目视频帧或右目视频帧;识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,所述静态手势的识别结果包括:指向或单击;当所得到的各个静态手势识别结果中包括单击和指向两类结果时,确定发生单击和指向的动态手势,并执行与所述动态手势对应的响应操作。本发明实施例所提供方案在寻找动态手势时,可以有效减小对视频帧的重复分析,且采用手型区域对应的静态手势识别结果来判定动态手势的方式,从而提高VR交互的响应速度和精准度。
可选地,本发明实施例所提供的一种具体实现方式中,如图9所示,所述执行模块850,包括:
第一确定子模块851,用于确定目标手型区域中的食指区域,其中,所述目标手型区域为:所述各个手型区域中,所对应静态手势识别结果为指向的一个手型区域;
第二确定子模块852,用于根据所述食指区域,确定食指的指向直线;
第三确定子模块853,用于将所述指向直线与所述VR设备的显示区域的交点作为所述动态手势对应的交互点;
响应子模块854,用于在所述交互点上响应单击操作。
可选地,本发明实施例所提供的一种具体实现方式中,如图10所示,所述提取模块820,包括:
第四确定子模块821,用于针对所获取的每个双目视频帧的第一目视频帧,对该第一目视频帧进行灰度化转换,并对灰度化转换后的图像通过阈值分割的方式进行二值化处理,得到二值化处理的图像;
第一提取子模块822,用于提取所得到的各个二值化处理的图像中的手型区域。
可选地,本发明实施例所提供的一种具体实现方式中,如图11所示,所述识别模块830,包括:
特征提取子模块831,用于提取各个手型区域的方向梯度直方图HOG特征;
第五确定子模块832,用于将各个手型区域的方向梯度直方图HOG特征分别输入预先训练的支持向量机SVM模型,得到各个手型区域所对应的静态手势识别结果,其中,所述支持向量机SVM模型以包含指向或单击的静态手势的样本视频帧的方向梯度直方图HOG特征作为输入内容,以所述样本视频帧所包含的单击或指向的静态手势作为输出内容训练所得。
可选地,本发明实施例提供的一种具体实现方式中,所述第一确定子模块,包括:
第一确定单元,用于以手型区域外包矩形的边为坐标轴进行Y轴上的手型区域的直方图投影,通过对投影的直方图进行阈值处得到手型的食指区域,所述Y轴为沿手指的高度方向。
可选地,本发明实施例提供的一种具体实现方式中,如图12所示,所述第二确定子模块852,包括:
第二确定单元8521,用于对所述食指区域和目标视频帧进行立体匹配,得到所述食指区域中的每个像素点的三维坐标数据,其中,所述目标视频帧为目标双目视频帧中的另一目视频帧,所述目标双目视频帧为包含所述食指区域所在第一目视频帧的双目视频帧;
第三确定单元8522,用于将所述食指区域中的每个像素点的三维坐标数据进行线性拟合,得到食指的指向直线。
可选地,本发明实施例提供的一种具体实现方式中,如图13所示,所述第二确定单元8521,包括:
第一确定子单元85211,用于对所述食指区域和目标视频帧中与所述食指区域对应的目标区域的像素进行先验像素级别的立体匹配,得到第一视差值;
第二确定子单元85212,用于根据所述第一视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
可选地,本发明实施例提供的一种实现方式中,所述第二确定子单元,具体用于:
将所述食指区域和目标视频帧扩大预定倍数;
在扩大预定倍数后,以所述第一视差值为基础,对当前食指区域和当前目标视频帧中与所述食指区域对应的目标区域的像素点进行亚像素级别的立体匹配,得到第二视差值;
根据所述第二视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
与上述方法实施例相对应的,本发明实施例还提供了一种电子设备,如图14所示,包括处理器901、通信接口902、存储器903和通信总线904,其中,处理器901,通信接口902,存储器903通过通信总线904完成相互间的通信,
存储器903,用于存放计算机程序;
处理器901,用于执行存储器903上所存放的程序时,实现如下步骤:
持续获取由VR设备采集的双目视频帧;
从所获取的各个双目视频帧的第一目视频帧中提取手型区域,所述第一目视频帧为:左目视频帧或右目视频帧;
识别所提取到的各个手型区域,得到各个手型区域对应的静态手势识别结果,所述静态手势的识别结果包括:指向或单击;
当所得到的各个静态手势识别结果中包括单击和指向两类结果时,确定发生单击和指向的动态手势,并执行与所述动态手势对应的响应操作。
可选地,所述执行与所述动态手势对应的响应操作的步骤,包括:
确定目标手型区域中的食指区域,其中,所述目标手型区域为:所述各个手型区域中,所对应静态手势识别结果为指向的一个手型区域;
根据所述食指区域,确定食指的指向直线;
将所述指向直线与所述VR设备的显示区域的交点作为所述动态手势对应的交互点;
在所述交互点上响应单击操作。
可选地,所述从所获取的各个双目视频帧的第一目视频帧中提取手型区域的步骤,包括:
针对所获取的每个双目视频帧的第一目视频帧,对该第一目视频帧进行灰度化转换,并对灰度化转换后的图像通过阈值分割的方式进行二值化处理,得到二值化处理的图像;
提取所得到的各个二值化处理的图像中的手型区域。
可选地,所述识别所提取到的各个手型区域,得到静态手势识别结果的步骤,包括:
提取各个手型区域的方向梯度直方图HOG特征;
将各个手型区域的方向梯度直方图HOG特征分别输入预先训练的支持向量机SVM模型,得到各个手型区域所对应的静态手势识别结果,其中,所述支持向量机SVM模型以包含指向或单击的静态手势的样本视频帧的方向梯度直方图HOG特征作为输入内容,以所述样本视频帧所包含的单击或指向的静态手势作为输出内容训练所得。
可选地,所述确定目标手型区域中的食指区域的步骤,包括:
以手型区域外包矩形的边为坐标轴进行Y轴上的手型区域的直方图投影,通过对投影的直方图进行阈值处得到手型的食指区域,所述Y轴为沿手指的高度方向。
可选地,所述根据所述食指区域,确定食指的指向直线的步骤,包括:
对所述食指区域和目标视频帧进行立体匹配,得到所述食指区域中的每个像素点的三维坐标数据,其中,所述目标视频帧为目标双目视频帧中的另一目视频帧,所述目标双目视频帧为包含所述食指区域所在第一目视频帧的双目视频帧;
将所述食指区域中的每个像素点的三维坐标数据进行线性拟合,得到食指的指向直线。
可选地,所述对所述食指区域和目标视频帧进行立体匹配,得到所述食指区域中的每个像素点的三维坐标数据的步骤,包括:
对所述食指区域和目标视频帧中与所述食指区域对应的目标区域的像素进行先验像素级别的立体匹配,得到第一视差值;
根据所述第一视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
可选地,所述根据所述第一视差和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据的步骤,包括:
将所述食指区域和目标视频帧扩大预定倍数;
在扩大预定倍数后,以所述第一视差值为基础,对当前食指区域和当前目标视频帧中与所述食指区域对应的目标区域的像素点进行亚像素级别的立体匹配,得到第二视差值;
根据所述第二视差值和左右相机的标定参数,确定所述食指区域中每个像素点的三维空间坐标数据。
需要说明的是,电子设备的处理器所执行的上述基于动态手势的VR交互方法的详细内容可以参见上述的关于基于动态手势的VR交互方法的实施例的描述内容,在此不做赘述。
上述电子设备提到的通信总线可以是外设部件互连标准(Peripheral ComponentInterconnect,PCI)总线或扩展工业标准结构(Extended Industry StandardArchitecture,EISA)总线等。该通信总线可以分为地址总线、数据总线、控制总线等。为便于表示,图中仅用一条粗线表示,但并不表示仅有一根总线或一种类型的总线。
通信接口用于上述电子设备与其他设备之间的通信。
存储器可以包括随机存取存储器(Random Access Memory,RAM),也可以包括非易失性存储器(Non-Volatile Memory,NVM),例如至少一个磁盘存储器。可选的,存储器还可以是至少一个位于远离前述处理器的存储装置。
上述的处理器可以是通用处理器,包括中央处理器(Central Processing Unit,CPU)、网络处理器(Network Processor,NP)等;还可以是数字信号处理器(Digital SignalProcessing,DSP)、专用集成电路(Application Specific Integrated Circuit,ASIC)、现场可编程门阵列(Field-Programmable Gate Array,FPGA)或者其他可编程逻辑器件、分立门或者晶体管逻辑器件、分立硬件组件。
在本发明提供的又一实施例中,还提供了一种计算机可读存储介质,该计算机可读存储介质中存储有指令,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种基于动态手势的VR交互方法。
在本发明提供的又一实施例中,还提供了一种包含指令的计算机程序产品,当其在计算机上运行时,使得计算机执行上述实施例中任一所述的一种基于动态手势的VR交互方法。
在上述实施例中,可以全部或部分地通过软件、硬件、固件或者其任意组合来实现。当使用软件实现时,可以全部或部分地以计算机程序产品的形式实现。所述计算机程序产品包括一个或多个计算机指令。在计算机上加载和执行所述计算机程序指令时,全部或部分地产生按照本发明实施例所述的流程或功能。所述计算机可以是通用计算机、专用计算机、计算机网络、或者其他可编程装置。所述计算机指令可以存储在计算机可读存储介质中,或者从一个计算机可读存储介质向另一个计算机可读存储介质传输,例如,所述计算机指令可以从一个网站站点、计算机、服务器或数据中心通过有线(例如同轴电缆、光纤、数字用户线(DSL))或无线(例如红外、无线、微波等)方式向另一个网站站点、计算机、服务器或数据中心进行传输。所述计算机可读存储介质可以是计算机能够存取的任何可用介质或者是包含一个或多个可用介质集成的服务器、数据中心等数据存储设备。所述可用介质可以是磁性介质,(例如,软盘、硬盘、磁带)、光介质(例如,DVD)、或者半导体介质(例如固态硬盘Solid State Disk(SSD))等。
需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的过程、方法、物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种过程、方法、物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括所述要素的过程、方法、物品或者设备中还存在另外的相同要素。
本说明书中的各个实施例均采用相关的方式描述,各个实施例之间相同相似的部分互相参见即可,每个实施例重点说明的都是与其他实施例的不同之处。尤其,对于系统实施例而言,由于其基本相似于方法实施例,所以描述的比较简单,相关之处参见方法实施例的部分说明即可。
以上所述仅为本发明的较佳实施例而已,并非用于限定本发明的保护范围。凡在本发明的精神和原则之内所作的任何修改、等同替换、改进等,均包含在本发明的保护范围内。