Detección de defectología asociada al recubrimiento por laser cladding mediante visión artificial
Abstract
Departamento de Construcciones Arquitectónicas, Ingeniería del Terreno y Mecánica de los Medios Continuos y Teoría de Estructuras
Full text
Máster en Ingeniería Industrial MÁSTER EN INGENIERÍA INDUSTRIAL ESCUELA DE INGENIERÍAS INDUSTRIALES UNIVERSIDAD DE VALLADOLID TRABAJO FIN DE MÁSTER Detección de defectología asociada al recubrimiento por laser cladding mediante visión artificial Autor: D. Pablo F. Santander de Soto Tutor: D. Esteban Cañibano Álvarez Valladolid, mayo, 2021
Máster en Ingeniería Industrial MÁSTER EN INGENIERÍA INDUSTRIAL ESCUELA DE INGENIERÍAS INDUSTRIALES UNIVERSIDAD DE VALLADOLID TRABAJO FIN DE MÁSTER Detección de defectología asociada al recubrimiento por laser cladding mediante visión artificial Autor: D. Pablo F. Santander de Soto Tutor: D. Esteban Cañibano Álvarez Valladolid, mayo, 2021
RESUMEN Disponer de un sistema de control de calidad para la detección de defectos es imprescindible en cualquier aplicación industrial para corregir a tiempo cualquier desviación detectada. Se ha identificado que los ensayos no destructivos, tales como la inspección visual o por líquidos penetrantes, son una herramienta muy útil para obtener un control de la producción, pero suponen un proceso completamente manual y que requiere de una gran experiencia por parte del operario. En el presente documento se evalúa la posibilidad de desarrollar un sistema de detección de defectos asociados al recubrimiento de piezas por laser cladding mediante visión artificial y Deep Learning. A través de este sistema, se lograría automatizar la detección de defectos con la consiguiente mejora en tiempo y coste. En primer lugar, se realiza un estudio de los temas relevantes del proyecto: el proceso de recubrimiento por laser cladding, las distintas técnicas de ensayos no destructivos y los campos de visión artificial y Deep Learning. Posteriormente, se proponen y desarrollan dos vías distintas para solventar esta problemática: realizar la detección y evaluación de los defectos a través de la previa aplicación del ensayo por líquidos penetrantes, lo que permite obtener el volumen de los defectos o prescindir del ensayo y aplicar directamente el algoritmo en las piezas a inspeccionar, obteniendo así sus dimensiones. Se plantean distintas alternativas para cada una de las propuestas, evaluando los resultados más relevantes. Palabras clave: Laser cladding, líquidos penetrantes, defectos, visión artificial, Deep Learning ABSTRACT Having a quality control system for defect detection is essential in any industrial application to correct any detected deviations in a timely manner. Non-destructive testing, such as visual or dye penetrant inspection, has been identified as a very useful tool for production control, but it is a completely manual process and requires a great deal of experience on the part of the operator. This paper evaluates the possibility of developing a system for detecting defects associated with the coating of parts by laser cladding using computer vision and Deep Learning. Through this system, the detection of defects could be automated with the consequent improvement in time and cost. Firstly, a study is carried out on the relevant topics of the project: the laser cladding process, the different non-destructive testing techniques and the fields of computer vision and Deep Learning. Subsequently, two different ways to solve this problem are proposed and developed: to carry out the detection and evaluation of the defects through the prior application of the dye penetrant test, which allows the volume of the defects to be obtained or to avoid the test and apply the algorithm directly to the parts to be inspected, thus obtaining their dimensions. Different alternatives are presented for each of the proposals, evaluating the most relevant results. Keywords: Laser cladding, dye penetrant, defects, computer vision, Deep Learning
AGRADECIMIENTOS A Esteban Cañibano Álvarez por permitirme colaborar de nuevo con la Fundación Cidaut para la realización de este TFM pese a las circunstancias. A Arturo González Arnáiz por dedicarme su tiempo durante estos meses y ayudarme con la realización de este proyecto. A mis compañeros del máster con los que tan buenos momentos he pasado durante estos dos años, incluso a pesar de la pandemia. A mis amigos, con los que disfruto cada momento y siempre estarán ahí. A mis padres y a mi hermana, por apoyarme siempre en mis decisiones y ayudarme a ser quien soy. Gracias.
ÍNDICE GENERAL CAPÍTULO 1: INTRODUCCIÓN .................................................................................................... 1 1.1 CONTEXTO ................................................................................................................... 1 1.2 MOTIVACIÓN ................................................................................................................ 2 1.3 OBJETIVOS ................................................................................................................... 2 1.4 DESCRIPCIÓN DEL PROYECTO ................................................................................... 3 CAPÍTULO 2: ESTADO DE LA TÉCNICA ...................................................................................... 5 2.1 LASER CLADDING ....................................................................................................... 5 2.1.1 Definición del proceso ........................................................................................ 6 2.1.2 Defectos asociados al proceso .......................................................................... 9 2.2 ENSAYOS NO DESTRUCTIVOS ................................................................................. 10 2.2.1 Definición .......................................................................................................... 11 2.2.2 Etapas ............................................................................................................... 12 2.2.3 Clasificación de los ensayos no destructivos ................................................. 13 2.2.4 Inspección visual .............................................................................................. 13 2.2.5 Inspección por líquidos penetrantes ............................................................... 14 2.3 VISIÓN ARTIFICIAL Y DEEP LEARNING .................................................................... 19 2.3.1 Visión artificial .................................................................................................. 20 2.3.2 Deep Learning .................................................................................................. 27 2.3.3 Aplicación en inspección industrial ................................................................. 35 CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO .................................................... 41 3.1 METOLODOGÍA DE DESARROLLO ........................................................................... 41 3.2 RECURSOS UTILIZADOS .......................................................................................... 41 3.2.1 Software ............................................................................................................ 42 3.2.2 Hardware ........................................................................................................... 42 3.2.3 Entorno de programación ................................................................................ 42 3.3 PROGRAMACIÓN CON OPENCV .............................................................................. 43 3.3.1 Operaciones básicas ........................................................................................ 44 3.3.2 Procesado de imágenes .................................................................................. 46 3.3.3 Extracción y detección de contornos .............................................................. 52 3.4 PRESENTACIÓN DE RESULTADOS .......................................................................... 57 CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO .......................................... 59 4.1 REALIZACIÓN DEL ENSAYO ..................................................................................... 59 4.1.1 Productos necesarios ....................................................................................... 59 4.1.2 Proceso de inspección ..................................................................................... 60 4.2 ALGORITMO DE DETECCIÓN DE CONTORNOS ....................................................... 62 4.2.1 Desarrollo del algoritmo ................................................................................... 62
CAPÍTULO 1: INTRODUCCIÓN Detección de defectología mediante visión artificial 1 CAPÍTULO 1: INTRODUCCIÓN En este capítulo se sentarán las bases sobre las que se sustenta el trabajo desarrollado en el presente proyecto de fin de máster, poniéndolo en situación y contexto. Además, se plantearán una serie de objetivos que ayudarán a determinar lo que se busca una vez terminado el trabajo. Asimismo, se incluye una breve descripción de los capítulos de los que consta el documento. 1.1 CONTEXTO Actualmente la industria del automóvil busca desarrollar vehículos que garanticen la sostenibilidad futura reduciendo el consumo de combustibles y, por tanto, disminuyendo la emisión de gases invernadero a la atmósfera. La optimización de la estructura del vehículo, utilizando cada vez materiales más ligeros y técnicas de fabricación avanzadas, busca lograr estos objetivos. En los últimos años, la técnica de estampación en caliente ha crecido en gran volumen gracias a que permite obtener componentes de chapa metálica con una resistencia mecánica muy superior a los obtenidos por procesos de estampación convencionales [1]. La estampación en caliente es un proceso dual basado en la conformación de chapas de acero y el tratamiento térmico por templado de las mismas. El resultado de la estampación supone la obtención de una chapa cuya tensión última a tracción puede llegar a doblar a la de los aceros de alta resistencia habituales. Esto permite la reducción de los espesores, logrando reducir el peso de las piezas. Para realizar el proceso de estampación se requieren unos útiles llamados troqueles de estampación, que suelen venir asociados a una gran complejidad como consecuencia de los requisitos impuestos por el diseño y fabricación. Estos troqueles deben hacer frente a unos altos requerimientos térmicos, dimensionales y mecánicos durante el proceso de conformado, por lo que la selección del material del troquel es vital. Todo útil se ve desgastado debido al uso, y está altamente relacionado con el proceso de fabricación. Mientras que algunas herramientas son fácilmente sustituibles o reparables, los troqueles son unos útiles de muy alto coste y con un complejo diseño, por lo que prolongar su vida útil lo máximo posible se ha identificado como un factor crítico para garantizar la rentabilidad derivada de su fabricación. Existen multitud de técnicas que permiten aumentar la dureza superficial de los troqueles, sin modificar las características del material. La tecnología de modificación superficial supone una alternativa muy interesante que permite mejorar las propiedades superficiales de las piezas sin alterar sus funciones estructurales. Dentro de esta tecnología destaca el recubrimiento por laser cladding, que permite obtener revestimientos metálicos que logran hacer frente a los requerimientos del troquel. Estos procesos no están libres de la aparición de defectos, por lo que es necesario mantener un control de calidad que permita evaluar e identificar dichos defectos. Una de las técnicas más extendidas es el uso de ensayos no destructivos, que permiten detectar y evaluar los defectos sin producir daños que afecten a la funcionalidad de la pieza. Estos ensayos permiten detectar discontinuidades superficiales o internas, según sea el método escogido para su aplicación. Durante la realización del proceso de recubrimiento, los defectos más críticos se generan en la superficie, por lo que es vital disponer del método de inspección adecuado para su evaluación. Un método muy destacado para la
CAPÍTULO 1: INTRODUCCIÓN 2 Detección de defectología mediante visión artificial detección de defectos superficiales es el ensayo por líquidos penetrantes, aplicable a multitud de tipos de superficie, que permite obtener resultados muy ilustrativos gracias a las indicaciones proporcionadas. Aunque se utilicen técnicas específicas para realizar la evaluación de la calidad, la inspección visual se mantiene presente en cualquiera de ellas, siendo el método más sencillo de realizar. Para interpretar correctamente las indicaciones proporcionadas, es necesario disponer de personal altamente cualificado debido al gran conocimiento requerido acerca de los posibles defectos encontrados. Mediante el uso de tecnologías más avanzadas como la visión artificial y el Deep Learning, se puede facilitar el trabajo realizado en estas inspecciones manuales a través de la utilización de sistemas de cámaras y algoritmos de detección de defectos, que permiten desarrollar la automatización de los sistemas de inspección. 1.2 MOTIVACIÓN La Fundación Cidaut dentro de una de sus líneas de investigación, apuesta por el desarrollo de soluciones alternativas e innovadoras, tanto de nuevos materiales, como del diseño de productos y procesos. Esto abre numerosas puertas que buscan adquirir el conocimiento tanto de distintos procesos de fabricación, como de técnicas para evaluar la calidad de los nuevos desarrollos. Enmarcándose en este pensamiento, este TFM surge del problema que plantea la detección de defectos en piezas con recubrimiento por laser cladding. Las técnicas actuales pasan por aplicar algún tipo de ensayo no destructivo, como la realización de una inspección mediante líquidos penetrantes además de una inspección visual a cada una de las piezas, lo que en la mayoría de los casos requiere una gran experiencia por parte del operario. A través del presente proyecto, se propone la posibilidad de desarrollar un algoritmo de visión artificial que permita de detectar estos defectos, con el objetivo de facilitar la inspección de las piezas. 1.3 OBJETIVOS El principal objetivo de este proyecto es evaluar la posibilidad de aplicar las tecnologías de visión artificial y Deep Learning en un problema tan específico como es la detección de defectos, a través del desarrollo de un algoritmo diseñado para tal fin. Además, el carácter investigativo del proyecto permite generar una base de conocimiento en este campo, y dotar de una poderosa herramienta que permitirá abordar otra serie de problemas directamente relacionados. Para alcanzar este objetivo principal, se han planteado una serie de hitos secundarios, que permitirán avanzar en el desarrollo del proyecto: • Determinar la relación entre los defectos y el proceso de recubrimiento por laser cladding. • Estudiar la metodología de inspección mediante ensayos no destructivos, en especial el ensayo por líquidos penetrantes. • Entender los conceptos clave de los campos de la visión artificial y el Deep Learning, que sientan las bases del desarrollo de este proyecto.
CAPÍTULO 1: INTRODUCCIÓN Detección de defectología mediante visión artificial 3 • Desarrollar y valorar las posibles alternativas de diseño de los algoritmos de detección de defectos. • Evaluar el rendimiento de los algoritmos propuestos, analizando sus posibles limitaciones. 1.4 DESCRIPCIÓN DEL PROYECTO Globalmente, el presente documento se ha estructurado en siete capítulos tal y como se muestra a continuación. En este primer apartado, el CAPÍTULO 1: INTRODUCCIÓN, se ha contextualizado el marco en el que se encuadra el proyecto y se han planteado los principales objetivos a cumplimentar en los capítulos posteriores. En el CAPÍTULO 2: ESTADO DE LA TÉCNICA se realiza un análisis de los campos que intervienen en la detección de defectos: • En primer lugar, se realiza una breve introducción a los tratamientos superficiales, prestando mayor atención a la tecnología de recubrimiento por laser cladding, puesto que es la utilizada en las piezas de este proyecto. • Posteriormente, se describe la metodología de inspección mediante ensayos no destructivos, especialmente la inspección visual y el ensayo por líquidos penetrantes. • Por último, se desarrollan los temas de visión artificial y Deep Learning, describiendo ambos campos y distintas aplicaciones de detección de defectos abordadas mediante este tipo de tecnología. En el CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO se introduce la parte más técnica del proyecto, describiendo los recursos empleados y desarrollando brevemente la programación con Python y OpenCV. El CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO recoge la primera alternativa seguida en el desarrollo del proyecto, que hace referencia a la utilización del ensayo de líquidos penetrantes de forma previa a la aplicación del algoritmo de visión artificial. En el CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO se propone y evalúa la posibilidad de aplicar los algoritmos de visión artificial prescindiendo de la realización del ensayo por líquidos penetrantes. El CAPÍTULO 6: APLICACIÓN DE DEEP LEARNING EN LA DETECCIÓN sirve como base de la aplicación del campo del Deep Learning en la problemática de la detección de defectos, evaluando el diseño de un clasificador como alternativa al algoritmo presentado en el capítulo 4. Por último, en el CAPÍTULO 7: CONCLUSIONES Y LÍNEAS FUTURAS se desarrollan las conclusiones a las que se ha llegado durante la realización del proyecto y se plantean posibles líneas de mejora.
CAPÍTULO 1: INTRODUCCIÓN 4 Detección de defectología mediante visión artificial
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 5 CAPÍTULO 2: ESTADO DE LA TÉCNICA Este capítulo busca profundizar sobre los aspectos más técnicos de las áreas y tecnologías más determinantes para el desarrollo de este proyecto. Además de realizar la descripción del recubrimiento por laser cladding, se procede a la introducción de los ensayos no destructivos, haciendo particular hincapié sobre el método de inspección visual y al ensayo por líquidos penetrantes. En los últimos apartados se introduce al lector los campos de la visión artificial y el Deep Learning, estrechamente relacionados con el proyecto, junto con aplicaciones de este tipo de tecnología en la detección de defectos. 2.1 LASER CLADDING El término ingeniería de superficies engloba una gran variedad de tecnologías, en ocasiones difíciles de clasificar, pero que se pueden agrupar en dos tecnologías diferentes: • Tratamientos superficiales: incluyen técnicas que modifican las propiedades de la superficie de la pieza. • Recubrimientos superficiales: hacen referencia a aquellas tecnologías en las que un material se deposita sobre la superficie para mejorar sus propiedades. En la Figura 1 se recoge un esquema de la gran variedad de tecnologías englobadas en el contexto de la ingeniería de superficies. Se ha mantenido la imagen original debido a que muchas técnicas son más conocidas por sus términos en inglés. Figura 1. Clasificación de las tecnologías de ingeniería de superficies (Fuente: [2])
CAPÍTULO 2: ESTADO DE LA TÉCNICA 6 Detección de defectología mediante visión artificial La aplicación de estas tecnologías permite prolongar la vida útil de las piezas, mejorando las propiedades superficiales de las mismas, pero sin modificar las características del material base. Esto permite obtener piezas con requerimientos térmicos y de resistencia muy específicos. Figura 2. Rangos de espesor y durezas más habituales según el método superficial aplicado Gracias a las mejoras en las piezas proporcionadas por estas técnicas, multitud de sectores industriales se ven beneficiados mediante su aplicación: automoción, mecánico, aeronáutico, construcción, químico, electrónico, alimentación, etc. [3]. En cuanto al caso específico de aplicación en troqueles de estampación destacan las siguientes técnicas: tratamientos térmicos (termal treatments), nitruración y deposición física de vapor (nitriding and physical vapour deposition), proyección térmica (thermal spraying) y revestimiento por láser (laser cladding). En la Figura 2 se realiza una comparativa entre distintas técnicas utilizadas a nivel industrial para aumentar la dureza superficial de las piezas. Se puede observar que el laser cladding se presenta como la mejor alternativa en cuanto a la relación espesor-dureza alcanzada, permitiendo obtener valores muy altos de dureza en gran variedad de espesores dentro del rango establecido. 2.1.1 Definición del proceso El revestimiento por láser, más conocido como laser cladding, es una técnica de aporte de material que consiste en la fusión directa, mediante un haz láser, de un polvo de origen metálico o cerámico, inyectado sobre la superficie de la pieza a tratar. A través de esta técnica, se consiguen recubrimientos de propiedades prácticamente idénticas o incluso mejoradas respecto al material base de la superficie. Un esquema del proceso seguido se puede observar en la Figura 3.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 7 Figura 3. Esquema del proceso de laser cladding Sus aplicaciones en la industria son múltiples, teniendo especial importancia en el sector de la automoción y aeronáutico [4] y [5]: • Protección: es posible reforzar los componentes logrando protección frente a la corrosión y al desgaste, incluso logrando que el recubrimiento actúe como una barrera térmica. • Restauración y reparación de piezas: se pueden recuperar partes desgastadas de manera más precisa que con otros procesos (TIG, MIG, etc.). • Fabricación aditiva de piezas: gracias a la deposición del material es posible fabricar componentes funcionales y estructuras 3D mediante esta técnica. En comparación con otros tipos de procesos de la misma familia, el laser cladding permite un mayor control, sin embargo, el equipo requerido para su aplicación encarece la tecnología. Esta técnica permite obtener una unión metalúrgica entre el material base y el material de aporte, creando una superficie homogénea. En la Figura 4 se puede observar un proceso real de aplicación de esta técnica. Figura 4. Proceso de laser cladding (Fuente: [2]) Gracias a los grandes avances en los sistemas de automatización, la aplicación del laser cladding ha cobrado gran importancia, colocándose como una perfecta alternativa a métodos tradicionales de endurecimiento superficial, como puede ser la nitruración o la electrodeposición [6]. Esto ha provocado que este proceso se identifique como una opción
CAPÍTULO 2: ESTADO DE LA TÉCNICA 8 Detección de defectología mediante visión artificial que se debe tener en cuenta a la hora de generar recubrimientos en la industria matricera, como puede ser en la fabricación de troqueles de estampación. Ejemplos de aplicación del proceso en restauración y reparación de piezas se pueden encontrar en multitud de estudios. Por su parte, Łukasz & Marta [7] analizan el acabado de las superficies después de realizar un proceso de restauración mediante esta técnica, evaluando la rugosidad superficial obtenida después de realizar varios procesos de regeneración de la superficie, combinando la técnica de laser cladding con procesos de mecanizado. Durante el proceso de aporte de material se deben controlar una serie de factores y parámetros que afectan al resultado final del recubrimiento, cobrando gran importancia la elección de las trayectorias adecuadas con el objetivo de reducir el posible efecto térmico en las características de la pieza. También es importante definir de forma correcta la distancia entre el cabezal y la superficie a tratar, controlando así la energía aportada por el haz láser. La elección del material de aporte depende de las propiedades finales que se busca obtener con el recubrimiento, tales como la resistencia al desgaste o a la corrosión. El polvo metálico utilizado debe de ser de alta calidad formado por partículas sólidas esféricas que permitan obtener un flujo constante en la alimentación. En última instancia, los parámetros del proceso (distancia del cabezal, velocidad de avance, potencia del láser, etc.) determinarán la tasa de aporte de material. Existen multitud de estudios que señalan la importancia de una correcta selección de los parámetros para minimizar la aparición de defectos. Por ejemplo, Rombouts et al. [8] analizan el acabado superficial de las piezas obtenidas a través de LMD (laser metal deposition). La Figura 5 recoge un resumen de los resultados obtenidos por los autores, analizando la rugosidad superficial tras realizar la mejora de la superficie mediante laser cladding con distintos parámetros del proceso. Durante el estudio también se evalúa el efecto del ángulo durante el aporte de material. Figura 5. Efecto de las velocidades de avance y potencia del láser en el ensayo (Fuente: [8]) Candel et al. [9] caracterizan distintos cordones de 30 mm de longitud variando las condiciones de potencia, velocidad de avance y caudal de polvo. El estudio realizado consiste principalmente en la realización de un análisis microestructural de los cordones mediante el corte transversal de las muestras y su posterior caracterización. En la Figura 6 se observa cómo afecta la reducción de la potencia del haz y la velocidad de avance en la eliminación de la aparición de grietas y poros para el caso estudiado.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 9 Figura 6. Efecto producido por la reducción de la potencia P y la velocidad de avance V. P = 700 W, V = 500 mm/min (izquierda), P = 600 W, V = 400 mm/min (derecha) (Fuente: [9]) 2.1.2 Defectos asociados al proceso Debido a las características intrínsecas del proceso y a la intervención de múltiples parámetros que deben ser controlados durante su aplicación, las superficies generadas suelen presentar determinados problemas que deben ser tenidos en consideración. Por ejemplo, las elevadas temperaturas que alcanza el sustrato pueden provocar la aparición de porosidad en la superficie. Mientras que los parámetros relacionados con la configuración del haz láser pueden afectar además a la aparición de grietas [10]. En el estudio realizado por Liu et al. [5], en el que demuestran la posibilidad de utilizar el proceso de laser cladding para reparar componentes aeronáuticos, mejorando su resistencia frente al desgaste y a la corrosión, se observó algunos de estos defectos, como la aparición de grietas en el revestimiento generado (Figura 7). Figura 7. Ejemplos de grietas en el revestimiento (Fuente: [5]) Haldar & Saha [11] realizan un análisis exhaustivo respecto a los problemas derivados de esta tecnología, proponiendo algunas soluciones para tratar de eliminarlos durante el proceso. Los defectos más habituales suelen estar muy vinculados a las distintas capas de material generadas por el recubrimiento. Un esquema de este hecho se ilustra en la Figura 8. Aunque podrían estudiarse de forma más exhaustiva, principalmente los defectos asociados al recubrimiento se pueden dividir en tres categorías: • Problemas de unión: una inadecuada fusión del sustrato debido a un aporte incorrecto de energía puede provocar una incorrecta adherencia con el material base.
CAPÍTULO 2: ESTADO DE LA TÉCNICA 16 Detección de defectología mediante visión artificial 2.2.5.1 Preparación y limpieza de la superficie Se debe eliminar cualquier posible contaminante de la superficie de la pieza antes de comenzar con en el ensayo. Por ejemplo, la presencia de restos de aceites, pinturas o barnices pueden impedir que el penetrante no alcance las discontinuidades. Por tanto, la elección de la técnica de limpieza dependerá del contaminante a eliminar: • Limpieza con detergentes: tienen que ser no corrosivos para no dañar la superficie. Generalmente se emplea para la limpieza de pequeñas piezas sumergidas en tanques. • Limpieza con disolvente: puede aplicarse directamente con un trapo o sumergiendo la pieza en tanques. • Limpieza alcalina: similar a los detergentes, pero seleccionados para eliminar varios tipos de suciedad, siendo capaces incluso de eliminar óxidos. Es muy importante seguir las instrucciones del fabricante. • Limpieza con vapor desengrasante: eficaz para la eliminación de aceites, grasas y otros contaminantes orgánicos. • Limpieza por ultrasonidos: se aplica junto a la limpieza alcalina o con disolvente en baño para reducir el tiempo de limpieza. • Limpieza con decapantes: eliminan la pintura de la superficie. • Limpieza por medios mecánicos: empleo de cepillos de alambre, chorro de arena, granallado, rascado u otros métodos. Se utilizan en condiciones muy específicas puesto que pueden llegar a manipular la superficie ocultando determinadas discontinuidades. • Limpieza por ataque ácido: elimina metales que ocultan las discontinuidades e impiden el paso del líquido penetrante, volviéndolas a abrir a la superficie. 2.2.5.2 Secado de la superficie Una vez limpiada la superficie es importante que se eliminen todos los restos de detergentes, disolventes o decapantes utilizados. Además, se debe secar completamente la pieza para evitar que la presencia de cualquier tipo de líquido impida la correcta aplicación del penetrante. Existen multitud de opciones para secar las piezas, desde la utilización de hornos de secado o dejándolas secar a temperatura ambiente en condiciones controladas. 2.2.5.3 Aplicación del líquido penetrante La aplicación del líquido penetrante se puede realizar de varias formas, según sea el tamaño y el número de piezas que se deben inspeccionar, desde pulverización con aerosoles o pistolas hasta inmersión de las piezas en tanques. Generalmente, la elección del tipo de penetrante se realizará en función de la forma de visualización de discontinuidades deseada. Como se mencionó en la Tabla 4, existen tres tipos de líquidos penetrantes: 1) Penetrantes coloreados: contienen determinados pigmentos que los hacen visibles a luz natural o luz artificial blanca.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 17 2) Penetrantes fluorescentes: se necesita utilizar luz negra o ultravioleta para su visualización. 3) Penetrantes fluorescentes-coloreados o mixtos: mezclan los dos. Tan importante es la elección del líquido a utilizar, como el tiempo que se debe dejar para que actúe y penetre en las discontinuidades, conocido como tiempo de penetración. Este tiempo se establece según el material de la pieza a ensayar, el tipo de discontinuidad y otras recomendaciones del fabricante, estando comprendido entre cinco minutos y una hora. Un buen penetrante debe poseer una serie de características generales para que el ensayo se pueda realizar en unas condiciones aceptables. Estas características se pueden lograr a través de la mezcla de diversas sustancias puesto que no existe una sustancia única que las reúna todas: • Capaz de introducirse en grietas muy finas. • Capaz de permanecer en el interior de grietas muy gruesas. • No volátil. • Soluble. • Capaz de permanecer en estado fluido para salir de las grietas con facilidad al aplicar el revelador. • No ser corrosivo ni que ataque al material. • No ser tóxico ni inflamable. • Resistente a la pérdida de color o a la fluorescencia. • Ser económicamente rentable. El ensayo se basa principalmente en una serie de propiedades físicas de los líquidos, que se recogen principalmente en dos conceptos: 1) Mojabilidad o poder humectante: mide la capacidad de un líquido de mojar una determinada superficie. Se caracteriza a través del ángulo de contacto o de mojado α. Este ángulo se determina a través de la diferencia entre las fuerzas de cohesión (que mantienen unidas las moléculas del líquido) y las fuerzas de adherencia (que hacen referencia a la interfase de dos sustancias diferentes, líquido-sólido o líquidoaire). Figura 11. Niveles de mojabilidad En el caso de los líquidos penetrantes interesa que sean capaces de mojar la superficie del material y de fluir sobre ella formando una película continua y uniforme. 2) Capilaridad o poder de penetración: mide el comportamiento de un determinado líquido al penetrar zonas estrechas. Se caracteriza mediante un tubo muy fino (tubo capilar) que se introduce en el líquido, pudiéndose dar tres situaciones distintas en función del ángulo α.
CAPÍTULO 2: ESTADO DE LA TÉCNICA 18 Detección de defectología mediante visión artificial Figura 12. Niveles de capilaridad Interesa que el líquido posea buena capilaridad otorgándole un alto poder de penetración, que le permita introducirse en las discontinuidades que no son visibles a simple vista. La viscosidad por su parte no afecta directamente en la capacidad de penetración, pero afecta a la velocidad con la que el líquido penetra en las discontinuidades [17]. 2.2.5.4 Eliminación del exceso de penetrante Aplicado el penetrante y transcurrido el tiempo requerido, se debe retirar todo el exceso para evitar falsas indicaciones durante la inspección. Es importante realizar la eliminación con cuidado para no extraer el líquido introducido en las discontinuidades. Existen varios métodos según sea el tipo de líquido penetrante utilizado. En la Tabla 4 se recogen los cinco métodos existentes, siendo los principales: 1) Lavables con agua o auto-emulsionantes 2) Post-emulsionantes: se requiere aplicar previamente un emulsionante, siendo la mezcla del líquido y el emulsionante la que se puede eliminar con agua. 3) Eliminables con disolvente: suele existir uno específico para cada líquido penetrante particular, según lo indique el fabricante. 2.2.5.5 Aplicación del revelador Estando la superficie preparada, es necesario aplicar el revelador para hacer el defecto visible al ojo humano. El revelador se encarga de extraer el líquido de la discontinuidad, aumentando la visibilidad de la misma gracias al color opuesto al del penetrante. Para el caso de los reveladores existen varias formas disponibles, mostradas en la Tabla 4, destacando: 1) Secos: polvos muy finos. El yeso o el talco fueron los primeros relevadores, y aún hoy se siguen utilizando. 2) Acuosos: partículas solubles o no solubles en agua formando una suspensión acuosa. 3) No acuosos: polvos en suspensión en un disolvente orgánico volátil. Durante la aplicación es importante obtener una capa muy fina y uniforme sobre toda la superficie. Se puede realizar espolvoreando el revelador, por inmersión o por pulverización, según sea el revelador utilizado.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 19 Al igual que en otras etapas, la selección del método de aplicación del revelador dependerá del número y tamaño de las piezas, del acabo superficial, etc. 2.2.5.6 Observación de defectos La última etapa del ensayo de líquidos penetrantes consiste en la inspección para la observación de las indicaciones obtenidas. En esta etapa entra el juego el tipo de iluminación necesaria según sea el tipo de líquido penetrante usado durante el ensayo. La experiencia y conocimiento del operador es vital en esta etapa, la interpretación de las indicaciones mostradas se realiza bajo su criterio y debe establecer la causa que originó el defecto y, si se da el caso, diferenciar aquellas indicaciones que puedan resultar falsas. En relación con este apartado existen tres tipos de indicaciones: • Falsas: no causadas por una discontinuidad. • No relevantes: causadas por una discontinuidad de diseño, pero no por un defecto. • Relevantes: causadas por un defecto. En caso de encontrarse con indicaciones relevantes, se debe decidir si se aceptan o se rechazan, juzgando en función de la gravedad si deben ser reparadas o si se debe desechar la pieza por completo. Como se ha mencionado anteriormente, en esta etapa sería posible introducir la utilización de un algoritmo basado en visión artificial, que permitiría identificar automáticamente las indicaciones presentadas por el ensayo. Además, utilizando el algoritmo adecuado, sería posible medir dichas indicaciones y obtener las dimensiones de los defectos asociados automáticamente. 2.3 VISIÓN ARTIFICIAL Y DEEP LEARNING La inspección visual supone la metodología más utilizada para la detección de defectos debido a que todos los demás métodos requieren de ella. En ocasiones, supone un trabajo completamente manual y que requiere de una gran experiencia por parte del operador, tanto en el conocimiento de la pieza a inspeccionar como de la posible defectología asociada. Mediante técnicas más avanzadas como la visión artificial, es posible facilitar las inspecciones, siendo posible automatizar todo el proceso. La utilización de los complejos algoritmos utilizados en este campo permite la fácil automatización de procesos de inspección de calidad basados en la visión artificial. Además, en la actualidad, el amplio desarrollo de las redes neuronales convolucionales permite diseñar algoritmos cada vez más potentes que son capaces de clasificar los distintos tipos de defectos detectados. Como se verá al final de este mismo apartado, la aplicación de estas tecnologías es muy amplia, desde el análisis de la calidad de las soldaduras [18] a través de procesos de visión artificial, hasta la clasificación de tornillos defectuosos [19] mediante el uso de redes neuronales. Adicionalmente, sería posible combinar esta tecnología con métodos de inspección más tradicionales como el ensayo por líquidos penetrantes, lo cual permitiría facilitar la identificación de los defectos y su posterior evaluación para la toma de decisiones, siendo en esta problemática uno de los puntos donde se enfoca el presente proyecto.
CAPÍTULO 2: ESTADO DE LA TÉCNICA 20 Detección de defectología mediante visión artificial 2.3.1 Visión artificial La finalidad de la visión artificial es extraer una determinada información de un entorno físico (y tridimensional) a partir de imágenes bidimensionales de dicho entorno. Esta información se obtiene a través del análisis de distintas propiedades, desde la forma y el tamaño de los objetos, hasta el color y el brillo de la escena. La literatura existente respecto a este campo es muy amplia y puesto que realizar un desarrollo exhaustivo no es el objetivo del presente documento, se invita al lector a acudir a la bibliografía especializada en caso de querer profundizar en la materia. Como bibliografía básica en castellano es posible destacar “Visión por computador” [20] en el que se introduce al lector los conceptos clave para sentar unas bases en el campo de la visión artificial. En “Técnicas y algoritmos básicos de visión artificial” [21] se desarrolla una amplia selección de técnicas y algoritmos de gran efectividad, surgida de la experiencia de los autores. Actualmente la visión artificial (o visión por computador) supone una tecnología en continuo desarrollo, teniendo aplicaciones en multitud de campos. Algunos ejemplos por destacar son [22] y [23]: • Inspección industrial y control de calidad: desde verificación del etiquetado de productos hasta inspección de soldaduras y clasificación de piezas. • Vigilancia, identificación biométrica y reconocimiento facial. • Control de tráfico a través del reconocimiento de matrículas. • Guiado de robots industriales y vehículos autónomos (AGVs). • Multitud de aplicaciones en la industria militar, medicina, alimentación… Algunas aplicaciones concretas de aplicación de la visión artificial en inspección industrial focalizada en la problemática de la detección de defectos, área en el que se enfoca el presente proyecto, se discuten al final del apartado. En todo proceso de visión artificial es posible identificar cuatro etapas (Figura 13): 1. Adquisición o captura: cuyo objetivo es la toma de imágenes digitales a través de un sensor o cámara. 2. Pre-procesado: consiste en la aplicación de determinadas operaciones a la imagen con el objetivo de facilitar las etapas siguientes. 3. Segmentación: se encarga de la división de los elementos principales de una imagen. 4. Clasificación: el objetivo de la última etapa es distinguir los elementos anteriores a través del análisis de características diferenciadoras. Figura 13. Etapas comunes en un proceso de visión artificial (Fuente: [20])
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 21 2.3.1.1 Adquisición de la imagen La primera etapa de un proceso de visión artificial es la adquisición de la imagen a analizar. En esta etapa, el objetivo primordial es la obtención de dicha imagen de la forma más adecuada posible, facilitando así posteriores etapas. La elección de la cámara, el tipo de sensor o la iluminación de la escena, son elementos clave para una óptima adquisición. Dentro de esta etapa se distinguen dos fases distintas. En primer lugar, se captura la escena mediante una cámara, elegida en función de las necesidades de la aplicación. En este punto entra en juego la correcta iluminación y enfoque de la escena, lo que facilitará los procesos siguientes. En segundo lugar, se digitaliza, transformando la información continua en una imagen digital discreta. El resultado de esta etapa es una imagen bidimensional ID formada por una matriz de NxM píxeles. Esto es lo que se conoce como resolución espacial y cuanto menor sea, menor será el tamaño en píxeles de la imagen, pero mayor será la pérdida de información debido al ruido en la misma. Esta matriz se puede representar de la manera siguiente: 𝐼𝐷(𝑥,𝑦)=( 𝐼𝐷(0,0)⋯ 𝐼𝐷(0,𝑀−1) ⋮ ⋱ ⋮ 𝐼𝐷(𝑁−1,0)⋯ 𝐼𝐷(𝑁−1,𝑀−1)) (1) Cada píxel recoge la información sobre una determinada región, esta información se corresponde con el nivel de intensidad de la imagen en dicho punto. Para una imagen binaria (blanco y negro) solamente existen dos niveles de intensidad, para una imagen en niveles de gris se tienen hasta 256 niveles, desde el color negro (0) hasta el color blanco (255), por último, para una imagen a color se tienen 256 niveles por cada uno de los tres colores primarios, normalmente RGB (Red Green Blue). En la Figura 14 se puede observar el efecto producido por la elección de distintos niveles de intensidad y distinto número de píxeles en la imagen de Lena, una imagen muy común en el campo del procesado de imágenes Figura 14. Efecto de la elección del n.º de niveles de intensidad y del n.º de píxeles (Fuente: [20])
CAPÍTULO 2: ESTADO DE LA TÉCNICA 22 Detección de defectología mediante visión artificial 2.3.1.2 Pre-procesado Todas las imágenes muestran defectos una vez digitalizadas. Estos defectos pueden producirse por múltiples razones y suelen manifestarse en la imagen en forma de ruido, falta o exceso de contraste o brillo, etc. A través de la etapa de pre-procesado se pretende reparar dichos desperfectos con el objetivo de mejorar la imagen y facilitar el resto de las etapas. El mecanismo por el cual se realizan los cambios en la imagen se conoce como filtro. De forma simplificada, es posible entender el funcionamiento de un filtro como la transformación de una señal de entrada (E) en una señal de salida (S), mediante la aplicación de una función de transferencia (H), cuyo esquema se puede ver representado Figura 15. Figura 15. Esquema básico de un filtro (Fuente: [20]) Estos filtros se corresponden a diferentes algoritmos que se encargan de modificar la imagen a través de la realización de distintas operaciones de mejora. Existe una gran variedad de operaciones, desde las más básicas hasta las más complejas. A continuación, se describen brevemente algunas de estas operaciones: 1. Operaciones básicas: se realizan de manera discreta sobre cada píxel. Se suelen dividir en operaciones aritmeticológicas (suma, resta, multiplicación, división, conjunción, disyunción, negación, etc.) y operaciones geométricas (traslación, escalado, rotación, espejo, etc.). En la Figura 16 se representan algunas operaciones aritmeticológicas. Figura 16. Ejemplos de operaciones aritmeticológicas (Fuente: [20]) 2. Operaciones sobre el histograma: el histograma de una imagen es una representación estadística en forma de diagrama de barras de los niveles de intensidad de dicha imagen. Es posible aclarar los niveles claros y oscurecer los oscuros (o, al contrario) a través de la modificación del histograma de la imagen. Un ejemplo se encuentra en la Figura 17, donde se puede observar una reducción del contraste en la imagen superior, y un aumento del contraste en la imagen inferior.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 23 Figura 17. Ejemplos de modificación del histograma (Fuente: [20]) 3. Operaciones en el dominio de la frecuencia: estas técnicas se basan en la aplicación de la Transformada Discreta de Fourier (DFT) y de la Transformada Discreta Inversa de Fourier (IDFT). Conociendo la frecuencia de aparición de ciertos elementos en una imagen es posible apreciar y modificar elementos como el ruido, bordes, texturas, etc. 4. Filtrado espacial: es posible trabajar directamente en el dominio del espacio a través de la operación de convolución. La convolución consiste en recorrer una imagen píxel a píxel realizando una determinada operación aritmética con un número de píxeles vecinos. Comúnmente a estos píxeles se les denomina “ventana” o “kernel”, la cual podrá tener diferente tamaño (3x3, 5x5, etc.). La representación de un filtro se realiza a través de una matriz de convolución también de tamaño 3x3, 5x5, etc. Es posible formar una gran variedad de filtros mediante la selección de distintos valores para las celdas de la matriz. Algunos ejemplos son el filtro de la mediana o el filtro de Gauss, que suavizan la imagen, o los filtros de Sobel o Prewitt, que permiten acentuar los bordes. En la Figura 18 se ilustran dos ejemplos acompañados de las matrices de convolución correspondientes. Figura 18. Ejemplos de suavizado (a) y acentuado de bordes (b) (Fuente: [20])
CAPÍTULO 2: ESTADO DE LA TÉCNICA 24 Detección de defectología mediante visión artificial 5. Operaciones morfológicas: este tipo de transformaciones cambian la forma y estructura de los elementos de una imagen, permitiendo separar elementos unos de otros, obtener contornos, etc. Para ello es necesario conocer previamente el elemento estructurante o máscara con el cual se realizará la operación. Las más conocidas son la dilatación, la erosión, la apertura y el cierre. El efecto de algunas de estas operaciones se ilustra en la Figura 19. Figura 19. Efecto en una imagen (a) de las operaciones de dilatación (b) y erosión (c) (Fuente: [20]) 2.3.1.3 Segmentación Una vez realizadas aquellas operaciones necesarias para mejorar la imagen, se procede a realizar la segmentación. Este proceso consiste en la división de la imagen en distintas regiones respecto a una o más características comunes (brillo, color, etc.) facilitando así el posterior análisis y reconocimiento de los elementos. Existe una gran variedad de técnicas en este aspecto, pudiéndose agrupar en tres grandes grupos: 1. Técnicas basadas en umbralizado: la umbralización consiste en transformar una imagen cualquiera en una imagen binaria (en blanco y negro), separando así el fondo de los elementos de interés. Las técnicas más comunes son la umbralización fija, en la que se elige un valor fijo de nivel de intensidad para marcar el umbral de separación, y la umbralización adaptativa, en la que el valor del umbral varía en distintas regiones de la imagen. La Figura 20 muestra la diferencia de estos dos tipos de umbralizado. Figura 20. Aplicación en una imagen (a) de una umbralización fija (b) y una adaptativa (c)
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 25 2. Técnicas basadas en la detección de bordes: este grupo engloba un amplio número de técnicas que utilizan la información proporcionada por las fronteras de los elementos de una imagen. Estas fronteras marcan puntos donde se producen discontinuidades como cambio en el color, en los niveles de gris, en la textura, etc. Para acentuar las fronteras existen multitud de detectores de bordes basados en filtros como puede ser el de Sobel, Prewitt, Canny… En la Figura 21 se muestra el efecto de dos de estos detectores. Figura 21. Distintos algoritmos de detección de bordes (Fuente: [20]) 3. Técnicas basadas en el crecimiento de regiones: estas técnicas se basan en determinar zonas de la imagen a través de la similitud de sus píxeles, uniendo o dividendo la imagen en regiones comunes. 4. Otras técnicas: dada la gran cantidad de técnicas existentes, no es posible englobar todas en los distintos grupos. En imágenes a color es posible aprovechar la información aportada por el color para lograr segmentar elementos. También existen técnicas basadas en la extracción y el análisis de texturas. La representación de los elementos segmentados se puede describir de distintas formas utilizando lo que se conoce como descriptores que permiten obtener representaciones únicas e independientes de la posición, orientación o tamaño del elemento. Por ejemplo, para el caso de representación de fronteras (o bordes) se puede realizar mediante métodos como el código cadena, la signatura, o una aproximación poligonal. Algunos ejemplos de parámetros utilizados como descriptores son: la longitud del contorno, el diámetro de la frontera o la curvatura. En cuanto a la representación de regiones, los métodos más comunes son el código de longitud variable, los quadtrees y las proyecciones. Existen multitud de descriptores utilizados: área, centro de gravedad, perímetros, momentos, ejes, etc. 2.3.1.4 Clasificación La última etapa del proceso se corresponde con la clasificación de los elementos anteriormente segmentados. La distinción entre elementos se realiza dentro de un conjunto conocido previamente llamado universo de trabajo, que se encontrará divido en un repertorio de clases correspondientes con cada tipo de elemento. Cada elemento que se quiera clasificar vendrá definido por unas características discriminantes o rasgos, cuyos valores concretos formarán un patrón que servirá para representar al elemento. Posteriormente este patrón se comparará con el conocimiento que se tiene de las clases existentes, determinando un grado de semejanza entre ambas
CAPÍTULO 2: ESTADO DE LA TÉCNICA 32 Detección de defectología mediante visión artificial • Función ELU (Exponential Linear Unit): alternativa a la ReLU que suele obtener mejores resultados. 𝜎(𝑧)={ 𝛼(𝑒𝑧− 1) 𝑠𝑖 𝑧<0 𝑧 𝑠𝑖 𝑧 ≥0 (9) • Función Softmax: utilizada en clasificación multiclase. Suele utilizarse en las últimas capas de la red. 𝜎(𝑧)𝑖=𝑒𝑧𝑖 ∑𝑒𝑧𝑗 𝐾 𝑗=1 (10) Además de estas funciones, existen muchas otras posibilidades, pero no se ha querido entrar en gran detalle ni profundidad. En la Figura 28 se encuentran representadas seis de estas funciones. Figura 28. Representación gráfica de algunas funciones de activación (Fuente: [24]) La elección de utilizar una u otra función depende mucho del tipo de red neuronal a desarrollar. En la literatura especializada se puede encontrar que la mejor elección es utilizar la función ReLU, ya que suele obtener mejores resultados que las otras. También se recomienda utilizar la función Softmax en la capa de salida de la red, si se dispone de un problema de clasificación.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 33 2.3.2.4 Redes neuronales convolucionales Existe un tipo de red neuronal de gran importancia en el Deep Learning, en especial en el campo del reconocimiento de imágenes, las redes neuronales convolucionales. El desarrollo y explicación de este tipo de redes puede llegar a ser largo y complejo, por lo que en este apartado se pretende dar una idea general de los conceptos más generales respecto a este tema. En una red neuronal tradicional, cada neurona de una capa está conectada con todas las neuronas de la capa siguiente, esto es lo que se conoce como capa densa o completamente conectada (fully-connected layer). Para una red neuronal convolucional, este tipo solamente se utiliza en la última (o últimas) capa(s) de la red, utilizando en su lugar una capa convolucional. Tras cada capa convolucional se aplica una función de activación, típicamente la ReLU, hasta llegar a las capas finales de la red, que suelen ser una o dos capas densas. Cada capa en una red neuronal convolucional se encarga de aprender una serie de filtros (cientos o incluso miles), combinando los resultados y pasando la información a la siguiente capa. Por ejemplo, para el caso del reconocimiento de imágenes, la red seguirá un proceso similar a: • Detectar bordes de los elementos de la imagen. • Utilizar esos bordes para detectar formas concretas. • Utilizar esas formas para detectar características de alto nivel y reconocer elementos concretos. En las operaciones de pre-procesado del apartado anterior, ya se habló acerca de la operación de convolución, pero a continuación se entrará algo más en detalle para explicar el funcionamiento de esta operación. Matemáticamente una convolución consiste en multiplicar elemento a elemento dos matrices de la misma dimensión y sumar los elementos. Para el caso específico de trabajar con imágenes, la operación consiste en recorrer la imagen de izquierda a derecha y de arriba abajo, con una ventana o kernel, realizando la convolución y obteniendo una nueva matriz. Por ejemplo, para el ejemplo de la Figura 29, la operación de convolución para la primera ventana de píxeles sería: 𝑂11=[3 0 1 1 5 8 2 7 2]∗[−1 0 1 −1 0 1 −1 0 1]= =(3∗(−1)+0∗0+1∗1)+(1∗(−1)+5∗0+8∗1)+(2∗(−1)+7∗0+2∗1) 𝑂11=5 Esta misma operación se realiza de forma iterativa recorriendo toda la imagen obteniendo como resultado una nueva imagen. Como ya se comentó, las distintas operaciones de suavizado, realzado, etc. consisten en la realización de operaciones convolucionales con kernels específicos conocidos como filtros. En visión artificial, estos filtros se aplican de forma “manual” y tienen valores específicos para obtener resultados determinados.
CAPÍTULO 2: ESTADO DE LA TÉCNICA 34 Detección de defectología mediante visión artificial Figura 29. Ejemplo de operación de convolución Ya se ha mencionado que las redes neuronales convolucionales son capaces de aprender esta clase de filtros de forma automática. En las primeras capas estos filtros son de bajo nivel y se utilizan para construir nuevos bloques que permiten analizar características de alto nivel en las capas más profundas de la red. Tras la realización de las operaciones de convolución (y las de activación), la salida de cada capa se compone de múltiples características, por lo que es necesario reducir el tamaño de salida. Para ello, se utiliza una capa de muestreo o agrupación (subsampling o max-pooling) que se encarga de tomar las muestras más representativas de la capa anterior, reduciendo el coste computacional descartando aquellas características que tienen menos importancia dentro de la red. De esta manera se alternan las capas convolucionales y de agrupación hasta llegar a las últimas capas de la red, que se corresponden con capas tradicionales. Por último, estas capas se conectan con el clasificador Sotfmax que tendrá tantas salidas como clases se quieran conocer. En esquema de este tipo de redes se ilustra en la Figura 30. Figura 30. Esquema de una red neuronal convolucional A través del uso de este tipo de redes, dotamos a los algoritmos de visión artificial de la capacidad de elegir de forma autónoma los filtros que debe ir aplicando en cada nivel para obtener las características más relevantes de unas imágenes de partida (asociadas a una serie de clases) y posteriormente, utilizar esos algoritmos para reconocer los elementos aprendidos y distinguir entre las distintas clases.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 35 2.3.3 Aplicación en inspección industrial La detección de la defectología asociada a distintos procesos industriales a través de técnicas avanzadas como el uso de visión artificial o redes neuronales no es un problema nuevo y los esfuerzos realizados en este ámbito han estado presentes durante años. Es posible encontrar en la literatura especializada multitud de aplicaciones distintas basadas en el uso de estos sistemas, tanto para la inspección en tiempo real de los procesos como para la detección y clasificación de diferentes tipos de defectos aparecidos a posteriori. 2.3.3.1 Control de procesos En determinados procesos, la aplicación de sistemas de visión artificial permite controlar los parámetros clave en su ejecución. Con ello es posible obtener determinados datos que permiten optimizar el proceso en tiempo real. Por ejemplo, Barua et al. [27] proponen un sistema para la detección de los defectos producidos durante el proceso LMD (laser metal deposition). El sistema propuesto se encarga de analizar el hilo de metal según se va depositando en la superficie de la pieza, a través de la evaluación de la temperatura de cada píxel de la imagen. A través de distintas tonalidades de color en base RGB (Red Green Blue) se relacionan con distintos valores de la temperatura del hilo en Celsius, en la Figura 31 se muestra la relación seguida por los autores para obtener los gradientes de temperatura. Mediante estos datos es posible alertar en el caso de detectar una desviación, lo cual permite implementar una metodología de análisis continúo denominada control “on-line”, corrigiendo el proceso al instante, y por ende mejorando la calidad de la producción al evitar la aparición de grietas o poros. Figura 31. Gradiente de color del hilo depositado (a) y relación entre el gradiente de color RGB y su temperatura asociada (b) y (c) (Fuente: [27])
CAPÍTULO 2: ESTADO DE LA TÉCNICA 36 Detección de defectología mediante visión artificial 2.3.3.2 Análisis del estado de soldaduras A través de la aplicación de operaciones de pre-procesado y segmentación como las vistas en apartados anteriores (2.3.1.2 y 2.3.1.3) es posible analizar el estado de los cordones de soldadura. Chu & Wang [18] proponen un sistema que permite examinar la calidad de las soldaduras mediante algoritmos de procesamiento de imágenes. El algoritmo propuesto se encarga de extraer la región de interés relacionada con el cordón de soldadura y obtener los puntos más importantes de este, analizando sus dimensiones y posibles defectos. La imagen de partida se suaviza mediante el filtro de la mediana (Figura 32c) para reducir el ruido de la imagen y se realiza una umbralización (Figura 32d) para extraer el fondo. Posteriormente, se procesa la imagen mediante la operación de cierre (Figura 32e) para lograr que la línea sea continua y eliminando las zonas de mayor área se logra separar la línea de interés (Figura 32f). Se extrae la región de interés de la imagen, para reducir el tiempo y la carga computacional (Figura 32g). El siguiente paso consiste en obtener la línea media del contorno a analizar (Figura 32h y Figura 32i) para al final extraer los puntos característicos del cordón (Figura 32j) a través de un algoritmo basado en áreas. Figura 32. Procesamiento interno de las imágenes para el análisis de cordones de soldadura (Fuente: [18]) Como se puede apreciar, a través de la obtención de estos puntos es posible determinar las dimensiones del cordón de soldadura. Estas dimensiones se pueden comparar con los valores de referencia, lo que permite juzgar en última instancia la calidad del cordón.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 37 Otro método de detección de defectos en soldaduras es el propuesto por Sun et al. [28]. Proponen un algoritmo para identificar y clasificar defectos de soldadura en recipientes metálicos, a través de la categorización previa de dichos defectos y la posterior extracción de las características relevantes del cordón de soldadura. La Figura 33 muestra el proceso seguido. Figura 33. Extracción de los elementos característicos de la soldadura (Fuente: [28]) A diferencia del anterior, este sistema permite clasificar los defectos encontrados en los cordones de soldadura. Una vez descartados los pseudefectos y las falsas detecciones, a través de la medición del brillo de las imágenes el algoritmo es capaz de distinguir entre los distintos defectos asociados. 2.3.3.3 Inspección de raíles Otra aplicación muy interesante de la visión artificial es la inspección de raíles in situ a través de sistemas portátiles como el propuesto por Min et al. [29]. Utilizan un procesado morfológico y el código cadena para obtener las características de los defectos evitando realizar un pre-procesado excesivo de la imagen. La propuesta consiste en un sistema portátil y rápido, capaz de realizar el análisis en tiempo real durante una inspección de campo. En primer lugar, el algoritmo detecta las regiones de interés de la imagen para poder analizar únicamente las zonas correspondientes a los raíles. El procesado seguido consiste en la aplicación del filtro de la mediana para reducir el ruido de la imagen y posteriormente utilizan el algoritmo de Canny junto con operaciones morfológicas para lograr segmentar la imagen. Figura 34. Ejemplos de extracción de defectos a través del procesado (Fuente: [29])
CAPÍTULO 2: ESTADO DE LA TÉCNICA 38 Detección de defectología mediante visión artificial 2.3.3.4 Análisis y clasificación de tornillería La inspección industrial a través de visión artificial y el Deep Learning permite la fácil localización y clasificación de ciertos elementos como pueden ser tornillos u otros elementos de unión. El sistema propuesto por Song et al. [19] se basa en el uso de redes neuronales convolucionales para la detección de varios tipos de micro-defectos en cabezas de tornillos. El método no requiere obtener las características de los tornillos, puesto que la red está entrenada para distinguir entre tornillos con defectos y tornillos libres de defectos. Además, se realiza una comparativa con técnicas tradicionales, como el uso de patrones de comparación, demostrando la gran robustez y superioridad del uso de una red convolucional. En la Figura 35 se muestra el esquema de la red neuronal utilizada por los autores, cuya arquitectura está basada en la red LeNet-5, utilizada originalmente para el reconocimiento de caracteres. Figura 35. Red neuronal propuesta por los autores y resultados del algoritmo (Fuente: [19]) Como se puede observar en la figura, a través de la detección de los contornos de los tornillos, es posible extraer determinados puntos característicos que permiten tanto obtener las dimensiones de estos como su localización. El objetivo final del algoritmo es facilitar tanto la localización como la clasificación de los tornillos con distintos tipos de defectos.
CAPÍTULO 2: ESTADO DE LA TÉCNICA Detección de defectología mediante visión artificial 39 2.3.3.5 Detección automática de defectos La posibilidad de desarrollar un sistema automático de detección de defectos en piezas ensayadas a través de líquidos penetrantes resulta altamente interesante. La inspección visual directa de estos ensayos se ve altamente influenciada por el factor humano llegando a producir resultados muy variables. Shipway et al. [30] estudian distintos métodos para la detección automática de defectos en piezas analizadas mediante el ensayo de líquidos penetrantes fluorescentes, uno de los ensayos más utilizados para la detección de grietas y otros defectos en componentes aeroespaciales. En el estudio se busca evaluar el rendimiento del algoritmo Random Forest, basado en árboles de decisión que se ha mostrado como una alternativa muy prometedora en la detección automática de defectos en líquidos penetrantes fluorescentes. La metodología seguida consiste en la modificación del algoritmo para analizar si se obtienen mejoras en el rendimiento y el coste computacional asociado 2.3.3.6 Detección y clasificación de defectos Una de las aplicaciones más interesantes consiste en desarrollar un sistema capaz de detectar y clasificar defectos a través del uso de redes neuronales. Existen multitud de estudios que buscan encontrar el mejor método según sea la aplicación buscada. Una de las propuestas más novedosas es la de Jiang et al. [31], quien define y entrena un algoritmo para realizar el análisis de ejes defectuosos. La metodología propuesta pasa por el desarrollo de un algoritmo basado en una red neuronal convolucional para realizar la detección y clasificación de los defectos encontrados en los ejes. En la Figura 36 se ilustra el esquema del sistema desarrollado por los autores. En primer lugar, se etiquetan las imágenes con los defectos buscados que se utilizarán para el entrenamiento. Después, la red entrenada se encarga de localizar y clasificar los defectos detectados en los ejes. Figura 36. Esquema del proceso seguido (Fuente: [31]) Principalmente los autores destacan la aparición de cuatro tipos de defectos: huecos y hoyos, abrasiones, raspaduras y grietas. En la Figura 37 se muestran resultados de la aplicación de la red neuronal planteada.
CAPÍTULO 2: ESTADO DE LA TÉCNICA 40 Detección de defectología mediante visión artificial Figura 37. Ejemplos de resultados de detección y clasificación (Fuente: [31]) Un detalle interesante planteado por los autores es la utilización de un utillaje para la adquisición de imágenes basado en un escáner lineal y eje de rotación para los ejes para la obtención de las imágenes de los defectos, debido a la dificultad de obtener una buena captura de superficies brillantes y pulidas. 2.3.3.7 Conclusiones A través de esta revisión de la bibliografía se han llegado a varias conclusiones respecto a la posibles alternativas a seguir: • De forma general existen dos maneras de abordar el problema de detección de defectos: a través del uso de un sistema tradicional de visión artificial utilizando operaciones de procesado y segmentación, o mediante el uso de Deep Learning utilizando redes neuronales convolucionales. • La detección se realiza generalmente en la pieza sin haber realizado un ensayo no destructivo previo, por lo que es interesante analizar la combinación de las dos técnicas. A través de dicha combinación, sería posible obtener y analizar la información de tal manera que mediante el uso de una única técnica no sería posible. • Los métodos de obtención de la imagen son variados, dependiendo de cada una de las aplicaciones. • Algunas de las propuestas son específicas para la aplicación analizada mientras que otras son extrapolables a otros campos.
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO Detección de defectología mediante visión artificial 41 CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO Antes de comenzar con el desarrollo técnico del proyecto, es conveniente conocer los recursos con los que se va a trabajar. Para ello, en este capítulo se describe el software utilizado para la ejecución del proyecto y se presentan las especificaciones del sistema utilizado. Además, se realiza una introducción general a la programación en el lenguaje escogido y se presenta la metodología empleada para la evaluación y presentación de resultados. 3.1 METOLODOGÍA DE DESARROLLO El desarrollo del proyecto se ha divido en cuatro grandes bloques muy relacionados entre sí que permiten ir avanzando en distintas fases de desarrollo: • La primera fase supone la familiarización con el entorno de trabajo. Ya se había trabajado antes con el software escogido y por tanto el objetivo final de esta fase no es más que realizar una introducción a la programación con Python y OpenCV. • La segunda fase recoge el grueso más técnico del proyecto. En esta parte se desarrolla el algoritmo de detección de defectos que se utilizará de forma posterior a la inspección por líquidos penetrantes, evaluando los resultados obtenidos. • La tercera fase es una continuación directa de la anterior. Mediante el algoritmo desarrollado se pretende evaluar la posibilidad de prescindir del ensayo por líquidos penetrantes para realizar la detección de defectos. • La cuarta fase supone la aplicación de una alternativa al algoritmo basado en visión artificial. En este punto se evalúa la posibilidad de aplicar el Deep Learning a la detección defectos. 3.2 RECURSOS UTILIZADOS En cuanto a software, existen multitud de formas de abordar el desarrollo de un sistema de visión artificial. Por ejemplo, la empresa MathWorks® posee los software de MATLAB® y Simulink® que incluyen numerosas herramientas para el desarrollo de aplicaciones de visión artificial y el procesamiento de imágenes. También existen potentes programas diseñados específicamente para realizar sistemas automáticos de inspección de calidad a nivel industrial. Una opción muy común en el desarrollo de aplicaciones basadas en visión artificial y Deep Learning es la utilización de la librería OpenCV en combinación con un lenguaje de programación como C++, Java o Python. Una de las mayores ventajas del lenguaje Python es su facilidad de uso y programación. La combinación de este lenguaje con la gran variedad de funcionalidades que proporciona la librería OpenCV permite desarrollar herramientas muy avanzadas. Debido a las grandes ventajas aportadas por ambas herramientas, se decidió trabajar con esta combinación del lenguaje Python con la librería OpenCV para realizar el desarrollo del proyecto.
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO 48 Detección de defectología mediante visión artificial 3.3.2.3 Obtención de histogramas OpenCV también nos permite obtener el histograma de una imagen a través de la función calcHist() y utilizando las herramientas gráficas de la librería de matplotlib. Figura 47. Fragmento de código correspondiente a la obtención de histogramas Una vez ejecutado el código (Figura 47) se visualiza tanto la imagen original como su conversión a niveles de gris (Figura 44) y además se grafica el histograma mostrado en la Figura 48. Como se puede apreciar, el histograma nos indica que la mayoría de los píxeles posee un nivel de intensidad de aproximadamente 170. Esto es lógico puesto que, en la imagen en niveles de gris, la mayor parte de los píxeles se corresponden con el fondo. Figura 48. Histograma de la imagen en niveles de gris También es posible obtener el histograma de imágenes en color. En este caso se obtendría una representación de la frecuencia con la que aparecen los distintos niveles de color para cada uno de los canales RGB.
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO Detección de defectología mediante visión artificial 49 3.3.2.4 Ecualización del histograma Es posible realizar una ecualización del histograma de una imagen en niveles de gris a través de la función equalizeHist(). Figura 49. Fragmento de código correspondiente a la ecualización del histograma Este código (Figura 49) permite obtener y visualizar el ecualizado del histograma de una imagen en niveles de gris, como se ve en la Figura 50. Además, siguiendo el ejemplo anterior se podría visualizar la gráfica del histograma ecualizado. Figura 50. Efecto del ecualizado del histograma 3.3.2.5 Umbralización Como ya se ha comentado anteriormente. Una técnica muy común de segmentación es la umbralización. En OpenCV es posible aplicar dos de los métodos más comunes que son la umbralización fija y la umbralización adaptable. La función threshold() permite realizar una umbralización fija definiendo un umbral entre un valor mínimo y un valor máximo. Se pueden aplicar cinco tipos distintos según sea el resultado al que se desea llegar, siendo el más común el umbral binario (THRESH_BINARY) o el umbral binario invertido (THRESH_BINARY_INV). Por otro lado, la función adaptiveThreshold() aplica un umbral variable a la imagen. En ocasiones es difícil seleccionar el valor para el umbral fijo y se puede perder detalle de
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO 50 Detección de defectología mediante visión artificial determinadas áreas de la imagen, la aplicación de un umbral variable puede solucionar este problema. Figura 51. Fragmento de código correspondiente a la umbralización El resultado de los dos tipos de umbralización implementados en el código anterior (Figura 51) se muestra en la Figura 52. Como se puede apreciar, la diferencia es notable. Figura 52. Efecto de distintos tipos de umbralización Dependiendo de la aplicación deseada, será conveniente utilizar un tipo de umbralización u otro. En ocasiones la utilización de un umbral fijo permite discriminar más fácilmente ciertas zonas de la imagen cuya importancia sea menor.
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO Detección de defectología mediante visión artificial 51 3.3.2.6 Operaciones morfológicas También es posible realizar transformaciones de la forma de los elementos de una imagen a través de la aplicación de una máscara o kernel, como se vio en el capítulo anterior. La erosión y la dilatación son las dos básicas, mientras que la apertura y el cierre son variantes de las primeras. Para aplicar estas operaciones se suele partir de imágenes binarias, por lo que de forma previa se puede realizar un umbralizado para obtener una imagen de estas características. Como se desea que los elementos sean “blancos”, el método de umbralización es el umbral binario invertido. En primer lugar, es necesario declarar el kernel que se utilizará, siendo en este caso una matriz unidad 7x7. La función erode() realiza una erosión, y la función dilate() una dilatación. Se puede observar que también es posible indicar el número de iteraciones que se realizarán, esto hace referencia al número de pasadas que realizará el kernel. La función morphologyEx() nos permite realizar operaciones más complejas como la apertura (MORPH_OPEN), que consiste en una erosión seguida de una dilatación o el cierre (MORPH_CLOSE), que es la operación contraria. Figura 53. Fragmento de código correspondiente a las operaciones morfológicas Mediante la ejecución del código (Figura 53) se puede observar el resultado de la aplicación de cada una de estas operaciones. Las diferencias entre las operaciones de erosión y de dilatación se observan en la Figura 54. La erosión reduce los bordes de los elementos en blanco, por lo que puede ser útil
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO 52 Detección de defectología mediante visión artificial para eliminar cierto ruido en la imagen, mientras que la dilatación los amplía, lo que permite unir bordes. Figura 54. Efecto de las operaciones de erosión y dilatación Por otro lado, el resultado de las operaciones de cierre y apertura se muestra en la Figura 55. En el caso de la apertura, es útil para reducir el ruido sin modificar excesivamente el borde de los elementos, la apertura se suele utilizar para cerrar pequeños agujeros que pueden darse en el interior de los elementos. Figura 55. Efecto de las operaciones de cierre y apertura 3.3.3 Extracción y detección de contornos 3.3.3.1 Detector de bordes de Canny Un algoritmo muy popular de detección de contornos es el de Canny. El algoritmo consta de varios pasos, pero OpenCV los agrupa todos en la función de Canny(). Internamente el algoritmo aplica una serie de filtros para reducir el ruido de la imagen y eliminar aquellos elementos que no considera que son bordes.
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO Detección de defectología mediante visión artificial 53 Figura 56. Fragmento de código correspondiente al detector de bordes de Canny En la Figura 57 se observa el resultado de aplicación del algoritmo (Figura 56) a una imagen suavizada mediante un filtro de Gauss. Este algoritmo se puede combinar con las operaciones vistas anteriormente para obtener los resultados deseados. Figura 57. Detección de bordes mediante el algoritmo de Canny 3.3.3.2 Detección de contornos También es posible buscar contornos en la imagen a través de la función findContours(). Es necesario partir de una imagen binaria, lo que se consigue a través de un umbralizado. En ocasiones la selección del valor del umbral no es obvia y a través de THRESH_TRIANGLE, OpenCV es capaz de elegir el umbral óptimo. Para obtener los contornos es necesario indicar a la función dos parámetros: la jerarquía seguida para descartar contornos y el método usado para simplificar el contorno obtenido. Las elecciones más comunes son RETR_TREE o RETR_CCOMP para el primero y CHAIN_APPROX_SIMPLE para el segundo. A la hora de visualizar los contornos en la imagen existen varias alternativas. La primera es dibujar el propio contorno en la imagen. Puesto que en ocasiones se detectan contornos
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO 54 Detección de defectología mediante visión artificial no deseados, ya sea porque son elementos demasiado grandes o muy pequeños, se puede discretizar la visualización indicando un rango de valores aceptables respecto al área del contorno, obtenida a través de la función contourArea(). Por ello esta operación es común verla incluida en un bucle for como se muestra en el ejemplo. Por último, drawContours() es la función encargada de dibujar los contornos. Es posible indicar el tipo, grosor y color de la línea que representará los contornos. Figura 58. Fragmento de código correspondiente a la detección y representación de contornos El resultado de ejecución del código (Figura 58) se puede ver reflejado en la Figura 59. Gracias al haber indicado un rango de valores para el área, se han obtenido los contornos más representativos de la imagen. Figura 59. Detección de contornos y representación en la imagen
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO Detección de defectología mediante visión artificial 55 Una representación alternativa consiste en buscar el mínimo rectángulo que contenga el contorno. Para ello se utiliza la función boundingRect() que obtiene las medidas del rectángulo que posteriormente se dibuja a través de rectangle() de forma similar al ejemplo anterior. Figura 60. Fragmento de código correspondiente a la detección y representación mediante rectángulos Como se puede observar en la Figura 61, se han encontrado los mismos elementos que para el caso anterior pero su representación es distinta, simplemente modificando unas pocas líneas del código (Figura 60). Figura 61. Detección de contornos y representación mediante rectángulos Otra opción muy similar es la de obtener la representación del contorno mediante la mínima circunferencia que contenga a cada contorno. Para obtener el centro y el radio de
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO 56 Detección de defectología mediante visión artificial cada circunferencia se utiliza la función minEnclosingCircle() y para dibujarla la función circle(). Figura 62. Fragmento de código correspondiente a la detección y representación mediante circunferencias A través de la ejecución del nuevo código (Figura 62), se puede apreciar como el resultado sigue siendo el mismo que en los casos anteriores, pero en la Figura 63 la detección se representa mediante circunferencias. Figura 63. Detección de contornos y representación mediante circunferencias
CAPÍTULO 3: INTRODUCCIÓN AL DESARROLLO TÉCNICO Detección de defectología mediante visión artificial 57 3.4 PRESENTACIÓN DE RESULTADOS A la hora de obtener resultados en aplicaciones de visión artificial y detección de objetos en generales, existen una serie de conceptos que permiten evaluar el desempeño de los algoritmos. Las muestras o imágenes utilizadas para realizar la evaluación contendrán un conjunto de imágenes positivas (true examples) y un conjunto de imágenes negativas (false examples). Estas imágenes podrán ser clasificadas como positivas (classified positives) o negativas (classified negatives), obteniendo cuatro tipos de resultados: • True positives o verdaderos positivos: positivas clasificadas como positivas. • False positives o falsos positivos: negativas clasificadas como positivas. • False negatives o falsos negativos: positivas clasificadas como negativas. • True negatives o verdaderos negativos: negativas clasificadas como negativas. Tabla 6. Tabla de clasificación de resultados Classified positives Classified negatives True examples TP = True positives FN = False negatives False examples FP = False positives TN = True negatives De esta clasificación se pueden obtener los siguientes parámetros, que hacen referencia al total de muestras: • Total de muestras positivas (NP): suma de verdaderos positivos y falsos negativos. 𝑁𝑃=𝑇𝑃+𝐹𝑁 (11) • Total de muestras negativas (NN): suma de falsos positivos y verdaderos negativos. 𝑁𝑁=𝐹𝑃+𝑇𝑁 (12) • Total de clasificados positivos (CP): suma de verdaderos positivos y falsos positivos. 𝐶𝑃=𝑇𝑃+𝐹𝑃 (13) • Total de clasificados negativos (CN): suma de falsos negativos y verdaderos negativos. 𝐶𝑁=𝐹𝑁+𝑇𝑁 (14) Estos parámetros se pueden relacionar entre sí, obteniendo una serie de coeficientes que permiten evaluar los algoritmos: • True positive rate o detection rate: Tasa de detección o de verdaderos positivos. Indica el número de detecciones positivas dentro de un conjunto de muestras positivas. También se denomina sensibilidad o exhaustividad. 𝜌𝑇𝑃 =𝑇𝑃 𝑁𝑃 (15)
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO 64 Detección de defectología mediante visión artificial Los efectos producidos por la aplicación de distintas matrices gaussianas a la imagen de partida se observan en la Figura 71. Para tamaños de matriz bajos la diferencia no es muy notable, pero el efecto empieza a aumentar según aumentados el tamaño. Figura 71. Efecto de distintos tamaños de matrices gaussianas Para la etapa de segmentación se ha utilizado una umbralización fija, puesto que, en este caso la utilización de un umbral adaptativo no permitiría distinguir los elementos deseados del fondo. En la Figura 72 se aprecia la notable diferencia entre distintos valores del umbral. Figura 72. Efecto de la elección de distintos umbrales
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO Detección de defectología mediante visión artificial 65 Debido a la dificultad de seleccionar un valor de umbral adecuado y que sea apto para todo tipo de imágenes, existe la posibilidad de que la propia función seleccione el valor óptimo de dicho umbral. OpenCV proporciona dos métodos para la selección de este valor a través de los parámetros THRESH_TRIANGLE o THRESH_OTSU. Los diferentes resultados se observan en la Figura 73. En este caso, a través del método del triángulo se obtienen mejores resultados. Figura 73. Umbral óptimo según el método escogido Ya se ha comentado anteriormente la posibilidad de realizar distintas operaciones morfológicas para acentuar los elementos más significativos de una imagen, unir bordes o reducir el ruido. El resultado de cada una de estas operaciones una vez realizada la umbralización anterior se puede observar en la Figura 74. En este caso se ha elegido finalmente realizar una operación de apertura mediante un kernel unidad de tamaño 5x5, lo que permite eliminar algo de ruido restante y acentuar algunos elementos sin modificar de forma excesiva su silueta. Figura 74. Efecto de las operaciones morfológicas
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO 66 Detección de defectología mediante visión artificial El último paso de esta etapa es la detección de contornos, que ya se explicó en el apartado anterior. En este caso, para su representación es más interesante utilizar la circunferencia circunscrita de cada elemento, puesto que permite obtener las coordenadas del centro de cada defecto y una medida aproximada de su tamaño a través del radio de la circunferencia Figura 75. Diferentes formas de representación del elemento detectado La etapa de clasificación en este caso es bastante básica. En primer lugar, se descartan aquellos elementos cuyo área sea demasiado pequeña o grande, puesto que se conoce el tamaño medio de los defectos. También se discrimina aquellos círculos cuyo radio sea superior a un valor determinado, evitando así la visualización de determinados contornos que no supongan ningún elemento concreto. En la Figura 76 se tiene la referencia seguida para el cálculo del límite de tamaño de los elementos. La imagen de partida tiene una resolución espacial de 800 píxeles de ancho y 600 de alto, por lo que los elementos más grandes tienen un radio de unos 50 píxeles. Conviene destacar que conociendo la distancia a la que se captura la imagen y la resolución de esta, es posible relacionar los píxeles con las medidas reales. Este tamaño de elemento no tiene por qué ser el mismo en todas las imágenes, por lo que se ha fijado el valor máximo de radio en 100 píxeles, descartando todos los elementos cuyo radio sea superior. Figura 76. Aproximación del tamaño de los elementos
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO Detección de defectología mediante visión artificial 67 Cada círculo que cumple los requisitos para ser considerado como defecto, aumenta el valor del contador en una unidad. El número final de posibles detecciones aparecerá en la imagen final de detección. Además, se ha dotado al algoritmo la capacidad de imprimir por pantalla las dimensiones de los defectos encontrados. Una vez elegidas las operaciones que realizará el algoritmo, el código resultante es el mostrado: Figura 77. Fragmento de código correspondiente a la función FuncionDetectar() Todo el proceso interno de pre-procesado y segmentación seguido por el algoritmo se observa en la Figura 78. El resultado de estas etapas dependerá mucho de la calidad de la imagen original, y dada la gran variabilidad de las estas, en ocasiones no siempre será posible obtener los mejores resultados. Comparando la Figura 78a y la Figura 78b, se puede observar fácilmente el efecto del filtrado mencionado anteriormente, estando la imagen más suavizada que en la original, permitiendo reducir la aparición de ruido, que es el objetivo principal de esta etapa. Realizada la umbralización (Figura 78c) es posible distinguir algunos pequeños puntos en la imagen que podrían ocasionar detecciones erróneas por lo que mediante la operación de apertura (Figura 78d) se consiguen eliminar las más pequeñas.
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO 68 Detección de defectología mediante visión artificial Figura 78. Conversión a niveles de gris (a), filtro de Gauss (b), umbralización fija (c) y apertura (d) El resultado final de aplicación del algoritmo se puede observar en la Figura 79. Se han representado las circunferencias en verde para facilitar su visualización en la imagen. Como ya se ha mencionado, internamente se lleva la cuenta de los círculos dibujados que representan a cada defecto, y en la esquina inferior izquierda aparece el número de posibles defectos detectados, que en este caso son 15 detecciones. Figura 79. Resultado de la detección de contornos
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO Detección de defectología mediante visión artificial 69 4.2.2 Análisis de los resultados Las imágenes de partida son imágenes de alta resolución de 4000x3000 píxeles, por lo que para su análisis cada imagen se dividió en una serie de fragmentos de 800x600 píxeles. Estas imágenes son las utilizadas para realizar el desarrollo expuesto en el apartado anterior. Un ejemplo de esta división se encuentra ilustrado en la Figura 80. Figura 80. Imagen de partida y ejemplo de los fragmentos de esta En la imagen de partida de la Figura 81, se puede apreciar una distribución desigual de defectos en función del cuadrante, estos resultados se corresponden con diferentes configuraciones del láser durante el recubrimiento. En algunas partes de dicha imagen, el análisis puede llegar a ser confusa para el algoritmo a consecuencia de las singularidades formadas por la continuidad entre una serie de defectos. La utilización del algoritmo en estas zonas no tendría sentido práctico debido a que los resultados serán claramente erróneos, como se podrá comprobar más adelante. El correcto funcionamiento de este algoritmo depende en gran medida de la calidad de la imagen, siendo importante una correcta iluminación, ausencia de sombras, nitidez, etc. Con el fin de obtener unos resultados apropiados, para la evaluación de su desempeño se han seleccionado aquellas imágenes en las que la calidad es óptima. En la Figura 81 se muestran cuatro ejemplos en los que el algoritmo ha conseguido detectar defectos con una exactitud bastante aceptable. Los resultados de esta primera prueba se recogen en la Tabla 7. Tabla 7. Resultados de detección de la primera prueba Posibles Detección Correctas Precision Recall Miss rate Defectos 97 65 62 95% 64% 36% De forma manual, en total se han detectado 97 posibles defectos que el algoritmo debería ser capaz de detectar. Atendiendo al valor de la precisión (precision), se deduce que los resultados son positivos puesto que solamente tres detecciones han sido incorrectas. Los resultados para la exhaustividad (recall) y la tasa de pérdida (miss rate) por su parte no son los esperados, puesto que el algoritmo no ha sido capaz de detectar el 36% de los defectos hallados manualmente.
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO 70 Detección de defectología mediante visión artificial Para este tipo de imágenes el algoritmo puede obtener buenos resultados en el caso de que los defectos tengan patrones distinguibles y puedan ser fácilmente separables del fondo. Figura 81. Primera prueba de detección Como se ha mencionado, al ser imágenes con bastante buena iluminación y nitidez, el posible ruido generado no es muy alto, lo que provoca que los elementos puedan ser distinguidos fácilmente, resultando en una buena detección. En ocasiones pueden existir sombras y brillos que provocan errores durante la etapa de segmentación, generando malas detecciones. En las imágenes disponibles existen agrupaciones de defectos en determinadas zonas que provocan el solapamiento de los líquidos penetrantes. En la Figura 82 se ilustran este tipo de imágenes. De forma manual, se han encontrado grandes dificultades para contar los defectos visibles en ambas imágenes, aproximadamente se han llegado a obtener unos 160 defectos. Esta segunda prueba, cuyos resultado se encuentran en la Tabla 8, muestra las grandes limitaciones de este algoritmo en determinadas situaciones. Tabla 8. Resultados de detección de la segunda prueba Posibles Detección Correctas Precision Recall Miss rate Defectos 160 98 90 92% 56% 44% Aunque el 92% de las detecciones realizadas corresponden en realidad con defectos, solamente se ha detectado el 56% de los defectos de las imágenes. Aunque a simple vista para el ojo humano algunos de estos defectos puedan a llegar a ser evidentes, las transformaciones realizadas por el algoritmo cambian totalmente la imagen.
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO Detección de defectología mediante visión artificial 71 Figura 82. Segunda prueba de detección En una tercera prueba (Figura 83) se observa todavía más las dificultades del algoritmo para obtener buenas detecciones en imágenes saturadas de defectos. En este caso se hace casi imposible contar de forma manual el número de defectos en las imágenes, por lo que no se presentan los resultados numéricos al respecto. Figura 83. Tercera prueba de detección A la vista de estos resultados, es evidente la importancia que tiene trabajar con imágenes de buena calidad puesto que los procesos realizados por el algoritmo se ven altamente influidos por las características de la imagen. La utilización de este tipo de algoritmos puede dar buenos resultados a la hora de contar indicaciones bien diferenciadas en las piezas. En el momento que se forman agrupaciones de defectos, se hace casi imposible diferenciar correctamente unos de otros. Cabe mencionar también la dificultad intrínseca debido a la forma de la pieza, cuya superficie es altamente irregular y requeriría que las imágenes fueran obtenidas desde distintos ángulos, según sea la superficie para analizar. En piezas más simples y con una menor frecuencia de aparición de defectos, este algoritmo podría llegar a obtener buenos resultados.
CAPÍTULO 4: DETECCIÓN DE DEFECTOS CON ENSAYO PREVIO 72 Detección de defectología mediante visión artificial 4.3 CONCLUSIONES DEL CAPÍTULO Esta posibilidad analizada implica tener que realizar de forma obligatoria el ensayo de líquidos penetrantes a cada una de las piezas a evaluar, con el riesgo de contaminación asociado. Además, realizar el ensayo de forma manual provoca que los tiempos de inspección sigan siendo largos. Como se ha mostrado, en ocasiones, las indicaciones proporcionadas por este ensayo forman agrupaciones que son difíciles de identificar mediante algoritmos de visión artificial generando grandes problemas en los resultados de detección. Aunque se ha demostrado la posibilidad de aplicar estos algoritmos en determinados casos, no suponen la mejor solución para automatizar un sistema de inspección de defectos, debido a que en todo momento debe de haber un operario responsable y con el conocimiento adecuado para tomar las decisiones oportunas. El camino lógico sería realizar la detección directamente en la pieza a inspeccionar, utilizando únicamente métodos de inspección visual mejorados a través de la aplicación de algoritmos de visión artificial.
CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO Detección de defectología mediante visión artificial 73 CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO La aplicación de algoritmos de visión artificial para la detección de defectos sobre imágenes recogidas durante el ensayo de líquidos penetrantes puede ser muy interesante dado que se permite identificar y medir el área de las marcas del penetrante (parámetro que puede asociarse de forma proporcional con la gravedad de los defectos). Sin embargo, para los troqueles de estampación es vital que el tamaño de los defectos superficiales no supere valores umbrales que pudieran comprometer la calidad de las piezas conformadas. Se ha detectado que los algoritmos desarrollados hasta este punto no han sido capaces de determinar el tamaño del defecto de forma independiente a las marcas del penetrante. En este contexto, en el presente capítulo se evaluará la posibilidad de contabilizar los defectos directamente en la pieza, sin la necesidad de realizar el ensayo de líquidos penetrantes, que puede llegar a contaminar la pieza. Para ello, se propone una modificación del algoritmo presentado en el capítulo anterior. 5.1 DETECCIÓN EN PIEZAS SIN TRATAR 5.1.1 Desarrollo del algoritmo de detección A diferencia de la adquisición de las imágenes del capítulo anterior la superficie mecanizada presenta un menor contraste de los defectos que ocasiona que no sean fácilmente distinguibles a simple vista, asimismo la naturaleza del material dificulta las operaciones posteriores a causa de los reflejos y las sombras. Figura 84. Ejemplo de pieza sin ensayar En Figura 85 se recogen distintos fragmentos de las imágenes que se utilizarán en este apartado. Se han escogido fragmentos bastante distintos entre sí en cuanto a la iluminación y la textura de las imágenes, para comprobar el funcionamiento del algoritmo desarrollado. Cabe mencionar que es fácilmente apreciable la gran diferencia con las utilizadas anteriormente.
CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO 80 Detección de defectología mediante visión artificial Una primera prueba de la etapa de segmentación consiste en la aplicación (como en los casos anteriores) de una umbralización fija. Como siempre, la selección del valor del umbral es una tarea muy complicada cuando se quieren tratar distintas imágenes, e incluso utilizando un método de selección como el método del triángulo (Figura 93) no se obtienen los resultados adecuados. La alternativa escogida es la utilización del detector de bordes de Canny. Para su aplicación se fijan el valor mínimo de umbral en 75 y el valor máximo en 100 que, al ser unos valores medios, generalmente dan buenos resultados en la diferenciación de elementos. Además, para unir los bordes extraídos y generar elementos más diferenciables, se realiza una operación de cierre con un kernel 7x7. Figura 93. Aplicación del umbral óptimo En la Figura 94 se observa el resultado de aplicación del algoritmo de Canny antes mencionado y su posterior corrección mediante la operación de cierre. Figura 94. Aplicación del detector de Canny y la operación de cierre
CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO Detección de defectología mediante visión artificial 81 Para la clasificación se sigue un método similar al del algoritmo original, estableciendo unos valores mínimo y máximo correspondientemente para el área calculada de cada una de las detecciones y así descartar aquellos elementos que por su menor o mayor tamaño no son considerados en principio defectos. Debido a las diferentes formas de los defectos se ha decidido emplear la representación del contorno directamente, en vez de realizar la circunferencia representativa, puesto que no todos los elementos se ajustan bien a esta representación. Con la modificación del código se ha aprovechado para introducir algunas mejoras que pueden ser perfectamente implementadas en el código original. En primer lugar, se ha numerado cada uno de los defectos aparecidos en la imagen. Pese a no representar las circunferencias circunscritas de cada elemento, los datos de la localización del centro de la circunferencia y de su radio sí que son útiles para caracterizar los defectos. Estos datos, junto con las dimensiones del área, permiten obtener un listado con las características representativas de cada defecto. Por último, al igual que en los otros casos, se muestra el número de posibles defectos encontrados en la imagen analizada. El resultado de aplicación del algoritmo se encuentra representado en la Figura 95. Al lado de cada detección se muestra el área del defecto. En ocasiones, este valor se muestra fuera de la ventana correspondiente a la imagen o se solapa con el resto de las detecciones debido a que la posición del texto se fija respecto al centro del defecto. Por ello, además de mostrarse en cada una de las imágenes, toda esta información también aparece en la ventana de comandos una vez ejecutado el código. Figura 95. Ejemplo de resultado de la detección
CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO 82 Detección de defectología mediante visión artificial 5.2.3 Análisis de resultados Como en el caso anterior, al prescindir del ensayo por líquidos penetrantes la dificultad para contar el número de defectos a simple vista es mayor. Aun así, para obtener un valor numérico que ayude a justificar el proceso seguido y analizar el rendimiento, se ha realizado una aproximación de los posibles defectos detectados manualmente en cada una de las imágenes. En la Figura 96 se muestran los resultados más representativos de la ejecución del algoritmo, que corresponden con tres sectores distintos de la pieza analizada. Figura 96. Resultados de la ejecución del algortimo En el conjunto de las tres imágenes analizadas se han contabilizado aproximadamente 118 defectos. El algoritmo por su parte muestra un total de 123 detecciones entre las cuales se encuentran los 118 defectos registrados. Estos buenos resultados se traducen en altos valores tanto para la precisión como para la exhaustividad, demostrando que el tratamiento aplicado mejora en gran medida el rendimiento del algoritmo. Tabla 10. Resultados de detección en la pieza Posibles Detección Correctas Precision Recall Miss rate Defectos 118 123 118 96% 100% 0% Al haber reducido en gran medida el brillo de las imágenes, se ha logrado realizar la detección y contabilización de los defectos prescindiendo del ensayo por líquidos
CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO Detección de defectología mediante visión artificial 83 penetrantes. Además, con las modificaciones realizadas en el algoritmo se ha conseguido añadir la posibilidad de medir directamente el área de los defectos. Gracias al tratamiento realizado y a la aplicación del algoritmo de visión artificial propuesto, se ha definido una metodología de inspección que abre la posibilidad de desarrollar un sistema automático de detección y evaluación de los defectos. A través de este sistema, la inspección mediante el ensayo por líquidos penetrantes no sería necesaria, lo que supondría un ahorro en los tiempos de inspección. Cabe mencionar que el área de los defectos en la imagen podría relacionarse de forma directa con su tamaño real, estableciendo una relación entre el número de píxeles de la imagen y la distancia a la que se ha realizado la captura. A través de la medición de su área, es posible realizar un histograma como los mostrados en la Figura 97 y Figura 98. Mediante este histograma es posible analizar la frecuencia de aparición de los defectos según unos intervalos de tamaño. Por ejemplo, es fácilmente observable que los defectos cuyo área está comprendida entre 10 y 20 píxeles cuadrados son más habituales. La obtención de este histograma permite evaluar de forma mucho más rápida y sencilla el estado de las piezas. Con el objetivo de distinguir entre piezas válidas y no válidas según el tamaño de los defectos encontrados, es posible marcar unos límites de tamaño y frecuencia que permitan facilitar la toma de decisiones a través de un simple vistazo del histograma. Además, podría llegar a ser interesante dotar al algoritmo de la capacidad de obtener este histograma de forma automática para cada una de las piezas. En este caso, el histograma se ha obtenido de forma manual. Figura 97. Histograma de aparición de defectos En la Figura 98 se recogen los sectores analizados de la pieza junto con sus histogramas de aparición de defectos. Combinando los resultados obtenidos de estos sectores se llega al histograma mostrado en la figura anterior.
CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO 84 Detección de defectología mediante visión artificial Figura 98. Sectores de la pieza analizada junto con sus histogramas La inspección de una pieza a nivel industrial a través de este algoritmo supone en primer lugar la división de la pieza en zonas de interés que deberán ser evaluadas de forma individual. En el ejemplo mostrado, estas zonas se corresponden con las imágenes mostradas en la Figura 96.
CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO Detección de defectología mediante visión artificial 85 Una vez seleccionadas estas zonas, se aplica el algoritmo obteniendo los resultados mostrados anteriormente. De cada imagen, correspondiente a una zona concreta de la pieza, se obtiene el número de defectos, su localización y su tamaño. Toda esta información se recoge y se almacena, formando la información de la defectología asociada a la pieza. A través de la medición del área de cada uno de los defectos, se construiría un histograma similar a los mostrados en las figura que permite observar la frecuencia de aparición de los defectos de una forma sencilla. Como se ha mencionado, es rápidamente observable qué tamaño de defectos son los que tienen una frecuencia mayor. La elección de los límites de tolerancia debe ser fijada por el inspector de calidad encargado de la tarea. En este caso (Figura 97), los defectos cuyo tamaño está comprendido entre 0 y 30 son perfectamente admisibles puesto que no tienen influencia negativa. Los defectos de tamaño comprendido entre 30 y 100 pueden tener cierta influencia y se establece un límite lineal. Los defectos cuyo tamaño supere esos valores no son admisibles. Toda esta información debe ser proporcionada por el departamento de calidad responsable de la inspección y el límite mostrado en este desarrollo solamente es un ejemplo. En resumen, la delimitación fijada por esta línea permite realizar la toma de decisiones siguiendo un único criterio: si las barras del histograma superar el límite de la línea, la pieza debe ser descartada puesto que la frecuencia de aparición de los defectos es superior a la tolerancia marcada. Analizando el caso de la pieza en cuestión, tomando como referencia la línea utilizada se observa que la pieza debe ser descartada puesto que los defectos más grandes superan la tolerancia fijada por el inspector de calidad. Cabe mencionar, que para la inspección a nivel industrial conviene tener una relación entre el tamaño de los defectos en píxeles y su tamaño real. En el caso de la pieza analizada, los defectos más comunes son de alrededor de 1,5 mm, que es un tamaño que se considera admisible. 5.3 CONCLUSIONES DEL CAPÍTULO El desarrollo del algoritmo de detección y su posterior modificación ha permitido obtener una herramienta válida para realizar la detección de defectos en piezas sin ensayo previo. A través de esta herramienta es posible analizar el estado de las piezas de forma rápida, permitiendo evaluar la calidad de estas y descartar aquellas defectuosas. Esta posibilidad se muestra como la mejor alternativa para desarrollar un sistema automático y completo de detección de defectos. La aplicación de este algoritmo para realizar la evaluación supone una serie de ventajas: • Permite contabilizar los defectos de forma adecuada sin cometer errores reseñables. • La medición de las dimensiones de los defectos permite realizar la construcción de un histograma que facilite la evaluación de la pieza. • El tratamiento propuesto es fácilmente automatizable. Las limitaciones de aplicación de los algoritmos de visión artificial siguen estando muy relacionadas con las condiciones de adquisición de la imagen por lo que, a la hora de diseñar un sistema real de inspección, se debe hacer un estudio exhaustivo de las condiciones de iluminación.
CAPÍTULO 5: DETECCIÓN DE DEFECTOS EN BRUTO 86 Detección de defectología mediante visión artificial
CAPÍTULO 6: APLICACIÓN DE DEEP LEARNING EN LA DETECCIÓN Detección de defectología mediante visión artificial 87 CAPÍTULO 6: APLICACIÓN DE DEEP LEARNING EN LA DETECCIÓN Llegados a este punto, se ha mostrado la posibilidad de utilizar los algoritmos de visión artificial para realizar la detección de los defectos, su contabilización e incluso la obtención de sus dimensiones. Estos algoritmos únicamente están basados en la búsqueda de contornos a través de la diferencia de niveles de intensidad de la imagen. Esto provoca que en ocasiones se pierda información debido a la posible similitud entre píxeles adyacentes o que, a la hora de realizar las distintas operaciones, aparezcan posibles falsos contornos. En este capítulo, se evalúa la posibilidad de aplicar algoritmos más avanzados a través del uso de redes neuronales. 6.1 ALGORITMO DE CLASIFICACIÓN DE IMÁGENES Como se ha comentado, los algoritmos anteriores suponen una aplicación muy general de la visión artificial. A través del Deep Learning, se podría llegar a entrenar una compleja red neuronal que fuese capaz de localizar y clasificar los distintos defectos. Este procedimiento más avanzado se puede conseguir a través de un clasificador de imágenes o de un detector de objetos. En primer lugar, es importante distinguir entre estos dos conceptos: • Clasificador de imágenes (image classifier): un clasificador se encarga de categorizar una imagen según las clases consideradas por la red neuronal. • Detector de objetos (object detector): localiza elementos en una imagen y categoriza cada elemento según las clases consideradas. Generalmente, la detección de objetos es una tarea mucho más compleja que la clasificación, puesto que interviene un mayor número de procesos, por ello para evaluar la posibilidad de entrenar una red neuronal para resolver la problemática de la detección de defectos, se va a desarrollar un clasificador simple que permita clasificar imágenes que contengan indicaciones proporcionadas por el ensayo de líquidos penetrantes. 6.1.1 Preparación de la base de datos Ya sea el desarrollo de un clasificador o de un detector, el primer paso es la preparación de una base de datos lo suficientemente amplia para que el entrenamiento de la red neuronal sea el correcto. Para este caso en concreto, solamente existe un tipo de elemento a detectar, correspondiente a las posibles indicaciones encontradas en la imagen. Por ello es necesario generar dos conjuntos distintos, imágenes que contengan estas indicaciones e imágenes que no. De forma manual se han obtenido recortes de las imágenes de partida para formar los conjuntos. En total se dispone de 300 imágenes positivas (correspondientes a defectos) y 300 imágenes negativas (correspondientes a todo aquello no considerado defecto). En la Figura 99 se muestran unos subconjuntos de las imágenes positivas y de las imágenes negativas recopiladas en la base de datos.
CAPÍTULO 6: APLICACIÓN DE DEEP LEARNING EN LA DETECCIÓN 88 Detección de defectología mediante visión artificial Figura 99. Ejemplos de imágenes positivas y negativas 6.1.2 Creación de la red neuronal Existen múltiples redes neuronales convolucionales que pueden utilizarse para la clasificación de objetos. El entrenamiento de estas redes puede llegar a tener un coste computacional muy alto y requiere tiempo y equipos muy potentes. Ya se ha mencionado previamente el completo material que proporciona el doctor Adrian Rosebrock de forma gratuita en forma de guías y tutoriales. Adicionalmente en [24] se encuentra recogida una gran cantidad de información apropiada para comenzar con el desarrollo de redes neuronales, proponiendo varias soluciones para resolver distintos casos de clasificación de imágenes a través de OpenCV. Una arquitectura sencilla y perfecta para empezar a trabajar es LeNet [40], pensada en sus orígenes para la clasificación de dígitos escritos a mano. Anteriormente ya se ha visto su posible aplicación en detección de defectos en tornillos por Song et al. [19]. La arquitectura de la red (Figura 100) consiste en dos conjuntos de capas de convolución, activación y agrupación, seguidas de una capa densa y una activación, y por último otra capa densa y un clasificador softmax. Figura 100. Arquitectura de la red LeNet (Fuente: [40]) Como se ha mencionado anteriormente, la red se puede dividir en cuatro conjunto de capas. En el primer conjunto se tiene una capa convolucional que se encargará de
CAPÍTULO 6: APLICACIÓN DE DEEP LEARNING EN LA DETECCIÓN Detección de defectología mediante visión artificial 89 aprender 20 filtros de tamaño 5x5. Posteriormente se aplica la función de activación ReLU y luego se realiza un max-pooling de 2x2 en x e y. El segundo conjunto de capas se compone igual que el anterior. Esta vez la red aprenderá 50 filtros convolucionales. Es muy común aumentar el número de filtros según se añaden capas cada vez más profundas. En el tercer conjunto de capas transformamos la salida anterior en un vector plano lo que permite aplicar ahora una capa densa (dense o fully-connected) que contiene 500 nodos, y posteriormente aplicar de nuevo la función de activación ReLU. La última capa densa contiene tantos nodos como salidas se desean obtener, que en este caso serán dos, correspondientes a las dos clases (defecto y no defecto). Posteriormente se aplica el clasificador softmax que se encarga de dar una probabilidad de pertenencia para cada clase. Figura 101. Fragmento de código correspondiente a las capas neuronales 6.1.3 Entrenamiento de la red neuronal Una vez creada la red neuronal el siguiente paso es entrenarla con la base de datos creada para tal efecto. Para realizar el entrenamiento es preciso disponer del código que se encargará de esa tarea. El código propuesto permite entrenar la red a partir de una base de datos proporcionada por el usuario, obteniendo una gráfica que relaciona la pérdida y la precisión durante el entrenamiento. Puesto que el objetivo del documento no es explicar cada línea de código de forma exhaustiva, se hará hincapié en aquellas partes más relevantes para su comprensión general (Figura 102 y Figura 104). Para empezar el entrenamiento de cualquier red neuronal es necesario inicializar los valores para los siguientes parámetros: • Epochs: hace referencia al número de veces que la red trabaja toda el conjunto de datos. Valores muy altos provocan un entrenamiento lento y en ocasiones puede resultar en un sobreentrenamiento de la red. Un valor de partida puede ser 25. • Learning rate: hace referencia al tamaño del escalón en cada iteración para encontrar el mínimo de la función de pérdida. Valores típicos son 0.1, 0.01 o 0.001.
CAPÍTULO 6: APLICACIÓN DE DEEP LEARNING EN LA DETECCIÓN 96 Detección de defectología mediante visión artificial Figura 113. Clasificación positiva de imágenes positivas 6.1.5.2 Segundo entrenamiento A la vista de los resultados anteriores, se ha decidido modificar el entrenamiento de la red utilizando los fragmentos de imágenes en su tamaño original. Además, en este nuevo entrenamiento se ha reducido el tamaño del conjunto de entrenamiento a 225 imágenes para cada tipo, dejando 75 imágenes escogidas aleatoriamente para formar un nuevo conjunto de evaluación. En la Figura 114 se muestra el resultado de los dos entrenamientos de forma comparativa. A primera vista parece que el segundo entrenamiento es más efectivo que el primero, por lo que estandarizar las imágenes no ha dado los resultados esperados. Figura 114. Comparativa entre los entrenamientos La Tabla 13 muestra los resultados obtenidos utilizando el nuevo conjunto de evaluación que dispone de 75 imágenes distintas a las originales para cada caso. Tabla 13. Resultados de clasificación (segundo entrenamiento) con el segundo conjunto de evaluación Positivas Negativas Total Defectos 75 0 75 No defectos 1 74 75 Total 76 74 150 El rendimiento del clasificador se puede observar en la Tabla 14. Se aprecia que los resultados son mejores en comparación con el primer entrenamiento. En el conjunto total de la prueba, solo se ha realizado una detección incorrecta que se corresponde con la clasificación de una imagen negativa como positiva.
CAPÍTULO 6: APLICACIÓN DE DEEP LEARNING EN LA DETECCIÓN Detección de defectología mediante visión artificial 97 Tabla 14. Rendimiento de clasificación (segundo entrenamiento) con el segundo conjunto de evaluación Precision Recall Specificity Miss rate False alarm 99% 100% 99% 0% 1% Para poder comparar los resultados con los obtenidos en el primer caso, ahora se utiliza el mismo conjunto de evaluación utilizado anteriormente, obteniendo la Tabla 15. Tabla 15. Resultados de clasificación (segundo entrenamiento) con el primer conjunto de evaluación Positivas Negativas Total Defectos 69 1 70 No defectos 2 68 70 Total 71 69 140 A raíz de estos resultados (Tabla 16), se observa que con este nuevo entrenamiento se ha reducido en gran parte el error producido durante la clasificación de imágenes positivas. En este caso solamente una de las imágenes ha sido clasificada incorrectamente. Las dos imágenes negativas que se habían clasificado antes incorrectamente siguen siendo clasificadas como positivas. Tabla 16. Rendimiento de clasificación (segundo entrenamiento) con el primer conjunto de evaluación Precision Recall Specificity Miss rate False alarm 97% 99% 97% 1% 3% En la Figura 115 se muestra el error de clasificación para la imagen positiva antes mencionada. Figura 115. Clasificación negativa de imágenes positivas (segundo entrenamiento) Las dos clasificaciones erróneas para el conjunto de imágenes negativas se vuelven a mostrar en la Figura 116. Figura 116. Clasificación positiva de imágenes positivas (segundo entrenamiento)
CAPÍTULO 6: APLICACIÓN DE DEEP LEARNING EN LA DETECCIÓN 98 Detección de defectología mediante visión artificial 6.2 CONCLUSIONES DEL CAPÍTULO El desarrollo realizado en esta capítulo supone una base para el posible desarrollo de un algoritmo basado en Deep Learning mucho más complejo y sofisticado. A raíz de los resultados obtenidos, se observa que, pese a la utilización de una red neuronal convolucional muy simple, la utilización de algoritmos basados en este campo resulta muy prometedora. Aunque la comparación con aquellos resultados obtenidos en el capítulo 4 no tiene realmente un sentido práctico debido a las grandes diferencias entre ambos algoritmos, se puede observar que se ha conseguido mejorar sustancialmente la precisión de la clasificación. Para el caso de aplicación de este algoritmo de forma complementaria al ensayo de líquidos penetrantes, no se tiene la capacidad de clasificar los defectos puesto que las indicaciones proporcionadas son muy similares entre sí. En el caso de la aplicación del Deep Learning en la detección de defectos en piezas sin ensayar, sería posible diseñar una red neuronal mucho más profunda y compleja partiendo del desarrollo propuesto, capaz de clasificar varios tipos de defectos, siendo necesaria una base de datos compleja que contenga de forma diferenciada dichos defectos. Además, el desarrollo lógico en este caso sería diseñar un algoritmo basado en la detección de objetos, un algoritmo mucho más complejo que además de clasificar los defectos en las distintas clases sería capaz de localizarlos en la pieza. Este algoritmo requiere también una base de datos completa de los defectos, con numerosas imágenes en las que estén etiquetados y localizados los posibles defectos susceptibles de aparecer. Como se ha mencionado, una de las mayores limitaciones durante el desarrollo de este algoritmo ha sido no disponer de una base de datos completamente robusta. Además, su obtención ha supuesto un trabajo muy tedioso por lo que la aplicación de este algoritmo en la detección de defectos en las piezas sin ensayar se ha tenido que descartar por falta de recursos.
CAPÍTULO 7: CONCLUSIONES Y LÍNEAS FUTURAS Detección de defectología mediante visión artificial 99 CAPÍTULO 7: CONCLUSIONES Y LÍNEAS FUTURAS El desarrollo del proyecto y el posterior análisis de los resultados del apartado anterior, permiten llegar a una serie de conclusiones que se presentan en este capítulo. Además, se proponen una serie de líneas futuras tomando como base lo desarrollado en este documento. 7.1 CONCLUSIONES De manera principal, se ha logrado alcanzar el objetivo principal del proyecto, mostrando la posibilidad de aplicar tanto la visión artificial como el Deep Learning en la problemática presentada. Con ello, se sientan unas bases de conocimiento que permiten seguir avanzando en el desarrollo de multitud de aplicaciones similares. 7.1.1 Conclusiones generales En relación con los objetivos planteados en el primer capítulo del documento, se han llegado a las siguientes conclusiones: La técnica de laser cladding supone una buena solución para la obtención de recubrimientos, pero requiere tener gran cuidado y control durante su aplicación, para permitir la correcta solidificación del metal y evitar dentro de lo posible la aparición de grietas y poros. Los ensayos no destructivos se muestran como una importante herramienta de prevención de accidentes y mantenimiento de la calidad y son imprescindibles en multitud de sectores. Su mayor desventaja es el tiempo requerido para la inspección y la alta experiencia previa que se debe poseer para realizar el ensayo correctamente. La inspección visual continúa estando presente en cualquiera de los ensayos y se ve mejorada con la aplicación de tecnologías más avanzadas como la visión artificial. La aplicación de líquidos penetrantes permite observar fácilmente los defectos superficiales de las piezas, pero en ocasiones puede llegar a ser confuso si existen zonas con muchos defectos concentrados. La visión artificial es un campo en continua mejora, cuyos algoritmos son cada vez más complejos y preciosos. En cuanto al Deep Learning, se muestra como el camino a seguir en el desarrollo de aplicaciones de reconocimiento y clasificación de objetos. La aplicación de esta tecnología ha permitido mejorar los resultados de forma notable y deja la puerta abierta al desarrollo de aplicaciones más complejas y que permitan resolver multitud de problemas. En el documento, se ha mostrado el desarrollo de tres alternativas distintas, con sus propias ventajas y limitaciones. • El algoritmo propuesto para realizar la detección de las indicaciones proporcionadas por el ensayo de líquidos penetrantes se muestra como una solución válida para imágenes de buena calidad y que presenten indicaciones de forma clara, permitiendo aproximar las dimensiones de los defectos localizados.
CAPÍTULO 7: CONCLUSIONES Y LÍNEAS FUTURAS 100 Detección de defectología mediante visión artificial • La detección de defectos directamente sobre las piezas se ha mostrado como una alternativa completamente válida, pero que requiere de reducir al máximo las excitaciones externas de las imágenes obtenidas, ya sea modificando el proceso de captura o realizando un tratamiento previo a las piezas, para obtener llevar a cabo la ejecución. Además, la aplicación de este algoritmo permite diseñar un proceso de evaluación a través del análisis del histograma de aparición de defectos. • El algoritmo de clasificación se ha presentado como el camino a seguir, sentando unas bases para el desarrollo de un posible detector, que permita localizar y clasificador las indicaciones. 7.1.2 Conclusiones particulares A raíz de todo el desarrollo seguido, de los resultados obtenidos y de las conclusiones planteadas, es posible destacar unas conclusiones más particulares: • La adquisición de la imagen es un punto fundamental en el proceso de inspección de defectos. Es muy importante disponer de buenas condiciones de iluminación, evitando la aparición de brillos y sombras que puedan dificultar el proceso de tratamiento posterior de las imágenes. En el proyecto no se ha desarrollado directamente esta parte, pero sería conveniente pararse en ella para futuros desarrollos. • La utilización del algoritmo de detección de defectos es un buen punto de partida para realizar la inspección de piezas, pero está muy limitado a la buena visibilidad de las indicaciones o los defectos en las imágenes. Un factor muy limitante es que no permite su distinción. • La aplicación de los algoritmos de detección directamente en las piezas requiere de un tratamiento previo para la eliminación de brillos. La solución propuesta tras la aplicación del aerosol se muestra como una alternativa válida, pero sería conveniente desarrollar este aspecto en más profundidad, analizando otros posibles métodos para reducir el brillo o modificando el proceso de captura de las imágenes. • Los algoritmos de clasificación de muestran como una buena alternativa y como base de un algoritmo más complejo. Las redes neuronales convolucionales han demostrado ser una solución con un elevado potencial para el desarrollo de algoritmos de detección y clasificación. Mediante la utilización de una red más compleja y una base de datos completa se podría dotar al algoritmo desarrollado de la capacidad de localizar los defectos, consiguiendo una herramienta muy robusta en este ámbito. • Por último, es vital disponer de una completa base de datos con todos los defectos susceptibles de aparecer en la pieza, puesto que es el punto de partida para realizar el correcto entrenamiento del algoritmo. La disponibilidad de esta base de datos permitiría desarrollar el algoritmo de clasificación para el caso de la detección de defectos en bruto.
CAPÍTULO 7: CONCLUSIONES Y LÍNEAS FUTURAS Detección de defectología mediante visión artificial 101 7.2 LÍNEAS FUTURAS El presente proyecto sienta las bases para el desarrollo de un sistema automático de detección de defectología, centrándose en unas posibles líneas de mejora, algunas muy relacionadas con las conclusiones anteriores: 1) Diseño e implantación de un sistema automático de detección Sería altamente interesante realizar un prototipo del sistema de detección de defectos a través del diseño de una estructura dispuesta con una cámara, sensores, CPU y demás sistemas necesarios. Este dispositivo permitiría realizar pruebas en tiempo real, permitiendo escoger la mejor posición de adquisición de la imagen, la iluminación de la escena y otros factores que no es posible controlar con la simple toma de imágenes. Además, sería posible realizar ajustes en el algoritmo utilizado de forma directa, analizando los resultados obtenidos. 2) Creación de una base de datos completa Una de las mayores limitaciones de este trabajo ha sido no disponer de suficientes imágenes que permitiesen distinguir cada tipo de defecto. Disponer de una base de datos completa con muestras de cada defecto es de suma importancia puesto que permitiría desarrollar algoritmos más completos. 3) Desarrollo de un algoritmo basado en la detección de objetos Ya se ha mencionado que existe un tercer tipo de algoritmo, muy relacionado con el algoritmo de clasificación. A través de la base de datos mencionada, sería posible entrenar una red neuronal más compleja y combinar la clasificación de defectos con un algoritmo capaz de localizarlos en la pieza. Esta opción supondría un algoritmo más complejo y que se beneficiaría del enfoque mencionado a continuación. 4) Detección y clasificación de defectos en bruto El objetivo final de esta línea de trabajo sería realizar no solo la detección sino también la clasificación de los defectos sin la necesidad de realizar previamente el ensayo por líquidos penetrantes. Ya se ha evaluado la posibilidad de realizar la detección a través de algoritmos de visión artificial, pero sería altamente interesante dotar a los algoritmos de la capacidad de clasificar los distintos defectos de las piezas. Para llegar a desarrollar esta alternativa, es importante disponer de la base de datos mencionada. 5) Mejorar los algoritmos planteados Se ha mostrado cómo a través de la posterior utilización de un histograma de aparición de defectos es posible evaluar de forma rápida y sencilla el estado de las piezas. Este histograma en principio se obtiene de forma manual con la información proporcionada por el algoritmo. Dotar al algoritmo la capacidad de decidir de forma autónoma el estado de las piezas, no sólo mostrando los defectos encontrados, sino también evaluando la gravedad de estos, supondría una valiosa mejora.
CAPÍTULO 7: CONCLUSIONES Y LÍNEAS FUTURAS 102 Detección de defectología mediante visión artificial
REFERENCIAS BIBLIOGRÁFICAS Detección de defectología mediante visión artificial 103 REFERENCIAS BIBLIOGRÁFICAS [1] M. Merklein y J. Lechler, «Investigation of the thermo-mechanical properties of hot stamping steels,» Journal of Materials Processing Technology, vol. 177, nº 1-3, pp. 452-455, 2006. [2] L. Quintino, «Overview of coating technologies,» de Surface Modification by Solid State Processing, Lisbon, Portugal, Woodhead Publishing, 2014, pp. 1-24. [3] Red de Ingeniería de Superficies y Capas Delgadas (INGESNET), «La ingeniería de superficies,» [En línea]. Available: http://www.ingesnet.org/view/view_paginas.php?menu=111&id=62&lang=es. [Último acceso: Marzo 2021]. [4] I. Etxeberria, G. Alberdi y I. Vicario, «Láser “cladding”: novedosa técnica de aporte de material,» 2006. [En línea]. Available: https://www.interempresas.net/MetalMecanica/Articulos/14238-Laser-cladding- novedosa-tecnica-de-aporte-de-material.html. [Último acceso: Abril 2021]. [5] Q. Liu, M. Janardhana, B. Hinton, M. Brandt y K. Sharp, «Laser cladding as a potential repair technology for damaged aircraft components,» International Journal of Structural Integrity, vol. 2, nº 3, pp. 314-331, 2011. [6] I. Tabernero Campos, A. Calleja Ochoa, E. Ukar Arrien y L. N. López de Lacalle Marcaide, «Laser cladding en 5 ejes continuos para la fabricación de piezas de alto valor añadido,» XIX Congreso Nacional de Ingeniería Mecánica. [7] N. Łukasz y W. Marta, «Finishing Surface After Regeneration with Laser Cladding,» Procedia Engineering, vol. 192, pp. 1012-1015, 2017. [8] M. Rombouts, G. Maes, W, Hendrix, E. Delarbre y F. Motmans, «Surface Finish after Laser Metal Deposition,» Physics Procedia, vol. 41, pp. 810-814, 2013. [9] J. J. Candel, V. Amigó, J. Sampedro y V. Bonache, «Evaluación de las transformaciones estructurales en recubrimientos de WC10Ni depositados por laser cladding sobre acero para herramienta EN 12379,» Revista de metalurgia, vol. 47, nº 4, pp. 355-364, 2011. [10] S. D. Sun, R. Mohammed, M. Brandt, G. Clark, Q. Liu y M. Janardhana, «Analysis of defects in laser cladding of high strength steel for aerospace application,» de Incorporating Sustainable Practice in Mechanics and Structures of Materials, 2010. [11] B. Haldar y P. Saha, «Identifying defects and problems in laser cladding and suggestions of some remedies for the same,» Materials Today: Proceedings, vol. 5, nº 5, part 2, pp. 13090-13101, 2018. [12] Asociación Española de Ensayos no Destructivos, «Introducción a los END,» AEND, 2016. [13] A. J. McEvily, «Failures in inspection procedures: case studies,» Engineering Failure Analysis, vol. 11, nº 2, pp. 167-176, 2004. [14] R. S. Lledó, «Apuntes asignatura Tecnología de Materiales de la UMA,» 2013-2014. [En línea]. Available: https://www.raquelserrano.com/apuntes-2/cuarto/tecnologiade-materiales/. [Último acceso: Febrero 2021].
REFERENCIAS BIBLIOGRÁFICAS 104 Detección de defectología mediante visión artificial [15] M. I. Hamakareem, «Liquid Penetrant Test on Concrete: Purpose, Procedure, and Applications,» [En línea]. Available: https://theconstructor.org/practicalguide/liquid-penetrant-test-concrete/9542/. [Último acceso: Abril 2021]. [16] K. Abend, «Fully Automated Dye-Penetrant Inspection of Automotive Parts,» SAE Technical Paper 980739, p. 8, 1998. [17] resnick_halliday, «Líquidos Penetrantes,» [En línea]. Available: https://www.monografias.com/trabajos31/liquidos-penetrantes/liquidospenetrantes.shtml. [Último acceso: Marzo 2021]. [18] H.-H. Chu y Z.-Y. Wang, «A vision-based system for post-welding quality measurement and defect detection,» Int J Adv Manuf Technol, vol. 86, p. 3007– 3014, 2016. [19] L. Song, X. Li, Y. Yang, X. Zhu, Q. Guo y H. Yang, «Detection of Micro-Defects on Metal Screw Surfaces Based on Deep Convolutional Neural Networks,» Sensors, vol. 18, nº 3709, 2018. [20] J. F. Vélez Serrano, A. B. Moreno Díaz, C. Á. Sánchez y J. L. Esteban Sánchez-Marín, Visión por computador, S.L. - DYKINSON, 2003. [21] A. González Marcos, F. J. Martínez de Pisón Ascacíbar, A. V. Pernía Espinoza, F. Alba Elías, M. Castejón Limas, J. Ordieres Meré y E. Vergara González, Técnicas y algoritmos básicos de visión artificial, Universidad de La Rioja, 2006. [22] F. Gómez Rodríguez y M. J. Domínguez Morales, «Fundamentos de la Visión Artificial,» Departamento de Arquitectura y Tecnología de Computadores, Universidad de Sevilla. [23] L. Salgado, «Visión Artificial: Fundamentos y Aplicaciones,» E.T.S. Ingenieros de Telecomunicación, Universidad Politécnica de Madrid, 2007. [24] A. Rosebrock, Deep Learning for Computer Vision with Python, PyImageSearch, 2017. [25] S. Sharma, «Activation Functions in Neural Networks,» Towards Data Science, 6 Septiembre 2017. [En línea]. Available: https://towardsdatascience.com/activationfunctions-neural-networks-1cbd9f8d91d6. [Último acceso: Abril 2021]. [26] S. R. Rath, «Activation Functions in Neural Networks,» Debugger Cafe, 1 Abril 2019. [En línea]. Available: https://debuggercafe.com/activation-functions-in-neural- networks/. [Último acceso: Abril 2021]. [27] S. Barua, F. Liou, J. Newkirk y T. Sparks, «Vision-based defect detection in laser metal deposition process,» Rapid Prototyping Journal, vol. 20, nº 1, pp. 77-85, 2014. [28] J. Sun, C. Li, X.-J. Wu, V. Palade y W. Fang, «An Effective Method of Weld Defect Detection and Classification Based on Machine Vision,» IEEE Transactions on Industrial Informatics, vol. 15, nº 12, pp. 6322-6333, 2019. [29] Y. Min, B. Xiao, J. Dang, B. Yue y T. Cheng, «Real time detection system for rail surface defects based on machine vision,» EURASIP Journal on Image and Video Processing, vol. 2018, nº 3, 2018.
REFERENCIAS BIBLIOGRÁFICAS Detección de defectología mediante visión artificial 105 [30] N. J. Shipway, P. Huthwaite, M. J. S. Lowe y T. J. Barden, «Performance Based Modifications of Random Forest to Perform Automated Defect Detection for Fluorescent Penetrant Inspection,» Journal of Nondestructive Evaluation, vol. 38, nº 37, 2019. [31] Q. Jiang, D. Tan, Y. Li, S. Ji, C. Cai y Q. Zheng, «Object Detection and Classification of Metal Polishing Shaft Surface Defects Based on Convolutional Neural Network Deep Learning,» Applied Sciences, vol. 10, nº 87, 2020. [32] «Sitio web de Python,» [En línea]. Available: https://www.python.org/. [Último acceso: Febrero 2019]. [33] «Sitio web de Anaconda,» [En línea]. Available: https://www.anaconda.com/. [Último acceso: Febrero 2019]. [34] «Sitio web de OpenCV,» [En línea]. Available: https://opencv.org/. [Último acceso: Febrero 2019]. [35] OpenCV, «OpenCV-Python Tutorials,» [En línea]. Available: https://docs.opencv.org/master/d6/d00/tutorial_py_root.html. [Último acceso: Marzo 2021]. [36] GeeksforGeeks, «OpenCV Python Tutorial,» 2021. [En línea]. Available: https://www.geeksforgeeks.org/opencv-python-tutorial/. [Último acceso: Marzo 2021]. [37] TrProgramación, «Blog: Tutor de Programación,» 2017. [En línea]. Available: http://acodigo.blogspot.com/p/tutorial-opencv.html. [Último acceso: Marzo 2021]. [38] A. Rosebrock, «PyImageSearch: Computer Vision, Deep Learning, and OpenCV,» PyImageSearch, 2021. [En línea]. Available: https://www.pyimagesearch.com/. [Último acceso: Marzo 2021]. [39] A. Rosebrock, «OpenCV Tutorial: A Guide to Learn OpenCV,» 19 Julio 2018. [En línea]. Available: https://www.pyimagesearch.com/2018/07/19/opencv-tutorial-a- guide-to-learn-opencv/. [Último acceso: Marzo 2021]. [40] Y. LeCun, L. Bottou, Y. Bengio y P. Haffner, «Gradient-based learning applied to document recognition,» Proceedings of the IEEE, vol. 86, nº 11, pp. 2278-2324, 1998.
ANEXO A: CÓDIGO DEL ALGORITMO DE DETECCIÓN DE DEFECTOS VI Detección de defectología mediante visión artificial
ANEXO A: CÓDIGO DEL ALGORITMO DE DETECCIÓN DE DEFECTOS Detección de defectología mediante visión artificial VII PIEZAS SIN TRATAR ARCHIVO seleccion_operaciones_SINT.py
ANEXO A: CÓDIGO DEL ALGORITMO DE DETECCIÓN DE DEFECTOS VIII Detección de defectología mediante visión artificial PIEZAS TRATADAS ARCHIVO seleccion_operaciones_SIN.py
ANEXO B: CÓDIGO DEL ALGORITMO CLASIFICADOR Detección de defectología mediante visión artificial IX ANEXO B: CÓDIGO DEL ALGORITMO CLASIFICADOR CLASIFICADOR DE IMÁGENES ARCHIVO lenet.py
ANEXO B: CÓDIGO DEL ALGORITMO CLASIFICADOR X Detección de defectología mediante visión artificial ARCHIVO train_LeNet.py
ANEXO B: CÓDIGO DEL ALGORITMO CLASIFICADOR Detección de defectología mediante visión artificial XI
ANEXO B: CÓDIGO DEL ALGORITMO CLASIFICADOR XII Detección de defectología mediante visión artificial ARCHIVO test_network.py
ANEXO B: CÓDIGO DEL ALGORITMO CLASIFICADOR Detección de defectología mediante visión artificial XIII ARCHIVO test_network_auto.py