本发明涉及虚拟现实技术领域。更具体地,涉及一种虚拟现实交互方法及装置。
背景技术:
虚拟现实(virtualreality,vr)技术,是以沉浸性、构想性为基本特征,采用计算机技术为核心的依赖于图形、图像处理手段生成的一种虚拟环境,从而通过模拟人的视觉、听觉和触觉等获得与真实世界相同的感受。
目前,在虚拟现实(virtualreality)技术中,普遍采用的交互方式是“定时瞄点”。采用“定时瞄点”的交互方式,用户需要频繁的转动头部完成相应的交互操作,大大增加了用户的负担,降低了用户体验效果。
技术实现要素:
本发明的一个目的在于提供一种虚拟现实交互方法,实现基于视线的交互,防止用户使用时产生眩晕,本发明的另一个目的在于提供一种应用该方法的虚拟现实交互装置。
为达到上述目的,本发明采用下述技术方案:
本发明一方面公开了一种虚拟现实交互方法,包括:
拍摄包含用户人眼瞳孔的参考图像;
定位人眼瞳孔在所述参考图像中的位置;
基于所述参考图像和目标屏幕的坐标系之间的映射关系确定用户人眼的瞳孔在目标屏幕上的注视位置;
若注视位置位于可操作区域内,判断用户的注视状态是否满足预设条件,如果满足则执行相应的交互操作。
优选地,所述定位人眼瞳孔在所述参考图像中的位置包括以下步骤:
对所述参考图像进行滤波,滤除所述参考图像的噪声;
将瞳孔从参考图像中分离出来;
去除干扰点;
对瞳孔区域边缘点进行椭圆拟合,得到椭圆的瞳孔区域;
计算瞳孔区域的中心,作为瞳孔位置。
优选地,所述映射关系通过以下步骤获得:
预先选取目标屏幕上的三个校准点,所述三个校准点包括不在同一水平线和同一竖直线上的第一校准点、第二校准点和第三校准点;
将所述三个校准点通过目标屏幕依次向用户显示;
依次获取用户直视目标屏幕上三个校准点时的校准图像,得到校准图像中的用户瞳孔位置,综合所述三个校准点在目标屏幕的位置得到视线校准系数。
优选地,所述视线校准系数为
其中,xscale和yscale分别为水平校准系数和竖直校准系数,xo为第一校准点的横坐标,yo为第一校准点的纵坐标,xa为第二校准点的横坐标,ya为第二校准点的纵坐标,xb为第三校准点的横坐标,yb为第三校准点的纵坐标,x′o为校准图像中用户注视第一校准点时的瞳孔位置的横坐标,y′o为校准图像中用户注视第一校准点时的瞳孔位置的纵坐标,x′a为校准图像中用户注视第二校准点时的瞳孔位置的横坐标,y′a为校准图像中用户注视第二校准点时的瞳孔位置的纵坐标,x′b为校准图像中用户注视第三校准点时的瞳孔位置的横坐标,y'b为校准图像中用户注视第三校准点时的瞳孔位置的纵坐标。
优选地,所述注视位置为
xgaze=xo+xscale*(x′o-x),
ygaze=yo+yscale*(y′o-y);
其中,其中,xgaze和ygaze分别为所述注视位置的横坐标和纵坐标,x和y为所述瞳孔位置的横坐标和纵坐标,xo为第一校准点的横坐标,yo为第一校准点的纵坐标,x′o为校准图像中用户注视第一校准点时的瞳孔位置的横坐标,y′o为校准图像中用户注视第一校准点时的瞳孔位置的纵坐标。
优选地,所述若注视位置位于可操作区域内,判断注视状态是否满足预设条件,如果满足则执行相应的交互操作包括以下步骤:
在预设时间内,拍摄多张所述参考图像,在所述多张参考图像中用户注视可操作区域内的同一位置的注视次数为n,预设n1,n2和n3三个阈值,
若n>n1,则判定交互模式为第一交互模式,将n清零并执行第一交互模式对应的交互操作;
若n>n2,则判定交互模式为第二交互模式,将n清零并执行第二交互模式对应的交互操作;
若n>n3,则判定交互模式为第三交互模式,将n清零并执行第三交互模式对应的交互操作;
若n<n1,则判定不执行任何交互操作。
其中,n1<n2<n3。
本发明另一方面还一种虚拟现实交互装置,所述装置包括:
图像采集模块,用于拍摄包含用户人眼的参考图像;
瞳孔定位模块,用于定位人眼瞳孔在所述参考图像中的位置;
视线计算模块,用于基于所述参考图像和目标屏幕的坐标系之间的映射关系确定用户人眼的瞳孔在目标屏幕上的注视位置;
视线交互模块,用于当注视位置位于可操作区域内,判断用户的注视状态是否满足预设条件,如果满足则执行相应的交互操
优选地,所述瞳孔定位模块进一步包括图像预处理单元和瞳孔中心计算单元;
所述图像预处理单元用于对所述参考图像进行滤波,滤除所述参考图像的噪声;将瞳孔从参考图像中分离出来;去除干扰点;
所述瞳孔中心计算单元用于对瞳孔区域边缘点进行椭圆拟合,得到椭圆的瞳孔区域;计算瞳孔区域的中心,作为所述瞳孔位置。
优选地,所述装置进一步包括得到映射关系的视线校准模块,
所述视线校准模块进一步包括校准点预设单元、校准点呈现单元和校准系数计算单元;
所述校准点预设单元用于预先选取目标屏幕上的三个校准点,所述三个校准点包括不在同一水平线和同一竖直线上的第一校准点、第二校准点和第三校准点;
所述校准点呈现单元用于将所述三个校准点通过目标屏幕依次向用户显示;
所述校准系数计算单元用于依次获取用户直视目标屏幕上三个校准点时的校准图像,得到校准图像中的用户瞳孔位置,综合所述三个校准点在目标屏幕的位置得到视线校准系数。
优选地,所述视线交互模块包括交互判定单元和交互执行单元;
交互判定单元用于在预设时间内,拍摄多张所述参考图像,在所述多张参考图像中用户注视可操作区域内的同一位置的注视次数为n,预设n1,n2和n3三个阈值,
若n>n1,则判定交互模式为第一交互模式,将n清零并通过所述交互执行单元执行第一交互模式对应的交互操作;
若n>n2,则判定交互模式为第二交互模式,将n清零并通过所述交互执行单元执行第二交互模式对应的交互操作;
若n>n3,则判定交互模式为第三交互模式,将n清零并通过所述交互执行单元执行第三交互模式对应的交互操作;
若n<n1,则判定不执行任何交互操作。
其中,n1<n2<n3。
优选地,所述装置包括
装置壳体;以及
设于所述装置壳体上的两个镜片;
并且所述图像采集模块包括设于至少一个镜片周围的相机和多个红外光源。
优选地,所述相机设于所述镜片下方。
优选地,所述多个红外光源包括分别设于所述镜片上方、下方、左方和右方的四个红外光源。
本发明的有益效果如下:
本发明通过实时获取人眼的参考图像,对参考图像进行处理得到用户观看目标屏幕时的瞳孔位置,基于获取的用户的瞳孔位置可相应得到用户注视的目标屏幕上的注视位置,并进一步得到用户的注视状态,根据用户注视状态的不同以实现不同的虚拟现实交互操作,用户通过眼动改变注视位置,虚拟现实装置即可检测到用户注视位置的变化,进而得到用户的注视状态,根据预设的与注视状态对应的交互操作实现通过用户眼动进行虚拟交互,避免用户频繁转动头部进行虚拟交互而导致的操作复杂,交互效率低,本发明基于视线的交互方式简单、高效,可降低用户负担,提高用户体验。
附图说明
下面结合附图对本发明的具体实施方式作进一步详细的说明。
图1示出本发明一种虚拟现实交互方法的流程图;
图2示出本发明一种虚拟现实交互方法参考图像处理得到瞳孔位置的流程图;
图3示出本发明一种虚拟现实交互方法及装置三个校准点的示意图;
图4示出本发明一种虚拟现实交互装置的结构示意图;
图5示出本发明一种虚拟现实交互装置瞳孔定位模块的结构示意图;
图6示出本发明一种虚拟现实交互装置视线校准模块的结构示意图;
图7示出本发明一种虚拟现实交互装置视线交互模块的结构示意图;
图8示出本发明一种虚拟现实交互装置的外形示意图。
具体实施方式
为了更清楚地说明本发明,下面结合优选实施例和附图对本发明做进一步的说明。附图中相似的部件以相同的附图标记进行表示。本领域技术人员应当理解,下面所具体描述的内容是说明性的而非限制性的,不应以此限制本发明的保护范围。
目前,在虚拟现实(virtualreality)中普遍采用的交互方式是“定时瞄点”。当用户戴上vr设备时,在用户眼睛的正前方会出现一个瞄点,当用户头部运动状态发生改变时,vr设备通过设备中的陀螺仪和罗盘传感器来感应用户头部的运动,并将这种运动反馈到瞄点上,从而随着用户头部移动实现虚拟现实的用户操作,相当于在用户注视的目标屏幕上有一个鼠标点,用户需要对目标屏幕的哪块区域进行操作,就将瞄点移动到哪儿。当瞄点停留在某个可操作区域时,可通过出现倒计时的形式提示用户,可设置瞄点停留2-3秒钟过后,激发点击操作。虚拟现实设备中采用的这种“定时瞄点”交互方式,需要用户频繁的转动头部完成相应的操作,大大增加了用户的负担,降低了体验效果,现有的这种交互方式不能完全满足用户vr交互中对自然、高效、直接特性的需求。本发明通过跟踪用户在目标屏幕上的注视位置,实现交互操作,用户通过眼动即可对可操作区域进行相应操作,避免用户频繁转动头部进行虚拟交互而导致的操作复杂,交互效率低,本发明基于视线的交互方式简单、高效,可降低用户负担,提高用户体验。
如图1所示,根据本发明的一个方面,公开了一种虚拟现实交互方法,包括:
s1:拍摄包含用户人眼的参考图像。通过实时拍摄用户人眼的参考图像以跟踪用户的眼动状态。优选地,可在红外led灯照射下拍摄包含人眼区域的图像。
s2:定位人眼瞳孔在所述参考图像中的位置。
具体的,如图2所示,所述s2可进一步包括:
s21:对所述参考图像进行滤波,滤除所述参考图像的噪声,以增加图像质量。优选地,所述滤波算法可选择高斯滤波。
s22:将瞳孔从参考图像中分离出来。优选地,可通过二值化处理将瞳孔从参考图像中分离出来,更优选地,二值化时所选阈值可采用经验值。
s23:去除干扰点。优选地,可通过形态学处理去除干扰点,s22处理完的瞳孔图像,仍会存在较多的干扰区域,通过形态学处理去除干扰点,得到完整的瞳孔区域。
s24:对瞳孔区域边缘点进行椭圆拟合,得到椭圆的瞳孔区域。优选地,可通过最小二乘算法对瞳孔区域边缘点进行椭圆拟合,对完整的瞳孔区域进行边缘检测,得到瞳孔区域的边缘点,根据边缘点采用最小二乘法原理对瞳孔区域进行椭圆拟合,得到拟合后的瞳孔区域。
s25:计算瞳孔区域的中心,作为所述瞳孔位置。
s3:基于所述参考图像和目标屏幕的坐标系之间的映射关系确定用户人眼的瞳孔在目标屏幕上的注视位置。根据用户观看屏幕上任意点时获得的视线矢量,进行视线在目标屏幕上落点的实时计算,得到用户在目标屏幕上的注视位置坐标。
所述映射关系通过以下步骤获得:
s31:预先选取目标屏幕上的三个校准点,所述三个校准点包括不在同一水平线和同一竖直线上的第一校准点、第二校准点和第三校准点。本实施例中,分别取o、a和b三个校准点,如图3所示。
s32:将所述三个校准点通过目标屏幕依次向用户显示;
s33:依次获取用户直视目标屏幕上三个校准点时的校准图像,得到校准图像中的用户瞳孔位置,综合所述三个校准点在目标屏幕的位置得到视线校准系数。当用户分别直视目标屏幕上的o(xo,yo)、a(xa,ya)和b(xb,yb)三个校准点时,校准图像中用户人眼的瞳孔位置分别为o′(x′o,y′o)、a′(x′a,y′a)和b′(x'b,y′b)。
本实施例中,使用户依次直视三个校准点,分别拍摄三次直视校准点时的包含用户人眼的标准图像,通过对标准图像进行处理将人眼瞳孔区域分离,拟合瞳孔区域的边界得到此时瞳孔区域的范围和中心位置,将该中心位置作为标准瞳孔位置,并进一步得到视线校准系数。
优选地,所述视线校准系数的计算公式为
其中,xscale和yscale分别为水平校准系数和竖直校准系数,xo为第一校准点o的横坐标,yo为第一校准点o的纵坐标,xa为第二校准点a的横坐标,ya为第二校准点a的纵坐标,xb为第三校准点b的横坐标,yb为第三校准点b的纵坐标,x'o为校准图像中用户注视第一校准点o时的瞳孔位置的横坐标,y'o为校准图像中用户注视第一校准点o时的瞳孔位置的纵坐标,x'a为校准图像中用户注视第二校准点a时的瞳孔位置的横坐标,y′a为校准图像中用户注视第二校准点a时的瞳孔位置的纵坐标,x′b为校准图像中用户注视第三校准点b时的瞳孔位置的横坐标,y′b为校准图像中用户注视第三校准点b时的瞳孔位置的纵坐标。
优选地,当在应用本方法的虚拟现实装置上,可设置第一校准点o(xo,yo)为虚拟现实装置上的透镜的中心轴线在目标屏幕上的投影点,以简化计算过程。
本实施例中,所述注视位置的计算公式为
xgaze=xo+xscale*(x′o-x),
ygaze=yo+yscale*(y′o-y);
其中,xgaze和ygaze分别为所述注视位置的横坐标和纵坐标,x和y为所述瞳孔位置的横坐标和纵坐标。
s4:若注视位置位于可操作区域内,判断用户的注视状态是否满足预设条件,如果满足则执行相应的交互操作。所述目标屏幕上设置可触发交互操作的可操作区域,当用户注视可操作区域时并满足预设条件才能够触发交互操作,当用户正常使用vr眼镜观看视频或图像时,可注视目标屏幕的非可操作区域,从而防止误操作。
具体的,所述s4可进一步包括:
在预设时间内,拍摄多张所述参考图像,在所述多张参考图像中用户注视可操作区域内的同一位置的注视次数为n,
预设n1,n2和n3三个阈值,
若n>n1,则判定交互模式为第一交互模式,将n清零并执行第一交互模式对应的交互操作;
若n>n2,则判定交互模式为第二交互模式,将n清零并执行第二交互模式对应的交互操作;
若n>n3,则判定交互模式为第三交互模式,将n清零并执行第三交互模式对应的交互操作;
若n<n1,则判定不执行任何交互操作。
其中,n1,n2和n3为正整数,且n1<n2<n3。
所述交互模式选自单击操作、双击操作、返回操作和无操作中的其中之一。
优选地,本实施例中,
若n>n1,则判定交互模式为选定应用,类似鼠标单击效果,将n清零并执行选定应用操作;
若n>n2,则判定交互模式为进入应用,类似鼠标双击效果,将n清零并执行进入应用操作;
若n>n3,则判定交互模式为返回,将n清零并执行返回操作;
若n<n1,则判定不执行任何交互操作。
其中,n1为设定的选定应用阈值,n2为设定的进入应用阈值,n3为设定的返回操作阈值,n1<n2<n3。
判断注视状态是否满足预设条件中的预设条件可以选用如本实施例中所述的在预定时间内的注视次数的预设条件,也可选用用户连续注视同一位置的时间等预设条件,本发明对此并不作限定。
优选的在相机帧速为100hz情况下,可选定应用阈值n1=30次,进入应用阈值n2=60次,返回操作阈值n3=90次。
需要说明的是,本发明中虚拟现实交互方法并不限定各步骤的先后顺序,在实现本发明技术方案的条件下,也可以互换各步骤的作用顺序。
如图4至图8所示,基于本发明的另一方面,公开了一种应用如本实施例所述的交互方法的虚拟现实交互装置,所述装置包括视线校准模块3、图像采集模块1、瞳孔定位模块2、视线计算模块4和视线交互模块5。
所述图像采集模块1用于拍摄包含用户人眼的参考图像。通过实时拍摄用户人眼的参考图像以跟踪用户的眼动状态。优选地,可在红外led灯照射下拍摄包含人眼区域的图像。
瞳孔定位模块2用于定位人眼瞳孔在所述参考图像中的位置。
具体的,所述瞳孔定位模块2进一步可包括图像预处理单元21和瞳孔中心计算单元22。
所述图像预处理单元21可用于对所述参考图像进行滤波,滤除所述参考图像的噪声,以增加图像质量。优选地,所述滤波算法可选择高斯滤波。
将瞳孔从参考图像中分离出来。优选地,可通过二值化处理将瞳孔从参考图像中分离出来,更优选地,二值化时所选阈值可采用经验值。
去除干扰点。优选地,可通过形态学处理去除干扰点,处理得到的瞳孔图像,仍会存在较多的干扰区域,通过形态学处理去除干扰点,得到完整的瞳孔区域。
所述瞳孔中心计算单元22可对瞳孔区域边缘点进行椭圆拟合,得到椭圆的瞳孔区域。优选地,可通过最小二乘算法对瞳孔区域边缘点进行椭圆拟合,对完整的瞳孔区域进行边缘检测,得到瞳孔区域的边缘点,根据边缘点采用最小二乘法原理对瞳孔区域进行椭圆拟合,得到拟合后的瞳孔区域。
计算瞳孔区域的中心,作为瞳孔位置。
所述视线计算模块4用于基于所述参考图像和目标屏幕的坐标系之间的映射关系确定用户人眼的瞳孔在目标屏幕上的注视位置。根据用户观看屏幕上任意点时获得的视线矢量,进行视线在目标屏幕上落点的实时计算,得到用户在目标屏幕上的注视位置坐标。
优选地,所述装置进一步包括得到映射关系的视线校准模块。
所述视线校准模块3可进一步包括校准点预设单元31、校准点呈现单元32和校准系数计算单元33。
所述校准点预设单元31可用于预先选取目标屏幕上的三个校准点,所述三个校准点包括不在同一水平线和同一竖直线上的第一校准点、第二校准点和第三校准点。本实施例中,分别取o、a和b三个校准点,如图3所示。
所述校准点呈现单元32可用于将所述三个校准点通过目标屏幕依次向用户显示。
所述校准系数计算单元33可用于依次获取用户直视目标屏幕上三个校准点时的校准图像,得到校准图像中的用户瞳孔位置,综合所述三个校准点在目标屏幕的位置得到视线校准系数。
本实施例中,使用户依次直视三个校准点,分别拍摄三次直视校准点时的包含用户人眼的标准图像,通过对标准图像进行处理将人眼瞳孔区域分离,拟合瞳孔区域的边界得到此时瞳孔区域的范围和中心位置,将该中心位置作为标准瞳孔位置,并进一步得到视线校准系数。当用户分别直视目标屏幕上的o(xo,yo)、a(xa,ya)和b(xb,yb)三个校准点时,校准图像中用户人眼的瞳孔位置分别为o′(x′o,y′o)、a′(x′a,y′a)和b′(x′b,y′b)。
优选地,所述视线校准系数的计算公式为
其中,xscale和yscale分别为水平校准系数和竖直校准系数,xo为第一校准点o的横坐标,yo为第一校准点o的纵坐标,xa为第二校准点a的横坐标,ya为第二校准点a的纵坐标,xb为第三校准点b的横坐标,yb为第三校准点b的纵坐标,x′o为校准图像中用户注视第一校准点o时的瞳孔位置的横坐标,y′o为校准图像中用户注视第一校准点o时的瞳孔位置的纵坐标,x′a为校准图像中用户注视第二校准点a时的瞳孔位置的横坐标,y′a为校准图像中用户注视第二校准点a时的瞳孔位置的纵坐标,x′b为校准图像中用户注视第三校准点b时的瞳孔位置的横坐标,y′b为校准图像中用户注视第三校准点b时的瞳孔位置的纵坐标。
优选地,当在应用本方法的虚拟现实装置上,可设置第一校准点o(xo,yo)为虚拟现实装置上的透镜的中心轴线在目标屏幕上的投影点,以简化计算过程。
本实施例中,所述注视位置的计算公式为
xgaze=xo+xscale*(x′o-x),
ygaze=yo+yscale*(y′o-y);
其中,xgaze和ygaze分别为所述注视位置的横坐标和纵坐标,x和y为所述瞳孔位置的横坐标和纵坐标。
所述视线交互模块5用于当注视位置位于可操作区域内时,判断用户的注视状态是否满足预设条件,如果满足则执行相应的交互操作。所述目标屏幕上设置可触发交互操作的可操作区域,当用户注视可操作区域时并满足预设条件才能够触发交互操作,当用户正常使用vr眼镜观看视频或图像时,可注视目标屏幕的非可操作区域,从而防止误操作。
具体的,所述视线交互模块5可进一步包括交互判定单元51和交互执行单元52。
交互判定单元51可用于在预设时间内,拍摄多张所述参考图像,在所述多张参考图像中用户注视可操作区域内的同一位置的注视次数为n;
预设n1,n2和n3三个阈值,
若n>n1,则判定交互模式为第一交互模式,将n清零并通过所述交互执行单元52执行第一交互模式对应的交互操作;
若n>n2,则判定交互模式为第二交互模式,将n清零并通过所述交互执行单元52执行第二交互模式对应的交互操作;
若n>n3,则判定交互模式为第三交互模式,将n清零并通过所述交互执行单元52执行第三交互模式对应的交互操作;
若n<n1,则判定不执行任何交互操作。
其中,n1<n2<n3。所述交互模式选自单击操作、双击操作、返回操作和无操作中的其中之一。
优选地,本实施例中,
若n>n1,则判定交互模式为选定应用,类似鼠标单击效果,将n清零并执行选定应用操作;
若n>n2,则判定交互模式为进入应用,类似鼠标双击效果,将n清零并执行进入应用操作;
若n>n3,则判定交互模式为返回,将n清零并执行返回操作;
若n<n1,则判定不执行任何交互操作。
其中,n1为设定的选定应用阈值,n2为设定的进入应用阈值,n3为设定的返回操作阈值,n1<n2<n3。
优选的在相机帧速为100hz情况下,可选定应用阈值n1=30次,进入应用阈值n2=60次,返回操作阈值n3=90次。
判断注视状态是否满足预设条件中的预设条件可以选用如本实施例中所述的在预定时间内的注视次数的预设条件,也可选用用户连续注视所述预设交互位置的时间等预设条件,本发明对此并不作限定。
本实施例中,所述装置包括壳体11以及设于所述壳体11上的两个镜片12,所述图像采集模块1包括设于至少一个镜片周围的相机13和多个红外光源。根据“海林定律”,人类产生视觉运动时,两眼球运动间存在一定关系,即只能够向同一方向以相同的幅度进行运动,而不会存在分离运动的情况;因此,为了节省硬件成本,优选地可只在vr设备中计算单只眼睛的视线,便能达到类似本发明中的交互效果。
优选地,所述相机可设于所述镜片下方,使相机中心轴线指向人眼区域中心位置。高速相机可选用红外高速相机,本实施例中,相机采样频率为100hz,红外光源波长为850nm,红外光源为眼部提供均匀的补光,利于将瞳孔从虹膜区域分割出来,获得较为清晰的原始人眼图像。
本实施例中,所述图像采集模块1包括分别设于所述镜片上方、下方、左方和右方的四个红外光源(14,15,16,17)。四个红外光源(14,15,16,17)均布于镜片周围,以在拍摄图像时可以均匀补光。
当本实施例的虚拟交互装置在工作时,四个红外光源开启,校准点呈现单元32将三个校准点通过目标屏幕依次向用户显示,红外高速相机分别拍摄校准图像,通过瞳孔定位模块2处理得到校准图像中的用户瞳孔位置,综合所述三个校准点在目标屏幕的位置得到视线校准系数。红外高速相机实时拍摄人眼图像,通过瞳孔定位模块2处理得到参考图像中的用户瞳孔位置,视线计算模块4通过所述视线校准系数计算得到用户在目标屏幕上的注视位置,交互判定单元51计算用户在预设时间内注视同一区域的注视次数,以完成用户所需的交互操作。
显然,本发明的上述实施例仅仅是为清楚地说明本发明所作的举例,而并非是对本发明的实施方式的限定,对于所属领域的普通技术人员来说,在上述说明的基础上还可以做出其它不同形式的变化或变动,这里无法对所有的实施方式予以穷举,凡是属于本发明的技术方案所引伸出的显而易见的变化或变动仍处于本发明的保护范围之列。