ES2962152T3 - Determinar la pose del contenido de una pieza de contenido virtual - Google Patents

Determinar la pose del contenido de una pieza de contenido virtual Download PDF

Info

Publication number
ES2962152T3
ES2962152T3 ES17818540T ES17818540T ES2962152T3 ES 2962152 T3 ES2962152 T3 ES 2962152T3 ES 17818540 T ES17818540 T ES 17818540T ES 17818540 T ES17818540 T ES 17818540T ES 2962152 T3 ES2962152 T3 ES 2962152T3
Authority
ES
Spain
Prior art keywords
pose
content
anchor
determining
piece
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
Application number
ES17818540T
Other languages
English (en)
Inventor
José Araujo
Zeid Al-Husseiny
Herranz Aitor Hernandez
Lars Andersson
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Telefonaktiebolaget LM Ericsson AB
Original Assignee
Telefonaktiebolaget LM Ericsson AB
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Telefonaktiebolaget LM Ericsson AB filed Critical Telefonaktiebolaget LM Ericsson AB
Application granted granted Critical
Publication of ES2962152T3 publication Critical patent/ES2962152T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/006Mixed reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/011Arrangements for interaction with the human body, e.g. for user immersion in virtual reality
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/002Specific input/output arrangements not covered by G06F3/01 - G06F3/16
    • G06F3/005Input arrangements through a video camera
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/01Input arrangements or combined input and output arrangements for interaction between user and computer
    • G06F3/03Arrangements for converting the position or the displacement of a member into a coded form
    • G06F3/0304Detection arrangements using opto-electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T19/00Manipulating 3D models or images for computer graphics
    • G06T19/003Navigation within 3D models or images
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/20Analysis of motion
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00Image analysis
    • G06T7/70Determining position or orientation of objects or cameras

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Human Computer Interaction (AREA)
  • Software Systems (AREA)
  • Computer Vision & Pattern Recognition (AREA)
  • Computer Hardware Design (AREA)
  • Computer Graphics (AREA)
  • Multimedia (AREA)
  • Radar, Positioning & Navigation (AREA)
  • Remote Sensing (AREA)
  • Processing Or Creating Images (AREA)
  • User Interface Of Digital Computer (AREA)

Abstract

Se proporciona un método para determinar la pose del contenido de una pieza de contenido virtual. El método se realiza en un determinador de postura y comprende los pasos de: adquirir una primera postura de anclaje del dispositivo de anclaje; determinar una primera pose de contenido, que es una pose de una pieza de contenido virtual, en relación con la primera pose de anclaje; almacenar la primera pose de contenido en relación con la primera pose de anclaje; determinar que un dispositivo de usuario necesita determinar una pose de contenido de la pieza de contenido virtual; adquirir una segunda postura de anclaje del dispositivo de anclaje; recuperar la primera pose de contenido almacenada; determinar una segunda pose de contenido de la pieza de contenido virtual basándose en la primera pose de contenido y la segunda pose de anclaje; y representar la pieza de contenido virtual en la segunda pose de contenido en un dispositivo de usuario que comprende una pantalla. (Traducción automática con Google Translate, sin valor legal)

Description

DESCRIPCIÓN
Determinar la pose del contenido de una pieza de contenido virtual
Campo técnico
La invención se refiere a un método, determinantes de pose, un programa informático y un producto de programa informático para determinar la pose de un contenido virtual.
Antecedentes
Se prevé que la realidad mixta (MR) se convierta en una tecnología integral en la sociedad interconectada y revolucione potencialmente el mercado de la electrónica de consumo. La realidad mixta abarca la Realidad Aumentada (AR) y la Virtualidad Aumentada (AV).
AR se utiliza aquí para denotar el concepto de presentar a un usuario una combinación de objetos del mundo real y contenido renderizado por ordenador. Específicamente, una implementación de AR implica colocar uno o más objetos virtuales en capas frente a la realidad, en la visión del mundo del usuario a través de una pantalla montada en la cabeza (HMD) transparente. Una aplicación de la AR es permitir a los usuarios ver e interactuar de forma remota y en 3D (tres dimensiones), como si cada participante compartiera el mismo espacio físico. Por lo tanto, la comunicación y la interacción remotas podrían llegar a ser tan naturales como la comunicación cara a cara. En AV, el usuario ve objetos del mundo real capturados por una cámara HMD y posteriormente presentados en la pantalla junto con contenido renderizado por ordenador. Por lo tanto, en AV, la pantalla no es transparente.
En 2016, Microsoft lanzó Hololens, una AR HMD móvil. Otras empresas, incluidas Meta y Magic Leap, están lanzando otros HMD, que mejorarán aún más la tecnología AR.
En la realidad virtual (VR), un usuario se sumerge en un entorno virtual donde todo el contenido es virtual. Algunas de las aplicaciones de la VR son juegos, consumo de vídeo en vivo de 360 grados de conciertos, deportes, etc., fines educativos y de formación, entre otras. El contenido de realidad virtual se muestra a través de una HMD no transparente como, por ejemplo, Oculus Rift, HTC Vive, Google Daydream o Samsung GearVR.
Cuando una pieza de contenido virtual para MR o VR debe colocarse a la vista de un usuario, esta pieza de contenido virtual se coloca en una pose de contenido. Pose define tanto la posición (en tres dimensiones) como la orientación (en tres dimensiones).
En la técnica anterior, en dispositivos como Microsoft HoloLens o Google Tango, el contenido virtual se almacena y se adjunta a ciertas características visuales (anclajes espaciales) que los dispositivos pueden detectar usando una cámara del dispositivo. Cuando el usuario regresa a la misma ubicación, se realiza una búsqueda y coincidencia visual para relacionar las características visuales actuales observadas por la cámara del dispositivo y las características visuales almacenadas previamente. Un problema con esta solución es que requiere mucha computación, ya que el dispositivo debe inspeccionar el entorno (usando varias cámaras como es el caso de las Hololens) y realizar un análisis detallado de la imagen para inferir características visuales específicas y realizar la comparación, lo que incluye contenido de todos los lugares visitados anteriormente. Esto requiere una cantidad significativa de potencia de procesamiento y, por lo tanto, agota la batería.
El documento US2014/063060 se refiere a un método en un dispositivo habilitado para realidad aumentada para representar un segmento de superficie identificando al menos un objeto de referencia de una escena de entrada de cámara recibida y luego recibiendo una entrada que define un segmento de superficie con respecto a al menos un objeto de referencia.
Compendio
Es un objeto proporcionar una forma más eficiente de determinar la pose del contenido virtual. Según un primer aspecto, se proporciona un método para determinar una pose de contenido de una pieza de contenido virtual. El método se realiza en un determinante de pose y comprende los pasos de: adquirir una primera pose de anclaje del dispositivo de anclaje; determinar una primera pose de contenido, que es una pose de una pieza de contenido virtual, en relación con la primera pose de anclaje; almacenar la primera pose de contenido en relación con la primera pose de anclaje; determinar que un dispositivo de usuario necesita determinar una pose de contenido de la pieza de contenido virtual; adquirir una segunda pose de anclaje del dispositivo de anclaje; recuperar la primera pose de contenido almacenada; determinar una segunda pose de contenido de la pieza de contenido virtual basándose en la primera pose de contenido y la segunda pose de anclaje; y representar la pieza de contenido virtual en la segunda pose de contenido en un dispositivo de usuario que comprende una pantalla.
El método comprende además los pasos de: adquirir un indicador de incertidumbre de pose, que indica un grado de incertidumbre de la pose del dispositivo de anclaje: y determinar una segunda pose de contenido basándose en características visuales capturadas por una cámara del dispositivo de usuario, cotejando las características visuales con las poses de características almacenadas correspondientes. En tal caso, el paso de determinar una segunda pose de contenido basada en la primera pose de contenido se realiza cuando el indicador de incertidumbre es menor que un valor umbral; y el paso de determinar una segunda pose de contenido basada en características visuales se realiza cuando el indicador de incertidumbre es mayor que el valor umbral. El valor umbral puede depender del contenido virtual.
El método puede comprender además el paso de: ajustar el umbral en función de un reposicionamiento identificado de la pieza de contenido virtual.
El método puede comprender además el paso de: adquirir una bandera de movimiento que indique que el dispositivo de anclaje se ha movido desde que capturó la primera pose de anclaje. En tal caso, la determinación de si se debe realizar el paso de determinar un segundo contenido basándose en la pose del primer contenido o el paso de determinar un segundo contenido basándose en características visuales, se basa también en la bandera de movimiento.
El método puede comprender además los pasos de: adquirir una señal de movimiento que indique que el dispositivo de anclaje se ha movido desde que capturó la primera pose de anclaje; y determinar una segunda pose de contenido basada en características visuales capturadas por una cámara del dispositivo de usuario, cotejando las características visuales con las correspondientes poses de características almacenadas. En tal caso, el paso de determinar una segunda pose de contenido basada en la primera pose de contenido se realiza cuando la bandera de movimiento indica que no hay movimiento; y el paso de determinar una segunda pose de contenido basada en características visuales se realiza cuando la bandera de movimiento indica movimiento.
El paso de adquirir una primera pose de anclaje puede comprender recibir la primera pose de anclaje en un sistema de coordenadas del dispositivo de anclaje y determinar la primera pose de anclaje en un sistema de coordenadas del dispositivo de usuario; el paso de almacenar la primera pose del contenido puede comprender determinar la primera pose del contenido en el sistema de coordenadas del dispositivo de anclaje antes del almacenamiento; el paso de adquirir la segunda pose de anclaje puede comprender recibir la segunda pose de anclaje en un sistema de coordenadas del dispositivo de anclaje; y el paso de determinar una segunda pose del contenido puede comprender determinar la pose del dispositivo de anclaje en el sistema de coordenadas del dispositivo de usuario.
Según un segundo aspecto, se proporciona un determinante de pose para determinar una pose de contenido de una pieza de contenido virtual. La determinación de la pose comprende: un procesador; y una memoria que almacena instrucciones que, cuando las ejecuta el procesador, hacen que el determinante de pose: adquiera una primera pose de anclaje del dispositivo de anclaje; determine una primera pose de contenido, que es una pose de una pieza de contenido virtual, en relación con la primera pose de anclaje; almacene la primera pose de contenido en relación con la primera pose de anclaje; determine que un dispositivo de usuario necesita determinar una pose de contenido de la pieza de contenido virtual; adquiera una segunda pose de anclaje del dispositivo de anclaje; recupere la primera pose del contenido almacenado; determine una segunda pose de contenido de la pieza de contenido virtual basándose en la primera pose de contenido y la segunda pose de anclaje; y represente la pieza de contenido virtual en la segunda pose de contenido en un dispositivo de usuario que comprende una pantalla.
El determinante de pose comprende además instrucciones que, cuando las ejecuta el procesador, hacen que el determinante de pose: adquiera un indicador de incertidumbre de pose, que indica un grado de incertidumbre de la pose del dispositivo de anclaje: y determine una segunda pose de contenido basándose en las características visuales capturadas mediante una cámara del dispositivo de usuario, cotejando las características visuales con las correspondientes poses de características almacenadas. En tal caso, las instrucciones para determinar una segunda pose de contenido basándose en la primera pose de contenido se ejecutan cuando el indicador de incertidumbre es menor que un valor umbral; y las instrucciones para determinar una segunda pose de contenido basándose en características visuales se ejecutan cuando el indicador de incertidumbre es mayor que el valor umbral.
El valor umbral puede depender del contenido virtual.
El determinante de pose puede comprender además instrucciones que, cuando las ejecuta el procesador, hacen que el determinante de pose: ajuste el umbral basándose en un reposicionamiento identificado de la pieza de contenido virtual.
El determinante de pose puede comprender además instrucciones que, cuando las ejecuta el procesador, hacen que el determinante de pose: adquiera una bandera de movimiento que indique que el dispositivo de anclaje se ha movido desde la captura de la primera pose de anclaje. En tal caso, la determinación de si se deben ejecutar las instrucciones para determinar un segundo contenido basándose en la pose del primer contenido o las instrucciones para determinar un segundo contenido basándose en características visuales, se basa también en la bandera de movimiento.
El determinante de pose puede comprender además instrucciones que, cuando las ejecuta el procesador, hacen que el determinante de pose: adquiera una bandera de movimiento que indique que el dispositivo de anclaje se ha movido desde la captura de la primera pose de anclaje; y determinar una segunda pose de contenido basándose en características visuales capturadas por una cámara del dispositivo de usuario, cotejando las características visuales con las correspondientes poses de características almacenadas. En tal caso, las instrucciones para determinar una segunda pose de contenido basada en la primera pose de contenido se ejecutan cuando la bandera de movimiento indica que no hay movimiento; y las instrucciones para determinar una segunda pose de contenido basada en características visuales se ejecutan cuando la bandera de movimiento indica movimiento.
Las instrucciones para adquirir una primera pose de anclaje pueden comprender instrucciones que, cuando son ejecutadas por el procesador, hacen que el determinante de pose reciba la primera pose de anclaje en un sistema de coordenadas del dispositivo de anclaje, y determinar la primera pose de anclaje en un sistema de coordenadas del dispositivo de usuario; las instrucciones para almacenar la primera pose del contenido pueden comprender instrucciones que, cuando las ejecuta el procesador, hacen que el determinante de pose determine la primera pose del contenido en el sistema de coordenadas del dispositivo de anclaje antes del almacenamiento; las instrucciones para adquirir la segunda pose de anclaje pueden comprender instrucciones que, cuando las ejecuta el procesador, hacen que el determinante de pose reciba la segunda pose de anclaje en un sistema de coordenadas del dispositivo de anclaje; y las instrucciones para determinar una segunda pose de contenido pueden comprender instrucciones que, cuando las ejecuta el procesador, hacen que el determinante de pose determine la pose del dispositivo de anclaje en el sistema de coordenadas del dispositivo de usuario.
Según un tercer aspecto, se proporciona un programa informático para determinar la pose del contenido de una pieza de contenido virtual. El programa informático comprende un código de programa informático que, cuando se ejecuta en un determinante de pose, hace que el determinante de pose realice el método según el primer aspecto.
Según un cuarto aspecto, se proporciona un producto de programa informático que comprende un programa informático según el tercer aspecto y un medio legible por ordenador en donde se almacena el programa informático.
Generalmente, todos los términos utilizados en las reivindicaciones deben interpretarse según su significado habitual en el campo técnico, a menos que se defina explícitamente lo contrario en el presente documento. Todas las referencias a "un/uno/el elemento, aparato, componente, medio, paso, etc." deben interpretarse abiertamente como una referencia a al menos una instancia del elemento, aparato, componente, medio, paso, etc., a menos que se indique explícitamente lo contrario. Los pasos de cualquier método descrito en este documento no tienen que realizarse en el orden exacto descrito, a menos que se indique explícitamente.
Breve descripción de los dibujos
La invención se describe ahora, a modo de ejemplo, con referencia a los dibujos adjuntos, en el que:
la Fig. 1 es un diagrama esquemático que ilustra un entorno en donde se pueden aplicar las realizaciones aquí presentadas;
las Fig. 2A-B son diagramas esquemáticos que ilustran realizaciones en donde se puede implementar el determinante de pose;
las Fig. 3A-B son diagramas de flujo que ilustran realizaciones de métodos para determinar la pose del contenido de una pieza de contenido virtual;
la Fig. 4 es un diagrama esquemático que muestra módulos funcionales del determinante 1 de pose de las Fig. 2A-B según una realización;
la Fig. 5 es un diagrama esquemático que ilustra los componentes del determinante 1 de pose de las Fig. 2A-B; y
la Fig. 6 muestra un ejemplo de un producto de programa informático que comprende medios legibles por ordenador.
Descripción detallada
La invención se describirá ahora más completamente a continuación con referencia a los dibujos adjuntos, en donde se muestran ciertas realizaciones de la invención. Sin embargo, esta invención puede realizarse de muchas formas diferentes y no debe considerarse limitada a las realizaciones aquí expuestas; más bien, estas realizaciones se proporcionan a modo de ejemplo para que esta descripción sea minuciosa y completa, y transmita plenamente el alcance de la invención a los expertos en la técnica. Los números similares se refieren a elementos similares en toda la descripción.
Las realizaciones presentadas en el presente documento se basan en la explotación de dispositivos externos, denominados dispositivos de anclaje, que tienen datos de pose para determinar la pose del contenido para una pieza de contenido virtual. Más específicamente, la pose del contenido de una pieza de contenido virtual primero se ancla en relación con (es decir, su posición se determina en relación con) un dispositivo de anclaje, en una habitación u otro espacio físico bien definido, y se almacena. Posteriormente, cuando se vuelve a ingresar al espacio, al obtener una posición actual del dispositivo de anclaje, se puede determinar la pose del contenido actual en base a la pose del contenido almacenado y la posición actual del dispositivo de anclaje. Cuando la pose del contenido se determina de esta manera, no se necesita la coincidencia de características visuales que requieren muchos recursos, lo que reduce el uso de recursos y el tiempo necesario para determinar la pose del contenido.
La Fig. 1 es un diagrama esquemático que ilustra un entorno en donde se pueden aplicar las realizaciones presentadas en el presente documento. El entorno que se muestra en la Fig. 1 se utiliza para MR o VR, donde un usuario 5 usa un dispositivo 2 de usuario, tal como una pantalla montada en la cabeza (HMD). Cuando se utiliza para RM, el dispositivo 2 de usuario permite al usuario 5 ver tanto los objetos 11-15 del mundo real como los objetos 10a-10b virtuales. Un primer objeto 10a virtual es un árbol de Navidad virtual. Un segundo objeto 10b virtual es una pantalla virtual, por ejemplo para mostrar imágenes, secuencias de vídeo o jugar juegos.
Cuando se usa para VR, el dispositivo 2 de usuario permite que el usuario 5 solo vea los objetos 10a-10b virtuales. El dispositivo 2 de usuario contiene sensores (por ejemplo, acelerómetros, giroscopios, etc.), por ejemplo como parte de una unidad de medida de inercia (IMU). Esto lo utiliza el dispositivo de usuario para determinar la posición y orientación del dispositivo 2 de usuario en un espacio tridimensional. La posición y la orientación se conocen de manera colectiva como pose. En este documento, las poses se denominan P(i, j), donde i es una etiqueta del elemento y j es una etiqueta del sistema de coordenadas. La pose es un vector de 6 elementos, que comprende una posición 3D (x,y,z) y una orientación (giro, cabeceo, guiñada).
El dispositivo 2 de usuario comprende una o más cámaras 20 para capturar imágenes del entorno alrededor del usuario 5. Cada cámara 20 puede estar en el rango de luz visible (también conocido como RGB, rojo verde azul) y/o el rango de infrarrojos, y puede incluso ser cámaras térmicas.
El dispositivo 2 de usuario está conectado a una red 9. La red 9 puede, por ejemplo. ser una red de área local (LAN) y/o una red de área amplia (WAN), como Internet. La conexión entre el dispositivo 2 de usuario y la red 9 puede basarse en tecnología inalámbrica, tal como WiFi (cualquiera de los estándares IEEE 802.11x), Bluetooth, etc. Alternativa o adicionalmente, la conexión entre el dispositivo 2 de usuario y la red se basa en una conexión de red celular, por ejemplo que cumple con cualquiera o una combinación de 5G NR (Nueva Radio), LTE (Evolución a Largo Plazo), LTE-Advanced, W-CDMA (Múltiplex de División de Código de Banda Ancha), EDGE (Evolución de Velocidad de Datos Mejorada para GSM (Sistema Global para Comunicaciones Móviles)), GPRS (Servicio General de Radio por Paquetes), CDMA2000 (Acceso Múltiple por División de Código 2000) o cualquier otra red inalámbrica actual o futura. Un servidor 3 también está conectado a la red 9.
Cerca del usuario, hay un dispositivo 4 de anclaje. El dispositivo 4 de anclaje es un dispositivo electrónico que es capaz de determinar su pose (por ejemplo, con la ayuda de una IMU) y puede comunicar su pose a otros dispositivos. El dispositivo 4 de anclaje puede tener otros fines principales además de actuar como dispositivo de anclaje. Por ejemplo, el dispositivo 4 de anclaje se puede implementar como un altavoz inteligente, un ordenador, una lámpara inteligente, un frigorífico inteligente, una lavadora inteligente, una máquina de café inteligente, etc. Puede haber más de un dispositivo 4 de anclaje. Cada dispositivo 4 de anclaje puede ser un dispositivo esencialmente estático, como un frigorífico inteligente o una lavadora inteligente, o un dispositivo más móvil, como un asistente digital personal o un altavoz inteligente. En tal situación, se puede preferir un dispositivo estático.
Alrededor del usuario, hay varios elementos visuales, tales como una puerta 11 y un marco 12 de puerta. Además, hay elementos visuales adicionales tales como una línea 13 de piso, una esquina 14 entre paredes y una línea 15 de techo.
Cuando se usan características visuales para la determinación de la pose, complementando la determinación de la pose usando el dispositivo 4 de anclaje, los datos del entorno (bidimensionales o tridimensionales) se obtienen del almacenamiento del dispositivo 2 de usuario y/o del servidor 3. Los elementos clave se identifican en imágenes capturadas y comparadas con los datos del entorno para permitir que el dispositivo 2 de usuario se posicione dentro del entorno, utilizando opcionalmente también datos de la IMU. Los elementos clave pueden ser cualquier subconjunto (o todos) de los elementos 11-15 visuales. Cabe señalar que los elementos visuales varían dependiendo de dónde se encuentre el usuario 5. La correspondencia también puede ocurrir simultáneamente, mediante la cual se actualizan los datos del entorno. Un proceso de aprendizaje de un área mientras se realiza un seguimiento de la posición actual y la orientación de un usuario dentro del área se conoce como localización y correspondencia simultáneos, o SLAM.
El dispositivo 2 de usuario puede, por ejemplo implementarse utilizando un HMD como Microsoft HoloLens u ODG R7/R8/R9. El HMD también puede ser un Oculus Rift o un HTC Vive para aplicaciones de realidad virtual. También es posible que el dispositivo 2 de usuario se implemente usando otro tipo de dispositivo portátil, un teléfono inteligente y/o una tableta, opcionalmente con mejora óptica, por ejemplo Cartón de Google, Mira Prism o similar. El dispositivo 2 de usuario podría ser también un teléfono inteligente como el teléfono Google Tango (Lenovo y Asus) o un teléfono iPhone o Android con ARKit (de Apple) o ARCore (de Google). Cabe señalar que el término "ordenador" utilizado en este documento debe interpretarse como cualquier dispositivo electrónico con capacidades de procesamiento digital, independientemente de su tamaño. Por lo tanto, el término ordenador comprende dispositivos como servidores, ordenadores de escritorio, ordenadores portátiles, tabletas, teléfonos inteligentes, teléfonos móviles, relojes inteligentes, microcontroladores, etc.
Cabe señalar que el entorno de la Fig. 1 es sólo un ejemplo de dónde se pueden aplicar las realizaciones presentadas en el presente documento. Las realizaciones presentadas en el presente documento se pueden aplicar igualmente en otros entornos, como vehículos autónomos, aplicaciones industriales, robótica de interiores, etc.
Las Fig. 2A-B son diagramas esquemáticos que ilustran realizaciones en donde se puede implementar el determinante 1 de pose. El determinante 1 de pose es un dispositivo que determina la pose del contenido para contenido virtual. El determinante 1 de pose se puede implementar como un dispositivo independiente o puede formar parte de un dispositivo anfitrión, como se muestra en las Fig. 2A-B.
En la Fig. 2A, el determinante de pose está implementado en el dispositivo 2 de usuario. El dispositivo 2 de usuario es, por tanto, el dispositivo anfitrión para el determinante 1 de pose. En tal realización, el determinante de pose está provisto de poses de uno o más dispositivos de anclaje, y recupera poses relevantes desde el dispositivo del usuario.
En la Fig. 2B, el determinante de pose está implementado en el servidor 3. El servidor 3 es, por tanto, el dispositivo anfitrión para el determinante 1 de pose. En tal realización, el determinante de pose está provisto de poses no sólo de uno o más dispositivos de anclaje, sino también desde el dispositivo del usuario.
Las Fig. 3A-B son diagramas de flujo que ilustran realizaciones de métodos para determinar la pose del contenido de una pieza de contenido virtual. Los métodos se realizan en el determinante de pose.
El método se inicia cuando se detecta la necesidad de anclar un contenido virtual. Cabe señalar que, si bien los pasos a continuación se refieren a una pieza particular de contenido virtual, todos los pasos que se refieren a la pieza de contenido virtual se pueden ampliar para aplicar a múltiples piezas de contenido virtual.
En un paso 40 deadquirir la primera pose de anclaje,el determinante de pose adquiere una primera pose de anclaje del dispositivo de anclaje, por ejemplo formando parte de una señal recibida desde el dispositivo de anclaje a través de un canal de comunicación inalámbrica. Esto se puede lograr recibiendo la primera pose de anclaje en un sistema de coordenadas del dispositivo de anclaje y determinando la primera pose de anclaje en un sistema de coordenadas del dispositivo de usuario.
En otras palabras, el dispositivo de anclaje transmite su primera pose de anclaje al determinante de pose, estando la primera pose de anclaje en el sistema de coordenadas del dispositivo de anclaje. Denotamos esta pose por P(a, a).
El determinante de pose puede entonces determinar la pose del dispositivo de anclaje en el sistema de coordenadas del dispositivo del usuario, que denotamos por P(a,u). Dicha determinación se puede realizar utilizando diversas tecnologías y métodos de posicionamiento propuestos en la técnica per se, tales como a través de medios visuales (por ejemplo, métodos basados o no basados en marcadores pasivos o activos), medios basados en radio (por ejemplo, WiFi, banda ultra ancha, GPS (Sistema de Posicionamiento Global), etc.), medios de audio, medios electromagnéticos, etc.
Conociendo P(a, a) y P(a, u), se puede calcular la matriz de transformación Tua (transformación del sistema de coordenadas del dispositivo de usuario al dispositivo de anclaje), que relaciona ambas poses, es decir, P(a, a) = Tua * P(a, u). Para determinar un valor robusto de Tua, se pueden determinar varias poses P(a, u), y por ejemplo se puede realizar una estimación de mínimos cuadrados de Tua considerando varios valores de P (a, u).
En un paso 42 dedeterminar la primera pose del contenido,el determinante de pose determina una primera pose de contenido. La primera pose de contenido es una pose de una pieza de contenido virtual, en relación con la primera pose de anclaje. Esto se puede lograr determinando la primera pose del contenido en el sistema de coordenadas del dispositivo de anclaje antes del almacenamiento.
Esto se puede calcular de la siguiente manera. Dado que se conoce la matriz de transformación Tua, la primera pose del contenido de la pieza de contenido virtual se puede transformar en el sistema de coordenadas del dispositivo de usuario en el sistema de coordenadas del dispositivo de anclaje realizando el siguiente cálculo: P(v, a) = Tua * P(v, u).
El valor de P(v, a) ahora se puede utilizar como anclaje para la pieza de contenido virtual al dispositivo de anclaje.
Se pueden realizar las mismas operaciones para las características visuales que se encuentran en el entorno que P(vf, a), donde vf denota "características visuales".
En un paso 44 dealmacenar la primera pose del contenido,el determinante de pose almacena la primera pose de contenido en relación con la primera pose de anclaje, por ejemplo, en el sistema de coordenadas del dispositivo de anclaje.
En un paso 45 dedeterminar la necesidad de determinar la pose del contenido, el determinante de pose determina que el dispositivo de usuario necesita determinar una pose de contenido de la pieza de contenido virtual. La necesidad de determinar la pose del contenido puede ser provocada por la habilitación de un dispositivo de usuario, por ejemplo el dispositivo se enciende, el usuario solicita que se cargue contenido virtual desde la ubicación actual, o el usuario vuelve a ingresar a un espacio físico donde previamente se ha ejecutado el anclaje, como se describe en el presente documento.
En un paso 46 derecibir la segunda pose de anclaje,el determinante de pose adquiere una segunda pose de anclaje del dispositivo de anclaje. La segunda pose de anclaje se puede recibir en un sistema de coordenadas del dispositivo de anclaje. La segunda pose del ancla se denomina P'(a, a). Cuando el anclaje es un dispositivo esencialmente estático, como un frigorífico inteligente, la segunda pose de anclaje muy probablemente será la misma que la primera pose de anclaje, mientras que si el dispositivo de anclaje es más móvil, como una lámpara inteligente, es más probable que el dispositivo de anclaje se haya movido, lo que implica que la segunda pose de anclaje difiere de la primera pose de anclaje.
En un paso 48 derecuperar pose de contenido almacenado,el determinante de pose recupera la primera pose de contenido almacenada, es decir, P(v, a).
En un paso 50 dedeterminar la segunda pose del contenido basándose en la primera pose del contenido,el determinante de pose determina una segunda pose de contenido de la pieza de contenido virtual basándose en la primera pose de contenido y la segunda pose de anclaje. Esto se puede lograr determinando la pose del dispositivo de anclaje en el sistema de coordenadas del dispositivo de usuario.
El determinante de pose determina primero la pose del dispositivo de anclaje en el sistema de coordenadas del dispositivo de usuario P'(a, u) con respecto al sistema de coordenadas del dispositivo de usuario usando técnicas y métodos conocidos en la técnica per se.
Luego se puede calcular una nueva transformación entre los dos sistemas de coordenadas Tua' como se realizó anteriormente, es decir, P'(a, a) = Tua'* P'(a, u). Como nota al margen, si los sistemas de coordenadas del dispositivo de anclaje y del dispositivo de usuario siguen siendo los mismos, la transformación seguirá siendo la misma, en cuyo caso Tua' será la misma que Tua.
La pose de la pieza de contenido virtual con respecto al sistema de coordenadas del dispositivo del usuario se puede determinar cómo P'(v, u) = Tua-1 * P(v, a), donde P(v, a) se ha recuperado del almacenamiento.
En un paso 52 derepresentar, el determinante de pose representa la pieza de contenido virtual en la segunda pose de contenido en un dispositivo de usuario que comprende una pantalla. Esto puede comprender activar la representación real para que se produzca en un dispositivo separado, por ejemplo, cuando el determinante de pose se implementa en el servidor y la representación se realiza utilizando el dispositivo del usuario.
Por lo tanto, el dispositivo de usuario muestra la pieza de contenido virtual usando la pose P'(v, u). La visualización se consigue sin recurrir al emparejamiento visual como en la técnica anterior.
Mirando ahora la Fig. 3B, sólo se describirán pasos nuevos o modificados en comparación con los pasos de la Fig. 3A.
En un paso 47 deadquirir indicador de incertidumbre de pose,el determinante de pose adquiere un indicador de incertidumbre de pose. El indicador de incertidumbre de pose indica un grado de incertidumbre de la pose del dispositivo de anclaje. Como se explica con más detalle a continuación, el indicador de incertidumbre se puede usar para determinar si se debe usar la determinación de la pose del contenido descrita anteriormente o si se debe usar un método convencional (basado en características visuales).
El indicador de incertidumbre se puede calcular mediante varios métodos, que dependen de la tecnología de posicionamiento utilizada. Como ejemplo, si el dispositivo de anclaje posee una IMU para calcular su pose, una IMU se ve afectada por el ruido que puede introducir una deriva de posición que es proporcional a la velocidad al cuadrado y la duración de la aceleración. Por lo tanto, cada vez que el dispositivo de anclaje se mueve, aumenta la incertidumbre sobre su pose.
El indicador de incertidumbre se puede dar por separado con respecto a la posición (x, y, z) y la orientación (giro, cabeceo, guiñada). Esto se debe a que se pueden utilizar diferentes sensores con diferente calidad de estimación para calcular la posición y la orientación, y el dispositivo de anclaje puede cambiar su posición y no la orientación, o viceversa.
En un paso 49 opcional deadquirir bandera de movimiento,el determinante de pose adquiere una bandera de movimiento que indica que el dispositivo de anclaje se ha movido desde la captura de la primera pose de anclaje. La señal de movimiento se puede determinar mediante otros sensores más sencillos, como por ejemplo un sensor de contacto en una estación de acoplamiento que una IMU. Por supuesto, la bandera de movimiento también se puede determinar mediante una IMU. El uso de un sensor de contacto en una estación de acoplamiento se puede aprovechar para restablecer cualquier movimiento detectado. Por ejemplo, si un ordenador portátil que comprende una IMU actúa como dispositivo de anclaje, su movimiento, una vez desacoplado, puede detectarse utilizando la IMU. Una vez que el ordenador portátil se vuelve a acoplar, se restablece todo el movimiento y el indicador de movimiento se puede configurar en "sin movimiento", independientemente de las posibles imprecisiones e incertidumbres acumuladas introducidas por las mediciones de la IMU.
Cabe señalar que el paso 47 se puede realizar sin realizar el paso 49, o se pueden realizar ambos pasos.
En paso 55 condicional opcional deusar pose de contenido almacenado,el determinante de pose determina si se utiliza o no la pose del contenido almacenado. Esto puede basarse en el indicador de incertidumbre, de modo que cuando el indicador de incertidumbre es menor que un valor umbral (es decir, menos incierto que un cierto umbral), se determina utilizar el contenido almacenado. En una realización, cuando hay múltiples dispositivos de anclaje disponibles, el dispositivo o dispositivos de anclaje con la incertidumbre más baja se utilizan para la determinación en este paso y posteriormente en el método.
El valor umbral puede depender del contenido virtual, por ejemplo. el tipo y las propiedades de la pieza de contenido virtual. Por ejemplo, si el contenido virtual se relaciona con un elemento de un juego dinámico que el usuario ha jugado en la sala de estar y el elemento del juego debe mostrarse nuevamente al volver a ingresar al espacio físico, se puede permitir que el objeto del juego esté a una distancia máxima de 50 cm de su posición original. Además, se puede permitir que dicho error no tenga un error de orientación máximo permitido, ya que puede no importar cuál sea la orientación del objeto. Por otro lado, es posible que no se permita que una planta virtual encima de una mesa tenga errores mayores a 10 cm y el error de orientación puede ser pequeño para garantizar que la flor de la planta virtual apunte en la dirección correcta. En otras palabras, el contenido dinámico se puede configurar para permitir una mayor incertidumbre que el contenido estático. Además, el valor umbral puede ser un valor compuesto, que se considera independientemente para la posición y la orientación.
Alternativa o adicionalmente, la determinación de si se debe utilizar la pose del contenido almacenado se basa además también en la bandera de movimiento, por ejemplo cuando no se ha producido ningún movimiento del dispositivo de anclaje, entonces se determina utilizar la pose del contenido almacenado. Cuando hay varios dispositivos de anclaje, se pueden priorizar los dispositivos de anclaje que no se han movido (por ejemplo, ignorando otros dispositivos de anclaje).
El indicador de incertidumbre se puede restablecer cada vez que se informa la pose del ancla al determinante de pose (paso 40 y paso 46), ya que, en tales instantes, el dispositivo puede restablecer su pose y por tanto su incertidumbre.
Cuando se determina utilizar la pose del contenido almacenado, el método procede al paso 50 dedeterminar la segunda pose del contenido basándose en la primera pose del contenido.De lo contrario, el método continúa con el paso 51 dedeterminar la pose del segundo contenido en función de las características visuales.
En el paso 51 dedeterminar la pose del segundo contenido en función de las características visuales,el determinante de pose determina la segunda pose del contenido basándose en características visuales. Las características visuales son capturadas por una cámara del dispositivo del usuario. Las características visuales se comparan con las poses de características almacenadas correspondientes para determinar la segunda pose de la pieza de contenido virtual.
Es posible que sea necesario realizar este paso cuando la segunda pose de contenido que se puede obtener mediante el dispositivo de anclaje no sea lo suficientemente buena.
La pose de las características visuales con respecto al sistema de coordenadas del dispositivo del usuario se puede determinar como P'(vf, u) = Tua-1 * P(vf,a).
Sin embargo, incluso si es incierto, el conocimiento de la pose de las características visuales permite que el determinante de pose estreche significativamente el espacio de búsqueda tanto para las características visuales a buscar como para su ubicación esperada, haciendo también que la coincidencia visual del paso 51 sea significativamente más rápida y más eficiente computacionalmente y por lo tanto más eficiente energéticamente que en la técnica anterior.
En un paso 54 opcional deajustar el umbral,el determinante de pose ajusta el umbral basándose en un reposicionamiento identificado de la pieza de contenido virtual. Por ejemplo, el umbral se puede ajustar dinámicamente según una interacción reconocida del usuario. Por ejemplo, si el usuario reposiciona la pieza de contenido virtual después de mostrarla, el umbral se reduce, según el ajuste del usuario. No es necesario que dicha reducción del umbral corresponda completamente al ajuste del usuario, pero con el tiempo puede compensar el ajuste del usuario. Por ejemplo, si el usuario ajustó la pose de la pieza de contenido virtual mediante X, es decir, X = |Pajustada(v,u) -Poriginal(v,u) |, entonces el umbral se ajusta como umbral = umbral - (X/N), donde N > 1. De esta manera, el umbral se ajusta para volverse cada vez más estricto. N es configurable y se puede establecer en cualquier valor para controlar la agresividad del ajuste del umbral. Una N más baja implica un ajuste del umbral más agresivo. Opcionalmente, cuando se ajusta el umbral se considera el tiempo que tarda el usuario en realizar el ajuste. Por ejemplo, un ajuste rápido implica que el ajuste es significativo e importante para el usuario, en cuyo caso el umbral se ajusta de forma más agresiva. Por otro lado, si el ajuste del usuario lleva mucho tiempo, esto indica que el ajuste es de menor importancia, en cuyo caso el umbral se ajusta de manera menos agresiva o incluso no se ajusta en absoluto.
Otra opción similar que no tiene en cuenta cuánto ha ajustado el usuario el contenido virtual es que umbral = umbral/N, donde N>1. El umbral también se puede ajustar basándose en un ajuste automático, es decir, ajustes no realizados por el usuario. Por ejemplo, una característica visual que coincida usando las imágenes de la cámara se puede activar esporádica o periódicamente (ya que podrían usarse para SLAM) para verificar si el contenido virtual tiene la pose correcta con respecto al mundo real. Esto se puede comprobar comparando la pose del contenido virtual con las características visuales que se han almacenado. Si la discrepancia es demasiado grande, para el tipo de contenido virtual y/o aplicación, se ajusta el umbral.
La Fig. 4 es un diagrama esquemático que muestra módulos funcionales del determinante 1 de pose de las Fig. 2A-B según una realización. Los módulos se implementan usando instrucciones de software tales como un programa informático que se ejecuta en el determinante 1 de pose. Alternativa o adicionalmente, los módulos se implementan usando hardware, tal como uno cualquiera o más de un ASIC (Circuito Integrado de Aplicación Específica), un FPGA (Matriz de Puerta Programable en Campo), o circuitos lógicos discretos. Los módulos corresponden a los pasos de los métodos ilustrados en las Fig. 3A y 3B.
Un primer receptor 70 de pose de anclaje corresponde al paso 40. Un primer determinante 72 de pose de contenido corresponde al paso 42. Un primer almacenador 74 de pose de contenido corresponde al paso 44. Un paso 75 del evaluador de necesidades de pose de contenido corresponde al paso 45. Un segundo receptor 76 de pose de anclaje corresponde al paso 46. Un receptor 77 de indicador de incertidumbre corresponde al paso 47. Un primer recuperador 78 de pose de contenido almacenado corresponde al paso 48. Un adquirente 79 de bandera de movimiento corresponde al paso 49. Un segundo determinante 80 de pose de contenido corresponde al paso 50 y al paso 51. Un representador 82 corresponde al paso 52. Un ajustador 84 de umbral corresponde al paso 54.
La Fig. 5 es un diagrama esquemático que ilustra los componentes del determinante 1 de pose de las Fig. 2A-B. Cabe señalar que uno o más de los componentes mencionados se pueden compartir con el dispositivo anfitrión, como el dispositivo de usuario o el servidor, cuando corresponda. Se proporciona un procesador 60 usando cualquier combinación de uno o más de una unidad central de procesamiento (CPU), multiprocesador, microcontrolador, procesador de señal digital (DSP), circuito integrado de aplicación específica, etc., capaz de ejecutar instrucciones 67 de software almacenadas en una memoria. 64, que por tanto puede ser un producto de programa informático. El procesador 60 puede configurarse para ejecutar el método descrito con referencia a las Fig. 3A-B anteriores.
La memoria 64 puede ser cualquier combinación de memoria de acceso aleatorio (RAM) y memoria de sólo lectura (ROM). La memoria 64 también comprende almacenamiento persistente, que, por ejemplo, puede ser cualquiera o una combinación de memoria magnética, memoria óptica, memoria de estado sólido o incluso memoria montada remotamente.
También se proporciona una memoria 66 de datos para leer y/o almacenar datos durante la ejecución de instrucciones de software en el procesador 60. La memoria 66 de datos puede ser cualquier combinación de memoria de acceso aleatorio (RAM) y memoria de sólo lectura (ROM).
El determinante 1 de pose comprende además una interfaz 62 de E/S para comunicarse con otras entidades externas. Opcionalmente, la interfaz 62 de E/S también incluye una interfaz de usuario.
Otros componentes del determinante 1 de pose se omiten para no oscurecer los conceptos aquí presentados.
La Fig. 6 muestra un ejemplo de un producto 90 de programa informático que comprende medios legibles por ordenador. En este medio legible por ordenador, se puede almacenar un programa 91 informático, cuyo programa informático puede hacer que un procesador ejecute un método según las realizaciones descritas en el presente documento. En este ejemplo, el producto del programa informático es un disco óptico, tal como un CD (disco compacto) o un DVD (disco versátil digital) o un disco Blu-Ray. Como se explicó anteriormente, el producto de programa informático también podría incorporarse en una memoria de un dispositivo, tal como el producto de programa de computadora 64 de la figura 5. Aunque el programa 91 informático se muestra aquí esquemáticamente como una pista en el disco óptico representado, el programa informático se puede almacenar de cualquier forma que sea adecuada para el producto del programa informático, como por ejemplo una memoria de estado sólido extraíble, por ejemplo una unidad de bus serie universal (USB).
La invención se ha descrito principalmente anteriormente con referencia a algunas realizaciones. Sin embargo, como apreciará fácilmente un experto en la técnica, otras realizaciones además de las descritas anteriormente son igualmente posibles dentro del alcance de la invención, tal como se define en las reivindicaciones de patente adjuntas.

Claims (14)

REIVINDICACIONES
1. Un método para determinar una pose de contenido de una pieza de contenido (10a, 10b) virtual, realizándose el método en un determinante (1) de pose y comprendiendo los pasos de:
adquirir (40) una primera pose de anclaje de un dispositivo (4) de anclaje;
determinar (42) una primera pose de contenido, que es una pose de una pieza de contenido (10a, 10b) virtual, en relación con la primera pose de anclaje;
determinar (45) que un dispositivo (2) de usuario necesita determinar una segunda pose de contenido de la pieza de contenido (10a, 10b) virtual;
adquirir (46) una segunda pose de anclaje del dispositivo (4) de anclaje;
adquirir (47) un indicador de incertidumbre de pose, que indica un grado de incertidumbre de la segunda pose de anclaje del dispositivo (4) de anclaje;
determinar (50) la segunda pose del contenido de la pieza de contenido virtual basándose en la primera pose del contenido y la segunda pose de anclaje en caso de que el indicador de incertidumbre sea menor que un valor umbral, o determinar (51) la segunda pose del contenido basándose en características visuales, en donde las características visuales se combinan con las correspondientes poses de características almacenadas, en caso de que el indicador de incertidumbre sea mayor que el valor umbral; y
representar (52) la pieza de contenido virtual en la segunda pose de contenido en un dispositivo (2) de usuario que comprende una pantalla (20).
2. El método según la reivindicación 1, en donde el valor umbral depende del contenido (10a, 10b) virtual.
3. El método según la reivindicación 1 ó 2, que comprende además el paso de:
ajustar (54) el umbral basándose en un reposicionamiento identificado de la pieza de contenido (10a, 10b) virtual.
4. El método según cualquiera de las reivindicaciones 2 ó 3, que comprende además el paso de:
adquirir (49) una bandera de movimiento que indica que el dispositivo de anclaje se ha movido desde que capturó la primera pose de anclaje; y
en donde la determinación de si se realiza el paso de determinar (50) un segundo contenido basándose en la pose del primer contenido o el paso de determinar (50) un segundo contenido basándose en características visuales, se basa también en la bandera de movimiento.
5. El método según la reivindicación 1, que comprende además los pasos de:
adquirir (49) una bandera de movimiento que indica que el dispositivo de anclaje se ha movido desde que capturó la primera pose de anclaje; y
determinar (51) una segunda pose de contenido basada en características visuales capturadas por una cámara del dispositivo de usuario, cotejando las características visuales con las correspondientes poses de características almacenadas;
y donde:
el paso de determinar (50) una segunda pose de contenido basada en la primera pose de contenido se realiza cuando la bandera de movimiento indica que no hay movimiento; y
el paso de determinar (51) una segunda pose de contenido basada en características visuales se realiza cuando la bandera de movimiento indica movimiento.
6. El método según cualquiera de las reivindicaciones anteriores, en donde;
el paso de adquirir (40) una primera pose de anclaje comprende recibir la primera pose de anclaje en un sistema de coordenadas del dispositivo (4) de anclaje y determinar la primera pose de anclaje en un sistema de coordenadas del dispositivo (2) de usuario;
el paso de almacenar (44) la primera pose del contenido comprende determinar la primera pose del contenido en el sistema de coordenadas del dispositivo (4) de anclaje antes de almacenar;
el paso de adquirir (46) la segunda pose de anclaje comprende recibir la segunda pose de anclaje en un sistema de coordenadas del dispositivo (4) de anclaje; y
el paso de determinar (50) una segunda pose del contenido comprende determinar la pose del dispositivo (4) de anclaje en el sistema de coordenadas del dispositivo (2) de usuario.
7. Un determinante (1) de pose para determinar una pose de contenido de una pieza de contenido (10a, 10b) virtual, estando configurado el determinante de pose para:
adquirir una primera pose de anclaje de un dispositivo (4) de anclaje;
determinar una primera pose de contenido, que es una pose de una pieza de contenido (10a, 10b) virtual, en relación con la primera pose de anclaje;
determinar que un dispositivo (2) de usuario necesita determinar una segunda pose de contenido de la pieza de contenido (10a, 10b) virtual;
adquirir una segunda pose de anclaje del dispositivo (4) de anclaje;
adquirir (47) un indicador de incertidumbre de pose, que indica un grado de incertidumbre de la segunda pose de anclaje del dispositivo (4) de anclaje;
determinar la segunda pose de contenido de la pieza de contenido virtual basándose en la primera pose de contenido y la segunda pose de anclaje en caso de que el indicador de incertidumbre sea menor que un valor umbral, o
determinar (51) la segunda pose de contenido basándose en características visuales, en donde las características visuales se comparan con las poses de características almacenadas correspondientes, en caso de que el indicador de incertidumbre sea mayor que el valor umbral; y
representar la pieza de contenido virtual en la segunda pose de contenido en un dispositivo (2) de usuario que comprende una pantalla (20).
8. El determinante (1) de pose según la reivindicación 7, en donde el valor umbral depende de la pieza de contenido (10a, 10b) virtual.
9. El determinante (1) de pose según la reivindicación 7 u 8, que comprende además instrucciones (67) que, cuando las ejecuta el procesador, hacen que el determinante (1) de pose:
ajuste el umbral basándose en un reposicionamiento identificado de la pieza de contenido (10a, 10b) virtual.
10. El determinante (1) de pose según cualquiera de las reivindicaciones 8 ó 9, que comprende además instrucciones (67) que, cuando las ejecuta el procesador, hacen que el determinante (1) de pose:
adquiera (48) una bandera de movimiento que indica que el dispositivo de anclaje se ha movido desde la captura de la primera pose de anclaje; y
en donde la determinación de si ejecutar las instrucciones para determinar un segundo contenido basándose en la pose del primer contenido o las instrucciones para determinar un segundo contenido basándose en características visuales, se basa también en la bandera de movimiento.
11. El determinante (1) de pose según la reivindicación 7, configurado para:
adquirir una bandera de movimiento que indique que el dispositivo de anclaje se ha movido desde que se capturó la primera pose de anclaje; y
determinar una segunda pose de contenido basándose en características visuales capturadas por una cámara del dispositivo de usuario, cotejando las características visuales con las correspondientes poses de características almacenadas;
y donde:
la determinación de una segunda pose de contenido basada en la primera pose de contenido se ejecuta cuando la bandera de movimiento indica que no hay movimiento; y
la determinación de una segunda pose de contenido basada en características visuales se ejecuta cuando la bandera de movimiento indica movimiento.
12. El determinante (1) de pose según cualquiera de las reivindicaciones 10 u 11, en donde;
la adquisición de una primera pose de anclaje comprende recibir la primera pose de anclaje en un sistema de coordenadas del dispositivo (4) de anclaje y determinar la primera pose de anclaje en un sistema de coordenadas del dispositivo (2) de usuario;
el almacenamiento de la primera pose del contenido comprende determinar la primera pose del contenido en el sistema de coordenadas del anclaje y recibir la segunda pose del anclaje en un sistema de coordenadas del dispositivo (4) de anclaje; y
la determinación de una segunda pose del contenido comprende determinar la pose del dispositivo (4) de anclaje en el sistema de coordenadas del dispositivo (2) de usuario.
13. Un programa (67, 91) informático para determinar una pose de contenido de una pieza de contenido (10a, 10b) virtual, comprendiendo el programa informático un código de programa informático que, cuando se ejecuta en un determinante (1) de pose, hace que el determinante (1) de pose:
adquiera una primera pose de anclaje de un dispositivo (4) de anclaje;
determine una primera pose de contenido, que es una pose de una pieza de contenido (10a, 10b) virtual, en relación con la primera pose de anclaje;
determine que el dispositivo (2) de usuario necesita determinar una segunda pose de contenido de la pieza de contenido (10a, 10b) virtual;
adquiera una segunda pose de anclaje del dispositivo (4) de anclaje;
adquiera (47) un indicador de incertidumbre de pose, que indica un grado de incertidumbre de la segunda pose de anclaje del dispositivo (4) de anclaje;
determine la segunda pose de contenido de la pieza de contenido virtual basándose en la primera pose de contenido y la segunda pose de anclaje en caso de que el indicador de incertidumbre sea menor que un valor umbral, o
determine (51) la segunda pose de contenido basándose en características visuales, en donde las características visuales se combinan con las poses de características almacenadas correspondientes, en caso de que el indicador de incertidumbre sea mayor que el valor umbral, y
represente la pieza de contenido virtual en la segunda pose de contenido en un dispositivo (2) de usuario que comprende una pantalla (20).
14. Un producto (64, 90) de programa informático que comprende un programa informático según la reivindicación 13 y un medio legible por ordenador en el que se almacena el programa informático.
ES17818540T 2017-12-15 2017-12-15 Determinar la pose del contenido de una pieza de contenido virtual Active ES2962152T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2017/083074 WO2019114986A1 (en) 2017-12-15 2017-12-15 Determining a content pose of a piece of virtual content

Publications (1)

Publication Number Publication Date
ES2962152T3 true ES2962152T3 (es) 2024-03-15

Family

ID=60788603

Family Applications (1)

Application Number Title Priority Date Filing Date
ES17818540T Active ES2962152T3 (es) 2017-12-15 2017-12-15 Determinar la pose del contenido de una pieza de contenido virtual

Country Status (6)

Country Link
US (2) US11244514B2 (es)
EP (1) EP3724745B1 (es)
KR (1) KR102475188B1 (es)
CN (1) CN111712777B (es)
ES (1) ES2962152T3 (es)
WO (1) WO2019114986A1 (es)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102475188B1 (ko) * 2017-12-15 2022-12-06 텔레폰악티에볼라겟엘엠에릭슨(펍) 하나의 가상 콘텐츠의 콘텐츠 포즈 결정 방법
EP4047558A1 (en) * 2021-02-17 2022-08-24 Miehee Ju Kim System for generating 3d mobile augmented reality
US11682180B1 (en) * 2021-12-09 2023-06-20 Qualcomm Incorporated Anchoring virtual content to physical surfaces

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AUPM701394A0 (en) * 1994-07-22 1994-08-18 Monash University A graphical display system
US20120306850A1 (en) * 2011-06-02 2012-12-06 Microsoft Corporation Distributed asynchronous localization and mapping for augmented reality
US9530232B2 (en) * 2012-09-04 2016-12-27 Qualcomm Incorporated Augmented reality surface segmentation
US9430038B2 (en) * 2014-05-01 2016-08-30 Microsoft Technology Licensing, Llc World-locked display quality feedback
US10198865B2 (en) * 2014-07-10 2019-02-05 Seiko Epson Corporation HMD calibration with direct geometric modeling
US10596700B2 (en) * 2016-09-16 2020-03-24 Carbon Robotics, Inc. System and calibration, registration, and training methods
US10499997B2 (en) * 2017-01-03 2019-12-10 Mako Surgical Corp. Systems and methods for surgical navigation
KR102475188B1 (ko) * 2017-12-15 2022-12-06 텔레폰악티에볼라겟엘엠에릭슨(펍) 하나의 가상 콘텐츠의 콘텐츠 포즈 결정 방법

Also Published As

Publication number Publication date
US11657581B2 (en) 2023-05-23
KR20200094775A (ko) 2020-08-07
US20220180613A1 (en) 2022-06-09
CN111712777B (zh) 2023-11-07
CN111712777A (zh) 2020-09-25
EP3724745B1 (en) 2023-09-13
EP3724745A1 (en) 2020-10-21
WO2019114986A1 (en) 2019-06-20
KR102475188B1 (ko) 2022-12-06
US11244514B2 (en) 2022-02-08
US20210183149A1 (en) 2021-06-17

Similar Documents

Publication Publication Date Title
US12079931B2 (en) Image and point cloud based tracking and in augmented reality systems
KR102697559B1 (ko) 영상 표시 방법, 저장 매체 및 전자 장치
US9836890B2 (en) Image based tracking in augmented reality systems
US11657581B2 (en) Determining a content pose of a piece of virtual content
ES2750682T3 (es) Entorno virtual para compartir información
ES2806947T3 (es) Interfaz de usuario para dispositivos habilitados con realidad aumentada
US9940720B2 (en) Camera and sensor augmented reality techniques
EP2777025B1 (en) Information processing apparatus, information processing method, and program
ES2729102T3 (es) Canales de color y marcadores ópticos
BR102017010904A2 (pt) Método, aparelho e fluxo para formato de vídeo imersivo
ES2890428T3 (es) Dispositivo de visualización montado en la cabeza y su método
US9626773B2 (en) Augmented reality alteration detector
EP3095092A1 (en) Method and apparatus for visualization of geo-located media contents in 3d rendering applications
US11054963B2 (en) Method for displaying navigator associated with content and electronic device for implementing the same
JP2013517579A (ja) 拡張現実システム
KR20180005528A (ko) 영상 처리를 위한 디스플레이 장치 및 방법
KR20180042627A (ko) 영상 처리 장치 및 그 영상 처리 방법
US11069075B2 (en) Machine learning inference on gravity aligned imagery
CN110336973B (zh) 信息处理方法及其装置、电子设备和介质
JP2017181666A (ja) 情報処理装置、情報処理方法およびプログラム
US20120242664A1 (en) Accelerometer-based lighting and effects for mobile devices
US11792517B2 (en) Pose tracking for rolling shutter camera
KR20180059210A (ko) 영상 처리 장치 및 그 영상 처리 방법
US20170193633A1 (en) Information processing device, information processing method, and program
EP3068128A1 (en) Information processing device, information processing method, and information processing system