CN109804220A - 用于跟踪头部和眼睛的运动和姿势的***和方法 - Google Patents
用于跟踪头部和眼睛的运动和姿势的***和方法 Download PDFInfo
- Publication number
- CN109804220A CN109804220A CN201680089480.0A CN201680089480A CN109804220A CN 109804220 A CN109804220 A CN 109804220A CN 201680089480 A CN201680089480 A CN 201680089480A CN 109804220 A CN109804220 A CN 109804220A
- Authority
- CN
- China
- Prior art keywords
- head
- eyes
- sensor
- output
- user
- 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.)
- Granted
Links
- 210000001508 eye Anatomy 0.000 title claims abstract description 313
- 210000003128 head Anatomy 0.000 title claims abstract description 302
- 238000000034 method Methods 0.000 title claims abstract description 61
- 238000003384 imaging method Methods 0.000 claims abstract description 102
- 230000033001 locomotion Effects 0.000 claims abstract description 79
- 238000004891 communication Methods 0.000 claims abstract description 9
- 230000004886 head movement Effects 0.000 claims description 20
- 210000005252 bulbus oculi Anatomy 0.000 claims description 15
- 239000011159 matrix material Substances 0.000 claims description 15
- 241000287181 Sturnus vulgaris Species 0.000 claims description 12
- 238000013473 artificial intelligence Methods 0.000 claims description 10
- 230000003190 augmentative effect Effects 0.000 claims description 7
- 238000001514 detection method Methods 0.000 claims description 7
- 230000003993 interaction Effects 0.000 claims description 6
- 238000010801 machine learning Methods 0.000 claims description 6
- 238000005259 measurement Methods 0.000 claims description 5
- 230000000007 visual effect Effects 0.000 claims description 4
- 230000036544 posture Effects 0.000 description 49
- CCPHAMSKHBDMDS-UHFFFAOYSA-N Chetoseminudin B Natural products C=1NC2=CC=CC=C2C=1CC1(SC)NC(=O)C(CO)(SC)N(C)C1=O CCPHAMSKHBDMDS-UHFFFAOYSA-N 0.000 description 34
- 230000008569 process Effects 0.000 description 23
- 230000008859 change Effects 0.000 description 11
- 230000006870 function Effects 0.000 description 10
- 210000001747 pupil Anatomy 0.000 description 6
- 238000005516 engineering process Methods 0.000 description 4
- 230000002708 enhancing effect Effects 0.000 description 4
- 241001269238 Data Species 0.000 description 3
- 238000012790 confirmation Methods 0.000 description 3
- 238000010586 diagram Methods 0.000 description 3
- 235000013399 edible fruits Nutrition 0.000 description 3
- 238000009434 installation Methods 0.000 description 3
- 238000012986 modification Methods 0.000 description 3
- 230000004048 modification Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000009466 transformation Effects 0.000 description 2
- 230000032258 transport Effects 0.000 description 2
- 240000006409 Acacia auriculiformis Species 0.000 description 1
- 235000008733 Citrus aurantifolia Nutrition 0.000 description 1
- 235000011941 Tilia x europaea Nutrition 0.000 description 1
- 230000003321 amplification Effects 0.000 description 1
- 230000000712 assembly Effects 0.000 description 1
- 238000000429 assembly Methods 0.000 description 1
- 230000006399 behavior Effects 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000021615 conjugation Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000013461 design Methods 0.000 description 1
- 238000011161 development Methods 0.000 description 1
- 230000018109 developmental process Effects 0.000 description 1
- 210000005069 ears Anatomy 0.000 description 1
- 238000007667 floating Methods 0.000 description 1
- 238000007654 immersion Methods 0.000 description 1
- 239000004571 lime Substances 0.000 description 1
- 238000004519 manufacturing process Methods 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 238000013178 mathematical model Methods 0.000 description 1
- 238000012544 monitoring process Methods 0.000 description 1
- 238000003199 nucleic acid amplification method Methods 0.000 description 1
- 102220022382 rs386833443 Human genes 0.000 description 1
- 102220037938 rs61743595 Human genes 0.000 description 1
- 102220295519 rs779762640 Human genes 0.000 description 1
- 238000013519 translation Methods 0.000 description 1
- 230000001960 triggered effect Effects 0.000 description 1
- XLYOFNOQVPJJNP-UHFFFAOYSA-N water Substances O XLYOFNOQVPJJNP-UHFFFAOYSA-N 0.000 description 1
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/017—Gesture based interaction, e.g. based on a set of recognized hand gestures
-
- 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/012—Head tracking input arrangements
-
- 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
- G06—COMPUTING; CALCULATING OR COUNTING
- G06N—COMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
- G06N20/00—Machine learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/20—Analysis of motion
- G06T7/246—Analysis of motion using feature-based methods, e.g. the tracking of corners or segments
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/70—Determining position or orientation of objects or cameras
- G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/20—Special algorithmic details
- G06T2207/20081—Training; Learning
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T2207/00—Indexing scheme for image analysis or image enhancement
- G06T2207/30—Subject of image; Context of image processing
- G06T2207/30244—Camera pose
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Software Systems (AREA)
- Data Mining & Analysis (AREA)
- Evolutionary Computation (AREA)
- Medical Informatics (AREA)
- Artificial Intelligence (AREA)
- Computing Systems (AREA)
- Mathematical Physics (AREA)
- Multimedia (AREA)
- Position Input By Displaying (AREA)
- User Interface Of Digital Computer (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Image Analysis (AREA)
Abstract
公开了被配置为跟踪头部和眼睛运动的装置、***和方法。在一个示例中,一种装置包括成像传感器、空间方位传感器和计算设备,该计算设备包括处理器和与处理器通信耦合的存储器。成像传感器被配置为当用户凝视注视点并且绕第一轴和绕与第一轴正交的第二轴旋转用户的头部时捕获和记录用户的眼睛的图像。空间方位传感器耦合到成像传感器,使得成像传感器相对于空间方位传感器具有固定位置和固定方位,并且被配置为在用户头部的旋转期间产生输出,其中每个输出对应于眼睛的一个图像。
Description
技术领域
本教导总体地涉及人机交互技术。更具体地,本教导涉及用于跟踪人头和眼睛的运动和姿势的***和方法。
背景技术
人与计算机交互(HCI),或者更一般地,人机交互,专注于计算机技术的设计和使用以及用户和计算机之间的接口。HCI依赖于对人类输入行为的灵敏、直观和准确的测量。鼠标、键盘和触摸屏是传统的输入设备,其需要用户的手动控制。某些输入设备(如Microsoft Kinect和Leap Motion Controller)能够在没有任何物理接触的情况下跟踪用户的身体和/或手势。
虚拟现实(VR)的最新进展将诸如Oculus Rift和HTC Vive的护目镜带入消费者市场。VR护目镜可以为用户创建身临其境的三维(3D)体验。用户可以通过转动头部环顾虚拟世界,就像在现实世界中环顾四周一样。
增强现实(AR)是另一个快速发展的领域。AR和VR之间的一个主要区别是AR在真实场景中实时操作,而不是仅在VR中计算机创建或记录的场景。在VR和AR两者中,***知道用户正在查看的位置以及用户想要对预期目标采取的操作将非常有用。有效可靠的头部和眼睛跟踪将在这种情况下实现广泛的应用。
如今,自动驾驶车辆也处于前沿阶段。存在这样的情形,由于更新的道路/交通状况或驾驶模式变化等原因,处于其自主模式的汽车可能需要驾驶员的注意力。因此,持续地监视驾驶员正在观察哪里是重要的。
机器学习和人工智能(AI)可以在学习、建模和预测的循环中工作。快速直观地跟踪和确认用户的关注点以用于数据采集和确认的方式可以在此循环中发挥重要作用。
现有的头部和眼睛跟踪***包括非常复杂的结构,其导致高成本,并且需要用户在校准和操作期间执行许多动作。
因此,需要没有上述缺点的头部和眼睛的运动与姿势跟踪***以及用于校准和操作的一组工作流程。
发明内容
本教导总体地涉及人机交互技术。更具体地,本教导涉及用于跟踪人头和眼睛的运动和姿势的***和方法。
在一个示例中,公开了一种被配置为跟踪头部运动的装置。该装置包括空间方位传感器和计算设备,该计算设备包括处理器和与处理器通信耦合的存储器。空间方位传感器被配置为在用户的头部绕第一轴的第一旋转期间产生第一输出,并且在用户的头部绕第二轴的第二旋转期间产生第二输出,第二轴与第一轴正交的。处理器被配置用于基于第一输出和第二输出确定头部和空间方位传感器之间的方位关系。
根据实施例,计算设备包括被配置为基于用户的输入确定计算设备的工作模式的工作模式协调器,其中工作模式是以下中的至少一个:头部校准、头部跟踪和姿势确定。
根据实施例,计算设备包括头部校准器,该头部校准器被配置为:获取空间方位传感器的第一输出;基于第一输出计算与第一轴对准的第一旋转向量;获取空间方位传感器的第二输出;基于第二输出计算与第二轴对准的第二旋转向量;基于第一旋转向量和第二旋转向量计算表示头部和空间方位传感器之间的方位关系的一个或多个参数。
根据实施例,计算设备包括头部***,该头部***被配置为:当头部处于初始方位时,获取空间方位传感器的初始输出;当头部处于最终方位时,获取空间方位传感器的最终输出;以及基于空间方位传感器的初始输出、空间方位传感器的最终输出以及头部和空间方位传感器之间的方位关系,检测从初始方位到最终方位的头部运动。
根据实施例,头部***还被配置为:将最终输出配置为空间方位传感器的新的初始输出;将最终方位配置为头部的新的初始方位,使得将来相对于新的初始方位检测头部运动。
根据实施例,计算设备包括姿势确定器,该姿势确定器被配置为:基于检测到的头部运动确定头部姿势,其中,当头部绕第三轴上下运动时,头部姿势是点头,当头部绕与第三轴正交的第四轴左右运动时,头部姿势是摇头,并且,当头部绕与第三轴和第四轴都正交的第五轴运动时,头部姿势是晃头。
根据实施例,计算设备包括指令生成器,该指令生成器被配置为基于所确定的头部姿势生成指令,其中该指令对应于用户对机器的输入。
根据实施例,由该装置测量的方位基于以下中的至少一个来表示:四元数、欧拉角和矩阵。
根据实施例,该装置能够安装到佩戴在头部上的设备上。
根据实施例,空间方位传感器是装置中的唯一的空间方位传感器。
在另一个示例中,公开了一种被配置为跟踪眼睛运动的装置。该装置包括成像传感器、空间方位传感器和计算设备,该计算设备包括处理器和与处理器通信耦合的存储器。成像传感器被配置为当用户凝视注视点并执行一系列眼睛运动时捕获和记录用户眼睛的图像。空间方位传感器耦合到成像传感器,使得成像传感器相对于空间方位传感器具有固定位置和固定方位,并且被配置为在所述系列眼睛运动期间产生输出,其中每个输出对应于眼睛的一个图像。处理器被配置为基于以下来确定眼睛的眼球中心与成像传感器之间的位置关系:眼睛的图像、空间方位传感器的输出、以及成像传感器相对于空间方位传感器的固定方位。
根据实施例,计算设备包括被配置为基于用户的输入确定计算设备的工作模式的工作模式协调器,其中工作模式是以下中的至少一个:眼睛校准、眼睛跟踪和姿势确定。
根据实施例,该装置安装在固定平台上,并且该计算设备还被配置为:在成像传感器的前方配置两个标记;在成像传感器的屏幕上配置三条均匀间隔的水平线,其中三条线的中间线位于屏幕的中间;当成像传感器被定向为使得所述两个标记的图像位于所述三条线的顶线的中间的方位时,获取空间方位传感器的第一输出;当成像传感器被定向为使得所述两个标记的图像位于所述三条线的底线的中间的方位时,获取空间方位传感器的第二输出;当成像传感器被定向为使得所述两个标记的图像位于所述三条线的中线的左侧的方位时,获取空间方位传感器的第三输出;当成像传感器被定向为使得所述两个标记的图像位于所述三条线的中线的右侧的方位时,获取空间方位传感器的第四输出;以及基于第一输出、第二输出、第三输出和第四输出计算成像传感器相对于空间方位传感器的固定方位和成像传感器的焦距。
根据实施例,计算设备包括眼睛校准器,该眼睛校准器被配置为指示用户凝视注视点并执行所述系列眼睛运动;获取一系列数据对,每个数据对包括眼睛的图像和空间方位传感器的相应输出;获取每个图像中眼球中心的坐标;以及计算眼球中心相对于成像传感器的坐标。
根据实施例,眼睛校准器还被配置为基于由成像传感器捕获的双眼的图像来计算用户的双眼的眼球中心相对于成像传感器的坐标。
根据实施例,计算设备包括眼睛***,该眼睛***被配置为:计算相对于成像传感器的通过头部上的眼睛的眼球中心指向用户正在看的对象的注视向量;基于相对于成像传感器的注视向量计算相对于头部的注视向量;基于相对于头部的注视向量计算眼睛相对于头部的最终方位;基于眼睛相对于头部的预定初始方位和眼睛相对于头部的最终方位,检测眼睛从眼睛相对于头部的预定初始方位到最终方位的眼睛运动;以及基于眼睛的眼睛运动以及头部与空间方位传感器之间的方位关系计算相对于世界的最终注视向量。
根据实施例,眼睛***还被配置为:将眼睛的最终方位配置为眼睛相对于头部的新的初始方位,使得将来基于眼睛相对于头部的新的初始方位检测眼睛运动。
根据实施例,计算设备包括姿势确定器,该姿势确定器被配置为基于检测到的眼睛运动来确定眼睛姿势,其中,当相对于世界的注视向量在一段时间内被限制在预定的小范围内时,眼睛姿势是凝视状态。
根据实施例,计算设备包括指令生成器,该指令生成器被配置为基于所确定的眼睛姿势生成指令,其中该指令对应于用户对机器的输入。
根据实施例,眼睛***还被配置为检测用户双眼的眼睛运动,其中对应于每只眼睛的注视向量相对于世界从预定的初始方位运动到最终方位。
根据实施例,该装置不再包括除所述成像传感器之外的成像传感器,并且不再包括除所述空间方位传感器之外的空间方位传感器。
在又一个示例中,公开了一种被配置为跟踪头部和眼睛运动的装置。该装置包括成像传感器、空间方位传感器和计算设备,该计算设备包括处理器和与处理器通信耦合的存储器。成像传感器被配置为当用户凝视注视点并且绕第一轴和绕与第一轴正交的第二轴旋转用户的头部时捕获和记录用户的眼睛的图像。空间方位传感器耦合到成像传感器,使得成像传感器相对于空间方位传感器具有固定位置和固定方位,并且被配置为在用户头部的旋转期间产生输出,其中每个输出对应于眼睛的一个图像。处理器被配置为:基于输出确定头部和空间方位传感器之间的方位关系,并基于以下确定眼睛的眼球中心与成像传感器之间的位置关系:眼睛的图像、空间方位传感器的输出,以及成像传感器相对于空间方位传感器的固定方位。
根据实施例,计算设备包括:头部***,该头部***被配置为:当头部处于初始方位时获取空间方位传感器的初始输出,当头部处于最终方位时获取空间方位传感器的最终输出,并基于空间方位传感器的初始输出、空间方位传感器的最终输出以及头部与空间方位传感器之间的方位关系,检测从初始方位到最终方位的头部运动;以及眼睛***,该眼睛***被配置为:计算相对于成像传感器的通过眼球中心指向用户正在看的对象的注视向量,基于相对于成像传感器的注视向量计算相对于头部的注视向量,基于相对于头部的注视向量计算眼睛相对于头部的最终方位,基于眼睛相对于头部的预定初始方位和眼睛相对于头部的最终方位,检测眼睛从眼睛相对于头部的预定初始方位到最终方位的眼睛运动,并基于眼睛的眼睛运动以及头部与空间方向传感器之间的方位关系计算相对于世界的最终注视向量。
根据实施例,同时检测头部运动和眼睛运动。
根据实施例,彼此独立地被检测头部运动和眼睛运动。
根据实施例,眼睛***还被配置为将眼睛的最终方位配置为眼睛相对于头部的新的初始方位,使得将来基于眼睛相对于头部的新的初始方位检测眼睛运动;并且,头部***还被配置为:将最终输出配置为空间方位传感器的新的初始输出;并且,将最终方位配置为头部的新的初始方位,使得将来相对于头部的新的初始方位检测头部运动。
根据实施例,计算设备包括姿势确定器,该姿势确定器被配置为:基于检测到的头部运动确定头部姿势,其中当头部绕第三轴上下运动时,头部姿势是点头,其中当头部绕与第三轴正交的第四轴左右运动时,头部姿势是摇头,并且,其中当头部绕与第三轴和第四轴都正交的第五轴运动时,头部姿势是晃头;基于检测到的眼睛运动确定眼睛姿势,其中,当注视向量在一段时间内被限制在预定的小范围内时,眼睛姿势是凝视状态;并且,基于眼睛姿势和头部姿势确定姿势组合。
根据实施例,计算设备包括指令生成器,该指令生成器被配置为基于所确定的姿势组合生成指令,其中该指令对应于用户对机器的输入。
根据实施例,该装置不再包括除所述成像传感器之外的成像传感器,并且不再包括除所述空间方位传感器之外的空间方位传感器。
本文所公开的内容包括一种包括上述装置和耦合到该装置的头戴设备的***。该***被配置为为头戴设备的佩戴者提供虚拟现实。
本文所公开的内容包括一种包括上述装置和耦合到该装置的头戴设备的***。该***被配置为为头戴设备的佩戴者提供增强现实。
本文所公开的内容包括一种包括上述装置和耦合到该装置的头戴设备的***。该***被配置为为在自动驾驶车辆中佩戴头戴设备的驾驶员提供增强现实。
本文所公开的内容包括一种包括上述装置和耦合到该装置的头戴设备的***。该***被配置为基于来自佩戴头戴设备的用户的输入来开发人工智能和/或机器学习。
本文所公开的内容包括一种包括上述装置和耦合到该装置的可穿戴设备的***。该***被配置为基于来自佩戴可穿戴设备的用户的输入来开发人机交互。
在不同的示例中,公开了一种在包括至少一个处理器和存储器的用于跟踪对象的运动的机器上实现的方法。所述方法包括:在对象绕第一轴的第一旋转期间产生第一输出;在对象绕与第一轴正交的第二轴的第二旋转期间产生第二输出;以及基于第一输出和第二输出确定对象和空间方位传感器之间的方位关系。
根据实施例,该对象是用户的头部。
在另一个示例中,公开了一种在包括至少一个处理器和存储器的用于跟踪头部和眼睛运动的机器上实现的方法。所述方法包括:当用户凝视注视点并执行一系列头部和眼睛运动时,由成像传感器捕获并记录用户眼睛的图像;在所述系列头部和眼睛运动期间由空间方位传感器产生输出,其中每个输出对应于眼睛的一个图像,其中成像传感器相对于空间方位传感器具有固定位置和的固定方位;以及由所述至少一个处理器基于以下确定眼睛的眼球中心与成像传感器之间的位置关系:眼睛的图像、空间方位传感器的输出、以及成像传感器相对于空间方位传感器的固定方位。
在又一个示例中,公开了一种在包括至少一个处理器和存储器的用于跟踪头部和眼睛运动的机器上实现的方法。所述方法包括:当用户凝视注视点并且使用户的头部绕第一轴和绕与第一轴正交的第二轴旋转时,由成像传感器捕获并记录用户眼睛的图像;在用户头部旋转期间由空间方位传感器产生输出,其中每个输出对应于眼睛的一个图像,其中成像传感器相对于空间方位传感器具有固定位置和固定方位;由所述至少一个处理器基于所述输出确定头部和空间方位传感器之间的方位关系;以及由所述至少一个处理器基于以下确定眼睛的眼球中心与成像传感器之间的位置关系:眼睛的图像、空间方位传感器的输出、以及成像传感器相对于空间方位传感器的固定方位。
在又一个示例中,一种机器可读的有形非暂时性介质,具有用于跟踪头部和眼睛运动的信息,其中该信息在被机器读取时使机器执行以下操作:在用户头部绕第一轴的第一旋转期间产生第一输出;在用户头部绕与第一轴正交的第二轴的第二旋转期间产生第二输出;以及基于第一输出和第二输出确定头部和空间方位传感器之间的方位关系。
在又一个示例中,公开了一种装置。该装置包括成像传感器、空间方位传感器和计算设备,该计算设备包括处理器和与处理器通信耦合的存储器。空间方位传感器耦合到成像传感器,使得成像传感器相对于空间方位传感器具有固定位置和固定方位。处理器被配置为:在成像传感器的前方配置两个标记;在成像传感器的屏幕上配置三条均匀间隔的水平线,其中三条线的中间线位于屏幕的中间;当成像传感器被定向为使得所述两个标记的图像位于所述三条线的顶线的中间的方位时,获取空间方位传感器的第一输出;当成像传感器被定向为使得所述两个标记的图像位于所述三条线的底线的中间的方位时,获取空间方位传感器的第二输出;当成像传感器被定向为使得所述两个标记的图像位于所述三条线的中线的左侧的方位时,获取空间方位传感器的第三输出;当成像传感器被定向为使得所述两个标记的图像位于所述三条线的中线的右侧的方位时,获取空间方位传感器的第四输出;以及基于第一输出、第二输出、第三输出和第四输出计算成像传感器相对于空间方位传感器的固定方位和成像传感器的焦距。
另外的新颖特征将部分地在下面的描述中阐述,并且部分地对于本领域技术人员在研究以下内容和附图时将变得显而易见,或者可以通过制造或操作示例来得以学习。通过实践或使用下面讨论的详细示例中阐述的方法、工具和组合的各个方面,可以实现和获取本教导的优点。
附图说明
图1示出了根据本教导的实施例的在此描述的跟踪***中涉及的各种3D坐标系;
图2示出了根据本教导的实施例的在此描述的跟踪***中涉及的示例性头部坐标系;
图3示出了根据本教导的实施例的安装在用户佩戴的头部装备或头盔上的示例性陀螺仪。
图4示出了根据本教导的实施例的示例性跟踪***,其包括陀螺仪和照相机,两者都附接到刚性框架;
图5示出了根据本教导的实施例的在此描述的跟踪***的示例性示图;
图6示出了根据本教导的实施例的在此描述的跟踪***中的计算设备的示例性示图;
图7示出了根据本教导的实施例的在照相机校准模式期间要对照相机实施的一系列运动;
图8示出了根据本教导的实施例的用于头部校准的示例性过程的流程图;
图9示出了根据本教导的实施例的用于照相机校准的示例性过程的流程图;
图10示出了根据本教导的实施例的用于仅眼睛校准的示例性过程的流程图;
图11示出了根据本教导的实施例的用于头部和眼睛组合校准的示例性过程的流程图;
图12示出了根据本教导的实施例,在眼睛校准期间,从用户头部的左视图来看,用户保持固定的注视线,使得当头部向上或向下、向左或向右转动时,为了维持固定注视线,眼睛在相反方向上补偿;
图13示出了根据本教导的实施例,在眼睛校准期间,从用户头部的俯视图来看,用户保持固定的注视线,使得当头部向上或向下、向左或向右转动时,为了维持固定的注视线,眼睛在相反方向上补偿;
图14示意性地示出了根据本教导的实施例的包括本文描述的适用于虚拟现实应用的跟踪***的***;
图15示意性地示出了根据本教导的实施例的包括本文描述的适用于增强现实应用的跟踪***的***;
图16示意性地示出了根据本教导的实施例的包括本文描述的适于在自动驾驶汽车上实现的跟踪***的***;以及
图17示意性地示出了根据本教导的实施例的包括本文描述的适于在与机器学习相关的人工智能上实现的跟踪***的***。
具体实施方式
在以下详细描述中,通过示例阐述了许多具体细节,以便提供对相关教导的透彻理解。然而,对于本领域技术人员来说应该显而易见的是,可以在没有这些细节的情况下实践本教导。在其他情况下,已经相对高级地描述了公知的方法、过程、组件和/或电路,而没有详细描述,以避免不必要地模糊本教导的各方面。
本教导涉及一种用于跟踪头部和眼睛的运动与姿势的可穿戴***。该***可以以良好的精度实现实时性能,并且可以使用低成本的现成组件来实现。本教导公开了***的各种校准和跟踪程序。
为了更好地说明本教导中公开的方法和***,图1示出了根据本教导的实施例的在此描述的跟踪***中涉及的各种3D坐标系。如图1所示,在该***中涉及了五个3D坐标***:由CS-W 110表示的世界坐标系Xw-Yw-Zw-Ow;由CS-G 120表示的陀螺仪坐标系Xg-Yg-Zg-Og;由CS-H 130表示的头坐标系Xh-Yh-Zh-Oh;由CS-C 140表示的照相机坐标系Xc-Yc-Zc-Oc;以及由CS-E 150表示的眼睛坐标系Xe-Ye-Ze-Oe。
对象坐标系CS-O可以指代CS-H或CS-C。CS-E可以指左眼CS-HL或右眼CS-CR。CS-E的原点是眼球的中心。CS-C和CS-E的单位被定义为眼球的半径。这些坐标系的包含顺序是:CS-W->CS-G->CS-H->CS-C->CS-E。
本教导中使用的术语可包括3部分ABC:A:类型(type),B:特指(specific),C:情境(context)。例如,使用四元数来表示陀螺仪坐标系中照相机的方位,我们可以使用qcg,其中“q”代表四元数,“c”代表照相机,“g”代表陀螺仪。
使用右手规则的3D坐标系的定义可以在附录部分中找到。照相机图像帧的2D坐标系的定义可以在附录部分找到。
四元数将广泛用于本教导中。注意,使用四元数的函数可以使用矩阵具有等效表达式。数学效用函数包括与本教学中使用的四元数、向量和矩阵相关的函数,在附录部分中列出。
可以在不同的情境下定义CS-W。在一个实施例中,它可以与地球上的给定位置处的某些地标对准(align),或者与地球的磁场对准,或者与传感器制造商使用的某些条件对准,因此由CS-W0表示。在另一个实施例中,为了简化,它可以与CS-G的初始方位对准,因此由CS-W1表示。在另一个实施例中,为了简化,它可以与CS-O的初始方位对准,因此由CS-W2表示。这样,世界坐标系CS-W可以是指CS-W0、CS-W1或CS-W2。
陀螺仪可以测量其自身在3D空间中的方位。CS-G的原始输出四元数qgr由传感器在其预定义的CS-W0中。为了简化数学模型,可以通过将CS-W与CS-G的初始方向对准来定义CS-W1。
因此,CS-W1中CS-G的方位四元数qgw为:
qgw=q_prd2(qgr0_cnj,qgr)
其中:
qgr0_cnj=q_cnj(qgr0)
qgr0是CS-G的初始方位四元数。
陀螺仪可用于测量3D空间中的对象的方位。假设qog是表示CS-G中CS-O的方位的四元数,则可以通过稍后将详细描述的校准过程之一来获取qog。
作为参考,定义了2个四元数:
qhg是表示CS-G中CS-H的方位的四元数;
qcg是表示CS-G中CS-C的方位的四元数。
已知CS-G中CS-O的方位四元数qog,其在CS-W1中的方位四元数qogw可以计算为:
qogw=q_prd2(qgw,qog)
其中qgw是CS-W1中CS-G的方位四元数。
为了进一步简化CS-W中CS-O的方位,可以通过将CS-W与CS-O的初始方位对准来定义CS-W2。
假设qog0是CS-G中CS-O的初始方位四元数,
qow是该新的CS-W2中CS-O的四元数,于是有:
qow=q_prd3(qog0_cnj,qgw,qog)
其中:
qog0_cnj=q_cnj(qog0)。
CS-H示于图2中。X轴从用户的左耳指向右耳,Y轴从颌底指向头顶,Z轴从鼻尖指向头部的后部。结果,X轴与我们正常的水平方向感对准,Y轴与我们正常的垂直方向感对准,Z轴与我们正常的前后方向感对准。绕其轴的旋转方向在附录部分中定义。
根据本教导的各种实施例,本文所公开的内容可包括不同的组件。
在一个实施例中,该***包括一个或多个感测单元。感测单元可以包括陀螺仪,或者通常是空间方位传感器,该空间方位传感器是测量其在3D空间中的方位的传感器。空间方位传感器可以是机械或电子设备。最常用的电子空间方位传感器通常融合加速度计、陀螺仪和磁场传感器的输出,以获取可靠的输出。陀螺仪可以测量对象沿3D空间中的3个轴的旋转角速度。为了简单起见,术语“陀螺仪”将与“空间方位传感器”可互换使用。陀螺仪的输出可以是几种格式之一,例如3乘3矩阵,欧拉角或四元数等。在本教导中,为了说明,四元数将用作陀螺仪输出。陀螺仪的原始输出可以是方位四元数。有关四元数学的更多信息,请参阅附录部分。通过将陀螺仪附接到对象,可以测量该对象的方位。
感测单元可以包括照相机,其是测量光的亮度和颜色的成像传感器。照相机可以是彩色、灰度、红外或非红外等。照相机的重要参数包括其物理尺寸、安装的镜头的分辨率和焦距等。为照相机输出定义2D照相机图像帧坐标***。
根据本教导的各种实施例,***可具有两种典型的感测单元配置。配置A仅包括陀螺仪;而配置B包括陀螺仪和照相机两者。由于陀螺仪处于两种配置,因此感测单元的位置和方位设置为与陀螺仪的位置和方位相同。因此,CS-G用于感测单元的坐标系。参考感测单元的位置和方位与参考陀螺仪的位置和方位相同。
在一个实施例中,该***包括头部装备或头戴设备,其是用于将感测单元固定到用户头部的装置。根据应用,头戴设备可以是眼镜架、头戴式显示器或头盔等。
在一个实施例中,该***包括计算机,该计算机处理感测单元的输出并计算运动/姿势跟踪结果。计算机可以是嵌入式***或桌面***。
在一个实施例中,该***包括安装在计算机上的计算机软件,用于实现本文公开的算法并实现本文公开的工作流程。
如图3所示,在配置A中,感测单元仅具有陀螺仪310。用户将陀螺仪佩戴在头部装备上,该头部装备可以是头戴式显示器或头盔,从而可以测量头部运动。注意,在该配置A中仅跟踪头部运动。
根据配置A的一个实施例,感测单元和用户头部之间的相对位置和方位在跟踪会话期间不会改变。只要满足该条件,感测单元相对于用户头部的位置和方位就没有限制。这为用户提供了关于放置感测单元的位置的灵活性。
CS-G中CS-H的方位四元数qhg可通过校准程序获得。
***在校准之后以跟踪模式工作。关于头部跟踪模式如何工作的细节将在后面描述。在任何时候,CS-W都可以与当前的头部方位重新对准以获得CS-W2。这可以为用户提供直观的以自我为中心的视图。
除了用户的头部之外,感测单元可以安装在诸如显示器、照相机、无人机等的各种对象上以用于运动跟踪。其跟踪模式的工作方式与头部跟踪模式所述的方式相同。
如图4所示,在配置B中,感测单元具有陀螺仪410和照相机420。它们可以附接到刚性框架430,使得它们的相对位置和方位一直不会改变,如图4所示。在该配置B中,当在跟踪模式下工作时,头部和眼睛运动都可以跟踪。通常,只要陀螺仪410和照相机420之间的相对位置和方位在给定的跟踪会话期间不改变,***就可以工作。当感测单元首次打开或其位置或方位改变时,可以开始新的跟踪会话。在这种新的跟踪会话之前可能需要校准,以便获得眼睛和成像传感器之间的相对位置以及头部和陀螺仪之间的相对方位。这些校准程序将在后面描述。
根据配置B的一个实施例,CS-G中CS-C的方位四元数qcg是已知的。qcg可以通过稍后描述的校准程序获得。
感测单元可以由用户佩戴,并且利用某种头部装备定位在一只或两只眼睛的前方。通常,只要在给定的跟踪会话期间感测单元和用户的头部之间的相对位置和方位不改变,***就将工作但是用户定位感测单元。
只要眼睛的中心区域落在照相机的视野中,对感测单元相对于头部或眼睛的位置和方位没有限制。这可以为用户决定将感测单元放在何处提供灵活性。
可以通过校准程序获得CS-G中CS-H的方位四元数qcg和CS-C中CS-E原点的坐标vec。这些校准程序将在后面描述。
在校准之后,***以跟踪模式工作。它可以独立地跟踪头部和眼球的方位。在任何时候,CS-W都可以与CS-H的当前方位重新对准并获得CS-W2。此外,在任何时候,CS-E都可以与CS-H的当前方位重新对准并获得CS-E1。这可以为用户提供直观的以自我为中心的视图,并且可以帮助重置***中可能发生的测量错误。
当独立地跟踪头部和眼睛运动时,可以定义和检测一组头部/眼睛姿势。例如,如果用户将注视点固定在目标上,则可以检测到凝视状况。根据在凝视状态下头部的运动,可以检测到一组头部姿势,其包括点头(head nod)、摇头(head shake)和晃头(headbobble)。此外,这些姿势的组合可以形成新的复杂姿势。
图5示出了根据本教导的实施例的在此描述的跟踪***500的示例性示图。如图5所示,跟踪***500包括照相机510、陀螺仪520和计算设备530。可以理解,根据不同的配置,跟踪***可以仅包括陀螺仪而没有照相机。
在该示例中,照相机510可以捕获并记录对象(例如,用户的一只或两只眼睛)的图像。在校准和跟踪模式两者期间,照相机510可以帮助确定用户的眼睛相对于跟踪***500或相对于陀螺仪520的方位。可以理解,照相机510可以推广到可以捕获和记录对象的图像的任何成像传感器。
照相机510可以从计算设备530接收针对眼睛图像的请求,并且将捕获的眼睛图像发送到计算设备530以用于校准和/或跟踪眼睛运动和方位。
该示例中的陀螺仪520耦合到照相机510,使得在每个跟踪会话期间固定照相机510和陀螺仪520之间的相对位置和方位。例如,照相机510和陀螺仪520可以粘在一起或通过刚性框架连接。通常,陀螺仪520可以是任何空间方位传感器,其是测量其在3D空间中的方位的传感器。空间方位传感器可以是机械或电子设备。陀螺仪的输出可以是若干格式之一,例如3乘3矩阵,欧拉角或四元数等。陀螺仪520可以在用户的头部和/或眼睛的运动期间产生输出。
陀螺仪520可以从计算设备530接收关于头部、眼睛和/或照相机510的方位信息的请求,并且将方位信息发送到计算设备530以用于校准和/或跟踪头部和眼睛运动和姿势。
该示例中的计算设备530可以从用户接收用户输入,并基于用户输入确定工作模式,该工作模式可以是校准或跟踪模式。在任一模式期间,计算设备530可以分别向照相机510和/或陀螺仪520发送对图像和方位信息的请求。在获取眼睛图像和头部和/或照相机510的方位信息之后,计算设备530可以基于各种算法执行头部/眼睛校准、头部/眼睛跟踪和/或姿势确定。
在一个实施例中,在基于用户的头部/眼睛运动确定姿势之后,计算设备530可以生成指令并向相应的设备提供指令。例如,用户可以执行姿势以触发指令以控制诸如在VR、AR、自动驾驶车辆、AI学习机器等中使用的头戴设备之类的设备。
图6示出了根据本教导的实施例的在此描述的跟踪***中的计算设备530的示例性示图。如图6所示,该示例中的计算设备530包括工作模式协调器610、用户输入分析器620、头部校准器630、眼睛校准器632、头部***640、眼睛***642、姿势确定器650、指令生成器660、指令665和头部/眼睛方位数据库680。
该示例中的用户输入分析器620可以从跟踪***的用户接收用户输入。例如,用户输入可以来自跟踪***上的按钮、开关或触摸屏。用户输入可指示用户想要打开/关闭跟踪***,将跟踪***手动地转到特定工作模式,和/或提供用于校准和跟踪的一些参数。用户输入分析器620可以分析这些输入并向工作模式协调器610提供相应的信息以用于工作模式协调。
该示例中的工作模式协调器610可以确定工作模式。工作模式可以是以下之一:头部校准,眼睛校准,头部跟踪,眼睛跟踪和姿势确定。工作模式的确定可以是基于用户输入或预定设置。例如,***可以在校准头部后自动进入头部跟踪模式,并在校准眼睛后自动进入眼睛跟踪模式。
对于每个工作模式,工作模式协调器610可以分别向照相机510和/或陀螺仪520发送对应的请求以获取眼睛图像和方位信息。工作模式协调器610可以接收来自照相机510的眼睛图像和来自陀螺仪520的方位信息,并且基于所确定的工作模式将眼睛图像和方位信息转发给对应的单元。
在一个示例中,工作模式被工作模式协调器610确定为头部校准。工作模式协调器610可以将头部方位信息转发给用于头部校准的头部校准器630。头部方位信息来自陀螺仪520的输出。
在另一个示例中,工作模式被工作模式协调器610确定为眼睛校准。工作模式协调器610可以将眼睛图像和照相机方位信息转发给用于眼睛校准的眼睛校准器632。照相机方位信息来自陀螺仪520的输出。
在又一个示例中,工作模式被工作模式协调器610确定为头部和眼睛组合校准。然后,工作模式协调器610可以将头部方位信息转发给头部校准器630以用于头部校准,并将眼睛图像和照相机方位信息转发给眼睛校准器632以用于眼睛校准。
以下描述根据各种实施例的关于校准的细节。
如上所述,配置A在感测单元中仅具有陀螺仪,用于跟踪对象(例如,用户的头部)的方位。用于获取CS-G中的CS-O的方位四元数qog的校准过程对于附接有陀螺仪的任何对象是通用的。这里的“对象”可以指用户的头部、照相机、显示器等,这取决于应用。
在一个实施例中,校准用户头部。通过沿着CS-H的3个轴中的任意2个旋转头部,可以获取CS-G中CS-H的方位四元数qhg。
在一个校准过程中,用户首先上下运动头部(绕其X轴),使得头部校准器630可以在运动期间记录陀螺仪输出。然后,用户左右运动头部(绕其Y轴),使得头部校准器630也可以在运动中记录陀螺仪输出。头部运动的这种组合,即首先沿X轴然后单独的Y轴,可以称为“M-XY”。
类似地,绕3个轴中的任何2个的旋转的其他组合可以用作校准过程并且实现相同的目标。总之,所有可能的组合是M-XY、M-XZ、M-YX、M-YZ、M-ZX、M-ZY,第一个字母表示首先绕其旋转的轴的名称,第二个字母表示其次绕其旋转的轴的名称。
可以使用相对于其CS-W0的陀螺仪原始输出四元数来计算与用户头部正在绕其旋转的轴对准的3D旋转向量。已知初始和最终方位四元数q0和q1,可以计算它们在旋转期间的差值四元数qx_dif。
可以从q_dif获得3D旋转单位向量vx。
在Y轴或Z轴上重复该过程,可以获得vy或vz。结果,vx、vy和vz是与CS-G中的CS-H的X、Y和Z轴对准的向量。X、Y和Z轴可以彼此正交,即垂直。知道其中的任何两个,第三个可以被推导出。因此,有了vx、vy和vz中的任何2个,可以获得方位四元数qhg。
用于计算四元数qhg的详细实现可以在算法部分中找到。
如上所述,根据配置B的***在感测单元中具有陀螺仪和照相机,如图5所示。陀螺仪和照相机可以一起工作,以跟踪头部、照相机方位和眼球的运动。
通过遵循校准程序可以获得以下内容:
照相机,CS-G中CS-C的方位四元数qcg,
头部,CS-G中CS-H的方位四元数qhg,
眼睛,CS-C中CS-E的原点的坐标vec。
下面描述照相机校准。
校准照相机是为了获得CS-G中CS-C的照相机方位四元数qcg。这是校准对象在CS-G中的CS-O的特殊情况。这样,这可以由头部校准器630在照相机首次与陀螺仪耦合时仅执行一次。可能会采取一些额外的步骤。首先,需要在照相机的前方设置2个标记。连接2个标记的线需要与CS-C的X轴平行。另外,在校准过程期间可能需要用于照相机帧的显示器。此外,在屏幕上的每个照相机捕获的帧的顶部绘制3条均匀间隔的水平线。中间的线位于屏幕的中间。它们的位置不会改变。需要对照相机实施一系列运动,如图7所示。
如图7所示,照相机需要定向4次才能满足一定的标准:
步骤1:将照相机定向到使得2个标记的图像位于顶线的中间的方位,并获得陀螺仪的原始四元数输出q0。步骤2:将照相机定向到使得2个标记的图像位于底线的中间的方位,并获得陀螺仪的原始四元数输出q1。步骤3:将照相机定向到使得2个标记的图像位于中线的左侧的方位,并获得陀螺仪的原始四元数输出q2。步骤4:将照相机定向到使得2个标记的图像位于中线的右侧的方位,并获得陀螺仪的原始四元数输出q3。
可以理解,这4个步骤的顺序并不重要,即它们可以以任何组合以不同顺序执行。
知道q0、q1、a2和q3,可以与算法部分中描述的获得CS-G中CS-O的方位四元数的一般方法相同的方式获得CS-G中CS-C的照相机方位四元数qcg。
此外,还可以如算法部分中所述的那样获得照相机的焦距。
对于给定的感测单元,仅需要进行一次该照相机校准。
配置B中的头部校准是获得CS-G中CS-H的方位四元数qhg。需要对首次放置感测单元或其位置或方位改变时的每个跟踪会话执行。头部校准可以如配置A所述的那样单独完成,或者可以与眼睛校准组合,如下所述。
配置B中的眼睛校准是获得CS-C中CS-E的方位四元数vec。需要对首次放置感测单元或其位置或方位改变时的每个跟踪会话执行。眼睛校准可以单独进行,也可以与头部校准组合使用。图6中的眼睛校准器632可以与头部校准器630一起既执行仅眼睛校准又执行组合校准。
在一个实施例中,在眼睛校准之前,已经通过如上所述的照相机校准获得了CS-G中CS-C的照相机方位四元数qcg。
在眼睛校准期间,照相机捕获用户眼睛的图像。与此同时,陀螺仪测量照相机的方位。来自照相机的眼睛图像和来自陀螺仪的原始方位四元数都可以使用主时钟加时间戳。通过选择时间上最接近的图像和四元数来配对样本。
在仅眼睛校准过程中,指示用户执行一系列头部和眼睛运动,以便获得陀螺仪和照相机样本数据的正确组合。用户应该选择远处的注视点并凝视它。注视点是用户眼睛凝视的地方。在不丧失眼睛对注视点的聚焦的情况下,用户转动头部。
当执行仅眼睛校准时,不需要注视点的准确位置。不需要头部具有何种运动。建议在执行头部和眼睛运动序列时,从注视点到眼睛中心的距离远远长于眼睛中心的可能局部平移。
在眼睛校准期间,用户保持固定的凝视线。凝视线是从眼球中心开始,通过瞳孔的中心,并落在注视点上的线。
如图12所示,在一个示例中,当头部向上或向下转动以便保持固定的注视线时,眼睛在相反的方向上补偿,使得在所有三个场景1210、1212、1214中,眼睛瞳孔应该总是指向同一个方向。但是,照相机拍摄的图像1220、1222、1224中的眼球位置在三种情况下应该是不同的。
类似地,如图13所示,在一个示例中,当头部向左或向右转动以便保持固定的注视线时,眼睛在相反的方向上补偿,使得在所有三个场景1310、1312、1314中,眼睛瞳孔应该总是指向同一个方向。但是,照相机拍摄的图像1320、1322、1324中的眼球位置在三种情况下应该是不同的。
在校准期间,感测单元中的陀螺仪和照相机随着头部运动。它们分别捕获包括陀螺仪的原始方位四元数和眼睛中心区域图像的样本数据对。
在该过程期间,对原始方位四元数和眼睛图像的这些样本数据对加时间戳并记录。应注意,在仅眼睛校准期间,不依赖于头部的方位。
三对样本数据足以计算CS-C中CS-E的原点的坐标vec。可以使用更多对样本数据来提高准确性和稳健性。
对于每个捕获的眼睛图像,通过图像处理获得眼睛瞳孔中心的坐标xy=(x,y)。结果,每对照相机方位和眼睛瞳孔位置数据可以表示为(qi,xyi),
其中:
qi是陀螺仪的原始输出四元数,
xyi=(xi,yi)是眼睛瞳孔中心的坐标,
i是样本数据对的索引。
结果是CS-C中CS-E的原点的坐标vec。关于计算vec的详细信息在算法部分中。
可以使用不同系列的头部和眼睛运动来执行组合的头部和眼睛校准。
在一个实施例中,用户可以选择远处的注视点。在不丧失眼睛对注视点的聚焦的情况下,用户根据上述过程转动头部以进行仅头部校准,即上、下、左和右转动头部以用于一个校准过程。
在该程序中可以获得至少4对样本数据(qi,xyi)。因此,可以使用上面针对配置A描述的方法获得CS-G中CS-H的方位四元数qhg,并且同时,可以使用为仅眼睛校准描述的方法来获得CS-C中CS-E的原点的坐标vec。
用户可节省时间并且更直观,头部和眼睛校准可在一个过程中完成。
在一个实施例中,在头部校准和/或眼睛校准之后,头部校准器630和眼睛校准器632可以将已校准信息存储到头部/眼睛方位数据库680以用于将来的跟踪。头部/眼睛方位数据库680可以存储已经使用跟踪***的多个用户的已校准信息。例如,对于每个用户,在头部校准之后,头部/眼睛方位数据库680可以为用户存储qhg,即,表示陀螺仪520的CS-G中用户的CS-H的方位的四元数。在照相机校准之后,头部/眼睛方位数据库680可以存储qcg,即,表示陀螺仪520的CS-G中照相机510的CS-C的方位的四元数。此外,在眼睛校准之后,头部/眼方位数据库680可以存储每个用户的vec和vgc;vec表示照相机510的CS-C中用户眼睛的CS-E的原点的坐标;vgc表示在如下条件下照相机510的CS-C中从用户眼睛的CS-E的原点,通过眼睛的眼睛瞳孔中心指向用户正在看的对象的注视向量:用户可以相对于用户的头部和眼睛将感测单元适应回到相同位置和方位。否则,可以执行新一轮的头部和眼睛校准。
应注意,头部和眼睛校准的结果仅在用户不移动装置时才有用。如果用户将其取下并将其取回,则感测单元相对于用户的头部和眼睛的位置和方位很可能会改变。因此,在一个实施例中,***不断地更新存储在头部/眼睛方位数据库680中的头部和眼睛校准的结果。在另一个实施例中,头部/眼睛方位数据库680不存储来自头部和眼睛校准的结果。
返回参考图6,在工作模式协调器610确定工作模式是头部跟踪或眼睛跟踪之后,工作模式协调器610可以分别从陀螺仪520和照相机510获取方位信息和眼睛图像,并将它们转发给用于头部跟踪的头部***640和用于眼睛跟踪的眼睛***642。
对于配置A中的头部跟踪,其中仅使用陀螺仪跟踪头部运动,假设使用上述校准过程获得qhg并将其存储在头部/眼睛方位数据库680中。可以使用上述方法获得CS-W2中的头部的方位。
具体而言,假设CS-W2与CS-H的初始方位对准。qgr是陀螺仪的原始输出四元数,qgr0当头部处于初始方位时是陀螺仪的原始输出四元数。
可以计算方位四元数qhw:
qhw=q_prd4(qhg_cnj,qgr0_cnj,qgr,qhg)
其中:
qgr0_cnj=q_cnj(qgr0)
qhg_cnj=q_cnj(qhg)
允许用户在任何时间使CS-W2与CS-H重新对准的能力可以为用户提供直观的以自我为中心的视图。
可以理解,配置B中的头部跟踪可以由头部***640以与配置A类似的方式执行。
配置B中的眼睛跟踪可以由眼睛***642执行。假设已完成以下校准:照相机校准、头部校准和眼睛校准。
眼睛跟踪可包括如下的若干步骤。
在第一步骤中,眼睛跟踪包括计算照相机坐标系中的注视向量。假设以下是已知的并且可以从头部/眼睛方位数据库680获得:
qcg
vec=(xc,yc,zc),CS-C中CS-E原点的坐标
vgc=(xg,yg,zg),CS-C中从CS-E的原点通过眼睛瞳孔的中心指向对象用户正在看的对象的注视向量。
计算vgc的细节在算法部分中。
在第二步骤中,眼睛跟踪包括计算头部坐标系中的注视四元数。在头部和眼睛跟踪会话中,CS-H相对于CS-W2旋转。CS-E相对于CS-C旋转。要求CS-C不相对于CS-H旋转。
假设qhg和qcg通过头部和照相机校准已知并且可以从头部/眼睛方位数据库680获取。vgc=(xg,yg,zg)是上述第一步骤中计算的CS-C中的注视向量。
令qc2h为CS-H中CS-C的四元数:
qc2h=q_prd2(qhg_cnj,qcg)
其中
qhg_cnj=q_cnj(qhg)
令vgh为CS-H中的注视向量
vgh=qvq_trans(qc2h,vgc)
一旦知道vgh,就可以在以下2个条件下计算表示CS-H中的CS-E的四元数qeh:
vgh指向CS-E的Z轴的负方向。
CS-E的X轴平行于CS-H的P-ZX平面。关于计算qeh的详细信息在算法部分中。
在第三步骤中,眼睛跟踪包括计算世界坐标系中的注视四元数。
在第二步骤中知道CS-H中的注视四元数qeh,可以获得CS-W2中的注视四元数qew:qew=q_prd3(qhw,qeh0_cnj,qeh)
其中:
qeh0_cnj=q_cnj(qeh0)
qeh0是CS-H中的初始注视四元数,用户可以使用其将CS-E与CS-H对准并获得CS-E1。
允许用户在任何时间将CS-E与CS-H重新对准并且获得CS-E1的能力可以为用户提供直观的以自我为中心的视图,并且还有助于重置可能的测量误差。
返回参考图6,在头部***640和眼睛***642执行头部和眼睛跟踪之后,它们可以将正在被跟踪的用户的头部和眼睛方位信息(例如,qhw和qew)发送给姿势确定器650,以便确定用户的姿势或姿势组合。
知道qew和qhw,姿势确定器650可以检测一组头部和眼睛姿势。这可以通过来自工作模式协调器610的工作模式姿势确定或通过预定设置来触发,使得姿势确定可以在头部/眼睛跟踪之后自动执行。
当注视向量在一段时间内被限制在小范围内时,发生凝视状况。
令vgw为CS-W2中的注视向量
vgw=qvq_trans(qhw,vgh)
其中:
在眼睛跟踪的第二步骤中获得vgh。
一段时间内vgw的平均值和方差可用于检测凝视状况。如果平均值和方差在其阈值范围内,则凝视状况发生。
当头部绕X轴旋转时,检测到点头姿势。在一个实施例中,点头姿势还包括凝视状况为真。
当头部绕Y轴旋转时,检测到摇头姿势。在一个实施例中,摇头姿势还包括凝视状况为真。
当头部绕Z轴旋转时,检测到晃头姿势。在一个实施例中,晃头姿势还包括凝视状况为真。
对于上述姿势,头部/眼睛姿势可以在每个轴上进一步划分为4种状态:
G-MP:转向正方向
G-MN:转向负方向
G-SP:到达正方向上的最远位置
G-SN:到达反方向上的最远位置
基于各种应用,上述4种状态在X、Y和Z轴中的任何一个处的组合可以形成新的姿势。
姿势确定器650可以将确定的姿势和/或姿势组合发送到指令生成器660以便生成一个或多个指令。
该示例中的指令生成器660可以基于由姿势确定器650确定的每个姿势或姿势组合来生成指令。指令生成器660可以将生成的指令作为给出该姿势或姿势组合的用户的输入提供给机器。
在一个实施例中,指令生成器660可以基于将每个姿势和/或姿势组合映射到指令的预定映射函数来选择指令665中的一个。
例如,以下系列的绕X轴的头部运动(姿势组合)可用于模拟鼠标按下和鼠标松开事件或向上和向下箭头按键事件:
G-MP->G-SP->G-MN==>鼠标松开或向上箭头键,
G-MN->G-SN->G-MP==>鼠标按下或向下箭头键。
可以沿着每个轴类似地定义和检测更多姿势。
在一个示例中,当用户具有凝视某物品的状况并且同时点头时,指令生成器660可以提供与用户在VR、AR或AI相关应用中对该物品的选择相对应的指令。
在另一个示例中,当用户具有凝视某物品的状况并且同时摇头时,指令生成器660可以提供与用户在VR、AR或AI相关应用中取消对该物品的选择相对应的指令。
在另一个示例中,当用户具有凝视某物品的状况并且同时晃头时,指令生成器660可以提供与用户在VR、AR或AI相关应用中对该物品的放大/缩小相对应的指令。
在一个实施例中,除了陀螺仪520之外,跟踪***500中不再有陀螺仪,并且跟踪***500中除了照相机510之外不再有照相机或成像传感器。
图8示出了根据本教导的实施例的用于头部校准的示例性过程的流程图。在一个实施例中,该过程可以由如图6所示的头部校准器630执行。
在810,在用户的头部沿第一轴的运动期间接收陀螺仪输出。在820计算与第一轴对准的第一3D旋转向量。在830,在用户头部沿着与第一轴正交的第二轴的运动期间接收陀螺仪输出。在840计算与第二轴对准的第二3D旋转向量。在850计算表示头部相对于陀螺仪的方位的四元数。
图9示出了根据本教导的实施例的用于照相机校准的示例性过程的流程图。在一个实施例中,该过程可以由如图6所示的头部校准器630执行。
在910,在照相机的前方配置两个标记。在920,在照相机的屏幕上配置三条均匀间隔的水平线。在930,获取位于顶线中间的两个标记的第一图像和相应的陀螺仪输出。在940,获取位于底线中间的两个标记的第二图像和相应的陀螺仪输出。在950,获取位于中线左侧的两个标记的第三图像和相应的陀螺仪输出。在960,获取位于中线右侧的两个标记的第四图像和相应的陀螺仪输出。在970,计算表示照相机相对于陀螺仪的方位的四元数。
图10示出了根据本教导的实施例的用于仅眼睛校准的示例性过程的流程图。在一个实施例中,该过程可以由如图6所示的眼睛校准器632执行,。
在1010,指示用户凝视远处的注视点。注视点可以由用户挑选或由***预先确定。注视点可以离用户足够远,使得当用户执行一系列头部和眼睛运动时,从注视点到用户眼睛中心的距离远远长于眼睛中心的可能局部平移。
在1020,指示用户执行一系列头部和眼睛运动。在1030,获取一系列数据对。每对数据包括眼睛的图像和来自陀螺仪的方位信息,该方位信息对应于捕获眼睛图像时的照相机状态。在1040,通过图像处理针对每个眼睛图像获取眼睛瞳孔中心的坐标。在1050,计算照相机坐标系中的眼球中心的坐标。
图11示出了根据本教导的实施例的用于头部和眼睛组合校准的示例性过程的流程图。在一个实施例中,该过程可以由如图6所示的头部校准器630和眼睛校准器632执行。
在1110,指示用户凝视远处的注视点。注视点可以由用户挑选或由***预先确定。注视点可以离用户足够远,使得当用户执行一系列头部和眼睛运动时,从注视点到用户眼睛中心的距离远远长于眼睛中心的可能局部平移。
在1120,在用户头部沿着彼此正交的两个轴运动的期间获取陀螺仪输出。在1130,计算与两个轴对准的3D旋转向量。在1140,计算表示头部相对于陀螺仪的方位的四元数。
在1150,获取一系列数据对。每对数据包括眼睛的图像和来自陀螺仪的方位信息,该方位信息对应于捕获眼睛图像时的照相机状态。在1160,通过图像处理针对每个眼睛图像获得眼睛瞳孔中心的坐标。在1170,计算照相机坐标系中的眼球中心的坐标。
可以理解,根据图8、图9、图10和图11讨论的每个方位可以用矩阵或向量而不是四元数来表示。可以理解的是,图8、图9、图10和图11中的每一个中所示的步骤的顺序可以根据本教导的不同实施例来改变。
图14示意性地示出了根据本教导的实施例的包括本文描述的跟踪***500的适用于虚拟现实(VR)应用的***。该***可以包括由用户佩戴的VR头戴设备,其包括跟踪***500。在佩戴头戴设备时,用户可以在用户前方看到沉浸式VR屏幕1410。屏幕1410可以包括不是现实的物品。用户可以通过执行如上所述的头部/眼睛姿势或姿势组合来对屏幕1410上的物品执行操作。在一个实施例中,在用户改变身***置之后,例如,从坐起到躺下,***可以调整其初始方位设置,以更好地跟踪用户的头部/眼睛运动和姿势。
图15示意性地示出了根据本教导的实施例的包括本文描述的跟踪***的适用于增强现实(AR)应用的***。该***可以包括由用户佩戴的AR头戴设备,其包括跟踪***500。在佩戴头戴设备时,用户可以看到图像1510,其包括增强到真实物品的真实物品1520和虚拟物品1515。可以根据用户的请求和/或基于用户的信息或正被增强的真实物品的特征来选择增强的虚拟物品。用户可以通过执行如上所述的头部/眼睛姿势或姿势组合来对图像执行操作。在一个实施例中,在用户改变身***置之后,例如,从坐起到躺下,***可以调整其初始方位设置,以更好地跟踪用户的头部/眼睛运动和姿势。
图16示意性地示出了根据本教导的实施例的包括本文描述的跟踪***的适于在自动驾驶车辆1610上实现的***。该***可以包括由用户佩戴的AR头戴设备,其包括跟踪***500。在佩戴头戴设备时,用户可以在车辆的前窗1620的顶部或附近看到增强图像1630。例如,增强图像1630可以包括示出自动驾驶车辆1610正在遵循的路线的GPS地图。用户可以通过执行如上所述的头部/眼睛姿势或姿势组合来对GPS地图执行操作。基于GPS地图上的用户操作,例如,选择可替代路线,自动驾驶车辆1610可相应地调整其操作。在一个实施例中,在用户改变身***置之后,例如,从坐起到躺回,***可以调整其初始方位设置,以更好地跟踪用户的头部/眼睛运动和姿势。
图17示意性地示出了根据本教导的实施例的包括本文描述的跟踪***的适于在与机器学习相关的人工智能上实现的***。该***可以包括由用户佩戴的头戴设备,其包括跟踪***500。在佩戴头戴设备时,用户可以使用头部/眼睛姿势来控制人工智能(AI)1710的开发,其可以在学习、建模和预测的循环中与机器学习设备1720一起工作。快速直观地跟踪和确认用户通过***进行数据采集和确认的注意点的方式可以在此循环中发挥重要作用。
在一个实施例中,***可以包括耦合到跟踪***500的任何可穿戴设备,其中该***被配置为基于来自佩戴可穿戴设备的用户的输入来开发人机交互。
算法
该部分列出了根据本教导的各种实施例使用的各种示例性算法。这些算法中使用的一些数学工具可以在后面的附录部分找到。
C1.获取对象相对于陀螺仪的方位
假设陀螺仪附接到刚性对象以进行校准。目标是获取CS-G中CS-O的方位四元数qog。
坐标系定义如上。
陀螺仪的原始四元数输出是相对于CS-W0的。
如上所述,CS-W1是与CS-G的初始方位对准的CS-W。
在一个校准过程中,对象首先绕其CS-O的X轴旋转,获取其绕该轴的第一原始方位四元数q0和第二原始方位四元数q1。然后,对象绕其CS-O的Y轴旋转,获取其在该轴上第一原始方位四元数q2和第二原始方位四元数q3。q0、q1、q2和q3是相对于CS-W0的。
可以证明,表示2个四元数q0和q1之间的差的四元数qx_dif在CS-W0或CS-W1中是相同的:
qx_dif=q_prd2(q0_cnj,q1)=q_prd2(q01_cnj,q11)其中:
q0_cnj=q_cnj(q0)
q01_cnj=q_cnj(q01)
假设q00是CS-W0中CS-G的一个初始方位四元数,
q01,q11是CS-W1中的q0,q1
q01=q_prd2(q00_cnj,q0)
q11=q_prd2(q00_cnj,q1)其中:
q00_cnj=q_cnj(q00)
单位四元数可以被解释为旋转向量和绕该向量旋转的角度。知道了表示q0和q1之间的方位差的四元数qx_dif,可以使用附录部分中的方法从四元数qx_dif获得旋转向量vx。qx_dif可以解释为从q0到q1的变换。
vx可以被认为是与CS-W1中的CS-O的X轴对准的向量。假设在CS-W1中vx0为(1,0,0),则可以计算将vx变换为vx0的四元数qx。
单位四元数可以被解释为旋转向量和绕该向量旋转的角度。假设v_qx是qx的向量部分,则v_qx是vx到vx0的叉积向量。并且假设theta_qx是qx的角度部分,则theta_qx是从vx到vx0的角度。其中:
cos(theta_qx)=v_dot(vx,vx0)
v_qx=v_crs(vx,vx0)
一旦qx已知,就校准对象的X轴。qx可以在后面的步骤中应用于陀螺仪的四元数输出。这将使对象的X轴与W-CS的X轴对准。如果需要,可以将其作为视觉反馈显示给用户。然后我们可以绕其Y轴旋转对象并获取其第一方位四元数q2和q3。
由于qx是已知的,需要在q2和q3上应用qx:假设在应用qx之后q22和q33是四元数:
q22=q_prd2(qx,q2)
q33=q_prd2(qx,q3)。
具有q22和q33,可以按照与校准X轴类似的程序校准Y轴。
qy_dif=q_prd2(q22_cnj,q33),其中:
q22_cnj=q_cnj(q22)
旋转向量vy可以使用附录中的方法从qy_dif获得。
获得vy的另一种方法是qy_dif=q_prd2(q2_cnj,q2),其中:
q2_cnj=q_cnj(q2)。旋转向量vy0可以使用附录中的方法从qy_dif获得。vy可以通过用qx变换vy0来获得。
vy=qvq_trans(qx,vy0)
vy可以被视为与被校准的对象的Y轴对准的向量。假设vy0在CS-W1中为(0,1,0),则可以计算将vy变换为vy0的四元数qy。
由于四元数可以被解释为旋转向量和绕该向量旋转的角度,假设v_qy是qy的向量部分,则v_qy是vy到vy0的叉积向量。假设theta_qy是qy的角度部分,则theta_qy是从vy到vy0的角度。
cos(theta_qy)=v_dot(vy,vy0)
v_qy=v_crs(vy,vy0)
到目前为止,qx和qy都是已知的。表示陀螺仪坐标系中对象的方位的四元数qog是:
qog=q_cnj(qxy),其中:
qxy=q_prd2(qy,qx)。
以2个步骤进行校准处理的好处是用户可以独立地重复每个步骤。它还使得校准***可以在需要时在每个阶段向用户提供视觉反馈。
这种2步骤校准也可以在不同的轴组合上以不同的顺序执行。上述过程首先校准X轴,然后校准Y轴。可以将其命名为M-XY。
类似地,绕3个轴中的任何2个旋转的其他组合可以实现相同的目标。总之,所有可能的组合是M-XY、M-XZ、M-YX、M-YZ、M-ZX、M-ZY,第一个字母表示首先绕其旋转的轴的名称,第二个字母表示其次绕其旋转的轴的名称。
C2.相对于陀螺仪和照相机焦距校准照相机方位
坐标系定义如上。
假设陀螺仪连接到需要校准的照相机。目标是获取表示CS-G中CS-C方位的方位四元数qcg。按照上述程序。可以获取来自陀螺仪的4个原始四元数q0,q1,q2,q3。上面C1部分描述的方法可用于获得qcg。
此外,还可以获得照相机的焦距。假设dy是顶行和底行之间像素数的差异。
q_dif=q_prd2(q0_cnj,q1)=(w,x,y,z)
其中
q0_cnj=q_cnj(q0)。
然后,以像素计数的照相机的焦距f是:
f=0.5*dy*w/sqrt(x*x+y*y+z*z)。
C3.在照相机协调***中获取眼球中心的坐标
坐标系定义如上。
假设陀螺仪和照相机固定在刚性框架上以形成感测单元。感测单元固定在用户的一只眼睛的前方。通过陀螺仪测量感测单元的方位。并且照相机捕获眼睛中心区域的图像。
在眼睛校准过程期间,需要用户执行一系列头部和眼睛运动,以便获得陀螺仪和照相机样本数据的正确组合。用户应该选择远处的注视点并凝视它。注视点是用户眼睛正在看的地方。在不丧失眼睛对注视点的聚焦的情况下,用户转动头部。
不需要注视点的确切位置。如果仅进行眼睛校准,则不需要头部具有何种运动。
假设通过上面的C2部分中的校准已知CS-G中的照相机方位四元数qcg。假设每个样本对包含CS-W0中陀螺仪输出的原始方位四元数qi,以及从眼睛图像获得的瞳孔中心坐标xyi=(xi,yi)。假设至少有3对样本集。
样本0:q0,(x0,y0)
样本1:q1,(x1,y1)
样本2:q2,(x2,y2)
执行以下步骤以获得vec,即CS-C中眼球中心的坐标:
步骤1:使用输入样本0和1来获得包含CS-C中与样本0对应的注视向量ve0的平面。
q1_cnj=q_cnj(q1)
qcg_cnj=q_cnj(qcg)
qe01=q_prd4(qcg_cnj,q1_cnj,q0,qcg)
me01=m_frm_q(qe01)
mi=m_idt()
mm01=m_t(me01)
mm01=m_sub(mm01,mi)
h0=DEFOX(x0)
v0=DEFOY(y0)
h1=DEFOX(x1)
v1=DEFOY(y1)
vv01=(vx01,vy01,vz01)
vx01=v0-v1vy01=h1-h0
vz01=h0*v1-h1*v0
vp01=mv_prd(mm01,vv01)
vp01=v_uni(vp01)
其中vp01表示通过CS-E原点并且在其中具有ve0的平面。
步骤2:使用输入样本0和2来获得包含在样本0处的CS-C中对应于样本0的注视向量的平面:
q2_cnj=q_cnj(q2)
qcg_cnj=q_cnj(qcg)
qe02=q_prd4(qcg_cnj,q2_cnj,q0,qcg)
me02=m_frm_q(qe02)
mi=m_idt()
mm02=m_t(me02)
mm02=m_sub(mm02,mi)
h0=DEFOX(x0)
v0=DEFOY(y0)
h2=DEFOX(x2)
v2=DEFOY(y2)
vv02=(vx02,vy02,vz02)
vx02=v0-v2
vy02=h2-h0
vz02=h0*v2-h2*v0
vp02=mv_prd(mm02,vv02)
vp02=v_uni(vp02)
其中vp02表示通过CS-E原点并且在其中具有ve0的平面。
步骤3,通过交叉都包含ve0的由步骤1和2获得的vp01、vp02表示的2个平面,可以获得样本0处的CS-C中的注视向量ve0,假定:
vp01=(a1,b1,c1)
vp02=(a2,b2,c2)
则:
ve0=(xe0,ye0,ze0)
其中:
xe0=b2*c1-b1*c2
ye0=a1*c2-a2*c1
如果(ze0<0),则ze0=a2*b1-a1*b2
如果(ze0<0),则ve0=v_neg(ve0)。
步骤4:CS-C中眼球中心的坐标vec可以通过步骤1和2的输出me01,me02,h1,v1,h2,v2和来自步骤3的输出ve0获得:
ve1=(xe1,ye1,ze1)=m_prd(me01,ve0)
ve2=(xe2,ye2,ze2)=m_prd(me02,ve0)
vec=(xc,yc,zc)是CS-C中CS-E原点的坐标。
定义GET_ZC(xy1,xy2,z1,z2,hv1,hv2)=(xy2-xy1-(hv2*z2-hv1*z1))/(hv2-hv1)。
zc可以使用以下6个函数之一来计算,
GET_ZC(xe1,xe2,ze1,ze2,h1,h2)
GET_ZC(ye1,ye2,ze1,ze2,v1,v2)
GET_ZC(xe0,xe1,ze0,ze1,h0,h1)
GET_ZC(ye0,ye1,ze0,ze1,v0,v1)
GET_ZC(xe0,xe2,ze0,ze2,h0,h2)
GET_ZC(ye0,ye2,ze0,ze2,v0,v2)
zc的最终选择可以是从以下6个函数计算的部分或全部结果的评估和加权平均值。
定义GET_XYC(xy,zz,zzcc,hv)=(hv*(zzcc+zz)-xy)
已知zc、xc和yc可以用以下2个函数之一来计算
xc=GET_XYC(xe1,ze1,zc,h1)
xc=GET_XYC(xe2,ze2,zc,h2)
xc的最终选择可以是从以下6个函数计算的部分或全部结果的评估和加权平均值。
yc可以使用以下2个函数之一来计算,
yc=GET_XYC(ye1,ze1,zc,v1)
yc=GET_XYC(ye2,ze2,zc,v2)
yc的最终选择可以是从以下6个函数计算的部分或全部结果的评估和加权平均值。
G1.计算照相机坐标系中的注视向量
坐标系定义如上。
假设照相机和眼睛已经用上述方法校准,并且:
qcc是照相机方位校准四元数
vec=(xc,yc,zc)是CS-C中CS-E原点的坐标
xy=(x,y)是照相机图像帧坐标系中眼睛瞳孔的中心,
vgc=(xg,yg,zg)是CS-C中的从CS-E的原点指向注视点的注视向量。
vgc可以如下计算:
h=DEFOX(x)
v=DEFOY(y)
a=h*h+v*v+1
b=2*((a-1)*zc-h*xc-v*yc)
c=(xc-h*zc)*(xc-h*zc)+(yc-v*zc)*(yc-v*zc)-1
p=b*b-4*a*c
k=sqrt(p)
z1=(-b+k)/(2*a)
z2=(-b-k)/(2*a)。
z1和z2都是zv解的候选,由于z2指向远离照相机,z1被挑选中。因此,得到:
zg=z1
xg=h*(zc+zg)-xc
yg=v*(zc+zg)–yc。
G2.计算头部坐标系中的注视四元数
坐标系定义如上。
假设vgh=(xvgh,yvgh,zvgh)是H-CS中的注视向量。假设E-CS使Z轴与注视向量的负方向对准。并且可以假设E-CS的X轴平行于H-CS的P-ZX平面。
然后,可以计算H-CS中的E-CS的方位四元数qeh:
lxz=sqrt(xvgh*xvgh+zvgh*zvgh)
siny=xvgh/lxz
cony=zvgh/lxz
sinx=-yvgh
conx=lxz
mx=m_frm_x_axis(mx,sinx,conx)
my=m_frm_y_axis(my,siny,cony)
mxy=m_prd(my,mx)
则:
qeh=q_frm_m(mxy)。
附录
A1.坐标系
3D坐标系具有3个轴,X、Y和Z。右手定则适用于轴的顺序和正旋转方向。任何2个轴都可以形成一个平面。因此,有定义为P-XY、P-YX和P-ZX平面的3个平面。
用于照相机图像帧的2D坐标系具有2个轴X、Y。
可以如下执行从照相机图像帧2D坐标系到3D照相机坐标系的转换。
3D照相机坐标系具有指向右侧的x轴,指向顶部的y轴和指向镜头的相反方向的z轴。照相机捕获的帧的原点位于左上角,像素的坐标(x,y)必须首先被标准化:
h=DEFOX(x)=(x-x_center)/FOCAL_LEN
v=DEFOY(y)=(y_center-y)/FOCAL_LEN
其中(x_center,y_center)是图像帧中心的坐标;FOCAL_LEN是以像素计数为单位的照相机焦距。
3D坐标中的点可以由3D向量v=(x,y,z)表示。向量从坐标系的原点到该点的位置。
A2.四元数、3D向量和3x3矩阵数学
四元数具有4个元素q=(w,x,y,z)
单位四元数:q=q_idt(q)=(1,0,0,0)
四元数的共轭:q_cnj(q)=(w,-x,-y,-z)
四元数的长度:q_len(q)=sqrt(w*w+x*x+y*y+z*z)
单位四元数的长度为1。
2个四元数q和p的乘积是t=q_prd2(q,p)=q*p
其中
q=(qw,qx,qy,qz)
p=(pw,px,py,pz)
t=(tw,tx,ty,tz)以及
tw=(qw*pw-qx*px-qy*py-qz*pz)
tx=(qw*px+qx*pw+qy*pz-qz*py)
ty=(qw*py-qx*pz+qy*pw+qz*px)
tz=(qw*pz+qx*py-qy*px+qz*pw)。
由于四元数可以用于表示旋转变换,如果q2是2个四元数的乘积q2=q_prd2(q1,q0),则应用q2作为方位变换等效于应用q0并然后应用q1。
3个四元数的乘积是:
q=q_prd3(q1,q2,q3)=q_prd2(q1,q_prd2(q2,q3))
4个四元数的乘积是:
q=q_prd4(q1,q2,q3,q4)=q_prd2(q1,q_prd3(q2,q3,q4))
3D向量具有3个元素v=(x,y,z)
3D向量的长度:v_len(v)=sqrt(x*x+y*y+z*z)
单位3D向量的长度为1。
单位四元数可以被解释为旋转向量和绕该向量旋转的角度的组合。
q=(w,x,y,z)
v=(xv,yv,zv)是旋转向量
theta是旋转角度
其中
w=cos(theta/2)
x=xv*sin(theta/2)
y=yv*sin(theta/2)
z=zv*sin(theta/2)。
2个3D向量va、vb的点积:
d=v_dot(va,vb)=va.vb=ax*bx+ay*by+az*bz,其中
va=(ax,ay,az)
vb=(bx,by,bz)。
向量点积的重要特性是:假设theta是va和vb之间的角度:则:cos(theta)=v_dot(va,vb)。
2个3D向量va、vb的叉积:vc=v_crs(va,vb)=va×vb
其中
va=(ax,ay,az)
vb=(bx,by,bz)
vc=(cx,cy,cz)
cx=ay*bz-az*by
cy=az*bx-ax*bz
cz=ax*by-ay*bx。
3x3矩阵是:
单位3x3矩阵是:
矩阵减法:
矩阵向量乘法:
vd=mv_prd(m,v)=m*vs
vs=(x,y,z)
vd=(dx,dy,dz)
其中:
dx=Xx*x+Yx*y+Zx*z
dy=Xy*x+Yy*y+Zy*z
dz=Xz*x+Yz*y+Zz*z
来自四元数的矩阵:
m=m_frm_q(q)
q=(qw,qx,qy,qz)
其中m是3X3矩阵
并且
Xx=1.0f-2.0f*qy*qy-2.0f*qz*qz
Xy=2.0f*qx*qy+2.0f*qw*qz
Xz=2.0f*qx*qz-2.0f*qw*qy
Yx=2.0f*qx*qy-2.0f*qw*qz
Yy=1.0f-2.0f*qx*qx-2.0f*qz*qz
Yz=2.0f*qy*qz+2.0f*qw*qx
Zx=2.0f*qx*qz+2.0f*qw*qy
Zy=2.0f*qy*qz-2.0f*qw*qx
Zz=1.0f-2.0f*qx*qx-2.0f*qy*qy。
用四元数q变换3D向量v:
vd=qvq_trans(q,vs)=mv_prd(m,vs)
其中
q是四元数
vs是源3D向量
vd是结果3D向量
m是3x3矩阵
m=m_frm_q(q)
通过旋转x轴的矩阵:
m=m_frm_x_axis_sc(s,c)
其中
s=sin(theta)
c=cos(theta)以及
Xx=1.0
Yx=0.0
Zx=0.0
Xy=0.0
Yy=c
Zy=-s
Xz=0.0
Yz=s
Zz=c。
通过旋转y轴的矩阵:
m=m_frm_y_axis_sc(s,c)
其中
s=sin(theta)
c=cos(theta)以及
Xx=c
Yx=0.0
Zx=s
Xy=0.0
Yy=1.0
Zy=0.0
Xz=-s
Yz=0.0
Zz=c。
来自矩阵的四元数:
q=q_frm_m(m)
其中
q=(w,x,y,z)
并且:
if(Zz<0){
if(Xx>Yy){
t=1+Xx-Yy-Zz w=Yz-Zy
x=t
y=Xy+Yx z=Zx+Xz
}else{
t=1-Xx+Yy-Zz w=Zx-Xz
x=Xy+Yx y=t
z=Yz+Zy
}
}else{
if(Xx<-Yy){
t=1-Xx-Yy+Zz w=Xy-Yx
x=Zx+Xz y=Yz+Zy z=t
}else{
t=1+Xx+Yy+Zz w=t
x=Yz-Zy y=Zx-Xz z=Xy-Yx
}
}
sqrt()是浮点数的平方根。
虽然本文已经公开了各种方面和实施例,但是其他方面和实施例对于本领域技术人员而言将是显而易见的。这里公开的各个方面和实施例是出于说明的目的而不意图是限制性的,真正的范围和精神由所附权利要求指示。
本领域技术人员将认识到,本教导可以进行各种修改和/或增强。例如,尽管上述各种组件的实现可以体现在硬件设备中,但是它也可以实现为仅软件解决方案——例如,在现有服务器上的安装。另外,如本文所公开的跟踪人头和眼睛的运动和姿势可以实现为固件、固件/软件组合、固件/硬件组合或硬件/固件/软件组合。
虽然前面已经描述了被认为构成本教导和/或其他示例的内容,但是应当理解,可以对其进行各种修改,并且本文公开的主题可以以各种形式和示例实现,并且该教导可以应用于许多应用中,这里仅描述了其中的一些应用。所附权利要求旨在要求保护落入本教导的真实范围内的任何和所有应用、修改和变化。
Claims (40)
1.一种被配置为跟踪头部运动的装置,包括:
空间方位传感器,该空间方位传感器被配置为:
在用户头部绕第一轴的第一旋转期间产生第一输出,并且
在用户头部绕与第一轴正交的第二轴的第二旋转期间产生第二输出;以及
计算设备,该计算设备包括处理器和与处理器通信耦合的存储器,其中处理器被配置为:
基于第一输出和第二输出确定头部和空间方位传感器之间的方位关系。
2.根据权利要求1所述的装置,其中,计算设备包括被配置为基于用户的输入确定计算设备的工作模式的工作模式协调器,其中工作模式是以下中的至少一个:头部校准、头部跟踪和姿势确定。
3.根据权利要求1所述的装置,其中,计算设备包括头部校准器,该头部校准器被配置为:
获取空间方位传感器的第一输出;
基于第一输出计算与第一轴对准的第一旋转向量;
获取空间方位传感器的第二输出;
基于第二输出计算与第二轴对准的第二旋转向量;以及
基于第一旋转向量和第二旋转向量计算表示头部和空间方位传感器之间的方位关系的一个或多个参数。
4.根据权利要求1所述的装置,其中,计算设备包括头部***,该头部***被配置为:
当头部处于初始方位时,获取空间方位传感器的初始输出;
当头部处于最终方位时,获取空间方位传感器的最终输出;以及
基于空间方位传感器的初始输出、空间方位传感器的最终输出以及头部和空间方位传感器之间的方位关系,检测从初始方位到最终方位的头部运动。
5.根据权利要求4所述的装置,其中,头部***还被配置为:
将最终输出配置为空间方位传感器的新的初始输出;以及
将最终方位配置为头部的新的初始方位,使得将来相对于新的初始方位检测头部运动。
6.根据权利要求4所述的装置,其中,计算设备包括姿势确定器,该姿势确定器被配置为:
基于检测到的头部运动确定头部姿势,其中当头部绕第三轴上下运动时,头部姿势是点头,其中当头部绕与第三轴正交的第四轴左右运动时,头部姿势是摇头,并且,其中当头部绕与第三轴和第四轴都正交的第五轴运动时,头部姿势是晃头。
7.根据权利要求6所述的装置,其中,计算设备包括指令生成器,该指令生成器被配置为基于所确定的头部姿势生成指令,其中该指令对应于用户对机器的输入。
8.根据权利要求1所述的装置,其中,由所述装置测量的方位基于以下中的至少一个来表示:四元数、欧拉角和矩阵。
9.根据权利要求1所述的装置,其中,所述装置能够安装到佩戴在头部上的设备上。
10.根据权利要求1所述的装置,其中,空间方位传感器是所述装置中唯一的空间方位传感器。
11.一种被配置为跟踪眼睛运动的装置,包括:
成像传感器,该成像传感器被配置为当用户凝视注视点并执行一系列眼睛运动时捕获和记录用户眼睛的图像;
空间方位传感器,该空间方位传感器耦合到成像传感器,使得成像传感器相对于空间方位传感器具有固定位置和固定方位,该空间方位传感器被配置为:
在所述系列眼睛运动期间产生输出,其中每个输出对应于眼睛的一个图像;以及
计算设备,该计算设备包括处理器和与处理器通信耦合的存储器,其中处理器被配置为:
基于以下来确定眼睛的眼球中心与成像传感器之间的位置关系:眼睛的图像、空间方位传感器的输出、以及成像传感器相对于空间方位传感器的固定方位。
12.根据权利要求11所述的装置,其中,计算设备包括被配置为基于用户的输入确定计算设备的工作模式的工作模式协调器,其中工作模式是以下中的至少一个:眼睛校准、眼睛跟踪和姿势确定。
13.根据权利要求11所述的装置,其中,所述装置安装在固定平台上,并且计算设备还被配置为:
在成像传感器的前方配置两个标记;
在成像传感器的屏幕上配置三条均匀间隔的水平线,其中三条线的中间线位于屏幕的中间;
当成像传感器被定向为使得所述两个标记的图像位于所述三条线的顶线的中间的方位时,获取空间方位传感器的第一输出;
当成像传感器被定向为使得所述两个标记的图像位于所述三条线的底线的中间的方位时,获取空间方位传感器的第二输出;
当成像传感器被定向为使得所述两个标记的图像位于所述三条线的中线的左侧的方位时,获取空间方位传感器的第三输出;
当成像传感器被定向为使得所述两个标记的图像位于所述三条线的中线的右侧的方位时,获取空间方位传感器的第四输出;以及
基于第一输出、第二输出、第三输出和第四输出计算成像传感器相对于空间方位传感器的固定方位和成像传感器的焦距。
14.根据权利要求11所述的装置,其中,计算设备包括眼睛校准器,该眼睛校准器被配置为:
指示用户凝视注视点并执行所述系列眼睛运动;
获取一系列数据对,每个数据对包括眼睛的图像和空间方位传感器的相应输出;
获取每个图像中的眼球中心的坐标;以及
计算眼球中心相对于成像传感器的坐标。
15.根据权利要求14所述的装置,其中,眼睛校准器还被配置为基于由成像传感器捕获的双眼的图像来计算用户的双眼的眼球中心相对于成像传感器的坐标。
16.根据权利要求11所述的装置,其中,计算设备包括眼睛***,该眼睛***被配置为:
计算相对于成像传感器的通过头部上的眼睛的眼球中心指向用户正在看的对象的注视向量;
基于相对于成像传感器的注视向量计算相对于头部的注视向量;
基于相对于头部的注视向量计算眼睛相对于头部的最终方位;
基于眼睛相对于头部的预定初始方位和眼睛相对于头部的最终方位,检测眼睛从眼睛相对于头部的预定初始方位到最终方位的眼睛运动;以及
基于眼睛的眼睛运动以及头部与空间方位传感器之间的方位关系计算相对于世界的最终注视向量。
17.根据权利要求16所述的装置,其中,眼睛***还被配置为:
将眼睛的最终方位配置为眼睛相对于头部的新的初始方位,使得将来基于眼睛相对于头部的新的初始方位检测眼睛运动。
18.根据权利要求16所述的装置,其中,计算设备包括姿势确定器,该姿势确定器被配置为:
基于检测到的眼睛运动确定眼睛姿势,其中当相对于世界的注视向量在一段时间内被限制在预定的小范围内时,眼睛姿势是凝视状态。
19.根据权利要求18所述的装置,其中,计算设备包括指令生成器,该指令生成器被配置为基于所确定的眼睛姿势生成指令,其中该指令对应于用户对机器的输入。
20.根据权利要求16所述的装置,其中,眼睛***还被配置为检测用户双眼的眼睛运动,其中对应于每只眼睛的注视向量相对于世界从预定的初始方位运动到最终方位。
21.根据权利要求11所述的装置,其中,所述装置不再包括除所述成像传感器之外的成像传感器,并且不再包括除所述空间方位传感器之外的空间方位传感器。
22.一种被配置为跟踪头部和眼睛运动的装置,包括:
成像传感器,该成像传感器被配置为当用户凝视注视点并且绕第一轴和绕与第一轴正交的第二轴旋转用户的头部时捕获和记录用户的眼睛的图像;
空间方位传感器,该空间方位传感器耦合到成像传感器,使得成像传感器相对于空间方位传感器具有固定位置和固定方位,该空间方位传感器被配置为:
在用户头部旋转期间产生输出,其中每个输出对应于眼睛的一个图像;以及
计算设备,该计算设备包括处理器和与处理器通信耦合的存储器,其中处理器被配置为:
基于所述输出确定头部和空间方位传感器之间的方位关系,并且
基于以下来确定眼睛的眼球中心与成像传感器之间的位置关系:眼睛的图像、空间方位传感器的输出、以及成像传感器相对于空间方位传感器的固定方位。
23.根据权利要求22所述的装置,其中,计算设备包括:
头部***,该头部***被配置为:
当头部处于初始方位时,获取空间方位传感器的初始输出,
当头部处于最终方位时,获取空间方位传感器的最终输出,以及
基于空间方位传感器的初始输出、空间方位传感器的最终输出以及头部和空间方位传感器之间的方位关系,检测从初始方位到最终方位的头部运动;以及
眼睛***,该眼睛***被配置为:
计算相对于成像传感器的通过眼球中心指向用户正在看的对象的注视向量,
基于相对于成像传感器的注视向量计算相对于头部的注视向量,
基于相对于头部的注视向量计算眼睛相对于头部的最终方位,
基于眼睛相对于头部的预定初始方位和眼睛相对于头部的最终方位,检测眼睛从眼睛相对于头部的预定初始方位到最终方位的眼睛运动,以及
基于眼睛的眼睛运动以及头部与空间方位传感器之间的方位关系计算相对于世界的最终注视向量。
24.根据权利要求23所述的装置,其中,同时检测头部运动和眼睛运动。
25.根据权利要求23所述的装置,其中,彼此独立地检测头部运动和眼睛运动。
26.根据权利要求23所述的装置,其中:
眼睛***还被配置为将眼睛的最终方位配置为眼睛相对于头部的新的初始方位,使得将来基于眼睛相对于头部的新的初始方位检测眼睛运动;并且
头部***还被配置为:
将最终输出配置为空间方位传感器的新的初始输出;以及
将最终方位配置为头部的新的初始方位,使得将来相对于头部的新的初始方位检测头部运动。
27.根据权利要求23所述的装置,其中,计算设备包括姿势确定器,该姿势确定器被配置为:
基于检测到的头部运动确定头部姿势,其中当头部绕第三轴上下运动时,头部姿势是点头,其中当头部绕与第三轴正交的第四轴左右运动时,头部姿势是摇头,并且,其中当头部绕与第三轴和第四轴都正交的第五轴运动时,头部姿势是晃头;
基于检测到的眼睛运动确定眼睛姿势,其中当注视向量在一段时间内被限制在预定的小范围内时,眼睛姿势是凝视状态;以及
基于眼睛姿势和头部姿势确定姿势组合。
28.根据权利要求27所述的装置,其中,计算设备包括指令生成器,该指令生成器被配置为基于所确定的姿势组合生成指令,其中该指令对应于用户对机器的输入。
29.根据权利要求22所述的装置,其中,所述装置不再包括除所述成像传感器之外的成像传感器,并且不再包括除所述空间方位传感器之外的空间方位传感器。
30.一种包括根据权利要求22所述的装置和耦合到所述装置的头戴设备的***,其中,所述***被配置为为头戴设备的佩戴者提供虚拟现实。
31.一种包括根据权利要求22所述的装置和耦合到所述装置的头戴设备的***,其中,所述***被配置为为头戴设备的佩戴者提供增强现实。
32.一种包括根据权利要求22所述的装置和耦合到所述装置的头戴设备的***,其中,所述***被配置为为在自动驾驶车辆中佩戴头戴设备的驾驶员提供增强现实。
33.一种包括根据权利要求22所述的装置和耦合到所述装置的头戴设备的***,其中,所述***被配置为基于来自佩戴头戴设备的用户的输入来开发人工智能和/或机器学习。
34.一种包括根据权利要求22所述的装置和耦合到所述装置的可穿戴设备的***,其中,所述***被配置为基于来自佩戴可穿戴设备的用户的输入来开发人机交互。
35.一种在包括至少一个处理器和存储器的用于跟踪对象的运动的机器上实现的方法,所述方法包括:
在对象绕第一轴的第一旋转期间产生第一输出;
在对象绕与第一轴正交的第二轴的第二旋转期间产生第二输出;以及
基于第一输出和第二输出确定对象和空间方位传感器之间的方位关系。
36.根据权利要求35所述的方法,其中,所述对象是用户的头部。
37.一种在包括至少一个处理器和存储器的用于跟踪头部和眼睛运动的机器上实现的方法,所述方法包括:
当用户凝视注视点并执行一系列头部和眼睛运动时,由成像传感器捕获和记录用户眼睛的图像;
在所述系列头部和眼睛运动期间由空间方位传感器产生输出,其中每个输出对应于眼睛的一个图像,其中成像传感器相对于空间方位传感器具有固定位置和固定方位;以及
由所述至少一个处理器基于以下来确定眼睛的眼球中心与成像传感器之间的位置关系:眼睛的图像、空间方位传感器的输出、以及成像传感器相对于空间方位传感器的固定方位。
38.一种在包括至少一个处理器和存储器的用于跟踪头部和眼睛运动的机器上实现的方法,所述方法包括:
当用户凝视注视点并且绕第一轴和绕与第一轴正交的第二轴旋转用户的头部时,由成像传感器捕获和记录用户的眼睛的图像;
在用户的头部旋转期间由空间方位传感器产生输出,其中每个输出对应于眼睛的一个图像,其中成像传感器相对于空间方位传感器具有固定位置和固定方位;
由所述至少一个处理器基于所述输出确定头部和空间方位传感器之间的方位关系;以及
由所述至少一个处理器基于以下来确定眼睛的眼球中心与成像传感器之间的位置关系:眼睛的图像、空间方位传感器的输出、以及成像传感器相对于空间方位传感器的固定方位。
39.一种机器可读的有形非暂时性介质,具有用于跟踪头部运动的信息,其中该信息在被机器读取时使机器执行以下操作:
在用户头部绕第一轴的第一旋转期间产生第一输出;
在用户头部绕与第一轴正交的第二轴的第二旋转期间产生第二输出;以及
基于第一输出和第二输出确定头部和空间方位传感器之间的方位关系。
40.一种装置,包括:
成像传感器;
空间方位传感器,该空间方位传感器耦合到成像传感器,使得成像传感器相对于空间方位传感器具有固定位置和固定方位;以及
计算设备,该计算设备包括处理器和与处理器通信耦合的存储器,其中处理器被配置为:
在成像传感器的前方配置两个标记,
在成像传感器的屏幕上配置三条均匀间隔的水平线,其中三条线的中间线位于屏幕的中间,
当成像传感器被定向为使得所述两个标记的图像位于所述三条线的顶线的中间的方位时,获取空间方位传感器的第一输出,
当成像传感器被定向为使得所述两个标记的图像位于所述三条线的底线的中间的方位时,获取空间方位传感器的第二输出,
当成像传感器被定向为使得所述两个标记的图像位于所述三条线的中线的左侧的方位时,获取空间方位传感器的第三输出,
当成像传感器被定向为使得所述两个标记的图像位于所述三条线的中线的右侧的方位时,获取空间方位传感器的第四输出,以及
基于第一输出、第二输出、第三输出和第四输出计算成像传感器相对于空间方位传感器的固定方位和成像传感器的焦距。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202011521034.7A CN112578911B (zh) | 2016-12-06 | 跟踪头部和眼睛的运动的装置和方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
PCT/US2016/065141 WO2018106220A1 (en) | 2016-12-06 | 2016-12-06 | Systems and methods for tracking motion and gesture of heads and eyes |
Related Child Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202011521034.7A Division CN112578911B (zh) | 2016-12-06 | 跟踪头部和眼睛的运动的装置和方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN109804220A true CN109804220A (zh) | 2019-05-24 |
CN109804220B CN109804220B (zh) | 2021-01-26 |
Family
ID=59982135
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN201680089480.0A Active CN109804220B (zh) | 2016-12-06 | 2016-12-06 | 用于跟踪头部运动的装置和方法 |
Country Status (4)
Country | Link |
---|---|
US (2) | US9785249B1 (zh) |
EP (2) | EP3552077B1 (zh) |
CN (1) | CN109804220B (zh) |
WO (1) | WO2018106220A1 (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN110989832A (zh) * | 2019-11-21 | 2020-04-10 | 维沃移动通信有限公司 | 一种控制方法和电子设备 |
US11061469B2 (en) | 2019-11-20 | 2021-07-13 | XRSpace CO., LTD. | Head mounted display system and rotation center correcting method thereof |
Families Citing this family (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10884493B2 (en) * | 2013-06-20 | 2021-01-05 | Uday Parshionikar | Gesture based user interfaces, apparatuses and systems using eye tracking, head tracking, hand tracking, facial expressions and other user actions |
US9766702B2 (en) | 2014-06-19 | 2017-09-19 | Apple Inc. | User detection by a computing device |
EP3552077B1 (en) * | 2016-12-06 | 2021-04-28 | Vuelosophy Inc. | Systems and methods for tracking motion and gesture of heads and eyes |
GB2559133A (en) * | 2017-01-25 | 2018-08-01 | Avantis Systems Ltd | A method of navigating viewable content within a virtual environment generated by a virtual reality system |
US11567318B1 (en) * | 2017-09-25 | 2023-01-31 | Meta Platforms Technologies, Llc | Determining features of a user's eye from depth mapping of the user's eye via indirect time of flight |
JP2021096490A (ja) * | 2018-03-28 | 2021-06-24 | ソニーグループ株式会社 | 情報処理装置、情報処理方法、およびプログラム |
EP3722158A1 (en) | 2019-04-10 | 2020-10-14 | Volvo Car Corporation | A voice assistant system |
CN110084857B (zh) * | 2019-04-30 | 2022-09-23 | 南京邮电大学 | Kinect和厉动传感器组合传感装置及联合标定方法 |
WO2021194790A1 (en) * | 2020-03-27 | 2021-09-30 | Apple Inc. | Devices, methods, and graphical user interfaces for gaze-based navigation |
CN116438510A (zh) | 2020-06-26 | 2023-07-14 | 苹果公司 | 用于内容应用程序的设备、方法和图形用户界面 |
CN111861275B (zh) * | 2020-08-03 | 2024-04-02 | 河北冀联人力资源服务集团有限公司 | 家政工作模式的识别方法和装置 |
WO2022067302A1 (en) | 2020-09-25 | 2022-03-31 | Apple Inc. | Methods for navigating user interfaces |
CN116322474A (zh) * | 2020-10-12 | 2023-06-23 | 聂小春 | 用于测量眼睛视轴的***和方法 |
KR20230037147A (ko) * | 2021-09-09 | 2023-03-16 | 한국전자통신연구원 | 비접촉 응시 기반 헤딩 정보를 이용한 사용자 명령 인식 장치 및 이를 이용한 방법 |
Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627915A (zh) * | 2002-02-19 | 2005-06-15 | 沃尔沃技术公司 | 用于监视和管理司机注意力负荷的***和方法 |
US20070015611A1 (en) * | 2005-07-13 | 2007-01-18 | Ultimate Balance, Inc. | Orientation and motion sensing in athletic training systems, physical rehabilitation and evaluation systems, and hand-held devices |
US20110128223A1 (en) * | 2008-08-07 | 2011-06-02 | Koninklijke Phillips Electronics N.V. | Method of and system for determining a head-motion/gaze relationship for a user, and an interactive display system |
US20120306850A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Distributed asynchronous localization and mapping for augmented reality |
US20130154913A1 (en) * | 2010-12-16 | 2013-06-20 | Siemens Corporation | Systems and methods for a gaze and gesture interface |
US20130304479A1 (en) * | 2012-05-08 | 2013-11-14 | Google Inc. | Sustained Eye Gaze for Determining Intent to Interact |
US20130300653A1 (en) * | 2011-08-29 | 2013-11-14 | John R. Lewis | Gaze detection in a see-through, near-eye, mixed reality display |
US20150138074A1 (en) * | 2013-11-15 | 2015-05-21 | Kopin Corporation | Head Tracking Based Gesture Control Techniques for Head Mounted Displays |
US20150212576A1 (en) * | 2014-01-28 | 2015-07-30 | Anthony J. Ambrus | Radial selection by vestibulo-ocular reflex fixation |
US20150331516A1 (en) * | 2012-03-22 | 2015-11-19 | Mediatek Inc. | Methods for input-output calibration and image rendering |
Family Cites Families (39)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7391A (en) * | 1850-05-21 | Quilting-frame | ||
GB9917591D0 (en) * | 1999-07-28 | 1999-09-29 | Marconi Electronic Syst Ltd | Head tracker system |
AU2001233019A1 (en) * | 2000-01-28 | 2001-08-07 | Intersense, Inc. | Self-referenced tracking |
US6982697B2 (en) * | 2002-02-07 | 2006-01-03 | Microsoft Corporation | System and process for selecting objects in a ubiquitous computing environment |
US7401920B1 (en) * | 2003-05-20 | 2008-07-22 | Elbit Systems Ltd. | Head mounted eye tracking and display system |
US8614676B2 (en) * | 2007-04-24 | 2013-12-24 | Kuo-Ching Chiang | User motion detection mouse for electronic device |
JP4857196B2 (ja) * | 2007-05-31 | 2012-01-18 | キヤノン株式会社 | 頭部装着型表示装置、及びその制御方法 |
DE102007056528B3 (de) * | 2007-11-16 | 2009-04-02 | Seereal Technologies S.A. | Verfahren und Vorrichtung zum Auffinden und Verfolgen von Augenpaaren |
US8907887B2 (en) * | 2008-05-19 | 2014-12-09 | Honeywell International Inc. | Methods and systems for operating avionic systems based on user gestures |
JP2010256878A (ja) * | 2009-03-30 | 2010-11-11 | Equos Research Co Ltd | 情報表示装置 |
US20100315329A1 (en) * | 2009-06-12 | 2010-12-16 | Southwest Research Institute | Wearable workspace |
US9292084B2 (en) * | 2009-10-13 | 2016-03-22 | Intel Corporation | Control systems and methods for head-mounted information systems |
US8928696B1 (en) * | 2010-05-25 | 2015-01-06 | MCube Inc. | Methods and apparatus for operating hysteresis on a hand held device |
US9851787B2 (en) * | 2012-11-29 | 2017-12-26 | Microsoft Technology Licensing, Llc | Display resource management |
US9812046B2 (en) * | 2013-01-10 | 2017-11-07 | Microsoft Technology Licensing, Llc | Mixed reality display accommodation |
US9526443B1 (en) * | 2013-01-19 | 2016-12-27 | Bertec Corporation | Force and/or motion measurement system and a method of testing a subject |
US9202313B2 (en) * | 2013-01-21 | 2015-12-01 | Microsoft Technology Licensing, Llc | Virtual interaction with image projection |
US9699433B2 (en) * | 2013-01-24 | 2017-07-04 | Yuchen Zhou | Method and apparatus to produce re-focusable vision with detecting re-focusing event from human eye |
US9370302B2 (en) * | 2014-07-08 | 2016-06-21 | Wesley W. O. Krueger | System and method for the measurement of vestibulo-ocular reflex to improve human performance in an occupational environment |
US9788714B2 (en) * | 2014-07-08 | 2017-10-17 | Iarmourholdings, Inc. | Systems and methods using virtual reality or augmented reality environments for the measurement and/or improvement of human vestibulo-ocular performance |
US9189095B2 (en) * | 2013-06-06 | 2015-11-17 | Microsoft Technology Licensing, Llc | Calibrating eye tracking system by touch input |
US8988345B2 (en) * | 2013-06-25 | 2015-03-24 | Microsoft Technology Licensing, Llc | Adaptive event recognition |
US20140375541A1 (en) * | 2013-06-25 | 2014-12-25 | David Nister | Eye tracking via depth camera |
US9767609B2 (en) * | 2014-02-12 | 2017-09-19 | Microsoft Technology Licensing, Llc | Motion modeling in visual tracking |
US10007391B2 (en) * | 2014-06-09 | 2018-06-26 | Apple Inc. | Interfaces for a spirit level application |
US10416760B2 (en) * | 2014-07-25 | 2019-09-17 | Microsoft Technology Licensing, Llc | Gaze-based object placement within a virtual reality environment |
US20160025971A1 (en) * | 2014-07-25 | 2016-01-28 | William M. Crow | Eyelid movement as user input |
US9904055B2 (en) * | 2014-07-25 | 2018-02-27 | Microsoft Technology Licensing, Llc | Smart placement of virtual objects to stay in the field of view of a head mounted display |
US9563805B2 (en) * | 2014-09-02 | 2017-02-07 | Hong Kong Baptist University | Method and apparatus for eye gaze tracking |
US10228766B2 (en) * | 2014-09-12 | 2019-03-12 | Microsoft Technology Licensing, Llc | Enhanced Display Rotation |
WO2016073986A1 (en) * | 2014-11-07 | 2016-05-12 | Eye Labs, LLC | Visual stabilization system for head-mounted displays |
US10073516B2 (en) * | 2014-12-29 | 2018-09-11 | Sony Interactive Entertainment Inc. | Methods and systems for user interaction within virtual reality scene using head mounted display |
EP3064130A1 (en) * | 2015-03-02 | 2016-09-07 | MindMaze SA | Brain activity measurement and feedback system |
JP6582604B2 (ja) * | 2015-06-23 | 2019-10-02 | 富士通株式会社 | 瞳孔検出プログラム、瞳孔検出方法、瞳孔検出装置および視線検出システム |
US9851561B2 (en) * | 2015-12-23 | 2017-12-26 | Intel Corporation | Head-mounted device with rear-facing camera |
US10133345B2 (en) * | 2016-03-22 | 2018-11-20 | Microsoft Technology Licensing, Llc | Virtual-reality navigation |
US10268266B2 (en) * | 2016-06-29 | 2019-04-23 | Microsoft Technology Licensing, Llc | Selection of objects in three-dimensional space |
US20180150204A1 (en) * | 2016-11-30 | 2018-05-31 | Google Inc. | Switching of active objects in an augmented and/or virtual reality environment |
EP3552077B1 (en) * | 2016-12-06 | 2021-04-28 | Vuelosophy Inc. | Systems and methods for tracking motion and gesture of heads and eyes |
-
2016
- 2016-12-06 EP EP16923420.0A patent/EP3552077B1/en active Active
- 2016-12-06 CN CN201680089480.0A patent/CN109804220B/zh active Active
- 2016-12-06 WO PCT/US2016/065141 patent/WO2018106220A1/en unknown
- 2016-12-06 EP EP21163842.4A patent/EP3859495B1/en active Active
- 2016-12-21 US US15/387,024 patent/US9785249B1/en active Active
-
2017
- 2017-08-07 US US15/671,097 patent/US10353482B2/en active Active
Patent Citations (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN1627915A (zh) * | 2002-02-19 | 2005-06-15 | 沃尔沃技术公司 | 用于监视和管理司机注意力负荷的***和方法 |
US20070015611A1 (en) * | 2005-07-13 | 2007-01-18 | Ultimate Balance, Inc. | Orientation and motion sensing in athletic training systems, physical rehabilitation and evaluation systems, and hand-held devices |
US20110128223A1 (en) * | 2008-08-07 | 2011-06-02 | Koninklijke Phillips Electronics N.V. | Method of and system for determining a head-motion/gaze relationship for a user, and an interactive display system |
US20130154913A1 (en) * | 2010-12-16 | 2013-06-20 | Siemens Corporation | Systems and methods for a gaze and gesture interface |
US20120306850A1 (en) * | 2011-06-02 | 2012-12-06 | Microsoft Corporation | Distributed asynchronous localization and mapping for augmented reality |
US20130300653A1 (en) * | 2011-08-29 | 2013-11-14 | John R. Lewis | Gaze detection in a see-through, near-eye, mixed reality display |
US20150331516A1 (en) * | 2012-03-22 | 2015-11-19 | Mediatek Inc. | Methods for input-output calibration and image rendering |
US20130304479A1 (en) * | 2012-05-08 | 2013-11-14 | Google Inc. | Sustained Eye Gaze for Determining Intent to Interact |
US20150138074A1 (en) * | 2013-11-15 | 2015-05-21 | Kopin Corporation | Head Tracking Based Gesture Control Techniques for Head Mounted Displays |
US20150212576A1 (en) * | 2014-01-28 | 2015-07-30 | Anthony J. Ambrus | Radial selection by vestibulo-ocular reflex fixation |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11061469B2 (en) | 2019-11-20 | 2021-07-13 | XRSpace CO., LTD. | Head mounted display system and rotation center correcting method thereof |
CN110989832A (zh) * | 2019-11-21 | 2020-04-10 | 维沃移动通信有限公司 | 一种控制方法和电子设备 |
Also Published As
Publication number | Publication date |
---|---|
US9785249B1 (en) | 2017-10-10 |
WO2018106220A1 (en) | 2018-06-14 |
CN109804220B (zh) | 2021-01-26 |
EP3552077A4 (en) | 2019-10-16 |
EP3552077B1 (en) | 2021-04-28 |
US20180157332A1 (en) | 2018-06-07 |
US10353482B2 (en) | 2019-07-16 |
EP3859495A1 (en) | 2021-08-04 |
EP3859495B1 (en) | 2023-05-10 |
EP3552077A1 (en) | 2019-10-16 |
CN112578911A (zh) | 2021-03-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN109804220A (zh) | 用于跟踪头部和眼睛的运动和姿势的***和方法 | |
US11315287B2 (en) | Generating pose information for a person in a physical environment | |
CN106980368B (zh) | 一种基于视觉计算及惯性测量单元的虚拟现实交互设备 | |
CN110913751B (zh) | 具有滑动检测和校正功能的可穿戴眼睛跟踪*** | |
CN103180893B (zh) | 用于提供三维用户界面的方法和*** | |
CN109146965A (zh) | 信息处理装置和计算机程序 | |
CN109313495A (zh) | 融合惯性手持控制器与手动跟踪的六自由度混合现实输入 | |
KR20180101496A (ko) | 인사이드-아웃 위치, 사용자 신체 및 환경 추적을 갖는 가상 및 혼합 현실을 위한 머리 장착 디스플레이 | |
WO2015026645A1 (en) | Automatic calibration of scene camera for optical see-through head mounted display | |
Dorfmüller-Ulhaas | Robust optical user motion tracking using a kalman filter | |
CN111353355B (zh) | 动作追踪***及方法 | |
CN105630152A (zh) | 处理视觉数据的设备和方法以及相关的计算机程序产品 | |
CN105225270B (zh) | 一种信息处理方法及电子设备 | |
US11656471B2 (en) | Eyewear including a push-pull lens set | |
KR102456872B1 (ko) | 영상센서와 관성센서의 강결합 융합을 이용한 손동작 추적시스템 및 방법 | |
CN114387679A (zh) | 基于递归卷积神经网络实现视线估计与注意力分析的***及其方法 | |
Deldjoo et al. | A low-cost infrared-optical head tracking solution for virtual 3d audio environment using the nintendo wii-remote | |
Martinikorena et al. | Low cost gaze estimation: Knowledge-based solutions | |
Bhowmik | Sensification of computing: adding natural sensing and perception capabilities to machines | |
CN112578911B (zh) | 跟踪头部和眼睛的运动的装置和方法 | |
JP6210447B2 (ja) | 視線計測装置、注視点の表示方法、注視領域の表示方法および注視点のガウス分布の表示方法 | |
WO2019055260A1 (en) | SYSTEMS AND METHODS FOR CALIBRATING IMAGING SENSORS AND SPATIAL ORIENTATION | |
CN111201502A (zh) | 用于校准眼睛跟踪***的***和方法 | |
Plopski et al. | Tracking systems: Calibration, hardware, and peripherals | |
Kam | Robust Combined Approach for Human Action Recognition and Medical Diagnostics |
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 | ||
GR01 | Patent grant | ||
GR01 | Patent grant |