CN114303117A - 使用离轴相机的眼睛跟踪和注视估计 - Google Patents
使用离轴相机的眼睛跟踪和注视估计 Download PDFInfo
- Publication number
- CN114303117A CN114303117A CN202080059575.4A CN202080059575A CN114303117A CN 114303117 A CN114303117 A CN 114303117A CN 202080059575 A CN202080059575 A CN 202080059575A CN 114303117 A CN114303117 A CN 114303117A
- Authority
- CN
- China
- Prior art keywords
- eye
- data
- neural network
- training
- task
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Pending
Links
Images
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
- G06F3/01—Input arrangements or combined input and output arrangements for interaction between user and computer
- G06F3/011—Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
- G06F3/013—Eye tracking input arrangements
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/0093—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00 with means for monitoring data relating to the user, e.g. head-tracking, eye-tracking
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/04—Architecture, e.g. interconnection topology
- G06N3/045—Combinations of networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N3/00—Computing arrangements based on biological models
- G06N3/02—Neural networks
- G06N3/08—Learning methods
- G06N3/084—Backpropagation, e.g. using gradient descent
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/20—Image preprocessing
- G06V10/26—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion
- G06V10/267—Segmentation of patterns in the image field; Cutting or merging of image elements to establish the pattern region, e.g. clustering-based techniques; Detection of occlusion by performing operations on regions, e.g. growing, shrinking or watersheds
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/77—Processing image or video features in feature spaces; using data integration or data reduction, e.g. principal component analysis [PCA] or independent component analysis [ICA] or self-organising maps [SOM]; Blind source separation
- G06V10/774—Generating sets of training patterns; Bootstrap methods, e.g. bagging or boosting
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V10/00—Arrangements for image or video recognition or understanding
- G06V10/70—Arrangements for image or video recognition or understanding using pattern recognition or machine learning
- G06V10/82—Arrangements for image or video recognition or understanding using pattern recognition or machine learning using neural networks
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/18—Eye characteristics, e.g. of the iris
- G06V40/193—Preprocessing; Feature extraction
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V40/00—Recognition of biometric, human-related or animal-related patterns in image or video data
- G06V40/10—Human or animal bodies, e.g. vehicle occupants or pedestrians; Body parts, e.g. hands
- G06V40/18—Eye characteristics, e.g. of the iris
- G06V40/197—Matching; Classification
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/0101—Head-up displays characterised by optical features
- G02B2027/0138—Head-up displays characterised by optical features comprising image capture systems, e.g. camera
-
- G—PHYSICS
- G02—OPTICS
- G02B—OPTICAL ELEMENTS, SYSTEMS OR APPARATUS
- G02B27/00—Optical systems or apparatus not provided for by any of the groups G02B1/00 - G02B26/00, G02B30/00
- G02B27/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06V—IMAGE OR VIDEO RECOGNITION OR UNDERSTANDING
- G06V2201/00—Indexing scheme relating to image or video recognition or understanding
- G06V2201/03—Recognition of patterns in medical or anatomical images
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Health & Medical Sciences (AREA)
- General Health & Medical Sciences (AREA)
- Multimedia (AREA)
- Evolutionary Computation (AREA)
- Human Computer Interaction (AREA)
- General Engineering & Computer Science (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Artificial Intelligence (AREA)
- Software Systems (AREA)
- Computing Systems (AREA)
- Ophthalmology & Optometry (AREA)
- Databases & Information Systems (AREA)
- Medical Informatics (AREA)
- Optics & Photonics (AREA)
- Mathematical Physics (AREA)
- Molecular Biology (AREA)
- Data Mining & Analysis (AREA)
- Computational Linguistics (AREA)
- Biophysics (AREA)
- Biomedical Technology (AREA)
- Life Sciences & Earth Sciences (AREA)
- Image Analysis (AREA)
- User Interface Of Digital Computer (AREA)
Abstract
公开了与计算可穿戴设备的用户的注视向量有关的技术。可以通过第一和第二训练步骤来训练神经网络。神经网络可包括特征编码层集合和多个任务特定层集合,每个任务特定层集合对特征编码层集合的输出进行操作。在第一训练步骤期间,第一眼睛的第一图像可被提供给神经网络,可以使用神经网络来生成眼睛分割数据,并且可以训练特征编码层集合。在第二训练步骤期间,第二眼睛的第二图像被提供给神经网络,可以使用神经网络生成网络输出数据,并且可以训练多个任务特定层集合。
Description
相关申请的交叉引用
本申请要求2019年8月19日提交的题为“EYENET:A MULTI-TASK DEEP NETWORKFOR OFF-AXIS EYE GAZE ESTIMATION AND SEMANTIC USER UNDERSTANDING(眼网:用于离轴眼睛注视估计和语义用户理解的多任务深度网络)”的美国临时申请No.62/888,953、2019年10月25日提交的题为“METHOD AND SYSTEM FOR PERFORMING EYE TRACKING USINGAN OFF-AXIS CAMERA(用于使用离轴相机执行眼睛跟踪的方法和系统)”的美国临时申请No.62/926,241以及2019年11月14日提交的题为“METHOD AND SYSTEM FOR PERFORMINGEYE TRACKING USING AN OFF-AXIS CAMERA(用于使用离轴相机执行眼睛跟踪的方法和系统)”的美国临时申请No.62/935,584的优先权的权益,其整体内容通过引用被并入以用于所有目的。
背景技术
现代计算和显示技术已经促进了用于所谓的“虚拟现实”或“增强现实”体验的系统的开发,其中,数字再现的图像或其部分以看起来是真实的或可以被感知为真实的方式呈现给用户。虚拟现实或者“VR”场景通常涉及数字或者虚拟图像信息的呈现而对于其他实际真实世界视觉输入不透明;增强现实或者“AR”场景通常涉及将数字或者虚拟图像信息呈现为对用户周围的实际世界的可视化的增强。
尽管在这些显示技术中取得了进步,但在本领域中仍需要与增强现实系统(特别是显示系统)有关的改进的方法、系统和设备。
发明内容
本公开一般涉及用于眼睛跟踪的系统和方法。更具体地,本公开的实施例提供了用于在头戴式虚拟现实(VR)、混合现实(MR)和/或增强现实(AR)设备中执行眼睛跟踪以用于注视估计的系统和方法。本公开的实施例使得能量和带宽高效的内容渲染的使用能够以对用户的需求有效且不突兀的方式驱动多焦点显示器。尽管本公开参考AR设备进行描述,但是,本公开可适用于计算机视觉和图像显示系统中的各种应用。
参考下面列出的一系列示例提供本发明内容。如下文所使用的,对一系列示例的任何引用将被理解为分离地对那些示例中的每一个的引用(例如,“示例1至4”将被理解为“示例1、2、3、或4”)。
示例1是一种训练神经网络的方法,该神经网络具有特征编码层集合和多个任务特定层集合,每个任务特定层集合对特征编码层集合的输出进行操作,该方法包括:执行第一训练步骤,包括:将第一眼睛的第一图像提供给神经网络;使用神经网络,基于第一图像生成眼睛分割数据,其中,眼睛分割数据包括将第一眼睛分割成多个区域;以及使用眼睛分割数据训练特征编码层集合;以及执行第二训练步骤,包括:将第二眼睛的第二图像提供给神经网络;使用特征编码层集合和多个任务特定层集合中的每一个,基于第二图像生成网络输出数据;以及使用网络输出数据训练多个任务特定层集合。
示例2是根据示例1的方法,其中,在第一持续时间期间执行第一训练步骤,以及在第一持续时间之后的第二持续时间期间执行第二训练步骤。
示例3是根据示例1的方法,其中,多个区域包括背景区域、巩膜区域、瞳孔区域、或虹膜区域中的一个或多个。
示例4是根据示例1的方法,其中,执行第一训练步骤还包括:使用所述眼睛分割数据,训练多个任务特定层集合中的单个任务特定层集合。
示例5是根据示例4的方法,其中,单个任务特定层集合是多个任务特定层集合中的在第一训练步骤期间被训练的唯一任务特定层集合。
示例6是根据示例1的方法,其中,执行第一训练步骤还包括:接收眼睛分割标注(ground truth,GT)数据;以及将眼睛分割数据与眼睛分割GT数据进行比较。
示例7是根据示例1的方法,其中,在第二训练步骤期间不训练特征编码层集合。
示例8是根据示例1的方法,其中,网络输出数据包括对应于第二眼睛的二维(2D)瞳孔数据。
示例9是根据示例1的方法,其中,网络输出数据包括对应于第二眼睛的闪烁检测数据。
示例10是根据示例1的方法,其中,网络输出数据包括对应于第二眼睛的角膜中心数据。
示例11是根据示例1的方法,其中,网络输出数据包括对应于第二眼睛的眨眼预测。
示例12是根据示例1的方法,其中,网络输出数据包括对应于第二眼睛的眼神分类。
示例13是根据示例1的方法,其中,网络输出数据包括第二眼睛分割数据,第二眼睛分割数据包括将第二眼睛分割成第二多个区域的第二分割。
示例14是一种非暂态计算机可读介质,其包括指令,该指令当由一个或多个处理器执行时使得一个或多个处理器执行示例1至13中的任一项所述的方法。
示例15是一种系统,其包括:一个或多个处理器;以及非暂态计算机可读介质,其包括指令,该指令当由一个或多个处理器执行时使得一个或多个处理器执行示例1至13中的任一项所述的方法。
示例16是一种训练用于对用户眼神进行分类的神经网络的方法,该方法包括:捕获眼睛的图像;将眼睛的图像提供给神经网络;使用神经网络,基于眼睛的图像生成与眼睛对应的眼神分类,其中,该眼神分类是多个可能眼神分类中的一个;确定标注(GT)眼神分类;基于眼神分类与GT眼神分类之间的差异,计算误差数据;以及基于误差数据,修改神经网络。
示例17是根据示例16的方法,其中,使用可穿戴显示设备的相机捕获眼睛的图像。
示例18是根据示例16的方法,其中,确定GT眼神分类包括:接收指示GT眼神分类的用户输入。
示例19是根据示例16的方法,其中,确定GT眼神分类包括:确定被传递给用户的指令指示GT眼神分类。
示例20是根据示例16的方法,还包括:在捕获眼睛的图像之前,向用户传递指示GT眼神分类的指令。
示例21是根据示例16的方法,其中,修改神经网络包括:修改神经网络的权重集合。
示例22是根据示例21的方法,其中,使用反向传播来修改权重集合。
示例23是根据示例16的方法,其中,基于误差数据的幅度来修改神经网络。
示例24是根据示例16的方法,还包括:由多个红外(IR)发光二极管(LED)向眼睛输出光,以使得眼睛的图像包括多个闪烁。
示例25是根据示例16的方法,其中,眼睛的图像包括由多个红外(IR)发光二极管(LED)所输出的光产生的多个闪烁。
示例26是根据示例16的方法,其中,眼睛的图像不包括该眼睛的用户的眉毛。
示例27是根据示例16的方法,其中,多个可能眼神分类包括中性、快乐、歧视、或敏感中的至少一个。
示例28是一种非暂态计算机可读介质,其包括指令,该指令当由一个或多个处理器执行时使得一个或多个处理器执行示例16至27中的任一项所述的方法。
示例29是一种系统,其包括:一个或多个处理器;以及非暂态计算机可读介质,其包括指令,该指令当由一个或多个处理器执行时使得一个或多个处理器执行示例16至27中的任一项所述的方法。
示例30是一种训练用于计算注视向量的神经网络的方法,该方法包括:捕获眼睛的图像;处理眼睛的图像以产生与眼睛对应的光轴;将光轴提供给所述神经网络;使用神经网络,基于光轴生成与眼睛对应的注视向量;确定注视向量标注(GT)数据;基于注视向量与注视向量GT数据之间的差异,计算误差数据;以及基于误差数据,修改神经网络。
示例31是根据示例30的方法,其中,使用可穿戴显示设备的相机捕获眼睛的图像。
示例32是根据示例30的方法,其中,基于目标在屏幕上被显示的位置来确定注视向量GT数据。
示例33是根据示例30的方法,其中,确定注视向量GT数据包括:接收指示注视向量GT数据的用户输入。
示例34是根据示例30的方法,其中,确定注视向量GT数据包括:确定被传递给用户的指令指示注视向量GT数据。
示例35是根据示例30的方法,还包括:在捕获眼睛的图像之前,向用户传递指示注视向量GT数据的指令。
示例36是根据示例30的方法,还包括:在屏幕上的位置处显示目标,其中,基于该位置来确定注视向量GT数据。
示例37是根据示例30的方法,其中,修改神经网络包括:修改神经网络的权重集合。
示例38是根据示例37的方法,其中,使用反向传播来修改权重集合。
示例39是根据示例30的方法,其中,基于误差数据的幅度来修改神经网络。
示例40是根据示例30的方法,还包括:由多个红外(IR)发光二极管(LED)向眼睛输出光,以使得眼睛的图像包括多个闪烁。
示例41是根据示例30的方法,其中,眼睛的图像包括由多个红外(IR)发光二极管(LED)所输出的光产生的多个闪烁。
示例42是根据示例30的方法,其中,注视向量包括至少一个角度。
示例43是一种非暂态计算机可读介质,其包括指令,该指令当由一个或多个处理器执行时使得一个或多个处理器执行示例30至42中的任一项所述的方法。
示例44是一种系统,其包括:一个或多个处理器;以及非暂态计算机可读介质,其包括指令,该指令当由一个或多个处理器执行时使得一个或多个处理器执行示例30至42中的任一项所述的方法。
相对传统技术,通过本公开来实现许多益处。例如,通过眼睛图像,用户的眼睛注视估计和同时理解能够实现能量和带宽高效的内容渲染(注视点渲染),驱动多焦点显示器用于更真实的内容渲染(最小化视觉辐辏调节冲突),并且提供了用于理解用户表情的有效且不突兀的方法。附加的益处在于,使用经训练的网络的估计结合经典的眼睛跟踪流水线很好地工作。已经证明,使用经训练的网络的估计可以在几何眼睛跟踪系统中使用,以提高其总体稳健性和准确度。
此外,本文所描述的多阶段眼睛跟踪模型的结果可以驱动在AR/VR/MR中的其他重要应用。例如,角膜预测可用于注视点渲染,并且眼睛分割对于在基于化身的社交套件应用中渲染眼睛有用。尽管针对大量主题收集注视目标GT数据可能既不准确又困难,但是,通过将中间预测(瞳孔和角膜估计)的训练与最终的3D注视向量估计流水线解耦,使得本文的数据收集明显更简单。由于端到端深度网络中的误差可能难以解释,因此,在每个阶段中使用经训练的网络进行的中间估计提高了可解释性。本公开的其他益处对于本领域技术人员将是容易地明显的。
附图说明
可以通过参考以下附图来实现对各种实施例的性质和优点的进一步的理解。在附图中,相似的部件或特征可以具有相同的附图标记。进一步地,通过参考标记后接破折号和在相似的部件之中进行区分的第二标记,可以区分相同类型的各种部件。如果在说明书中仅使用第一参考标记,则描述可适用于具有相同的第一参考标记的任一个相似部件,而无论第二参考标记如何。
图1示出通过可穿戴AR设备观看到的增强现实(AR)场景。
图2示出AR设备的各种特征。
图3示出人眼的标准双球面模型。
图4示出AR设备的示意图。
图5示出合并了多任务神经网络的用于计算注视向量的系统的示意图。
图6示出多任务神经网络的示意图。
图7示出用于使用来自不同时间步的特征来生成眨眼预测的系统和技术。
图8示出在训练模式中操作的AR设备的示意图。
图9A和图9B示出用于训练多任务神经网络的顺序训练步骤的示意图。
图10示出在运行时模式中操作的AR设备的示意图。
图11示出注视向量神经网络的示意图。
图12示出训练流水线。
图13示出训练具有特征编码层集合和多个任务特定层集合的神经网络的方法。
图14示出训练用于对用户眼神进行分类的神经网络的方法。
图15示出训练用于计算注视向量的神经网络的方法。
图16示出使用神经网络计算注视向量的方法。
图17示出训练神经网络的方法。
图18示出简化的计算机系统。
具体实施方式
通过眼睛图像的用户的眼睛注视估计和同时语义理解是虚拟现实(VR)和混合现实(MR)的重要组成部分;能够实现能量高效的渲染、多焦点显示、以及与3D内容的有效交互。在头戴式VR/MR设备中,眼睛可以被离轴成像,以避免阻挡用户的注视,这可使作出与眼睛相关的推断非常具有挑战性。在本文所描述的各种实施例中,提供了单个深度神经网络,其解决针对离轴相机设置的与眼睛注视估计和语义用户理解相关的多个异构任务。任务可以包括眼睛分割、眨眼检测、情绪表达分类、红外辐射(IR)发光二极管(LED)闪烁检测、以及瞳孔和角膜中心估计。为了端到端地训练神经网络,可以使用人工标记的监督和基于模型的监督。
估计准确注视的过程涉及基于外观的计算(分割、关键点检测,例如瞳孔中心、闪烁),然后是基于几何的计算(例如,在三个维度上估计角膜、瞳孔中心和注视向量)。当前的眼睛跟踪器使用经典的计算机视觉技术(无需学习)以估计瞳孔边界/中心,然后基于那些估计来计算注视。本文所描述的使用训练网络的估计显著地比经典技术更准确。根据本文所描述的一些实施例,单个深度网络被训练以针对离轴眼睛图像联合估计与眼睛和注视估计有关的多个量。
图1示出根据本文所描述的实施例的通过可穿戴AR设备观看到的增强现实(AR)场景。描绘了AR场景100,其中,AR技术的用户看见以背景中的人、树、建筑为特征的现实世界公园般的设置106以及具体平台120。除了这些项目之外,AR技术的用户还感知到他“看见”了站在现实世界平台120上的机器人雕像110以及飞行的卡通状的化身角色102(其似乎是大黄蜂的化身),即使这些元素(角色102和雕像110)在现实世界中不存在。由于人类视觉感知和神经系统的极端复杂性,因此,产生促进其他虚拟或现实世界影像元素之中的虚拟图像元素的舒适的感觉自然的丰富呈现的VR或AR技术是具有挑战性的。
图2示出了根据本公开的一些实施例的AR设备200的各种特征。在一些实施例中,AR设备200可包括投影仪214,该投影仪214被配置为将虚拟图像光222(与虚拟内容相关联的光)投射到目镜202上,以使得用户将一个或多个虚拟对象(例如,角色102和雕像110)感知为位于用户环境内的某个位置处(例如,在一个或多个深度平面处)。用户可以在世界对象230旁边感知这些虚拟对象。AR设备200还可包括离轴相机240和一个或多个发射器262,该发射器262被安装到AR设备200上并且指向用户的眼睛。发射器262可包括IR LED,该IRLED发送对用户的眼睛不可见但离轴相机240可检测的光。在一些实施例中,发射器262可包括发送对用户的眼睛可见的光的LED,以使得离轴相机240不需要具有检测IR光谱中的光的能力。因此,离轴相机240可以是具有或不具有IR检测能力的相机。
在AR设备200的操作期间,离轴相机240可以检测导致对与用户的眼睛相对应的注视向量238的估计的信息(例如,捕获图像)。注视向量238可以针对每个图像帧来计算,并且在各种实施例中,可以被表示为二维(2D)或三维(3D)值。例如,如图2所示,可以使用球坐标系通过极角θ和方位角φ来表示注视向量238。可替代地或附加地,可以使用3D笛卡尔坐标系通过X、Y和Z值来表示注视向量238。注视向量238可以在交点239处与目镜202相交,该交点239可以基于用户的眼睛的位置、目镜202的位置和注视向量238来计算。在一些实例中,投影仪214可以调整虚拟图像光222以相对于视场的其他区域提高交点239周围的图像亮度和/或清晰度。
如图所示,一组四个发射器262被放置在显示器中和周围,并且使用离轴相机240检测它们的反射(闪烁)。该设置针对用户的左眼是重复的。所检测到的闪烁被用于估计眼睛中的不可从眼睛相机图像直接观察到的重要几何量。如图2所示,在用户的注视与相机轴之间可以存在大的角度。这使眼睛注视估计由于瞳孔的偏心率增加、由眼睑和睫毛引起的部分遮挡以及由于环境照明而引起的闪烁干扰而具有挑战性。
图3示出了人眼的标准双球面模型300。根据模型300,眼球体302可以完全或部分地包围内角膜球体304。角膜中心306可以是角膜球体304的几何中心。瞳孔中心308可以对应于眼睛的瞳孔开口或瞳孔中心,并且可以由角膜球体304包围。眼睛的光轴310可以是通过连接角膜中心306和瞳孔中心308来形成的向量。注视向量238(可替代地被称为视轴)可以通过连接角膜中心306和在眼睛后部的中央凹312来形成。由于中央凹312通常是未知的并且难以估计,因此,可以使用光轴310和用户特定的校准角度κ来计算注视向量238。校准角度κ可以是一维(1D)、2D或3D值,并且可以在AR设备200由该用户第一次操作时在校准阶段期间针对特定用户来校准。一旦针对特定用户计算校准角度κ,则假定它是固定的。因此,使用角膜中心306和瞳孔中心308估计光轴310可以是注视跟踪的重要基础。
图4示出了根据本公开的一些实施例的AR设备200的示意图。AR设备200可包括左目镜202A、右目镜202B、直接附接在左目镜202A上或附近的左面向前世界相机206A、直接附接在右目镜202B上或附近的右面向前世界相机206B、左侧向世界相机206C、右侧向世界相机206D和处理模块250。发射器262可以被安装到目镜202中的一者或两者上,并且在一些实施例中可以被分成直接安装在左目镜202A上或附近的左发射器262A和直接安装在右目镜202B上或附近的右发射器262B(例如,被安装到AR设备200的框架上)。在一些实例中,AR设备200可包括单个或多个离轴相机260,诸如中心定位的离轴相机260或者如图4所示,被直接安装在左目镜202A上或附近的左离轴相机260A和被直接安装在右目镜202B上或附近的右离轴相机260A。
AR设备200的一些或全部组件可以是头戴式的,以使得所投射的图像可以由用户观看。在一个特定实现中,图4所示的AR设备200的所有组件被安装到可由用户穿戴的单个设备(例如,单个头戴装置)。在另一个实现中,处理模块250与AR设备200的其他组件物理地分离,并且通过有线或无线连接来通信地耦接到AR设备200的其他组件。例如,处理模块250可以各种配置来安装,诸如固定地附接到框架、固定地附接到由用户穿戴的头盔或帽子、被嵌入在头戴式耳机中、或以其他方式可移除地附接到用户(例如,以背包型配置、以腰带耦接型配置等)。
处理模块250可包括至少一个处理器252以及相关联的数字存储器,诸如非易失性存储器(例如,闪存),可利用这两者以辅助数据的处理、高速缓存和存储。数据可包括从传感器(其可以例如操作地耦接到AR设备200)捕获的数据,传感器是诸如图像捕获设备(例如,相机206和离轴相机260)、麦克风、惯性测量单元、加速度计、指南针、GPS单元、无线电设备、和/或陀螺仪。例如,处理模块250可以从相机206接收(一个或多个)图像220,或者更具体地,从左面向前世界相机206A接收(一个或多个)左前图像220A,从右面向前世界相机206B接收一个或多个右前图像220B,从左侧向世界相机206C接收(一个或多个)左侧图像220C,以及从右侧向世界相机206D接收(一个或多个)右侧图像220D。在一些实施例中,(一个或多个)图像220(或从离轴相机260接收的图像)可包括单个图像、一对图像、包括图像流的视频、包括成对图像流的视频等。(一个或多个)图像220(或从离轴相机260接收的图像)可以在AR设备200上电时被周期性地生成并发送到处理模块250,或者可以响应于由处理模块250向一个或多个相机发送的指令而生成。
在一些实施例中,处理模块250的功能可以由被分开安置但通信耦接的两组或更多组电子硬件组件(例如,多组一个或多个处理器、存储设备等)实现。例如,处理模块250的功能可以由被安置在头戴装置内的电子硬件组件并结合被安置在物理地连接到头戴装置的计算设备内的电子硬件组件、在头戴装置的环境内的一个或多个电子设备(例如,智能电话、计算机、外围设备、智能电器等)、一个或多个远程定位的计算设备(例如,服务器、云计算设备等)、或其组合来执行。
目镜202A和202B可以分别包括被配置为引导来自投影仪214A和214B的光的透明或半透明波导。具体地,处理模块250可以使左投影仪214A将左虚拟图像光222A输出到左目镜202A上,并且可以使右投影仪214B将右虚拟图像光222B输出到右目镜202B上。在一些实施例中,每一个目镜202可包括与不同的颜色和/或不同的深度平面相对应的多个波导。
相机206A和206B可以被定位以分别捕获与用户的左眼和右眼的视场基本上重叠的图像。因此,相机206A和206B可以放置在用户的眼睛附近,但又不太近以致模糊用户的视场。可替代地或者附加地,相机206A和206B可以被定位以便分别与虚拟图像光222A和222B的耦入位置对准。相机206C和206D可以被定位以捕获在用户的一侧的图像,例如,在用户的周围视觉内或在用户的周围视觉以外。使用相机206C和206D捕获的(一个或多个)图像220C和220D不必需要与使用相机206A和206B捕获的(一个或多个)图像220A和220B重叠。相机260A和260B可以被定位以分别捕获用户的左眼和右眼的图像。由相机260捕获的图像可以整体显示用户的眼睛或用户的眼睛的某个部分。
在AR设备200的操作期间,处理模块250可以使用多任务神经网络256来计算注视向量238。在一些实施例中,多任务神经网络256可以被存储在与处理模块250的至少一个处理器252相关联的或以其他方式可访问的非暂态存储器中。多任务神经网络256可以是人工神经网络、卷积神经网络、或者可以通过处理示例来逐步“学习”的任何类型的计算系统。例如,可以通过处理表示标注(GT)数据的人工准备的训练数据来训练多任务神经网络256。在处理每个训练数据之后,多任务神经网络256能够生成更接近地近似GT数据的输出。
在一些实施例中,多任务神经网络256包括能够将信号从一个节点发送到另一个节点的已连接节点的集合。例如,多任务神经网络256可包括若干不同层的这种节点。如下文进一步详细描述的,在一些实施例中,多任务神经网络256可包括编码器层和解码器层。在一些实施例中,多任务神经网络256的一个或多个编码器层可以被存储在与第一组一个或多个处理器相关联的非暂态存储器中,而多任务神经网络256的一个或多个解码器层可以被存储在与第二组一个或多个处理器相关联的非暂态存储器中,该第二组一个或多个处理器与第一组一个或多个处理器分开安置但彼此通信地耦接。例如,第一组一个或多个处理器可包括被安置在头戴装置内的一个或多个处理器,而第二组一个或多个处理器可包括被安置在物理地连接到头戴装置的计算设备内的一个或多个处理器、在物理上与头戴装置分离的一个或多个电子设备(例如,智能电话、计算机、外围设备、服务器、云计算设备等)、或其组合。下面进一步描述多任务神经网络256的训练和使用。
图5示出了合并多任务神经网络256的用于计算注视向量的系统的示意图。在一些实施例中,输入图像I(x,y,c)由离轴相机260捕获并作为输入被提供给多任务神经网络256。输入图像I(x,y,c)可以具有H×W×C维度,其中,H是垂直方向上的像素数量,W是水平方向上的像素数量,C是图像的通道数量(例如,对于RGB图像等于3,并且对于灰度图像等于1)。多任务神经网络256可以处理输入图像I(x,y,c),并可以基于输入图像I(x,y,c)生成网络输出数据264。
当AR设备200在运行时模式中操作时,网络输出数据264可与校准角度κ结合使用以计算注视向量238。在一些实施例中,后处理块266可以执行计算注视向量238的一个或多个操作。在其他实施例中,或在相同的实施例中,校准角度κ可以连同输入图像I(x,y,c)一起作为输入被提供给多任务神经网络256,并且注视向量238可以直接被包括在网络输出数据264中,或者可以基于网络输出数据264来计算。
当AR设备200在训练模式中操作时,网络输出数据264可以与GT数据268进行比较。误差数据270可以基于该比较来计算,并且可以表示网络输出数据264与GT数据268之间的差异,以使得在一些实施例中,误差数据270的幅度可以与网络输出数据264与GT数据268之间的差异成比例。可以基于误差数据270(例如,使用修改器272)来修改多任务神经网络256。在一些实施例中,对多任务神经网络256的修改的幅度可以与误差数据270的幅度成比例,以使得网络输出数据264与GT数据268之间的较大差异可以对应于对多任务神经网络256的较大修改。
在一些实施例中,在本文中描述为与训练模式相关联的一些或所有操作可以独立于AR设备200来执行。例如,在这样的实施例中,多任务神经网络256可以在制造和/或分发AR设备200之前被至少部分地训练,并且随后在制造和/或分发AR设备200时被加载到AR设备200上。在这些实施例中的至少一些实施例中,多任务神经网络256可以用来自相对大量主题的数据并且通过不同于AR设备200的一个或多个计算设备来被至少部分地训练。在一些这样的实施例中,AR设备200可以执行在本文中描述为与训练模式相关联的操作中的一个或多个,以便用来自AR设备200的特定用户的数据进一步训练预加载的多任务神经网络256。这可以允许多任务神经网络256的一个或多个部分针对AR设备200的每个用户而变得个性化。在一些实施例中,AR设备200可以针对AR设备200的每个用户存储多任务神经网络256的个性化版本。因此,在这些实施例中,AR设备200可以针对多个不同用户存储多任务神经网络256的多个不同版本,并且可以在运行时使用与AR设备200的当前用户相关联的多任务神经网络256的版本。
图6示出了多任务神经网络256的示意图,该多任务神经网络256包括各种层257。在一些实施例中,多任务神经网络256包括由特征编码层258(可替代地被称为编码器层)组成的特征编码基础网络和由任务特定层294(可替代地被称为解码器层)组成的六个任务分支。这六个任务分支对应于(1)生成2D瞳孔中心数据274的瞳孔中心估计和闪烁定位,(2)生成眼睛分割数据276的眼睛部分语义分割,(3)生成闪烁检测数据278的瞳孔和闪烁存在分类,(4)生成角膜中心数据280的2D角膜估计,(5)生成眨眼预测296的眨眼检测,以及(6)生成眼神分类298的情绪表达分类。
网络输出数据264可包括图6所示的一种或多种类型的数据。基于AR设备200是在训练模式中还是在运行时模式中操作,在后续处理中可以不使用一种或多种类型的数据。可替代地或附加地,一种或多种类型的数据可以不由多任务神经网络256生成以节省处理器使用、功率和/或存储器。可替代地或附加地,可以不基于用户输入来生成一种或多种类型的数据。例如,在AR设备200上操作的某些应用可以请求仅生成特定类型的数据,诸如眼神分类298。
在一些实施例中,特征编码层258可以产生在每个任务分支上共享的编码器特征282。在一些实现中,使用图像特征提取网络和特征金字塔(FPN)以从不同的尺度捕获信息。在一些实现中,来自编码器的最顶层的特征(例如,具有20×15×256的尺寸)可以用作任务分支的输入。
在一些实施例中,多任务神经网络256包括在多任务学习模型中的三个主要的基于外观的任务,其包括:(1)眼睛部分分割,(2)瞳孔和闪烁定位,以及(3)瞳孔和闪烁存在分类。在一些实施例中,眼睛部分分割被定义为向输入图像I(x,y,c)中的每个像素分配来自以下项的类别标签的任务:背景,巩膜,虹膜和瞳孔。对于该任务,可以从编码器网络(例如,特征编码层258)获得与最后一层特征图相对应的编码器特征282,并且使用反卷积层将其上采样到与输入图像I(x,y,c)相同的分辨率。所产生的四通道输出可以针对每个像素独立地使用softmax层来被转换为类别概率。损失可以是所预测的概率分布与从人工注释的标注获得的独热(one-hot)标签之间的交叉熵损失(独热标签是除了一个值之外全部为零的向量,例如[0,0,1,0,0])。
在一些实施例中,对于具有GT类别c的和第k类别的预测概率pk(x,y)的像素x,y,最小化以下损失:
其中,Ix,y[.]是指标函数。总体损失可以是在图像中的所有像素上的损失之和。分割任务用作用于训练特征编码器层258的引导阶段,因为它捕获眼睛图像的丰富语义信息。单独地,眼睛部分分割可以在定位针对闪烁的搜索(使用虹膜边界)和估计瞳孔中心(使用瞳孔边界)方面帮助任何经典流水线的初始阶段。在一些实现中,眼睛部分分割对于渲染数字化身的眼睛可以是有用的。
瞳孔和闪烁定位分支提供四个闪烁和瞳孔中心的像素位置,总共五个关键点。用于这两个任务的网络解码器层(其可类似于眼睛部分分割分支)可以预测在输出处的与五个关键点相对应的一组五个密集图。每个密集图可以被归一化以在所有像素上求和为单位值。然后,可以在训练期间在每个图的所有像素上计算交叉熵损失。一旦经训练,则瞳孔的中心或特定闪烁的位置是与在输出处的最大概率相对应的像素。在一些实施例中,对于每个关键点(四个闪烁和一个瞳孔中心),最小化以下损失:
其中I[.]是指标函数,其在除了GT关键点位置之外的其他地方都是零,px,y是关键点位置的预测概率,并且求和是在图像中的所有像素上。
在现实的设置中,可以通过闭合眼睑来遮挡闪烁和/或瞳孔中心,讨厌的反射可表现为闪烁,和/或对于某些注视角度而言,闪烁可以不出现在反射性角膜表面上。因此,学习对闪烁和瞳孔中心的存在或不存在稳健地进行分类可以是重要的。这些预测可以有效地控制闪烁是否应当被用于角膜中心估计,并类似地用于3D瞳孔中心估计。
对于该任务,可以从编码器网络(例如,特征编码层258)获得与最顶层特征图相对应的编码器特征282,一个卷积层可被用于减少特征通道数量,所减少的特征通道数量可被重塑为一维阵列,并且可以添加一个可训练的全连接层(例如,尺寸为1500×10)以产生输出(例如,尺寸为5×2的输出)。每一对可以表示四个闪烁中的一个和/或瞳孔中心的存在或不存在概率。二元交叉熵损失可用于从人工标记的标注中学习。
关于角膜中心估计,角膜的中心是在眼睛的2D图像中不能观察到的3D的几何量。因此,与瞳孔(瞳孔椭圆中心)或闪烁标记不同,不可能直接对图像上的3D角膜中心的投影位置进行手工标记。因此,可以采用两步法来训练多任务神经网络256的角膜2D中心预测分支。首先,众所周知的几何约束和相关的已知/估计量(LED,闪烁)可用于生成角膜2D监督。然后,可以使用针对每一帧所获得的该基于模型的监督来训练2D角膜分支。
使用多任务神经网络256来预测角膜相对于在评估期间使用几何约束具有两个主要益处。首先,这种预测更加稳健,因为深度网络在训练期间具有使噪声平均的趋势,而标准的网络外优化有时可能不会产生收敛。其次,由于角膜任务分支仅由几个全连接层组成,因此,这种预测可以仅产生小且恒定的时间前馈计算。
面部表情分类任务涉及从输入眼睛图像对用户的情绪表达进行分类。该任务特别具有挑战性,因为仅有用户的眼睛区域可用作输入,而不是眉毛和/或整个面部,如在大多数情绪面部表情分类基准中所使用的。在一些实施例中,考虑以下单独的情绪面部表情:快乐,愤怒,厌恶,恐惧,以及惊讶。这些表情可以被分组为4个离散状态:积极维度(快乐)歧视维度(愤怒和厌恶)敏感维度(恐惧和惊讶),以及中性维度。与其他任务分支一样,特征编码层258是固定的,并且只有面部表情任务分支(由多个FC层组成)被训练以用于表情分类。在一些实施例中,针对每个主题训练该任务分支以产生个性化模型,该模型比用于大量主题的一般模型产生更好的准确度。
在一些实施例中,网络输出数据264可包括2D瞳孔中心数据274。在一些实施例中,2D瞳孔中心数据274可包括被表示为2D值的2D瞳孔中心。例如,2D瞳孔中心可包括在输入图像I(x,y,c)的帧内的与瞳孔的中心(例如,瞳孔中心308)的计算位置相对应的X和Y值。可替代地或附加地,2D瞳孔中心数据274可包括具有H×W维度的矩阵,该矩阵包括二进制值0或1(值1对应于瞳孔的中心的计算位置)。
在一些实施例中,网络输出数据264可包括眼睛分割数据276。眼睛分割数据276可包括将眼睛分割成多个区域。在一个特定实现中,区域可包括背景区域、巩膜区域、瞳孔区域、以及虹膜区域。在另一个特定实现中,区域可包括瞳孔区域和非瞳孔区域。在另一个特定实现中,区域可包括瞳孔区域、眼睛区域(包括眼睛的不是瞳孔区域的一部分的部分)、以及背景区域。
在一些实施例中,眼睛分割数据276可包括具有H×W维度的矩阵,该矩阵包括有限值集,诸如0、1、2和3(分别对应于例如背景区域、巩膜区域、瞳孔区域和虹膜区域)。在一些实施例中,眼睛分割数据276包括将输入图像I(x,y,c)的每个像素分配给包括背景、巩膜、瞳孔和虹膜的一组类别,在一些实施例中,该组类别可以通过以下方式获得:取(解码器)多任务神经网络256的最后一层,并使用反卷积来将其上采样到与输入图像I(x,y,c)相同的分辨率,其进而被馈送到在特征通道上的softmax交叉熵损失,其中每个特征通道表示像素属于某个类别的概率。
在一些实施例中,网络输出数据264可包括闪烁检测数据278。在一些实施例中,闪烁检测数据278包括被表示为2D或3D值的一个或多个闪烁位置。例如,如果仅检测到单个闪烁位置,则闪烁检测数据278可包括单个2D值,或者如果检测到四个闪烁位置,则闪烁检测数据278可包括四个2D值。在一些实施例中,闪烁检测数据278可包括在输入图像I(x,y,c)的帧内的与所检测到的闪烁的计算位置相对应的X和Y值。可替代地或附加地,闪烁检测数据278可包括具有H×W维度的矩阵,该矩阵包括二进制值0或1(值1对应于所检测到的闪烁的位置)。
在一些实施例中,网络输出数据264可包括角膜中心数据280。在一些实施例中,角膜中心数据280可包括被表示为2D值的2D角膜中心或被表示为3D值的3D角膜中心。例如,2D角膜中心可包括在输入图像I(x,y,c)的帧内的与角膜的中心(例如角膜中心306)的计算位置相对应的X和Y值。可替代地或附加地,角膜中心数据280可包括具有H×W维度的矩阵,该矩阵包括二进制值0或1(值1对应于角膜中心的计算位置)。
在一些实施例中,网络输出数据264可包括眨眼预测296。在一些实施例中,眨眼预测296包括二进制值0或1(例如,分别对应于睁眼和眨眼的预测)。在一些实施例中,眨眼预测296包括与是否发生眨眼相关联的概率。检测眨眼是可用于驱动多焦点显示器和/或数字化身的基于外观的任务。可以在一系列图像上捕获眨眼,以使得时间信息可用于区分眨眼和诸如扫视(眼睛的快速侧向运动)的事件。
通常,可能难以准确地定位眼睛完全闭合的眨眼事件,特别是以每秒30帧的标准帧速率。在其他情况下,检测眨眼的开始以减少检测与应用之间的延迟可能是重要的。在一些实施例中,眨眼的简单定义可以是当上眼睑覆盖超过整个瞳孔区域的50%时的眼睛的状态。这对于非专家的人类标记者来说可以是有用的工作定义。给定上述的眨眼定义,由针对诸如眼睛分割的任务而训练的特征编码层258生成的编码器特征282很好地转移到眨眼检测任务。在一些实施例中,预先训练的特征编码网络(例如,特征编码层258)的最顶层(共享表示)用于训练眨眼检测分支。
图7示出了用于使用来自不同时间步的特征来生成眨眼预测296的系统和技术。在所示的实施例中,来自三个连续时间步T-2、T-1和T的编码器特征作为输入aT-2、aT-1和aT被馈送到三层全连接网络,该网络将(在时间T的)当前帧分类为眨眼或睁眼,并且产生指示眨眼或睁眼的输出yT。虽然可以采用更长的时间窗口长度,但是它们导致预测准确度的收益递减。递归神经网络(RNN)和长短期记忆(LSTM)具有相似的训练和测试性能,然而,网络700提供更低的计算要求。
图8示出了在训练模式中操作的AR设备200的示意图。当AR设备200在训练模式中操作时,网络输出数据264包括眼睛分割数据276、闪烁检测数据278和角膜中心数据280。用于生成这些网络输出的特定输入图像I(x,y,c)也可由一个或多个个人手动检查,这些个人可以在由多任务神经网络256生成网络输出数据264之前、之后或同时准备GT数据268。例如,个人可以在电子设备(诸如个人计算机或智能电话)上检查输入图像I(x,y,c)的显示版本。在电子设备上的程序或应用可询问个人与输入图像I(x,y,c)相关的一组问题,并且个人可以使用输入设备(诸如鼠标、键盘、触摸屏等)输入他/她的响应。
在观察和检查输入图像I(x,y,c)时,个人可以通过使用输入设备标识瞳孔的轮廓来准备2D瞳孔中心GT数据283。这可包括个人在瞳孔上放置椭圆边界,并使得瞳孔中心基于所放置的椭圆边界来被自动地计算。可以准备2D瞳孔中心GT数据283,以便具有与2D瞳孔中心数据274(例如,X和Y值)相同的格式和尺寸。此外,在观察和检查输入图像I(x,y,c)时,个人可以通过决定图像的第一区域应被分配为背景区域、第二区域应被分配为巩膜区域、第三区域应被分配为瞳孔区域、第四区域应被分配为虹膜区域来准备眼睛分割GT数据284。可以准备眼睛分割GT数据284,以便具有与眼睛分割数据276(例如,具有H×W维度的矩阵,其包括有限值集,诸如与不同区域对应的0、1、2和3)相同的格式和维度。
此外,在观察和检查输入图像I(x,y,c)时,个人可以通过决定在输入图像I(x,y,c)中存在多少个闪烁位置以及每个闪烁位置的位置来准备闪烁检测GT数据286。可以准备闪烁检测GT数据286,以便具有与闪烁检测数据278(例如,一组2D值)相同的格式和尺寸,或者如果检测到一些数量的闪烁位置(例如,四个),则闪烁检测GT数据286可包括该数量的2D值。在一些实施例中,闪烁检测GT数据286可包括在输入图像I(x,y,c)的帧内的于所检测到的闪烁的计算位置相对应的X和Y值。可替代地或附加地,闪烁检测GT数据286可包括具有H×W维度的矩阵,该矩阵包括二进制值0或1(值1对应于所检测到的闪烁的位置)。
在一个特定实现中,可以通过使个人或一组个人面对在两个不同深度(在例如3米处的近深度和在例如6米处的更远平面)处的3x3点网格来获得GT数据268。在给定的提示下,个人被要求将其注视集中在这18个3D点之一上,这允许针对每一帧收集用于注视向量238的GT数据268(以稍后确定总体准确度)。可以分析(使用由个人穿戴的AR设备的相机)所捕获的个人的眼睛的图像以允许GT数据268包括眼睛分割和闪烁位置信息。由于在以30或60Hz记录针对每个帧注释分割、闪烁和瞳孔中心中存在收益递减,因此,可以针对每个个人统一采样一些数量(例如,200个)的左眼或右眼图像帧,以手动注释分割、闪烁存在或不存在、闪烁2D位置和瞳孔2D位置。在一个特定实验运行中,在数据集中使用87,000个已注释图像来训练和验证多任务神经网络256的性能。
在一些实施例中,误差数据270可包括基于2D瞳孔中心数据274与2D瞳孔中心GT数据之间的差异而计算的第一误差数据270A、基于眼睛分割数据276与眼睛分割GT数据284之间的差异而计算的第二误差数据270B、基于闪烁检测数据278与闪烁检测GT数据286之间的差异的第三误差数据270C、以及由几何约束引擎288生成的第四误差数据270C。几何约束引擎288的输入包括角膜中心数据280、闪烁检测数据278、发射器位置数据290和相机固有参数291中的一个或多个。发射器位置数据290可包括发射器262的固定位置和/或发射器262的发射方向。可以在制造AR设备200时和/或在校准阶段期间确定发射器位置数据290。相机固有参数291可包括离轴相机260的光学中心和/或焦距,以及其他可能。可以在制造离轴相机260时和/或在校准阶段期间确定相机固有参数291。
几何约束引擎288可以执行各种操作以评估不同所生成的数据(闪烁检测数据278和角膜中心数据280)与校准数据(发射器位置数据290)之间的一致性,几何约束引擎288的输出即第四误差数据270D可与似然性或一致性参数反相关。在一些实例中,使用闪烁检测数据278和发射器位置数据290重构角膜球体304,并且第四误差数据270D被设置为所计算的重构的球体的中心与角膜中心之间的距离,如由角膜中心数据280所指示的。
在一些实施例中,通过在不同的训练迭代期间仅使用多任务神经网络256的某些输出顺序地训练来改进多任务神经网络256的训练。在第一训练步骤中,仅使用眼睛分割数据276来训练多任务神经网络256。这可以通过仅使用第二误差数据270B修改多任务神经网络256来完成。一旦多任务神经网络256针对眼睛分割被充分地训练(即,足够准确),则通过附加地使用闪烁检测数据278训练多任务神经网络256来执行第二训练步骤。这可以通过仅使用第三误差数据270C修改多任务神经网络256来完成。一旦多任务神经网络256针对眼睛分割和闪烁检测被充分地训练,则通过附加地使用角膜中心数据280训练多任务神经网络256来执行第三训练步骤。这可以通过使用所有误差数据270修改多任务神经网络256来完成。在一些实例中,可以在不同的训练步骤期间使用相同的训练图像和GT数据。在一些实施例中,AR设备200保持在训练模式中,直到满足准确度阈值或满足最大迭代阈值(例如,所使用的训练图像数量满足迭代阈值)。
图9A和图9B示出了用于训练多任务神经网络256的顺序训练步骤902的示意图。参考图9A,示出了第一训练步骤902-1。在第一训练步骤902-1期间,训练特征编码层258和任务特定层294-2(对应于用于生成眼睛分割数据276的解码器层),而与剩余的任务特定层294无关。例如,在训练迭代期间,输入图像I(x,y,c)可以被提供给多任务神经网络256,并且也可以被呈现给可以准备眼睛分割GT数据284的个人。使用基于眼睛分割数据276与眼睛分割GT数据284之间的差异而计算的第二误差数据270B,修改器272可以修改与特征编码层258和任务特定层294-2相关联的权重(例如,使用反向传播),以使得在后续基于眼睛分割数据276与眼睛分割GT数据284之间的差异而计算第二误差数据270B期间,第二误差数据270B会减小。在第一训练步骤902-1期间,修改器272不修改与任务特定层294-1、294-3、294-4、294-5或294-6相关联的权重。
参考图9B,示出了第二训练步骤902-2。在一些实施例中,在第一训练步骤901-1之后执行第二训练步骤902-2。在第二训练步骤902-2期间,训练任务特定层294-1、294-3、294-4、294-5和294-6中的一个或多个,而与特征编码层258和任务特定层294-2无关。例如,在第一训练迭代期间,输入图像I(x,y,c)可以被提供给多任务神经网络256,并且也可以被呈现给可以准备相关的GT数据268的个人。使用基于网络输出数据264与GT数据268之间的差异而计算的误差数据270,修改器272可以修改与任务特定层294-1、294-3、294-4、294-5和/或294-6相关联的权重(例如,使用反向传播),以使得将后续的计算误差数据270期间,误差数据270会减小。在第二训练步骤902-2期间,修改器272不修改与特征编码层258或任务特定层294-2相关联的权重,尽管在一些实施例中,任务特定层294-2可在第二训练步骤902-2期间被微调,如虚线所示。
在一些实施例中,任务特定层294-1、任务特定层294-2和任务特定层294-3每一个可包括一个或多个卷积层和一个或多个反卷积层。在一些实施例中,任务特定层294-4和任务特定层294-6可以在架构上彼此相似或相同,但可以被训练为两个单独的分支。在这些实施例中的至少一些中,任务特定层294-4和任务特定层294-6每一个可包括一个或多个卷积层。此外,在一些实施例中,任务特定层294-5可以在架构上与神经网络700的相似或相同,如上文参考图7所描述的。
如图6所示,多任务神经网络256的一些输出可以用比多任务神经网络256的其他输出更少的执行操作来获得。例如,角膜中心数据280可以用比其他输出更少的计算来获得,并且眼睛分割数据276可以用比其他输出更多的计算来获得。因此,首先使用眼睛分割数据276训练多任务神经网络256的一个优点在于,可以微调仅用于计算眼睛分割数据276的一些层而不受来自其他输出的反馈影响。
图10示出了在运行时模式中操作的AR设备200的示意图。当AR设备200在运行时模式中操作时,网络输出数据264可包括眼睛分割数据276、闪烁检测数据278和角膜中心数据280。这些输出可以与校准角度κ结合使用,以使用后处理块266计算注视向量238。在一些实施例中,后处理块266可以被分成第一后处理块266A、第二后处理块266B和第三后处理块266C。第一后处理块266A接收2D瞳孔中心数据274和眼睛分割数据276作为输入,并计算3D瞳孔中心292。第二后处理块266B接收3D瞳孔中心292和角膜中心数据280作为输入,并计算光轴310。第三后处理块266C接收光轴310和校准角度κ作为输入,并计算注视向量238。
已经证明了多任务神经网络256的准确度,例如,如在美国临时申请No.62/935,584中所描述的。下面的表显示了眼睛分割的准确度的一个示例,该表提供了眼睛分割混淆矩阵百分比值,其中用于所有四个类别的平均准确度超过97.29%。
GT/Pred | 瞳孔 | 虹膜 | 巩膜 | BG |
瞳孔 | 96.25 | 3.75 | 0.00 | 0.00 |
虹膜 | 0.04 | 99.03 | 0.93 | 0.00 |
巩膜 | 0.00 | 3.27 | 96.71 | 0.02 |
BG | 0.01 | 0.72 | 2.09 | 97.18 |
这些结果在定量和定性评估方面都非常准确。这可能是重要的,因为通过仔细调整的椭圆拟合过程,分割边界可用于生成精确的瞳孔2D中心位置训练数据,特别是对于部分被遮挡的瞳孔的情况。分割预测也可以由经典的几何流水线使用,该流水线可以被用作用于注视估计比较的基线。
作为另一个示例,下面的表显示了瞳孔和闪烁检测的准确度,该表显示了用于使用多任务神经网络256(“NN 256”)和经典流水线中的每一个来预测像素位置的定量结果。
当图像是来自理想设置时,多任务神经网络256和经典的预测都是精确的,误差接近于零。然而,当图像具有严重的反射或者用户注视远离中心目标时,多任务神经网络256能够首先非常准确地检测闪烁的存在或不存在,并且提供对闪烁的稳健标记,而经典的方法存在较差的不存在指示和对闪烁的错误标记,在欧几里得误差度量下导致高得多的误差。
图11示出了注视向量神经网络1102的示意图,其可以基于校准角度κ和光轴310生成注视向量238。在一些实施例中,注视向量神经网络1102可以替换或被并入后处理块266C中。在一个实现中,注视向量神经网络1102包括5层和大约30,000个参数或权重。在一些实施例中,注视向量神经网络1102仅在校准帧上进行训练。
在训练期间,注视向量238可以与注视向量GT数据1104进行比较。误差数据1106可以基于该比较来计算,并可以表示注视向量238与注视向量GT数据1104之间的差异,以使得在一些实施例中,误差数据1106的幅度可以与注视向量238与注视向量GT数据1104之间的差异成比例。可以基于误差数据1106(例如,使用修改器1108)来修改注视向量神经网络1102。在一些实施例中,对注视向量神经网络1102的修改的幅度可以与误差数据1106的幅度成比例,以使得注视向量238与注视向量GT数据1104之间的较大差异可以对应于对注视向量神经网络1102的较大修改。
在一些实施例中,可以通过用户看着在屏幕上生成的目标来获得注视向量GT数据1104。例如,用户可以穿戴AR设备200,该AR设备200可包括先前训练的多任务神经网络256。在训练迭代期间,可以在用户穿戴AR设备200时指示用户看位于显示器上的目标。用户的眼睛的输入图像I(x,y,c)可被捕获,并用于生成光轴310。基于光轴310(并且可选地基于校准角度κ),可以由注视向量神经网络1102生成注视向量238。可以基于可穿戴设备与在显示器上生成的目标之间的关系来确定注视向量GT数据1104。例如,可以基于一个或多个传感器(诸如相机和/或惯性测量单元)确定AR设备200与显示器之间的定向,并且所确定的定向可用于计算用户的眼睛的实际注视向量。
在随后的训练迭代期间,可以将目标移动到显示器上的新位置,可以捕获用户的眼睛的新的输入图像I(x,y,c),并且可以使用新计算的误差数据1106修改注视向量神经网络1102。在各种训练迭代期间,可以将目标移动到屏幕上的各个位置,以便训练注视向量神经网络1102以在大范围的注视角度上稳健地估计注视向量。在一些实施例中,可以在训练过程期间采用各种照明条件和/或用户情绪以与各种注视向量相组合,从而产生经稳健训练的网络。
可以通过下面的表来展示注视估计的准确度的示例,该表显示了针对在不同目标平面上聚集的9个目标中的每一个的注视误差,其中总体注视估计度量被定义为真实注视向量与所估计的注视向量之间的角度误差(例如,以弧分为单位)。
很明显,使用多任务神经网络256和注视向量神经网络1102的估计显著地更好,并且在所有方向上相似。这可主要归因于稳健的闪烁和角膜2D估计连同注视向量神经网络1102的使用。
图12示出了根据本发明的一些实施例的训练流水线1200。在一些实例中,完整的训练可以采取几个步骤,因为框架从不同的源接收GT,并且因为基于模型的监督使用来自训练网络本身的估计。例如,模型首先训练眼睛分割和闪烁预测,然后使用经训练的模型来预测所有未标记数据上的闪烁。接下来,使用这些所预测的闪烁和LED的已知位置,基于标准眼睛模型和几何形状来推断角膜位置。由于对训练模型以预测角膜预测的监督来自使用先前经训练的模型以及标准眼睛模型和几何形状,因此,该技术可以被称为基于模型的监督。
在步骤1202处,首先用眼睛分割标签(例如,眼睛分割GT数据284)训练编码器-解码器网络,因为它提供最丰富的语义信息,并且是要准确训练的最复杂的监督任务。
在步骤1204处,对所有监督任务进行训练。进一步地,在步骤1204处,人标记的闪烁数据(例如,闪烁检测GT数据286)、瞳孔2D中心数据(2D瞳孔中心GT数据283)和眼睛分割数据(例如,眼睛分割GT数据284)可以被一起用于联合训练这三个监督任务中的每一个。在一些实例中,用从眼睛分割中训练的权重进行初始化可以产生比随机初始化更稳定的训练。
在步骤1206处,对所有帧进行闪烁预测(例如,闪烁检测数据278),并且这些闪烁预测连同LED的已知位置(例如,发射器位置数据290)被一起使用,以在步骤1208处生成角膜2D GT(在几何约束引擎288内生成),以用于在步骤1210处训练角膜分支(例如,使用第四误差数据270D)。应当注意,角膜分支用来自整个训练集人群的数据来训练,并且在每个主题校准阶段进一步被个性化(微调)。
在步骤1212处预测了3D瞳孔中心之后,在步骤1214处使用来自校准帧的所预测的角膜(个性化的)和瞳孔3D中心来推断光轴。使用注视目标GT,注视向量神经网络1102在步骤1216处被训练以将光轴转换为视轴。在运行时期间,从多任务神经网络256获得所预测的角膜和瞳孔2D中心。这些量被用于提升到3D以获得光轴,然后,光轴被馈送到注视映射网络中以推断所预测的注视方向。
在主要特征编码分支的中间特征之上训练眨眼和面部表情分类任务。眨眼检测是时间任务,其需要捕获三个连续的眼睛图像并提取它们的中间特征。采用一组预先计算的特征,眨眼检测分支被单独训练,而多任务神经网络256的主要特征编码分支保持冻结。在运行时遵循类似的过程。对于面部表情分类,主要特征编码分支被冻结,并且仅使用表情数据来训练表情分类层。表情预测在运行时期间连同所有其他任务一起产生。
图13示出了训练神经网络(例如,多任务神经网络256)的方法1300,该神经网络具有特征编码层(例如,特征编码层258)集合和多个任务特定层(例如,任务特定层294)集合,每个任务特定层集合对特征编码层集合的输出(例如,编码器特征282)进行操作。方法1300的步骤不需要按所示的顺序执行,并且方法1300的一个或多个步骤可以在方法1300的执行期间省略。在一些实施例中,方法1300的一个或多个步骤可以由处理模块250或AR设备200的一些其他组件来执行。
在步骤1302处,执行第一训练步骤(例如,第一训练步骤902-1)。在一些实施例中,在第一持续时间期间执行第一训练步骤。在一些实施例中,步骤1302包括步骤1304、1306和/或1308。
在步骤1304处,第一眼睛的第一图像(例如,输入图像I(x,y,c))被提供给神经网络。在一些实施例中,第一图像由相机(例如,离轴相机260)捕获和/或从相机接收。在一些实施例中,方法1300包括使用相机捕获第一眼睛的第一图像的步骤。在一些实施例中,方法1300包括将第一眼睛的第一图像从相机发送到处理模块(例如,处理模块250)的步骤。
在步骤1306处,基于第一图像,使用神经网络来生成眼睛分割数据(例如,眼睛分割数据276)。在一些实施例中,眼睛分割数据包括将第一眼睛分割成多个区域。
在步骤1308处,使用眼睛分割数据训练特征编码层集合。在一些实施例中,在第一训练步骤期间,还使用眼睛分割数据训练多个任务特定层集合中的单个任务特定层集合。在一些实施例中,基于眼睛分割数据与眼睛分割GT数据(例如,眼睛分割GT数据284)之间的差异来计算误差数据(例如,误差数据270B)。在一些实施例中,误差数据被用于训练特征编码层集合。
在步骤1310处,执行第二训练步骤(例如,第二训练步骤902-2)。在一些实施例中,在第二持续时间期间执行第二训练步骤。在一些实施例中,第二持续时间在第一持续时间之后。在一些实施例中,步骤1310包括步骤1312、1314和/或1316。
在步骤1312处,第二眼睛的第二图像(例如,输入图像I(x,y,c))被提供给神经网络。第二眼睛可以与第一眼睛相同或者不同。在一些实施例中,第二图像由相机捕获和/或从相机接收。在一些实施例中,方法1300包括使用相机捕获第二眼睛的第二图像的步骤。在一些实施例中,方法1300包括将第二眼睛的第二图像从相机发送到处理模块的步骤。
在步骤1314处,基于第二图像,使用特征编码层集合和多个任务特定层集合中的每一个生成网络输出数据(例如,网络输出数据264)。
在步骤1316处,使用网络输出数据来训练多个任务特定层集合。在一些实施例中,在第二训练步骤期间不训练特征编码层集合。在一些实施例中,基于网络输出数据与GT数据(例如,GT数据268)之间的差异来计算误差数据(例如,误差数据270)。在一些实施例中,误差数据被用于训练多个任务特定层集合。
图14示出了训练神经网络(例如,多任务神经网络256)以用于对用户眼神进行分类的方法1400。方法1400的步骤不需要按所示的顺序执行,并且方法1400的一个或多个步骤可以在方法1400的执行期间省略。在一些实施例中,方法1400的一个或多个步骤可以由处理模块250或AR设备200的一些其他组件来执行。
在步骤1402处,捕获眼睛的图像(例如,输入图像I(x,y,c))。在一些实施例中,第一图像由相机(例如,离轴相机260)捕获和/或从相机接收。在一些实施例中,方法1400包括使用相机捕获眼睛的图像的步骤。在一些实施例中,方法1400包括将眼睛的图像从相机发送到处理模块(例如,处理模块250)的步骤。
在步骤1404处,眼睛的图像被提供给神经网络。在一些实施例中,将眼睛的图像提供给神经网络可包括将表示眼睛的图像的数据作为输入提供给实现神经网络的操作集合。
在步骤1406处,由神经网络生成与眼睛对应的眼神分类(例如,眼神分类298)。在一些实施例中,眼神分类是多个可能眼神分类中的一个。
在步骤1408处,确定GT眼神分类(例如,GT数据268)。在一些实施例中,确定GT眼神分类包括接收指示GT眼神分类的用户输入。例如,用户可以通过输入设备指示他们展现出“快乐的”表情。在一些实施例中,确定GT眼神分类包括确定被传递给用户的指令指示GT眼神分类。例如,可以通过显示设备指示用户展现“快乐的”面部表情。
在步骤1410处,基于眼神分类与GT眼神分类之间的差异来计算误差数据(例如,误差数据270)。
在步骤1412处,基于误差数据来修改神经网络。在一些实施例中,修改神经网络包括修改神经网络的权重集合。在一些实施例中,可以使用反向传播来修改权重集合。在一些实施例中,可以基于误差数据来修改神经网络的任务特定层(例如,任务特定层294-6)集合。
图15示出了训练用于计算注视向量(例如,注视向量238)的神经网络(例如,注视向量神经网络1102)的方法1500。方法1500的步骤不需要按所示的顺序执行,并且方法1500的一个或多个步骤可以在方法1500的执行期间省略。在一些实施例中,方法1500的一个或多个步骤可以由处理模块250或AR设备200的一些其他组件来执行。
在步骤1502处,捕获眼睛的图像(例如,输入图像I(x,y,c))。在一些实施例中,第一图像由相机(例如,离轴相机260)捕获和/或从相机接收。在一些实施例中,方法1500包括使用相机捕获眼睛的图像的步骤。在一些实施例中,方法1500包括将眼睛的图像从相机发送到处理模块(例如,处理模块250)的步骤。
在步骤1504处,处理眼睛的图像以产生与眼睛对应的光轴。在一些实施例中,处理眼睛的图像可包括:使用多任务神经网络(例如,多任务神经网络256)生成2D瞳孔中心数据(例如,2D瞳孔中心数据274)、眼睛分割数据(例如,眼睛分割数据276)、和/或角膜中心数据(例如,角膜中心数据280)。
在步骤1506处,光轴被提供给神经网络。在一些实施例中,将光轴提供给神经网络可包括将表示光轴的数据作为输入提供给实现神经网络的操作集合。
在步骤1508处,由神经网络生成与眼睛对应的注视向量。在一些实施例中,注视向量包括至少一个角度。
在步骤1510处,确定注视向量GT数据(例如,注视向量GT数据1104)。在一些实施例中,基于目标在屏幕上被显示的位置来确定注视向量GT数据。在一些实施例中,确定注视向量GT数据包括接收指示注视向量GT数据的用户输入。例如,用户可以看在屏幕上显示的多个目标中的特定目标,并且提供关于用户看了哪个目标的输入。
在步骤1512处,基于注视向量与注视向量GT数据之间的差异来计算误差数据(例如,误差数据1106)。
在步骤1514处,基于误差数据来修改神经网络。在一些实施例中,修改神经网络包括修改神经网络的权重集合。在一些实施例中,可以使用反向传播来修改权重集合。
图16示出了使用神经网络计算注视向量的方法1600。方法1600的步骤不需要按所示的顺序执行,并且方法1600的一个或多个步骤可以在方法1600的执行期间省略。在一些实施例中,方法1600的一个或多个步骤可以由处理模块250或AR设备200的一些其他组件来执行。
在步骤1602处,接收用户的眼睛的输入图像(例如,输入图像I(x,y,c))。在一些实施例中,从相机(例如,离轴相机260)接收输入图像。相机可以被安装到光学设备上和/或可以是光学设备的组件。在一些实施例中,方法1600包括使用相机捕获用户的眼睛的输入图像的步骤。在一些实施例中,方法1600包括将输入图像从相机发送到处理模块(例如,处理模块250)的步骤。
在步骤1604处,眼睛的输入图像被提供给神经网络(例如,多任务神经网络256)。在一些实施例中,输入图像被提供给实现神经网络的处理器。处理器可以是专用处理器(例如,神经网络处理器),其具有允许通常由神经网络执行的某些操作(例如,卷积、矩阵乘法)比用通用处理器执行得更快的架构。例如,专用处理器可包括具有多个处理元件的脉动阵列,多个处理元件用于对输入图像的不同像素并行地或同时执行各种算术运算。
在步骤1606处,使用神经网络生成网络输出数据(例如,网络输出数据264)。网络输出数据可包括与神经网络的总体输出以及神经网络的中间层的输出对应的数据。例如,网络输出数据可包括从神经网络的总体输出导出的特定数据(例如,眼睛分割数据276)和从神经网络的中间层的输出导出的特定数据(例如,眨眼预测296和角膜中心数据280)。附加地或可替代地,网络输出数据可包括从神经网络的不同中间层的输出导出的特定数据(例如,闪烁检测数据278和2D瞳孔中心数据274)、以及不涉及神经网络的总体输出的处理的一个或多个附加层。
在步骤1608处,基于网络输出数据来计算3D瞳孔中心(例如,3D瞳孔中心292)。在一些实施例中,基于2D瞳孔数据和眼睛分割数据来计算3D瞳孔中心。
在步骤1610处,基于网络输出数据来计算与用户的眼睛相关联的光轴(例如,光轴310)。在一些实施例中,基于3D瞳孔中心和网络输出数据中的某些数据(例如,角膜中心数据280)计算光轴。
在步骤1612处,基于网络输出数据来计算与眼睛对应的注视向量(例如,注视向量238)。在一些实施例中,仅使用网络输出数据中的某些分量(例如,2D瞳孔中心数据274、眼睛分割数据276和角膜中心数据280)计算注视向量,而在计算中不使用网络输出数据中的其他分量(例如,闪烁检测数据278)。在一些实施例中,计算注视向量可包括一个或多个后处理步骤。例如,可以首先基于网络输出数据中的一个或多个分量(例如,2D瞳孔中心数据274和眼睛分割数据276)来计算3D瞳孔中心(例如,3D瞳孔中心292)。其次,可以基于3D瞳孔中心和网络输出数据中的附加分量(例如,角膜中心数据280)来计算光轴(例如,光轴310)。接下来,可以基于光轴和与用户对应的校准角度来计算注视向量。
图17示出了训练神经网络的方法1700。方法1700的步骤不需要按所示的顺序执行,并且方法1700的一个或多个步骤可以在方法1700的执行期间省略。在一些实施例中,方法1700的一个或多个步骤可以由处理模块250或AR设备200的一些其他组件来执行。
在步骤1702处,接收多个训练输入图像(例如,输入图像I(x,y,c))。多个训练输入图像可以从相机(例如,离轴相机260)接收,或者可以人工生成或取得以用于训练的目的。多个训练图像中的每一个训练图像可以是眼睛的图像。步骤1702可以类似于步骤1602。
可以针对多个训练输入图像中的每个训练输入图像执行步骤1704至1712。在步骤1704处,训练输入图像被提供给神经网络(例如,多任务神经网络256)。步骤1704可以类似于步骤1604。
在步骤1706处,使用神经网络来生成训练网络输出数据(例如,网络输出数据264)。步骤1706可以类似于步骤1606。
在步骤1708处,从用户输入设备接收GT数据(例如,GT数据268)。GT数据可包括与训练网络输出数据中的一个或多个分量相对应的一个或多个分量(例如,2D瞳孔中心GT数据283、眼睛分割GT数据284、闪烁检测GT数据286)。
在步骤1710处,基于训练网络输出数据与GT数据之间的差异来计算误差数据(例如,误差数据270)。误差数据可包括与GT数据和/或训练网络输出数据中的一个或多个分量相对应的一个或多个分量(例如,第一误差数据270A、第二误差数据270B、第三误差数据270C、第四误差数据270D)。
在步骤1712处,基于误差数据来修改神经网络。在一些实施例中,对神经网络的修改的幅度与误差数据的幅度成比例,以使得训练网络输出数据与GT数据之间的较大差异可对应于对神经网络的较大修改。在一些实施例中,可以使用反向传播算法来训练神经网络,该算法计算对神经网络的权重的一个或多个权重更新。
图18示出了根据本文所描述的实施例的简化的计算机系统1800。如图18所示的计算机系统1800可以被包含到如本文所描述的设备(诸如AR设备200)中。图18提供了可以执行由各种实施例所提供的方法的步骤中的一些或全部的计算机系统1800的一个实施例的示意图。应当注意,图18仅旨在提供其任何或全部可以酌情使用的各种组件的一般化图示。因此,图18广泛地示出了单独的系统元件可以如何以相对分离或相对更集成的方式来实现。
所示的计算机系统1800包括可以经由总线1805电气耦接的或者可以酌情以其他方式通信的硬件元件。硬件元件可包括:一个或多个处理器1810,其包括但不限于一个或多个通用处理器和/或一个或多个专用处理器(诸如数字信号处理芯片、图形加速处理器)、和/或类似物;一个或多个输入设备1815,其可以包括但不限于鼠标、键盘、相机、和/或类似物;以及一个或多个输出设备1820,其可以包括但不限于显示设备、打印机、和/或类似物。
计算机系统1800可以进一步包括一个或多个非暂态存储设备1825和/或与之通信,该非暂态存储设备1825可以包括但不限于本地和/或网络可访问的存储设备,和/或可以包括但不限于磁盘驱动器、驱动器阵列、光存储设备、固态存储设备(诸如随机存取存储器(“RAM”)和/或只读存储器(“ROM”),其可以是可编程的)、可闪速更新的和/或类似物。这样的存储设备可以被配置为实现任何适当的数据存储,包括但不限于各种文件系统、数据库结构和/或类似物。
计算机系统1800还可以包括通信子系统1830,该通信子系统1830可以包括但不限于调制解调器、网络卡(无线或有线)、红外通信设备、无线通信设备、和/或芯片集(诸如蓝牙TM设备、802.11设备、WiFi设备、WiMax设备、蜂窝通信设施等)和/或类似物。通信子系统1830可包括允许与网络(诸如下文所描述的网络,仅举一个示例)、其他计算机系统、电视、和/或本文所描述的任何其他设备交换数据的一个或多个输入和/或输出通信接口。取决于期望的功能和/或其他实现问题,便携式电子设备或类似设备可以经由通信子系统1830传递图像和/或其他信息。在其他实施例中,便携式电子设备(例如,第一电子设备)可以被包含到计算机系统1800中,例如,作为输入设备1815的电子设备。在一些实施例中,计算机系统1800将进一步包括工作存储器1835,该工作存储器1835可以包括RAM或ROM设备,如上文所描述的。
计算机系统1800还可包括被示为当前位于工作存储器1835内的软件元素,包括操作系统1840、设备驱动程序、可执行库、和/或其他代码,诸如一个和多个应用程序1845,其可包括由各种实施例提供的计算机程序和/或可以被设计为实现方法和/或配置由其他实施例所提供的系统,如上文所描述的。仅作为示例,关于上文所讨论的方法所描述的一个或多个程序可以被实现为可由计算机和/或计算机内的处理器执行的代码和/或指令;在一个方面,然后,这样的代码和/或指令可以用于配置和/或适配通用计算机或其他设备以执行根据所描述的方法的一个或多个操作。
这些指令和/或代码的集合可以被存储在非暂态计算机可读存储介质上,诸如上文所描述的(一个或多个)存储设备1825。在一些情况下,存储介质可以被包含在计算机系统内,诸如计算机系统1800。在其他实施例中,存储介质可能与计算机系统相分离,例如可移除介质(诸如光盘),和/或被提供在安装包中,以使得存储介质可以用于用在其上存储的指令/代码来对通用计算机编程、配置、和/或适配。这些指令可采取可由计算机系统1800执行的可执行代码的形式和/或可采取源和/或可安装代码的形式,其在计算机系统1800上编译和/或安装时,例如使用任何通常可用的编译器、安装程序、压缩/解压实用程序等采取可执行代码的形式。
对于本领域的技术人员来说显而易见的是,可以根据具体要求做出实质性的变化。例如,还可以使用定制硬件,和/或可以以硬件、软件(包括便携式软件,诸如小应用程序等)或者两者实现特定元件。进一步地,可以采用与诸如网络输入/输出设备的其他计算设备的连接。
如上文所提到的,在一个方面,一些实施例可以使用计算机系统(诸如计算机系统1800)执行根据本技术的各种实施例的方法。根据一组实施例,这种方法的一些或所有过程是由计算机系统1800响应于处理器1810执行一个或多个指令的一个或多个序列而执行的,这些指令的序列可以被包含到操作系统1840和/或其他代码(诸如在工作存储器1835中包含的应用程序1845)中。这种指令可以从另一个计算机可读介质(诸如(一个或多个)存储设备925中的一个或多个)读取到工作存储器1835中。仅作为举例,执行在工作存储器1835中包含的指令的序列可使得(一个或多个)处理器1810执行本文所描述的方法的一个或多个过程。附加地或者可替代地,本文所描述的方法的部分可以通过专用硬件来执行。
如本文所使用的术语“机器可读介质”和“计算机可读介质”是指参与提供使得机器以特定方式进行操作的数据的任何介质。在使用计算机系统1800实现的实施例中,各种计算机可读介质可以涉及向(一个或多个)处理器1810提供指令/代码以用于执行和/或可以用于存储和/或携带这样的指令/代码。在许多实施方式中,计算机可读介质是物理和/或有形的存储介质。这样的介质可以采取非易失性介质或易失性介质的形式。非易失性介质包括例如光学和/或磁盘,诸如(一个或多个)存储设备1825。易失性介质包括但不限于动态存储器,诸如工作存储器1835。
物理和/或有形的计算机可读介质的常见形式包括例如软磁盘、软盘、硬盘、磁带、或任何其他磁性介质、CD-ROM、任何其他光学介质、打孔卡、纸带、具有孔的图案的任何其他物理介质、RAM、PROM、EPROM、FLASH-EPROM、任何其他存储器芯片或者磁带盒、或计算机可从其读取指令和/或代码的任何其他介质。
各种形式的计算机可读介质可以涉及将一个或多个指令的一个或多个序列携带到(一个或多个)处理器1810以用于执行。仅作为举例,指令可以初始地被携带在远程计算机的磁盘和/或光盘上。远程计算机可以将指令加载到它的动态存储器中,并且通过传输介质发送指令作为信号以由计算机系统1800接收和/或执行。
通信子系统1830和/或其组件通常将接收信号,然后总线1805可将信号和/或由信号携带的数据、指令等携带到工作存储器1835,(一个或多个)处理器1810从该工作存储器1835中取回并且执行指令。由工作存储器1835接收的指令可以可选地在由(一个或多个)处理器1810执行之前或之后被存储在非暂态存储设备1825上。
上文所讨论的方法、系统和设备是示例。各种配置可酌情省略、替换或添加各种过程或组件。例如,在可替代配置中,可以按与所描述的顺序不同的顺序执行方法,和/或可以添加、省略和/或组合各阶段。而且,关于某些配置所描述的特征可以被组合在各种其他配置中。配置的不同方面和元素可以以类似的方式组合。而且,技术演变以及带来的许多元素是示例,并不限制本公开或权利要求的范围。
在描述中给出特定细节以提供对示例性配置(包括实施方式)的透彻理解。然而,可以在没有这些特定细节的情况下实践配置。例如,在没有不必要的细节的情况下示出了众所周知的电路、过程、算法、结构和技术以便避免混淆配置。本描述仅提供示例性配置,并且不限制权利要求的范围、适用性或配置。相反,前面的配置的描述将向本领域技术人员提供用于实现所描述的技术的启用描述。在不脱离本公开的精神或范围的情况下,可以对元件的功能和布置进行各种改变。
而且,配置可以被描述为被描绘为示意性流程图或者框图的过程。虽然每个配置可以将操作描述为顺序的过程,但是许多操作能够并行或者并发地执行。另外,可以重新排列操作的顺序。过程可以具有图中未包括的附加步骤。此外,方法的示例可以由硬件、软件、固件、中间件、微代码、硬件描述语言或其任何组合来实现。当在软件、固件、中间件或微代码中实现时,执行必要任务的程序代码或代码段可被存储在诸如存储介质的非暂态计算机可读介质中。处理器可执行所描述的任务。
已经描述了多个示例配置,在不脱离本公开的精神的情况下,可以使用各种修改、可替代构造和等同物。例如,以上的元件可以是较大系统的部件,其中,其它规则可以优先或者以其它方式修改技术的应用。而且,在考虑以上元件之前、期间或之后,可以采取多个步骤。因此,以上描述并不绑定权利要求的范围。
如本文所使用的并且在随附的权利要求中,除非上下文另外清楚指示,否则单数形式“一”、“一个”、和“该”包括复数引用。因此,例如,对“用户”的引用包括多个这样的用户,并且对“处理器”的引用包括一个或多个处理器和其对本领域技术人员已知的等同物的引用等等。
而且,当在本说明书中并且在以下权利要求中使用时,词语“包括”、“包括了”、“容纳”、“容纳了”、“包含”、“包含了”、“包含有”旨在指定所说明的特征、整体、组件、或步骤的存在,但是不排除一个或多个其他特征、整体、组件、步骤、动作、或组合的存在或者添加。
还应理解,本文所描述的示例和实施例仅用于说明的目的,并且将向本领域技术人员建议根据其进行的各种修改或改变,并且这些修改或改变将被包括在本申请的精神和范围内以及权利要求书的范围内。
Claims (20)
1.一种训练神经网络的方法,所述神经网络具有特征编码层集合和多个任务特定层集合,所述方法包括:
执行第一训练步骤,包括:
使用所述神经网络,基于第一眼睛的第一图像生成眼睛分割数据,其中,所述眼睛分割数据包括将所述第一眼睛分割成多个区域;以及
使用所述眼睛分割数据,训练所述特征编码层集合;以及
执行第二训练步骤,包括:
使用所述特征编码层集合和所述多个任务特定层集合中的每一个任务特定层集合,基于第二眼睛的第二图像生成网络输出数据;以及
使用所述网络输出数据,训练所述多个任务特定层集合。
2.根据权利要求1所述的方法,其中,所述多个任务特定层集合中的每一个对所述特征编码层集合的输出进行操作。
3.根据权利要求1所述的方法,其中,执行所述第一训练步骤还包括:将所述第一图像提供给所述神经网络,以及其中,执行所述第二训练步骤还包括:将所述第二图像提供给所述神经网络。
4.根据权利要求1所述的方法,其中,在第一持续时间期间执行所述第一训练步骤,以及在所述第一持续时间之后的第二持续时间期间执行所述第二训练步骤。
5.根据权利要求1所述的方法,其中,所述多个区域包括以下中的一项或多项:背景区域,巩膜区域,瞳孔区域,或虹膜区域。
6.根据权利要求1所述的方法,其中,执行所述第一训练步骤还包括:
使用所述眼睛分割数据,训练所述多个任务特定层集合中的单个任务特定层集合。
7.根据权利要求6所述的方法,其中,所述单个任务特定层集合是所述多个任务特定层集合中的在所述第一训练步骤期间被训练的唯一任务特定层集合。
8.根据权利要求1所述的方法,其中,执行所述第一训练步骤还包括:
接收眼睛分割标注GT数据;以及
将所述眼睛分割数据与所述眼睛分割GT数据进行比较。
9.根据权利要求1所述的方法,其中,在所述第二训练步骤期间不训练所述特征编码层集合。
10.根据权利要求1所述的方法,其中,所述网络输出数据包括与所述第二眼睛相对应的二维(2D)瞳孔数据。
11.根据权利要求1所述的方法,其中,所述网络输出数据包括与所述第二眼睛相对应的闪烁检测数据。
12.根据权利要求1所述的方法,其中,所述网络输出数据包括与所述第二眼睛相对应的角膜中心数据。
13.根据权利要求1所述的方法,其中,所述网络输出数据包括与所述第二眼睛相对应的眨眼预测。
14.根据权利要求1所述的方法,其中,所述网络输出数据包括对应于所述第二眼睛的眼神分类。
15.根据权利要求1所述的方法,其中,所述网络输出数据包括第二眼睛分割数据,所述第二眼睛分割数据包括将所述第二眼睛分割成第二多个区域的第二分割。
16.一种非暂态计算机可读介质,包括指令,所述指令当由一个或多个处理器执行时使得所述一个或多个处理器执行用于训练神经网络的操作,所述神经网络具有特征编码层集合和多个任务特定层集合,其中,所述操作包括:
执行第一训练步骤,包括:
使用所述神经网络,基于第一眼睛的第一图像生成眼睛分割数据,其中,所述眼睛分割数据包括将所述第一眼睛分割成多个区域;以及
使用所述眼睛分割数据,训练所述特征编码层集合;以及
执行第二训练步骤,包括:
使用所述特征编码层集合和所述多个任务特定层集合中的每一个任务特定层集合,基于第二眼睛的第二图像生成网络输出数据;以及
使用所述网络输出数据训练所述多个任务特定层集合。
17.根据权利要求16所述的非暂态计算机可读介质,其中,所述多个任务特定层集合中的每一个对所述特征编码层集合的输出进行操作。
18.根据权利要求16所述的非暂态计算机可读介质,其中,执行所述第一训练步骤还包括:将所述第一图像提供给所述神经网络,以及其中,执行所述第二训练步骤还包括:将所述第二图像提供给所述神经网络。
19.根据权利要求16所述的非暂态计算机可读介质,其中,在第一持续时间期间执行所述第一训练步骤,以及在所述第一持续时间之后的第二持续时间期间执行所述第二训练步骤。
20.一种系统,包括:
一个或多个处理器;以及
非暂态计算机可读介质,其包括指令,所述指令当由所述一个或多个处理器执行时使得所述一个或多个处理器执行用于训练神经网络的操作,所述神经网络具有特征编码层集合和多个任务特定层集合,其中,所述操作包括:
执行第一训练步骤,包括:
使用所述神经网络,基于第一眼睛的第一图像生成眼睛分割数据,其中,所述眼睛分割数据包括将所述第一眼睛分割成多个区域;以及
使用所述眼睛分割数据,训练所述特征编码层集合;以及
执行第二训练步骤,包括:
使用所述特征编码层集合和所述多个任务特定层集合中的每一个任务特定层集合,基于第二眼睛的第二图像生成网络输出数据;以及
使用所述网络输出数据训练所述多个任务特定层集合。
Applications Claiming Priority (7)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962888953P | 2019-08-19 | 2019-08-19 | |
US62/888,953 | 2019-08-19 | ||
US201962926241P | 2019-10-25 | 2019-10-25 | |
US62/926,241 | 2019-10-25 | ||
US201962935584P | 2019-11-14 | 2019-11-14 | |
US62/935,584 | 2019-11-14 | ||
PCT/US2020/047046 WO2021034961A1 (en) | 2019-08-19 | 2020-08-19 | Eye tracking and gaze estimation using off-axis camera |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114303117A true CN114303117A (zh) | 2022-04-08 |
Family
ID=74659542
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080059575.4A Pending CN114303117A (zh) | 2019-08-19 | 2020-08-19 | 使用离轴相机的眼睛跟踪和注视估计 |
Country Status (5)
Country | Link |
---|---|
US (1) | US20220244781A1 (zh) |
EP (1) | EP4018288A4 (zh) |
JP (1) | JP2022544696A (zh) |
CN (1) | CN114303117A (zh) |
WO (1) | WO2021034961A1 (zh) |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8896725B2 (en) * | 2007-06-21 | 2014-11-25 | Fotonation Limited | Image capture device with contemporaneous reference image capture mechanism |
RU2016138608A (ru) * | 2016-09-29 | 2018-03-30 | Мэджик Лип, Инк. | Нейронная сеть для сегментации изображения глаза и оценки качества изображения |
US10650552B2 (en) * | 2016-12-29 | 2020-05-12 | Magic Leap, Inc. | Systems and methods for augmented reality |
US20190244108A1 (en) * | 2018-02-08 | 2019-08-08 | Cognizant Technology Solutions U.S. Corporation | System and Method For Pseudo-Task Augmentation in Deep Multitask Learning |
-
2020
- 2020-08-19 EP EP20853899.1A patent/EP4018288A4/en active Pending
- 2020-08-19 JP JP2022510817A patent/JP2022544696A/ja active Pending
- 2020-08-19 CN CN202080059575.4A patent/CN114303117A/zh active Pending
- 2020-08-19 WO PCT/US2020/047046 patent/WO2021034961A1/en unknown
-
2022
- 2022-02-17 US US17/674,724 patent/US20220244781A1/en active Pending
Also Published As
Publication number | Publication date |
---|---|
US20220244781A1 (en) | 2022-08-04 |
EP4018288A1 (en) | 2022-06-29 |
EP4018288A4 (en) | 2022-10-12 |
JP2022544696A (ja) | 2022-10-20 |
WO2021034961A1 (en) | 2021-02-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11442539B2 (en) | Event camera-based gaze tracking using neural networks | |
JP7075085B2 (ja) | 全身測定値抽出のためのシステムおよび方法 | |
CN109475294B (zh) | 用于治疗精神障碍的移动和可穿戴视频捕捉和反馈平台 | |
US10902288B2 (en) | Training set sufficiency for image analysis | |
JP2021533462A (ja) | ユーザカテゴリ化による多深度平面ディスプレイシステムのための深度平面選択 | |
CN112040834A (zh) | 眼球跟踪方法及系统 | |
CN108369653A (zh) | 使用眼睛特征的眼睛姿态识别 | |
US20210233288A1 (en) | Augmented reality map curation | |
US11775058B2 (en) | Method and system for performing eye tracking using an off-axis camera | |
JP2022527818A (ja) | ユーザの眼に関連する幾何学的変数を推定する方法及びシステム | |
US10884494B1 (en) | Eye tracking device calibration | |
CN114391117A (zh) | 眼睛跟踪延迟增强 | |
CN110503068A (zh) | 视线估计方法、终端及存储介质 | |
CN116503475A (zh) | 一种基于深度学习的vrar双目3d目标定位方法 | |
CN114303117A (zh) | 使用离轴相机的眼睛跟踪和注视估计 | |
Skowronek et al. | Eye Tracking Using a Smartphone Camera and Deep Learning | |
CN112099330A (zh) | 基于外部相机和穿戴式显控设备的全息人体重建方法 | |
JP2024074862A (ja) | 軸外カメラを使用して眼追跡を実施するための方法およびシステム | |
Chugh | An Eye Tracking System for a Virtual Reality Headset | |
US12008686B2 (en) | Augmented reality map curation | |
US20230036611A1 (en) | Gaze estimation apparatus, gaze estimation method, model generation apparatus, and model generation method | |
US20240037987A1 (en) | Determining Digital Markers Indicative of a Neurological Condition | |
US20230233072A1 (en) | System and method for the diagnosis and treatment of amblyopia using a 3d display | |
Zhang et al. | Integrated neural network-based pupil tracking technology for wearable gaze tracking devices in flight training |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination |