Stitching y visión robótica.

906

En el verano del 2008 participé gracias a una beca del entonces Consejo de Ciencia y Tecnología del Estado de Guanajuato (CONCYTEG), en un proyecto sobre visión robótica llamado “Stitching”, que traducido al español significa zurcido, costura, etc.

Este era uno de 100 proyectos estratégicos distribuidos con estudiantes, de los cuales formaba un gran rompecabezas, que se estarían integrando en 50 en la segunda parte, 25 en la tercera, 5 en la cuarta hasta llegar a uno solo, en un tiempo tal vez de un año.

Mi motivación personal a tomar la beca fue, el conocer ¿cómo ve un robot?, el proceso que sigue para identificar una imagen, los algoritmos a generar para codificar la imagen, y, el reto personal, bajo que lenguaje de computadora lo podría leer.

Elaborada la carta solicitud, la larga espera para conocer si estaba aceptado, seguí en mis lecturas conociendo sobre la visión robótica, y me daba cuenta acerca de las matrices o determinantes, la matemática que se emplea, además de las gráficas que se van generando.Aceptado ya en el verano científico 2008, la sede fue el Centro de Investigaciones en Óptica (CIO), en el laboratorio de metrología láser II, el proyecto asignado “Stitching”.

Desde un principio fue interesante el concepto, poniéndose todavía más, al generar un proceso propio de reingeniería inversa digitalizado; para lo cual, primeramente, hay que conocer cómo funciona con el software comercial y su scanner.

Ya ubicado en el área de trabajo, se me asigno un equipo para ir conociendo el software llamado “Geomagic”, sus comandos, y poder practicar con los ejemplos que trae el tutorial. El primer ejercicio fue el armado de un cartucho digital de un fusil, se me daba desarmado, a manera de un rompecabezas, manipulando las figuras, girándolas, buscando como ensamblarlas, la señal de un “match” o ensamble correcto, es un color verde claro, en caso contrario el color era rojo.Así pasaban las horas practicando con las distintas piezas que me mostraba, dominando cada vez más el software “Geomagic”, hasta llegar al reto mayor, digitalizar ya piezas reales.Para llevar a cabo este proceso, primeramente, se les colocaban a las piezas una serie de puntos con pintura luminiscente (la misma que se usa en los señalamientos en carretera), con el fin de que el scanner los pueda leer y se genere la información necesaria como dato o Array. Separados cada “n” cantidad de centímetros, la figura estaría lista, no existe ningún hueco todo está ya cubierto.

Se procede a usar el Scaner Z7000, en este caso usa una visión estereoscópica, simulando la vista humana; la cual forma un triángulo entre el objeto y los dos lentes, separados a una pequeña distancia uno del otro. En la computadora, se generaba una nube de puntos, lista de números, la cual se puede guardar y posteriormente a analizar. El objetivo es usar el Geomagic, para aplicar el zurcido en las zonas que no se obtuvo información alguna, las cuales son bastantes.

La cabeza de unicel, fue el objeto a utilizar, y sobre una tabla giratoria para pizza, se pudo escanear sin detener el proceso, obteniendo las vistas de 0 a 360 grados y regresar a 0 en una sola pasada. Estas imágenes las comparto a continuación y explicar entre ellas el proceso que se siguió para el armado completo.La teoría nos indica que deben existir como mínimo 3 ó máximo 7 puntos de coincidencia para un ensamble perfecto, visualizándolo en pantalla. Existe la segunda opción de hacerlo manual, y buscar empatarlo, lo cual sugiere mucha paciencia, no siempre resulta favorable, además de emplear un tiempo largo.

La experiencia fue muy grata al poner en práctica lo del tutorial, y lograr rellenar los huecos de la cabeza digitalizada; sin embargo, la duda persiste, ¿Cómo se ven los huecos en una figura?, ¿cómo funciona el algoritmo para rellenarlo?

En un experimento personal, tomé el equipo, y digitalicé un guarda faros del Volkswagen, y procedí a generar la nube de puntos, la respuesta a mis preguntas estaba a un solo click, la imagen mostraba una combinación de triángulos en forma de malla, y el agujero por donde entran los cables para el faro, generaba un cuadrilátero irregular en vez de un circulo.

Capturé la pantalla con el fin de estudiar y simular los algoritmos que desarrollara en la investigación, unir los triángulos, formando más a lo largo de las líneas que se usaran.

Todo esto es aplicado a líneas rectas, pero en curvas, ¿Cómo suavizamos una línea curva usando los lenguajes informáticos?

Los dos lenguajes que trabajaba en ese momento eran el QBasic y Pascal, buscaba la forma de empatar, de hacer esta reingeniería desde estas dos soluciones, las líneas código son bastantes, y trato de buscar su unificación para los distintos casos.

La técnica de “stitching” o “ensamblaje” en informática se refiere a combinar múltiples imágenes o vídeos para crear una vista panorámica más amplia o una secuencia continua. Esta técnica se utiliza comúnmente en fotografía, videografía y gráficos por computadora.

El proceso de stitching implica alinear y fusionar correctamente las imágenes o vídeos para crear una imagen o vídeo panorámico o una secuencia continua. Aquí hay una descripción general de cómo se puede realizar el stitching utilizando software informático:

1. Adquisición de imágenes o vídeos: Captura una serie de imágenes o vídeos que cubran toda la escena que deseas ensamblar. Asegúrate de que haya sufape spacingiciente superposición entre las imágenes o vídeos adyacentes para permitir su alineación adecuada.

2. Preprocesamiento: Antes de realizar el ensamblaje, es posible que debas realizar algunos ajustes o correcciones en las imágenes o vídeos para asegurarte de que tengan una exposición y balance de blancos consistentes. Esto puede implicar ajustes de brillo, contraste, corrección de lente y eliminación de distorsiones, entre otros.

3. Detección y emparejamiento de características: Utiliza algoritmos de visión por computadora para detectar características clave en las imágenes o vídeos, como esquinas, puntos de interés o descriptores locales. Luego, encuentra correspondencias entre las características de las imágenes o vídeos adyacentes para determinar cómo se superponen.

4. Alineación: Utiliza las correspondencias de características encontradas en el paso anterior para calcular las transformaciones geométricas necesarias, como traslaciones, rotaciones y escalados, para alinear las imágenes o vídeos correctamente. Esto puede implicar el uso de técnicas como la estimación de homografía o la búsqueda de transformaciones afines.

5. Fusión: Una vez que las imágenes o vídeos están alineados, se deben fusionar para crear una imagen o vídeo panorámico coherente. Esto puede implicar la combinación de píxeles, la ponderación de píxeles basada en la confiabilidad de las correspondencias o la utilización de técnicas más avanzadas como la fusión de exposición múltiple o la fusión de contenido.

6. Postprocesamiento: Después de la fusión, es posible que desees realizar algunos ajustes adicionales, como la corrección de la geometría, la eliminación de artefactos o la mejora de la calidad general del resultado.

Con lo anterior el concepto queda bastante claro, mi proyecto es hacer todo lo anterior bajo una propuesta más sencilla y menos costosa, con una pieza mayor, una salpicadera de Volkswagen.

Al digitalizarla y poder obtener la información en forma de datos numéricos las cuales se imprimieron en 10 hojas tamaño carta para poder analizarlas, distribuidas en siete columnas, para determinar una secuencia, patrón; el Geomagic usa 12 algoritmos de los cuales fueron 8 pude identificar, sin saber la secuencia correcta y los tres restantes.

Tarde dos años para resolver el tema del Stitching, usando Geometría Analítica, hojas milimétricas, creando rompecabezas, calculando el perímetro y área, todo en QBasic. La beca solamente cubría 5 semanas, en donde terminé mi trabajo, lo presentamos en un congreso como parte final de la estancia de investigación; y cada tarde le dediqué varias horas a terminar y mostrarlo.

Así ocurrió un día, me entrevisté con quien estuvo a cargo del proyecto, el Dr. Ramón Rodriguez, a quien agradezco sus enseñanzas, y mostre toda la teoría desde el papel, hasta llegar al software con la demostración final.Diciéndome, “Lo conseguiste”, te felicito.

Salvo la parte de suavizar la curva que siempre fue un tema pendiente, el cual hoy gracias a la Inteligencia Artificial las respuestas fueron apareciendo una a una, mostrando nuevos caminos, comparando las notas obtenidas, diagramas, programación y sobre todo los algoritmos resultantes.

Publicidad