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 PDFInfo
- 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
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.
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.
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.
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.
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)
- REIVINDICACIONES1. 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. 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
- 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.
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)
| 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)
| 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 |
-
2009
- 2009-07-29 ES ES09777521T patent/ES2399636T3/es active Active
- 2009-07-29 EP EP09777521A patent/EP2382599B1/en active Active
- 2009-07-29 US US13/380,421 patent/US9111347B2/en active Active
- 2009-07-29 WO PCT/EP2009/005495 patent/WO2011012142A1/en not_active Ceased
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 |