瞳孔定位装置和方法、虚拟现实设备的显示驱动器与流程

文档序号:13986470阅读:179来源:国知局

本发明涉及眼控技术领域,具体涉及一种瞳孔定位装置和方法、虚拟现实设备的显示驱动器。



背景技术:

近年来,虚拟现实(virtualreality,vr)/增强现实(augmentedreality,ar)技术已逐步应用到显示、游戏、医疗等领域。随着技术的发展,人们对vr/ar的期望要求越来越高,靠头部转动来实现视角变换的交互方式已经不能为人们带来满意的产品体验,因此不少厂家正将眼球追踪技术加速布局到vr/ar领域。

眼球追踪(eyetracking)技术是用眼球运动控制机器的一种智能人机交互技术,用眼“看”就能完成所有操作,不仅可以解放双手,而且也是最快捷、最人性化的控制方式。因此,眼球追踪技术作为提升vr/ar产品体验的一项重要环节,不仅可以解决高清渲染的需求,还可以大幅度提升vr设备的交互体验,用户通过眼睛与vr用户界面的交互,可以直接用眼睛控制菜单,触发操作,让人摆脱不自然的头部操作。

经本申请发明人研究发现,现有支持眼球追踪的头戴式vr/ar产品需要配备计算机设备,利用计算机设备的cpu进行瞳孔定位处理,不仅设备成本较高,而且处理速度较慢,有明显的显示延迟,既影响使用者的体验,也制约了市场推广。



技术实现要素:

本发明实施例所要解决的技术问题是,提供一种瞳孔定位装置和方法、虚拟现实设备的显示驱动器,以解决现有瞳孔定位技术设备成本高、处理速度慢的技术问题。

为了解决上述技术问题,本发明实施例提供了一种瞳孔定位装置,包括:

预处理电路,用于在眼睛图像传输过程中,对所述眼睛图像进行预处理,获得所述眼睛图像的所有边界点;

坐标处理电路,用于对所有边界点进行连通区域处理,根据最大连通区域确定瞳孔中心坐标。

可选地,所述预处理电路包括:

第一缓存模块,用于在第i个缓存周期,缓存摄像设备所传输眼睛图像的第i行数据,并在第i+1个缓存周期,将所述第i行数据发送给预处理模块;其中,i=1,……,n-1,n为眼睛图像的像素行数;

第二缓存模块,用于在第i+1个缓存周期,缓存摄像设备所传输眼睛图像的第i+1行数据,并在第i+2个缓存周期,将所述第i+1行数据发送给预处理模块;

预处理模块,用于对所述数据进行预处理,获得所述数据的边界点,发送给存储模块;

存储模块,用于存储所述眼睛图像所有边界点。

可选地,所述第一缓存模块和第二缓存模块包括双口随机存取存储器ram,所述预处理模块包括由ram读写控制器、比较器和计数器组成的电路,或包括现场可编程门阵列fpga。

可选地,所述预处理模块包括:

灰度转换单元,用于对所述数据进行灰度转换处理;

滤波单元,用于对灰度转换处理后的数据进行滤波处理;

二值化单元,用于对滤波处理后的数据进行二值化处理;

边界单元,用于对二值化处理后的数据进行边界腐蚀和膨胀处理;

边界提取单元,用于对边界腐蚀和膨胀处理后的数据进行边界提取处理。

可选地,所述滤波单元采用3*3模板进行高斯滤波处理,所述边界提取单元采用四邻域法进行边界提取。

可选地,所述预处理模块还包括剪裁单元,用于对所述眼睛图像进行剪裁处理。

可选地,所述坐标处理电路包括:

区域确定模块,用于根据所述眼睛图像的所有边界点,确定所有的连通区域;

区域比较模块,用于比较所有的连通区域的大小,确定最大连通区域;

坐标确定模块,用于根据最大连通区域确定瞳孔中心坐标。

可选地,所述区域确定模块具体用于:从所述预处理电路中读取所有边界点,采用八邻域法确定所有的连通区域,并保存所有的连通区域的边界点坐标。

可选地,所述区域比较模块包括:

第一缓存单元,用于从所述区域确定模块读取第j个连通区域的边界点坐标,并统计所述第j个连通区域边界点坐标的数量mj;其中,j=1,……,m-1,m为连通区域的数量;

第二缓存单元,用于从所述区域确定模块读取第j+1个连通区域的边界点坐标,并统计所述第j+1个连通区域的边界点坐标的数量mj+1;

比较控制单元,用于比较mj与mj+1,当mj<mj+1时,控制第一缓存单元继续读取连通区域的边界点坐标,并重新比较;当mj>mj+1时,控制第二缓存单元继续读取连通区域的边界点坐标,并重新比较;

存储单元,用于存储所述比较控制单元输出的最大连通区域的边界点坐标。

可选地,所述坐标确定模块包括:

读取单元,用于从所述区域比较模块中读取最大连通区域的边界点坐标;

直径确定单元,用于遍历所有的边界点坐标,获得最小横坐标、最大横坐标、最小纵坐标和最大纵坐标,确定最大连通区域的双直径;

坐标确定单元,用于从所有的边界点中选择p个边界点,采用椭圆拟合法确定最大连通区域的中心坐标,作为瞳孔中心坐标;其中,p=6、7、8、9或10。

可选地,所述坐标确定单元具体用于:统计所有的边界点坐标的数量s,从一边界点开始,每隔s/p个边界点选取一个边界点,采用椭圆拟合法根据p个边界点坐标确定最大连通区域的中心坐标,作为瞳孔中心坐标。

本发明实施例还提供了一种虚拟现实设备的显示驱动器,包括前述的瞳孔定位装置。

为了解决上述技术问题,本发明实施例还提供了一种瞳孔定位方法,包括:

在眼睛图像传输过程中,对所述眼睛图像进行预处理,获得所述眼睛图像的所有边界点;

对所有边界点进行连通区域处理,根据最大连通区域确定瞳孔中心坐标。

可选地,在眼睛图像传输过程中,对所述眼睛图像进行预处理,获得所述眼睛图像的所有边界点,包括:

在眼睛图像传输过程中,采用两个双口随机存取存储器分别缓存摄像设备所传输眼睛图像的两行数据,通过乒乓操作对数据进行预处理,获得眼睛图像的所有边界点。

可选地,对数据进行预处理包括:灰度转换处理、滤波处理、二值化处理、边界腐蚀和膨胀处理、以及边界提取处理。

可选地,对数据进行预处理还包括:对所述眼睛图像进行剪裁处理。

可选地,对所有边界点进行连通区域处理,根据最大连通区域确定瞳孔中心坐标,包括:

根据所述眼睛图像的所有边界点,采用八邻域法确定所有的连通区域;

比较所有的连通区域的大小,确定最大连通区域;

根据所述最大连通区域确定瞳孔中心坐标。

可选地,比较所有的连通区域的大小,确定最大连通区域,包括:

采用两个双口随机存取存储器分别读取两个连通区域的边界点坐标,并分别统计两个连通区域的边界点坐标的数量,比较两个连通区域的边界点坐标的数量,边界点坐标数量少的随机存取存储器读取其它连通区域的边界点坐标,重新比较,直至遍历所有的连通区域,边界点坐标数量最多的连通区域为最大连通区域。

可选地,根据所述最大连通区域确定瞳孔中心坐标,包括:

依次读取最大连通区域的边界点坐标,通过两两比较获得最小横坐标、最大横坐标、最小纵坐标和最大纵坐标,确定最大连通区域的双直径;

从所有的边界点中选择p个边界点,采用椭圆拟合法确定最大连通区域的中心坐标,作为瞳孔中心坐标;其中,p=6、7、8、9或10。

可选地,从所有的边界点中选择p个边界点,包括:

统计所有的边界点坐标的数量s,从一边界点开始,每隔s/p个边界点选取一个边界点。

本发明实施例提供了一种基于硬件实现的瞳孔定位装置和方法、虚拟现实设备的显示驱动器,通过在数据传输过程中对眼睛图像进行预处理,不仅避免了帧缓存,节省了存储资源,而且在数据传输的同时一步到位地获得眼睛图像的所有边界点,随后根据所有边界点利用硬件化的连通区域处理方式确定瞳孔中心坐标,避免了导致延迟的大数据量运算,提高了处理速度,缩短了处理时间,节省了逻辑资源,解决了现有瞳孔定位技术设备成本高、处理速度慢的技术问题。本发明实施例所使用的存储资源和逻辑资源很少,便于硬件实现并集成在头戴式虚拟现实设备的显示驱动器中,支持120hz摄像设备实时采集并实时处理,实现了将第n帧的瞳孔中心坐标映射到第n+1帧上。

当然,实施本发明的任一产品或方法并不一定需要同时达到以上所述的所有优点。本发明的其它特征和优点将在随后的说明书实施例中阐述,并且,部分地从说明书实施例中变得显而易见,或者通过实施本发明而了解。本发明实施例的目的和其他优点可通过在说明书、权利要求书以及附图中所特别指出的结构来实现和获得。

附图说明

附图用来提供对本发明技术方案的进一步理解,并且构成说明书的一部分,与本申请的实施例一起用于解释本发明的技术方案,并不构成对本发明技术方案的限制。附图中各部件的形状和大小不反映真实比例,目的只是示意说明本发明内容。

图1为本发明实施例瞳孔定位装置的结构示意图;

图2为本发明实施例预处理电路的结构示意图;

图3为本发明实施例预处理模块的结构示意图;

图4为本发明实施例高斯滤波3*3模板的示意图;

图5为本发明实施例四邻域法的示意图;

图6为本发明实施例坐标处理电路的结构示意图;

图7为本发明实施例八邻域法的示意图;

图8为本发明实施例区域比较模块的结构示意图;

图9为本发明实施例坐标确定模块的结构示意图;

图10为本发明实施例瞳孔定位方法的流程图。

具体实施方式

下面结合附图和实施例对本发明的具体实施方式作进一步详细描述。以下实施例用于说明本发明,但不用来限制本发明的范围。需要说明的是,在不冲突的情况下,本申请中的实施例及实施例中的特征可以相互任意组合。

眼球追踪技术是基于图像处理方法,通过安装在眼睛前面的摄像装置(如ccd相机)实时捕捉眼睛的图像,通过图像处理获得瞳孔的中心坐标,同时将眼睛角膜上形成的高亮度光斑(purkinjeimage)作为参考点。当眼球注视不同位置时,近似球体的眼球转动而光斑不动,利用瞳孔中心坐标和光斑坐标的关系,就可以计算出眼睛当前视线落坐在眼睛前方显示屏的位置,进而对显示屏进行操作,实现人机交互或注视点渲染等功能。由此可见,瞳孔的精确定位是眼球追踪技术的基础。目前,现有瞳孔定位方法通常是先缓存至少一帧眼睛图像数据,通过对逐个像素进行遍历和计算得到瞳孔图像,然后对瞳孔图像进行边界提取得到瞳孔轮廓,根据瞳孔轮廓得到瞳孔的中心坐标。

经本申请发明人研究发现,由于现有瞳孔定位方法需要遍历整帧图像,且第n行的数据要分别与第n-1行、第n-2行、……、第2行、第1行的数据进行逐行整合判断,运算量大,因此处理速度慢,处理时间通常大于4ms,在摄像设备输出眼睛图像的空白(blanking)时段内无法处理完成。例如,当摄像设备采用频率120hz进行采样并实时输出眼睛图像时,如果采集眼睛图像的时刻是第n帧,采用现有方法进行处理时,瞳孔中心坐标只能映射到第n+3帧或第n+4帧上,使用者会明显感受到视线坐标的偏差。同时,由于现有瞳孔定位方法需要缓存至少一帧眼睛图像数据,且运算量大,因此硬件化实现需要过多的存储资源及逻辑资源,成本高,功耗大,甚至达到不可接受的程度,且同样存在延迟问题。

为了解决现有瞳孔定位技术设备成本高、处理速度慢的技术问题,本发明实施例提供了一种基于硬件实现的瞳孔定位装置和方法,以及头戴式虚拟现实设备的显示驱动器。

图1为本发明实施例瞳孔定位装置的结构示意图,如图1所示,基于硬件实现的瞳孔定位装置的主体结构包括预处理电路1和坐标处理电路2,预处理电路1用于在眼睛图像传输过程中,对眼睛图像进行预处理,获得眼睛图像的所有边界点,坐标处理电路2用于对所有边界点进行连通区域处理,根据最大连通区域确定瞳孔中心坐标。

本发明实施例提供了一种基于硬件实现的瞳孔定位装置,通过在数据传输过程中对眼睛图像进行预处理,不仅避免了帧缓存,节省了存储资源,而且在数据传输的同时一步到位地获得眼睛图像的所有边界点,随后根据所有边界点利用硬件化的连通区域处理方式确定瞳孔中心坐标,避免了导致延迟的大数据量运算,提高了处理速度,缩短了处理时间,节省了逻辑资源,解决了现有瞳孔定位技术设备成本高、处理速度慢的技术问题。本发明实施例预处理电路和坐标处理电路所使用的存储资源和逻辑资源很少,便于硬件实现并集成在头戴式虚拟现实设备的显示驱动器中,支持120hz摄像设备实时采集并实时处理,实现了将第n帧的瞳孔中心坐标映射到第n+1帧上。

图2为本发明实施例预处理电路的结构示意图,如图2所示,基于硬件实现的预处理电路包括第一缓存模块11、第二缓存模块12、预处理模块13和存储模块14,第一缓存模块11和第二缓存模块12与采集眼睛图像的摄像设备(未示出)连接,预处理模块13分别与第一缓存模块11和第二缓存模块12连接,存储模块14与预处理模块13连接。其中,第一缓存模块11用于在第i个缓存周期,缓存摄像设备所传输眼睛图像的第i行数据,并在第i+1个缓存周期,将第i行数据发送给预处理模块13。第二缓存模块12用于在第i+1个缓存周期,缓存摄像设备所传输眼睛图像的第i+1行数据,并在第i+2个缓存周期,将第i+1行数据发送给预处理模块13。预处理模块13用于对接收的数据进行预处理,获得眼睛图像的边界点,发送给存储模块,存储模块14用于存储眼睛图像的所有边界点。其中,i=1,……,n-1,n为眼睛图像的像素行数。

本发明实施例中,第一缓存模块11和第二缓存模块12可以采用双口随机存取存储器(random-accessmemory,ram),两个ram分别缓存眼睛图像数据流的奇行数据和偶行数据进行乒乓操作。预处理模块13可以采用由ram读写控制器、比较器和计数器等器件构成的硬件电路,也可以采用相应的集成电路,如现场可编程门阵列(field-programmablegatearray,fpga),存储模块14可以采用单口或双口ram。现有技术中,通过安装在眼睛前面的摄像装置实时捕捉眼睛的图像后,图像数据被发送给图像采集卡,由图像采集卡再传输给计算机设备形成完整帧并进行后续处理。本发明实施例中,将眼睛图像的预处理设置在采集眼睛图像后的数据传输过程中,对于摄像装置实施传输的图像数据流,第一缓存模块11和第二缓存模块12均只缓存一行数据,且该行数据随即被预处理模块13处理,延迟一行时间即可得到数据量很小的边界点数据,最大限度地减小了数据量,为提高后续处理的速度和减少后续处理时间奠定了良好的基础。其中,乒乓操作是常用于数据流控制的处理方式,在ram读写控制器的切换控制下缓存数据并将数据发送给后续模块进行运算处理,其实现方式为本领域技术人员了解,这里不再赘述。

图3为本发明实施例预处理模块的结构示意图,如图3所示,预处理模块包括依次连接的灰度转换单元131、滤波单元132、二值化单元133、边界单元134和边界提取单元135,其中,灰度转换单元131用于对第一缓存模块11或第二缓存模块12发送的数据进行灰度转换处理;滤波单元132用于对经灰度转换单元131灰度转换处理后的数据进行滤波处理;二值化单元133用于对经滤波单元132滤波处理后的数据进行二值化处理;边界单元134用于对经二值化单元133二值化处理后的数据进行边界腐蚀和膨胀处理;边界提取单元135用于对经边界单元134边界腐蚀和膨胀处理后的数据进行边界提取处理。

为了最大限度地减小数据量,提高处理速度,灰度转换单元131首先将摄像装置采集的彩色图像进行灰度转换,将rgb图像数据转换为8bit的灰度图像数据。随后,滤波单元132对灰度图像数据进行滤波处理,去除图像中的噪声。本发明实施例中,可以采用本领域熟知的算法进行灰度转换和滤波处理。例如,滤波处理可以采用高斯滤波,去除图像中的高斯噪声。高斯滤波是一种线性平滑滤波,是对图像进行加权平均的过程,每一个像素点的灰度值,都由其本身和邻域内的其它像素的灰度值经过加权平均后得到。图4为本发明实施例高斯滤波3*3模板的示意图。如图4所示,高斯滤波可以采用3*3的实现方式,即用一个3*3模板扫描图像中的每一个像素,用模板确定的邻域内像素的加权平均灰度值去替代模板中心像素点的灰度值。实际实施时,可以采用多种方式实现高斯滤波处理。例如,两个ram分别缓存眼睛图像的第i行和第i+1行数据,当第i+2行数据到来时,使用三个寄存器缓存第i+2行数据的前三个像素点的数据,同时分别从两个ram中读出第i行和第i+1行数据的前三个像素点,从而形成3*3的模版。处理完一个像素点后,继续从两个ram中分别读出一个像素点,与第i+2行数据的新的像素点再次形成3*3模版,直到遍历完整帧图像。本发明实施例的上述处理,只需缓存两行数据即可完成,资源占有量很小。

在灰度转换单元131和滤波单元132处理后,二值化单元133对处理后的数据进行二值化处理。二值化处理的本质是将8bit的256个灰阶的图像处理成只有0或255两个灰阶的图像,即将灰度图像转化为黑白图像。具体地,二值化处理包括:遍历行数据的每个像素,将每个像素的灰度值与预先设置的灰度阈值进行比较,如像素的灰度值大于或等于灰度阈值,则设置该像素的灰度值为0,如像素的灰度值小于灰度阈值,则设置该像素的灰度值为1,得到二值化图像。二值化处理不仅可以将图像简单化,凸显出瞳孔的轮廓,而且可以减小数据量,有利于图像的后续处理。通过设置灰度阈值,可以将所有灰度值小于灰度阈值的像素判定为瞳孔区域,其灰度值设置为1后输出缓存,其它像素则判定为瞳孔以外区域,其灰度值设置为0后输出缓存,因此二值化处理处理后,变为两行1bit数据,缓存量极小。实际实施时,可以采用本领域熟知的二值化处理算法,灰度阈值可以根据图像整体和局部特征预先设定。

在二值化单元133处理后,边界单元134对二值化数据进行边界腐蚀和膨胀处理,以清晰边界,得到具有清晰边界的二值化数据。二值化图像的腐蚀和膨胀也称为开运算,可以消除细小物体,在纤细处分离物体和平滑较大物体边界,具体处理是将一个小图在一个大图上逐点移动并进行比较,根据比较的结果作出相应处理。腐蚀处理时,如果结构元素中的所有黑色点与它对应的大图像素点完全相同,该点为黑色,否则为白色。膨胀处理时,如果结构元素中只要有一个及以上黑色点与它对应的大图像素点相同,该点为黑色,否则为白色。也就是说,如果结构元素中的所有黑色点与它对应的大图像素点没有一个相同,该点为白色,否则为黑色。结构元素中的所有黑色点与它对应的大图像素点没有一个相同,说明大图的这些像素点都是白色的,假如二值图的骨架为白色点,这个对黑色骨架二值图的膨胀处理恰好是对白色骨架二值图的腐蚀处理。实际实施时,可以采用本领域熟知的边界腐蚀和膨胀处理算法,这里不再赘述。

在边界单元134处理后,边界提取单元135对具有清晰边界的二值化数据进行边界提取,获得图像中的边界点。本发明实施例中,采用四邻域法进行边界提取。图5为本发明实施例四邻域法的示意图。如图5所示,四邻域法的基本原理是,对于选定的像素点a,其四个相邻像素点分别为:上侧的像素点1、下侧的像素点2、左侧的像素点3和右侧的像素点4,由此可以定义这些相邻像素点之间的连接性,即这些像素点之间是否连接。连接性定义为:在一个像素行或列,如果所有像素的灰度值都相同(0或1),并依次相邻,则这个像素列中的任意两个像素点之间是存在连接关系的,否则两个像素点之间为非连接关系。具体处理中,可以先选定一灰度值为1的像素点a,分别判断其上侧的像素点1、下侧的像素点2、左侧的像素点3和右侧的像素点4四个相邻像素点的灰度值,若四个灰度值中至少有一个为0,则判断像素点a为边界像素点,否则判断像素点a不是边界像素点。遍历所有像素点,可以获得所有是边界点的像素点,将不是边界点的像素点的灰度值设置为0,将处理后的数据存储在存储模块。实际实施时,可以使用两个双口ram分别缓存奇偶行,对二值数据进行乒乓操作并结合寄存器方式来实现。

实际实施时,预处理模块还可以包括剪裁单元,剪裁单元用于在对眼睛图像进行灰度转换之前进行剪裁处理,通过剪裁处理,将眼睛图像中的眼睫毛、眼皮褶皱、眼睑等部分剪裁掉,截取出白眼珠、黑眼珠和瞳孔等有用部分,以减小基础图像的数据量。实际实施时,可以采用对传输数据流进行流处理方式来实现。

通过上述介绍可以看出,本发明实施例预处理电路不需要帧缓存,只需缓存两行数据,在数据传输的同时遍历眼睛图像的每个像素点,通过判断和计算,一步到位地提取出眼睛图像中瞳孔及噪声的所有边界点,并实时输出处理结果,利用极少的存储资源和逻辑资源即可实现。与缓存并遍历整帧图像的现有技术相比,本发明实施例通过在数据传输时最大限度地减小数据量,提高了处理速度,减小了资源占有,为后续处理提高处理速度和减少处理时间提供了良好的基础。

图6为本发明实施例坐标处理电路的结构示意图,为了减小存储资源和逻辑资源,同时解决延迟的问题,本发明实施例提供了一种硬件化实现的连通区域处理方案,处理时间小于1ms,可以在摄像设备输出眼睛图像的空白时段内完成,不会占用有效数据传输时段。如图6所示,基于硬件实现的坐标处理电路包括依次连接的区域确定模块21、区域比较模块22和坐标确定模块23,区域确定模块21与预处理电路的存储模块连接,用于根据眼睛图像的所有边界点,确定所有的连通区域;区域比较模块22用于比较所有的连通区域的大小,确定最大连通区域;坐标确定模块23用于根据最大连通区域确定瞳孔中心坐标。其中,区域确定模块21、区域比较模块22和坐标确定模块23均可以采用由ram读写控制器、比较器和计数器等器件构成的硬件电路实现,也可以采用fpga实现。

区域确定模块21具体用于,从预处理电路的存储模块中读取经过预处理的数据,采用八邻域法确定所有的连通区域,并保存所有的连通区域边界点坐标。图7为本发明实施例八邻域法的示意图。八邻域法是一种轮廓跟踪方法,通过顺序找出边界点来跟踪边界,实际上是对所有边界点进行归类,可以找到所有的连通区域。如图7所示,对于选定的像素点a,其八个相邻像素点分别为:正左侧的像素点1、左下侧的像素点2、正下侧的像素点3、右下侧的像素点4、正右侧的像素点5、右上侧的像素点6、正上侧的像素点7和左上侧的像素点8。由于预处理电路的存储模块中所存储的数据是经过边缘提取的二值化数据,因此连通区域处理仅需对边界点进行处理即可。其处理流程为,首先从存储模块中按地址读出每个像素点,找到每个连通区域的第一个边界点(灰度值为1的像素点),记为边界点a0,然后采用八邻域法,顺序判断像素点1、像素点2、像素点3、像素点4、像素点5、像素点6、像素点7和像素点8的灰度值,若判断某像素点(如像素点3)的灰度值为1,则该像素点3便为新的边界点,记为边界点a1,跳至边界点a1重复采用八邻域法进行顺序判断,依次找到边界点a2……an,如果an等于边界点a1且前一个边界点an-1等于边界点a0,表明已经转了一圈,则停止处理,边界跟踪结束,由边界点a0、a1、a2、……、an-2构成的边界便为一个连通区域。处理的同时,保存连通区域的每个边界点的坐标。

图8为本发明实施例区域比较模块的结构示意图。如图8所示,基于硬件实现的区域比较模块包括第一缓存单元221、第二缓存单元222、比较控制单元223和存储单元224,第一缓存单元221和第二缓存单元222与区域确定模块21连接,同时与比较控制单元223连接,比较控制单元223还与存储单元224连接。其中,第一缓存单元221用于从区域确定模块21读取第j个连通区域的边界点坐标,并统计第j个连通区域边界点坐标的数量mj;第二缓存单元222用于从区域确定模块21读取第j+1个连通区域的边界点坐标,并统计第j+1个连通区域的边界点坐标的数量mj+1;其中,j=1,……,m-1,m为连通区域的数量;比较控制单元223用于比较mj与mj+1的大小,当mj<mj+1时,说明第一缓存单元221读取的连通区域较小,则控制第一缓存单元221读取下一个连通区域的边界点坐标并获得该连通区域边界点坐标的数量,比较控制单元223重新比较连通区域的大小;当mj>mj+1时,说明第二缓存单元222读取的连通区域较小,则控制第二缓存单元读取下一个连通区域的边界点坐标并获得该连通区域边界点坐标的数量,比较控制单元223重新比较连通区域的大小;依次类推,直到遍历所有的连通区域,边界点坐标数量最多的连通区域即为最大连通区域,比较控制单元223将最大连通区域的边界点坐标发送给存储单元224,存储单元224存储最大连通区域的边界点坐标。

由于本发明实施例上述处理只需存储连通区域的边界点,数据量约为100kbits~200kbits,因此数据处理量小,处理速度快,处理时间小于1ms。实际上,处理时间主要用于对ram进行读写控制,在实际实施时,可以开辟多个ram同时读写,可进一步缩短处理时间,可以将处理时间控制在几百μs的量级。同时,本发明实施例上述处理可以采用由ram读写控制器、比较器和计数器等构成的硬件即可实现,使用的逻辑资源极少。

图9为本发明实施例坐标确定模块的结构示意图。如图9所示,基于硬件实现的坐标确定模块包括读取单元231、直径确定单元232和坐标确定单元233,读取单元231与区域比较模块的存储单元连接,用于从区域比较模块的存储单元中读取最大连通区域的边界点坐标;直径确定单元232与读取单元231连接,用于遍历所有的边界点坐标,获得最小横坐标、最大横坐标、最小纵坐标和最大纵坐标,根据最小横坐标、最大横坐标、最小纵坐标和最大纵坐标确定最大连通区域的双直径;坐标确定单元233与读取单元231连接,用于从所有的边界点中选择p个边界点,采用椭圆拟合法利用p个边界点确定最大连通区域的中心坐标,作为瞳孔中心坐标;其中,p=6、7、8、9或10。

椭圆拟合算法是根据最小二乘法原理用椭圆来拟合连通区域的外轮廓,在二维平面坐标系中,椭圆用如下公式表示:

ax2+by2+cxy+dx+ey+f=0

其中,x和y为边界点的横、纵坐标,xc和yc为椭圆中心位置的横、纵坐标,a、b、c、d、e为椭圆参数,f为常数项。椭圆拟合算法的处理流程为,先选取6个点,得到6个方程以求解椭圆参数a、b、c、d、e和f,若方程有解且满足约束条件,则可以通过椭圆参数计算出椭圆中心坐标。该算法为本领域技术人员所熟知,这里不再赘述。本发明实施例中,可以采用在最大连通区域选取6~10个边界点进行处理。具体地,直径确定单元232从读取单元231中依次读出边界点坐标,两两比较得到最小横坐标、最大横坐标、最小纵坐标和最大纵坐标的四个像素点,即找到4个椭圆轮廓点,根据这4个椭圆轮廓点的坐标可以确定最大连通区域的双直径。坐标确定单元233从读取单元231中依次读出边界点坐标,统计所有的边界点坐标的数量s,从一边界点开始,每隔s/p个边界点选取一个边界点,采用椭圆拟合法根据p个边界点坐标求解椭圆参数,根据椭圆参数确定最大连通区域的中心坐标,作为瞳孔中心坐标。实际实施时,可以将直径确定单元得到的4个椭圆轮廓点作为确定椭圆参数的约束条件,也可以不设置直径确定单元,即不进行椭圆轮廓点的处理,而是采用8~10个边界点进行处理,先随机选取6个点求解椭圆参数,若方程有解且满足约束条件,则将解加入参数空间进行积累,然后对其它6个点组合重复同样的操作,最后利用积累参数的中值作为最后的估计值。

通过上述介绍可以看出,本发明实施例坐标处理电路可以利用极少的存储资源和逻辑资源(如ram读写控制器、比较器、计数器)即可实现,不仅数据量小,约为100kbits~200kbits,无需开辟较大的存储空间,而且算法简单,处理速度快,处理时间小于1ms,对于摄像设备采用120hz实时采集的眼睛图像,可以将第n帧的瞳孔中心坐标映射到第n+1帧上。进一步,本发明实施例坐标处理电路使用的逻辑资源极少,硬件化实现具有成本低、功耗小等优点,便于集成在头戴式虚拟现实设备的显示驱动器中。

基于前述的技术构思,本发明实施例还提供了一种基于硬件实现的瞳孔定位方法。图10为本发明实施例瞳孔定位方法的流程图。如图10所示,基于硬件实现的瞳孔定位方法包括:

s1、在眼睛图像传输过程中,对所述眼睛图像进行预处理,获得所述眼睛图像的所有边界点;

s2、对所有边界点进行连通区域处理,根据最大连通区域确定瞳孔中心坐标。

其中,步骤s1包括:在眼睛图像传输过程中,采用两个双口随机存取存储器分别缓存摄像设备所传输眼睛图像的两行数据,通过乒乓操作对数据进行预处理,获得眼睛图像的所有边界点。

其中,对数据进行预处理包括:灰度转换处理、滤波处理、二值化处理、边界腐蚀和膨胀处理、以及边界提取处理。

其中,对数据进行预处理还包括:对所述眼睛图像进行剪裁处理。

其中,步骤s2包括:

s21、根据所述眼睛图像的所有边界点,采用八邻域法确定所有的连通区域;

s22、比较所有的连通区域的大小,确定最大连通区域;

s23、根据所述最大连通区域确定瞳孔中心坐标。

其中,步骤s22包括:采用两个双口随机存取存储器分别读取两个连通区域的边界点坐标,并分别统计两个连通区域的边界点坐标的数量,比较两个连通区域的边界点坐标的数量,边界点坐标数量少的随机存取存储器读取其它连通区域的边界点坐标,重新比较,直至遍历所有的连通区域,边界点坐标数量最多的连通区域为最大连通区域。

其中,步骤s23包括:

s231、依次读取最大连通区域的边界点坐标,通过两两比较获得最小横坐标、最大横坐标、最小纵坐标和最大纵坐标,确定最大连通区域的双直径;

s232、从所有的边界点中选择p个边界点,采用椭圆拟合法确定最大连通区域的中心坐标,作为瞳孔中心坐标;其中,p=6、7、8、9或10。

其中,从所有的边界点中选择p个边界点,包括:统计所有的边界点坐标的数量s,从一边界点开始,每隔s/p个边界点选取一个边界点。

有关灰度转换、滤波、二值化处理、边界腐蚀和膨胀处理、边界提取、确定最大连通区域、确定瞳孔中心坐标等处理流程可参见瞳孔定位装置的内容,这里不再赘述。

基于前述的技术构思,本发明实施例还提供了一种头戴式虚拟现实设备的显示驱动器,包括前述的瞳孔定位装置。通常,头戴式虚拟现实设备的主体结构包括佩戴主体、设置在佩戴主体内的显示设备以及摄像设备,显示设备包括一个或多个显示屏以及显示驱动器。本发明实施例中,瞳孔定位装置集成在显示驱动器中,摄像设备采集使用者的眼睛图像,并将眼睛图像发送给瞳孔定位装置,瞳孔定位装置通过图像处理获得瞳孔的中心坐标,并结合光斑坐标计算出使用者眼睛当前视线落坐在显示屏的位置,进而对显示屏进行操作,实现人机交互或注视点渲染等功能。

在本发明实施例的描述中,需要理解的是,术语“中部”、“上”、“下”、“前”、“后”、“竖直”、“水平”、“顶”、“底”“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本发明和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本发明的限制。

在本发明实施例的描述中,需要说明的是,除非另有明确的规定和限定,术语“安装”、“相连”、“连接”应做广义理解,例如,可以是固定连接,也可以是可拆卸连接,或一体地连接;可以是机械连接,也可以是电连接;可以是直接相连,也可以通过中间媒介间接相连,可以是两个元件内部的连通。对于本领域的普通技术人员而言,可以具体情况理解上述术语在本发明中的具体含义。

本领域内的技术人员应明白,本发明的实施例可提供为方法、系统、或计算机程序产品。因此,本发明可采用完全硬件实施例、完全软件实施例、或结合软件和硬件方面的实施例的形式。

虽然本发明所揭露的实施方式如上,但所述的内容仅为便于理解本发明而采用的实施方式,并非用以限定本发明。任何本发明所属领域内的技术人员,在不脱离本发明所揭露的精神和范围的前提下,可以在实施的形式及细节上进行任何的修改与变化,但本发明的专利保护范围,仍须以所附的权利要求书所界定的范围为准。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1