Tabla de contenido:

Reconstrucción 3D a partir de una sola foto: 8 pasos
Reconstrucción 3D a partir de una sola foto: 8 pasos

Video: Reconstrucción 3D a partir de una sola foto: 8 pasos

Video: Reconstrucción 3D a partir de una sola foto: 8 pasos
Video: #Ciencia | Reconstrucción 3D a partir de una sola imagen mediante redes neuronales convolucionales 2024, Noviembre
Anonim
Reconstrucción 3D a partir de una sola foto
Reconstrucción 3D a partir de una sola foto
Reconstrucción 3D a partir de una sola foto
Reconstrucción 3D a partir de una sola foto

La tarea de reconstrucción 3D suele estar asociada a la visión binocular. Alternativamente, puede mover una sola cámara alrededor del objeto. Mientras tanto, si se conoce la forma del objeto, la tarea puede resolverse a partir de una sola foto. Es decir, tienes una sola cámara y no se mueve. Veamos cómo hacerlo paso a paso. Usaremos Rubik's Cube porque está bien estandarizado y tiene un rico conjunto de características. Puede considerarse como un objeto muy simple y al mismo tiempo como una construcción complicada. Por lo tanto, la visión artificial debe superar obstáculos sustanciales para completar la tarea.

Paso 1: evaluar la complejidad de la tarea

Evaluar la complejidad de la tarea
Evaluar la complejidad de la tarea
Evaluar la complejidad de la tarea
Evaluar la complejidad de la tarea
Evaluar la complejidad de la tarea
Evaluar la complejidad de la tarea
Evaluar la complejidad de la tarea
Evaluar la complejidad de la tarea

A primera vista, la tarea es sencilla. Encuentra el nudo central donde se unen las 3 aristas del cubo y dibuja estas aristas. A partir de sus coordenadas, es posible calcular la distancia a la cámara y los ángulos de rotación. El problema es que estas líneas no existen. En la imagen de la izquierda puede ver que cada borde está representado por 2 líneas paralelas. Además, la imagen superior derecha muestra que cada uno de ellos está dividido en 3 segmentos. Además, si aplicamos una variante de la popular transformada de Hough que puede detectar segmentos de línea, realiza la tarea con algunos errores que imposibilitan la detección del nudo central. Si los extremos no se alcanzan, no hay un solo punto. Si la detección sobrepasa el final, se verá como el nudo en el medio del borde como se ve en las 2 imágenes restantes.

Paso 2: encuentre el enfoque adecuado

Encuentre el enfoque adecuado
Encuentre el enfoque adecuado

Cuando demasiados detalles hacen que los algoritmos deterministas no funcionen, es hora de considerar el enfoque probabilístico. Si calculamos los parámetros promediados de la imagen, sus errores disminuirán sustancialmente y, paradójicamente, el método resultará más confiable. La transformada de Hough estándar no genera segmentos de línea. Solo su pendiente theta y la distancia rho desde el origen de las coordenadas. Forman parte del espacio Hough que se muestra arriba. Aquí theta corresponde al eje horizontal. Los puntos brillantes marcan posibles líneas en la imagen. Tenga en cuenta que varios de estos puntos se encuentran uno encima del otro. No es de extrañar, en nuestra imagen hay muchas líneas paralelas. Tienen el mismo theta y diferente rho.

Paso 3: Calcule el histograma Theta

Calcular histograma theta
Calcular histograma theta

Detectemos tales grupos. Para este propósito, resumiremos las lecturas de todos los puntos en el espacio de Hough con la misma theta. Verá el histograma correspondiente en la ilustración. Algunas notas sobre las medidas. Cuando trabaja con imágenes en coordenadas de píxeles, el eje X va como de costumbre, pero Y apunta hacia abajo, por lo que el origen de las coordenadas es la esquina superior izquierda y theta debe medirse desde el eje X en el sentido de las agujas del reloj. Teniendo en cuenta que todo el barrido de theta en la imagen es de 180 grados, puede verificar aproximadamente que 3 picos principales representan 3 pendientes predominantes en la imagen.

Paso 4: Calcule el histograma Rho

Calcular histograma Rho
Calcular histograma Rho

Ahora que conocemos 3 grupos principales de líneas paralelas, separemos las líneas dentro de cada una de ellas. Podemos repetir el mismo enfoque. Tomemos una columna del espacio de Hough que corresponde a un pico en el histograma theta. A continuación, calcularemos otro histograma donde el eje X representa el valor de rho y las lecturas resumidas de Y para este rho. Obviamente, la suma será menor, por lo que este gráfico no es tan suave. Sin embargo, los picos son claramente visibles y el número de ellos (7) corresponde exactamente al número de líneas paralelas en la imagen de origen. Desafortunadamente, no todos los gráficos son tan perfectos, pero el principio es claro.

Paso 5: Encuentra el nudo central

Encuentra el nudo central
Encuentra el nudo central

Si tomamos el pico central en el histograma rho para cada theta, obtendremos 3 líneas que son rojas en la imagen. Su intersección marca el punto necesario.

Paso 6: elija entre 2 alternativas

Elija entre 2 alternativas
Elija entre 2 alternativas
Elija entre 2 alternativas
Elija entre 2 alternativas

Ves que cada línea va desde el punto central en ambas direcciones. ¿Cómo determinar la mitad correcta? Tomemos theta3. Supongamos que tomamos la parte inferior de esta línea. Calculemos otro espacio de Hough solo para la parte de la imagen desde 2 líneas verdes hasta la esquina superior derecha de la imagen. Luego crea un histograma theta para ello. Verá que el tercer pico desapareció por completo, por lo que hemos tomado la decisión correcta.

Paso 7: Determine las esquinas externas

Determine las esquinas externas
Determine las esquinas externas

Ahora podemos usar el primer y último pico en los histogramas de ro para dibujar líneas azules que cortan los bordes rojos y marcan el resto de las esquinas. La tarea está resuelta.

Paso 8: Pruébelo en la práctica

Las ilustraciones de este Instructable se crearon utilizando Perception 1.0. Este es un software gratuito que utiliza OpenCV, una poderosa biblioteca para visión por computadora. También puede estar vinculado a WinNB, que se usó en mi otro Instructable, lo que proporciona capacidad de visión para robótica. Puede descargar ambos programas desde nbsite. Para la instalación, simplemente ejecute el archivo exe descargado. Más tarde, puede eliminarlo con la herramienta estándar de Windows. El sitio también contiene recursos sobre visión artificial y temas relacionados. En Perception encontrará el método descrito de reconstrucción 3D, así como muchos otros. La ventaja de este programa es que genera el resultado final junto con datos intermedios. Puede investigar cómo funciona la visión por computadora sin ser un programador. En cuanto a la entrada, cada método tiene muestras típicas especialmente seleccionadas. Por supuesto, también puede usar el suyo. Es posible ingresar imágenes desde un archivo o desde la cámara de la computadora. No dude en contactarme con cualquier pregunta o sugerencia.

Recomendado: