ES2399636T3 - Método para determinar la postura de una cámara con respecto a por lo menos un objeto real - Google Patents

Método para determinar la postura de una cámara con respecto a por lo menos un objeto real Download PDF

Info

Publication number
ES2399636T3
ES2399636T3 ES09777521T ES09777521T ES2399636T3 ES 2399636 T3 ES2399636 T3 ES 2399636T3 ES 09777521 T ES09777521 T ES 09777521T ES 09777521 T ES09777521 T ES 09777521T ES 2399636 T3 ES2399636 T3 ES 2399636T3
Authority
ES
Spain
Prior art keywords
matrix
transformation matrix
camera
real object
iterative minimization
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
ES09777521T
Other languages
English (en)
Inventor
Mohamed Selim Ben Himane
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.)
Metaio GmbH
Original Assignee
Metaio GmbH
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 Metaio GmbH filed Critical Metaio GmbH
Application granted granted Critical
Publication of ES2399636T3 publication Critical patent/ES2399636T3/es
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; COUNTING
    • G06T—IMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T7/00—Image analysis
    • G06T7/70—Determining position or orientation of objects or cameras
    • G06T7/73—Determining position or orientation of objects or cameras using feature-based methods
    • G06T7/75—Determining position or orientation of objects or cameras using feature-based methods involving models
    • G—PHYSICS
    • G06—COMPUTING OR CALCULATING; 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)
  • Computer Vision & Pattern Recognition (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Image Processing (AREA)
  • Image Analysis (AREA)

Abstract

Un método para determinar la postura de una cámara con respecto a por lo menos un objeto real, comprendiendoel método las etapas de: - accionar la cámara (1) para capturar una imagen bidimensional (4) que incluye por lo menos una parte delobjeto real (3), caracterizado por: - proporcionar una matriz de transformación (T) que incluye información con respecto a unacorrespondencia entre puntos tridimensionales (Pi*) asociados con el objeto real (3) y unos puntosbidimensionales correspondientes (pi) del objeto real (5) tal como se incluyen en la imagen bidimensional(4), - determinar una estimación inicial de la matriz de transformación (T1) como base inicial para un proceso deminimización iterativa usado para depurar de forma iterativa la matriz de transformación, - determinar una matriz jacobiana (J) que incluye información con respecto a la estimación inicial de lamatriz de transformación (T1) y valores de referencia de los puntos tridimensionales (Pi*) asociados con elobjeto real (3), - en el proceso de minimización iterativa, determinar en cada uno de múltiples bucles de iteración unaversión actualizada respectiva de la matriz de transformación (T) basándose en una versión previarespectiva de la matriz de transformación (T) y basándose en la matriz jacobiana (J), en el que la matrizjacobiana no se actualiza durante el proceso de minimización iterativa, y - determinar la postura de la cámara (1) con respecto al objeto real (3) usando la matriz de transformación(T) determinada al final del proceso de minimización iterativa.

Description

Método para determinar la postura de una cámara con respecto a por lo menos un objeto real
La presente invención se refiere a un método para determinar la postura de una cámara con respecto a por lo menos un objeto real. Una cámara se acciona para capturar una imagen bidimensional que incluye por lo menos una parte de un objeto real y, en el proceso de determinación, la postura de la cámara con respecto al objeto real se determina usando correspondencias entre puntos tridimensionales asociados con el objeto real y unos puntos bidimensionales correspondientes del objeto real en la imagen bidimensional.
Antecedentes de la invención
Los sistemas de realidad aumentada permiten la superposición de información virtual generada por ordenador con impresiones visuales del entorno real. Con este fin, las impresiones visuales del mundo real se mezclan con información virtual, por ejemplo por medio de vidrios de datos semi-transmisores o por medio de un visualizador montado en la cabeza que se lleva en la cabeza de un usuario. La combinación de objetos o información virtual puede efectuarse de una forma dependiente del contexto, es decir, correspondiente con y deducida del entorno respectivo observado. Como información virtual, es posible usar básicamente cualquier tipo de datos, tal como textos, imágenes etc. El entorno real se detecta por ejemplo con la ayuda de una cámara portada en la cabeza del usuario.
Cuando la persona que usa un sistema de realidad aumentada gira su cabeza, el seguimiento de los objetos virtuales es necesario con respecto al campo de visión cambiante. El entorno real puede ser un aparato complejo, y el objeto detectado puede ser una parte significativa del aparato. Durante un así denominado proceso de seguimiento, el objeto real (que puede ser un objeto que va a observarse tal como un aparato, un objeto dotado de un marcador que va a observarse, o un marcador colocado en el mundo real para fines de seguimiento) detectado durante la inicialización sirve como referencia para calcular la posición en la que la información virtual ha de visualizarse o combinarse en una imagen o fotografía tomada por la cámara. Para este fin, es necesario determinar la postura de la cámara con respecto al objeto real. Debido al hecho de que el usuario (y, en consecuencia, la cámara cuando esta se porta por el usuario) puede cambiar su posición y orientación, el objeto real ha de someterse a un seguimiento continuo con el fin de visualizar la información virtual en la posición correcta en el dispositivo visualizador también en el caso de una postura alterada (posición y orientación) de la cámara. El efecto conseguido de ese modo es que la información, con independencia de la posición y/o orientación del usuario, se visualiza en el dispositivo visualizador de una forma correcta con el contexto con respecto a la realidad.
Uno de los problemas en el campo de la realidad aumentada es la determinación de la posición de la cabeza y la orientación de la cabeza del usuario por medio de una cámara que está asociada de algún modo con la cabeza del usuario. Otro problema puede ser determinar la posición y orientación de la cámara en el interior de un teléfono móvil con el fin de superponer información sobre la imagen de cámara y de mostrar la combinación de ambas en el visualizador del teléfono. Con este fin, en algunas aplicaciones la postura de la cámara con respecto a por lo menos un objeto real del entorno real capturado se estima usando el flujo de vídeo o el flujo de imágenes de la cámara como fuente de información.
La estimación de postura es una de las tareas más básicas y más importantes en la visión por ordenador y en la realidad aumentada. En la mayoría de las aplicaciones en tiempo real, es necesario resolver esta en tiempo real. No obstante, debido a que la misma implica un problema de minimización no lineal, requiere una gran cantidad de tiempo de cálculo.
Sumario de la invención
Por lo tanto, un objeto de la presente invención es la provisión de un método para determinar la postura de una cámara con respecto a por lo menos un objeto real que puede calcularse mediante un medio de procesamiento de datos con un tiempo de cálculo bastante bajo.
La invención se dirige a un método para determinar la postura de una cámara con respecto a por lo menos un objeto real de acuerdo con las características de la reivindicación 1. Además, la invención se dirige a un producto de programa informático tal como se reivindica en la reivindicación 12.
De acuerdo con un aspecto, la invención se refiere a un método para determinar la postura de una cámara con respecto a por lo menos un objeto real, comprendiendo el método las etapas de:
-
accionar la cámara para capturar una imagen bidimensional (o tridimensional) que incluye por lo menos una parte de un objeto real,
-
proporcionar correspondencias entre puntos tridimensionales asociados con el objeto real y unos puntos bidimensionales (o tridimensionales) del objeto real en la imagen bidimensional (o tridimensional, respectivamente); por ejemplo, las coordenadas de los puntos en 3D pueden medirse sobre el objeto real o provenir del dibujo técnico en 2D del objeto real o se determinan gracias a un modelo de CAD en 3D del objeto, mientras que las coordenadas puntuales en 2D puede determinarse en general gracias a algunas técnicas de procesamiento de imágenes convencionales tal como la extracción de puntos característicos (puntos de esquina, puntos de arista, puntos invariantes de escala, etc.),
-
determinar una estimación inicial de la matriz de transformación (que se usará posteriormente para determinar la postura) como base inicial para un proceso de minimización iterativa usado para depurar de forma iterativa la matriz de transformación,
-
determinar una matriz jacobiana que incluye información con respecto a la estimación inicial de la matriz de transformación y valores de referencia de las coordenadas puntuales tridimensionales asociadas con el objeto real; por ejemplo, la matriz jacobiana puede estimarse por medios numéricos usando, por ejemplo, el método de diferencias finitas o por medios analíticos suponiendo un cierto modelo de proyección de cámara (en el presente caso se determina la misma por medios analíticos suponiendo el modelo de cámara estenopeica),
-
en el proceso de minimización iterativa, determinar en cada uno de múltiples bucles de iteración una versión actualizada respectiva de la matriz de transformación basándose en una versión previa respectiva de la matriz de transformación y basándose en la matriz jacobiana, en el que la matriz jacobiana no se actualiza durante el proceso de minimización iterativa, y
-
determinar la postura de la cámara con respecto al objeto real usando la matriz de transformación determinada al final del proceso de minimización iterativa.
En una realización de la invención, el proceso de minimización iterativa implica el algoritmo de Gauss-Newton o el algoritmo de Levenberg-Marquardt.
En una realización adicional de la invención, el proceso de minimización iterativa implica un proceso de actualización compuesta en el que la versión actualizada respectiva de la matriz de transformación se calcula a partir de una multiplicación entre una matriz construida con parámetros de actualización de la matriz de transformación previa respectiva y la matriz de transformación previa respectiva.
En una realización adicional, se usa una parametrización de álgebra de Lie en el proceso de minimización iterativa.
Realizaciones adicionales de la invención se exponen en las reivindicaciones dependientes.
Breve descripción de los dibujos
Algunos aspectos de la invención se analizarán con más detalle en lo siguiente por medio de las figuras que ilustran realizaciones de la invención, en las que
la figura 1 muestra una visualización esquemática de una escena que comprende un objeto real observado por una cámara y una imagen de cámara que visualiza una representación bidimensional del objeto real,
la figura 2 muestra un proceso de acuerdo con el algoritmo de Gauss-Newton adaptado para determinar una matriz de transformación T que es apropiada para la determinación de la postura de la cámara de acuerdo con la figura 1,
la figura 3 muestra una posible implementación de cálculo del proceso de acuerdo con la figura 2,
la figura 4 muestra un proceso de acuerdo con el algoritmo de Levenberg-Marquardt adaptado para determinar una matriz de transformación T que es apropiada para la determinación de la postura de la cámara de acuerdo con la figura 1,
la figura 5 muestra una posible implementación de cálculo del proceso de acuerdo con la figura 4,
la figura 6 muestra una posible implementación del algoritmo de Gauss-Newton para una estimación de postura no lineal en la que la matriz jacobiana se calcula previamente y la actualización se realiza de una forma compuesta,
la figura 7 muestra una posible implementación adicional del algoritmo de Gauss-Newton para una estimación de postura no lineal en la que la matriz inversa generalizada se calcula previamente asimismo,
la figura 8 muestra una posible implementación del algoritmo de Levenberg-Marquardt para una estimación de postura no lineal en la que la matriz jacobiana J y la matriz JTJ se calculan previamente y la actualización se realiza de una forma compuesta,
la figura 9 muestra una posible implementación adicional del algoritmo de Levenberg-Marquardt para una estimación de postura no lineal en la que la jacobiana J y la matriz JTJ se calculan previamente y la actualización se calcula usando la inversa generalizada,
la figura 10 muestra una posible implementación adicional del algoritmo de Levenberg-Marquardt para una estimación de postura no lineal en la que se han realizado algunos cálculos previos más,
la figura 11 muestra un conjunto de ecuaciones mi • L Pi* = 0, tal como se hace referencia al mismo con más detalle a continuación.
Descripción detallada de realizaciones
La figura 1 muestra una visualización esquemática de una escena que comprende cualquier tipo de un objeto real 3 (en el presente ejemplo, en forma de cubo) que comprende unos puntos en 3D Pi* que se observan por una cámara
1. La cámara 1 está acoplada con un medio de procesamiento de datos 2, que puede ser cualquier tipo de procesador de cálculo que sea apropiado para procesar las imágenes digitales proporcionadas por la cámara 1. Por ejemplo, la cámara 1 y el procesador 2 pueden estar incluidos en el mismo dispositivo, tal como un teléfono móvil o cualquier otro dispositivo móvil, o pueden estar incorporados en unos dispositivos distribuidos respectivos acoplados por cable o de forma inalámbrica. La cámara genera una o más imágenes de cámara 4 que visualizan una representación bidimensional 5 del objeto real 3 que tiene unos puntos en 2D pi. La representación del objeto en la imagen no está restringida a la apariencia del objeto como una respuesta fotométrica a la luz del espectro visible reflejado a partir del objeto (que se corresponde con la imagen convencional que adquieren las cámaras comerciales convencionales). La representación del objeto puede ser también su respuesta a otras porciones de la luz electromagnética. Esta puede también ser por ejemplo una imagen obtenida con una cámara infrarroja, una cámara térmica o incluso una cámara de Tiempo De Vuelo (Time Of Flight, TOF). En el caso de la cámara de Tiempo De Vuelo, la profundidad de los puntos de imagen puede medirse directamente: estas cámaras emiten una luz infrarroja modulada y entregan una imagen de amplitud (que es la amplitud de la señal reflejada en cada píxel) y una imagen de distancia (que es el desplazamiento de fase entre la señal emitida y la reflejada). Otro sistema de cámaras puede combinar 2 cámaras para adquirir una imagen que incluye información de profundidad en 3D. También pueden imaginarse otros sistemas, que proporcionan información de imágenes combinada con 3D o datos de profundidad (por ejemplo, una combinación de una cámara TOF y una cámara a color o una cámara a color con una unidad de exploración láser).
De esta forma, una cámara apropiada puede capturar una imagen tridimensional y puede proporcionarse una matriz de transformación que incluye información con respecto a una correspondencia entre puntos tridimensionales asociados con el objeto real y unos puntos tridimensionales correspondientes del objeto real tal como se incluyen en la imagen tridimensional.
En un proceso de seguimiento, el objeto es determinar la postura de la cámara 1 con respecto al objeto real 3, calculándose la postura usando la matriz de transformación T entre el sistema de coordenadas 11 de la cámara y el sistema de coordenadas 13 del mundo asociado con el objeto real 3. La información obtenida de este modo sirve como referencia para calcular la posición en la que la información virtual ha de visualizarse o combinarse en una imagen 4 tomada por la cámara. Un seguimiento continuo del objeto real 3 se realiza cuando cambia la posición y/o orientación relativas entre el usuario o la cámara 1 y el objeto real 3.
Dadas las coordenadas del conjunto de puntos en 3D Pi* (expresadas en el sistema de coordenadas 13 del mundo, en aras de simplicidad, en la figura 1 el sistema de coordenadas del mundo se elige superpuesta con el sistema de coordenadas del objeto real) y las coordenadas de sus proyecciones en 2D pi en la imagen (expresadas en el sistema de coordenadas 14 de la imagen), el objetivo es determinar la postura de cámara en el sistema de coordenadas 13 del mundo: la posición y la orientación de la cámara 1 en el sistema de coordenadas 13 del mundo. (Observación: con una cámara de Tiempo De Vuelo o una cámara estereoscópica, es posible conseguir la profundidad de las proyecciones en 2D, teniéndose entonces acceso a las coordenadas en 3D completas de los puntos considerados en el sistema de coordenadas unido a la cámara).
Las coordenadas de los puntos en 3D Pi* puede, por ejemplo, medirse manualmente en el objeto real o provenir del dibujo técnico en 2D del objeto real o determinarse gracias un modelo de CAD en 3D del objeto. Mientras que las coordenadas puntuales en 2D pi se determinan en general gracias a algunas técnicas de procesamiento de imágenes convencionales tal como la extracción de características (puntos de esquina, puntos de arista, puntos invariantes de escala, etc.). Las correspondencias entre los Pi* y pi se obtienen gracias a un método de visión por ordenador convencional en general basándose en las propiedades geométricas de los puntos en 3D y el uso de una distribución espacial geométrica especial de los puntos y sus proximidades. Esto puede también basarse en algún conocimiento de la apariencia de los puntos en 3D en la imagen basándose en un conjunto de imágenes etiquetado manualmente denominado fotogramas clave (teniéndose entonces una apariencia posible diferente del objeto y encontrándose los puntos en 3D sobre la misma en imágenes adquiridas desde diferentes puntos de vista). En ese caso, los enfoques que usan, por ejemplo, descriptores (por ejemplo, David G. Lowe: “Distinctive Image Features from Scale-Invariant Keypoints In: International Journal of Computer Vision”, Vol. 60, n.º 2, páginas 91-110, 2004) o clasificadores (por ejemplo, V. Lepetit y P. Fua, Keypoint Recognition using Randomized Trees. IEEE Transactions on Pattern Analysis and Machine Intelligence, Vol. 28, n.º 9, páginas 1465-1479, 2006) podrían usarse para establecer las correspondencias. Por ejemplo, las correspondencias entre los puntos en 3D y los puntos en 2D se establecen entre el objeto real y los fotogramas clave (2D<3D). Y con el fin de establecer las correspondencias entre el objeto real y la imagen en cuestión (la imagen 4), sólo se necesitan entonces unas correspondencias 2D<2D. En el caso de que se encuentre disponible un modelo de CAD en 3D con textura del objeto, este puede usarse durante el proceso de determinación de las correspondencias por ejemplo mediante la generación sintética de las imágenes de fotogramas clave en lugar de adquirir las mismas con una cámara.
5 La posición de la cámara se denomina también traslación de la cámara y puede representarse usando un vector t (3x1) tal como conoce el experto. La orientación de la cámara se denomina también rotación de la cámara y puede representarse con una matriz de rotación R (3x3) tal como también conoce el experto. La matriz de rotación R es una matriz que pertenece al así denominado grupo Ortogonal Especial SO(3) que es conocida por el experto en la materia. El grupo SO(3) es el grupo de matrices (3x3) que verifica: RT R = Id y det(R) = 1, Id es la matriz identidad (que es una matriz (3x3) con unos en la diagonal principal y ceros en todas las otras posiciones y det representa el determinante de la matriz).
La postura de cámara en el sistema de coordenadas 13 del mundo puede escribirse usando una matriz (4x4) 15
Esta matriz T se denomina la matriz de transformación y está encuadrada en el grupo Euclidiano Especial SE(3). Esta tiene 6 grados de libertad: 3 grados de libertad para la traslación y 3 grados de libertad para la rotación.
Lo anterior se conoce básicamente por el experto y se describe en, por ejemplo, “Richard Hartley and Andrew Zisserman, Multiple View Geometry in Computer Vision”, Cambridge University press, segunda edición, 2003 (véase, por ejemplo, el capítulo 3, páginas 65-86).
25 La proyección de la imagen puede resumirse tal como sigue:
A una cierta postura T de la camara, un punto en 3D Pi* = [Xi*,Yi*,Zi*,1] expresado en el sistema de coordenadas 13 del mundo (en el que Xi* es la coordenada a lo largo del eje x, Yi* es la coordenada a lo largo del eje y y Zi* es la coordenada a lo largo del eje z) se proyecta en primer lugar sobre el plano normalizado como un punto “normalizado” mi =[xi,yi,1] =[Xi/Zi,Yi/Zi,1] en el que[Xi,Yi,Zi, 1] =T[Xi*,Yi*,Zi*,1], yen elque xi, yi son las coordenadas del punto en 2D en el plano normalizado. El plano normalizado es el plano ortogonal al eje z del sistema de coordenadas de la cámara (que se corresponde con el eje óptico de la cámara) y la distancia entre este plano y el centro óptico de la cámara es una distancia de 1 unidad. Esto es sólo un concepto matemático que permite la expresión de las coordenadas puntuales como una proyección simple de
35 los puntos en 3D sin la necesidad de los parámetros intrínsecos de la cámara (véase a continuación). (Observación: con una cámara de Tiempo De Vuelo o una cámara estereoscópica, es posible conseguir las coordenadas en 3D de los puntos transformados en el sistema de coordenadas unido a la cámara, es decir, es posible medir directamente [Xi,Yi,Zi,1]).
A continuación, mi se proyecta en la imagen de cámara como pi = [ui,vi,1] = Kmi en el que la matriz K es la matriz de parámetros intrínsecos de la cámara (3x3)
45 Los parámetros fx y fy son respectivamente la longitud focal horizontal sobre el eje x y la longitud focal vertical sobre el eje y, s es la inclinación (Este parámetro es diferente de 0 en el caso de que los elementos de píxel de la disposición de sensores de la cámara no tenga unos ejes perpendiculares), u0 y v0 son las coordenadas del punto principal en píxeles en la imagen (el punto principal es la intersección del eje óptico con el plano de la imagen). Para más detalles, véase “Richard Hartley and Andrew Zisserman, Multiple View Geometry in Computer Vision”, Cambridge University press, segunda edición, 2003 (véase, por ejemplo, el capítulo 6, páginas 153-177).
Se da también el fenómeno de la distorsión de la cámara. Pero en el presente caso se considerará que la cámara está calibrada y que los parámetros intrínsecos son conocidos. Las imágenes también se consideran sin distorsión.
55 Por lo tanto, cuando se tiene un punto de imagen pi =[ui,vi,1] conlascoordenadasexpresadas enuna imagen sin
K-1
distorsión, es posible conseguir su punto “normalizado” correspondiente mi tal como sigue: mi = pi. Una ilustración de la proyección puede verse en la figura 1.
En adelante, en lugar de considerar unos puntos correspondientes Pi* pi, se consideraránpuntos
< unos correspondientes: Pi* < mi debido a que tener pi permite conseguir directamente mi usando la fórmula anterior.
Tener un conjunto de puntos en 3D-2D correspondientes, la postura de la cámara puede resolverse de forma no
5 lineal usando, por ejemplo, el algoritmo de Gauss-Newton o usando el algoritmo de Levenberg-Marquardt, los cuales se conocen básicamente por el experto y se describen, por ejemplo, en P. Gill, W. Murray y M. Wright: “Practical Optimization”, Academic Press, páginas 134 - 137, 1981.
Estimación inicial de la matriz de transformación T
Ambos algoritmos (Gauss-Newton o Levenberg-Marquardt) requieren una estimación inicial T1 de la matriz de transformación T (véase la etapa inicial respectiva en los procesos tal como se muestra en las figuras 2-5). La estimación inicial T1 se usa como base inicial para el proceso de minimización iterativa no lineal subsiguiente para depurar de forma iterativa la matriz de transformación inicial T1 en una matriz de transformación final T que se usa
15 para determinar la postura de cámara.
Lo siguiente es una realización de cómo se obtiene la estimación inicial T1 de la matriz de transformación T:
Cada correspondencia Pi* < mi proporciona un conjunto de ecuaciones mi � L Pi* = 0 (x es el operador para el producto vectorial), tal como se muestra en la figura 11.
Entonces, mediante la acumulación de todas las matrices Ci es posible escribir el sistema como un problema lineal 25 C1= 0 en el que lo desconocido es el vector 1 (véase la figura 11).
Con el fin de resolver este problema, se puede realizar la descomposición en valores singulares de la matriz como C = Uc Sc VcT, en la que Uc y Vc son dos matrices ortogonales y Sc es una matriz diagonal en la que las entradas de la diagonal se corresponden con los valores singulares de la matriz C. La última columna de la matriz Vc se corresponde con la solución de mínimos cuadrados del problema lineal.
Con el fin de tener un mejor acondicionamiento de la matriz C, se pueden normalizar en primer lugar los puntos en 3D de tal modo que su media es [0 0 0 1] y su desviacion estandar es raiz cuadrada de (3) y se deberian normalizar los puntos en 2D de tal modo que su media [0 0 1] y su desviacion estandar sea raiz cuadrada de (2). Despues de la
35 resolución del sistema, a continuación, se debería desnormalizar la solución obtenida.
Lo anterior se conoce básicamente por el experto y se describe en, por ejemplo: Richard Hartley and Andrew Zisserman, “Multiple View Geometry in Computer Vision”, Cambridge University press, segunda edición, 2003 (véase, por ejemplo, el capítulo 7, páginas 178-194).
Cuando se tiene 1 es posible construir la matriz L. No obstante, no se garantiza que la matriz L se encuentre en SE(3) debido a que no se garantiza que la matriz
Sea una matriz de rotación. Se puede aproximar la matriz A por una matriz de rotación Ra tal como sigue:
-
Realizar la descomposición en valores singulares de A = Ua Sa VaT (en la que Ua y Va son de nuevo matrices ortogonales y Sa es una matriz diagonal en la que las entradas de la diagonal se corresponden con los valores singulares de la matriz A)
-
Ra = Ua Da VaT en la que
La matriz Ra es una matriz de rotación debido a que la misma verifica Ra RaT = Id y det(Ra) = 1.
La matriz
es entonces una solución posible para la postura T1.
Esta postura se obtuvo en Reimer lugar a través de un sistema lineal y forzando a continuación la matriz (3x3) superior izquierda para que fuera una matriz de rotación.
Proceso de minimización iterativa no lineal
En este momento, se tiene una estimación inicial de la matriz de transformación T y se está preparado para una estimación no lineal. Pueden usarse tanto el algoritmo de Gauss-Newton como el de Levenberg-Marquardt. Véanse los diagramas de flujo de las figuras 2-4 para una descripción general de estos algoritmos.
La implementación de Gauss-Newton convencional puede verse en la figura 2. En la figura 2, la tarea “Resolver el sistema: J d = e” puede hacerse de varias formas. Existen unos algoritmos muy eficientes para encontrar el vector d conociendo la matriz jacobiana J y el vector de error e. En la figura 2, la tarea “Calcular la nueva matriz T” depende de la parametrización y la actualización (tal como se describe con más detalle a continuación). Por lo tanto, esto puede hacerse también de varias formas. Una posible implementación se muestra en la figura 3. En el presente caso, el vector que contiene el parámetro de actualización se resuelve usando la inversa generalizada Jp de la matriz jacobiana J: Jp = (JTJ)-1JT y la actualización se realiza usando un enfoque compuesto, es decir, construyendo una matriz de actualización LT(d) que depende del parámetro de actualización d y multiplicando entonces la matriz antigua T con la matriz de actualización LT(d).
De manera similar, una implementación de Levenberg-Marquardt convencional puede verse en la figura 4, y una posible implementación está representada en la figura 5 en la que la actualización se resuelve usando la inversa generalizada y usando un enfoque compuesto.
Ambos algoritmos actualizan (depuran) de forma iterativa la estimación de postura: T < actualizar (T,d), en la que d es un vector (6x1) que contiene los 6 parámetros de actualización de la traslación y la rotación y la función de actualización depende de la parametrización elegida para d.
La parametrización El método dado a conocer por Bleser y col.: “Online camera pose estimation in partially known and dynamic scenes”, en IEEE/ACM International Symposium on Mixed and Augmented Reality (ISMAR’06), 22-25 de octubre, páginas 56-65, 2006, CA, Santa Barbara, CA, EE.UU., para una estimación de postura de cámara en un entorno dinámico cuando el modelo de CAD de un objeto en la escena está disponible usa un algoritmo de Levenberg-Marquardt para minimizar la función de error, en el que la postura del fotograma anterior se proporciona como suposición inicial. Adicionalmente, se añaden pesos a los diferentes puntos de acuerdo con la covarianza conjunta de correspondencias 2D/3D. De hecho, dentro del método, la matriz jacobiana se actualiza durante el proceso de minimización iterativa, véase la sección 7.2. El documento GB 2 315 124 A da a conocer un sistema para la determinación con conexión de una postura de cámara a distancia basándose en la extracción sin conexión de características que es usando una caída de gradiente convencional (es decir, un proceso de minimización iterativa) en el que se calcula una matriz jacobiana para cada vector de error (para cada iteración, véase la figura 3 siendo J la matriz jacobiana, véase la página 12).
En general, la traslación se parametriza usando una parametrización R3 natural. Las 3 primeras entradas de d representan la traslación. No obstante, para la rotación puede seleccionarse una parametrización basándose en los ángulos de Euler o en la representación eje-ángulo o en la representación de cuaterniones. Respectivamente, las 3 últimas entradas de d son o bien los ángulos de Euler o bien la representación eje-ángulo de la rotación. El vector d = [d1, d2, d3, d4, d5, d6] contiene 3 entradas para la traslación [d1, d2, d3] y 3 entradas para la rotación [d4, d5, d6].
Cuando la rotación se parametriza usando cuaterniones, el vector d tiene 7 entradas y los últimos 4 parámetros representan la representación de cuaterniones de la rotación. Por ejemplo, en el caso de que se usen ángulos de Euler para la parametrización de la rotación, se tendría la matriz T en la siguiente forma
Puede usarse una parametrización de álgebra de Lie. Esta parametrización se usa con frecuencia en la comunidad robótica. Los principios de la parametrización, tal como se describe a continuación, se conocen por el experto, y se 5 describen en la bibliografía tal como sigue:
En “Tracking people with twists and exponential Maps”, Bregler y Malik, en IEEE Computer Society Conference on Computer Vision and Pattern Recognition (CVPR), Santa Barbara, California, páginas 8-15, 1998, la parametrización que se describe anteriormente se introdujo para el seguimiento de personas.
10 En “Real-Time Visual Tracking of Complex Structures”, Tom Drummond y Roberto Cipolla, IEEE Transactions on Pattern Analysis and Machine Intelligence, vol. 24, n.º 7, páginas 932 - 946, julio de 2002 se usó para la parametrización de incrementos en el contexto de seguimiento basado en bordes.
15 Recientemente en “Motilal Agrawal, A Lie Algebraic Approach for Consistent Pose Registration for General Euclidean Motion”, International Conference in Computer Vision, páginas 1891 - 1897, 2005 se usó para registrar estimaciones de postura relativa local y para producir una trayectoria consistente global de un robot.
20 Cuando se usa esta parametrización, la matriz T tiene la siguiente forma:
en la que la matriz de rotación se escribe usando la fórmula de Rodriguez:
8 es el ángulo de la rotación (8 =DD[d4,d5,d6]DD) y [u] x es la matriz de inclinación del eje de rotación u = [ux, uy, uz] = [d4,d5,d6]/ 8
Y la matriz de traslación depende de todos los parámetros del vector de actualización
Esta parametrización tiene muchas ventajas en comparación con la convencional (ángulos de Euler para la rotación y R3 para la traslación). Una de las ventajas que se refiere a la presente invención es que la matriz jacobiana (la derivada de la matriz de actualización con respecto a los parámetros de actualización d) tiene una expresión muy
40 sencilla y barata (en cuanto a costes computacionales).
La actualización de la matriz de transformación T
Para cada parametrización, puede elegirse o bien una actualización adicional o bien una actualización compuesta.
45 La actualización adicional construye una matriz actualizada T añadiendo a los parámetros antiguos los nuevos parámetros. La actualización compuesta calcula la matriz actualizada T como la multiplicación entre una matriz
construida con los parámetros de actualización LT(d) y la matriz antigua T. La actualización puede escribirse como:
Los diferentes métodos de actualización se conocen básicamente por el experto y se describen, por ejemplo, en: Lucas-Kanade 20 Years On: A Unifying Framework”, Simon Baker y lain Matthews, International Journal of Computer Vision, vol. 56, n.º 3, páginas 221-255, 2004 en el que las diferentes actualizaciones disponibles se explican en el contexto de seguimiento sin marcadores.
El proceso de minimización iterativa
En cada iteración, se transforman los puntos en 3D de referencia Pi* con la matriz de transformación estimada T (que en la primera iteración se ajusta a Tl, como se describe anteriormente). Se obtiene la ecuación Pi = T Pi* = [Xi,Yi,Zi,1].
Entonces, los puntos en 3D obtenidos Pi se proyectan en mei = [Xi/Zi,Yi/Zi]. Es importante observar que mei depende de la estimación de T.
Para cada correspondencia, se calcula [eix, eix,] = [xi,yi] - mei, en la que [xi,yi] son las dos primeras entradas del punto “normalizado” mi que se explica anteriormente.
Acumular todas las correspondencias da como resultado el vector de error geométrico, es decir, el vector e = [e1x, e1y, e2x, e2y,... eNx, eNy] en el que N es el número total de puntos.
La estimación no lineal minimiza de forma iterativa la norma al cuadrado de este vector de error.
Por este motivo, se necesita también calcular la matriz jacobiana que es la primera derivada de mei con respecto a los incrementos de rotación y traslación. La dimensión de la matriz jacobiana es entonces (2N x 6).
Las líneas 2*i y (2*i+1) de la matriz jacobiana pueden escribirse como: L (mei) / Ld
La matriz jacobiana puede calcularse por medios numéricos usando el método de diferencias finitas. Como alternativa, puede calcularse por medios analíticos. Para ambos enfoques, la parametrización de matriz de incremento desempeña un papel importante en la complejidad del cálculo de jacobiana. Por ejemplo, en el caso de una actualización de rotación parametrizada usando los ángulos de Euler, es necesario calcularse y volver a calcularse varias funciones trigonométricas (por ejemplo, cos y sen) en cada iteración. El modo de actualizar la estimación (adicional o compuesta) desempeña también un papel importante en la complejidad del algoritmo.
De acuerdo con realizaciones de la invención, se realizan las siguientes consideraciones:
En la figura 6, se muestra una posible implementación del algoritmo de Gauss-Newton para una estimación de postura no lineal en la que la matriz jacobiana se calcula previamente después de la etapa inicial de determinar la estimación inicial de la matriz de transformación T1 y la actualización se realiza de una forma compuesta. Con respecto al proceso convencional tal como se muestra en la figura 3, de acuerdo con el presente aspecto de la invención, el proceso de iteración no vuelve al cálculo (que requiere mucho tiempo) de una nueva matriz jacobiana basándose en una nueva matriz de transformación Tnueva, sino que vuelve a la etapa de cálculo del vector de error e. De acuerdo con la invención, mantener fija la matriz jacobiana y no actualizarla durante el proceso de minimización iterativa proporciona aún muy buenos resultados. La matriz jacobiana calculada justo después de la solución lineal de la matriz de transformación T obteniendo la matriz T1 es una buena aproximación que permite alcanzar el mínimo de la función de coste con una potencia de cálculo mucho menor.
En la figura 7, se muestra que en el caso de que se use el algoritmo de Gauss-Newton para una estimación de postura no lineal, si la actualización se resuelve usando la inversa generalizada Jp, la inversa generalizada Jp asimismo puede calcularse previamente. Por lo tanto, con respecto al proceso de la figura 6 la carga de cálculo en el bucle de iteración puede reducirse adicionalmente, en particular cuando se resuelve el sistema J d = e de una manera eficiente con el uso de la ecuación d = Jp e y calculando previamente Jp.
En la figura 8, se muestra una posible implementación del algoritmo de Levenberg-Marquardt para una estimación de postura no lineal en la que la matriz jacobiana J y la matriz JTJ se calculan previamente y la actualización se realiza de una forma compuesta. Con respecto al proceso convencional tal como se muestra en la figura 5, de acuerdo con el presente aspecto de la invención el proceso de iteración no vuelve al cálculo (que requiere mucho tiempo) de una nueva matriz jacobiana basándose en una nueva matriz Tnueva, sino que vuelve a la etapa de cálculo del vector de error e o la etapa de resolución del sistema (JTJ+A Id) d = JTe, respectivamente. De acuerdo con la invención, mantener fija la matriz jacobiana y no actualizarla durante el proceso de minimización iterativa proporciona aún muy buenos resultados.
En la figura 9, se muestra una posible implementación del algoritmo de Levenberg-Marquardt para una estimación de postura no lineal en la que, ambas, la matriz jacobiana J y la matriz JTJ = Q se calculan previamente y la actualización se calcula usando la inversa generalizada. Por lo tanto, con respecto al proceso de la figura 5 puede aumentarse significativamente la carga de cálculo en el bucle de iteración.
En la figura 10, se muestra una posible implementación del algoritmo de Levenberg-Marquardt para una estimación de postura no lineal en la que la actualización se calcula usando la inversa generalizada, en la que la matriz jacobiana J y la matriz JTJ se calculan previamente y la actualización se calcula usando la inversa generalizada, y en la que se han realizado algunos cálculos previos más (tal como la descomposición del valor propio de JTJ, que se conoce básicamente por el experto en la materia) con el fin de tener una matriz más sencilla de invertir en el bucle principal.
De acuerdo con algunos aspectos de la invención, puede elegirse una parametrización apropiada de la matriz de transformación T, en la que pueden elegirse múltiples tipos de parametrizaciones. De acuerdo con una realización, se decide parametrizar la matriz LT usando el álgebra de Lie se(3) asociada con el grupo de Lie SE(3) (véase anteriormente).
La complejidad de cálculo de jacobiana se reduce entonces considerablemente. Se obtiene una expresión sencilla y analítica de la matriz jacobiana. Además, cuando se usa el enfoque de actualización compuesta, pueden calcularse previamente partes de la matriz jacobiana obtenida. Esto reduce el procesamiento en tiempo de ejecución. Véase el efecto de tal parametrización en la simplificación de un cálculo de jacobiana en el contexto de seguimiento sin marcadores plano en: “Integration of Euclidean constraints in template based visual tracking of piecewise-planar scenes”, Selim Benhimane y Ezio Malis, en Proceedings of the 2006 IEEE/RSJ International Conference on Intelligent Robots and Systems, 9 - 15 de octubre, páginas 1218 - 1223, 2006, Pekín, China. El error de la función de coste en este documento se basaba en el error fotométrico entre una plantilla de referencia y platilla actual. No se basaba en el error geométrico tal como se considera en la presente invención.
Además de lo anterior, la estimación no lineal sigue requiriendo mucho tiempo y ejecutarla en hardware con una potencia de cálculo muy limitada, tal como en dispositivos móviles, hace imposible tener la estimación de postura para realizarse en tiempo real especialmente con un número de puntos muy elevado. De acuerdo con la invención, manteniendo fija la matriz jacobiana y no actualizándola durante el proceso de minimización iterativa (o bien usando el método de Gauss-Newton o bien usando el método de Levenberg-Marquardt) proporciona aún muy buenos resultados. La matriz jacobiana calculada justo después de la solución lineal es una buena aproximación que permite alcanzar el mínimo de la función de coste con una potencia de cálculo mucho menor.
De acuerdo con una realización de la invención, los diferentes aspectos tal como se describen anteriormente pueden también combinarse en un método para determinar la postura de una cámara. Por ejemplo, usando la parametrización de álgebra de Lie durante una estimación no lineal basándose en una actualización compuesta se reduce el coste de cálculo del problema de la estimación de postura. Usando una matriz jacobiana fija, tal como se explica con respecto a las figuras 6-10, se reduce el coste de cálculo sin deteriorar el resultado.
El método puede implementarse en un programa informático adaptado para cargarse en la memoria interna de un ordenador. Tal ordenador puede incluir además, por ejemplo, un procesador convencional 2 tal como se muestra en la figura 1 y puede estar acoplado con una cámara, tal como la cámara I que se muestra en la figura 1, para tomar imágenes de un entorno real. El producto de programa informático que tiene el programa informático almacenado en el mismo comprende secciones de código de software por medio de las cuales se realizan las etapas de acuerdo con cualquiera de las realizaciones que se mencionan anteriormente del método de acuerdo con la invención cuando dicho programa o producto se está ejecutando en dicho ordenador. En una realización adicional, el método puede también estar integrado o incrustado en un chip usado en conexión con el procesamiento de imágenes de cámara. Por ejemplo, tal chip incrustado puede estar acoplado con o incorporado en el procesador 2 o la cámara 1.

Claims (12)

  1. REIVINDICACIONES
    1. Un método para determinar la postura de una cámara con respecto a por lo menos un objeto real, comprendiendo el método las etapas de:
    -
    accionar la cámara (1) para capturar una imagen bidimensional (4) que incluye por lo menos una parte del objeto real (3), caracterizado por:
    -
    proporcionar una matriz de transformación (T) que incluye información con respecto a una correspondencia entre puntos tridimensionales (Pi*) asociados con el objeto real (3) y unos puntos bidimensionales correspondientes (pi) del objeto real (5) tal como se incluyen en la imagen bidimensional (4),
    -
    determinar una estimación inicial de la matriz de transformación (T1) como base inicial para un proceso de minimización iterativa usado para depurar de forma iterativa la matriz de transformación,
    -
    determinar una matriz jacobiana (J) que incluye información con respecto a la estimación inicial de la matriz de transformación (T1) y valores de referencia de los puntos tridimensionales (Pi*) asociados con el objeto real (3),
    -
    en el proceso de minimización iterativa, determinar en cada uno de múltiples bucles de iteración una versión actualizada respectiva de la matriz de transformación (T) basándose en una versión previa respectiva de la matriz de transformación (T) y basándose en la matriz jacobiana (J), en el que la matriz jacobiana no se actualiza durante el proceso de minimización iterativa, y
    -
    determinar la postura de la cámara (1) con respecto al objeto real (3) usando la matriz de transformación
    (T) determinada al final del proceso de minimización iterativa.
  2. 2. Un método para determinar la postura de una cámara con respecto a por lo menos un objeto real, comprendiendo el método las etapas de:
    -
    accionar la cámara (1) para capturar una imagen tridimensional (4) que incluye por lo menos una parte del objeto real (3),
    -
    proporcionar una matriz de transformación (T) que incluye información con respecto a una correspondencia entre puntos tridimensionales (Pi*) asociados con el objeto real (3) y unos puntos tridimensionales correspondientes (pi) del objeto real (5) tal como se incluyen en la imagen tridimensional (4),
    -
    determinar una estimación inicial de la matriz de transformación (T1) como base inicial para un proceso de minimización iterativa usado para depurar de forma iterativa la matriz de transformación,
    -
    determinar una matriz jacobiana (J) que incluye información con respecto a la estimación inicial de la matriz de transformación (T1) y valores de referencia de los puntos tridimensionales (Pi*) asociados con el objeto real (3),
    -
    en el proceso de minimización iterativa, determinar en cada uno de múltiples bucles de iteración una versión actualizada respectiva de la matriz de transformación (T) basándose en una versión previa respectiva de la matriz de transformación (T) y basándose en la matriz jacobiana (J), en el que la matriz jacobiana no se actualiza durante el proceso de minimización iterativa, y
    -
    determinar la postura de la cámara (1) con respecto al objeto real (3) usando la matriz de transformación (T) determinada al final del proceso de minimización iterativa.
  3. 3.
    El método de acuerdo con la reivindicación 1 o 2, en el que el proceso de minimización iterativa implica el algoritmo de Gauss-Newton o el algoritmo de Levenberg-Marquardt.
  4. 4.
    El método de acuerdo con una de las reivindicaciones 1 a 3, en el que el proceso de minimización iterativa implica un proceso de actualización compuesta en el que la versión actualizada respectiva de la matriz de transformación (T) se calcula a partir de una multiplicación entre una matriz (LT(d)) construida con parámetros de actualización de la matriz de transformación previa respectiva y la matriz de transformación previa respectiva (T).
  5. 5.
    El método de acuerdo con una de las reivindicaciones 1 a 4, en el que el proceso de minimización iterativa implica el algoritmo de Gauss-Newton, comprendiendo el proceso de minimización iterativa en cada bucle de iteración las etapas de:
    -
    determinar un vector de error e,
    -
    determinar un vector de actualización d mediante la resolución del sistema: J d = e, siendo J la matriz jacobiana,
    -
    determinar una versión actualizada respectiva de la matriz de transformación basándose en una versión previa respectiva de la matriz de transformación al comienzo del bucle de iteración respectivo y basándose en el vector de actualización d,
    -
    en el que, después de determinar la versión actualizada respectiva de la matriz de transformación, el proceso de minimización iterativa vuelve a determinar un nuevo vector de error e basándose en la versión actualizada respectiva de la matriz de transformación.
  6. 6.
    El método de acuerdo con la reivindicación 5, en el que el vector de actualización d se calcula a partir de: d = (JTJ)-lJTe = Jpe, calculándose Jp al comienzo del proceso de minimización iterativa y manteniéndose fija en múltiples bucles de iteración durante el proceso de minimización iterativa.
  7. 7.
    El método de acuerdo con una de las reivindicaciones 1 a 4, en el que el proceso de minimización iterativa implica el algoritmo de Levenberg-Marquardt, comprendiendo el proceso de minimización iterativa en cada bucle de iteración las etapas de:
    -
    determinar un vector de error e,
    -
    determinar un vector de actualización d mediante la resolución del sistema: (JTJ+A Id) d = JTe, siendo J la matriz jacobiana,
    -
    determinar una versión actualizada respectiva de la matriz de transformación basándose en una versión previa respectiva de la matriz de transformación al comienzo del bucle de iteración respectivo y basándose en el vector de actualización d,
    -
    en el que, después de determinar la versión actualizada respectiva de la matriz de transformación, el proceso de minimización iterativa vuelve a determinar un nuevo vector de error e basándose en la versión actualizada respectiva de la matriz de transformación o determinar un nuevo vector de actualización d.
  8. 8.
    El método de acuerdo con la reivindicación 7, en el que el vector de actualización d se calcula a partir de: d = (Q+A Id)-1 JTe, calculándose Q = JTJ al comienzo del proceso de minimización iterativa y manteniéndose fija en múltiples bucles de iteración durante el proceso de minimización iterativa.
  9. 9.
    El método de acuerdo con una de las reivindicaciones 1 a 8, en el que en el proceso de minimización iterativa se usa una parametrización de álgebra de Lie.
  10. 10.
    El método de acuerdo con una de las reivindicaciones 5 a 8, que además comprende
    -
    determinar una matriz de actualización LT(d) usando el vector de actualización d,
    -
    en el que la matriz de actualización LT(d) se parametriza usando álgebra de Lie.
  11. 11.
    El método de acuerdo con la reivindicación 10, en el que la matriz de actualización LT(d) se parametriza usando álgebra de Lie se(3) asociada con el grupo de Lie SE(3).
  12. 12.
    Un producto de programa informático adaptado para cargarse en la memoria interna de un ordenador, que está acoplado con una cámara para tomar imágenes de un entorno real, y que comprende secciones de código de software por medio de las cuales las etapas de acuerdo con cualquiera de las reivindicaciones 1 a 11 se realizan cuando dicho producto se está ejecutando en dicho ordenador.
ES09777521T 2009-07-29 2009-07-29 Método para determinar la postura de una cámara con respecto a por lo menos un objeto real Active ES2399636T3 (es)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/EP2009/005495 WO2011012142A1 (en) 2009-07-29 2009-07-29 Method for determining the pose of a camera with respect to at least one real object

Publications (1)

Publication Number Publication Date
ES2399636T3 true ES2399636T3 (es) 2013-04-02

Family

ID=41544734

Family Applications (1)

Application Number Title Priority Date Filing Date
ES09777521T Active ES2399636T3 (es) 2009-07-29 2009-07-29 Método para determinar la postura de una cámara con respecto a por lo menos un objeto real

Country Status (4)

Country Link
US (1) US9111347B2 (es)
EP (1) EP2382599B1 (es)
ES (1) ES2399636T3 (es)
WO (1) WO2011012142A1 (es)

Families Citing this family (45)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10896327B1 (en) 2013-03-15 2021-01-19 Spatial Cam Llc Device with a camera for locating hidden object
US10354407B2 (en) 2013-03-15 2019-07-16 Spatial Cam Llc Camera for locating hidden objects
US9736368B2 (en) * 2013-03-15 2017-08-15 Spatial Cam Llc Camera in a headframe for object tracking
US8503720B2 (en) 2009-05-01 2013-08-06 Microsoft Corporation Human body pose estimation
WO2011106520A1 (en) 2010-02-24 2011-09-01 Ipplex Holdings Corporation Augmented reality panorama supporting visually impaired individuals
US8942917B2 (en) 2011-02-14 2015-01-27 Microsoft Corporation Change invariant scene recognition by an agent
DE102012015056A1 (de) * 2012-07-28 2014-02-13 Bsautomatisierung Gmbh Robotersteuerungsvorrichtung
US9857470B2 (en) 2012-12-28 2018-01-02 Microsoft Technology Licensing, Llc Using photometric stereo for 3D environment modeling
JP6370038B2 (ja) * 2013-02-07 2018-08-08 キヤノン株式会社 位置姿勢計測装置及び方法
US9940553B2 (en) 2013-02-22 2018-04-10 Microsoft Technology Licensing, Llc Camera/object pose from predicted coordinates
US20180046265A1 (en) * 2013-06-06 2018-02-15 Idhl Holdings, Inc. Latency Masking Systems and Methods
GB2518673A (en) * 2013-09-30 2015-04-01 Ortery Technologies Inc A method using 3D geometry data for virtual reality presentation and control in 3D space
WO2017039348A1 (en) * 2015-09-01 2017-03-09 Samsung Electronics Co., Ltd. Image capturing apparatus and operating method thereof
US9869863B2 (en) * 2015-10-05 2018-01-16 Unity IPR ApS Systems and methods for processing a 2D video
US10546385B2 (en) * 2016-02-25 2020-01-28 Technion Research & Development Foundation Limited System and method for image capture device pose estimation
JP2017182274A (ja) 2016-03-29 2017-10-05 セイコーエプソン株式会社 情報処理装置およびコンピュータープログラム
JP2017187882A (ja) * 2016-04-04 2017-10-12 セイコーエプソン株式会社 画像処理に用いられるコンピュータープログラム
US20180211404A1 (en) * 2017-01-23 2018-07-26 Hong Kong Applied Science And Technology Research Institute Co., Ltd. 3d marker model construction and real-time tracking using monocular camera
US10453273B2 (en) 2017-04-25 2019-10-22 Microsoft Technology Licensing, Llc Method and system for providing an object in virtual or semi-virtual space based on a user characteristic
US10621751B2 (en) 2017-06-16 2020-04-14 Seiko Epson Corporation Information processing device and computer program
DE102017128369A1 (de) 2017-11-30 2019-06-06 Infineon Technologies Ag Vorrichtung und verfahren zum lokalisieren eines ersten bauelements, lokalisierungsvorrichtung und verfahren zur lokalisierung
US10552665B2 (en) 2017-12-12 2020-02-04 Seiko Epson Corporation Methods and systems for training an object detection algorithm using synthetic images
US10970425B2 (en) 2017-12-26 2021-04-06 Seiko Epson Corporation Object detection and tracking
US10410089B2 (en) 2018-01-19 2019-09-10 Seiko Epson Corporation Training assistance using synthetic images
US10311833B1 (en) 2018-03-27 2019-06-04 Seiko Epson Corporation Head-mounted display device and method of operating a display apparatus tracking an object
US10769437B2 (en) 2018-04-10 2020-09-08 Seiko Epson Corporation Adaptive sampling of training views
US10878285B2 (en) 2018-04-12 2020-12-29 Seiko Epson Corporation Methods and systems for shape based training for an object detection algorithm
JP6640294B1 (ja) * 2018-08-24 2020-02-05 株式会社Cygames 複合現実システム、プログラム、携帯端末装置、及び方法
US10634918B2 (en) 2018-09-06 2020-04-28 Seiko Epson Corporation Internal edge verification
DE102018218475B4 (de) 2018-10-29 2022-03-10 Carl Zeiss Optotechnik GmbH Trackingsystem und optisches Messsystem zur Bestimmung mindestens einer räumlichen Position und Orientierung mindestens eines Messobjekts
CN109544629B (zh) * 2018-11-29 2021-03-23 南京人工智能高等研究院有限公司 摄像头位姿确定方法和装置以及电子设备
CN110032278B (zh) * 2019-03-29 2020-07-14 华中科技大学 一种人眼感兴趣物体的位姿识别方法、装置及系统
WO2020208686A1 (ja) * 2019-04-08 2020-10-15 日本電気株式会社 カメラ校正装置、カメラ校正方法、及びプログラムが格納された非一時的なコンピュータ可読媒体
KR102770795B1 (ko) * 2019-09-09 2025-02-21 삼성전자주식회사 3d 렌더링 방법 및 장치
US11443455B2 (en) * 2019-10-24 2022-09-13 Microsoft Technology Licensing, Llc Prior informed pose and scale estimation
CN110796710B (zh) * 2019-10-29 2024-05-10 轻客小觅机器人科技(成都)有限公司 基于流形空间的快速在线标定相机外参的方法和模块
EP3848900A1 (en) 2020-01-10 2021-07-14 Aptiv Technologies Limited Methods and systems for calibrating a camera
CN113542328B (zh) * 2020-04-20 2023-08-29 上海哔哩哔哩科技有限公司 虚拟环境数据同步方法及装置
JP7752134B2 (ja) * 2020-05-11 2025-10-09 マジック リープ, インコーポレイテッド 3d環境の合成表現を算出するための算出上効率的方法
CN112179355B (zh) * 2020-09-02 2023-05-26 西安交通大学 针对光度曲线典型特征的姿态估计方法
DE102020134680B4 (de) 2020-12-22 2023-01-19 Visometry GmbH Verfahren und Anordnung zur Qualitätsprüfung eines Objekts
CN115345943B (zh) * 2022-08-08 2024-04-16 恩纳基智能装备(无锡)股份有限公司 一种基于差模概念的标定方法
CN115533917B (zh) * 2022-10-31 2025-07-15 深圳市凌云视迅科技有限责任公司 机器人手眼标定方法、装置、计算机设备和介质
CN116337064B (zh) * 2022-12-02 2026-05-12 北京航空航天大学 一种基于欧拉角扰动模型的终端设备定位方法
CN116105753A (zh) * 2023-03-23 2023-05-12 江苏科技大学 一种分布式多机器人协同slam的位姿优化方法

Family Cites Families (18)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5850469A (en) 1996-07-09 1998-12-15 General Electric Company Real time tracking of camera pose
US7203384B2 (en) 2003-02-24 2007-04-10 Electronic Scripting Products, Inc. Implement for optically inferring information from a planar jotting surface
JP4349367B2 (ja) * 2003-10-30 2009-10-21 日本電気株式会社 物体の位置姿勢を推定する推定システム、推定方法および推定プログラム
US7110100B2 (en) 2003-11-04 2006-09-19 Electronic Scripting Products, Inc. Apparatus and method for determining an inclination of an elongate object contacting a plane surface
US7038846B2 (en) 2003-11-24 2006-05-02 Electronic Scripting Products, Inc. Solid catadioptric lens with a single viewpoint
US7268956B2 (en) 2003-11-24 2007-09-11 Electronic Scripting Products, Inc. Solid catadioptric lens with two viewpoints
US7088440B2 (en) 2003-12-22 2006-08-08 Electronic Scripting Products, Inc. Method and apparatus for determining absolute position of a tip of an elongate object on a plane surface with invariant features
US9229540B2 (en) 2004-01-30 2016-01-05 Electronic Scripting Products, Inc. Deriving input from six degrees of freedom interfaces
US7961909B2 (en) 2006-03-08 2011-06-14 Electronic Scripting Products, Inc. Computer interface employing a manipulated object with absolute pose detection component and a display
US7826641B2 (en) 2004-01-30 2010-11-02 Electronic Scripting Products, Inc. Apparatus and method for determining an absolute pose of a manipulated object in a real three-dimensional environment with invariant features
US8542219B2 (en) 2004-01-30 2013-09-24 Electronic Scripting Products, Inc. Processing pose data derived from the pose of an elongate object
US7729515B2 (en) 2006-03-08 2010-06-01 Electronic Scripting Products, Inc. Optical navigation apparatus using fixed beacons and a centroid sensing device
US7023536B2 (en) 2004-03-08 2006-04-04 Electronic Scripting Products, Inc. Apparatus and method for determining orientation parameters of an elongate object
US7161664B2 (en) 2004-04-13 2007-01-09 Electronic Scripting Products, Inc. Apparatus and method for optical determination of intermediate distances
JP4593968B2 (ja) * 2004-05-14 2010-12-08 キヤノン株式会社 位置姿勢計測方法および装置
JP2005326275A (ja) 2004-05-14 2005-11-24 Canon Inc 情報処理方法および装置
US7113270B2 (en) 2004-06-18 2006-09-26 Electronics Scripting Products, Inc. Determination of an orientation parameter of an elongate object with a scan beam apparatus
US8970709B2 (en) 2013-03-13 2015-03-03 Electronic Scripting Products, Inc. Reduced homography for recovery of pose parameters of an optical apparatus producing image data with structural uncertainty

Also Published As

Publication number Publication date
EP2382599A1 (en) 2011-11-02
US20120120199A1 (en) 2012-05-17
US9111347B2 (en) 2015-08-18
WO2011012142A1 (en) 2011-02-03
EP2382599B1 (en) 2012-12-12

Similar Documents

Publication Publication Date Title
EP2382599B1 (en) Method for determining the pose of a camera with respect to at least one real object
CN103988226B (zh) 用于估计摄像机运动以及用于确定实境三维模型的方法
EP3547256B1 (en) Extracting a feature descriptor for an image feature
US20140037140A1 (en) Method for determining correspondences between a first and a second image, and method for determining the pose of a camera
CN109558879A (zh) 一种基于点线特征的视觉slam方法和装置
Tamas et al. Targetless calibration of a lidar-perspective camera pair
Kurz et al. Gravity-aware handheld augmented reality
Yu et al. A tracking solution for mobile augmented reality based on sensor-aided marker-less tracking and panoramic mapping
Fang et al. Multi-sensor based real-time 6-DoF pose tracking for wearable augmented reality
Li et al. A vision-based navigation system with markerless image registration and position-sensing localization for oral and maxillofacial surgery
Lin et al. Marker-less registration based on template tracking for augmented reality
Mair et al. Efficient camera-based pose estimation for real-time applications
Amor-Martinez et al. Planar PØP: Feature-less pose estimation with applications in UAV localization
Pears et al. Mobile robot visual navigation using multiple features
Gaschler Real-time marker-based motion tracking: Application to kinematic model estimation of a humanoid robot
Kahmen et al. Orientation of point clouds for complex surfaces in medical surgery using trinocular visual odometry and stereo orb-slam2
Yssa Geometry model for marker-based localisation
Shi et al. Attitude-sensor-aided in-process registration of multi-view surface measurement
Wang et al. An ar projection improvement strategy via the integration of target detection and orb-slam2
Park et al. Vision-based real-time camera match moving using a known marker
Loizou et al. Model-based 3D Visual Tracking of Rigid bodies using distance transform
Deng et al. NAT-3D: A Non-Rigid Approach for Accurate 3D Tracking of Basic Surgical Instruments
Wang et al. Work area monitoring in dynamic environments using multiple auto-aligning 3-D sensors
Vokhmintsev et al. Development of a method for constructing a 3D accurate map of the surrounding environment
de Jongh Independently moving multi-camera system for cyclist motion capture