掌桥专利:专业的专利平台
掌桥专利
首页

一种基于摄像头眼动追踪的穿透式屏幕系统的实现方法

文献发布时间:2023-06-19 10:43:23


一种基于摄像头眼动追踪的穿透式屏幕系统的实现方法

技术领域

本发明涉及一种基于摄像头眼动追踪的穿透式屏幕系统的实现方法,属于增强现实技术领域。

背景技术

目前眼动追踪的技术已经应用于各个领域,在人机交互方面,通过眼睛去控制计算机已经成为了一个可行的交互方式。眼动追踪也可以用于分析用户心理,以方便程序员进行网页布局规划,个性广告推荐等工作,使得最重要的信息更容易被用户捕获。在医疗领域,眼动追踪也能更方便的帮助查看患者眼睛的状况。部分残疾人或者行动十分不方便的人都可以利用眼动追踪仪实现更方便的交互。在安全领域,眼动追踪帮助机器更好的识别人体眼睛特征,实现更高的安全性[Kyle Krafka,Aditya Khosla,Petr Kellnhofer,Harini D.Kannan,Antonio Torralba.Eye Tracking for Everyone.CVPR,2016],[R.Jacob and K.S.Karn.Eye tracking in human-computer interaction andusability research:Ready to deliver the promises.Mind,2003],[C.H.Morimoto andM.R.Mimica.Eye gaze tracking techniques for interactive applications.CVIU,2005.1]。本发明使用眼动追踪技术主要利用了其中的眼球定位功能。

本发明中的穿透式屏幕指的是透过屏幕观察到的虚拟场景具有一定的立体感,达到以假乱真的效果。目前市面上有许多类似的作品,比如最近在推特上爆红的成都3D户外屏幕,但视频上显示该成品还存在微小的边缘畸变,而且是依靠大面积折面屏展现出来的效果,虽然效果十分惊艳,但造价十分昂贵。再比如Roomality在2020年7月份表示他们将会开发出一种无需戴眼镜的大型3D沉浸式虚拟窗户,该窗户将使用AI渲染场景,并发布了一段视频,但在这之后便没有在发布任何相关讯息,目前我们除了此视频外没有其他关于该项目的信息。可能是通过AI去学习渲染场景并无法完全做到实时,需要进一步优化算法运行速度。总体而言,目前现有技术存在的缺点在于造价昂贵,不够亲民,实时性不够,以及许多相关工作都需要佩戴眼镜,无法做到裸眼。

发明内容

本发明需要解决主要问题是将摄像头坐标系标价与屏幕,人眼对应起来,进行合理的坐标系转换,使人眼位置与虚拟场景相机位置能够一一对应。次要问题是穿透式屏幕的实现,如何构造成像使得屏幕能达到See-through的效果。还有一个非常关键的问题就是使用适当的算法来跟踪眼球的位置,这一步要求对算法的精度有所保证,并且需要能做到实时。

针对现有技术的不足,本发明提供一种基于摄像头眼动追踪的穿透式屏幕系统的实现方法。

本发明的技术方案如下:

将摄像头坐标系转换至标准坐标系再转换至Unity坐标系是本系统的关键,该步骤将现实中与虚拟的标价对齐,是实现穿透式屏幕最首要需要解决的问题之一。让人们感觉到自己移动一公分,虚拟场景也相应移动了一公分,才能实现真实感,并达到以假乱真的效果。

本系统为单目系统,以下提到的眼睛位置均是基于左眼而言的。

一种基于摄像头眼动追踪的穿透式屏幕系统的实现方法,包括步骤如下:

1).首先需要解决单目相机检测眼球并测距的问题。为了解决这一方案,首先需要对相机进行标定实验,获取所需数据;

根据相机针孔模型,有以下公式:

之后通过霍夫圆检测,获取相机每帧的眼球位置,霍夫圆变换的基本思路是认为图像上每一个非零像素点都有可能是一个潜在的圆上的一点,通过投票生成累积坐标平面,设置一个累积权重来定位圆,由于眼球在成像后会有椭圆的形状,所以可以被检测到,这样就能确定眼睛在相机成像上的二维坐标(u,v),设图像中心的坐标为(u0,v0),则眼球的摄像头坐标系下的坐标为

2).建立标准坐标系,如图1所示,定义单眼的一个位置作为标准坐标系的原点,原点与屏幕的中点连线为z轴,该位置沿着标准坐标系的z轴正好穿过屏幕中心,x轴是水平方向的直线,y轴是垂直方向的直线,x轴与y轴组成的平面平行于屏幕;

另外该图也标明了摄像头坐标系,摄像头坐标系的原点处为摄像头,z轴与标准坐标系的z轴互相平行,但方向相反,x轴与y轴则是分别与标准坐标系下的x轴、y轴平行且方向相同,系统一开始识别眼球获取的眼睛位置就是在该坐标系的标价下的;

3).将摄像头坐标系转换到标准坐标系下,再转换到虚拟场景的坐标系中,由于虚拟场景使用unity进行搭建的,因此虚拟场景坐标系也可以称为unity坐标系;

摄像头坐标系到标准坐标系的转换公式为:Cs=A(Ca-D) (1);

其中

接着由于标准坐标系的单位是mm,unity坐标系的单位为m,因此标准坐标系转换至unity坐标系的公式为:Cu=0.001Cs (2);

Cu为眼睛在unity坐标系的坐标;

4).解决相机的成像问题。本发明需要实现屏幕提供类似窗户的视觉效果。窗户上的成像本质上光沿直线传播,人在不同位置能看到的窗户外的范围其实是他所处的位置的光线所能传播至窗户外的范围,然后将相关的成像投影到窗户上。相机的视椎体属性表达了其所能看到的范围,并将该范围内的像呈现在前平面上,可以由此入手。该问题的解决思路就是首先先将现实中的屏幕以及眼睛映射到unity坐标系中,眼睛位置通过步骤3)的转换公式映射到unity坐标系中,然后在现实中测量该原点D位置与屏幕的垂直距离,同时测得屏幕宽、高,确定屏幕在标准坐标系下的位置以及大小,然后利用公式(2)转换到unity坐标系中,这样便完成了映射的操作;

然后再确定虚拟场景下的眼睛(即相机成像原理中的相机)在每个位置下的视椎体,视椎体决定了相机最终成像是的投影区,通过确定相机的视椎体,我们就可以定义相机在其位置下理应看到的虚拟场景区域,进而控制相机成像画面,如图2所示,设定点ABCD所构成的平面就是虚拟屏幕,而点O所在的位置为眼睛,每当眼睛到达一个新的位置时,由程序计算并取出点O到四个点距离最长的线段,并以该长度为标准重新确定另外三个角点在虚拟坐标系下的坐标,利用公式(3)确定点T的坐标,以图2中为例,即OA是最长的,然后延长OB,OC,OD至OB’,OC’,OD’,使得|OA|=|OB'|=|OC'|=|OD'|,然后利用以下关系式:

T=(A+B'+C'+D')/4 (3)

其中A代表距离最长的角点坐标,B'、C'、D'为重新确定的角点坐标,

计算出来的点T便是经过相机眼睛视椎体中心线的点在虚拟坐标系下的坐标,利用该点便可确定视角姿态;

此时所看到的虚拟屏幕内的成像便是我们所需的视觉成像,接着利用透视矩阵进行透视变换即可,下面是该操作的具体描述。

优选的,步骤4)中,利用透视矩阵进行透视变换的步骤如下:

通过调用unity的方法,可获取映射到虚拟场景的虚拟屏幕的四个角点在成像图像上的二维坐标,并且可以与(0,0),(0,height),(width,height),(width,0)(假设最终生成的图像有width*height个像素)形成四个点对,由此可以计算出透视矩阵H,该矩阵为一个3*3的矩阵,计算步骤如下:对于一个点对a(x,y,1),b(x1,y1,1),有如下变换公式:

b=HaT (4);

其中aT是a的转置,a是待透视变换的图像角点,b是成像图像的角点,一个点对便可构造如下矩阵:

四个点对可构造四个上述矩阵,将其合并,得到8行9列的矩阵U;之后构造UT*U矩阵,则UT*U矩阵的最小特征值所对应的特征向量即为透视矩阵H的9个参数;求出透视矩阵后,带入公式(4)中进行透视变换,得到透视后的新图像。

假设原图像的某一个像素的像素坐标为a,该像素转换到新生成的图像上的像素坐标为b,此时有b=HaT

通过上述公式即可进行透视变换,另外,为了加速计算性能,该操作的计算是在GPU上进行的。

映射问题在前三个步骤实现了Tobii坐标系转换到标准坐标系再转换到unity坐标系的过程。另一方面,由于观察过程中眼睛的状态不会改变,因此我们不能直接改变视椎体的参数,因此该问题就简化成每个位置下相机姿态的问题。

本发明的有益效果在于:

1.本发明利用了现有的眼球追踪技术定位了眼球在三维空间的位置,并利用一系列坐标系转换将其转换至虚拟空间,与虚拟空间形成了对应,以此来统一虚拟与现实的标价。

2.找到了符合窗户视觉要求的相机成像规律,并实现了穿透式屏幕的效果,基本达到了以假乱真的效果。

3.成本低廉,带有摄像头的家用电脑即可使用本发明。

附图说明

图1描述了整个现实系统以及系统内定义的标准坐标系和摄像头坐标系示意图;

图2是确定视角姿势算法示意图;

图3是相机近裁面与虚拟屏幕的关系示意图;

图4是相机成像示意图;

图5是进行透视变换后的最终结果示意图。

具体实施方式

下面通过实施例并结合附图对本发明做进一步说明,但不限于此。

实施例1:

一种基于摄像头眼动追踪的穿透式屏幕系统的实现方法,包括步骤如下:

1).首先需要解决单目相机检测眼球并测距的问题。为了解决这一方案,首先需要对相机进行标定实验,获取所需数据;

根据相机针孔模型,有以下公式:

之后通过霍夫圆检测,获取相机每帧的眼球位置,霍夫圆变换的基本思路是认为图像上每一个非零像素点都有可能是一个潜在的圆上的一点,通过投票生成累积坐标平面,设置一个累积权重来定位圆,由于眼球在成像后会有椭圆的形状,所以可以被检测到,这样就能确定眼睛在相机成像上的二维坐标(u,v),设图像中心的坐标为(u0,v0),则眼球的摄像头坐标系下的坐标为

2).建立标准坐标系,如图1所示,定义单眼的一个位置作为标准坐标系的原点,原点与屏幕的中点连线为z轴,该位置沿着标准坐标系的z轴正好穿过屏幕中心,x轴是水平方向的直线,y轴是垂直方向的直线,x轴与y轴组成的平面平行于屏幕;

另外图1也标明了摄像头坐标系,摄像头坐标系的原点处为摄像头,z轴与标准坐标系的z轴互相平行,但方向相反,x轴与y轴则是分别与标准坐标系下的x轴、y轴平行且方向相同,系统一开始识别眼球获取的眼睛位置就是在该坐标系的标价下的;

3).将摄像头坐标系转换到标准坐标系下,再转换到虚拟场景的坐标系中,由于虚拟场景使用unity进行搭建的,因此虚拟场景坐标系也可以称为unity坐标系;

摄像头坐标系到标准坐标系的转换公式为:Cs=A(Ca-D) (1);

其中

接着由于标准坐标系的单位是mm,unity坐标系的单位为m,因此标准坐标系转换至unity坐标系的公式为:Cu=0.001Cs (2);

Cu为眼睛在unity坐标系的坐标;Unity坐标系的单位为m,而标准坐标系的单位是mm,只需要统一单位即可;这也体现了标准坐标系这样设计的好处就是转化到unity坐标系会比较方便。

4).解决相机的成像问题。本发明需要实现屏幕提供类似窗户的视觉效果。窗户上的成像本质上光沿直线传播,人在不同位置能看到的窗户外的范围其实是他所处的位置的光线所能传播至窗户外的范围,然后将相关的成像投影到窗户上。相机的视椎体属性表达了其所能看到的范围,并将该范围内的像呈现在前平面上,可以由此入手。该问题的解决思路就是首先先将现实中的屏幕以及眼睛映射到unity坐标系中,眼睛位置通过步骤3)的转换公式映射到unity坐标系中,然后在现实中测量该原点D位置与屏幕的垂直距离为540mm,同时测得屏幕宽345mm,高195mm,确定屏幕在标准坐标系下的位置以及大小,然后利用公式(2)转换到unity坐标系中,这样便完成了映射的操作;

然后再确定虚拟场景下的眼睛(即相机成像原理中的相机)在每个位置下的视椎体,视椎体决定了相机最终成像是的投影区,通过确定相机的视椎体,我们就可以定义相机在其位置下理应看到的虚拟场景区域,进而控制相机成像画面,如图2所示,设定点ABCD所构成的平面就是虚拟屏幕,而点O所在的位置为眼睛,每当眼睛到达一个新的位置时,由程序计算并取出点O到四个点距离最长的线段,并以该长度为标准重新确定另外三个角点在虚拟坐标系下的坐标,利用公式(3)确定点T的坐标,以图2中为例,即OA是最长的,然后延长OB,OC,OD至OB’,OC’,OD’,使得|OA|=|OB'|=|OC'|=|OD'|,然后利用以下关系式:

T=(A+B'+C'+D')/4 (3)

其中A代表距离最长的角点坐标,B'、C'、D'为重新确定的角点坐标,

计算出来的点T便是经过相机眼睛视椎体中心线的点在虚拟坐标系下的坐标,利用该点便可确定视角姿态;

此时所看到的虚拟屏幕内的成像便是我们所需的视觉成像,接着利用透视矩阵进行透视变换即可,下面是该操作的具体描述。

步骤4)中,利用透视矩阵进行透视变换的步骤如下:

通过调用unity的方法,可获取映射到虚拟场景的虚拟屏幕的四个角点在成像图像上的二维坐标,并且可以与(0,0),(0,height),(width,height),(width,0)(即图4的四个角点)(假设最终生成的图像有width*height个像素)形成四个点对,由此可以计算出透视矩阵H,该矩阵为一个3*3的矩阵,计算步骤如下:对于一个点对a(x,y,1),b(x1,y1,1),有如下变换公式:

b=HaT (4);

其中aT是a的转置,a是待透视变换的图像角点(即图4中黑线框的角点),b是成像图像(即图4本身)的角点,一个点对便可构造如下矩阵:

四个点对可构造四个上述矩阵,将其合并,得到8行9列的矩阵U;之后构造UT*U矩阵,则UT*U矩阵的最小特征值所对应的特征向量即为透视矩阵H的9个参数;求出透视矩阵后,带入公式(4)中进行透视变换,得到透视后的新图像(即图5)。

图3便是上述算法计算出来的相机近裁面(白线框)与虚拟屏幕(黑框)的关系。此时的相机成像如图4显示,黑框内的像便是我们所要得到的成像。因此需要进行透视变换,将相机中黑框的四个点与屏幕四个角点对应,计算出透视矩阵,并进行透视变换,所显示的结果如图5所示。

相关技术
  • 一种基于摄像头眼动追踪的穿透式屏幕系统的实现方法
  • 一种基于眼动仪跟踪的穿透式屏幕系统的实现方法
技术分类

06120112657752