La estimación de pose 3D es un proceso de predicción de la transformación de un objeto a partir de una pose de referencia definida por el usuario, dada una imagen o un escaneo 3D . Surge en visión por computadora o robótica , donde la pose o transformación de un objeto se puede usar para alinear modelos de diseño asistidos por computadora , identificar, agarrar o manipular el objeto.
Los datos de imagen a partir de los cuales se determina la pose de un objeto pueden ser una sola imagen, un par de imágenes estéreo o una secuencia de imágenes en la que, normalmente, la cámara se mueve con una velocidad conocida. Los objetos que se consideran pueden ser bastante generales, incluyendo un ser vivo o partes del cuerpo, por ejemplo, una cabeza o unas manos. Sin embargo, los métodos que se utilizan para determinar la pose de un objeto suelen ser específicos de una clase de objetos y, en general, no se puede esperar que funcionen bien para otros tipos de objetos.
Es posible estimar la rotación y traslación 3D de un objeto 3D a partir de una única fotografía 2D, si se conoce un modelo 3D aproximado del objeto y se conocen los puntos correspondientes en la imagen 2D. Recientemente se ha desarrollado una técnica común para resolver este problema [ ¿cuándo? ] ha sido "POSIT", [1] donde la pose 3D se estima directamente a partir de los puntos del modelo 3D y los puntos de la imagen 2D, y corrige los errores de forma iterativa hasta que se encuentra una buena estimación a partir de una sola imagen. [2] La mayoría de las implementaciones de POSIT solo funcionan en puntos no coplanares (en otras palabras, no funcionan con objetos planos o planos). [3]
Otro enfoque consiste en registrar un modelo CAD 3D sobre la fotografía de un objeto conocido optimizando una medida de distancia adecuada con respecto a los parámetros de pose. [4] [5] La medida de distancia se calcula entre el objeto en la fotografía y la proyección del modelo CAD 3D en una pose determinada. Es posible la proyección en perspectiva o la proyección ortogonal dependiendo de la representación de pose utilizada. Este enfoque es apropiado para aplicaciones donde está disponible un modelo CAD 3D de un objeto conocido (o categoría de objeto).
Dada una imagen 2D de un objeto y la cámara que está calibrada con respecto a un sistema de coordenadas mundial, también es posible encontrar la pose que le da al objeto 3D en su sistema de coordenadas de objeto. [6] Esto funciona de la siguiente manera.
A partir de una imagen 2D, se extraen puntos de la imagen que corresponden a las esquinas de una imagen. Los rayos de proyección de los puntos de la imagen se reconstruyen a partir de los puntos 2D, de modo que se pueden determinar los puntos 3D que deben incidir en los rayos reconstruidos.
El algoritmo para determinar la estimación de la pose se basa en el algoritmo iterativo del punto más cercano . La idea principal es determinar las correspondencias entre las características de la imagen 2D y los puntos en la curva del modelo 3D.
(a) Reconstruir los rayos de proyección a partir de los puntos de la imagen.(b) Estime el punto más cercano de cada rayo de proyección a un punto en el contorno 3D(c) Estime la pose del contorno con el uso de este conjunto de correspondencia(d) ir a (b)
El algoritmo anterior no tiene en cuenta imágenes que contienen un objeto parcialmente ocluido. El siguiente algoritmo supone que todos los contornos están acoplados rígidamente, lo que significa que la pose de un contorno define la pose de otro contorno.
(a) Reconstruir los rayos de proyección a partir de los puntos de la imagen.(b) Para cada rayo de proyección R: (c) Para cada contorno 3D: (c1) Estime el punto P1 del rayo R más cercano a un punto del contorno (c2) si (n == 1) elija P1 como P real para la correspondencia punto-línea (c3) en caso contrario compare P1 con P: si dist(P1, R) es menor que dist(P, R) entonces elija P1 como nueva P(d) Utilice (P, R) como conjunto de correspondencia.(e) Estimar la pose con este conjunto de correspondencia(f) Transformar contornos, ir a (b)
Existen sistemas que utilizan una base de datos de un objeto con diferentes rotaciones y traslaciones para comparar una imagen de entrada y estimar la pose. La precisión de estos sistemas se limita a situaciones que están representadas en su base de datos de imágenes, sin embargo el objetivo es reconocer una pose, en lugar de determinarla. [7]