Vista previa del material en texto
Sistema de control de calidad por procesamiento de imágenes. Melissa Paredes Forero Juan David Henao Tovar Trabajo de grado para optar por el título de Ingeniero Electrónico Director: Ing. Ing. Martha Ruth Manrique Torres, PhD Codirector: Ing. Iván Fernando Mondragón Bernal, PhD PONTIFICIA UNIVERSIDAD JAVERIANA FACULTAD DE INGENIERÍA DEPARTAMENTO DE INGENIERÍA ELECTRÓNICA 2016 Tabla De Contenido Capítulo 1. Agradecimientos .................................................................................................................... 1 Capítulo 2. Introducción ........................................................................................................................... 2 Capítulo 3. Objetivo del proyecto ............................................................................................................. 3 3.1. Objetivo central del proyecto ......................................................................................................... 3 3.2. Objetivos específicos del proyecto ................................................................................................ 3 3.3. Alcance del trabajo de grado .......................................................................................................... 3 Capítulo 4. Marco Teórico ........................................................................................................................ 4 4.1. Mecanizado del Material ................................................................................................................ 4 4.1.1. Centro de Mecanizado ........................................................................................................... 4 4.1.2. EMCO MILL 450 .................................................................................................................. 5 4.1.3. Características de fresado en superficie plana ....................................................................... 5 4.1.4. Rugosímetro ........................................................................................................................... 6 4.2. Sistema de Captura ........................................................................................................................ 6 4.2.1. Cámara ................................................................................................................................... 6 4.2.2. Genie HM640 ......................................................................................................................... 7 4.2.3. Sapera LT SDK ...................................................................................................................... 8 4.2.4. Lente ...................................................................................................................................... 8 4.2.5. Lente ...................................................................................................................................... 8 4.2.6. Distorsión ............................................................................................................................... 9 4.2.7. Corrección de distorsión ........................................................................................................ 9 4.3. Procesamiento de imágenes ......................................................................................................... 12 4.4. Librería OpenCV ......................................................................................................................... 12 4.4.1. Componentes del procesamiento de imágenes a utilizar ..................................................... 12 4.4.2. Histograma ........................................................................................................................... 14 4.4.3. Ecualización del Histograma ............................................................................................... 15 4.4.4. Corrección Gamma .............................................................................................................. 16 4.4.5. Filtro Canny ......................................................................................................................... 17 4.4.6. Filtro 2D ............................................................................................................................... 18 4.4.7. Transformada de Fourier ...................................................................................................... 19 Capítulo 5. Velocidad de captura ............................................................................................................ 20 5.1. Introducción ................................................................................................................................. 20 5.2. Descripción de los elementos de mecanizado .............................................................................. 20 5.3. Cálculos del número de imágenes ................................................................................................ 21 5.4. Conclusiones del capítulo ............................................................................................................ 22 Capítulo 6. Sistema de captura por computador ..................................................................................... 22 6.1. Introducción ................................................................................................................................. 22 6.2. Diagrama de bloques general del sistema .................................................................................... 22 6.3. Elección del lente ......................................................................................................................... 23 6.4. Restricciones de velocidad de transferencia ................................................................................ 24 6.5. Acceso a la cámara ....................................................................................................................... 24 6.5.1. Conexión .............................................................................................................................. 24 6.5.2. Instalación de librerías y configuración ............................................................................... 25 6.6. Captura de imagen ....................................................................................................................... 26 6.7. Calibración de la cámara .............................................................................................................. 28 6.8. Mecanizado de la pieza a utilizar ................................................................................................. 30 6.9. Parámetros de iluminación ........................................................................................................... 30 6.10. Verificación del tiempo de procesamiento .............................................................................. 31 6.11. Conclusiones del capítulo ........................................................................................................ 31 Capítulo 7. Diseño del algoritmo de procesamiento de imágenes .......................................................... 32 7.1. Introducción ................................................................................................................................. 32 7.2. Filtros Realizados ......................................................................................................................... 32 7.3. Medición de rugosidad ................................................................................................................. 35 7.4. Resultados de comparaciónentre filtros ...................................................................................... 36 7.5. Código de identificación de rugosidad ........................................................................................ 37 7.6. Verificación del tiempo de procesamiento .................................................................................. 39 7.7. Conclusiones del capítulo ............................................................................................................ 39 Capítulo 8. Protocolo de pruebas ............................................................................................................ 40 8.1. Introducción ................................................................................................................................. 40 8.2. Pruebas realizadas ........................................................................................................................ 40 8.3. Resultados de las pruebas ............................................................................................................ 40 8.3.1. Prueba a ................................................................................................................................ 40 8.3.2. Prueba b ............................................................................................................................... 40 8.4. Estándares .................................................................................................................................... 41 8.5. Conclusiones del capítulo ............................................................................................................ 41 Capítulo 9. Conclusiones ........................................................................................................................ 42 Capítulo 10. Oportunidades de mejora ..................................................................................................... 43 Capítulo 11. Recomendaciones ................................................................................................................ 44 Capítulo 12. Bibliografía .......................................................................................................................... 45 Capítulo 13. Anexos .................................................................................................................................... i 13.1. Anexo A ...................................................................................................................................... i 13.2. Anexo B .................................................................................................................................... iii Índice De Figuras Figura 1 Movimientos de Fresadora .............................................................................................................. 4 Figura 2 Especificaciones EMCO MILL 450 ................................................................................................ 5 Figura 3 Marcas de Mecanizado .................................................................................................................... 5 Figura 4 Rugosímetro .................................................................................................................................... 6 Figura 5 Modos según Tap ............................................................................................................................ 7 Figura 6 Variables en sistema de captura ...................................................................................................... 9 Figura 7 Tipos de distorsión .......................................................................................................................... 9 Figura 8 Matriz de la imagen ....................................................................................................................... 10 Figura 9. GUI toolbox de Matlab ................................................................................................................. 10 Figura 10 Detección de esquinas ................................................................................................................. 10 Figura 11. Calibración de imagen ................................................................................................................ 11 Figura 12 Salida toolbox de Matlab ............................................................................................................. 11 Figura 13 Imagen original binarización ....................................................................................................... 14 Figura 14 Umbral Binario ............................................................................................................................ 14 Figura 15 Valores de imagen en escala de grises ........................................................................................ 15 Figura 16. Histograma imagen opencv ........................................................................................................ 15 Figura 17 Filtro equalización ....................................................................................................................... 16 Figura 18 Función de la corrección gamma ................................................................................................. 16 Figura 19 Imagen original para filtro gamma .............................................................................................. 17 Figura 20 Corrección gamma con ! = 2 y ! = 0.5 .................................................................................... 17 Figura 21 Máscaras de convolución ............................................................................................................ 18 Figura 22 ecuaciones gradiente y fuerza ...................................................................................................... 18 Figura 23 Aplicación de filtro Canny .......................................................................................................... 18 Figura 24 Formulación matemática transformada de Fourier ...................................................................... 19 Figura 25 Transformada de Fourier imagen ................................................................................................ 19 Figura 26 diagrama de bloques del sistema ................................................................................................. 22 Figura 27 Conector cable MISC-FULL-AV-OP-5M .................................................................................. 25 Figura 28 Configuración puerto ethernet ..................................................................................................... 25 Figura 29 información de GigeDeviceStatus ............................................................................................... 26 Figura 30 Menú de inicio código de ejemplo .............................................................................................. 26 Figura 31 Diagrama de flujo de captura de imagen ..................................................................................... 27 Figura 32 Resultado de ejecutar "CopyDataToOpencv" ............................................................................. 28 Figura 33. Patrón de ajedrez para calibración .............................................................................................. 28 Figura 34 Imágenes introducidas al sistema para la calibración de la cámara ............................................ 29 Figura 35 Selección de esquinas para calibración ....................................................................................... 29 Figura 36 Resultados de calibración ............................................................................................................ 29 Figura 37 Piezamecanizada a diferentes velocidades ................................................................................. 30 Figura 38 Iluminación en el equipo ............................................................................................................. 31 Figura 39 Imagen sin y con iluminación ...................................................................................................... 31 Figura 40 Recorte de imagen original .......................................................................................................... 32 Figura 41 Kernel para filtro 2D ................................................................................................................... 33 Figura 42 Aplicación de filtros y threshold para varias velocidades ........................................................... 34 Figura 43 Transformada de Fourier y threshold .......................................................................................... 35 Figura 44 Diagrama de flujo funcionamiento del código ............................................................................ 38 Índice de Tablas Tabla 1 Especificaciones de Genie HM640 ................................................................................................... 7 Tabla 2 Velocidades de avance según control manual ................................................................................ 20 Tabla 3 Distancia recorrida por número de cortes ....................................................................................... 21 Tabla 4 Comparación de referencias de lente .............................................................................................. 23 Tabla 5 Velocidades de transferencia .......................................................................................................... 24 Tabla 6 Resultados tiempo de captura ......................................................................................................... 31 Tabla 7. Medidas de rugosímetro ................................................................................................................. 36 Tabla 8 Resultados muestreo por velocidad de avance (%), 30 muestras ................................................... 37 Tabla 9 Máscaras para identificación de rugosidad ..................................................................................... 39 Tabla 10 Resultados tiempo de procesamiento ............................................................................................ 39 Tabla 11 Resultados muestreo por velocidad de avance (%), 500 muestras ............................................... 40 Tabla 12 Resultados prueba b ...................................................................................................................... 41 Tabla 13 Resultados muestreo 2% con 30 muestras ....................................................................................... i Tabla 14 Resultados muestreo 20% con 30 muestras ..................................................................................... i Tabla 15 Resultados muestreo 40% con 30 muestras ..................................................................................... i Tabla 16 Resultados muestro 60% con 30 muestras ....................................................................................... i Tabla 17. Resultados muestreo 80% con 30 muestras ................................................................................... ii Tabla 18 Resultados muestro 100% con 30 muestras .................................................................................... ii Tabla 19 Resultados muestro 120% con 30 muestras .................................................................................... ii Tabla 20 Resultados muestreo 2% con 500 muestras ................................................................................... iii Tabla 21 Resultados muestreo 20% con 500 muestras ................................................................................. iii Tabla 22 Resultados muestreo 40% con 500 muestras ................................................................................. iii Tabla 23 Resultados muestro 60% con 500 muestras ................................................................................... iv Tabla 24. Resultados muestreo 80% con 500 muestras ................................................................................ iv Tabla 25 Resultados muestro 100% con 500 muestras ................................................................................. iv Tabla 26 Resultados muestro 120% con 500 muestras .................................................................................. v 1 Capítulo 1. Agradecimientos Queremos agradecer a Dios porque, nos ha permitido llegar a esta instancia de nuestra carrera junto a nuestros seres queridos. Un agradecimiento especial a nuestras familias que nos han brindado incondicionalmente su apoyo y compañía en este proceso. A nuestra directora de tesis, la ingeniera Martha Ruth Manrique Torres y a nuestro codirector de tesis, el ingeniero Iván Fernando Mondragón Bernal, quienes depositaron su confianza en nosotros y nos acompañaron en todo el proceso. Gracias a sus amplios conocimientos y disposición a la hora de tomar decisiones pudimos llevar a cabo este trabajo de grado. A la facultad de Ingeniería Industrial y a su equipo de trabajo, por abrirnos las puertas del Centro Tecnológico de Automatización Industrial de la Pontificia Universidad Javeriana para cumplir con nuestras visiones y objetivos de este trabajo de grado. A nuestras parejas sentimentales, por su incondicional apoyo y comprensión a lo largo de este trabajo de grado. 2 Capítulo 2. Introducción En el sector industrial se han generado diferentes avances tecnológicos para el control de calidad a partir de la visión artificial. Entre estos se encuentran una gran cantidad de proyectos en términos de dimensiones, color, forma, entre otros. Para este trabajo de grado se propone un código que permite identificar la rugosidad superficial a partir de las marcas que se registran sobre el material al paso de la herramienta. Esta medición se realizará de forma indirecta a partir de la comparación del patrón a diferentes velocidades y la rugosidad medida por cada velocidad, lo que permite identificar de forma discreta la rugosidad del material. Para desarrollar dicho código, fue necesario identificar la velocidad de procesamiento, que debería tener el sistema, para que este pueda identificar la rugosidad, en velocidades de avance que permite el equipo. El centro de mecanizado EMCO MILL 450 posee un rango de velocidades de avance entre 4 )/)+, y 12 )/)+,. Para esto se tuvo en cuenta la cantidad de cortes que realizaría por unidad de tiempo y la distancia recorrida por la herramienta la cual determinaría el área de procesamiento. Una vez identificada esta restricción se procedió a diseñar el sistema de captura, el cual consistió en realizar la toma de imágenes con la cámara Genie HM640 haciendo uso del SDK Sapera LT. Este código se realizó en C++ cuya función consiste en realizar la captura de imágenes, conversión a formato Mat (tipo de dato para imagen en openCV) y exporta la imagen con extensión jpg para su posterior procesamiento. A partir de las imágenes recolectadas se realizó un código cuya función es identificar la rugosidad superficial a partir de un análisis en frecuencia de la imagen. Finalmente se realizaron pruebas para identificar la probabilidad de exito del código y proporcionar información sobre sus limitaciones de uso. 3 Capítulo 3. Objetivo del proyecto En este capítulo, se podrá observar cuales fueron los alcances de este trabajo de grado a nivel del cumplimiento de sus objetivos, verificando así la importancia y necesidad a nivel de investigación del mismo. 3.1. Objetivo central del proyecto Diseñar y evaluarun control de calidad por procesamiento de imágenes, en el mecanizado por desprendimiento de material, con base en la rugosidad aparente Ra. 3.2. Objetivos específicos del proyecto 1) Establecer el número de imágenes por segundo necesarias para realizar un monitoreo adecuado a un mecanizado con una velocidad de husillo entre 1000 y 1500 RPM. 2) Diseñar un sistema de captura de visión por computador que permita adquirir a la tasa de imágenes descrita anteriormente para la utilización en un algoritmo de procesamiento. 3) Diseñar el algoritmo para el procesamiento de imágenes encargado de determinar el nivel de rugosidad de la pieza mecanizada. 4) Evaluar el sistema de control de calidad con respecto a las condiciones controladas de luz y diferentes piezas. 3.3. Alcance del trabajo de grado Este trabajo de grado tiene como objetivo realizar código que permita la identificación de la rugosidad superficial según unas condiciones delimitadas de mecanizado, esto implica que no posee flexibilidad al haber cambio de herramienta, cámara, iluminación, material, velocidad de corte, rangos de velocidad de avance o equipo utilizado. Como entregables del proyecto se realizaron dos códigos, uno de ellos corresponde a la captura de imagen con el SDK y su exportación. El segundo código corresponde al procesamiento de imágenes y detección de rugosidad. Esto se realizó con el objetivo de realizar el procesamiento de imágenes fuera de línea. 4 Capítulo 4. Marco Teórico 4.1. Mecanizado del Material Este mecanizado consiste en eliminar material de una pieza por medio de una herramienta con filo. Entre los más comunes se encuentran: Taladrado, Torneado, Fresado, rectificado [1]. En el mercado, se puede encontrar gran variedad de equipos, automatizados o manuales, que nos permiten desarrollar los diferentes tipos de mecanizado, estos dependen del tipo de pieza que se quiera desarrollar y las operaciones requeridas. 4.1.1. Centro de Mecanizado El centro de mecanizado es un equipo automatizado que permite realizar gran variedad de operaciones por medio de control numérico computarizado (CNC), esto permite una menor intervención humana y una mayor velocidad de producción ya que todos los movimientos del mecanizado se encuentran en un código interno, donde el operario solo debe ingresar el material al equipo y la velocidad de avance a la cual se va a trabajar [2] En el mercado podemos encontrar gran variedad de centros de mecanizado según sus tamaños, tipos, funcionalidades y grados de automatización, principalmente podemos dividir en 2 tipos, centro de mecanizado de husillo vertical y horizontal. Los centros de mecanizados con husillo vertical permiten realizar operaciones en superficies planas y generar concavidades hondas, estos equipos generalmente poseen un menor costo que los horizontales y son altamente utilizadas para la fabricación de moldes. Están muy relacionados a realizar operaciones de fresado y taladrado [2]. Los centros de mecanizados con husillo horizontal estos son más utilizados para la fabricación de piezas en donde se debe mecanizar toda la superficie del material. Se encuentran más relacionadas con aplicaciones de torneado [2]. Para este trabajo de grado se tendrá en cuenta el proceso de fresado, el cual consiste en eliminar el material a partir de la rotación de la herramienta combinado con el desplazamiento ya sea de la pieza (en el eje X y Y) o de la herramienta (en el eje Z) como se muestra en la Figura 1. En este proceso se pueden utilizar diferentes tipos de herramienta según las formas que se quieran obtener sobre la pieza [3]. Figura 1 Movimientos de Fresadora Tomado de: [3] 5 4.1.2. EMCO MILL 450 Este equipo es un centro de mecanizado vertical con una adaptación para un 4 eje, posee capacidad para 20 herramientas diferentes y una velocidad de avance de 10 m/mm la cual puede ser modificada partir de un control manual. Las especificaciones técnicas del equipo se pueden observar en la Figura 2. Figura 2 Especificaciones EMCO MILL 450 Tomado de: [4] Se escogió este centro de mecanizado para realizar este trabajo de grado, debido a que el Centro Tecnológico de Automatización Industrial (CTAI) de la Pontificia Universidad Javeriana cuenta con dicha máquina y nos brindó la disponibilidad para poder trabajar en esta. 4.1.3. Características de fresado en superficie plana Al desplazar la pieza generando una superficie plana, se generan marcas circulares correspondiente al corte de la herramienta donde las distancias entre estas dependen del diámetro de la pieza, la velocidad de avance del equipo y el número de dientes de la herramienta. Las marcas generadas se observan en la Figura 3. Figura 3 Marcas de Mecanizado Tomado de: [5] Estas marcas se encuentran relacionadas con la rugosidad que posee el material, por lo que a medida que estas marcas se hacen imperceptibles a la vista, la rugosidad tiende a disminuir. 6 4.1.4. Rugosímetro El dispositivo utilizado para medir la rugosidad superficial es el rugosímetro, el cual se puede observar en la Figura 4. Este realiza un mapeo de la superficie haciendo un recorrido a lo largo de una sección de la pieza, durante aproximadamente 30 segundos, para identificar las irregularidades de la superficie. A partir de los movimientos que se genere sobre el palpador, realiza un cálculo de la desviación media aritmética lo que genera la medida de la rugosidad en µm.[6] Figura 4 Rugosímetro Tomado de: [6] 4.2. Sistema de Captura Para el reconocimiento de patrones mediante imágenes, es necesario identificar el tipo de lente a utilizar y las características de la cámara, además de los factores externos que afectan el sistema. Dentro de los factores importantes a tener en cuenta en la selección de los elementos que conforman el sistema de captura se encuentran: 4.2.1. Cámara Para la selección de la cámara de deben identificar los requisitos mínimos para tener una calidad de imagen suficiente para el procesamiento, para esto se tendrán en cuenta factores como: si es monocromática o a color, el tipo de sensor a utilizar, la técnica de captura, frecuencia de captura, resolución de la imagen [7]. Monocromática o a color: Dentro de las configuraciones de cámara es posible identificar monocromáticas y a color. Estas son utilizadas en diferentes casos según su aplicación. El uso de cámaras monocromáticas agiliza la captura de imágenes mientras que las cámaras a color contienen mayor nivel de detalle para el ojo humano [7]. Sensor: Este es un factor a tener en cuenta si se está realizando procesamiento de imágenes a alta velocidad. En el mercado se encuentran 2 tipos de sensores: los CCD, los cuales al recibir señal de los píxeles adyacentes logran una mayor sensibilidad permitiendo un elevado paso de luz, y Los CMOS, que tienden a generar imágenes más oscuras al muestrear individualmente la señal en cada pixel para ser convertida en voltaje. Para el caso de los CCD no es adecuado usar imágenes en movimiento ya que estos requieren un mayor tiempo para realizar la captura y tienen una mayor exposición de luz al sensor la cual hace que el efecto del desplazamiento sea más evidente[8]. Frecuencia de captura: La frecuencia de captura indica cuantas imágenes es posible adquirir en determinado tiempo. Esta frecuencia normalmente se encuentra en Hz y requiere de identificar en el sistema de captura, el máximo tiempo aceptable entre imágenes y el tiempo mínimo para no saturar la memoria del sistema con datos [7]. 7 Resolución de la imagen: este se refiere a la cantidad de pixeles para describir una imagen. Para esto se debe dividir la imagen deseada en cierto número de partes las cuales permitan visualizar con precisión la imagen y el mínimo nivel de detalle deseado [7]. Número de canales (Tap): Esta característica corresponde al número de líneas de datos que envíaninformación de un pixel. Algunas cámaras poseen varios canales para transmitir la información y de diferentes formas haciendo más rápido el envío de datos. Los diferentes modos de transferencia se muestran en la Figura 5. Estos modos también indican la forma en que se recorre la imagen al ser capturada. Figura 5 Modos según Tap Tomado de: [9] 4.2.2. Genie HM640 Para el desarrollo del proyecto se utilizó la cámara Genie HM640 de la empresa Teledyne Dalsa, esta cámara permite realizar la captura de imágenes a alta velocidad utilizando un protocolo de comunicación ethernet con el computador. La cámara cuenta con una fuente de alimentación por medio de un conector MISC- FULL-AV-OP-5M. Las características básicas de la cámara se encuentran en la Tabla 1. Tabla 1 Especificaciones de Genie HM640 Número de Parte CR-GM00-H640x Resolución 640 x 480 pixeles Montura C Velocidad de Datos Total 92 MB/s Máxima velocidad de captura 300 fps Tamaño de Pixel 7.4 µm Número de Canales 1 Formato de salida GigE Vision Tamaño 44 mm x 29 mm x 67 mm Masa 115 g Tomad de: [10] 8 4.2.3. Sapera LT SDK Para la adquisición de la imagen se proporciona un SDK por parte del fabricante, un conjunto de librerías que permite realizar la captura de imágenes y almacenar en un tipo de dato llamado GigE Vision. Este es un conjunto de estructuras anidadas con la información de la imagen como el formato, tamaño y la información de cada pixel. 4.2.4. Lente En el mercado se pueden encontrar diferentes tipos de lente, la selección de este juega un papel crucial en la aplicación a utilizar. Para una correcta selección se deben tener en cuenta varias características, entre estas se encuentran: Montura: Esta corresponde al ajuste con la cámara tanto en la rosca como en la distancia entre el sensor y el lente. Distancia focal: es un cálculo de la distancia desde el punto donde los rayos de luz convergen hasta el sensor, esta distancia define el ángulo de visión de la cámara y por ende el área que la cámara puede observar [11]. Enfoque: se refiere a hacer coincidir, en el plano focal, los rayos de la luz en un punto focal en el sensor, esto se hace moviendo los lentes internos de tal forma que al refractar la luz se modifique el punto en donde se conectan los rayos de luz. Para el caso de estas cámaras, el rango de enfoque se encuentra entre un número e infinito y se realiza de forma manual [12]. Apertura de Diafragma: Este corresponde a un control manual que permite un paso medido de la luz. Esto significa que, si se cierra esta apertura, la imagen puede salir más oscura o no verse, por otro lado, al abrir completamente el diafragma la iluminación puede ser muy grande y no permitir una buena visualización de la imagen al generar brillos indeseados. En el mercado se encuentra una gran variedad de lentes, uno de ellos es el lente de distancia focal fija, el cual es utilizado en aplicaciones de robótica e inspección y son ideales en aplicaciones de visión para equipos automatizados. este tipo de lente tienen un límite mínimo de distancia focal especificado según la cámara [13]. 4.2.5. Lente Para cada aplicación se debe elegir un lente según las características de la imagen a obtener. La distancia de la cámara, el tamaño del objeto y el nivel de detalle son algunos de los factores que hace que esta elección sea tan crítica. Al utilizar un objeto pequeño en el que se desee tener mayor nivel de detalle, la imagen debe estar ampliada al momento de la captura y si la cámara se encuentra ubicada lejos de la pieza se agrega una mayor dificultad. Por ello se recurre a ciertas ecuaciones que nos permite ver los límites de las cámaras y comprobar si el lente puede ser usado en la aplicación. Para identificar si el lente cumple con el requisito de debe utilizar la siguiente fórmula. . = ℎ×12 ℎ34+53,678 9:; ( 1 ) 9 De la ecuación 1, . corresponde a la distancia focal, ℎ es la distancia horizontal del lente, 12 es la distancia de trabajo a la cual puede trabajar y <34+53,678 9:; es la distancia en mm que se quiere observar de forma horizontal en la imagen.[13] Para mayor claridad de las variables de la ecuación, en la Figura 6 se puede observar la versión gráfica. Figura 6 Variables en sistema de captura Editada de: [14] [13] 4.2.6. Distorsión La distorsión es un defecto que posee una imagen al realizar una deformación geométrica de esta durante su captura, esto refleja cómo el aumento cambia a través de toda la imagen. Esta distorsión puede ser positiva o negativa [15] como se muestra en la Figura 7, cuando se presenta una distorsión positiva, las esquinas de la imagen tienden a irse hacia el centro; por otro lado, al ser negativa, la imagen se extiende hacia afuera en cada esquina. Esto produce un efecto indeseado en la captura ya que no permite a la imagen identificar la geometría del objeto. Figura 7 Tipos de distorsión Tomado de: [15] 4.2.7. Corrección de distorsión Para la corrección de distorsión se debe obtener la matriz de la imagen, La cual corresponde a una matriz cuadrada de 3 x 3 en donde se encuentra especificada la distancia focal de la imagen, el punto central y un ajuste conocido como “skew” los valores indican la corrección que se le debe hacer a la imagen capturada para no presentar distorsión. En la Figura 8, se muestra la matriz de la imagen en donde los valores Fc corresponden a la distancia focal, Cc al punto central de la imagen y Alpha_c al “skew” [16]. 10 Para obtener estos valores se cuenta con herramientas donde a partir de imágenes tomadas a ciertos patrones en diferentes ángulos, el sistema es capaz de identificar las curvaturas generadas por distorsión y de esta forma generar los índices mencionados anteriormente. La herramienta con la que se calibró la cámara fue “Camera Calibration Toolbox” de Matlab el cual posee una interfaz gráfica en donde se permite cargar las imágenes necesarias para realizar la calibración. Estas imágenes deben ser fotografías realizadas a una figura que corresponde a un patrón tipo tablero de ajedrez (blanco y negro)[16]. Figura 8 Matriz de la imagen Tomado de [16] Figura 9. GUI toolbox de Matlab Tomado de: [16] Una vez ingresadas las imágenes se deben indicar de forma manual los vértices de la imagen para que el sistema sea capaz de identificar los vértices de todos los cuadrados del patrón. Figura 10 Detección de esquinas (a) (b) Tomado de: [16] Este patrón consiste de un conjunto de líneas que conforman ciertos puntos de intersección, los cuales en una cámara calibrada no deberían formar curvaturas. En caso de presentar curvaturas, se ven reflejadas en los parámetros de distorsión en la matriz de la cámara. A partir de los parámetros obtenidos, el toolbox de Matlab extiende o encoge secciones de la imagen para corregir dicha deformación y formar las líneas rectas que este debería presentar. A continuación, se observan dos imágenes tomadas por una cámara “ojo de pez”. En el lado izquierdo se muestran las imágenes originales, en esta se puede observar que las líneas del patrón poseen cierta curvatura 11 que no permite identificar con precisión características de la imagen. Al lado derecho se encuentra la misma imagen con la corrección de calibración, donde se puede observar claramente el efecto de la perspectiva. Figura 11. Calibración de imagen Tomado de: [17] El resultado de la calibración por medio del toolbox se muestra en la Figura 12. Figura 12 Salida toolbox de Matlab Tomado de [16] Este resultado muestra los índices de la matriz de calibración y demás parámetros necesarios para realizar la calibración de la cámara. 12 4.3. Procesamiento de imágenes El procesamiento de imágenes se realiza desde dos enfoques, el primero es el procesamiento de señales, en donde se considera el dominio de las frecuenciasy se analiza la imagen como una distribución de señales sinusoidales. En el segundo enfoque se realiza un análisis desde el dominio espacial, en el cual se define la imagen como una matriz[18]. El procesamiento de imágenes es un área muy ligada a la visión por computador, sin embargo, cada una tiene un objetivo diferente; en el procesamiento de imágenes su objetivo principal es mejorar la calidad de las imágenes, en donde se busca eliminar ruido, distorsión, desenfoque, y demás elementos que no permitan una imagen aceptable, para su posterior utilización, análisis o interpretación, esto se consigue manipulando de forma adecuada los niveles de grises de una imagen [18]. Por otro lado, se tiene la visión por computador, que tiene como objetivo principal extraer características de una imagen para su descripción e interpretación, esto se hace partiendo del procesamiento de imágenes [19]. 4.4. Librería OpenCV Las siglas Opencv provienen de los términos anglosajones “Open Source Computer Vision Library”. Esta es una librería que se enfoca en el tratamiento de imágenes, destinada principalmente a aplicaciones de visión por computador en tiempo real [20]. Su comienzo se originó cuando la empresa Intel® Corporation en el año 2000, anunció que estaba desarrollando una librería para la visión por computador que se basaba en lenguaje C [21]. Está biblioteca es usada por empresas a nivel mundial para crear desarrollos tecnológicos y avances en el campo de la visión por computador, algunas empresas que hacen uso de esta librería son: Google, Yahoo, Microsoft, Intel, IBM, Sony, Honda, Toyota. Sin embargo, hay países donde se hace uso de esta librería con diferentes propósitos, por ejemplo: la detección de intrusiones en un video de vigilancia en Israel, los equipos de vigilancia de minas en China,, detección de accidentes por ahogamiento de la piscina en Europa, corriendo el arte interactivo en España y Nueva York, comprobando pistas de aterrizaje para los desechos en Turquía, la inspección de las etiquetas de los productos en las fábricas de todo el mundo a la detección de rostros rápida en Japón, entre otros. [22]. Cabe resaltar que, Opencv cuenta con interfaces para C ++, C, Python, Java y MATLAB y es compatible con Windows, Linux, Android y Mac OS. Lo que hace que esta librería sea muy completa. A su vez, Opencv cuenta con más de 2500 algoritmos optimizados y tiene la característica que puede ser usado tanto para uso comercial como para su uso no comercial, en pocas palabras es considerado como un software libre. Estos algortimos pueden ser utilizados para: detectar y reconocer las caras, identificar objetos, clasificar las acciones humanas en los vídeos, los movimientos de cámara pista, moviendo el seguimiento de objetos, extraer modelos 3D de objetos, producen nubes de puntos 3D de cámaras estéreo, fusionar imágenes juntos para producir una alta resolución la imagen de una escena completa, encontrar imágenes similares de una base de datos de imágenes, eliminar los ojos rojos de las imágenes tomadas con flash, seguir los movimientos de los ojos, reconocer el paisaje y establecer marcadores para revestirlo de realidad aumentada, etc. [22]. Particularmente en este trabajo de grado se hará utilización a todos los algoritmos de Opencv que hacen referencia al tratamiento de imágenes y texturas. 4.4.1. Componentes del procesamiento de imágenes a utilizar A continuación, se presentan los conceptos más importantes que conforman el procesamiento de imágenes. 13 Imagen digital Se define una imagen digital como aquella representación bidimensional construida a partir de una matriz binaria (compuesta de unos y ceros) [23], cuya amplitud o valor será el grado de iluminación (intensidad de luz) en el espacio de coordenadas (>, @) de la imagen en cada punto [24] . Se pueden encontrar dos tipos de imágenes: la imagen a color y la imagen monocromática (imagen en escala de grises). Es importante resaltar que un procesamiento de imágenes se consigue manipulando de forma adecuada los niveles de grises de una imagen. Teniendo en cuenta lo anterior, es necesario representar las imágenes a color en imágenes monocromáticas, para esto se hace la utilización de unos de los modelos existentes en la litografía, el cual es el RGB (Términos de la lengua inglesa Red - Green - Blue), dicho modelo consiste en representar los diferentes colores a partir de la mezcla de los tres colores primarios [25]. Con este modelo se puede descomponer una imagen a color en tres imágenes monocromáticas en donde se verán los componentes de cada color en niveles de grises y hacer el procesamiento con estos tres planos. Una imagen monocromática, podemos considerarla como una matriz donde el elemento denominado pixel (abreviaturas del inglés picture elements) en la fila + columna B tiene un nivel de gris .(+, B) que toma valores entre 0 (negro) y 255 (blanco)[18]. Segmentación En este proceso de segmentación se busca descomponer una imagen en sus partes constituyentes, es decir, los objetos de interés y el fondo. Teniendo en cuenta que la mayoría de las imágenes tienen zonas que comparten las mismas características, es importante resaltar que la segmentación de una imagen es la división por varias zonas o regiones de características idénticas (homogéneas). [26] Los algoritmos de segmentación de imágenes monocromáticas se basan en alguna de las siguientes tres propiedades: a) Discontinuidad en los tonos de gris de los píxeles de un entorno, que permite detectar puntos aislados, líneas y aristas (bordes). b) Similaridad en los tonos de gris de los píxeles de un entorno, que permite construir regiones por división y fusión, por crecimiento o por umbralización. c) Conectividad de los píxeles desempeña un papel importante en la segmentación de imágenes. Recordemos que una región D se dice conexa o conectada si para cada par de píxeles de la región existe un camino formado por píxeles de D que los conecta. Un camino de píxeles es una secuencia de píxeles adyacentes (que pertenecen a su entorno inmediato). [26] Binarización La binarización se realiza con el fin de separar regiones de una imagen correspondientes a los objetos que queremos analizar. Dicha separación se basa en la variación de intensidad entre los píxeles del objeto y los píxeles que hacen parte del fondo. Para poder diferenciar los píxeles de interés entre los que eventualmente serán rechazados, se compara la intensidad de cada píxel de la imagen con un umbral, este umbral se determina dependiendo de cada problema. 14 Se pueden realizar 5 operaciones de binarización con la función a utilizar de la librería Opencv, para mostrar principio fundamental de la Binarización, se considerará una imagen origen src (x, y), en la cual se pueden encontrar los diferentes valores de intensidad de cada uno de los píxeles de dicha imagen. Figura 13 Imagen original binarización Tomada de: [27] En la Figura 14, se denota la representación de los valores de intensidad de cada uno de los píxeles y en donde la línea azul horizontal, se denomina umbral o Thres, este valor fijo es el cual nos permite identificar los píxeles de interés. Las 5 operaciones que se pueden realizar con la librería opencv son: Umbral Binario, Umbral Binario Invertido, Truncar, Umbral a cero y Umbral de cero Invertido. Cabe resaltar, que para este trabajo de grado se decidió utilizar la operación de Umbral Binario, debido a que deja visualizar los valores de interés con respecto al umbral y los demás los manda a cero, distinguiendo así la forma o patrón a identificar, lo cual se adecua a este trabajo de grado, en comparación a los demás métodos. A continuación, se presenta la explicación del método a utilizar. Figura 14 Umbral Binario Tomada de: [27] ( 2 ) Como se denota a través de la ecuación ( 2 ), si la intensidad del píxel de la imagen original CDE (F, G),es superior al valor definido como umbral Thres, entonces el nuevo valor de intensidad de dicho píxel se establece en un nivel máximo definido por el programador MaxVal, de lo contrario, los píxeles se establecen con un valor de intensidad igual a 0. [27] 4.4.2. Histograma El histograma de una imagen es una herramienta que se utiliza para representar los niveles de grises de una imagen [18]. Se utiliza para la transformación y análisis de una imagen, ya que representa los diferentes niveles de intensidad que tiene cada píxel. Sin embargo, un histograma no solamente puede llevar la 15 información de las intensidades de color, puede contener cualquier característica que se quiera medir de la imagen, como gradientes, direcciones, etc. [28] Figura 15 Valores de imagen en escala de grises Tomado de: [28] En la Figura 15, se puede observar cómo se puede representar los niveles de intensidad de una imagen, para después llevarlos al histograma: Figura 16. Histograma imagen opencv Tomado de: [28] En la Figura 16, se puede ver el resultado de realizar el cálculo del histograma para la imagen de la izquierda conocida como original o src. Y por medio de la imagen derecha se puede observar el histograma en las tres dimensiones de la imagen RGB, mostrando así el cómo está compuesta la imagen en los colores: rojo, azul y verde. Cabe resaltar que para este trabajo de grado nos basaremos en el histograma, con el fin de observar la intensidad de cada uno de los píxeles de la imagen monocromática adquirida. 4.4.3. Ecualización del Histograma La ecualización del histograma es uno de los filtros manejados y proporcionados por parte de la librería Opencv, se aplica cuando se desea lograr una distribución más uniforme entre el número de píxeles referido a los diferentes niveles de intensidad presentes en la imagen, haciendo que el histograma se extienda en el 16 intervalo de niveles de grises. En la Figura 17, se presenta el resultado de este filtro siendo usado en una imagen particular. Figura 17 Filtro equalización Tomado de: [29] En donde, la imagen de la izquierda corresponde a la original o src y la imagen de la derecha corresponde a la imagen resultante de la ecualización del histograma. 4.4.4. Corrección Gamma La corrección gamma, es una operación no lineal que es utilizada para decodificar o codificar los valores de luminancia de una imagen en sistemas de video o imagen. Dicha corrección está definida por la ley de potencias Vou6 = K ∙ ;MN O donde A es una constante y los valores de voltaje de entrada y voltaje de salida son reales no negativos, tomando un K = 1 y ! < 1, se tiene la codificación de una imagen, en donde se aplica una comprensión no lineal de la ecuación descrita anteriormente, en términos coloquiales “Aumenta la luminancia de la imagen”. Ahora bien, tomando K = 1 y ! > 1, se conoce como la decodificación de la imagen, la cual es la aplicación de una expansión no lineal de la ley de la potencia, en términos coloquiales “Disminuye la luminancia de la imagen”. [30] Teniendo en cuenta que, si una imagen es bajo o sobre gamma corregida, esto también afecta el balance de color. En caso que se realice una corrección por encima de uno los colores tenderán hacia el gris neutro, mientras, que si se realiza una corrección por encima de unos los colores tenderán hacia las primarias de visualización. Por medio de las siguientes imágenes, se muestra un mapeo de que hace la corrección y se observa el resultado esperado según sea el valor de Y. Figura 18 Función de la corrección gamma Tomado de: [30] 17 Figura 19 Imagen original para filtro gamma Tomado de: [30] La Figura 19 es denominada como original o src, y tiene Y=1, en la Figura 20 se muestran las imágenes con ! = 2 y ! = 0,5 para poder observar la diferencia entre ellas, cabe resaltar que lo que se espera en la primera imagen es una disminución de la luminancia y en la segunda un aumento. Figura 20 Corrección gamma con ! = 2 y ! = 0.5 Tomado de: [30] 4.4.5. Filtro Canny Este filtro es un operador desarrollado por John F. Canny en 1986, el cual busca detectar la mayor cantidad de bordes en una imagen. Este filtro es conocido como el “Detector Óptimo”. Este algoritmo busca satisfacer tres criterios principales [31]: • Baja tasa de error: Significado una buena detección de bordes únicos existentes. • Buena localización: La distancia entre los píxeles del borde detectado y los píxeles del borde real de tener que ser reducido al mínimo. • Respuesta mínima: Sólo una respuesta del detector por borde. Para cumplir los anteriores criterios, este filtro realiza una serie de pasos con el fin de obtener un resultado viable. A continuación, se mencionan los 4 pasos que este algoritmo aplica y el resultado esperado en el momento de ejecutar el algoritmo [31]. 1) Se filtra cualquier ruido existente, para esto se usa el filtro de Gauss. 2) Encontrar el gradiente de intensidad de la imagen, para esto se realizan los siguientes pasos: 18 a) Aplicar un par de máscaras de convolución tanto en x como en y direcciones: Figura 21 Máscaras de convolución Tomado de: [31] b) Encontrar la fuerza y la dirección del gradiente, haciendo uso de las siguientes fórmulas: Figura 22 ecuaciones gradiente y fuerza Tomado de: [31] Se aplica la supresión no-máxima, esto elimina los píxeles que no son considerados un borde, por ende, solo las líneas finas se quedarán en la imagen. 3) Histéresis: Canny hace uso de dos umbrales para su realización (Superior e inferior), los criterios para mantener o iluminar los bordes son: a) Si un gradiente de píxel es mayor que el umbral superior, el píxel se acepta como borde. b) Si un valor de gradiente de píxel es menor que el umbral inferior, entonces, el píxel se rechaza. c) Si un valor de gradiente se encuentra en la mitad de los dos umbrales, es decir, si es menor que el umbral superior, pero es mayor que el umbral inferior, entonces, se aceptará como borde solo si está conectado a un píxel que su gradiente sea mayor al umbral superior. Resultados esperados a la aplicación de dicho filtro a una imagen. Figura 23 Aplicación de filtro Canny Tomado de: [31] 4.4.6. Filtro 2D El tipo de filtro 2D tiene dos formas, no lineal y lineal. En la no lineal para cada posición de pixel (x, y) de la imagen original consideran los pixeles que están vecinos a él, los pondera y utiliza para calcular la 19 respuesta. El filtro lineal realiza la suma ponderada de todos los valores de pixel y calcula el resultado. La respuesta calculada por medio de los dos métodos se almacena en la imagen de destino en el mismo lugar (x, y). Esto significa que la imagen de salida o la imagen de destino tendrá el mismo tamaño que la imagen de entrada u original. A su vez, la imagen de salida también tendrá el mismo número de canales como la de entrada. El filtro 2D tiene como objetivo convolucionar una imagen con un kernel definido, el kernel de convolución es una matriz de punto flotante de un solo canal. Si el usuario desea aplicar dicho kernel a diferentes canales debe dividir la imagen en distintos planos de color. Para esto, puede utilizar la función split () de la librería Opencv. 4.4.7. Transformada de Fourier La transformada de Fourier realiza la descomposición de una imagen en sus respectivas componentes de senos y cosenos, su objetivo principal es poder convertir una imagen de su dominio espacial a su dominio en frecuencia, es por esto que la imagen se puede descomponer en una suma de senos y cosenos infinitos debido a todos los armónicos que una imagen conlleva [32]. Matemáticamente la transformada de Fourier para una imagen de dos dimensiones tiene una estructura como la que se muestra en la Figura 24. Figura 24 Formulación matemática transformada de Fourier Tomada de: [32] Donde la R esel valor de la imagen en su dominio espacial y S representa a la imagen en el dominio de la frecuencia. Como se puede observar en la ecuación, el resultante será un número complejo, sea denominado con sus valores cartesianos o con sus valores de magnitud A y Fase. En la Figura 25, se presenta uno de los resultados esperados, después de haber aplicado dicha transformada a una imagen de dos dimensiones. Figura 25 Transformada de Fourier imagen Tomado de: [33] Como se puede observar al lado izquierdo de la Figura 25, se tiene la imagen original en dos dimensiones o src y al lado derecho de la Figura 25, se obtuvo el resultado de la magnitud en frecuencia usando la transformada de Fourier. Además, se puede observar que los puntos más brillantes o influyentes en la imagen siguen la rotación geométrica de los objetos de la imagen. 20 Capítulo 5. Velocidad de captura 5.1. Introducción En este capítulo, se realiza una descripción del desarrollo, resultados y conclusiones referentes al primer objetivo, el cual corresponde a determinar el número de imágenes por segundo necesarias para realizar un control ideal del proceso. En este capítulo no se tienen en cuenta restricciones físicas y de transferencia de datos ya que está enfocada demostrar al lector las necesidades en velocidad de lectura que debe tener el sistema diseñado para implementar esta función en otro tipo de entorno. Así mismo, se mostrarán los diferentes cálculos necesarios para encontrar el valor de dicha velocidad de captura necesaria en un nivel teórico Posteriormente se analizarán las restricciones de los equipos utilizados que afectan la velocidad de muestreo. 5.2. Descripción de los elementos de mecanizado Dentro de los equipos utilizados para realizar este tipo de mecanizado se encuentran. Material: Lámina de aluminio de 14cm x 6cm x 1.5cm. Equipo: centro de mecanizado EMCO MILL 450. Velocidad de Husillo: 2000 rpm. Velocidades de avance: el equipo utilizar permite una variación manual de una velocidad de avance fija de 10 m/min, esta variación es representada en porcentaje. Para este caso se utilizarán velocidades entre 0.2 m/min y 12 m/min que permiten utilizar todo el rango de velocidades del equipo, para mayor detalle consultar la Tabla 2. Tabla 2 Velocidades de avance según control manual Control Manual (Porcentaje de la velocidad de avance) Velocidad de avance [m/min] Velocidad de avance [mm/corte] 2% 0.2 0.075 20% 2 0.75 40% 4 1.5 60% 6 2.25 80% 8 3 100% 10 3.75 120% 12 4.5 La variación de volcidad se realiza por medio de un Herramienta: Escariador HSS CO (aleación de cobalto al 8%). Cortes de herramienta: 2 cortes. Diámetro de herramienta: 16 mm. 21 5.3. Cálculos del número de imágenes Para el cálculo de la velocidad de captura, que debería tener la cámara, para hacer una lectura en línea del mecanizado, se debe tener en cuenta la velocidad de giro del husillo y los cortes de la herramienta. Estas determinan cada cuanto tiempo se realizará un corte sobre el material. Para un entorno de mecanizado con las características descritas anteriormente, el número de veces que la herramienta realiza un corte en un periodo de tiempo y área de la pieza. tiene mucha relación con la rugosidad que se obtendrá. Esto sucede debido a que las marcas pueden quedar más separadas unas de otras. En caso de quedar muy juntas es posible que el sistema sea incapaz de reconocer el patrón, por otro lado, si quedan muy separadas se debe analizar una mayor área de trabajo, por lo que habría un mayor desperdicio de material para el momento en que el sistema sea consciente del cambio. Con una velocidad de husillo de 2000 rpm y una herramienta de 2 cortes, se encuentra que el número de cortes que puede hacer en 1 segundo es de 66.67. Lo que implica que para realizar un corte nuevo tarda 15 ms. A continuación, se muestran los cálculos para llegar a dichos números. 2000 4T) × 1 )+, 60 V = 33.33 X+43V V ( 3 ) 33.33 X+43V V × 2 Y346ZV X+43 = 66.66 Y346ZV V ( 4 ) 1 66.66 V Y346Z = 15 )V Y346Z ( 5 ) Sin embargo, se debe evaluar la distancia que recorre la máquina a diferentes velocidades de avance. A continuación, se muestra un ejemplo de esta distancia, para esto debemos referimos a la Tabla 2, en donde identificamos la velocidad de avance en mm/corte. A continuación, se muestra la fórmula para el cálculo de la distancia recorrida y un ejemplo del mismo con una velocidad al 60% con 2 cortes. 15 )V Y346Z × # Y346ZV × ;Z8. 7\7,YZ ) )+, × 1 )+, 60000 )V × 1000 )) 1 ) = ]+V67,Y+7 ( 6 ) 15 )V Y346Z × 2 × 6 ) )+, × 1 )+, 60000 )V × 1000 )) 1 ) = 3 )) ( 7 ) En la Tabla 3, se muestra la distancia recorrida para 1, 2 o 3 cortes. Tabla 3 Distancia recorrida por número de cortes 2% 20% 40% 60% 80% 100% 120% Distancia en mm por corte 0.075 0.75 1.5 2.25 3 3.75 4.5 Distancia en mm por 2 cortes 0.15 1.5 3 4.5 6 7.5 9 Distancia en mm por 3 cortes 0.225 2.25 4.5 6.75 9 11.25 13.5 Se espera que con la captura de una imagen se encuentre una escena distinta para poder procesar la imagen. Y obtener resultados distintos. Sin embargo, no se debe tomar una muestra de una región muy grande ya 22 que se puede perder mucho material. Por esta razón se decide que el sistema de captura debe ser capaz de capturar la imagen y procesar al menos en el tiempo en que se demora en realizar 2 cortes. 5.4. Conclusiones del capítulo A partir de los análisis realizados en área a analizar y velocidad de las marcas, se identifica que el sistema de captura y procesamiento de imágenes no debe superar los 30 ms (33.33 Hz), este corresponde a 2 cortes realizados por una herramienta HSS Co8 de 16 mm de diámetro y 2 dientes a una velocidad de husillo de 2000 rpm y un rango de velocidades de avance entre 0,2 y 12 m/min. Capítulo 6. Sistema de captura por computador 6.1. Introducción En este capítulo, se analizará cómo se llevó a cabo la captura de imágenes haciendo uso de la cámara Genie Cam HM640 con comunicación vía ethernet hacia un computador. Teniendo en cuenta los diferentes problemas en el momento de capturar una imagen, tales como: iluminación, enfoque, ubicación y demás factores que inciden en el momento de adquirir una imagen. Así mismo en este capítulo se podrá ver la forma de integrar dicha cámara con la librería de tratamiento imágenes Opencv. A través de este capítulo se mostrará el desarrollo y cumplimiento del objetivo específico número 2 en donde se deja evidenciado la captura de imágenes correcta para el posterior procesamiento. 6.2. Diagrama de bloques general del sistema En la Figura 26, se presenta el diagrama de bloques de la solución realizada por medio de este trabajo de grado. Figura 26 diagrama de bloques del sistema Edición utilizando imagen de: [14] 23 Como se puede observar en la anterior figura, lo primero que se realiza es el mecanizado de la pieza a analizar, utilizando la máquina EMCO MILL 450 haciendo uso de instrucciones del código G, con el fin de generar en la pieza diferentes valores de rugosidad y esto se logra variando la velocidad de avance. Lo segundo a realizar, es la captura de imágenes, después de haber realizado el mecanizado, se procede a realizar el montaje de la cámara y la adecuación detallada del entorno. Lo tercero, es la adquisición de la imagen que va relacionado con la captura de la imagen, lo que se realiza es un barrido de la pieza haciendo uso de la EMCO MILL 450 y se almacenan dichas imágenes en un computador para su posterior tratamiento. Por último, se realiza el procesamiento de imágenes con el fin de identificar a qué velocidad de avance pertenece la imagen para así mismo poder asignarle un valor de rugosidad, calculado con la herramienta de medición conocida como “rugosímetro”. A continuación, se presentan las diferentes características que se utilizaron para poderobtener el anterior diagrama de bloques, así mismo se presentan las especificaciones con las que se realizó. 6.3. Elección del lente Para la elección del lente se tuvieron en cuenta 2 tipos de lente disponibles. El lente Fujinon HF16HA-1B y el lente Kowa LM3NCM. En la Tabla 4 se comparan las características de ambos lentes. Tabla 4 Comparación de referencias de lente Fujinon HF16HA-1B Kowa LM3NCM Montura C C Distancia Focal 16 3,5 Enfoque Manual Manual Rango de Diafragma F1.4 a F16 F2.4 a F8 Diafragma Manual Manual Tamaño de sensor ⅓’ ⅓’ Tomada de:[34] y [35] A cada una de las lentes se le identificó la distancia a la cual debe estar la cámara utilizando la ecuación ( 1 ). La distancia focal y el tamaño del sensor son características de la cámara por lo que serán estas las que determinen si es posible utilizar este lente. Por otro lado, se desea observar una distancia de 35 mm de longitud de la pieza. Los cálculos realizados para ambas cámaras se muestran a continuación. . = ℎ×12 ℎ34+53,678 9:; ( 8 ) Para la cámara Kowa LM3NCM 12 = .×<34+53,678 9:; ℎ ( 9 ) 12 = 3,535)) 8.46)) ( 10 ) 24 12 = 14.47)) ( 11 ) Para la cámara Fujinon HF16HA-1B 12 = .×<34+53,678 9:; ℎ ( 12 ) 12 = 1635)) 8.46)) ( 13 ) 12 = 66)) ( 14 ) En caso de utilizar el lente Kowa LM3NCM, la cámara tendría que estar ubicada aproximadamente a solo 1,45 cm de la pieza, distancia la cual no se permite manipular la pieza, la iluminación estaría restringida y no se podría realizar el mecanizado por la longitud de la pieza. Para la otra cámara, Fujinon HF16HA-1B, el lente proporciona una distancia mínima de trabajo de 6,6 cm, la cual permite realizar las debidas modificaciones en la máquina. Debido a la distancia de trabajo que proporciona el lente, se realizó la adquisición de imágenes a partir de la cámara Genie HM640 integrada al lente Fujinon HF16HA-1B. 6.4. Restricciones de velocidad de transferencia Para realizar la comunicación con la cámara, se utilizó el puerto ethernet del computador. Este posee ciertas limitaciones en velocidad de transferencia según el computador y las características de la cámara, por lo que es necesario evaluar si el computador posee las características necesarias para realizar esta transferencia de información. Tabla 5 Velocidades de transferencia Características de la cámara Genie HM640 Velocidad de Datos Total 92 MB/s Máxima velocidad de captura 300 fps Características del computador Dell Latitude E5450 Velocidad de Datos Total Ethernet 1000 MB/s Máxima velocidad de captura 3260 fps A partir de estos datos se puede concluir que la limitación de transferencia de imágenes está dada por la cámara, sin embargo, esto no es relevante ya que ambos, tanto el computador como la cámara cumplen con las restricciones de tiempo de procesamiento de 1 imagen. 6.5. Acceso a la cámara 6.5.1. Conexión La conexión de la cámara al computador requiere de 3 elementos, un cable ethernet, un cable MISC-FULL- AV-OP-5M y un adaptador de 12V. El cable ethernet es la conexión física al computador para realizar la transferencia de datos, el cable MISC y el adaptador son utilizados para alimentar la cámara. El cable MISC 25 consiste de un adaptador de 12 pines que va conectado a la cámara, del otro extremo se encuentran los cables correspondientes a cada pin de conexión, para alimentar la cámara se creó un conector para convertir la salida del cable MISC a un Jack de conexión del adaptador. El conector se puede observar en la Figura 27. Figura 27 Conector cable MISC-FULL-AV-OP-5M 6.5.2. Instalación de librerías y configuración Teniendo en cuenta que el sistema operativo a utilizar en este trabajo de grado es LINUX – Ubuntu, se instalaron los paquetes necesarios para poder tener comunicación y poder visualizar una imagen. Para esto, nos basamos en el manual “GigE-V Framework for Linux 32/64-Bit Programmer's Manual”, en donde se indica la forma correcta de instalar el SDK y las librerías adicionales necesarias. Al finalizar todo el proceso de instalación, se procedió a configurar el puerto ethernet de la cámara para esto se realizó los siguientes pasos: 1. Ir a configuración de red y elegir la opción de editar conexiones. Figura 28 (a) 2. Elegir la opción GigE y oprimir editar. Figura 28 (b). 3. Ir a Configuración de IPv4 y en la opción de método escoger “Solamente local”. Figura 28 (c) 4. Guardar configuración. Figura 28 Configuración puerto ethernet Tomado de: [14] A partir de los anteriores pasos, se procedió a utilizar los ejemplos y las herramientas brindados por GigE Cam, particularmente para este trabajo de grado se utilizaron dos elementos. “GigeDeviceStatus” 26 proporciona información sobre la cámara conectada en ese momento, tales como: Manufactura, Modelo, Número serial, la Dirección MAC, estado, la dirección Ip de la cámara, la dirección NIC IP, MAXPktSIze, F/W ver y el nombre del usuario. Esto permitía identificar cuando la cámara se encontraba conectada correctamente. En la Figura 29, se muestra la ejecución de la herramienta para la cámara Genie Cam HM 640. Figura 29 información de GigeDeviceStatus El otro elemento utilizado como base para desarrollar el código de captura fue el ejemplo “genicam_cpp_demo”, cuya funcionalidad es iniciar la adquisición de la imagen para ser visualizada en una ventana. Al ejecutar el código, se despliega un menú de inicio que permite seleccionar la opción de captura. Este inicio del programa se observa en la Figura 30. Figura 30 Menú de inicio código de ejemplo Por medio del ejemplo, se identificó la forma en que el SDK accede a la cámara. Sin embargo, este código ejemplo no almacena la imagen, por lo que no es posible realizar ningún tipo de procesamiento con esta visualización de imagen. 6.6. Captura de imagen Teniendo en cuenta el ejemplo usado previamente en la cámara, es necesario guardar la imagen visualizada por la cámara y que sea compatible a la librería Opencv (formato Mat). Para poder capturar la imagen en formato Mat, se procedió a realizar un análisis detallado del código ejemplo “genicam_cpp_demo”, teniendo en cuenta todas las librerías de las que hacía uso. Por lo tanto, lo que se buscaba con dicho análisis era poder identificar ¿dónde? y ¿cómo?, dicho código tiene acceso a la cámara y por ende a la imagen, para poder transformarla en un formato compatible con la librería Opencv. En el momento de encontrar la librería del código de ejemplo, en donde la cámara tenía acceso a la imagen, se pudo observar y concluir que dicho SDK no tenía comunicación con Opencv. Es por esto, que por medio de este trabajo de grado se generó un código que hacía uso del ejemplo brindado por la empresa Genicam, con el fin de realizar la conversión de la imagen visualizada por la cámara a un formato compatible con la librería Opencv (Mat). 27 Figura 31 Diagrama de flujo de captura de imagen 28 El código realizado por parte de los autores de este trabajo de grado tiene como nombre “CopyDataToOpencv”, que tiene como objetivo copiar los píxeles de la imagen visualizada por la cámara en una ventana de igual tamaño de tipo Mat y poder guardarla en dicho formato. En la Figura 31, se presenta el diagrama de flujo en donde se explica paso a paso lo realizado para implementar dicho código. A partir del diagrama anterior, se presentan los resultados obtenidos haciendo la utilización del código “CopyDataToOpencv”: Figura 32 Resultado de ejecutar "CopyDataToOpencv" (a) (b) 6.7. Calibración de la cámara Partiendo de la imagen en un formato compatible con la librería Opencv, es necesario empezar a realizar un procesamiento de imagen, con el de fin de tener una imagen de captura con una buena calidad, es por esto que se realiza la calibración de la cámara para evitar problemas con los diferentes tipos de distorsión. Esteproceso se lleva a cabo con un tablero de ajedrez, el cual se ubica en diferentes posiciones con el fin de determinar los posibles errores de distorsión que presenta la cámara. Teniendo en cuenta que la finalidad de este trabajo de grado es medir la rugosidad del material y para poder realizarlo se maneja una distancia de trabajo de la cámara de 66 )). Por este motivo, no es posible usar un tablero de ajedrez convencional de tamaño A4, si no por el contrario, se utiliza un tablero de ajedrez que se pueda ver completo con la distancia trabajo de la cámara. A continuación, se presenta el tablero de ajedrez a utilizar para la calibración de la cámara. Figura 33. Patrón de ajedrez para calibración 29 Considerando el tablero de ajedrez anterior, se procede a realizar la calibración de la cámara y para esto se utilizó el “camera calibration toolbox” de Matlab, en el cual se realizan los siguientes pasos para la calibración: se ingresan las fotos del tablero de ajedrez en diferentes posiciones, se extraen los bordes de las imágenes, se resaltan las esquinas de cada uno de los cuadrados involucrados en el tablero y por último se realiza la calibración. El software arroja la información de los siguientes parámetros: la distancia focal, el punto principal, el sesgo, la distorsión y el error por pixeles. Estos parámetros se usan para generar la matriz de la cámara. A continuación, se presentan los resultados del software de calibración, en la Figura 34 se observa el resultado de ingresar las imágenes al software, mientras que en la Figura 35 se observa un ejemplo de la identificación de bordes. Figura 34 Imágenes introducidas al sistema para la calibración de la cámara Figura 35 Selección de esquinas para calibración Resultados del software: Figura 36 Resultados de calibración 30 Por último, se deja evidenciado la matriz de la cámara obtenida, a partir de esta, se realizó la corrección en términos de distorsión y punto central de la cámara. `` = 2204 0 325.89 0 2205 203.19 0 0 1 ( 15 ) 6.8. Mecanizado de la pieza a utilizar A lo largo de este capítulo, se ha dejado la evidencia de cómo está conformado el sistema de captura de este trabajo de grado y como se ha hecho el proceso de calibración de la misma. Ahora es necesario especificar de qué pieza se van a tomar las diferentes fotos para medir la rugosidad y para esto es necesario realizar un mecanizado en la máquina EMCO MILL 450 proporcionada por el Centro Tecnológico de Automatización Industrial (CTAI) de la Pontificia Universidad Javeriana. Para este mecanizado, es importante que la pieza quede con diferentes valores de velocidad de avance con el fin de generar diferentes valores de rugosidad. Además, es necesario utilizar las instrucciones del código G para poder realizar el mecanizado de la pieza y seleccionar la herramienta a utilizar. Adicionalmente, se utilizó un soporte a la cámara, con el fin de acoplarse a la máquina y poder tomar imágenes en un punto fijo, sin vibración y que no varíe la distancia de trabajo. Cabe resaltar que las velocidades de avance en esta pieza son: 2%, 20%, 40%, 60%, 80%, 100% y 120%. En la Figura 37, se muestran los resultados obtenidos frente a la máquina y la pieza mecanizada. Figura 37 Pieza mecanizada a diferentes velocidades 6.9. Parámetros de iluminación Partiendo del montaje utilizado para poder mecanizar la pieza, se visualizó la imagen, teniendo en cuenta el enfoque y las medidas necesarias para una buena captura. Sin embargo, al tomar las fotos de la pieza mecanizada, se observó que no se contaba con una buena iluminación, por esto no se tenía una buena adquisición de la imagen debido a que no se podía ver, ni distinguir, la pieza mecanizada. Para solucionar dicho problema se decidió agregar una cinta led, con el fin de proporcionar una iluminación adecuada para hacer posible la adquisición. Se hicieron varias pruebas para decidir la posición adecuada de la cinta led, a continuación, se presenta el montaje realizado con la cámara y con la posición final y definitiva de la cinta led. Adicionalmente, se presenta los cambios a nivel de la captura de la imagen. 31 Figura 38 Iluminación en el equipo Figura 39 Imagen sin y con iluminación (a) (b) 6.10. Verificación del tiempo de procesamiento Para la verificación del tiempo de procesamiento, se incluyó en el código una instrucción que guarda el tiempo en el momento en que se inicia la captura continua de imágenes y el de finalización, esto con el objetivo de identificar el tiempo de procesamiento. En la Tabla 6, se muestran los resultados del código. Tabla 6 Resultados tiempo de captura Tiempo de Procesamiento 9.040 s Número de imágenes capturadas 2026 +)áXZ,ZV Tiempo de captura 4.46 )V Cabe resaltar, que dichos tiempos se refieren al momento en que se realiza el barrido de la pieza con el fin de adquirir y guardar las imágenes del mecanizado realizado, por ende, el tiempo de captura por imagen es el que se especifica como 4.46 ms. 6.11. Conclusiones del capítulo Para un sistema de adquisición de imágenes, es necesario tener en cuenta el entorno donde se opera, debido a que este factor es de vital importancia para una buena adquisición, como se pudo observar por medio de este trabajo de grado, la iluminación es un papel fundamental a la hora de poder adquirir la imagen. 32 Capítulo 7. Diseño del algoritmo de procesamiento de imágenes 7.1. Introducción En este capítulo, se diseña y se desarrolla el algoritmo de procesamiento de imágenes, haciendo uso del lenguaje C y de las herramientas brindadas por la librería Opencv, para el tratamiento de las mismas y hacer posible el monitoreo de la rugosidad a partir de la visión por computador. Adicionalmente, se hará utilización de la herramienta conocida como rugosímetro con el fin de comprobar y ajustar el algoritmo para obtener un dato confiable como resultado. El algoritmo desarrollado se presentará por medio de un diagrama de flujo de procesos con el fin de que el lector tenga un mayor entendimiento del proceso realizado. En este capítulo se dejará evidenciado el cumplimiento del tercer objetivo, mostrando a su vez los resultados obtenidos. 7.2. Filtros Realizados El algoritmo utilizado para el procesamiento de imágenes se realizó a partir de imágenes almacenadas en el computador capturadas y calibradas anteriormente, con el fin de evitar problemas de distorsión y ruido. A estas, se les aplicó diferentes filtros para encontrar o resaltar las diferencias entre los diferentes mecanizados. A continuación, se muestran las imágenes originales utilizadas para el procesamiento con el recuadro de donde se realizó el recorte de la imagen, este debía estar en el centro de mecanizado para identificar el punto medio del paso de la herramienta y reducir al máximo el cambio de la iluminación al mover la pieza de posición. Figura 40 Recorte de imagen original 33 A partir de estos recortes se realizaron pruebas con la imagen original y realizando filtros como la corrección gamma, filtro canny, ecualización y filtro2D. Para el filtro gama se realizó una corrección con parámetros A=1 y Y=0.5. El filtro canny permitió identificar los bordes de la imagen para esto se utilizó valor de threshold mínimo de 20 y un máximo de 60 siguiendo la recomendación de canny y un tamaño de kernel de 3 [31]. Se utilizó un filtro de ecualización para resaltar los detalles de la imagen. Finalmente se aplicó un filtro2D utilizando como kernel la matriz que me muestra a continuación. Figura 41 Kernel para filtro 2D 0 1 0 1 1 1 0 1 0 Una vez se aplicó el filtro a cada sección, se binariza para obtener una imagen en donde se detecten de las líneas del mecanizado. En la Figura 42 se observan los resultados de los filtros para cada velocidad de avance y su binarización. Esta comparación de imágenes se realiza para