BARRENADO DE PLACAS MEDIANTE PROCESAMIENTO DIGITAL DE IMÁGENES Juan Carlos Martínez Espinoza, Jorge Barroso Castro, Martha D Ponce Sánchez., Bernardo Martínez Ortega, Alma Adriana Camacho Pérez. Universidad de LaSalle Av. Universidad No.602, Col. Lomas del Campestre, León, Gto. e-mail: [email protected] RESUMEN El proyecto propuesto es el procesamiento digital de una imagen captada por una cámara Web para realizar perforaciones con un taladro sobre placas, esto es, que el taladro reconocerá en lugar exacto en donde se encuentran los círculos y las líneas limites, sobre ellos realizara los barrenos y recorrerá los límites realizando una función similar a la de una máquina de control numérico 1. Una de las finalidades de este proyecto es llevarlo hasta la etapa comercial. 1. INTRODUCCION La información visual juega un papel muy importante en la comunicación humana, de ahí que no sea de extrañar el gran interés mostrado por el desarrollo de sistemas para el tratamiento digital de imágenes. Sus aplicaciones son fundamentales e imprescindibles en multitud de campos: ingeniería, física, biología, medicina, etc. 2. OBJETIVO Implementación de códigos “G” y maquinado de barrenos sobre piezas por medio del tratamiento de imágenes procesadas sobre un entorno amigable de programación. 3. FUNCIONAMIENTO DE LA MAQUINA Hablamos de una máquina que por medio del tratamiento de una imagen de una placa fenólica captada por una cámara Web, la computadora detectará a través de la imagen donde se tendrán que realizar perforaciones, esto se realizará por medio del movimiento de los ejes X, Y y Z manipulados desde la computadora y se pasará la señal a la máquina montada sobre ejes en los cuales se encuentra un taladro que se posicionará sobre la placa respectivamente en donde hará las perforaciones, esto es, que el taladro reconocerá en lugar exacto en donde se encuentran los círculos y las líneas limites, realizará los barrenos y recorrerá los límites realizando una función similar a la de una máquina de control numérico. El proyecto presentado tiene el siguiente diagrama general, el rectángulo punteado nos muestra los procesos que hasta hoy están implementados. Detección con CCD Proceso en CPU Amplificación de Señal 1. Diagrama General Implementación Electro-mecánica Datos procesados Pieza El siguiente esquema muestra de manera profunda cada una de las funciones a desarrollarse dentro del proceso que se hace en la computadora una vez obtenida la imagen. Captura de Imagen Convertir a Escala de Grises Maquinado de Pieza Escritura de Códigos “G” Filtrado Salida de Datos PC Detección de Contornos Envio de Datos a PC Reconocimiento de Patrones Obtención de Coordenadas Detección de Puntos 2. Diagrama Específico de Proceso HISTOGRAMA. El histograma es la base de una gran cantidad de técnicas de procesado de imagen y por esa razón es objeto de estudio en esta práctica. Básicamente el histograma es la representación gráfica de las frecuencias relativas con las que aparecen los distintos colores en una determinada imagen En general se representa como un gráfico de barras en el que las abcisas son los distintos colores de la imagen y las ordenadas la frecuencia relativa con la que cada color aparece en la imagen. El histograma proporciona información sobre el brillo y el contraste de la imagen, y puede ser utilizado para ajustar estos parámetros, eliminar ciertas tonalidades molestas, etc. Estas técnicas de manejo del histograma son las se manipulan dentro del software. MODIFICACIÓN DEL HISTOGRAMA. La modificación del histograma consisten en generalizar las transformaciones de intensidad de los pixeles de la imagen. En general se define una función de transferencia, una función que se aplica a cada pixel de la imagen para transformar su valor. De esta forma se puede definir cualquier transformación de intensidad como la variación del brillo y el contraste, el ecualizado, el negativo, etc. aunque algunos de estos procesados pueden realizarse de manera más eficiente con algoritmos específicos como veremos en apartados sucesivos. ESCALA DE GRISES. Lo primero que se hace es capturar la imagen por medio de una cámara Web, el software desarrollado realiza el proceso de captura de la fotografía. El procesado de imágenes, que comprende la manipulación por ordenador de imágenes reales, resuelve estos problemas al poder automatizar el proceso de extracción de información útil de los datos de la imagen. Con el procesado de imágenes, también podemos perfeccionar la imagen, corregir distorsiones, etc. Existen dos tipos principales de aplicaciones para el procesado de imágenes: Las aplicaciones que refuerzan o reconstruyen una imagen dañada o de mala calidad. Las aplicaciones que extraen información numérica o gráfica de la imagen. Una vez que contamos con esta, lo primero que hacemos es convertirla a un formato de escala de grises para poder trabajar con ella. En esta parte se estudiará la conversión de una imagen en color a escala de grises, el equivalente a la luminancia de la imagen. Como ya sabemos el ojo percibe distintas intensidades de luz en función del color que se observe, esto es debido a la respuesta del ojo al espectro visible la cual se puede observar en la figura, por esa razón el cálculo del equivalente blanco y negro (escala de grises o luminancia) de la imagen debe realizarse como una media ponderada de las distintas componentes de color de cada pixel. La ecuación de la luminancia nos muestra es la expresión matemática de ese fenómeno y los factores de ponderación de cada componente de color nos indican la sensibilidad del ojo humano a las frecuencias del espectro cercanas al rojo, verde y azul. Y = R*0.3+G*0.59+B*0.11 (1) Por tanto, para realizar esta conversión llega con aplicar esta ecuación a cada pixel de la imagen true-color. Aparecería una nueva matriz de un byte por pixel que daría la información de luminancia. Para convertir a escala de grises una imagen de paleta, basta con convertir cada color de la paleta a su gris correspondiente según la ecuación anterior, creando una nueva paleta de grises. FILTRADO. Para realizar el Filtrado de datos existen varias técnicas como la de pasa bajos, pasa medios, pasa alto, filtro Smoth y filtro Sharpen, todos ellos implementados en el programa aunque la que nosotros recomendamos utilizar es la técnica de pasa medios. El problema de algunos métodos como el paso bajo es que difumina los bordes y otros detalles afilados. Nosotros queremos reducir el ruido en vez de difuminar, por esa razón se utilizó la técnica filtros de mediana. En estos filtros, el nivel de gris del cada pixel es reemplazado por la mediana de los niveles de gris de los pixeles que lo rodean. Este método de filtrado es particularmente efectivo cuando el patrón de ruido consiste en fuertes impulsos y se pretende mantener los bordes sin difuminar. DETECCION DE CONTORNOS. Para realizar la detección de bordes igualmente existe un sin número de técnicas de primera derivada como Prewitt, Sobel, Roberts, Frei-Chen1 y segunda derivada como laplaciano. Muchas técnicas basadas en la utilización de máscaras para la detección de bordes utilizan máscaras de tamaño 3x3 o incluso más grandes. La ventaja de utilizar máscaras grandes es que los errores producidos por efectos del ruido son reducidos mediante medias locales tomadas en los puntos en donde se superpone la máscara. Las máscaras tienen tamaños impares, de forma que los operadores se encuentran centrados sobre los puntos en donde se calculan los gradientes. Los operadores de gradiente común encuentran bordes horizontales y verticales y trabajan mediante convolución. Los operadores de Prewitt, Sobel, Roberts y Frei-Chen son operadores dobles o de dos etapas. La detección de bordes se realiza en dos pasos, en el primero la máscara busca bordes horizontales y en el segundo los verticales, el resultado final es la suma de ambos. Los filtros diferenciales ayudan a detectar bordes pues las zonas que en la imagen original son de un tono uniforme se transforman en un gris mediano. Mientras los bordes, zonas donde hay un cambio abrupto de intensidad, son enfatizados. Algunos resultan negros y otros blancos. El sistema cuenta con las técnicas de Roberts y Sobel de entre las que recomendamos usar la segunda por calidad al usuario para con esto obtener el reconocimiento de patrones, se eliminará el ruido BRILLO. Modificar el brillo de una imagen es añadir una cantidad constante al valor del tono de cada uno de los pixeles de la misma. Si este valor es positivo estamos aumentando el brillo de la imagen, mientras que, si por el contrario es negativo, el brillo disminuye. Evidentemente si al sumar la constante se pasa de 255, se queda el pixel en ese valor. Lo mismo si baja de 0 se queda en negro. Por tanto las modificaciones de brillo corren el riesgo de perder información de la imagen. CONTRASTE. El contraste mide, en cierto modo, el rango dinámico de los colores en la imagen, es decir, una imagen muy contrastada tiene un amplio abanico de colores (o tonos de gris) desde valores muy bajos a valores muy altos. Para una imagen con poco contraste los colores están muy juntos, el margen dinámico es pequeño. La variación en el contraste aparece como una compresión del histograma en caso de una reducción, o una expansión en caso de aumento de contraste. Al igual que el brillo, variando el contraste se puede provocar una pérdida de información de la imagen. NEGATIVO. Este efecto consigue hallar, como su nombre dice, el negativo de una imagen. Lo que obtenemos es la imagen tal y como aparece en los carretes de fotos cuando se revelan (no en el papel, sino en la película). El efecto de negativo ya ha sido comentado cuando se trató el tema de las modificaciones de histograma. Allí se indicaba que existían formas más eficientes de implementar ciertos procesados. UMBRAL o THRESHOLD. Threshold podría ser traducido como umbral. Este efecto convierte una imagen en tonos de gris en una imagen bicolor (blanco y negro), asignando el valor 255 (blanco) a los valores de pixeles por encima de un cierto umbral, el cual es un parámetro, o 0 si está por debajo de este. ELIMINACIÓN DE RUIDO. Entendemos por ruido en imágenes digitales cualquier valor de un píxel de una imagen que no se corresponde exactamente con la realidad. Cuando se adquiere una imagen digital, ésta está contaminada por ruido. El ruido se debe, la mayoría de las veces al equipo electrónico utilizado en la captación de las imágenes y al ruido añadido en los tramos de transmisión. Tenemos que distinguir dos clases diferentes de ruido: Ruido gaussiano: Se caracteriza por tener un espectro de energía constante para todas las frecuencias. Cuando se presenta este problema, el valor exacto de cualquier píxel es diferente cada vez que se captura la misma imagen. Este efecto, suma o resta un determinado valor al nivel de gris real y es independiente de los valores que toma la imagen. Ruido impulsivo: Se caracteriza por la aparición de píxeles con valores arbitrarios normalmente detectables porque se diferencian mucho de sus vecinos más próximos. MORFOLOGIA. EROSION. El filtrado de mínimo y de máximo es muy similar al filtrado de mediana, junto con éste forman los filtros de rango. En vez de sustituir el píxel del centro por el valor medio, se utiliza el valor mínimo o máximo de la ventana. Estos filtros son eficaces en eliminar el ruido impulsivo extremo. El filtro mínimo elimina los puntos blancos, mientras que el filtro máximo elimina los puntos oscuros. Con el filtrado de mínimo, un píxel se representa con el píxel más oscuro de su vecindad, por lo que la intensidad total de la imagen de salida será reducida. Este filtro tiende a "ensanchar" las líneas negras de la imagen, por esta razón también es conocido como filtro de dilatación. Con el filtrado de máximo se aumenta la intensidad total de la imagen de salida. Este filtro también es conocido como filtro de erosión, debido a la propiedad que posee de "adelgazar" líneas. Si la imagen posee líneas negras, al elegir el valor máximo de la vecindad de cada píxel, los valores más oscuros serán sustituidos por valores más altos con la consiguiente reducción de los píxeles cercanos al negro. DETECCION DE PUNTOS Y OBTENCION DE COORDENADAS. En este punto se utilizará una técnica propia que consiste en lo siguiente: determinar el tamaño total de la placa en la imagen, determinar la distancia que existe entre cada uno de los centros de los círculos y los bordes de la placa. Una vez obtenidas estas distancias, en una nueva ventana con las mismas dimensiones de la placa original se trazaran puntos tomando las distancias tomadas anteriormente como referencia para que estos sean los puntos a barrenar en una placa donde ya no exista el error. ENVIO DE DATOS A LA PC. El envío de datos a la PC se realizará por puerto paralelo y con esto se obtendrá el maquinado de la pieza mediante el posicionamiento del taladro sobre la placa identificadas anteriormente las coordenadas de los puntos a barrenar. Esto también nos podrá proporcionar el maquinado de los códigos “G”. DISEÑO DE SOFTWARE. El software consta con las siguientes opciones: Web Cam contiene la parte de visualización, captura de imagen y analizar imagen. CNC manual, esta opción nos permite manipular el motor por medio de cada uno de los ejes de manera manual tomando distancias como referencia o movimientos paso a paso. Analizar imagen, contiene todas las opciones para el procesamiento de imagen. El manejo de los ejes y la parte electro-mecánica está conformada por dos módulos, el de motor (posicionamiento por medio de coordenadas) y el DSP (procesamiento de la imagen). En el menú de analizar imagen podemos encontrar las opciones de escala de grises, histograma, filtro, bordes, morfología. Escala de grises contiene un submenú con la opción de y transformada de intensidad en la que encontramos efectos como: negativo, brillo, contraste, escalado de imagen y segmentación de imagen. En el submenú de filtros encontramos opciones de: filtro pasa bajos, filtro Smooth, filtro pasa medios, filtro pasa alto y filtro Sharpen. En el submenú de bordes tenemos el manejo por la técnica de Roberts y Sobel. En el submenú de morfología tenemos el tratado de la Erosión. Imágenes mostradas en el póster. BIBLIOGRAFÍA 1. Norton. L. Robert, Diseño de Maquinaria, Mc. Graw Hill 2. J.R. Parker, “Algorithms for Image Processing and Compunter”. 2ª edición. p.p. 120-250 3. Páginas Web diversas relacionadas con el tema, entre las que debemos destacar: a. www.claraocr.org b. dkc.jhu.edu/gamera c. www.gnu.org/software/ocrad d. http.cs.berkeley.edu/ocrchie