ES2957329T3 - Sistemas y métodos para el seguimiento ocular en aplicaciones de realidad virtual y de realidad aumentada - Google Patents
Sistemas y métodos para el seguimiento ocular en aplicaciones de realidad virtual y de realidad aumentada Download PDFInfo
- Publication number
- ES2957329T3 ES2957329T3 ES19705518T ES19705518T ES2957329T3 ES 2957329 T3 ES2957329 T3 ES 2957329T3 ES 19705518 T ES19705518 T ES 19705518T ES 19705518 T ES19705518 T ES 19705518T ES 2957329 T3 ES2957329 T3 ES 2957329T3
- Authority
- ES
- Spain
- Prior art keywords
- image
- marker
- distance
- lens
- eye tracking
- 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.)
- Active
Links
- 230000003190 augmentative effect Effects 0.000 title claims abstract description 26
- 238000000034 method Methods 0.000 title description 38
- 239000003550 marker Substances 0.000 claims abstract description 107
- 238000004422 calculation algorithm Methods 0.000 claims abstract description 20
- 230000008859 change Effects 0.000 claims description 18
- 238000003384 imaging method Methods 0.000 claims description 7
- 241000226585 Antennaria plantaginifolia Species 0.000 abstract description 33
- 210000001508 eye Anatomy 0.000 description 99
- 230000003993 interaction Effects 0.000 description 36
- 230000015654 memory Effects 0.000 description 24
- 230000008569 process Effects 0.000 description 15
- 239000013598 vector Substances 0.000 description 14
- 238000012545 processing Methods 0.000 description 13
- 210000004087 cornea Anatomy 0.000 description 12
- 238000003860 storage Methods 0.000 description 12
- 238000013459 approach Methods 0.000 description 11
- 238000012937 correction Methods 0.000 description 10
- 238000001514 detection method Methods 0.000 description 9
- 230000003287 optical effect Effects 0.000 description 9
- 210000001747 pupil Anatomy 0.000 description 9
- 238000004364 calculation method Methods 0.000 description 7
- 230000006870 function Effects 0.000 description 7
- 230000004044 response Effects 0.000 description 7
- 230000009471 action Effects 0.000 description 5
- 238000004891 communication Methods 0.000 description 5
- 238000010586 diagram Methods 0.000 description 5
- 238000005286 illumination Methods 0.000 description 4
- 238000010191 image analysis Methods 0.000 description 4
- 238000013507 mapping Methods 0.000 description 4
- 238000012360 testing method Methods 0.000 description 4
- 238000013461 design Methods 0.000 description 3
- 210000003128 head Anatomy 0.000 description 3
- 230000000007 visual effect Effects 0.000 description 3
- 230000001133 acceleration Effects 0.000 description 2
- 238000011161 development Methods 0.000 description 2
- 239000011521 glass Substances 0.000 description 2
- 238000004519 manufacturing process Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 238000003909 pattern recognition Methods 0.000 description 2
- 210000001525 retina Anatomy 0.000 description 2
- 230000007704 transition Effects 0.000 description 2
- 230000003936 working memory Effects 0.000 description 2
- 238000012935 Averaging Methods 0.000 description 1
- 239000006117 anti-reflective coating Substances 0.000 description 1
- 210000005252 bulbus oculi Anatomy 0.000 description 1
- 238000000576 coating method Methods 0.000 description 1
- 230000000295 complement effect Effects 0.000 description 1
- 238000011109 contamination Methods 0.000 description 1
- 230000000694 effects Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 230000003203 everyday effect Effects 0.000 description 1
- 230000004438 eyesight Effects 0.000 description 1
- 230000004305 hyperopia Effects 0.000 description 1
- 201000006318 hyperopia Diseases 0.000 description 1
- 238000002329 infrared spectrum Methods 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000002452 interceptive effect Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 239000000463 material Substances 0.000 description 1
- 230000007246 mechanism Effects 0.000 description 1
- 229910044991 metal oxide Inorganic materials 0.000 description 1
- 150000004706 metal oxides Chemical class 0.000 description 1
- 230000003278 mimic effect Effects 0.000 description 1
- 238000010295 mobile communication Methods 0.000 description 1
- 230000004379 myopia Effects 0.000 description 1
- 208000001491 myopia Diseases 0.000 description 1
- 238000003825 pressing Methods 0.000 description 1
- 238000005096 rolling process Methods 0.000 description 1
- 239000004065 semiconductor Substances 0.000 description 1
- 238000000926 separation method Methods 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000001052 transient effect Effects 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N17/00—Diagnosis, testing or measuring for television systems or their details
- H04N17/002—Diagnosis, testing or measuring for television systems or their details for television cameras
-
- 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
- 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/01—Head-up displays
- G02B27/017—Head mounted
- G02B27/0172—Head mounted characterised by optical features
-
- 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
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/50—Depth or shape recovery
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
- G06T7/00—Image analysis
- G06T7/80—Analysis of captured images to determine intrinsic or extrinsic camera parameters, i.e. camera calibration
-
- 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/10—Image acquisition
- G06V10/12—Details of acquisition arrangements; Constructional details thereof
- G06V10/14—Optical characteristics of the device performing the acquisition or on the illumination arrangements
- G06V10/141—Control of illumination
-
- 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/10—Image acquisition
- G06V10/12—Details of acquisition arrangements; Constructional details thereof
- G06V10/14—Optical characteristics of the device performing the acquisition or on the illumination arrangements
- G06V10/147—Details of sensors, e.g. sensor lenses
-
- 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/19—Sensors therefor
-
- H—ELECTRICITY
- H04—ELECTRIC COMMUNICATION TECHNIQUE
- H04N—PICTORIAL COMMUNICATION, e.g. TELEVISION
- H04N23/00—Cameras or camera modules comprising electronic image sensors; Control thereof
- H04N23/56—Cameras or camera modules comprising electronic image sensors; Control thereof provided with illuminating means
-
- 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/0179—Display position adjusting means not related to the information to be displayed
- G02B2027/0187—Display position adjusting means not related to the information to be displayed slaved to motion of at least a part of the body of the user, e.g. head, eye
-
- 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/30168—Image quality inspection
-
- 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/30204—Marker
-
- 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)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- General Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- Human Computer Interaction (AREA)
- Multimedia (AREA)
- General Health & Medical Sciences (AREA)
- Optics & Photonics (AREA)
- Health & Medical Sciences (AREA)
- Computer Vision & Pattern Recognition (AREA)
- Signal Processing (AREA)
- Biomedical Technology (AREA)
- Vascular Medicine (AREA)
- Ophthalmology & Optometry (AREA)
- User Interface Of Digital Computer (AREA)
- Length Measuring Devices By Optical Means (AREA)
- Position Input By Displaying (AREA)
- Eye Examination Apparatus (AREA)
- Studio Devices (AREA)
Abstract
Una realidad aumentada, realidad virtual u otro aparato portátil comprende un dispositivo de seguimiento ocular que comprende un sensor de imagen, una lente y uno o más procesadores. En algunas realizaciones, la lente comprende un marcador, y uno o más procesadores están configurados para recibir una imagen del sensor de imagen, en donde la imagen muestra el marcador, determina una distancia desde el sensor de imagen al marcador basándose en la imagen, y cambia un parámetro de calibración de un algoritmo de seguimiento ocular basado en la distancia. En algunas realizaciones, uno o más procesadores están configurados para recibir datos de imagen desde el sensor de imagen, en donde los datos de imagen corresponden a una imagen observada a través de la lente, determinar un nivel o patrón de distorsión en cojín en la imagen basándose en los datos de la imagen, y cambiar un parámetro de calibración de un algoritmo de seguimiento ocular basándose en el nivel o el patrón de distorsión en cojín. (Traducción automática con Google Translate, sin valor legal)
Description
DESCRIPCIÓN
Sistemas y métodos para el seguimiento ocular en aplicaciones de realidad virtual y de realidad aumentada
Campo de la presente invención
La presente solicitud se refiere a sistemas y métodos de detección de mirada. En un ejemplo, tales sistemas y métodos se incorporan en dispositivos de realidad virtual, dispositivos de realidad aumentada y/u otros dispositivos informáticos y admiten las interacciones de usuario con tales dispositivos informáticos mediante el uso de información de mirada.
Antecedentes
La interacción con los dispositivos informáticos es una acción fundamental en el mundo actual. Los dispositivos informáticos, tales como los ordenadores personales, se encuentran en toda la vida cotidiana. Los sistemas y métodos para interactuar con tales dispositivos definen cómo se usan y para qué se usan.
Los avances en la tecnología de seguimiento ocular han hecho posible interactuar con un dispositivo informático utilizando la información de mirada de una persona. En otras palabras, la localización en una pantalla que el usuario está mirando. Esta información puede utilizarse únicamente para interacción o en combinación con una técnica de interacción basada en contacto (p. ej., utilizando un dispositivo de entrada de usuario, tal como un teclado, ratón o pantalla táctil).
Pueden encontrarse técnicas de interacción que utilizan información de mirada propuestas anteriormente en la patente de los Estados Unidos 6.204.828 B1, en la publicación de solicitud de patente de los Estados Unidos 20130169560 A1, en la patente de los Estados Unidos 7.113.170 B2, en la publicación de solicitud de patente de los Estados Unidos 20140247232 A1 y en la patente de los Estados Unidos 9.619.020 B2.
Otros ejemplos de la técnica anterior incluyen el documento US 20130135181 A1, que describe un dispositivo para determinar la dirección de visión de un ojo. El dispositivo utiliza un patrón de movimiento de un movimiento de escaneo para determinar un centro de pupila o un centro de mácula. En este documento, se supone que no hay desalineación entre una lente y un detector.
En el documento US 20170090564 A1 se describe un sistema para determinar una dirección de mirada de un usuario en un dispositivo ponible y se menciona brevemente un efecto de una distorsión visible de una lente en el usuario sin sugerir ninguna solución a este problema.
Las técnicas de interacción basadas en mirada están llegando a los dispositivos informáticos ponibles, tales como los cascos de realidad virtual (RV) y los cascos de realidad aumentada (RA). Estas técnicas permiten ventajosamente a los usuarios controlar ciertos aspectos de los dispositivos informáticos ponibles (p. ej., la interfaz de usuario, los ajustes, el contenido que se está presentando, etc.).
No obstante, dada la portabilidad de estos tipos de dispositivos informáticos, surgen muchos desafíos técnicos. Por ejemplo, la precisión de la información de mirada puede degradarse por distintos motivos. Un dispositivo informático ponible está sujeto a movimientos repetidos, lo que puede cambiar la alineación de los componentes de hardware de procesamiento de luz. Con el tiempo, la desalineación reduce la precisión de la información derivada del procesamiento de los datos de luz medidos. Otro motivo está relacionado con las dimensiones de algunos de estos componentes de hardware de procesamiento de luz (p. ej., la lente empleada). Las dimensiones normalmente están restringidas debido al tamaño del dispositivo informático ponible. A su vez, la restricción puede afectar a cómo de bien es procesada (p. ej., transmitida, reflejada, distorsionada, dispersada) la luz por los componentes de hardware.
Además, muchas aplicaciones disponibles en dispositivos informáticos ponibles conllevan el uso de controladores externos. El uso de controladores externos para interactuar de manera precisa e intuitiva con objetos virtuales afecta a la usabilidad, el éxito y el fracaso de tales aplicaciones. Integrar el mundo virtual con el controlador externo y la información de mirada ha sido complicado.
Resumen
La presente invención se expone en las reivindicaciones anexas.
Cabe señalar que la invención reivindicada se refiere al casco de realidad virtual o de realidad aumentada ponible descrito en relación con las Figs. 1 a 8. Por el contrario, las Figs. 9 a 21 y los pasajes correspondientes de la siguiente descripción detallada se refieren a aspectos no reivindicados en el contexto general del casco de realidad aumentada o virtual con capacidad de seguimiento ocular de la invención reivindicada.
Descripción detallada
Las realizaciones de la presente descripción se refieren a mejorar la precisión de la detección de información de mirada y la usabilidad de aplicaciones que dependen de controladores externos. En el contexto de los dispositivos informáticos ponibles que utilizan técnicas de interacción basadas en la mirada, la precisión puede mejorarse en función de una calibración de componentes a lo largo del tiempo y/o de una configuración de un componente específico dadas las restricciones en cuanto a las dimensiones generales. La calibración de componentes incluye generalmente la actualización de parámetros relacionados con la mirada. En un primer ejemplo que entra dentro del alcance de las reivindicaciones, la actualización de un parámetro relacionado con la mirada se basa en el procesamiento de imágenes para determinar la posición y la rotación de la cámara y la lente basándose en un marcador colocado en la lente. En un segundo ejemplo que no está cubierto por las reivindicaciones, la actualización de un parámetro relacionado con la mirada se basa en el procesamiento de imágenes para determinar una distancia entre el centro de una córnea y el centro de una lente y usar esta distancia para compensar la distorsión (p. ej., distorsión en acerico). En un tercer ejemplo que no está cubierto por las reivindicaciones, la actualización de un parámetro relacionado con la mirada se basa en el procesamiento de imágenes para determinar múltiples posiciones de reflejo y actualizar unos parámetros estéreo (p. ej., el centro y el radio de la córnea y la distancia a la cámara). Al ser relevante para la configuración de un componente específico, en un ejemplo se utiliza una lente de Fresnel. Una región central de esta lente no tiene ningún escalón de Fresnel. En cambio, los escalones de Fresnel rodean la región central de manera anular y tienen una profundidad de ranura y un tamaño de escalón variables. Estos y otros ejemplos se describen en detalle más adelante en la presente memoria. En aras de la claridad de la explicación, primero se describen componentes de un sistema de detección de mirada, seguidos de una descripción de cómo tales componentes pueden implementarse en un dispositivo ponible. Después de eso, se describen detalles de calibraciones de componente ejemplares y de una configuración de lente de Fresnel ejemplar. En otro ejemplo que no está cubierto por las reivindicaciones, en el contexto ejemplar de dispositivos informáticos ponibles en los que se utilizan técnicas de interacción basadas en la mirada y controladores externos, se sigue la mirada de un usuario sobre objetos virtuales en un entorno virtual y en el entorno virtual se presenta una representación virtual del controlador externo. Al detectar que el usuario ha mirado un objeto particular durante un período de tiempo, el dispositivo informático ponible selecciona y bloquea ese objeto. Dada la zona táctil del controlador externo para el usuario, el dispositivo informático ponible presenta un menú virtual para manipular el objeto virtual bloqueado. Las opciones del menú dependen de la zona táctil para el usuario. De esta manera, el usuario puede manipular de manera precisa e intuitiva el objeto virtual bloqueado moviendo su dedo por la zona táctil en el controlador externo.
Seguimiento ocular
La Figura 1 muestra un sistema 100 de seguimiento ocular (que también puede denominarse sistema de seguimiento de la mirada) según una realización. El sistema 100 comprende unos iluminadores 111 y 112 para iluminar los ojos de un usuario y un sensor 113 de imagen para capturar imágenes de los ojos del usuario. Los iluminadores 111 y 112 pueden ser, por ejemplo, diodos emisores de luz que emiten luz en la banda de frecuencias del infrarrojo o en la banda de frecuencias del infrarrojo cercano. El sensor 113 de imagen puede ser, por ejemplo, una cámara, tal como una cámara de semi conductor de óxido metálico complementario (semiconductor de óxido metálico complementario -CMOS) o una cámara de charged coupled device (dispositivo de carga acoplada - CCD). La cámara no se limita a ser una cámara de infrarrojo ni una cámara de profundidad ni una cámara de campo claro. El mecanismo obturador del sensor de imagen puede ser un obturador rodante o un obturador global.
Un primer iluminador 111 está dispuesto de forma coaxial con el (o cerca del) sensor 113 de imagen para que el sensor 113 de imagen pueda capturar imágenes de pupila luminosas de los ojos del usuario. Debido a la disposición coaxial del primer iluminador 111 y del sensor 113 de imagen, la luz reflejada procedente de la retina de un ojo vuelve a través de la pupila al sensor 113 de imagen, de modo que la pupila aparece como más brillante que el iris que la rodea en imágenes donde el primer iluminador 111 ilumina el ojo. Un segundo iluminador 112 está dispuesto de forma no coaxial con el (o más alejado del) sensor 113 de imagen para capturar imágenes de pupila oscuras. Debido a la disposición no coaxial del segundo iluminador 112 y del sensor 113 de imagen, la luz reflejada procedente de la retina de un ojo no llega al sensor 113 de imagen, y la pupila parece más oscura que el iris que la rodea en imágenes donde el segundo iluminador 112 ilumina el ojo. Los iluminadores 111 y 112 pueden por ejemplo turnarse para iluminar el ojo, de manera que cada primera imagen sea una imagen de la pupila brillante y cada segunda imagen sea una imagen de la pupila oscura.
El sistema 100 de seguimiento ocular comprende también sistema 120 de circuitos (que incluye p. ej. uno o más procesadores) para procesar las imágenes capturadas por el sensor 113 de imagen. Por ejemplo, el sistema 120 de circuitos puede estar conectado al sensor 113 de imagen y a los iluminadores 111 y 112 por una conexión por cable o inalámbrica. En otro ejemplo, el sistema 120 de circuitos en forma de uno o más procesadores puede proporcionarse en una o más capas apiladas debajo de la superficie fotosensible del sensor 113 de imagen.
La Figura 2 muestra un ejemplo de una imagen de un ojo 200 capturada por el sensor 113 de imagen. El sistema 120 de circuitos puede emplear, por ejemplo, procesamiento de imágenes (tal como procesamiento de imágenes digitales) para extraer las características de la imagen. El sistema 120 de circuitos puede emplear, por ejemplo, un seguimiento ocular por reflexión entre la córnea y elpupil center cornea reflection(centro de la pupila - PCCR) para determinar dónde está mirando el ojo 200. En el seguimiento ocular PCCR, el procesador 120 estima la posición del centro de la pupila 210 y la posición del centro de un reflejo 220 en el ojo 200. El reflejo 220 es causado por el reflejo de la luz procedente de uno de los iluminadores 111 y 112. El procesador 120 calcula dónde está el usuario en el espacio utilizando el reflejo 220 y dónde está apuntando el ojo 200 del usuario utilizando la pupila 210. Puesto que de forma típica existe un desplazamiento entre el centro óptico del ojo 200 y la fóvea, el procesador 120 realiza la calibración del desvío de la fóvea para poder determinar dónde está mirando el usuario. Las direcciones de mirada obtenidas del ojo izquierdo y del ojo derecho pueden combinarse entonces para formar una dirección de mirada estimada combinada (o dirección de visión). Como se describirá más adelante, muchos factores distintos pueden afectar a cómo deben ponderarse las direcciones de mirada para los ojos izquierdo y derecho entre sí cuando se forma esta combinación.
En la realización descrita con referencia a la Figura 1, los iluminadores 111 y 112 se disponen en un módulo 110 de seguimiento ocular colocado debajo de un sistema de representación observado por el usuario. Esta disposición solo sirve como ejemplo. Se apreciará que puede emplearse, más o menos, cualquier número de iluminadores y sensores de imagen para el seguimiento ocular, y que tales iluminadores y sensores de imagen pueden distribuirse de muchas formas distintas respecto a pantallas observadas por el usuario. Se apreciará que el esquema de seguimiento ocular descrito en la presente descripción puede emplearse, por ejemplo, para el seguimiento ocular remoto (por ejemplo en un ordenador personal, un teléfono inteligente o integrado en un vehículo) o para el seguimiento ocular ponible (tal como en gafas de realidad virtual o gafas de realidad aumentada).
La Figura 3 es un diagrama de bloques que ilustra un sistema 300 informático especializado en el que pueden aplicarse realizaciones de la presente descripción. Este ejemplo ilustra un sistema 300 informático especializado tal como el que puede utilizarse, en su totalidad, en parte o con diversas modificaciones, para proporcionar las funciones de los componentes descritos en la presente memoria.
El sistema 300 informático especializado se muestra comprendiendo elementos de hardware que pueden estar acoplados eléctricamente a través de un bus 390. Los elementos de hardware pueden incluir una o más unidades 310 centrales de procesamiento, uno o más dispositivos 320 de entrada (p. ej., un ratón, un teclado, un dispositivo de seguimiento ocular, etc.) y uno o más dispositivos 330 de salida (p. ej., un dispositivo de visualización, una impresora, etc.). El sistema 300 informático especializado puede incluir también uno o más dispositivos 340 de almacenamiento. A modo de ejemplo, el o los dispositivos 340 de almacenamiento pueden ser unidades de disco, dispositivos de almacenamiento óptico, dispositivos de almacenamiento en estado sólido tales como una memoria de acceso aleatorio (“ RAM” ) y/o una memoria de solo lectura (“ ROM” ), que pueden ser programables, actualizables por memoria flash y/o similares.
El sistema 300 informático especializado puede incluir adicionalmente un lector 350 de medios de almacenamiento legibles por ordenador, un sistema 360 de comunicaciones (p. ej., un módem, una tarjeta de red [inalámbrica o por cable], un dispositivo de comunicación por infrarrojos, un dispositivo Bluetooth™, un dispositivo de comunicación móvil, etc.) y una memoria 380 de trabajo, que puede incluir los dispositivos RAM y ROM descritos anteriormente. En algunas realizaciones, el sistema informático especializado 300 puede incluir también una unidad 370 de aceleración del procesamiento, que puede incluir un procesador de señales digitales, un procesador especial y/o procesadores similares.
Dispositivo informático ponible que implementa el seguimiento ocular
La Figura 4 muestra un ejemplo de un dispositivo 400 informático ponible que implementa algunos o todos los componentes anteriores de un sistema de seguimiento ocular como se describe en relación con las Figs. 1-2. El dispositivo 400 informático ponible es un casco de RV o un casco de RA que puede llevar puesto un usuario. Como se ilustra, el dispositivo 400 informático ponible incluye un conjunto de lentes 410, tales como lentes de Fresnel, un conjunto de cámaras 420, un conjunto de espejos calientes 430 (p. ej., como se ilustra en las Figs.12-14, el conjunto incluye dos espejos calientes para cada ojo en diversas realizaciones), y un conjunto de pantallas 440. La cámara 420 puede incluir los sensores 113 de imagen de la Figura 1. Aunque no se muestra en la Figura 4, el dispositivo 400 informático ponible puede incluir también un conjunto de iluminadores y sistema de circuitos de procesamiento. Estos y otros componentes se pueden integrar dentro de un alojamiento 450 del dispositivo 400 informático ponible. De esta manera, después de que el usuario ponga el dispositivo 400 informático ponible en su cabeza, el conjunto de lentes 410 estaría relativamente cerca de los ojos del usuario y el conjunto de pantallas estaría relativamente lejos del ojo del usuario, y los componentes restantes pueden estar ubicados en el medio. La disposición de estos componentes permite la detección del punto de mirada del usuario en un espacio virtual o real tridimensional.
La Figura 5 muestra unos componentes ejemplares de un casco de RV en el que se implementan algunos o todos los componentes anteriores de un sistema de seguimiento ocular y de un sistema informático especializado como se describen en relación con las Figs. 1-5. Tal y como se ilustra, los componentes incluyen un objetivo 510 (también se puede denominar teleobjetivo). En un ejemplo, el objetivo 510 es una carcasa de un material rígido, tal como plástico, e incluye dos aberturas 512 y 514 opuestas a lo largo de un eje transversal. La forma del objetivo 510 es sustancialmente una carcasa similar a un cono (o similar a un embudo) parcial a lo largo de ese eje, sustituyendo la primera abertura 512 la punta cónica de un cono completo y la segunda abertura 514 en la base. Una lente 520 de visualizador en forma de visor (Head-Mounted - HMD) se instala en la primera abertura 512 y queda fija con una cubierta 530 de iluminadores. Dentro de la cubierta 530 se disponen iluminadores 540 de luz, que son externos al objetivo 510. Alternativamente, los iluminadores 540 pueden estar expuestos sin la cubierta 530. Los iluminadores 540 de luz pueden incluir un conjunto de diodos emisores de luz (LED) que emiten luz en el espectro infrarrojo o infrarrojo cercano. Un lado del objetivo 510 incluye una abertura y paredes que forman un compartimento 516. En el compartimento está instalado un módulo 550 de cámara, y su sensor óptico está orientado hacia la abertura del compartimento 516. Los componentes también incluyen un espejo caliente 560, un visualizador 570 de RV y una placa electrónica 580. El espejo caliente 560 se instala externamente al objetivo 510 en una ubicación próxima a la segunda abertura 514. El visualizador 570 de RV se instala detrás del espejo caliente 560 con respecto a la segunda abertura 514 (p. ej., está más lejos de la segunda abertura 514). La placa electrónica 580 incluye algunos o todos los componentes del sistema 300 informático especializado de la Figura 3 (p. ej., la CPU, el dispositivo de almacenamiento, el lector de medios de almacenamiento legibles por ordenador, el sistema de comunicación, la unidad de aceleración de procesamiento y la memoria de trabajo).
Calibración del hardware basada en la posición y la rotación de la cámara y la lente durante el uso
En general, un dispositivo informático ponible, como el ilustrado en las Figs. 4-5, no es estable (inestable) debido al movimiento aleatorio del usuario. Por ejemplo, una caída repentina puede causar el movimiento de componentes internos, especialmente la cámara y la lente. La desalineación de la cámara y la lente da como resultado un seguimiento ocular impreciso. Para tener en cuenta la desalineación y mejorar la precisión, puede usarse una calibración.
En los sistemas existentes, la calibración implicaría desmontar manualmente el dispositivo informático ponible y volver a instalar esos componentes en las posiciones correctas. Y, a continuación, iniciar el proceso de calibración de mirada desde el comienzo, lo que significa que para el proceso de calibración es necesario usar diversos parámetros (p. ej., la distancia focal de la lente, el diámetro de lente, la distancia focal/visión de campo de la cámara, la posición y la orientación de cámara, las posiciones de los espejos calientes, los parámetros de formación de imágenes de la cámara, los parámetros de iluminación, etc.).
En cambio, hay realizaciones de la presente invención que simplifican significativamente el proceso de calibración. La calibración incluye determinar la desalineación en función de la posición y/o la rotación de la cámara y la lente y tener en cuenta la posición y/o la rotación en el cálculo de la información de mirada.
Un desafío técnico a la hora de usar este tipo de calibración es que no existe ninguna manera directa de determinar la posición y la rotación de la cámara y la lente durante el uso. Las realizaciones de la presente invención utilizan una manera indirecta al poner un marcador en la lente y basarse en él. En vez de considerar los parámetros mencionados anteriormente, se calcula una distancia entre la cámara (p. ej., una posición del plano o superficie de sensor de imagen) y el marcador en la lente (p. ej., las coordenadas x e y del marcador) basándose en una o más imágenes capturadas por la cámara. Usando el valor de distancia, el sistema de seguimiento ocular puede ajustar los parámetros de calibración de la cámara (p. ej., los parámetros de formación de imágenes, la distancia focal, los parámetros de distorsión) y los parámetros de iluminación. La cámara puede ser (i) al menos un sensor de imagen con una disposición óptica; o (ii) al menos una cámara sin lente y sin una disposición óptica, pero con una matriz óptica en fase (Optical Phased Array - OPA) ultrafina que manipula la luz entrante para capturar una imagen sin usar lentes tradicionales.
En un ejemplo, las realizaciones de la presente descripción incluyen almacenar la distancia original e información histórica sobre distancias recién actualizada. El almacenamiento puede ser local en el dispositivo informático ponible o remoto (p. ej., recuperable de un servidor remoto tras la identificación del usuario). La distancia se estima utilizando imágenes capturadas por una cámara de seguimiento ocular (p. ej., una cámara de IR), denominada “ cámara” en la presente memoria. Cada una de esas imágenes capturadas para la calibración de hardware se almacena localmente o remotamente en una memoria no volátil (p. ej., una memoria flash). Siempre que se enciende el dispositivo informático ponible, se puede capturar una nueva imagen, tal y como se describe en la presente memoria. La imagen recién capturada se puede capturar con la (al menos una) imagen más reciente almacenada para identificar si se produjo algún movimiento relativo del marcador. Si es así, al menos la imagen recién capturada se analiza adicionalmente para realizar una calibración. De lo contrario, se omite la calibración.
El marcador está en el mismo lado de la cámara y puede colocarse sobre y/o incrustarse dentro de una de las lentes; preferiblemente. Si hay dos o más lentes, uno o más marcadores se colocan sobre y/o se incrustan dentro de cada una de las lentes porque cualquier caída accidental puede provocar un movimiento incompatible para cada una de las lentes y sus componentes correspondientes. Este tipo de calibración también se puede usar en otros escenarios. Por ejemplo, una o más de las lentes se pueden mover para compensar artefactos visuales tales como la miopía o la hipermetropía. En este escenario, los ajustes ópticos podrían detectarse visualmente de manera similar (p. ej., al basarse en una distancia cámara-a-marcador y/o unas coordenadas x e y del marcador). El marcador puede ser una cruz, un patrón de puntos (p. ej., un patrón iluminador por LED intralente) o una línea. El marcador puede colocarse en cada una o en alguna de la óptica del grupo de lentes. Por ejemplo, el marcador puede colocarse en la una o más capas de la lente de Fresnel e incluso en el espejo caliente. En distintos elementos de lente pueden usarse marcadores diferentes. Por ejemplo, puede usarse una cruz como marcador en una lente, un círculo en otra lente y un triángulo en una tercera lente. De esta manera, el tipo del marcador (p. ej., tal y como se detecta en una imagen) puede usarse para asociar el marcador a una lente.
Como se conocen la posición y la alineación relativas originales de la cámara y la lente, una vez que la lente o la cámara se mueve, podemos “ reconstruir” las nuevas posición y alineación relativas de la cámara y la lente utilizando la posición estimada del marcador. Por tanto, la cámara de seguimiento ocular y los iluminadores se recalibrarán automática e inmediatamente.
Se pueden utilizar distintos enfoques para desencadenar la calibración. En un enfoque, la calibración siempre está activada durante la vida útil del casco, siempre y cuando el casco esté encendido o cuando la cámara de seguimiento ocular detecte los ojos de un usuario. En otro enfoque, se puede usar un sensor para desencadenar la calibración. Por ejemplo, se utiliza(n) un acelerómetro y/o un giroscopio para detectar movimientos repentinos y luego desencadenar el proceso de calibración. En otro enfoque más, el usuario puede emplear un control manual (p. ej., un botón físico en el casco de RV) para iniciar el proceso de recalibración. En algunos o todos los enfoques, se proporcionaría una realimentación de advertencia (audible o visible o vibratoria) acerca de la situación de seguimiento ocular imperfecta (p. ej., en respuesta al desencadenante de sensores). En un ejemplo adicional, el desencadenante es una detección de una presencia de usuario (o de la ausencia de la misma). Por ejemplo, la calibración puede realizarse al detectarse una presencia de usuario después de no haberse visto al usuario durante un período de tiempo predefinido, tal como durante 20 segundos.
Antes de la ejecución de la calibración de hardware o del tiempo de ejecución del casco de seguimiento ocular, la información o los datos (predeterminados de fábrica) acerca de la posición y la alineación de cada componente dentro del casco de seguimiento ocular se almacenan en un medio legible por ordenador y se conocen o introducen en el sistema. Los componentes incluyen al menos espejos calientes 560, módulo (530+540) de iluminación, módulo 550 de cámara, objetivo 510 y visualizador 570 de Rv . Los datos de posición y de alineación de los componentes se representan en un sistema de coordenadas 3D.
Según la presente invención, se proporciona un casco de realidad virtual o de realidad aumentada. Los dispositivos informáticos ponibles de las Figs. 4-5 son un ejemplo de tales cascos. El casco incluye un dispositivo de seguimiento ocular y uno o más procesadores. El dispositivo de seguimiento ocular incluye un sensor de imagen, tal como una cámara, y una primera lente. La primera lente incluye un primer marcador. Por ejemplo, el primer marcador está en una superficie de la primera lente o incrustado en la primera lente. La posición del primer marcador está dentro del campo de visión (Field Of Vision - FOV) de la cámara. El primer marcador se selecciona de un grupo que consiste en: una marca de cruz, un patrón de puntos, un punto, una línea y una forma geométrica. De manera adicional o alternativa, el primer marcador incluye un elemento iluminado (p. ej., uno o más LED). El casco o el dispositivo de seguimiento ocular incluye además una segunda lente que incluye un segundo marcador. El segundo marcador está ubicado en una capa de la lente. Adicional o alternativamente, el casco incluye además un espejo caliente que incluye otro marcador.
El uno o más procesadores están configurados (p. ej., basándose en instrucciones legibles por ordenador almacenadas en uno o más medios de almacenamiento legibles por ordenador no transitorios) para recibir del sensor de imagen al menos una primera imagen, donde la primera imagen muestra el primer marcador; determinar una primera distancia del sensor de imagen al primer marcador basándose en la primera imagen; y cambiar al menos un parámetro de calibración de un algoritmo de seguimiento ocular utilizado con el dispositivo de seguimiento ocular basándose en la primera distancia.
En un ejemplo, el cambio del al menos un parámetro de calibración se basa además en el hecho de que la primera distancia es diferente de una segunda distancia, donde la segunda distancia es una distancia previamente medida y almacenada. En un ejemplo, cambiar el al menos un parámetro de calibración basándose en la primera distancia incluye determinar otra distancia del sensor de imagen a la primera lente basándose en la primera distancia y en una ubicación conocida del primer marcador en la primera lente y cambiar el al menos un parámetro de calibración del algoritmo de seguimiento ocular utilizado con el dispositivo de seguimiento ocular basándose en la segunda distancia. El uno o más procesadores pueden estar además configurados para determinar una dirección del sensor de imagen en relación con el primer marcador basándose en la primera imagen. En este caso, el cambio del al menos un parámetro de calibración se basa además en la dirección.
En un ejemplo adicional, el cambio de los parámetros de calibración se ejecuta en caso de que (a) la distancia recién determinada sea distinta del valor determinado anterior; y de que (b) el ajuste de los parámetros de calibración no solo se base en el valor de distancia recién determinado y diferente, sino que también se base en la posición de entrada y los datos de alineación de los componentes.
En un ejemplo, si un segundo marcador está incluido en una segunda lente, la primera imagen muestra el segundo marcador. El uno o más procesadores además están configurados para determinar una segunda distancia del sensor de imagen al segundo marcador basándose en la primera imagen; y cambiar al menos un parámetro de calibración del algoritmo de seguimiento ocular basándose en la segunda distancia. En otro ejemplo, si un segundo marcador está incluido en una segunda lente, el uno o más procesadores además están configurados para recibir del sensor de imagen una segunda imagen, donde la segunda imagen muestra el segundo marcador; determinar una segunda distancia del sensor de imagen al segundo marcador basándose en la segunda imagen; y cambiar al menos un parámetro de calibración del algoritmo de seguimiento ocular basándose en la segunda distancia. En otro ejemplo más, si un segundo marcador está incluido en un espejo caliente, la primera imagen, o una segunda imagen recibida del sensor de imagen, muestra el segundo marcador. El uno o más procesadores además están configurados para determinar una segunda distancia del sensor de imagen al segundo marcador basándose en la primera imagen o en la segunda imagen; y cambiar al menos un parámetro de calibración del algoritmo de seguimiento ocular utilizado con el dispositivo de seguimiento ocular basándose en la segunda distancia. En estos diversos ejemplos, el al menos un parámetro de calibración se selecciona de un grupo que consiste en un parámetro de formación de imágenes, una distancia focal, un parámetro de distorsión y un parámetro de iluminación.
Estas y otras características se describen en más detalle en relación con las Figs. 6-8. La Figura 6 ilustra un ejemplo de un marcador sobre o en una lente. La Figura 7 ilustra un ejemplo de una imagen del marcador y del cálculo de una distancia y una dirección basándose en la imagen. La Figura 8 ilustra un ejemplo de un flujo de actualización de un parámetro de calibración.
La Figura 6 ilustra un ejemplo de un marcador 610 sobre o en una lente 620, según ciertas realizaciones de la presente invención. Tal y como se ilustra, la lente 620 puede tener una forma geométrica (p. ej., un círculo y una elipse) y tener dimensiones para caber en un casco de RV o un casco de RA ponible. Por ejemplo, la lente 620 es una lente de Fresnel.
El marcador 610 puede estar sujeto (p. ej., pegado) a o incrustado (p. ej., grabado o texturizado) en una superficie exterior de la lente 620 o puede estar incrustado en un volumen interior de la lente 620. En un ejemplo, el marcador 610 puede tener una forma tal como una marca de cruz, un patrón de puntos, un punto, una línea, una forma geométrica y/o puede incluir un elemento iluminado (p. ej., una matriz de iluminación que incluya una pluralidad de LED que estén dispuestos formando un patrón predefinido sobre la lente o incrustados en la lente). La forma y/o cualquier patrón transmitido por la forma y/o el elemento iluminado pueden codificar o presentar información acerca del marcador 610. Esta información se puede usar para calcular la distancia y la dirección. Por ejemplo, la información puede indicar el tamaño del marcador 610 (lo que permite establecer una escala de píxeles basándose en un análisis de imágenes, y la escala de píxeles puede utilizarse en el cálculo, tal y como se describe adicionalmente en relación con las Figs. 7-8). Además, la información puede indicar la ubicación original del marcador 610 sobre o en la lente 620 (p. ej., encima de la lente, a menos de cinco milímetros desde el perímetro externo de la lente 620), que también puede usarse en el cálculo. La información también puede identificar el marcador 610 o la lente 620 (lo cual puede emplearse para recuperar información relevante de la memoria sobre el tamaño, la ubicación y/o distancias y direcciones anteriores).
Son posibles distintas técnicas para ajustar uno o más parámetros de calibración basándose en la posición y la alineación de componentes de un dispositivo informático ponible (p. ej., una lente y un sensor de imagen). En general, los datos de posición y de alineación existentes de los componentes están disponibles en la memoria. El sensor de imagen captura una imagen y muestra un marcador sobre la lente. La distancia entre el marcador y la lente se calcula basándose en la imagen. El o los parámetros de calibración se ajustan basándose en los datos de posición y de alineación existentes de los componentes internos y en la distancia calculada.
Existen distintas técnicas para calcular el movimiento relativo entre los componentes del dispositivo informático ponible basándose en datos de imagen. En un ejemplo, los datos de posición y de alineación de cada componente se mapean en un sistema de coordenadas tridimensional. Este sistema también incluye la ubicación de un marcador. La distancia y la posición relativas de los componentes son conocidos primero por el sistema o se almacenan basándose en los resultados determinados previamente. Una vez que el sensor de imagen detecta el movimiento del marcador, el movimiento puede calcularse basándose en la información de la imagen y la información disponible del sistema de coordenadas tridimensional. Como todas las posiciones y alineaciones relativas se mapean en el mismo sistema de coordenadas tridimensional, las nuevas posición y alineación relativas de cada uno de los componentes se pueden calcular automáticamente volviendo a mapear los componentes al sistema de coordenadas tridimensional basándose en los datos de imagen generados por el sensor de imagen. La diferencia entre el nuevo mapeo y el mapeo anterior indica las nuevas posición y alineación relativas, que son las que se utilizan para cambiar el o los parámetros de calibración.
La Figura 7 ilustra un ejemplo de una imagen de un marcador y del cálculo de una distancia y de una dirección basándose en la imagen, según ciertas realizaciones de la presente invención. En un ejemplo, la distancia es una distancia recta entre el marcador (p. ej., un punto en una superficie del marcador) y una cámara 710 (o un punto en una superficie del sensor de imagen de la cámara 710). Esta distancia recta indica la posición de la cámara 710 y la lente (p. ej., un valor que representa una separación de distancia entre los dos). La dirección es la dirección de movimiento del marcador desde una ubicación anterior. Esta dirección indica una rotación de la lente en relación con la cámara 710 (o viceversa). La determinación del movimiento de marcador no se limita al cálculo de dirección mencionado anteriormente. La causa de tal movimiento puede variar debido a los distintos métodos de fabricación de los componentes.
El número de imágenes utilizadas para derivar la distancia y la dirección puede depender de la información transmitida por el marcador y/o de la información relevante disponible en la memoria. En un ejemplo, una sola imagen es suficiente cuando el marcador codifica o presenta su tamaño y su ubicación original. Igualmente, una sola imagen es suficiente cuando el marcador se identifica a sí mismo o identifica la lente y hay información acerca del tamaño y la ubicación original disponible en la memoria basándose en el identificador. En estos ejemplos, la una única imagen muestra el marcador en su ubicación actual basándose en el movimiento de la cámara 710 y/o la lente. De lo contrario, pueden usarse dos o más imágenes. Una de estas imágenes muestra la ubicación anterior, donde la ubicación anterior corresponde a una distancia anterior disponible en la memoria. Una de las otras imágenes muestra la ubicación actual, para la cual se debe calcular la distancia y la dirección. La diferencia entre la ubicación anterior y la ubicación actual indica la dirección. El uso de una sola imagen se describe a continuación en la presente memoria en mayor detalle, seguido de una descripción del empleo de dos imágenes.
Generalmente, la distancia y la dirección pueden definirse en relación con un sistema de coordenadas (p. ej., uno centrado en el centro del sensor de imagen de la cámara 710) y pueden expresarse como un vector (siendo la distancia la magnitud del vector y siendo la dirección la dirección del vector). Una ubicación de la cámara (tal y como se ha determinado a partir de la o las imágenes) se mapea a unas coordenadas en el sistema de coordenadas. Además, en el sistema de coordenadas, el vector puede comenzar en la cámara 710 y terminar en las coordenadas del marcador. La reconstrucción geométrica se aplica para calcular la dirección y la magnitud del vector basándose en la o las imágenes.
Con una sola imagen, la imagen muestra el marcador en su ubicación actual. El tamaño del marcador puede identificarse, directamente a partir de la información codificada en la imagen o indirectamente a partir de la información relevante almacenada en la memoria. El tamaño se compara con el número de píxeles que el marcador ocupa en la imagen. La comparación establece una escala de píxeles (p. ej., si el marcador tiene diez milímetros de ancho y ocupa diez píxeles en la imagen, entonces cada píxel en la imagen corresponde a un milímetro).
Después de eso, la distancia y la dirección se calculan basándose en una reconstrucción geométrica que utiliza la escala de píxeles. Por ejemplo, se forma un triángulo rectángulo entre la cámara 710 y la ubicación actual del marcador en la imagen (la hipotenusa es la ubicación de la cámara 710 con respecto a la ubicación actual) y entre la ubicación actual y un borde de la imagen (p. ej., un cateto). Los ángulos interiores y los catetos se determinan a partir de la imagen basándose en la escala de píxeles. La hipotenusa (p. ej., la distancia) se calcula utilizando una operación trigonométrica.
Para calcular la dirección a partir de la única imagen, se determina la ubicación actual del marcador en la imagen, y a la ubicación original se accede directamente (p. ej., a partir de la información codificada mostrada en la imagen) o se accede indirectamente (p. ej., a partir de la información relevante en la memoria). Se comparan las dos ubicaciones, y se aplica la escala de píxeles a la diferencia entre las dos ubicaciones para obtener la dirección.
Cuando se usan dos o más imágenes, se comparan una o más ubicaciones anteriores del marcador en una o más imágenes anteriores con la ubicación actual del marcador en la imagen actual. Una ubicación anterior corresponde a unas dirección y ubicación conocidas anteriores. La diferencia con la ubicación actual se puede usar para generar un vector diferencia. Una escala de píxeles se puede calcular de la manera anterior o a partir de la ubicación anterior y de la distancia anterior. La escala de píxeles se aplica al vector diferente. La magnitud y la dirección del vector diferencia representa la dirección del marcador. Se aplica una reconstrucción geométrica para obtener la dirección a partir de la dirección anterior y el vector diferencia.
En la Figura 7 se ilustra adicionalmente el uso de dos imágenes. La diferencia entre las dos imágenes se muestra como una imagen 720 diferencia. El marcador se mueve de una ubicación 730 anterior (tal y como se muestra en la imagen anterior) a su ubicación actual 740 (tal y como se muestra en la imagen actual). La diferencia entre las dos establece un vector 750 diferencia. Como se conoce la distancia 760 anterior entre la ubicación 730 anterior y la cámara 710, puede obtenerse una escala de píxeles y aplicarse al vector 750 diferencia para calcular su magnitud. La magnitud y la dirección indican el movimiento del marcador hasta la nueva ubicación 740. A continuación se aplica una reconstrucción geométrica para calcular un ángulo 780 de rotación y la nueva distancia 790 entre el marcador en la ubicación 740 actual y la cámara 710.
Por supuesto, el marcador puede no haberse movido. En cambio, la cámara 710 puede haberse movido, y puede usarse un enfoque similar (una sola o múltiples imágenes). Asimismo, si ambos componentes se han movido, todavía también se puede usar un enfoque similar.
La Figura 8 ilustra un ejemplo de un flujo de actualización de un parámetro de calibración, según ciertas realizaciones de la presente invención. El flujo comienza en una operación 802, donde una imagen es recibida por un sistema informático (p. ej., la placa electrónica 580 de la Figura 5). La imagen muestra al menos un marcador. El marcador está sobre o en una lente. La imagen es generada por una cámara (p. ej., capturada por un sensor de imagen de la cámara).
En una operación 804, el sistema informático determina una distancia y/o una dirección de la cámara (p. ej., desde el sensor de imagen) al marcador basándose en la imagen. Tal y como se ha descrito en relación con las Figs. 6-7, son posibles diversos enfoques. En un enfoque, puede bastar una sola imagen. En otro enfoque, se accede a un historial de la distancia y/o la ubicación. Ese historial puede incluir imágenes anteriores que muestran el marcador en ubicaciones anteriores. En general, en ambos enfoques se aplica una reconstrucción geométrica para medir la distancia y la dirección.
En una operación 806, el sistema informático determina una distancia y/o una dirección de la cámara (p. ej., desde el sensor de imagen) a la lente basándose en una ubicación conocida del marcador sobre la lente. Por ejemplo, estas distancia y dirección van desde el centro del sensor de imagen hasta el centro de la lente. La ubicación conocida del marcador identifica un vector entre el centro del marcador y el centro de la lente. Este vector se utiliza para obtener, a partir de la distancia y la dirección de la operación 804, la distancia y la dirección entre la cámara y la lente.
En una operación 808, el sistema informático cambia al menos un parámetro de calibración de un algoritmo de seguimiento ocular utilizado con el dispositivo de seguimiento ocular basándose en la distancia y/o la dirección con respecto al marcador y/o la lente que se calcularon en las operaciones 804 y 806. En un ejemplo, cambiar un parámetro de calibración incluye cambiar uno o más de un parámetro de formación de imágenes, una distancia focal, un parámetro de distorsión y un parámetro de iluminación. El cambio puede especificarse en una tabla almacenada en una memoria local del sistema informático o una memoria remota accesible al sistema informático por una red de datos. La tabla asocia un valor del parámetro de calibración a una distancia y/o una dirección entre la cámara y otro componente (p. ej., una lente, un espejo caliente, etc.). Los valores de la tabla pueden obtenerse durante la fase de diseño, desarrollo y ensayo del dispositivo informático ponible en un entorno controlado de laboratorio o en una fase operativa de pruebas.
En una operación 810, el sistema informático determina si hay otros marcadores disponibles en la imagen. La presencia de otro marcador puede basarse en un análisis de imagen o en un conocimiento previo acerca del número de marcadores que cabe esperar. El otro marcador puede estar ubicado sobre o en la misma lente, en otra lente o en un espejo caliente. En tal caso, se realiza la operación 804. De esta manera, se pueden calcular distancias y/o direcciones adicionales para actualizar los parámetros de calibración. Más específicamente, si el otro marcador está sobre la misma lente, se puede aumentar la precisión de los cálculos de la distancia y la dirección (p. ej., promediando los dos vectores; uno para cada marcador en la lente). Si el otro marcador está sobre una lente diferente o un espejo caliente, la(s) distancia(s) y la(s) dirección(ones) de la cámara a la misma pueden calcularse y usarse de manera similar para actualizar aún más el o los parámetros de calibración relevantes, tal y como se especifica en la tabla. Si en la imagen no se muestran otros marcadores, el flujo pasa a una operación 812.
En la operación 812, el sistema informático determina si hay otras imágenes que muestren otros marcadores disponibles. En tal caso, se realiza la operación 804. También de esta manera, se pueden calcular distancias y/o direcciones adicionales para actualizar los parámetros de calibración. De lo contrario, el flujo pasa a una operación 814.
En la operación 814, el sistema informático determina si existe un desencadenante para repetir la calibración. Son posibles diversos tipos de desencadenantes. En un tipo ejemplar, la calibración se repite si se enciende el dispositivo informático ponible o cuando los ojos de un usuario son detectados por su sistema de seguimiento ocular. En otro tipo ejemplar, se puede usar un sensor para desencadenar la calibración. Por ejemplo, se utiliza un acelerómetro o un giroscopio para detectar movimientos repentinos y a continuación desencadenar el proceso de calibración. En otro tipo ejemplar más, el usuario puede emplear un control manual (p. ej., un botón físico en el casco de RV) para iniciar el proceso de recalibración. Si se recibe el desencadenante, el flujo vuelve a la operación 802 (p. ej., la operación 802 empieza y se repite basándose en los desencadenantes). De lo contrario, el flujo termina.
La determinación de distancia no está limitada por el uso de un sistema de detección basado en cámara. También es posible un sistema de detección sin cámara, por ejemplo, también se puede implementar un tipo específico de sistemas microelectromecánicos (o MEMS) para lograr resultados similares.
Calibración de hardware basada en la compensación de distorsión
En general, una lente en un dispositivo informático ponible, tal como los ilustrados en las Figs. 4-5, sufre de una distorsión en acerico. Esta distorsión afecta mucho directamente a la captura de imágenes oculares y afecta indirectamente al rendimiento de seguimiento de mirada. Desde un punto de vista técnico, debido a la distorsión en acerico de lente, la imagen ocular capturada puede tener mucha distorsión, especialmente cuando el ojo se aleja de la lente (en relación con un valor umbral).
En otros casos, puede haber otros tipos de distorsión, clasificados normalmente como distorsión en barril y distorsión de tipo bigote. La distorsión puede ser irregular o seguir muchos patrones. En una implementación de RV, las distorsiones habituales son, principalmente, radialmente simétricas. Sin embargo, esto depende de la colocación y la alineación relativas entre la cámara y la lente; la imagen ocular también puede sufrir una distorsión no simétrica. En resumer, cualquier tipo de distorsión geométrica es posible y está muy influida por el diseño de lente. Y el modelo de corrección de distorsión se adapta a diversos tipos de distorsiones.
Se necesita un modelo de compensación de distorsión para corregir las imágenes oculares capturadas para el seguimiento de mirada. Este modelo de corrección de distorsión depende de la distancia central de centro de córnea a centro de lente (mostrada como D<o>en las Figs. 9 y 10). Esto significa que el modelo de distorsión debe adaptarse a la distancia córnea-lente en cada trama para compensar las imágenes oculares para el seguimiento de mirada. Además, el modelo de distorsión a usar puede depender de la distancia al ojo y de la posición del ojo en coordenadas x e y en relación con la lente y el visualizador.
Así, en el modelo de corrección de distorsión se introduce un valor de centro de córnea a centro de lente actualizado (estimado a partir de cada trama). Para hacerlo, se establece un valor nominal (predeterminado) (basado en el valor promedio estadístico) para la distancia de centro de córnea a centro de lente. El modelo de corrección de distorsión se configura basándose el valor de distancia de centro de córnea a centro de lente predeterminado. Durante el seguimiento ocular, el valor de centro de córnea a centro de lente (tal como las distancias D<1>, D<2>, D<3>mostradas en las Figs. 9-10) se estima automáticamente a cierta velocidad, tal como basándose en cada imagen ocular o trama alternativa o basándose en un desencadenante (la operación de captura de imagen puede ser ajustada manualmente por el usuario o ajustarse automáticamente según el movimiento del casco, por ejemplo, si el usuario mueve el casco con frecuencia, el movimiento es detectado por captura de imágenes oculares y por el acelerómetro y el giroscopio incorporados). La distancia de centro de córnea a centro de lente se estima y actualiza. La distancia de centro de córnea a centro de lente recién estimada y actualizada se utiliza para establecer un modelo de corrección de distorsión nuevo/actualizado. Y el proceso vuelve atrás y salta entre el establecimiento del modelo de corrección de distorsión y el uso de las nuevas estimaciones para actualizar este modelo.
Si la distancia de centro de córnea a centro de lente cambia, tal y como se muestra en las Figs. 9-10, la distancia varía, y se supone que la distancia original (p. ej., D<0>) es la distancia óptima. Generalmente, cuanto mayor sea la distancia (p. ej., tal como D<3>), más distorsión en acerico existe.
En una realización, se proporciona un aparato ponible de realidad aumentada, de realidad virtual o de otro tipo. Los dispositivos informáticos ponibles de las Figs. 4-5 son ejemplos de un aparato así. En un ejemplo, el aparato incluye un dispositivo de seguimiento ocular y uno o más procesadores. Los uno o más procesadores están configurados (p. ej., basándose en instrucciones legibles por ordenador almacenadas en uno o más medios de almacenamiento legibles por ordenador no transitorios) para al menos recibir del sensor de imagen datos de imagen, donde los datos de imagen corresponden a una imagen tal y como se observa a través de la lente; determinar un nivel o un patrón de distorsión en acerico en la imagen basándose en los datos de imagen; y cambiar al menos un parámetro de calibración de un algoritmo de seguimiento ocular utilizado con el dispositivo de seguimiento ocular basándose en el nivel o el patrón de distorsión en acerico. Este aparato no está cubierto por el objeto de las reivindicaciones.
En un ejemplo, cambiar el al menos un parámetro de calibración basándose en el nivel o el patrón de distorsión en acerico incluye determinar una posición relativa o una dirección relativa del sensor de imagen basándose en un nivel o un patrón de distorsión en acerico y cambiar el al menos un parámetro de calibración del algoritmo de seguimiento ocular utilizado con el dispositivo de seguimiento ocular basándose en la posición relativa o la dirección relativa del sensor de imagen. Este aparato no está cubierto por el objeto de las reivindicaciones.
En un ejemplo, el casco incluye además un sensor de movimiento. El al menos un procesador está configurado además para recibir del sensor de movimiento una señal; determinar, basándose en la señal, que el casco ha acelerado o decelerado más allá de una cantidad umbral; e iniciar al menos una acción en respuesta a la determinación de que el casco ha acelerado o decelerado más allá de la cantidad umbral. La al menos una acción incluye al menos una selección de un grupo que consiste en alertar a un usuario del casco y cambiar al menos un parámetro de calibración del algoritmo de seguimiento ocular.
Estas y otras características se describen en más detalle en relación con las Figs. 9-11. La Figura 9 ilustra ejemplos de distancias de centro de córnea a centro de lente. La Figura 10 ilustra un ejemplo de una imagen del ejemplo de la distorsión en acerico. La Figura 11 ilustra un ejemplo de un flujo de actualización de un parámetro de calibración basándose en una imagen de un ojo, donde la imagen sufre de distorsión en acerico. Este aparato no está cubierto por el objeto de las reivindicaciones.
La Figura 9 ilustra ejemplos de distancias de centro de córnea a centro de lente, según ciertas realizaciones de la presente descripción. Aunque en la Figura 9 se ilustran cuatro distancias, mostradas como D<0>,..., D<3>, cualquier número de distancias es posible dependiendo del nivel o el patrón de la distorsión en acerico y pueden denominarse generalmente Di, donde “ i” es un número entero positivo. Un centro de córnea representa un centro de una córnea. El centro de córnea se determina en un espacio tridimensional. Hay varios parámetros que son necesarios para determinar el centro de córnea, que incluyen la posición de la cámara y la posición al menos dos iluminadores, al menos dos posiciones de reflejo (causadas por al menos dos iluminadores diferentes) en la región esférica de la córnea y el radio de córnea. Un centro de lente representa un centro de una lente. La distancia central de centro de córnea a centro de lente representa una distancia entre un centro de una córnea y un centro de una lente.
Tal y como se ha ilustrado, una lente 910 está instalada en un dispositivo informático ponible (no mostrado). Un valor nominal para una distancia entre el centro 912 de la lente y el centro 922 de una córnea de una globo 920 ocular humano de un usuario se define como una distancia D<0>930. Este valor nominal representa una distancia de centro de córnea a centro de lente predeterminada y, cuando el dispositivo informático ponible está montado en la cabeza del usuario, se define basándose en un valor promedio estadístico de distintos usuarios que lleven puesto este dispositivo (ya sea utilizando un modelado de datos y/o datos reales).
Cuando el ojo se aleja de esta distancia predeterminada, el nivel y/o el patrón de distorsión puede(n) cambiar. El movimiento puede ser causado por distintos motivos, incluidos cambios en la ubicación de la lente 910 en el dispositivo informático ponible (p. ej., ya sea intencionadamente, basándose en un ajuste del usuario, o involuntariamente, debido al movimiento general y, a veces, a caídas repentinas del dispositivo informático ponible por culpa del usuario).
A medida que el ojo 920 se aleja más del centro 912 de la lente, el nivel y/o el patrón de la distorsión en acerico cambia(n). El nivel indica la cantidad de distorsión que existiría en una imagen del ojo 920, donde esta imagen se emplea para el seguimiento ocular. El patrón indica qué aspecto tiene la distorsión en la imagen.
Por lo tanto, a una distancia D<1>940, que representa otro valor de la distancia de centro de córnea a centro de lente, el nivel y el patrón de la distorsión en acerico son diferentes de aquellos a la distancia D<0>930. Asimismo, a una distancia D<2>950, que representa otro valor de la distancia de centro de córnea a centro de lente, el nivel y el patrón de la distorsión en acerico son diferentes de aquellos a las distancias D<0>930 y D<1>940. Similarmente, a una distancia D<3>960, que representa otro valor de la distancia de centro de córnea a centro de lente, el nivel y el patrón de la distorsión en acerico son diferentes de aquellos a las distancias D<0>930, D<1>940 y D<2>950. Cada una de estas distancias D<1>940, D<2>950 y D<3>960 representa un cambio en la distancia D<0>930 predeterminada. Cuanto mayor sea la distancia, más distorsión existirá (p. ej., la cantidad de distorsión aumenta y el patrón se vuelve más pronunciado).
La Figura 10 ilustra un ejemplo de una imagen de un ejemplo de una distorsión en acerico, según ciertas realizaciones. Al igual que en la Figura 9, aquí la distorsión en acerico se ilustra en relación con cuatro distancias D<0>,..., D<3>(que corresponden a las distancias de la Figura 9). Sin embargo, es posible cualquier número de distancias dependiendo del nivel o del patrón de la distorsión en acerico y puede denominarse en general D/, donde “ i” es un número entero positivo. Aunque no se muestra en la Figura 10, la distorsión ilustrada es la de una imagen de un ojo de un usuario que lleva puesto un dispositivo informático ponible. Y esta imagen se emplea para el seguimiento ocular.
Tal y como se ha ilustrado, el patrón en acerico cambia con la distancia D/. Cuanto mayor sea la distancia D/, mayor será la cantidad (p. ej., el nivel) de distorsión, lo que da como resultado un patrón diferente. El patrón de la distorsión se ilustra con una forma particular, tal como un rectángulo distorsionado (p. ej., los lados verticales del triángulo son líneas convexas en lugar de líneas rectas). El nivel de distorsión se ilustra mediante el tamaño, el área y/o el perímetro de la forma particular.
Por lo tanto, a una distancia D<0>1010, que representa un valor predeterminado para la distancia de centro de córnea a centro de lente, una distorsión predeterminada es identificable a partir de una imagen ocular (mostrada como un rectángulo distorsionado en el centro). A una distancia D<1>1020, que representa otro valor para la distancia de centro de córnea a centro de lente, el nivel y/o el patrón de la distorsión cambia con respecto a aquellos a la distancia D<0>1010 (el cambio se muestra con un rectángulo distorsionado más grande). Asimismo, a una distancia D<2>1030, que representa otro valor para la distancia de centro de córnea a centro de lente, el nivel y/o el patrón de la distorsión cambia con respecto a aquellos a las distancias D<0>1010 y D<1>1020 (el cambio se muestra con un rectángulo distorsionado aún más grande). Similarmente, a una distancia D<3>1040, que representa otro valor para la distancia de centro de córnea a centro de lente, el nivel y/o el patrón de la distorsión cambia con respecto a aquellos a las distancias D<0>1010, D<1>1020 y D<2>1030 (el cambio se muestra con un rectángulo distorsionado más grande).
La Figura 11 ilustra un ejemplo de un flujo de actualización de un parámetro de calibración basándose en una imagen de un ojo, donde la imagen sufre de la distorsión en acerico, según ciertas realizaciones de la presente descripción. El flujo comienza en una operación 1102, donde una distancia de centro de córnea a centro de lente predeterminada es establecida por un sistema informático (p. ej., la placa electrónica 580 de la Figura 5). Este valor predeterminado puede almacenarse en la memoria local del sistema informático y puede representar una distancia de centro de córnea a centro de lente promedio.
En una operación 1104, el sistema informático establece un modelo de corrección de distorsión basándose en la distancia de centro de córnea a centro de lente predeterminada. Por ejemplo, el sistema informático carga este modelo de la memoria para su uso en el seguimiento ocular. En un ejemplo, un modelo predictivo se usa y asocia los niveles y/o los patrones de distorsión en acerico con valores para uno o más parámetros de calibración (p. ej., un valor para un parámetro de formación de imágenes, una distancia focal, un parámetro de distorsión y un parámetro de iluminación, etc.). En el modelo predictivo, las asociaciones pueden incluir un mapeo entre imágenes conocidas de posibles distorsiones en acerico, los niveles y/o los patrones de las posibles distorsiones en acerico, las distancias de centro de córnea a centro de lente y los valores de los parámetros de calibración. Estas imágenes conocidas pueden almacenarse en el propio modelo predictivo o aparte, en una memoria local del sistema informático o en una memoria remota accesible al sistema informático por una red. Los valores pueden obtenerse durante la fase de diseño, desarrollo y ensayo del dispositivo informático ponible en un entorno controlado de laboratorio o en una fase operativa de pruebas. El establecimiento del modelo de corrección de distorsión incluye, por ejemplo, acceder a, desde el modelo predictivo, a los valores que corresponden a una distorsión en acerico y que deben respetarse en la distancia de centro de córnea a centro de lente predeterminada y especificar que estos valores deben emplearse en el seguimiento ocular para compensar la distorsión.
En una operación 1106, el sistema informático inicia el seguimiento ocular. Son posibles distintos desencadenantes. En un ejemplo, el seguimiento comienza en respuesta al encendido del dispositivo informático ponible, basándose en la detección de que el usuario se ha puesto este dispositivo en la cabeza o basándose en una entrada manual del usuario recibida en el dispositivo informático ponible. En general, el seguimiento ocular conlleva el análisis de imágenes de al menos un ojo del usuario. Tales imágenes oculares pueden sufrir de distorsión en acerico dependiendo de la distancia central de centro de córnea a centro de lente.
En una operación 1108, el sistema informático recibe datos de imagen de un sensor de imagen (p. ej., una cámara) del dispositivo informático ponible. Estos datos de imagen representan una imagen del ojo del usuario y se reciben como parte del seguimiento ocular.
En una operación 1110, el sistema informático determina un nivel y/o un patrón de distorsión en acerico en la imagen basándose en los datos de imagen. En un ejemplo, el sistema informático aplica un reconocimiento de patrones o un algoritmo de análisis de imágenes para reconocer el nivel y el patrón. En otro ejemplo, el sistema informático correlaciona los datos de imagen con una de las imágenes conocidas disponibles del modelo predictivo, la memoria local o la memoria remota. Por ejemplo, se identifica una mejor coincidencia, y se utiliza la imagen conocida coincidente. Esa imagen conocida está asociada al nivel y al patrón de la distorsión en acerico en el modelo predictivo.
En una operación 1112, el sistema informático estima una distancia de centro de córnea a centro de lente actualizada. En un ejemplo, esta distancia actualizada se obtiene del reconocimiento de patrones o del algoritmo de análisis de imágenes, si se emplea alguno en la operación 1110. En otro ejemplo, la distancia actualizada se determina a partir del modelo predictivo, donde este modelo asocia el nivel y el patrón de la distorsión en acerico a la distancia de centro de córnea a centro de lente actualizada. En general, la distancia indica una posición relativa o una dirección relativa del sensor de imagen basándose en el nivel o el patrón de la distorsión en acerico.
En una operación 1114, el sistema informático cambia el modelo de corrección de distorsión. En un ejemplo, el sistema informático accede a los valores de los parámetros de calibración que son relevantes para la distancia de centro de córnea a centro de lente actualizada (o, de manera equivalente, el nivel y/o el patrón de distorsión en acerico) y actualiza el modelo de corrección de distorsión especificando que estos valores deben utilizarse en relación con el seguimiento ocular.
En una operación 1116, el sistema informático cambia al menos un parámetro de calibración de un algoritmo de seguimiento ocular empleado con el dispositivo de seguimiento ocular basándose en el nivel o el patrón de distorsión en acerico. Por ejemplo, los valores para los parámetros de calibración relevantes se cambian según se identifican a partir del modelo predictivo.
En una operación 1118, el sistema informático determina si existe un desencadenante para repetir el cambio. Si es así, el procedimiento vuelve a la operación 1108. De lo contrario, el flujo termina. Son posibles diversos desencadenantes. En un ejemplo, el cambio se repite automáticamente en un intervalo de trama (p. ej., para cada imagen recibida o para cada dos imágenes). En otro ejemplo, el sistema informático recibe una señal de un sensor de movimiento del dispositivo informático ponible. Basándose en la señal, el sistema informático determina que el dispositivo informático ponible fue movido y que el movimiento indica que el dispositivo informático ponible ha acelerado o decelerado más allá de una cantidad umbral. El sistema informático inicia entonces al menos una acción en respuesta a la determinación de que el aparato ha acelerado o decelerado más allá de la cantidad umbral. Esa acción incluye repetir el cambio y alertar al usuario. Por ejemplo, la alerta es sobre el cambio y puede presentarse visualmente en una visualizador y/o audiblemente en un altavoz (o en la pupila). Este aparato no está cubierto por el objeto de las reivindicaciones.
Lente de Fresnel optimizada
En muchos dispositivos informáticos ponibles se utilizan lentes de Fresnel. Una configuración típica de una lente de Fresnel es para una lente que tiene anillos con un tamaño de escalón grande y constante. El problema con estos escalones de Fresnel es que son claramente visibles en las imágenes de seguimiento ocular (a saber, imágenes oculares) porque distorsionan la imagen localmente y dispersan la luz procedente de los iluminadores, lo cual puede interpretarse como reflejos. Por lo tanto, la imagen ocular es inútil o difícil de usar para la determinación de mirada.
Las realizaciones de la presente descripción tienen por objeto una lente de Fresnel optimizada que mejora el seguimiento ocular y la experiencia de usuario. En un ejemplo, los escalones de Fresnel son más pequeños que un cierto tamaño de escalón. En la región central de la lente de Fresnel puede no haber ningún escalón de Fresnel. Al no tener ningún escalón de Fresnel en la región central, se minimiza la luz parásita (mejorando así la experiencia de usuario), se mejora la calidad de imagen y no existen reflejos falsos (mejorándose así el seguimiento ocular). Los escalones/anillos de Fresnel rodean gradualmente la región central transparente con una profundidad de ranura creciente y, posiblemente, con un tamaño de escalón creciente.
Por tanto, la lente de Fresnel incluye una región central que es plana y no tiene huecos y unos escalones de lente de Fresnel de tamaño variable fuera de la región central. Pertinente a un tamaño pequeño para un escalón de lente de Fresnel, un tamaño/paso de escalón del anillo de Fresnel es menor que el tamaño de píxel de los píxeles de cámara (o si se usa un agrupamiento, el tamaño de los píxeles combinados) dividido por la distancia focal de la cámara multiplicado por la distancia óptica entre la cámara y la lente multiplicado por dos. Un paso de anillo de Fresnel mucho más pequeño que este valor puede generar luz parásita innecesaria. Fuera de la región plana central, la profundidad de ranura de la lente de Fresnel aumenta gradualmente y el tamaño de escalón aumenta posiblemente.
Además, es posible una configuración de lente Fresnel de dos capas (o multicapa). Cada capa tiene unos escalón y tamaño de lente diferentes. El tamaño de la región plana central también puede ser diferente.
Además, la luz parásita se puede reducir introduciendo técnicas antirreflexión (AR). Los recubrimientos antirreflectantes estándar requieren complejos procesos de recubrimiento que son caros y puede que no se ajusten bien a escala con grandes volúmenes de producción. Pueden ser más adecuadas otras técnicas como la de estructura de “ ojo de polilla” (Motheye - ME) o plasmaAR®. Las superficies resultantes son sensibles a la contaminación, por lo que no deben usarse en la superficie orientada hacia el usuario, pero pueden usarse en todas las demás superficies. Estas técnicas de RA pueden usarse hasta en las superficies de Fresnel.
La Figura 12 ilustra un ejemplo de una lente 1200 de Fresnel optimizada, según realizaciones de la presente descripción. Tal y como se ha ilustrado, la lente 1200 de Fresnel incluye una región central (o de centro) 1210 y unos anillos 1220 de Fresnel que rodean la región central 1210. La región central 1210 no tiene ninguno de tales anillos y es ópticamente transparente, de manera que la luz puede atravesar esa región. Son posibles distintas formas y tamaños de la región central 1210 dependiendo de la forma y el tamaño de la lente 1200 de Fresnel y de su colocación en relación con otros componentes (p. ej., la cámara, la zona para recibir el ojo del usuario, etc.) en un dispositivo informático ponible. En un ejemplo, la lente 1210 de Fresnel tiene una sección transversal circular con un diámetro en el intervalo de diez a cincuenta milímetros. La región central 1210 también es circular y tiene un diámetro en el intervalo de un 1 % a un 25 % del diámetro de la lente 1200 de Fresnel.
En un ejemplo, los anillos 1220 de Fresnel incluyen varios anillos que rodean anularmente la región central 1210. El número y los tamaños de estos anillos 1220 dependen de las formas y los tamaños de la lente 1200 de Fresnel y/o de la región central 1210. En general, cada uno de los anillos 1220 de Fresnel tiene una profundidad de ranura y un tamaño de escalón. La profundidad de ranura y/o el tamaño de escalón aumenta(n) con un aumento del diámetro de un anillo 1220 de Fresnel. La profundidad de ranura puede estar en el rango de los micrómetros. El tamaño de escalón puede estar en el rango milimétrico.
La Figura 13 ilustra un ejemplo de una lente 1300 de Fresnel de dos capas, según realizaciones de la presente descripción. Una primera capa 1310 incluye una región central 1312 y varios anillos de Fresnel 1314 alrededor de la región central 1312. Similarmente, una segunda capa 1320 incluye una región central 1324 y varios anillos 1324 de Fresnel alrededor de la región central 1322. Generalmente, estas regiones centrales 1814 y 1824 están alineadas y sus centros pueden estar, aunque no es necesario, en el mismo eje (un eje horizontal atraviesa sus centros). Tal y como se ha ilustrado, el tamaño de las regiones centrales 1312 y 1324 es diferente. El tamaño de los anillos 1314 y 1324 de Fresnel también puede ser diferente.
Control de entorno virtual
Las Figs. 14-21 ilustran distintos ejemplos de manipulación de objetos virtuales en un entorno virtual. En aras de la brevedad, un objeto virtual se denomina “ objeto” en la presente memoria. En general, los objetos pueden representarse en distintas capas del entorno virtual. Cada objeto tiene un conjunto de parámetros que controlan cómo se presenta el objeto (denominados en la presente memoria parámetros de presentación) y de operaciones de manipulación aplicables al objeto (denominadas en la presente memoria parámetros de manipulación).
En el entorno virtual, un controlador externo se presenta como un controlador virtual. También en aras de la brevedad, un controlador virtual se denomina “ controlador” en la presente memoria (mientras que un controlador externo es un controlador físico). El controlador externo puede tener una o más zonas táctiles, tales como una superficie sensible al tacto, un botón táctil, un interruptor de tecla, etc. Estas zonas táctiles pueden presentarse como menús virtuales (denominados en la presente memoria “ menús” en el entorno virtual).
Colocar un menú en el entorno de realidad virtual o de realidad aumentada puede ser importante para la experiencia de usuario. Tener el menú colocado en una posición/alineación apropiada hace que el manejo por parte del usuario sea mucho más natural e intuitivo, especialmente en un contexto virtual complejo. En la presente descripción, la combinación de una interacción basada en la mirada con un objeto y controles del controlador externo se utiliza para activar, colocar y manejar el menú.
En un ejemplo, se sigue la mirada del usuario en el entorno virtual. Si el usuario mira un objeto durante un período de tiempo más largo que un umbral de tiempo, se selecciona el objeto. La selección puede bloquear el objeto para que el usuario pueda apartar la vista o la mirada del objeto, mientras que el objeto seguiría estando seleccionado y disponible para la manipulación. Después de eso, y dependiendo de si el usuario sujeta una zona táctil en el controlador externo, en el entorno virtual se presenta un menú específico para esa zona táctil. El menú proporciona opciones para manipular el objeto según los parámetros del objeto. El usuario maneja la zona táctil en el controlador externo para navegar por y seleccionar opciones de menú disponibles y manipular el objeto en el entorno virtual.
En un ejemplo, los parámetros de presentación de un objeto indican la capa de entorno virtual en la que debe presentarse el objeto y el aspecto y la sensación del objeto. Los parámetros de manipulación del objeto indican las propiedades visuales editables (p. ej., el tamaño, la forma, el color), las restricciones a mover y colocar el objeto en el entorno virtual (p. ej., el objeto puede colocarse adyacente a otro objeto) y asociaciones a otros objetos. El menú correspondiente a una zona táctil permite editar y manipular el objeto tal y como se establece en sus parámetros de presentación y de manipulación.
Pueden definirse distintos tipos de asociaciones. Estas asociaciones afectan a cómo puede manipularse un objeto en vista de otros objetos en el entorno virtual y, por tanto, pueden controlar cómo se puede usar el controlador externo para manipular estos objetos. Una “ asociación de relación” es un ejemplo y especifica cómo están relacionados dos objetos. Por ejemplo, se describe una asociación padre-hijo en relación con la Figura 16. En esa figura, una impresora 3D está asociada a un objeto impreso, donde la impresora es un padre y el objeto impreso es un hijo. En este caso, la impresora 3D puede manipularse para crear el objeto impreso. Otro ejemplo de asociaciones es una “ asociación de manipulación” , que especifica si una manipulación de un objeto debe pasar de, o a, otro objeto y cómo tales dos objetos pueden manipularse juntos. Por ejemplo, se describe un árbol en relación con la Figura 14. La manipulación de ese árbol es independiente de otros objetos en el entorno basándose en su asociación de manipulación, que indica que el árbol no está asociado a otros objetos. En comparación, se ilustra un juego de cartas en relación con la Figura 18. En esa figura, una carta está asociada a ranuras en una mesa para recibir la carta. La manipulación de la carta se puede transferir a una ranura para que la carta se pueda meter en la ranura.
La Figura 14 ilustra un ejemplo de manipulación de un objeto 1410 en un entorno virtual 1400, según realizaciones de la presente descripción. Un dispositivo informático ponible, tal como un casco de RV o de RA como se ha ilustrado en las Figs. 4-5, presenta el entorno virtual 1400. El dispositivo informático ponible está acoplado comunicativamente a un controlador externo por una red de datos. El controlador externo puede incluir varias zonas táctiles, cada una de las cuales proporciona controles. La red de datos puede ser una red cableada o inalámbrica, incluidos una red de área local, una red punto a punto, un bus de comunicación o cualquier otra red de datos adecuada para intercambiar información de control entre el controlador externo y el dispositivo informático ponible. El entorno virtual 1400 puede ser un entorno de realidad virtual, en el caso de un casco de RV, o un entorno de realidad aumentada, en el caso de un casco de RA.
Tal y como se ha ilustrado, el entorno virtual 1400 presenta un objeto 1410. Este objeto 1410 tiene un conjunto de parámetros que lo hacen interactivo. En particular, el usuario puede interactuar con el objeto 1410 en el entorno virtual, donde una interacción conlleva una manipulación del objeto 1410 cambiando una o más de sus propiedades. El objeto 1410 se muestra como un árbol tridimensional.
El dispositivo informático ponible presenta el entorno virtual 1400 en un conjunto de visualizaciones y sigue la mirada del usuario a medida que éste ve el conjunto de visualizaciones y mira el entorno virtual 1400 visualizado. En un ejemplo, el dispositivo informático ponible presenta, basándose en el seguimiento y en un mapeo entre el conjunto de visualizaciones y el entorno virtual 1400, una indicación 1420 de la posición de mirada del usuario en el entorno virtual. Por ejemplo, la indicación 1420 se presenta como una forma geométrica (p. ej., un círculo de color) en una capa del entorno virtual 1400. En otro ejemplo, la indicación 1420 de mirada puede ser invisible para el usuario o puede no visualizarse. En realidad, el usuario ya sabe lo que está mirando durante tal interacción basada en la mirada. Así pues, puede que no sea necesario presentar la indicación 1420.
Además, a medida que el usuario mueve el controlador externo, el dispositivo informático ponible detecta el movimiento basándose en la comunicación de datos con el controlador externo por la red de datos y visualiza un controlador virtual 1430 en el entorno virtual 1400. Este controlador 1430 puede tener un aspecto (forma y tamaño relativos) para imitar el controlador externo.
Si el usuario sujeta o está en contacto con una zona táctil del controlador físico, el dispositivo informático obtiene una indicación de tal “ integración física” en el entorno físico del controlador externo y actualiza el controlador 1430 para resaltar la correspondiente zona 1432 táctil virtual. Tal y como se ha ilustrado en la Figura 14, cuando el usuario interactúa con una zona física sensible al tacto en el controlador externo, la correspondiente zona 1432 se resalta en el controlador 1430 en el entorno virtual.
Si el dispositivo informático ponible detecta la mirada del usuario sobre el objeto 1410 (p. ej., el árbol tridimensional) durante un período de tiempo predefinido, el dispositivo informático ponible puede fijar la mirada al objeto 1410. Después de eso, el usuario puede apartar la mirada del objeto 1410 y seguir controlando el objeto 1410 a través del controlador externo.
Son posibles otras técnicas para bloquear el objeto 1410. Por ejemplo, se predefine una región de mirada alrededor del objeto 1410. Si el dispositivo informático ponible detecta que la mirada del usuario está dentro de esta región y que, a la vez, recibe del controlador externo una indicación de una operación de usuario, el dispositivo informático ponible bloquea el objeto 1410. La región de mirada puede predefinirse basándose en los parámetros del objeto. Por ejemplo, la región de mirada es una zona geométrica que rodea al objeto 1410 y, por tanto, es generalmente mayor que el tamaño del objeto 1410.
Una vez que se bloquea el objeto 1410, el dispositivo informático ponible presenta un menú 1440 en el entorno virtual. En la ilustración ejemplar de la Figura 14, el menú 1440 se coloca en proximidad (p. ej., adyacente) al objeto 1410, de manera que el usuario puede ver tanto el objeto 1410 como el menú 1440 mientras manipula el objeto 1410. Este menú 1440 está en una capa distinta a la del objeto 1410 en el entorno virtual (tal y como se muestra en la Figura 14, el menú está en una capa superior e incluye en parte el objeto 1810). Sin embargo, ambos elementos 1410 y 1440 pueden estar, alternativamente, en la misma capa.
En un ejemplo, el propio menú 1440 es una especie de objeto virtual y tiene un conjunto de parámetros que controlan el aspecto y la sensación del menú 1440 y las operaciones de manipulación que admite el menú 1440. El dispositivo informático ponible establece estos parámetros según la zona táctil del controlador externo con la que esta interactuando el usuario (en vez de con el propio controlador externo). Por ejemplo, si la zona táctil física es una zona sensible al tacto circular que permite operaciones rotatorias, el menú 1440 se configura como un menú circular que también permite operaciones rotatorias. Si la zona táctil física es un botón táctil o un interruptor de tecla, el menú 1440 se configura como un interruptor de alimentación virtual.
En ciertos ejemplos, el aspecto y la sensación del menú 1440 pueden coincidir con los de la zona táctil física. Por ejemplo, se presenta un menú circular 1440, mientras que la zona táctil física es un controlador de tipo botón o interruptor. No obstante, el menú 1440 todavía se puede usar para proporcionar las operaciones rotatorias, pero tales operaciones requerirían operaciones en el entorno físico distintas de simplemente hacer clic en el botón/interruptor. Por ejemplo, el usuario puede mover el controlador externo de manera circular en el entorno físico. El dispositivo informático ponible puede recibir del controlador externo información acerca de este movimiento y usar esta información para reflejar los controles ejercidos sobre el objeto 1410 a través del menú 1440.
Una vez que se presenta el menú 1440, el usuario puede manejar la correspondiente zona táctil (o todo el controlador, en caso de falta de coincidencia, tal y como se ha explicado en el párrafo anterior) para manipular el objeto 1410 según los parámetros del objeto 1410 y la funcionalidad admitida por el menú 1440 (o, de manera similar, el controlador o la zona táctil físico/a). Por ejemplo, el usuario puede editar el color, la forma, el tamaño, la ubicación, la animación, etc. del objeto 1410 en el entorno virtual. Así pues, el dispositivo informático ponible recibe del controlador externo la información de control relevante, actualiza la presentación del menú 1440 para mostrar que se están aplicando los correspondientes controles y actualiza el objeto 1410 y su presentación para mostrar los cambios realizados en el objeto 1410.
La Figura 15 ilustra un flujo ejemplar de manipulación de un objeto en un entorno virtual basándose en una información de mirada y unos controles físicos en un controlador externo (p. ej., un controlador físico), según realizaciones de la presente descripción. El flujo ejemplar comienza en una operación 1502, en la que un dispositivo informático ponible visualiza el entorno virtual que incluye el objeto. En una operación 1504, el dispositivo informático ponible visualiza una indicación de la posición de mirada del usuario en el entorno virtual. Por ejemplo, el dispositivo informático ponible sigue y mapea la mirada del usuario en el entorno virtual y visualiza una forma geométrica en la posición de mirada tal y como se ha mapeado en el entorno virtual.
En una operación 1506, el dispositivo informático ponible bloquea el objeto virtual. Por ejemplo, el dispositivo informático ponible detecta que la posición de mirada está sobre el objeto durante un período de tiempo predefinido. En otro ejemplo, el dispositivo informático ponible detecta que la posición de mirada está dentro de una región de mirada predefinida alrededor del objeto y, a la vez, recibe del controlador externo información de una interacción de usuario con el controlador físico. En ambos ejemplos, el dispositivo informático ponible selecciona el objeto y actualiza sus parámetros para indicar que ha sido seleccionado y que está sujeto a manipulación.
En una operación 1508, el dispositivo informático ponible visualiza un menú asociado a la manipulación del objeto. En un ejemplo, el dispositivo informático ponible presenta el menú en el entorno virtual en las proximidades del objeto. Este menú puede corresponder a una zona táctil física en el controlador físico que el usuario está sujetando o con la que está interactuando. Por ejemplo, el dispositivo informático ponible recibe del controlador externo un identificador de la zona táctil y accede en la memoria a un modelo virtual del controlador externo y de la zona táctil física. El modelo virtual puede definir la forma, el tamaño, el aspecto y la sensación y las funcionalidades de una correspondiente zona táctil virtual. El dispositivo informático ponible presenta esta zona táctil virtual como el menú.
En una operación 1510, el dispositivo informático ponible manipula el objeto. En un ejemplo, el dispositivo informático ponible recibe del controlador externo información de control basándose en una interacción de usuario con la zona táctil física. Como el objeto está bloqueado, el dispositivo informático ponible presenta una representación virtual de la interacción de usuario con el menú, manipula el objeto basándose en la información de control y presenta en el entorno virtual los cambios realizados en el objeto a medida que es manipulado.
La Figura 16 ilustra un ejemplo de manipulación de múltiples objetos en un entorno virtual, según realizaciones de la presente descripción. Aquí, dos objetos están asociados entre sí: una impresora tridimensional (3D) 1610 y un objeto impreso 1630 (p. ej., una caja). La impresora 3D 1610 puede manipularse en el entorno virtual para imprimir el objeto impreso 1630. En otras palabras, la creación del segundo objeto 1630 depende de la manipulación del primer objeto 1610.
Tal y como se ha ilustrado en la esquina superior izquierda de la Figura 16, el dispositivo informático ponible detecta la mirada del usuario sobre el objeto 1610 (la impresora 3D virtual). Basándose en parámetros de este objeto, se presenta una guía 1620 sobre el uso de este objeto. La guía 1620 presenta en el entorno virtual información sobre el manejo del controlador externo para interactuar con el objeto 1610.
En un ejemplo, el dispositivo informático ponible configura la guía 1620 para que imite al menos la forma del controlador virtual (el cual, a su vez, imita la forma del controlador externo). La información de manejo se puede mostrar en relación con la forma imitada. Tal y como se ha ilustrado en la Figura 16, la guía 1620 informa al usuario de que “ presione” la zona táctil azul.
Una vez que el usuario presiona la correspondiente zona táctil en el controlador externo, el dispositivo informático ponible recibe del mismo una indicación de esta presión. Debido a la asociación entre la impresora 3D virtual y el objeto impreso virtual, el dispositivo informático ponible genera y presenta el objeto 1630 (p. ej., el objeto impreso virtual) en el objeto 1610 (p. ej., en la impresora 3D virtual), tal y como se ha ilustrado en la esquina superior derecha de la Figura 16.
En ese momento, el usuario puede mirar el objeto 1630 para bloquearlo. Alternativamente, el dispositivo informático ponible lo bloquea automáticamente (sin una mirada específica) basándose en la generación del objeto 1630, ya que el usuario ya presionó la zona táctil azul para imprimir el objeto impreso en el entorno virtual. Una vez bloqueado, el objeto 1630 puede manipularse.
Por consiguiente, el dispositivo informático ponible presenta un menú para manipular el objeto 1630. En un ejemplo, el dispositivo informático ponible recibe, del controlador externo, una indicación de una interacción de usuario con una zona táctil física del controlador externo. En respuesta, el dispositivo informático ponible invoca y presenta el menú. La presentación puede ser gradual, de manera que el menú pasa de un estado inicial a un estado estable (p. ej., el menú se mueve hacia adelante hacia el usuario en el entorno virtual).
En la esquina inferior izquierda de la Figura 16 se muestra el menú en transición desde el estado inicial (mostrado como un menú 1640 en transición). En transición, el menú se visualiza en un primer ángulo inclinado. El dispositivo informático ponible actualiza la presentación del menú de modo que se mueva gradualmente hacia el campo de visión frontal del usuario. Durante el movimiento del menú, el ángulo inclinado se ajusta a un segundo ángulo inclinado hasta la colocación final y estable en el entorno virtual delante del usuario. En la esquina inferior derecha de la Figura 16 se muestra el menú en el estado estable en el segundo ángulo inclinado (mostrado como un menú estable 1650).
Una vez que se visualiza completamente, el menú incluye múltiples componentes que pueden disponerse en una o más capas del entorno virtual. Algunos de estos componentes pueden ser objetos que pueden bloquearse y manipularse. Por ejemplo, basándose en la detección de la posición de mirada sobre el componente “ anchura” , el dispositivo informático ponible bloquea este componente para su manipulación. La manipulación puede producirse a través de una interacción del usuario con una zona táctil del controlador externo.
La Figura 17 ilustra un flujo ejemplar de manipulación de múltiples objetos en un entorno virtual basándose en una información de mirada y unos controles físicos en un controlador externo (p. ej., un controlador físico), según realizaciones de la presente descripción. El flujo ejemplar comienza en una operación 1702, en la que un dispositivo informático ponible detecta una posición de mirada en un primer objeto (p. ej., una impresora 3D virtual) en el entorno virtual. En una operación 1704, el dispositivo informático ponible visualiza una guía asociada al uso del primer objeto. En un ejemplo, la guía se visualiza basándose en unos parámetros del primer objeto y su asociación a un segundo objeto (p. ej., un objeto impreso virtual). La guía muestra información sobre el uso del controlador externo para manipular el primer objeto. Por ejemplo, la guía informa al usuario de que presione los controles físicos (p. ej., interactúe con una zona táctil física) para generar el segundo objeto.
En una operación 1706, el dispositivo informático ponible visualiza el segundo objeto en el entorno virtual basándose en una información de interacción. En un ejemplo, la información de interacción incluye una información de control proporcionada desde el controlador externo basándose en la presión por parte del usuario de los controles físicos en respuesta a la información de la guía. El dispositivo informático ponible recibe la interacción y, en consecuencia, genera y visualiza el segundo objeto.
En una operación 1708, el dispositivo informático ponible bloquea el segundo objeto. En un ejemplo, el segundo objeto se bloquea automáticamente (p. ej., sin una entrada de usuario o mirada de usuario adicional) basándose en la generación del segundo objeto en respuesta a la recepción de la información de interacción.
En una operación 1710, el dispositivo informático ponible visualiza un menú asociado a la manipulación del segundo objeto. En un ejemplo, el menú corresponde a una zona táctil física del controlador externo y facilita la manipulación del segundo objeto basándose en interacciones de usuario con la zona táctil física. Algunos o todos los componentes del menú son también objetos que pueden bloquearse basándose en la detección de una mirada de ellos y que, una vez bloqueados, pueden manipularse basándose en una interacción de usuario con la zona táctil física en el controlador externo.
La Figura 18 ilustra otro ejemplo de manipulación de múltiples objetos en un entorno virtual, según realizaciones de la presente descripción. Aquí, dos objetos están asociados entre sí: una carta 1810 y una ranura 1850 de una mesa. La carta 1810 es un primer objeto que tiene unos parámetros que especifican que puede moverse en el entorno virtual y meterse en la ranura 1850. La ranura es un segundo objeto que tiene unos parámetros que especifican que es estática en el entorno virtual y que puede ser un objeto de destino de otros objetos (p. ej., puede recibir la carta 1810). En otras palabras, la manipulación del primer objeto 1810 puede conllevar una manipulación del segundo objeto 1850.
Tal y como se ha ilustrado en la esquina superior izquierda de la Figura 18, el dispositivo informático ponible detecta la mirada 1840 del usuario sobre el objeto 1810 (la carta) durante un período de tiempo predefinido. El objeto 1810 se selecciona basándose en los parámetros de este objeto. El dispositivo informático ponible muestra la selección 1830 resaltando el objeto 1810.
A continuación, el dispositivo informático ponible recibe información del controlador externo de una interacción de usuario con una zona táctil del controlador externo (p. ej., la presión de un botón). El dispositivo informático ponible determina que esta información corresponde a una sujeción del objeto 1810 y, por consiguiente, actualiza la presentación del objeto 1810 para mostrar que está siendo sujetada en el entorno virtual.
Una vez sujeto, el dispositivo informático ponible detecta que la mirada del usuario se apartó del objeto 1810 (p. ej., la carta) y se posó en el objeto 1850 de destino (p. ej., la ranura en la mesa para recibir la carta). En la esquina izquierdaderecha de la Figura 18 se muestra la mirada actualizada mientras el elemento 1810 se está colocando en el objeto 1850 de destino.
Después de la mirada del usuario en el objeto 1850 de destino, el dispositivo informático ponible puede permitir al usuario apartar la mirada y manejar el controlador externo para mover el objeto 1810 hasta el objeto 1850 de destino. T ras recibir del controlador externo información de una interacción de usuario con la zona táctil del controlador externo (p. ej., otra presión de botón), se llega a la determinación de que el objeto 1810 debe colocarse en el objeto 1850 de destino y, en consecuencia, se actualiza el entorno virtual para mostrar que el objeto 1810 se dejó caer en el objeto 1850 de destino, lo cual se muestra con un elemento 1860 en la parte central inferior de la Figura 18.
La Figura 19 ilustra otro ejemplo de un flujo de manipulación de múltiples objetos en un entorno virtual, según realizaciones de la presente descripción. Aquí, dos objetos están asociados entre sí, de manera que un primer objeto puede moverse en las proximidades (p. ej., colocarse dentro, sobre, debajo, etc.) de un segundo objeto en el entorno virtual.
El flujo ejemplar comienza en una operación 1902, en la que un dispositivo informático ponible detecta una posición de mirada en el primer objeto en el entorno virtual durante un período de tiempo predefinido. En consecuencia, el dispositivo informático ponible bloquea el primer objeto.
En una operación 1904, el dispositivo informático ponible detecta una interacción de usuario para sujetar el primer objeto en el entorno virtual. Por ejemplo, el dispositivo informático recibe del controlador externo información acerca de la interacción de usuario, donde la interacción de usuario es con una zona táctil del controlador externo e indica la sujeción. Por consiguiente, el dispositivo informático ponible actualiza unos parámetros del primer objeto y su presentación en el entorno virtual para reflejar la sujeción.
En una operación 1906, el dispositivo informático ponible detecta una posición de mirada en el segundo objeto en el entorno virtual durante un período de tiempo predefinido. En consecuencia, el dispositivo informático ponible bloquea el segundo objeto.
En una operación 1908, el dispositivo informático ponible detecta una interacción de usuario para colocar el primer objeto sobre el segundo objeto. Por ejemplo, el dispositivo informático recibe del controlador externo información acerca de la interacción de usuario, donde esta interacción es con una zona táctil del controlador e indica la colocación.
En una operación 1910, el dispositivo informático ponible coloca el primer objeto sobre el segundo objeto basándose en el usuario detectado. Por ejemplo, el dispositivo informático ponible actualiza los parámetros del primer objeto y su presentación en el entorno virtual para reflejar la colocación.
La Figura 20 ilustra un ejemplo de cambio de controladores en un entorno virtual, según realizaciones de la presente descripción. Aquí, dos objetos están asociados entre sí: un controlador actual 2010 y un controlador disponible 2020. Estos dos objetos son mutuamente excluyentes a la hora de ser utilizados en el entorno virtual. En otras palabras, al usuario solo se le permite usar uno de ellos en cualquier momento en el entorno virtual.
En un ejemplo, el usuario puede usar un controlador externo, y el dispositivo informático ponible puede presentar un correspondiente controlador en el entorno virtual. El usuario puede cambiar del controlador externo a otro. El dispositivo informático ponible cambiaría en consecuencia el controlador en el entorno virtual. Alternativamente, el usuario puede estar utilizando un controlador externo genérico que puede mapearse a distintos modelos virtuales almacenados en una memoria local o accesibles al dispositivo informático ponible a través de una memoria remota. El dispositivo informático ponible presenta estos distintos modelos virtuales en el entorno virtual como controladores disponibles y permite al usuario cambiar entre ellos.
Tal y como se ha ilustrado en la esquina superior izquierda de la Figura 20, el dispositivo informático ponible visualiza el controlador actual 2010 que el usuario está manejando en el entorno virtual y otro u otros controladores disponibles 2020 para su selección. Tal y como se ha ilustrado en la esquina superior derecha de la Figura 20, para cambiar del controlador actual 2010 a un controlador disponible 2020, el usuario maneja el controlador externo para que, en el entorno virtual, el controlador actual 2010 se mueva hacia la posición del controlador disponible 2020. Por ejemplo, el dispositivo informático ponible recibe del controlador externo información que indica una interacción de usuario con una zona táctil del controlador externo o con el propio controlador externo, donde la interacción del usuario es para mover el controlador actual 2010 hacia el controlador disponible 2020. Basándose en esta información, el dispositivo informático ponible actualiza los parámetros y la presentación del controlador actual 2010 para mostrar este movimiento en el entorno virtual.
Para cambiar al controlador disponible 2020, puede que el usuario tenga que golpear o tocar el controlador disponible. Aquí también el usuario maneja el controlador externo para realizar esta operación en el entorno virtual, y el dispositivo informático ponible recibe del controlador externo la información relevante y actualiza el entorno virtual. Tal y como se muestra en la esquina superior derecha de la Figura 20, el dispositivo informático ponible resalta el golpe o toque virtual 2030 cambiando las propiedades visuales del controlador disponible 2420 (p. ej., intensificando su color o haciendo que parpadee).
Una vez que se selecciona el controlador disponible 2020 (mostrado como el controlador seleccionado 2040 en la parte central inferior de la Figura 20), el controlador actual 2010 se reemplaza por el controlador seleccionado 2040. En un ejemplo, el controlador actual 2010 es un objeto presentado en una capa superior del entorno virtual. El controlador disponible 2020 es también otro objeto presentado, antes de la selección, en una capa inferior del entorno virtual. Basándose en la selección, el dispositivo informático ponible descarta (p. ej., elimina de la presentación) el objeto que representa al controlador actual 2010 de la capa superior y agrega el objeto que representa al controlador disponible 2020 a esta capa superior. Alternativamente, en vez de quitar y agregar, el dispositivo informático ponible cambia los parámetros del objeto en la capa superior de los parámetros del controlador actual 2010 a los parámetros del controlador disponible 2020.
La Figura 21 ilustra un ejemplo de un flujo de cambio de controladores en un entorno virtual, según realizaciones de la presente descripción. El flujo ejemplar comienza en una operación 2102, en la que un dispositivo informático ponible detecta el movimiento de un primer controlador hacia un segundo controlador en el entorno virtual. Por ejemplo, el dispositivo informático recibe del controlador externo información acerca de una interacción del usuario con una zona táctil del controlador externo o con el propio controlador externo, donde la interacción del usuario indica el movimiento. Por consiguiente, el dispositivo informático ponible actualiza unos parámetros del primer controlador y su presentación en el entorno virtual para reflejar la sujeción.
En una operación 2104, el dispositivo informático ponible detecta un contacto (p. ej., un contacto virtual) del primer controlador con el segundo controlador en el entorno virtual. Este contacto corresponde a un golpe o toque virtual. Por ejemplo, el dispositivo informático recibe del controlador externo información acerca de una interacción de usuario con la zona táctil del controlador externo, donde la interacción del usuario indica el contacto virtual.
En una operación 2106, el dispositivo informático ponible selecciona el segundo controlador basándose en el contacto virtual. En una operación 2108, el dispositivo informático ponible reemplaza al primer controlador por el segundo controlador en el entorno virtual.
La invención se ha descrito ahora detalladamente a efectos de claridad y de comprensión. Sin embargo, se apreciará que pueden hacerse determinados cambios y modificaciones dentro del ámbito de las reivindicaciones adjuntas.
La descripción anterior solo proporciona realizaciones ilustrativas, y no se pretende que limite el ámbito, la aplicabilidad o la configuración de la invención. Más bien, la descripción anterior de las realizaciones ilustrativas proporcionará a los expertos en la técnica una descripción que les permitirá aplicar una o más realizaciones ilustrativas.
Por ejemplo, cualquier detalle analizado con respecto a una realización puede estar presente o no en todas las versiones contempladas de esa realización. De la misma manera, cualquier detalle analizado con respecto a una realización puede estar presente o no en todas las versiones contempladas de otras realizaciones analizadas en la presente memoria. Finalmente, la ausencia del análisis de cualquier detalle con respecto a la realización de la presente memoria será un reconocimiento implícito de que tal detalle puede estar presente o no en cualquier versión de cualquier realización analizada en la presente memoria.
En la descripción previa se han dado detalles específicos para facilitar una comprensión total de las realizaciones. Sin embargo, un experto en la técnica entenderá que las realizaciones pueden ponerse en práctica sin estos detalles específicos. Por ejemplo, los circuitos, sistemas, redes, procesos y otros elementos de la invención pueden mostrarse como componentes en forma de diagrama de bloques para no complicar las realizaciones con detalles innecesarios. En otros casos, los circuitos, procesos, algoritmos, estructuras y técnicas muy conocidos pueden mostrarse sin detalles innecesarios para evitar complicar las realizaciones.
Además, cabe señalar que pueden describirse realizaciones individuales como un procedimiento que se ilustra como un flujograma, un diagrama de flujo, un diagrama de flujo de datos, un diagrama estructural o un diagrama de bloques. Aunque un diagrama de flujo puede describir las operaciones como un proceso secuencial, muchas de las operaciones pueden realizarse en paralelo o al mismo tiempo. Además, se puede reorganizar el orden de las operaciones. Un proceso puede terminarse cuando se completen sus operaciones, pero podría tener etapas adicionales no analizadas o incluidas en una figura. Asimismo, no todas las operaciones de cualquier proceso particularmente descrito pueden ocurrir en todas las realizaciones. Un proceso puede corresponder a un método, una función, un procedimiento, una subrutina, un subprograma, etc. Cuando un proceso corresponde a una función, su terminación corresponde a un retorno de la función a la función de llamada o a la función principal.
La expresión “ medio legible por máquina” incluye, pero no se limita a, dispositivos de almacenamiento transitorios y no transitorios, portátiles o fijos, dispositivos ópticos de almacenamiento, canales inalámbricos y otros diversos medios capaces de almacenar, contener o transmitir una o más instrucciones y/o datos. Un segmento de código o instrucciones ejecutables por máquina pueden representar un procedimiento, una función, un subprograma, un programa, una rutina, una subrutina, un módulo, un paquete de software, una clase o cualquier combinación de instrucciones, estructuras de datos o sentencias de programa. Un segmento de código puede acoplarse a otro segmento de código o a un circuito de hardware al pasar y/o recibir información, datos, argumentos, parámetros o contenido de memoria. La información, los argumentos, los parámetros, los datos, etc. pueden pasarse, enviarse o transmitirse a través de cualquier medio adecuado que incluye compartir la memoria, pasar el mensaje, pasar el identificador, transmisión de red, etc.
Cuando se implementan en software, firmware, software personalizado o microcódigo, el código de programa o los segmentos de código para realizar las tareas necesarias pueden almacenarse en un medio legible por máquina. Uno o más procesadores pueden realizar las tareas necesarias.
Como se utiliza en la presente memoria, la frase “ una primera cosa basada en una segunda cosa” y frases similares pueden significar que la primera cosa se basa únicamente en la segunda cosa, o que la primera cosa se basa en la segunda cosa, así como una o más cosas adicionales.
Claims (14)
1. Un casco (400) de realidad virtual o realidad aumentada ponible, en donde el casco (400) comprende:
un sistema (100) de seguimiento ocular que comprende:
un sensor de imagen (113); y
una primera lente (620) que comprende un primer marcador (610); y
uno o más procesadores (120) configurados para recibir (802) del sensor (113) de imagen una primera imagen, en donde la primera imagen muestra el primer marcador (610);caracterizado por quelos uno o más procesadores (120) además están configurados para:
determinar (804) una primera distancia del sensor (113) de imagen al primer marcador (610) basándose en la primera imagen; y
cambiar (808) al menos un parámetro de calibración de un algoritmo de seguimiento ocular utilizado con el dispositivo (100) de seguimiento ocular basándose en la primera distancia.
2. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde:
el primer marcador (610) está sobre una superficie de la primera lente (620) o en la primera lente (620).
3. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde:
el primer marcador (610) está sobre una superficie de la primera lente (620), en donde la superficie está orientada sustancialmente hacia el sensor (113) de imagen.
4. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde:
el casco (400) o el dispositivo (100) de seguimiento ocular comprende además una segunda lente que comprende un segundo marcador.
5. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 4, en donde la segunda lente comprende:
una lente de Fresnel.
6. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 5, en donde:
el segundo marcador está ubicado en una capa de la lente de Fresnel.
7. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 4, en donde:
la primera imagen muestra además el segundo marcador; y
el uno o más procesadores (120) están configurados además para:
determinar una segunda distancia del sensor (113) de imagen al segundo marcador basándose en la primera imagen; y
cambiar al menos un parámetro de calibración del algoritmo de seguimiento ocular basándose en la segunda distancia.
8. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 4, en donde los uno o más procesadores (120) están configurados además para:
recibir del sensor (113) de imagen una segunda imagen, en donde la segunda imagen muestra el segundo marcador;
determinar una segunda distancia del sensor (113) de imagen al segundo marcador basándose en la segunda imagen; y
cambiar al menos un parámetro de calibración del algoritmo de seguimiento ocular basándose en la segunda distancia.
9. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde:
cambiar (808) el al menos un parámetro de calibración se basa además en el hecho de que la primera distancia es diferente de una segunda distancia, en donde la segunda distancia es una distancia previamente medida y almacenada.
10. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde los uno o más procesadores (120) están configurados además para:
determinar una dirección del sensor (113) de imagen en relación con el primer marcador basándose en la primera imagen; y en donde:
cambiar (808) el al menos un parámetro de calibración se basa además en la dirección.
11. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde cambiar (808) el al menos un parámetro de calibración basándose en la primera distancia comprende:
determinar una segunda distancia del sensor (113) de imagen a la primera lente (620) basándose en la primera distancia y en una ubicación conocida del primer marcador en la primera lente (620); y
cambiar el al menos un parámetro de calibración del algoritmo de seguimiento ocular utilizado con el dispositivo de seguimiento ocular basándose en la segunda distancia.
12. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde al menos uno del al menos un parámetro de calibración se selecciona de un grupo que consiste en:
un parámetro de formación de imágenes;
una distancia focal;
un parámetro de distorsión; y
un parámetro de iluminación.
13. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde el primer marcador (610) comprende una selección de un grupo que consiste en:
una marca de cruz;
un patrón de puntos;
un punto;
una línea; y
una forma geométrica;
o en donde el primer marcador (610) comprende un elemento iluminado.
14. El casco (400) de realidad virtual o realidad aumentada ponible de la reivindicación 1, en donde:
el casco (400) comprende además un espejo caliente que comprende un segundo marcador; una de la primera imagen o una segunda imagen recibida del sensor (113) de imagen muestra el segundo marcador; y
el uno o más procesadores (120) están configurados además para:
determinar una segunda distancia del sensor (113) de imagen al segundo marcador basándose en la una de la primera imagen o la segunda imagen que muestra el segundo marcador; y
cambiar al menos un parámetro de calibración del algoritmo de seguimiento ocular utilizado con el dispositivo de seguimiento ocular basándose en la segunda distancia.
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201862631196P | 2018-02-15 | 2018-02-15 | |
PCT/EP2019/053853 WO2019158709A1 (en) | 2018-02-15 | 2019-02-15 | Systems and methods for eye tracking in virtual reality and augmented reality applications |
Publications (1)
Publication Number | Publication Date |
---|---|
ES2957329T3 true ES2957329T3 (es) | 2024-01-17 |
Family
ID=65440988
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
ES19705518T Active ES2957329T3 (es) | 2018-02-15 | 2019-02-15 | Sistemas y métodos para el seguimiento ocular en aplicaciones de realidad virtual y de realidad aumentada |
Country Status (5)
Country | Link |
---|---|
US (4) | US20190253700A1 (es) |
EP (1) | EP3752897B1 (es) |
CN (6) | CN110162167B (es) |
ES (1) | ES2957329T3 (es) |
WO (1) | WO2019158709A1 (es) |
Families Citing this family (22)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN109101110A (zh) * | 2018-08-10 | 2018-12-28 | 北京七鑫易维信息技术有限公司 | 一种操作指令执行方法、装置、用户终端及存储介质 |
US20200125169A1 (en) * | 2018-10-18 | 2020-04-23 | Eyetech Digital Systems, Inc. | Systems and Methods for Correcting Lens Distortion in Head Mounted Displays |
US20200234401A1 (en) * | 2019-01-22 | 2020-07-23 | Varjo Technologies Oy | Display apparatus and method of producing images using rotatable optical element |
GB2581792B (en) * | 2019-02-25 | 2023-01-04 | Mo Sys Engineering Ltd | Lens calibration system |
SE1951103A1 (en) | 2019-09-30 | 2020-12-15 | Tobii Ab | Methods and systems for a head-mounted device for updating an eye tracking model |
IL269809B (en) * | 2019-10-03 | 2021-12-01 | Eyejets Ltd | A compact retinal scanning device for tracking pupil movements of a user's eye and its applications |
CN110908509B (zh) * | 2019-11-05 | 2022-11-22 | Oppo广东移动通信有限公司 | 多增强现实设备的协作方法及装置、电子设备、存储介质 |
CN113341563A (zh) * | 2020-02-18 | 2021-09-03 | 宏星技术股份有限公司 | 头戴式显示器 |
CN113467605B (zh) * | 2020-03-31 | 2024-04-02 | 托比股份公司 | 用于对可视化数据进行预处理的方法、计算机程序产品和处理电路系统 |
US11520152B1 (en) * | 2020-08-06 | 2022-12-06 | Apple Inc. | Head-mounted display systems with gaze tracker alignment monitoring |
CN112304335B (zh) * | 2020-09-28 | 2022-09-13 | 北京天玛智控科技股份有限公司 | 液压支架倾角传感器校准方法和系统 |
SE2051433A1 (en) | 2020-12-08 | 2022-06-09 | Tobii Ab | Method and system for glint classification |
GB2608789B (en) * | 2021-06-14 | 2024-02-07 | Trulife Optics Ltd | Optical system for eye tracking |
CN113610984B (zh) * | 2021-06-16 | 2023-06-16 | 南京邮电大学 | 一种基于Hololens2全息眼镜的增强现实方法 |
EP4321923A4 (en) * | 2021-08-05 | 2024-10-30 | Samsung Electronics Co., Ltd. | Augmented reality device and method for detecting gaze of user |
US20240411134A1 (en) | 2021-10-19 | 2024-12-12 | Semiconductor Energy Laboratory Co., Ltd. | Optical device |
SE545952C2 (en) * | 2022-03-31 | 2024-03-26 | Tobii Ab | Dynamic Camera Rotation Calibration |
SE2350237A1 (en) | 2023-03-02 | 2024-09-03 | Tobii Ab | Eye tracking glasses |
SE2350314A1 (en) | 2023-03-21 | 2024-09-22 | Tobii Ab | An eye tracking system and methods of using an eye tracking system |
SE2350538A1 (en) | 2023-05-03 | 2024-11-04 | Tobii Ab | Iris detection and eye gaze tracking |
SE2350840A1 (en) | 2023-07-05 | 2025-01-06 | Tobii Ab | A method and a system for determining gaze convergence distance for a user of an eye tracking system |
CN116679834B (zh) * | 2023-08-02 | 2023-10-24 | 南昌大藏科技有限公司 | 一种大空间的多人vr互动体验系统及方法 |
Family Cites Families (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US6204828B1 (en) | 1998-03-31 | 2001-03-20 | International Business Machines Corporation | Integrated gaze/manual cursor positioning system |
WO2001088680A1 (de) | 2000-05-16 | 2001-11-22 | Swisscom Mobile Ag | Verfahren und terminal zur eingabe von instruktionen |
AU2002215929A1 (en) * | 2000-10-07 | 2002-04-22 | Physoptics Opto-Electronic Gmbh | Device and method for determining the orientation of an eye |
CN101064780B (zh) * | 2006-04-30 | 2012-07-04 | 台湾新力国际股份有限公司 | 利用透镜失真校正的影像接合准确度改善方法及装置 |
CN101951990A (zh) * | 2007-12-23 | 2011-01-19 | Oraya治疗公司 | 检测、控制和预测辐射传输的方法和装置 |
JP4753192B2 (ja) * | 2008-06-27 | 2011-08-24 | Nec液晶テクノロジー株式会社 | 位置合わせ用マーカ、それを用いた表示装置およびその製造方法 |
BR112012023787B1 (pt) * | 2010-03-22 | 2021-08-10 | Koninklijke Philips N.V. | Sistema para rastrear o ponto de olhar de um observador observando um objeto e método para rastrear o ponto de olhar de um observador observando um objeto |
JP5260703B2 (ja) * | 2011-06-10 | 2013-08-14 | パナソニック株式会社 | 3次元測定方法 |
CN202134159U (zh) * | 2011-07-15 | 2012-02-01 | 上海东港安全印刷有限公司 | 外显性防伪印刷全息膜 |
US10013053B2 (en) | 2012-01-04 | 2018-07-03 | Tobii Ab | System for gaze interaction |
JP5907250B2 (ja) * | 2012-03-22 | 2016-04-26 | ソニー株式会社 | 表示装置、画像処理装置及び画像処理方法、並びにコンピューター・プログラム |
US10231614B2 (en) * | 2014-07-08 | 2019-03-19 | Wesley W. O. Krueger | Systems and methods for using virtual reality, augmented reality, and/or a synthetic 3-dimensional information for the measurement of human ocular performance |
WO2014134623A1 (en) | 2013-03-01 | 2014-09-04 | Tobii Technology Ab | Delay warp gaze interaction |
KR101926942B1 (ko) * | 2013-09-03 | 2019-03-07 | 토비 에이비 | 휴대용 눈 추적 디바이스 |
US10310597B2 (en) * | 2013-09-03 | 2019-06-04 | Tobii Ab | Portable eye tracking device |
CN103760973B (zh) * | 2013-12-18 | 2017-01-11 | 微软技术许可有限责任公司 | 增强现实的信息细节 |
US10228562B2 (en) * | 2014-02-21 | 2019-03-12 | Sony Interactive Entertainment Inc. | Realtime lens aberration correction from eye tracking |
US9684827B2 (en) * | 2014-03-26 | 2017-06-20 | Microsoft Technology Licensing, Llc | Eye gaze tracking based upon adaptive homography mapping |
JP2017527036A (ja) * | 2014-05-09 | 2017-09-14 | グーグル インコーポレイテッド | セキュアなモバイル通信で眼信号を用いるためのシステムおよび方法 |
US20170220225A1 (en) * | 2014-06-02 | 2017-08-03 | Apelab Sarl | A method and system for providing interactivity within a virtual environment |
US10416760B2 (en) * | 2014-07-25 | 2019-09-17 | Microsoft Technology Licensing, Llc | Gaze-based object placement within a virtual reality environment |
US20160147408A1 (en) * | 2014-11-25 | 2016-05-26 | Johnathan Bevis | Virtual measurement tool for a wearable visualization device |
CN104656890A (zh) * | 2014-12-10 | 2015-05-27 | 杭州凌手科技有限公司 | 虚拟现实智能投影手势互动一体机及互动实现方法 |
US10437327B2 (en) * | 2015-05-08 | 2019-10-08 | Apple Inc. | Eye tracking device and method for operating an eye tracking device |
US10678890B2 (en) * | 2015-08-06 | 2020-06-09 | Microsoft Technology Licensing, Llc | Client computing device health-related suggestions |
US10101803B2 (en) * | 2015-08-26 | 2018-10-16 | Google Llc | Dynamic switching and merging of head, gesture and touch input in virtual reality |
KR20180057668A (ko) * | 2015-09-24 | 2018-05-30 | 토비 에이비 | 눈 추적 가능한 웨어러블 디바이스들 |
IL258705B (en) * | 2015-10-20 | 2022-07-01 | Magic Leap Inc | Selecting virtual objects in a three-dimensional space |
US10021373B2 (en) * | 2016-01-11 | 2018-07-10 | Microsoft Technology Licensing, Llc | Distributing video among multiple display zones |
CN105824409A (zh) * | 2016-02-16 | 2016-08-03 | 乐视致新电子科技(天津)有限公司 | 虚拟现实的交互控制方法及装置 |
JP6630607B2 (ja) * | 2016-03-28 | 2020-01-15 | 株式会社バンダイナムコエンターテインメント | シミュレーション制御装置及びシミュレーション制御プログラム |
CN105892675A (zh) * | 2016-04-26 | 2016-08-24 | 乐视控股(北京)有限公司 | 基于手柄控制虚拟现实头盔的方法、装置及系统 |
CN106527689A (zh) * | 2016-10-13 | 2017-03-22 | 广州视源电子科技股份有限公司 | 虚拟现实系统的用户界面交互方法和系统 |
CN107515466B (zh) * | 2017-08-14 | 2019-11-26 | 华为技术有限公司 | 一种眼球追踪系统和眼球追踪方法 |
US11112613B2 (en) * | 2017-12-18 | 2021-09-07 | Facebook Technologies, Llc | Integrated augmented reality head-mounted display for pupil steering |
US10782527B2 (en) * | 2017-12-27 | 2020-09-22 | North Inc. | Methods and apparatus to identify lenses of head-wearable apparatus |
-
2018
- 2018-12-26 US US16/232,398 patent/US20190253700A1/en not_active Abandoned
-
2019
- 2019-02-15 CN CN201910118134.6A patent/CN110162167B/zh active Active
- 2019-02-15 CN CN201910117806.1A patent/CN110163917A/zh active Pending
- 2019-02-15 ES ES19705518T patent/ES2957329T3/es active Active
- 2019-02-15 CN CN201920205087.4U patent/CN210166824U/zh active Active
- 2019-02-15 EP EP19705518.9A patent/EP3752897B1/en active Active
- 2019-02-15 CN CN201910117811.2A patent/CN110162166A/zh active Pending
- 2019-02-15 CN CN201910118137.XA patent/CN110162168B/zh active Active
- 2019-02-15 CN CN201910117784.9A patent/CN110162165B/zh active Active
- 2019-02-15 US US16/970,549 patent/US11622103B2/en active Active
- 2019-02-15 WO PCT/EP2019/053853 patent/WO2019158709A1/en unknown
-
2020
- 2020-06-30 US US16/917,657 patent/US11665333B2/en active Active
-
2023
- 2023-02-24 US US18/174,079 patent/US11917126B2/en active Active
Also Published As
Publication number | Publication date |
---|---|
CN110162165A (zh) | 2019-08-23 |
EP3752897B1 (en) | 2023-08-02 |
US20230217008A1 (en) | 2023-07-06 |
CN210166824U (zh) | 2020-03-20 |
CN110162168A (zh) | 2019-08-23 |
WO2019158709A1 (en) | 2019-08-22 |
US11622103B2 (en) | 2023-04-04 |
CN110162168B (zh) | 2024-02-20 |
US20210076026A1 (en) | 2021-03-11 |
CN110163917A (zh) | 2019-08-23 |
CN110162165B (zh) | 2024-06-21 |
CN110162167A (zh) | 2019-08-23 |
US20210109591A1 (en) | 2021-04-15 |
US11665333B2 (en) | 2023-05-30 |
US11917126B2 (en) | 2024-02-27 |
US20190253700A1 (en) | 2019-08-15 |
CN110162167B (zh) | 2024-05-03 |
EP3752897A1 (en) | 2020-12-23 |
CN110162166A (zh) | 2019-08-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
ES2957329T3 (es) | Sistemas y métodos para el seguimiento ocular en aplicaciones de realidad virtual y de realidad aumentada | |
US20220147141A1 (en) | Eye-tracking enabled wearable devices | |
CN113729611B (zh) | 使用眼球中心位置的眼睛追踪 | |
US10565446B2 (en) | Eye-tracking enabled wearable devices | |
US10852817B1 (en) | Eye tracking combiner having multiple perspectives | |
CN111771179A (zh) | 用于确定显示器与用户的眼睛之间的配准的显示系统和方法 | |
US10360450B2 (en) | Image capturing and positioning method, image capturing and positioning device | |
US20170172406A1 (en) | Methods and Apparatus for Optical Controller | |
JP7388349B2 (ja) | 情報処理装置、情報処理方法、及びプログラム | |
WO2015083524A1 (ja) | 計測装置及び計測方法 | |
CN114424147A (zh) | 利用一个或多个眼睛跟踪相机确定眼睛旋转中心 | |
JP2016207145A (ja) | ウェアラブル装置、制御方法及び制御プログラム | |
JP2022113973A (ja) | 表示方法、表示装置、及び、プログラム | |
JP6817350B2 (ja) | ウェアラブル装置、制御方法及び制御プログラム | |
CN115516853A (zh) | 信息处理装置、信息处理方法、用于头戴式显示器的壳体和头戴式显示器系统 |