1. Introducción
En la elaboración de la presente investigación se aplican tres áreas de las ciencias: La visión por computadora que tiene como finalidad la extracción de información por medio de la manipulación de imágenes digitales. Donde una imagen se puede definir como una función de intensidad de luz bidimensional f (x, y), donde “x” e “y” indican las coordenadas espaciales y el valor de f en cualquier punto (x, y) es proporcional a la luminosidad de la imagen en dicho punto [3]. Se usará técnicas de filtrado de orden que están basados en la vecindad de un píxel, así como segmentación basada en un determinado nivel de intensidad [4, 12].
Métodos numéricos aplicando la interpolación la cual es ampliamente utilizada en diversas áreas científicas del saber humano, por ejemplo, en óptica, economía, modelos poblacionales, por citar algunos de ellos. El proceso relacionado con la interpolación está vinculado con la obtención de una función 𝑓(𝑥), denominada interpolante, la cual usualmente es un polinomio en la variable 𝑥. Dados 𝑛 + 1 puntos conocidos, el polinomio interpolante en cuestión es de grado 𝑛. Dentro del abanico de posibilidades existentes dentro de las técnicas de interpolación, se utilizarán las curvas de Bezier como polinomio de interpolación [17-22].
Óptica es la rama de la física que estudia las características y propiedades de la luz. Una de las ramas de estudio de esta ciencia es la proyección de luz estructura, la cual consiste en la emisión de patrones de luz mediante un proyector y el registro mediante una cámara digital. El haz de luz experimenta una deformación como consecuencia de su proyección sobre el objeto que se pretende obtener su modelo tridimensional. En particular se usará una rejilla de Ronchi, que a su vez con el estudio y posterior combinación de las tres áreas de conocimiento mencionadas, el potencial para crear modelos 3D a partir de objetos reales con gran fidelidad del mundo real aumenta, lo que permitiría la conservación y difusión de diferentes piezas de gran valor para la humanidad.
2. Marco teórico
2.1. Visión por computadora
Tiene como objetivo la manipulación de los valores de intensidad de la función 𝑓(𝑥, 𝑦), para la eliminación de ruido producido por la forma de adquisición de la imagen o por ruido ambiental, etc., o del mismo modo resaltar áreas de interés o grupos de píxeles que pertenezcan a la imagen [4, 12].
En el área de estudio de la visión por computadora hay una diversidad amplia de ecuaciones o algoritmos que permiten preparar la imagen para un determinado fin. Estos son algunos de las técnicas más utilizadas:
– Transformaciones de dominio.
– Suavizado, realzado.
– Extracción de bordes y esquinas.
– Extracción de regiones.
– Descripción de regiones.
– Operaciones morfológicas.
Suavizado y realzado
Estos tipos de algoritmos o técnicas trabajan de forma directa en el dominio espacial. Dada una imagen 𝑓(𝑥, 𝑦), se tiene como resultado una imagen 𝑔(𝑥, 𝑦) suavizada cuya intensidad de cada punto (𝑥, 𝑦) se calcula a partir de la vecindad del punto o pixel (𝑥, 𝑦) incluyendo a este [4, 12].
Este se puede definir de acuerdo a la ecuación
1. Filtro de la media:
donde S es el conjunto de coordenadas de los puntos situados en el entorno de vecindad de (𝑥, 𝑦) incluido el propio (𝑥, 𝑦) y P es el número total de puntos del entorno de vecindad [4, 12].
Sean 𝑥1, 𝑥2,... 𝑥𝑛 los valores de intensidad de una conjunto de pixeles ordenado de forma creciente y designando 𝑀como la mediana. Se pueden distinguir dos casos en base a la cantidad de valores en la vecindad [4, 12].
Si 𝑛 es impar, la mediana es el valor que ocupa la posición
Si 𝑛 es par, la mediana es la media aritmética de los valores centrales de acuerdo a la ecuación 3. Filtro de la mediana par:
En estadística la moda es el valor con mayor de ocurrencia o repeticiones en una colección de datos. La frecuencia de ocurrencia se calcula de acuerdo a la ecuación 4, donde con la ocurrencia calculada para cada uno de los valores de intensidad 𝑓(𝑥, 𝑦) dentro de la ventana, se toma el mayor de ellos [4, 12]. Ecuación 1 describe frecuencia relativa:
Extracción de regiones
Dentro de las imágenes la unidad mínima es el pixel el cual lo es representado por 𝑓(𝑥, 𝑦), esta unidad puede constituir regiones conectados entre sí o por alguna características que compartan. Dichas regiones pueden marcarse o extraerse con un fin en particular. La binarización es un proceso por el cual se transforma una imagen con diferentes niveles de intensidad en dos o más niveles, dependiendo de cuantas regiones se vaya a resaltar, la Ecuación 5 genera una imagen con dos niveles de distintos de intensidad [4, 12]:
donde 𝑇 es el umbral que separa las regiones dentro de la imagen. Cuando 𝑇 depende solo de 𝑓(𝑥, 𝑦), el umbral se llama global.
Si 𝑇 depende de tanto de 𝑓(𝑥, 𝑦) y alguna propiedad de este el umbral se denomina local. Si 𝑇 depende de las coordenadas espaciales 𝑥 e 𝑦 se llama umbral dinámico.
Operaciones morfológicas
La morfología matemática comenzó en la década de los 60. Está basada en la geometría y la forma. El resultado de su aplicación es la simplificación y la conservación de las formas principales de los objetos en la imagen [4, 12].
Erosión binaría
Dados dos conjuntos 𝐴 y 𝐵 de 𝑧2 la erosión, se define en la ecuación 6:
2.2. Luz estructurada
A la proyección de patrones de luz sobre una escena se le conoce como luz estructurada. Se proyectan patrones de luz sobre objetos que se encuentran en el campo visual de la cámara, los patrones proyectados pueden ser de una o más franjas, en la Figura 1 se observa el armado básico de la proyección de luz estructurada [6, 14-16]. El método de proyección de varias franjas de la Figura 2 tiene la ventaja de que requiere, en algunas técnicas, de una sola imagen para llevar a cabo una reconstrucción adecuada del objeto bajo observación. Cuenta además con la ventaja de que pueden medirse objetos de distintas dimensiones a través de la modificación de la frecuencia de las franjas, con limitantes de la resolución del proyector y la cámara.
2.3. Bernstein-Bézier
Es normal en ciencia y tecnología manipular una cantidad amplia de puntos, resultado de la experimentación. Intentar analizar procesos de interpolación con tal cantidad de datos puede conducir al estudio de un polinomio de grado significativo, lo cual vendría acompañado de comportamientos raros o indeseables, ya es conocido el efecto de látigo que tienen éstos para grados altos. Es deseable construir una curva de interpolación que cumpla con ciertos requerimientos de suavidad y derivabilidad.
Al darle un empleo adecuado a los polinomios se llega al concepto de Curvas de Bézier [1]. Éstas se utilizan como una base para el espacio vectorial de los polinomios de grado menor que 𝑛, los cuales representan una herramienta básica para el objetivo en mente. Ahora, entrando en materia, se propone trabajar en el intervalo [0, 1] y se fija el valor de 𝑛, para proceder a definir las funciones base del polinomio:
Los polinomios 𝜑 (𝑥) tienen nombre propio, se denominan Polinomios de Bernstein. Para una función continua 𝑓(𝑥) definida en el intervalo [0, 1], Bernstein demostró, en 1912, que la sucesión de polinomios:
converge uniformemente a la función 𝑓(𝑥), lo cual proporciona una demostración interesante del teorema de aproximación de Weierstrass, el cual es fundamental en análisis numérico (una demostración de este teorema se puede ver en [17]). Los polinomios de Bernstein poseen varias propiedades importantes, se citan dos de ellas:
Cualquier conjunto de funciones que posea estas dos propiedades es llamada partición de la unidad en el intervalo [0,1].
El conjunto de funciones {𝜑𝑛0(𝑥), 𝜑1𝑖(𝑥), 𝜑𝑛2(𝑥),..., 𝜑𝑛𝑛(𝑥)} es una base para el espacio de polinomios de grado menor que 𝑛, de modo que todo polinomio de grado a lo más 𝑛 tiene una representación:
Si se desea obtener un polinomio que aproxime a los valores de interpolación
para comenzar el proceso y realizar los ajustes necesarios a partir de la visualización de la curva resultante. La teoría anterior se puede establecer desde el punto de vista vectorial. Por ejemplo, dados dos puntos en el plano cartesiano
Del mismo modo las curvas cuadráticas de Bézier se estudian y manejan mediante una representación paramétrica. En este caso se trabaja con tres puntos conocidos como
De paso se dice que los puntos
Continuando de esta forma se pueden obtener las curvas cúbicas de Bézier, sin embargo, se prefiere abordar aquí la generalización (llamadas curvas Spline) de las curvas de Bézier. La curva de grado 𝑛 se obtiene considerando 𝑛 + 1 puntos,
Ésta expresión se puede reescribir, empleando los polinomios de Bernstein 𝑏𝑖,𝑛(𝑡), como:
Nuevamente, 𝑡 es un parámetro real el cual toma valores en el intervalo[0,1], siendo los polinomios de Bernstein, definidos mediante la expresión:
3. Desarrollo
3.1. Arreglo óptico
En el experimento de proyección de Luz estructurada se utilizó una rejilla de Ronchi, la cual se observa en la Figura 2, la cual es proyectada haciendo uso de un proyector multimedia marca DBPOWER T22 HD de 2200 lumens y resolución de 1080p (Figura 3) y la adquisición de imágenes con una cámara Sony DSC-HX400 (Figura 4).
3.2. Procesamiento de imágenes
Con el arreglo descrito en la sección 3.1 se obtienen las imágenes para comenzar el procesamiento de las mismas.
El objetivo del procesamiento es poder extraer de las franjas los puntos con los que se parametrizara al algoritmo de las curvas de Bezier para generar la forma del objeto que se encuentra bajo la luz del proyector.
La adquisición de imágenes es afectada por diversos factores, tales como la iluminación ambiental, polvo en el aire, suciedad en la lente de la cámara etc. Para solucionar la parte de las imperfecciones de las imágenes se programaron los algoritmos descritos en la sección 2.1, los cuales se pueden aplicar según el tipo de error que tenga la imagen a procesar.
Para iniciar el proceso de recuperación de la forma es necesario cargar los datos de una imagen para procesarla como lo muestra la Figura 5.
Aplicando diferentes filtros de la sección 2.1 se puede lograr marcar o definir más las fronteras de las diferentes franjas dentro del patrón con la finalidad de poder segmentar de una mejor forma las franjas como lo muestra la Figura 6, aplicando las Ecuaciones 1-4.
Con una imagen con niveles de gris controlados en ciertos valores es factible poder pasar una imagen con varios niveles de gris a otra con solamente dos, como lo muestra la Figura 7, aplicando la ecuación 5.
Con imágenes similares a la Figura 7, el siguiente paso es identificar y separar cada una de las franjas en el patrón, para posteriormente extraer los puntos con los que se parametriza el algoritmo de interpolación.
El proceso de separación de las diferentes franjas que conforman el patrón comienza con la realización de un barrido buscando el inicio de cada una de las franjas, para su posterior seguimiento y generación de imágenes individuales, como lo muestra la Figura 8.
Con imágenes como la de la Figura 8 de base es posible la separación y selección de franjas que se procesarán para el algoritmo de Bezier.
Con franjas individuales se procede a realizar una erosión de la franja aplicando la ecuación 6 de la sección de 2.1 lo que genera resultados que se muestran en la figura 9.
Ya con una franja erosionada a un pixel de ancho, es posible seccionar 𝑛 puntos sobre ella, los cuales tienen dos finalidades, la primera identificar las franjas que interesan procesar y segunda alimentar el algoritmo de interpolación, como lo muestra la Figura 10.
Para la identificación de franjas se calcula la pendiente entre el punto 𝑛 y el punto 𝑛 + 1 y así sucesivamente con los puntos sobre la franja. Al finalizar los cálculos de las pendientes si todas son indeterminadas, esto indica que esa franja en particular no toca el objeto, como lo muestra la figura 11, en caso contrario, deben existir por lo menos dos pendientes que sea posible su cálculo, como lo muestra Figura 11.
3.3. Interpolación
Para llevar a cabo la interpolación se utilizan las curvas de Bézier descritas en el apartado 2.3 en específico la ecuación 13.
En la sección 3.2 se describe el proceso para determinar que franjas alimentarán de forma iterada el algoritmo de las curvas de Bézier, así como la forma de determinar los puntos que servirán de parámetros para trazar las diferentes franjas.
En las figuras 12 y 13 se pueden observar la reconstrucción de las figuras 14 y 15 respectivamente.
4. Resultados
Se muestra en las Figuras 13 y 14 que es posible la recuperación del objeto que se encuentra bajo el patrón de luz estructurada. del mismo modo que es factible discriminar entre las franjas de que tocan el objeto de las que no, en la figura 14 se muestran únicamente las que tocan el objeto, mientras que en la 13 se muestra el patrón completo.
De forma cualitativa en las pruebas realizadas sobre los objetos se observó que las curvas de Bézier describen de una mejor forma objetos de formas redondeadas de los que tienen formas agudas.
Una limitante del sistema presentado es la alineación del eje 𝑌es indispensable que esté alineado con el eje de proyección del proyector esto con el de poder llevar acabo selección de las franjas.
5. Conclusiones
La continuación del trabajo se trabajará en las siguientes áreas:
– Refinar las técnicas de visión por computadora usadas con la finalidad de aumentar la eficiencia de estas.
– Estudiar e implementar técnicas para trabajar en el dominio de la frecuencia como lo es la trasformada de Fourier lo que permitirá otro tipo de filtros como el pasa altos y pasa bajos.
– Cuantificar el error del modelo generado usando la distancia euclidiana, esta sería tomada entre el punto control 𝑛 y el más cercano del modelo.