Trabajo Final
Ingeniería de Sistemas
Facultad de Cs. Exactas – UNICEN
Inspección visual automática
en baldosas con texturas
aleatorias
Lucas Darío Echeverz
Matías Melograno
Dirección: Mg. Lucas Leiva
Año: 2017
i
Resumen
Machine Vision ha ido creciendo a lo largo de los últimos treinta años; nuevas aplicaciones e
investigaciones se han realizado para las diversas áreas que involucra: Clasificación, Manejo de
Materiales, Robótica, Calibración y Control de Calidad. Esta última categoría se basa en la
inspección de imágenes para determinar la calidad de un producto en una línea de producción.
Con la aplicación de Machine Vision, se trata de reemplazar la inspección visual humana por un
sistema automatizado cuyos objetivos principales son poseer, al menos, la misma eficiencia,
realizar el proceso en menores tiempos y disminuir potenciales errores causados por la fatiga o
subjetividad de dicha inspección.
El siguiente trabajo tiene como objetivo principal efectuar la detección de defectos sobre
baldosas, de manera que pueda identificar errores como blobs (gotas), cracks (rayaduras),
pinholes (agujeros), esquinas, dimensión y bordes. Para ello se procederá a crear un prototipo, el
cual deberá ser capaz de realizar la detección en una línea de producción sin afectar el tiempo de
la misma.
El trabajo incluye un análisis y descripción de las técnicas a utilizar, investigaciones previas y
desarrollo de un conjunto de algoritmos capaces de efectuar la identificación de los defectos
mencionados. Involucra también un proceso de captura, donde se detalla el ambiente creado y
explicación detallada de cada uno de los algoritmos que forman parte del prototipo. Finalmente,
se mostrará una serie de resultados que se podrán visualizar a través de gráficos y tablas. Los
mismos serán comparados con las investigaciones previas en cuanto a performance y eficiencia,
de tal manera que se pueda elaborar una conclusión con respecto a este trabajo.
Para realizar todo esto se tuvo una muestra de baldosas, la cual permitió obtener las imágenes
de las mismas para ser procesadas por la aplicación, comparar resultados, obtener estadísticas,
evaluar la performance de la detección y su eficiencia. Por último, se realiza una conclusión
junto con los aspectos que se podrían considerar en el futuro para seguir añadiendo
características o mejoras al prototipo creado.
ii
iii
Agradecimientos
A nuestro director que nos ha guiado en la realización de este proyecto y ha tenido la paciencia
de seguir con el mismo a pesar de todos los acontecimientos ocurridos.
A nuestros padres que nos han enseñado lo importante que es la educación, los valores como
personas y han hecho el sacrificio enorme para brindarnos la posibilidad de estudiar esta carrera.
A nuestros hermanos que nos han apoyado y acompañado con todo lo que estuvo al alcance de
sus manos.
A nuestros amigos que desde cualquier lugar donde están siempre han demostrado interés y nos
han incentivado en cumplir nuestros objetivos.
Lucas Echeverz / Matías Melograno
A Gisele, mi compañera de vida, por su constante apoyo, por ser el sostén en aquellos instantes
donde este momento parecía lejano e inalcanzable y por ser el motor en los peores momentos.
A mis "padres políticos" y cuñados, quienes siempre estuvieron presentes en este largo camino.
Lucas Echeverz
iv
v
Índice General
Capítulo 1 Introducción ................................................................................................................. 1
2. Motivación ........................................................................................................................................... 1
3. Objetivos .............................................................................................................................................. 2
4. Organización ........................................................................................................................................ 3
Capítulo 2 Estado del arte .............................................................................................................. 4
2.1 Machine Vision .................................................................................................................................. 4
2.1.1 Marco Histórico .......................................................................................................................................... 8
2.1.2 Procesamiento de Imágenes ....................................................................................................................... 9
2.1.2.1 Captura o adquisición de imágenes ................................................................................................. 10
2.1.2.2 Pre-procesamiento ............................................................................................................................. 15
2.1.2. 3 Segmentación .................................................................................................................................... 18
2.1.2.3 Extracción de características ............................................................................................................ 19
2.1.2.4 Identificación de objetos ................................................................................................................... 20
2.1.3 Características del hardware................................................................................................................... 21
2.1.3.1 Visualización de imágenes ................................................................................................................ 21
2.1.3.2 Memoria ............................................................................................................................................. 22
2.1.3.3 Velocidad de transferencia ............................................................................................................... 22
2.1.3.4 Velocidad de procesamiento ............................................................................................................. 22
2.2 Sistemas de Machine Vision en producción de baldosas ............................................................. 24
2.2.1 Defectos de superficies en Baldosas ........................................................................................................ 25
2.3 Técnicas de detección de fallas de superficie en baldosas ............................................................ 27
2.4 Sistemas comerciales de clasificación de baldosas ....................................................................... 31
2.4.1 Flawmaster ................................................................................................................................................ 31
2.4.2 Processmaster ........................................................................................................................................... 32
Capítulo 3 Desarrollo ................................................................................................................... 33
3.1 Entorno de desarrollo seleccionado ............................................................................................... 33
3.2 Ambiente de captura propuesto ..................................................................................................... 34
3.2.1 Iluminación ............................................................................................................................................... 36
3.3 Desarrollo de la aplicación ............................................................................................................. 39
3.3.1 Algoritmo de detección de bordes, esquinas y dimensión ..................................................................... 39
3.3.1.1 Ejecución del algoritmo .................................................................................................................... 45
3.3.1.2 Pseudocódigo ..................................................................................................................................... 46
3.3.2 Algoritmo para la detección de blobs (gotas) ......................................................................................... 48
3.3.2.1 Ejecución del algoritmo .................................................................................................................... 51
3.3.2.2 Pseudocódigo ..................................................................................................................................... 52
3.3.3 Algoritmo para la detección de Pinhole .................................................................................................. 53
3.3.3.1 Ejecución del algoritmo .................................................................................................................... 55
3.3.3.2 Pseudocódigo ..................................................................................................................................... 56
3.3.4 Algoritmo para la detección de cracks (rayaduras) .............................................................................. 57
vi
3.3.4.1 Ejecución del algoritmo .................................................................................................................... 60
3.3.4.2 Pseudocódigo ..................................................................................................................................... 61
3.4 Mecanismo de ejecución y clasificación de baldosas .................................................................... 62
Capítulo 4 Resultados Experimentales ....................................................................................... 63
4.1 Descripción del conjunto de test .................................................................................................... 63
4.1.1 Descripción de la captura de imágenes ................................................................................................... 63
4.1.2 Descripción del conjunto de pruebas ...................................................................................................... 65
4.2 Evaluación de los métodos propuestos .......................................................................................... 68
4.2.1 Identificación de defectos de bordes ....................................................................................................... 68
4.2.2 Identificación de defectos en esquinas .................................................................................................... 69
4.2.3 Verificación de la dimensión de la muestra ............................................................................................ 72
4.2.4 Identificación de Blobs ............................................................................................................................. 74
4.2.5 Identificación de pinhole .......................................................................................................................... 76
4.2.6 Cracks ........................................................................................................................................................ 79
4.3 Evaluación de la performance de los métodos propuestos .......................................................... 82
4.3.1 Hardware .................................................................................................................................................. 82
4.3.2 Resolución ................................................................................................................................................. 82
4.3.3 Performance de la detección .................................................................................................................... 82
4.4 Análisis basado en resoluciones de imágenes ................................................................................ 86
4.5 Evaluación adicional ....................................................................................................................... 89
4.6 Análisis de resultados obtenidos .................................................................................................... 91
Capítulo 5 Conclusiones .............................................................................................................. 92
5.1 Trabajos futuros .............................................................................................................................. 92
5.2 Conclusiones .................................................................................................................................... 93
Apéndice ....................................................................................................................................... 94
Manual de Usuario ................................................................................................................................ 94
Especificaciones técnicas ................................................................................................................................... 94
Instalador completo ........................................................................................................................................... 95
Guía de instalación ........................................................................................................................................ 95
Ejecutable solamente ......................................................................................................................................... 98
Ejecución ................................................................................................................................................ 98
Referencias ................................................................................................................................. 100
vii
viii
Lista de Figuras FIG. 1 BALDOSAS DE TEXTURA ALEATORIA. ................................................................................................................. 2
FIG. 2 CLASIFICACIÓN DE MANZANAS DE ACUERDO A SU GRADO. ................................................................................. 5
FIG. 3 LYNXX OPTICAL PARTICLE ANALYZER. ............................................................................................................. 6
FIG. 4 PROCESO INDUSTRIAL EN LA FABRICACIÓN DE VEHÍCULOS QUE INCLUYE EL USO DE LA ROBÓTICA. .................. 6
FIG. 5 DISPOSITIVO MARS PATHFINDER DESARROLLADO POR LA NASA. ..................................................................... 7
FIG. 6 COMPARACIÓN ENTRE UN SENSOR CCD Y CMOS ............................................................................................ 13
FIG. 7 LINE SCAN CAMERA. ......................................................................................................................................... 14
FIG. 8 AREA SCAN CAMERA. ....................................................................................................................................... 14
FIG. 9 IMAGEN EN COLOR Y BLANCO Y NEGRO. ........................................................................................................... 15
FIG. 10 ECUALIZACIÓN DEL HISTOGRAMA APLICADA SOBRE IMAGEN. ........................................................................ 16
FIG. 11 APLICACIÓN DE OPERADOR ESTADÍSTICO SOBRE UNA IMAGEN. ...................................................................... 17
FIG. 12 APLICACIÓN DE EROSIÓN. ............................................................................................................................... 17
FIG. 13 APLICACIÓN DE DILATACIÓN. ......................................................................................................................... 18
FIG. 14 APLICACIÓN HEURISKO® ................................................................................................................................ 21
FIG. 15 COMPARACIÓN CLOCK RATE. .......................................................................................................................... 23
FIG. 16 COMPARACIÓN ENTRE PENTIUM I Y PENTIUM IV DE OPERACIONES. ............................................................... 24
FIG. 17 BALDOSAS DE TEXTURA ALEATORIA. ............................................................................................................. 25
FIG. 18 TÉCNICAS DE DETECCIÓN DE FALLAS. ............................................................................................................. 28
FIG. 19 APLICACIÓN DE THRESHOLD. .......................................................................................................................... 28
FIG. 20 APLICACIÓN DE LOCAL STANDARD DEVIATION ............................................................................................. 29
FIG. 21 DILATACIÓN. .................................................................................................................................................. 29
FIG. 22 EROSIÓN. ........................................................................................................................................................ 29
FIG. 23 APLICACIÓN DE HARRIS-STEPHENS. ............................................................................................................... 30
FIG. 24 ETIQUETADO DE ELEMENTOS DE UNA IMAGEN. ............................................................................................... 30
FIG. 25 FLAWMASTER. ................................................................................................................................................ 31
FIG. 26 PROCESSMASTER. ........................................................................................................................................... 32
FIG. 27 PRODUCTOS QUE OFRECE MATLAB. ................................................................................................................ 33
FIG. 28 LISTADO DE COMPLEMENTOS QUE SE PUEDEN INSTALAR JUNTO CON MATLAB. ........................................... 34
FIG. 29 AMBIENTE DE CAPTURA. ................................................................................................................................. 35
FIG. 30 MARKETPLACE WIRELESSMOBILEUTILITY .................................................................................................... 36
FIG. 31 CAPTURA CON HAZ DE LUZ A LA IZQUIERDA. .................................................................................................. 37
FIG. 32 EJEMPLO PRIMER CAPTURA BALDOSA UNIFORME. .......................................................................................... 38
FIG. 33 EJEMPLO SEGUNDA CAPTURA BALDOSA UNIFORME. ....................................................................................... 38
FIG. 34 EJEMPLO TERCER CAPTURA BALDOSA UNIFORME. .......................................................................................... 38
FIG. 35 CAPTURA DE PANTALLA DE LA INTERFAZ DE LA APLICACIÓN. ........................................................................ 39
FIG. 36 CONVERSIÓN DE IMAGEN A ESCALA DE GRISES. .............................................................................................. 40
FIG. 37 APLICACIÓN DE PREWITT. .............................................................................................................................. 40
FIG. 38 USO DE REGIONPROPS PARA OBTENER EL BORDE DE LA BALDOSA. ................................................................. 41
FIG. 39 APLICACIÓN DE HARRIS-STEPHENS PARA LA DETECCIÓN DE CORNERS. ......................................................... 41
FIG. 40 ELIMINACIÓN DE ELEMENTOS QUE NO SE CONSIDERAN BORDES. .................................................................... 43
FIG. 41 FINAL DE EJECUCIÓN DE DETECCIÓN DE ESQUINAS. ........................................................................................ 43
FIG. 42 EJEMPLO DE DETECCIÓN DE ERROR EN BORDES. ............................................................................................. 44
FIG. 43 ACERCAMIENTO DE ZOOM SOBRE UN BORDE CON DEFECTO DETECTADO. ....................................................... 44
FIG. 44 OPERACIONES REALIZADAS PARA BORDES, ESQUINAS Y DIMENSIÓN. ............................................................. 45
ix
FIG. 45 PRIMER ENFOQUE PARA DETECCIÓN DE GOTAS. .............................................................................................. 48
FIG. 46 CÁLCULO REDONDEZ DE LOS ELEMENTOS. ..................................................................................................... 49
FIG. 47 CÁLCULO DE REDONDEZ CON NUEVA PARAMETRIZACIÓN DE DISK. ................................................................ 50
FIG. 48 EJEMPLO RESULTADO FINAL DE LA DETECCIÓN DE GOTAS. ............................................................................. 50
FIG. 49 OPERACIONES REALIZADAS PARA LA DETECCIÓN DE BLOBS (GOTAS). ............................................................ 51
FIG. 50 EJEMPLO DE PINHOLE EN BALDOSA. ................................................................................................................ 53
FIG. 51 CÁLCULO DE REDONDEZ PARA PINHOLE. ........................................................................................................ 54
FIG. 52 EJEMPLO DE DETECCIÓN DE PINHOLE. ............................................................................................................. 54
FIG. 53 OPERACIONES REALIZADAS PARA LA DETECCIÓN DE PINHOLES. ..................................................................... 55
FIG. 54 EJEMPLO DE BALDOSA CON RAYADURAS. ....................................................................................................... 57
FIG. 55 EJEMPLO EJECUCIÓN DE CANNY. .................................................................................................................... 58
FIG. 56 APLICACIÓN DE HOUGH TRANSFORM. ............................................................................................................ 58
FIG. 57 MUESTRA DE ELEMENTOS DETECTADOS LUEGO DE APLICAR STDFILT. ............................................................ 59
FIG. 58 EJEMPLO DE DETECCIÓN DE RAYADURAS. ...................................................................................................... 59
FIG. 59 OPERACIONES REALIZADAS PARA LA DETECCIÓN DE CRACKS (RAYADURAS). ................................................ 60
FIG. 60 DIAGRAMA DE EJECUCIÓN. ............................................................................................................................. 62
FIG. 61 CÁMARA MICRON. .......................................................................................................................................... 63
FIG. 62 CÁMARA NIKON COOLPIX. ............................................................................................................................. 64
FIG. 63 ESPECIFICACIONES DE CÁMARA. ..................................................................................................................... 64
FIG. 64 TABLERO PARA LA CAPTURA DE BALDOSAS. ................................................................................................... 64
FIG. 65 FÁBRICA LOIMAR. .......................................................................................................................................... 65
FIG. 66 BALDOSAS. ..................................................................................................................................................... 65
FIG. 67 BALDOSA ESMALTADA. .................................................................................................................................. 66
FIG. 68 BALDOSA SIN ESMALTE. ................................................................................................................................. 66
FIG. 69 CLASIFICACIÓN DE BALDOSAS DE ACUERDO A SU DEFECTO. ........................................................................... 67
FIG. 70 RESULTADO DETECCIÓN DE BORDES. .............................................................................................................. 68
FIG. 71 DETECCIÓN DE BORDES. ................................................................................................................................. 69
FIG. 72 RESULTADO DETECCIÓN DE ESQUINAS. ........................................................................................................... 69
FIG. 73 PANTALLA DE DETECCIÓN DE ERRORES EN ESQUINAS. .................................................................................... 70
FIG. 74 ESQUINA SUPERIOR DERECHA FALTANTE. ....................................................................................................... 70
FIG. 75 ESQUINA SUPERIOR IZQUIERDA FALTANTE. .................................................................................................... 70
FIG. 76 ESQUINA INFERIOR IZQUIERDA FALTANTE. ..................................................................................................... 71
FIG. 77 ESQUINA INFERIOR DERECHA FALTANTE. ....................................................................................................... 71
FIG. 78 RESULTADO VERIFICACIÓN DE DIMENSIÓN. .................................................................................................... 72
FIG. 79 DIMENSIÓN: 5.264.225 PÍXELES. ..................................................................................................................... 73
FIG. 80 DIMENSIÓN: 4.446.624 PÍXELES. ..................................................................................................................... 73
FIG. 81 DIMENSIÓN: 6.793.920 PÍXELES. ..................................................................................................................... 73
FIG. 82 DIMENSIÓN: 6.936.192 PÍXELES. ..................................................................................................................... 73
FIG. 83 PANTALLA SIN DETECCIÓN DE ERRORES. ........................................................................................................ 73
FIG. 84 PANTALLA DETECTANDO ERROR DE DIMENSIÓN. ............................................................................................ 74
FIG. 85 RESULTADO DETECCIÓN DE BLOBS. ................................................................................................................ 74
FIG. 86 “THE NUMBER OF BLOBS IS 2.” ....................................................................................................................... 75
FIG. 87 “THE NUMBER OF BLOBS IS 2.” ....................................................................................................................... 75
FIG. 88 “THE NUMBER OF BLOBS IS 3.” ....................................................................................................................... 75
FIG. 89 “THE NUMBER OF BLOBS IS 2.” ....................................................................................................................... 75
FIG. 90 “THE NUMBER OF BLOBS IS 1.” ....................................................................................................................... 76
FIG. 91 “THE NUMBER OF BLOBS IS 1.” ....................................................................................................................... 76
FIG. 92 RESULTADO DETECCIÓN DE PINHOLE. ............................................................................................................. 76
FIG. 93 “NO ERRORS FOUND ON THIS TILE.” ................................................................................................................ 77
x
FIG. 94 “THE NUMBER OF PINHOLES IS 1.” .................................................................................................................. 77
FIG. 95 “THE NUMBER OF PINHOLES IS 1.” .................................................................................................................. 77
FIG. 96 “THE NUMBER OF PINHOLES IS 1.” .................................................................................................................. 77
FIG. 97 “THE NUMBER OF PINHOLES IS 1.” .................................................................................................................. 78
FIG. 98 RESULTADO DE DETECCIÓN DE CRACKS.......................................................................................................... 79
FIG. 99 “THE NUMBER OF CRACKS IS 3.” ..................................................................................................................... 80
FIG. 100 “THE NUMBER OF CRACKS IS 3.” ................................................................................................................... 80
FIG. 101 “THE NUMBER OF CRACKS IS 11.” ................................................................................................................. 80
FIG. 102 “THE NUMBER OF CRACKS IS 2.” ................................................................................................................... 80
FIG. 103 “THE NUMBER OF CRACKS IS 4.” ................................................................................................................... 81
FIG. 104 “THE NUMBER OF CRACKS IS 3.” ................................................................................................................... 81
FIG. 105 DETECCIÓN DE CRACK EN PINHOLE. .............................................................................................................. 81
FIG. 106 COMPARATIVA EFICIENCIA DIVERSOS ESTUDIOS. .......................................................................................... 84
FIG. 107 COMPARATIVA PERFORMANCE DIVERSOS ESTUDIOS. .................................................................................... 85
FIG. 108 DETECCIÓN DE CRACKS EN RESOLUCIÓN MÁS CHICA. ................................................................................... 86
FIG. 109 PARAMETRIZACIÓN PARA RESOLUCIÓN 1700 X 1275. ................................................................................... 87
FIG. 110 MUESTRA CERÁMICOS. ................................................................................................................................. 89
FIG. 111 PANTALLA DETECCIÓN ERROR EN CERÁMICO. .............................................................................................. 89
FIG. 112 DETECCIÓN ESQUINAS EN CERÁMICO. ........................................................................................................... 90
FIG. 113 DETECCIÓN ERROR EN BORDE PARA UN CERÁMICO. ...................................................................................... 90
FIG. 114 DETECCIÓN DE PINHOLE EN CERÁMICO. ........................................................................................................ 90
FIG. 115 DETECCIÓN DE BLOBS EN CERÁMICO. ........................................................................................................... 90
FIG. 116 TIPO DE APLICACIÓN. .................................................................................................................................... 94
FIG. 117 INSTALADOR COMPLETO. .............................................................................................................................. 95
FIG. 118 INSTALACIÓN PANTALLA 1. .......................................................................................................................... 95
FIG. 119 INSTALACIÓN PANTALLA 2. .......................................................................................................................... 96
FIG. 120 INSTALACIÓN PANTALLA 3. .......................................................................................................................... 96
FIG. 121 INSTALACIÓN PANTALLA 4. .......................................................................................................................... 97
FIG. 122 INSTALACIÓN PANTALLA 5. .......................................................................................................................... 97
FIG. 123 EJECUTABLE CON MATLAB INSTALADO. ....................................................................................................... 98
FIG. 124 PANTALLA DEL EJECUTABLE. ........................................................................................................................ 98
FIG. 125 PANTALLA EJECUCIÓN. ................................................................................................................................. 99
FIG. 126 PANTALLA DE ACCIONES. ............................................................................................................................. 99
xi
xii
Lista de Tablas TABLA 1 NIVEL DE ABSTRACCIÓN EN EL PROCESAMIENTO DE IMÁGENES. .................................................................. 10
TABLA 2 CUADRO COMPARATIVO ENTRE UN SISTEMA DE MACHINE VISION Y LA VISIÓN HUMANA. ......................... 12
TABLA 3 COMPARATIVA ENTRE SENSORES CCD Y CMOS. ........................................................................................ 12
TABLA 4 TIPOS DE DEFECTOS. ..................................................................................................................................... 27
TABLA 5 PSEUDOCÓDIGO DE DETECCIÓN DE ESQUINAS, BORDES Y DIMENSIÓN. ......................................................... 47
TABLA 6 PSEUDOCÓDIGO DE DETECCIÓN DE BLOBS. ................................................................................................... 52
TABLA 7 PSEUDOCÓDIGO PARA LA DETECCIÓN DE PINHOLES. .................................................................................... 56
TABLA 8 PSEUDOCÓDIGO DE DETECCIÓN DE CRACKS. ................................................................................................ 61
TABLA 9 COMPARACIÓN ENTRE PINHOLE NO DETECTADO Y DETECTADO. .................................................................. 78
TABLA 10 PROMEDIO DE TIEMPOS DE CADA ALGORITMO EN DIFERENTES COMPUTADORAS. ....................................... 83
TABLA 11 EJECUCIÓN PROMEDIO DE TODOS LOS ALGORITMOS. .................................................................................. 83
TABLA 12 COMPARATIVA DETECCIÓN DE ERRORES EN BORDES, DIMENSIÓN Y ESQUINAS........................................... 85
TABLA 13 COMPARATIVA DETECCIÓN EN DIFERENTES RESOLUCIONES. ...................................................................... 86
TABLA 14 PERFORMANCE PARA CONFIGURACIÓN EN DISTINTAS RESOLUCIONES. ....................................................... 88
1
Capítulo 1
Introducción
La calidad del producto final define el futuro de una empresa. Sólo una inspección objetiva y
estricta puede prometer la mejor calidad de producto, evitando de esta manera que productos
defectuosos lleguen a las manos de los clientes [1].
Las técnicas de inspección automática (Machine Vision) [2] [3] [4] son métodos utilizados para
analizar productos prescindiendo de la interacción humana con los mismos. Su objetivo es la
recolección de información necesaria que permita determinar si el producto se encuentra dentro
de los parámetros correctos utilizando su base de conocimiento. Esta técnica permite la
inspección en tiempo real de la totalidad de los productos producidos, lo cual representa una
ventaja ampliamente superior a la realización por muestreo parcial.
El término Machine Vision describe un gran número de sistemas de visión que son utilizados
en el procesamiento automatizado. En general son utilizados para el procesamiento automático,
análisis y comprensión de imágenes en ambientes industriales.
Según los estudios anuales de la AIA (Automated Imaging Association) [5], el mercado global
de este tipo de sistemas se encuentra en continuo crecimiento, tanto en componentes, como en
cámaras inteligentes y sistemas de Machine Vision de aplicación específica.
Existen ciertos aspectos que se deben tener en cuenta durante la implementación de un sistema
de Machine Vision. Estos aspectos determinan el éxito de la implementación del sistema y están
compuestos por la justificación de la aplicación, las consideraciones sistemáticas en la eficiencia
y performance del sistema (considerando el análisis de posibilidad de integración, robustez,
facilidad de uso y la capacidad de incluir inteligencia), la adecuación a las condiciones
ambientales existentes, la adquisición de imágenes (teniendo en cuenta el tamaño mínimo de
defecto y la dimensión del objeto), el throughput de la línea de producción, las técnicas de
preprocesamiento de imágenes y el estudio de opciones en cuanto al análisis de imágenes.
2. Motivación El Control de Calidad en la fabricación de baldosas es una tarea difícil que se realiza en un
entorno que, generalmente, no es el adecuado. Los operarios son sometidos a altos niveles de
ruidos, polvo, temperaturas extremas, entre otros. Este proceso de control es uno de los pocos en
el que participan operadores humanos ya que la mayor parte se encuentra automatizada [6] [7].
Consiste principalmente en encontrar defectos que puedan clasificar al producto en diversas
categorías.
El producto sobre el cual se basará la investigación son baldosas de texturas aleatorias. Esto
quiere decir que no existirán patrones repetidos entre cada una de ellas, como sí suelen
presentarse en los cerámicos. A continuación, se muestra una imagen de un conjunto de cuatro
baldosas a modo de ejemplo:
2
Fig. 1 Baldosas de textura aleatoria.
La capacidad de un humano para llevar a cabo este proceso depende de su formación, el
conocimiento y la experiencia [6]. Las tareas que realizan los operadores, generalmente se
encuentran influenciadas por expectativas y conocimiento previo. Además, este proceso es
tedioso, subjetivo, costoso y requiere excesiva concentración, lo que produce una fatiga a lo
largo de la ejecución de la tarea [7], pudiendo decir que un humano funciona por un tiempo
limitado [6]. Estos factores, en adición a otros que impactan negativamente en el rendimiento
humano, derivan en una clasificación irregular e indeseada de los productos. A esto también se le
suma que los encargados de realizar estas tareas pueden no coincidir en los criterios de
aceptación, es decir, los estándares en el criterio de aceptación varían entre una persona y otra.
Esta variación conduce a la producción de baldosas de diversa calidad [8]. Todo esto presentaría
un margen de error, dentro del cual el producto final puede no ser el ideal o esperado, incidiendo
en la calidad del mismo.
Por todos estos motivos, surge la idea de automatizar el control de calidad con el fin de reducir
los riesgos planteados previamente y determinar un único criterio de aceptación del producto [8].
3. Objetivos En el plan propuesto, se pretende el desarrollo de un sistema de detección de fallas de
superficie en baldosas cerámicas, abordando el análisis en productos con texturas aleatorias.
Como caso de estudio, se analizará la detección de diferentes tipos de defectos en un conjunto de
baldosas cerámicas. Estos defectos son: goteo de pintura, rayones en la superficie, quebraduras,
defectos de material y variaciones de dimensiones. El sistema debe ser capaz de cuantificar los
defectos encontrados en la superficie de los productos.
La implementación desarrollada consiste en un prototipo, capaz de soportar la ejecución en
tiempo real en una línea de producción. Por otro lado, otro de los parámetros a ser analizado será
la tasa de fallas detectadas correctamente, la cual debe superar al 90%.
En el desarrollo, se trabajará con un sensor de adquisición de imágenes (cámara) y se pretende
generar un sistema que combine la adquisición y procesamiento de imágenes para el
reconocimiento/identificación y cuantificación de las fallas en las baldosas [8]. Las salidas del
sistema propuesto serán utilizadas por un sistema de clasificador en futuras versiones, el cual
determinará la calidad del producto en base a los parámetros obtenidos del presente trabajo.
3
4. Organización Este trabajo se encuentra organizado en cinco capítulos. En donde el primer Capítulo contiene
la Introducción, Motivación y Objetivos que llevaron a la realización de esta investigación.
El Capítulo 2 describe aspectos generales y teóricos del área de investigación, desarrollo de las
técnicas a utilizar, procesos y material de estudio (baldosas).
El Capítulo 3 describe la metodología utilizada para el desarrollo del trabajo. Además, se hace
un análisis detallado de los distintos algoritmos elaborados y de las herramientas utilizadas.
Por su parte, el Capítulo 4 muestra los resultados obtenidos de la ejecución de los algoritmos en
distintos ambientes y su eficiencia en cuanto a tiempo y éxito.
Finalmente, se encuentra el Capítulo 5 que contiene las conclusiones de este trabajo.
A su vez, como anexo a los capítulos ya mencionados, se encuentra el Apéndice que contendrá
las guías de instalación del prototipo creado y Manual de Usuario para la aplicación.
4
Capítulo 2
Estado del arte
2.1 Machine Vision Machine Vision (MV) [9] se puede definir como el análisis de imágenes para obtener la
información necesaria para controlar un proceso o una actividad. También es conocida como el
estudio de métodos y técnicas que permiten la construcción de sistemas de visión artificial que
pueden ser empleados en diversas aplicaciones prácticas. Es una subdisciplina de la Inteligencia
Artificial (IA), la cual utiliza video cámaras o escáneres para obtener información acerca del
entorno, y extraer información de imágenes digitales acerca de los objetos que se encuentran en
ellas. Machine Vision toma una imagen como entrada y obtiene una serie de parámetros acerca
de los objetos en ella (tamaño, posición, correlaciones, etc.). Existen diversos tipos de categorías
en las cuales se encuentran las aplicaciones que utilizan Machine Vision:
Control de Calidad
Clasificación
Manejo de materiales
Robótica
Calibración
Dentro de la primera categoría mencionada (Control de Calidad) se encuentran la mayoría de
las aplicaciones basadas en Machine Vision. Todas ellas realizan inspección de imágenes y
deciden si la pieza debe pasar o ser rechazada, basado en una serie de parámetros y condiciones.
Aunque las personas pueden ser excelentes para el control de calidad, la fatiga y subjetividad son
factores que pueden atentar sobre la clasificación del producto final. Estas características no se
presentan en sistemas automatizados. Con respecto a la subjetividad, las personas pueden agregar
o cambiar las reglas para que las piezas sean aprobadas o no. Si una persona encuentra un
defecto, éste no es parte del proceso de clasificación hasta que sea agregado al mismo. También
pueden interpretar los criterios de manera incorrecta generando problemas en este control. Otro
factor importante es la velocidad, debido a que a menudo líneas de producción requieren de tasas
de inspección de piezas muy complejas por segundo. En este aspecto, los sistemas automatizados
presentan una mejora considerable con respecto a la inspección humana [9].
Como el nombre sugiere, la segunda categoría corresponde a la categorización de las piezas.
Los sistemas pueden detectar distintos tipos de piezas basados en un criterio para clasificarlos de
manera correcta. Puede ser una extensión del Control de Calidad, ya que luego del mismo,
pueden ser categorizadas sin la interacción humana. Algunas aplicaciones que incluyen esta
categoría pueden ser la clasificación de manzanas acorde a su dimensión en la planta de
envasado, eliminación y refundición de cables de cobre, entre otros [9]. Uno de los casos de
estudio es el que se realizó en India que se basó en la clasificación de manzanas de acuerdo a su
dimensión, forma y color. Como es sabido, la agricultura es una de las principales actividades
económicas en dicho país, que afecta directa o indirectamente al 75% de su población. A través
de la aplicación de Machine Vision probaron que se puede realizar dicha clasificación de manera
automatizada. Teniendo en cuenta los tres factores mencionados anteriormente (dimensión,
forma y color) pudieron discriminar tres clases de manzanas, determinando así la calidad de las
mismas. A continuación, se puede ver una imagen con los resultados obtenidos [10]. En él, se
observan diferentes tipos de manzanas, las cuales tienen diferentes áreas y color. De acuerdo a
estos dos aspectos se clasifican las mismas en tres diferentes grados: A, B o C.
5
Fig. 2 Clasificación de manzanas de acuerdo a su grado.
Otra categoría es cuando el ambiente no es el adecuado para los humanos. Se pueden encontrar
sistemas para desactivar bombas, manejo de residuos tóxicos, alta radiación y temperatura [9].
Uno de los casos donde el entorno no es el ideal para humanos es el relacionado a la minería. Por
ejemplo, en Sudáfrica existen muchos recursos minerales que producen metales preciosos como
platino y oro. Existe una compañía que se encarga de desarrollar sistemas para este tipo de
actividades llamada Stone Three Venture Technology. Junto con Anglo Platinum Research
desarrollaron un dispositivo al que nombraron Lynxx Optical Particle Analyzer. Este dispositivo,
a través de varios sensores que envían información a un servidor, es capaz de medir el tamaño
del mineral en las propias minas, lugar donde se presentan altas temperaturas y poco oxígeno.
Tradicionalmente, estos minerales se medían de forma manual, deteniendo la cinta
transportadora que lleva los potenciales minerales. Con la implementación de este sistema, no
sólo se evita tener trabajadores en ambientes insalubres (por ejemplo, mucha tierra y
temperaturas de hasta 50 ºC) sino que también aumentó, significativamente, la producción de
estas partículas. A continuación, se puede observar una imagen del sistema: [11].
6
Fig. 3 Lynxx Optical Particle Analyzer.
La Robótica, cuarta categoría mencionada, incluye actividades como ejecución de soldaduras
en la construcción de autos, pinturas basadas en spray, carga y descarga. Uno de los usos más
comunes de la robótica es en los procesos industriales, como por ejemplo la fabricación de
vehículos. Donde las interacciones de los robots van desde ajustar un tornillo hasta el ensamblaje
de partes [9]. Otro buen ejemplo es el “Mars Pathfinder”, el robot desarrollado por la NASA para
recorrer Marte. Este dispositivo, basándose en métricas capturadas, como la presión atmosférica,
el viento, la temperatura, determina qué pasos seguir para recorrer dicho planeta para acercarse
lo más posible a objetos de interés [12] [13].
Fig. 4 Proceso industrial en la fabricación de vehículos que incluye el uso de la Robótica.
7
Fig. 5 Dispositivo Mars Pathfinder desarrollado por la NASA.
Por último, es utilizado en aplicaciones que requieren de ajustes de calibración de piezas y
ensamble. Se incluyen empresas que fabrican calculadoras, termostatos y tableros de control [9].
Otra manera de categorizar las aplicaciones de Machine Vision es de acuerdo al propósito de
las mismas:
Reconocimiento de código: es la identificación de objetos usando marcas determinísticas.
Como por ejemplo los códigos de barra. Existen muchísimos casos de estudio y
aplicaciones en esta área. La más conocida puede ser la aplicación de OCR
(Reconocimiento Óptico de Caracteres) en latas de comida. Sus principales funciones son
las de prevenir productos marcados erróneamente, evitar que se mezclen productos en la
línea de producción o bien que en la distribución lleguen diferentes productos
[14]. También se pueden aplicar en la interpretación de las fechas de vencimiento de
productos para evitar multas y venta de productos vencidos [15].
Reconocimiento de objetos: es la identificación de objetos usando o analizando diversas
características, como la forma, dimensión, color, estructura y textura. La clasificación de
manzanas de manera automatizada basada en color, forma y tamaño puede ser una de las
referencias ubicadas en esta categoría.
Reconocimiento en base a la posición: es la determinación de la posición y orientación de
un objeto.
Validación de producto final: consiste en determinar si una pieza fue ensamblada
correctamente, o no. Corroborando que todos sus componentes estén presentes y en la
posición correcta.
Validación de forma y dimensión: determinación de las magnitudes geométricas,
enfocándose en la precisión y exactitud con márgenes mínimos de errores. Por ejemplo,
la medición de los minerales provista por el dispositivo Lynxx Optical Particle Analyzer
mencionado anteriormente.
Inspección de superficies: consiste en la detección de defectos en la superficie de un
objeto. Dentro de esta categoría se puede ubicar esta tesis desarrollada, la cual se basará
8
en el análisis de la superficie de la baldosa para detectar defectos como rayaduras, grietas,
goteras, entre otros.
El hecho de que exista esta categorización de las aplicaciones no significa que una aplicación
esté limitada a funcionar para una sola de las categorías. Es decir, estas categorías son
frecuentemente combinadas en el mundo real de las aplicaciones. Por ejemplo, leer un código de
barras con un número de serie específico y realizar un chequeo de su correcto ensamblado. Por
otra parte, algunas aplicaciones combinan o complementan estas categorías para garantizar
mejores resultados. Por ejemplo, con la información obtenida en los métodos de reconocimiento
en base a la posición, se puede obtener una mejora en la validación de forma y dimensión; ya que
se sabe con mayor exactitud dónde se encuentra el objeto en la imagen obtenida por la cámara
[16].
2.1.1 Marco Histórico La aparición del término Machine Vision data de los años 1930’s cuando la compañía
Electronic Sorting Machines construyó un clasificador de comida basado en el uso de filtros y
fotomultiplicadores como detectores. Esta compañía todavía existe hoy en día bajo el nombre de
ESM. Incluso, aún ofrece clasificadores basados en los mismos principios de esa época. En los
años 40, la empresa RCA, Camden Operation diseñó y construyó un sistema para detectar
botellas retornables vacías que estuvieran listas (limpias) para ser llenadas nuevamente. A su
vez, fue el primer sistema que incorporó la detección de roturas, ya que buscaba defectos en los
picos de las mismas. Fue instalado en más de tres mil líneas de producción. En los años 1950’s
se registraron las primeras patentes de Reconocimiento Óptico de Caracteres (OCR).
En la década del ‘60 el ejército y la NASA subsidiaron investigaciones, llevadas a cabo por la
empresa R&D, para el desarrollo de sistemas relacionado con la vigilancia y la seguridad, como
también el reconocimiento y seguimiento de objetivos.
Luego, en los años 1970’s, Bell desarrolló el concepto de acoplamiento de carga, creando así el
dispositivo CCD (Dispositivo de Carga Acoplada).
Más allá de estos casos mencionados, Machine Vision ha evolucionado considerablemente
desde hace 25 años. Este progreso se debió a los avances en el hardware, haciendo que todo se
integre a un sistema en tiempo real. Esto significa que todo se encuentra cambiando
constantemente y se debe principalmente a las investigaciones realizadas y a la importancia que
Machine Vision fue generando en diversas áreas, como el Control de Calidad en las industrias,
aplicaciones médicas que involucran el análisis de imágenes, aplicaciones militares y espaciales.
Uno de los procesos a destacar es que, al ejecutarse operaciones en el procesamiento de
imágenes, se comienza trabajando con una imagen en un espacio de almacenamiento, y se genera
una nueva procesada en otro. En la práctica, estos espacios de almacenamiento pueden estar en
una unidad especial de hardware llamada frame. A este frame se accede a través de una interfaz
provista por la computadora, puede estar en la memoria principal o en uno de los discos. En el
pasado, para realizar esto se requerían de frames especiales para almacenar dicha información
[2].
Considerando un marco cronológico acerca de la aplicación de Machine Vision para el Control
de Calidad en la fabricación de baldosas, se puede decir, que se han encontrado dificultades para
determinar una serie de algoritmos que puedan detectar todas las fallas y reemplazar al humano
en este aspecto. Cabe destacar que cualquier sistema de visión artificial nunca sustituirá
ventajosamente la inspección visual si no es capaz de [7]:
9
1. Detectar todo tipo de defectos de fabricación, por lo menos con la misma precisión que el
ojo humano.
2. Medir con alta precisión las dimensiones de las baldosas.
Si estableciéramos una línea de tiempo basada en el control de calidad, se puede decir que a
partir del año 2000 comenzó a cobrar importancia el uso de sistemas automatizados en las
fábricas de baldosas. Estos primeros estudios no obtuvieron resultados significativos. A
mediados de la década del 2000 surgieron diversos métodos aplicados a la inspección de
baldosas con un costo computacional elevado y mucha demanda en tiempo, considerando que
deben ejecutarse en tiempo real más allá de que tengan una buena tasa de aceptación en cuanto a
la detección de defectos. Otros, tienen un costo computacional menor, pero la eficacia para
detectar defectos disminuye considerablemente. Estos problemas hicieron que se siga buscando
algoritmos que puedan considerarse satisfactorios teniendo en cuenta la eficacia y el tiempo.
Para el año 2012, la evolución constante de Machine Vision hizo que casi todas las áreas de
producción de baldosas involucren sistemas automatizados. Sin embargo, el área de Control de
Calidad sigue siendo de manera manual, incluso hasta el día de hoy. Esto se debe a que todavía
ninguna logró alcanzar, por lo menos, la misma precisión del ojo humano [6] [7] [8] [17] [18]
[19] [20].
2.1.2 Procesamiento de Imágenes El procesamiento de imágenes es un proceso computarizado de Machine Vision que ayuda a
optimizar las propiedades de las mismas en una variación utilizable, con el objetivo de que el
análisis sea más sencillo. Hay 2 [21] niveles distinguidos en el procesamiento de imágenes:
Bajo nivel: involucra operaciones que consisten en la adquisición de la imagen,
compresión de la misma y métodos de pre-procesamiento para la eliminación de ruidos,
extracción de información de bordes y formas y otras mejoras que sean relevantes para
entender la imagen.
Alto nivel: intenta imitar el reconocimiento humano. Lo que requiere de la interacción
previa de una persona para que, en base a determinados criterios, el procesamiento pueda
arrojar una conclusión. Los sistemas de dicho nivel utilizan además de los conocimientos
humanos, sistemas matemáticos como redes neuronales, reconocimiento de patrones, etc.
Estos dos niveles mencionados anteriormente implican también que en el procesamiento de
imágenes se puede trabajar con distintos niveles de abstracción [22]:
10
Tabla 1 Nivel de abstracción en el procesamiento de imágenes.
El procesamiento de imágenes se puede clasificar en diferentes etapas:
Captura: diseño de las propiedades de captura. Tipo de cámara, distancia al objeto, mega
píxeles, etc.
Pre-procesamiento: consiste en reducir el entorno que no es de interés para el problema
(fondo, ruido, etc.). Ejecutar una reducción de ruido implica conocer la naturaleza del
mismo en una imagen y depende del sistema de captura o del ruido en sí.
Segmentación: tiene por actividades reconocer y extraer cada uno de los objetos presentes
en la imagen. Esto significa determinar si un píxel corresponde a un objeto de interés o al
fondo. Para ello se analizan propiedades como la ubicación, intensidad, relación de
píxeles con sus vecinos, transformaciones, etc.
Extracción de características: consiste en seleccionar y extraer las “características”
apropiadas para la identificación de los objetos deseados.
Identificación de los objetos: consiste en utilizar un modelo de toma de decisión para
deducir a qué categoría pertenece cada objeto.
Hay que destacar que el pipeline del procesamiento de imágenes es conceptual. Esto quiere decir
que en una aplicación real, se suelen realizar las etapas al mismo tiempo [2] [22].
2.1.2.1 Captura o adquisición de imágenes La satisfacción de los resultados obtenidos en un sistema de Machine Vision depende
principalmente de la etapa de adquisición de imágenes, ya que cualquier deficiencia en la captura
de la imagen puede causar muchos problemas a la hora de interpretar y analizar la misma [16].
Los aspectos que influyen a la calidad son varios, dentro de los cuales se encuentran el sistema
11
de iluminación utilizado para realizar la captura, el ambiente de aplicación, el tipo de sensor,
entre otros. Si bien, las deficiencias de las capturas pueden ser solventadas utilizando algoritmos
complejos, tener cuidados en la adquisición de imagen puede significar la utilización de
algoritmos más simples y obtener mejores resultados, tanto en la precisión de los resultados
como en los tiempos de ejecución.
La adquisición de una imagen digital requiere de un proceso de digitalización, que convierte la
información analógica en formato digital, para que pueda ser manipulado en un medio
electrónico [20]. Por otra parte, la compresión consiste en reducir el volumen de datos a analizar,
pero sin alterar la información que contiene el material original. Un ejemplo de compresión es la
binarización de imágenes. Esta técnica consiste en un proceso de reducción de la información de
la imagen, en la que sólo persisten dos valores: verdadero y falso. En una imagen digital, estos
valores pueden representarse con 0 y 1 o, más frecuentemente, por los colores negro (valor de
intensidad 0) y blanco (valor de intensidad 255) [2].
Generalmente, el proceso de adquisición involucra el uso de cámaras. Una cámara consiste en
dos partes: un lente que obtiene el tipo de radiación apropiada emitida por el objeto de interés y
con eso forma la imagen del objeto real y un dispositivo semiconductor (CCD –Dispositivo de
Carga Acoplada- o CMOS –Semiconductor Complementario de Óxido Metálico-) que convierte
la irradiación de la imagen plana en una señal eléctrica. La tarea de la capturadora es convertir la
imagen analógica de la cámara en una imagen digital para que pueda ser procesada en la
computadora. Como la visualización de una imagen se ha convertido en una parte integral de una
computadora o una estación de trabajo, ya no se requiere un dispositivo de visualización y sólo
se necesitan circuitos para digitalizar la imagen desde la cámara y almacenarla en la memoria de
la computadora. Las cámaras modernas contienen todo lo necesario para realizar la captura de
imagen. Por ejemplo, los sensores CMOS realizan esta tarea con un chip que incluye un
conversor analógico/digital y una salida digital. Gracias a todo esto, lo único que se necesita para
adquirir una imagen, es una conexión desde la cámara al procesador, pudiendo ser vía Fireware o
USB [16].
La parte esencial o más importante de una cámara es el sensor que es usado para la generación
de la imagen. El sensor es el ojo de una cámara. En consecuencia, la tarea del sensor es capturar
la imagen y traducirla a información que luego será pre-procesada por la cámara o transmitida a
otro dispositivo o a un monitor para su procesamiento [16].
Se pueden diferenciar ciertas características entre el ojo humano y el “ojo” de una cámara: el
primero posee una ultra-alta resolución y una captura de imagen paralela o escaneo no temporal,
donde la imagen es capturada de manera simultánea [16]. El segundo, al tratarse de un sensor
digital, es un proceso en serie donde la información es obtenida de manera serial, es decir, un
punto espacial por unidad de tiempo. Agregando también las limitaciones generadas por la
cantidad de objetos que se pueden manipular, la velocidad de interpretación, la susceptibilidad a
la luz y variación de texturas y reflejo de objetos, resulta altamente complejo imitar el sistema de
visión humana con la tecnología actual. Por otra parte, la visión de un ser humano es
tridimensional gracias a su sistema de visión estereoscópica, mientras que Machine Vision
trabaja generalmente con datos de dos dimensiones. Respecto al color, el ojo interpreta el mismo
basándose en la respuesta del espectro de los fotorreceptores, mientras que el color en las
máquinas es un intérprete de la escala de grises sin importar el tono, basándose en la respuesta
espectral del sensor [23].
Sin embargo, la aplicación de Machine Vision respecto a la visión humana ofrece ciertas
ventajas. Una de ellas es que la velocidad de procesamiento por minuto en una línea de
12
producción, la cual es mayor a lo que podría realizarlo un humano. Además, pueden realizar
múltiples tareas sobre uno o más objetos [23].
La siguiente tabla muestra una comparación entre la visión de un humano y una máquina con
respecto a la eficiencia en diversos criterios:
Criterio Machine Vision Visión Humana
Resolución Limitada por la resolución de
píxeles.
Ultra-alta resolución.
Velocidad de procesamiento Fracción de segundo por
imagen.
Procesamiento en tiempo
real.
Identificación de objetos Limitado a imágenes de alto
contraste.
Procesamiento en tiempo
real.
Precisión Depende de la correcta
identificación de los objetos.
Se mantiene consistente
cuando se procesa gran
volumen de información.
Depende de la subjetividad. A
gran volumen de
información, disminuye la
precisión debido al cansancio
o fatiga.
Costo de operación Menor. Mayor.
Tabla 2 Cuadro Comparativo entre un sistema de Machine Vision y la Visión Humana.
CMOS vs CCD:
La siguiente es una tabla comparativa entre los sensores CCD y CMOS [16].
CCD CMOS
++ Muy poco ruido + Poco ruido
+ Calidad de imagen óptima + Calidad de imagen óptima
- Velocidad de lectura más lenta + Velocidad de lectura más alta
- Mucho consumo de energía + Poco consumo de energía
+ No produce defecto gelatina -Produce defecto gelatina
- Mala performance cuando hay poca luz +Mejor rendimiento cuando hay poca luz.
Tabla 3 Comparativa entre sensores CCD y CMOS.
Ruido: El sistema de mover píxeles de las CCD produce una señal de video limpio,
mientras que el CMOS, al tener un amplificador por cada píxel, introduce más ruido a la
imagen.
13
Velocidad de lectura: en las CCD la lectura es más lenta debido a que se realiza en serie.
En las CMOS, las lecturas se realizan en paralelo gracias a que cada píxel tiene su propio
condensador y amplificador.
Consumo: en las CCD una pequeña cantidad de carga se pierde cada vez que se
desplazan los electrones. Por lo tanto, a resoluciones más altas, más desplazamientos son
requeridos (estos desplazamientos requieren voltaje). Esto, junto con que la lectura de un
CCD es lenta por leerse la información en serie (un píxel cada vez), hace que se gaste la
batería del dispositivo. Por el contrario, las CMOS, a pesar de que cada píxel tiene su
propio condensador y amplificador, no necesitan transportar los electrones. Esto hace que
su consumo se menor.
Imagen: en las CCD la imagen se graba en un solo instante. En cambio, las CMOS
graban los datos línea a línea, haciendo que las imágenes panorámicas parezcan torcidas
(efecto gelatina). De todas maneras, esta desventaja en las CMOS, no siempre es negativa
ya que cada píxel puede tener un poco de tiempo extra para capturar fotones, dando un
mejor resultado en ambientes con poca luz.
Fig. 6 Comparación entre un sensor CCD y CMOS
El sensor CMOS permite imágenes más claras y brillantes, comparadas con el sensor CCD,
incluso en situaciones de poca luz.
Line Scan vs. Scan Area
Las cámaras se adaptan para el uso en un entorno industrial a través de interfaces que se
utilizarán para la detección y ejecución de algoritmos de procesamiento. Actualmente las
cámaras pueden detectar el más minucioso detalle en una superficie y existen dos tipos de
cámaras para dicho propósito: “line scan” o “area scan” cámaras [16]:
Line scan camera: capturan una fila de píxeles mientras el objeto se encuentra en
movimiento. Pudiendo reconstruir la imagen mediante software. Otra característica de
este tipo de cámaras es que requieren de una buena coordinación en cuanto a la captura
de imagen, considerando que la misma forma parte de la línea de producción. Sin
embargo, no son muy utilizadas puesto que su costo de adquisición es muy alto.
14
Fig. 7 Line scan camera.
Area scan camera: capturan la imagen a nivel de matriz de píxeles de un espacio o área
específica. Son de fácil instalación, ya que no requieren que la cámara se mueva.
Permiten realizar una segmentación de los objetos de interés de la imagen en vez de tener
que procesar la imagen entera. Son más comunes en las tareas automatizadas.
Fig. 8 Area scan camera.
Monocromáticas ys color
Monocromáticas: son en escala de grises y utilizadas generalmente en la línea de
producción de baldosas debido a que el análisis del color no es importante.
A color: usadas cuando la composición del color es requerida para su análisis y
generalmente tienen menor resolución [20].
15
Fig. 9 Imagen en color y blanco y negro.
2.1.2.2 Pre-procesamiento Las técnicas de mejoras de imagen son aplicadas para facilitar a los siguientes procesos por lo
que el tipo de mejora a realizar depende del tipo de proceso a ejecutar posteriormente. Por otra
parte, este proceso tiene dos fundamentos principales que son la eliminación de ruido y la mejora
de ciertas características de la imagen que favorezcan la identificación de objetos, incluyendo
técnicas de mejora de contraste, filtrado del dominio espacial, suavizados y perfilados [2]. Sin
embargo, se puede determinar una ambigüedad con respecto a los objetivos de este proceso. Por
un lado, elimina ruido lo cual hace que los bordes sean menos agudos inevitablemente, y por otro
intenta mejorar los bordes de los puntos lo que incorpora puntos de ruido en la imagen. La única
solución para este problema es encontrar un balance que disminuya el ruido en la imagen
manteniendo los bordes lo suficientemente afilados.
Las técnicas de mejora de imágenes pueden clasificarse en operadores de punto, operadores de
grupo (o región), operadores estadísticos y operadores morfológicos. A continuación, se
presentan algunos de los métodos utilizados para cada una de las categorías mencionadas.
Operadores de punto
Los operadores de punto reemplazan el valor de cada uno de los píxeles de la imagen con un
nuevo valor a partir del anterior. Estas operaciones son utilizadas para lograr un incremento de
brillo en la imagen o para lograr una expansión de contraste. Por ejemplo, la multiplicación del
valor de cada uno de los píxeles por un escalar formará una imagen con aumento de brillo. De
esta manera, el operador modifica las intensidades de los píxeles de acuerdo a una relación lineal
de brillo.
Una de las funciones en este tipo de operadores es la expansión del rango de intensidades que
puede ser llevada a cabo a través de una normalización del histograma. En este proceso el
histograma original se expande y traslada de manera de cubrir todo el rango de colores. Mientras
que la ecualización de histograma es un proceso no lineal que se adapta mejor al sistema visual
humano. Esta técnica permite generar un histograma más plano en donde todos los niveles de
intensidad son equiprobables. Esta operación mapea los niveles de gris de manera que el
histograma perteneciente a la imagen generada presente una distribución uniforme, expandiendo
16
el contraste para aquellos valores cercanos al máximo, y comprimiéndolo para aquellos valores
cercanos a los mínimos. La siguiente imagen muestra la ejecución de ecualización de histograma
sobre una fotografía:
Fig. 10 Ecualización del histograma aplicada sobre imagen.
Operadores de grupo
Los operadores de grupo calculan los valores de los píxeles analizando los píxeles que lo
rodean. Generalmente este tipo de operaciones se definen por una convolución de templates, en
donde este template está expresado por un conjunto de coeficientes. Los templates se representan
mediante matrices generalmente cuadradas y con un tamaño impar de manera de asegurar su
correcto posicionamiento. La operación consiste en centrar la matriz de coeficientes en un punto
de la imagen. A partir de allí, los coeficientes son multiplicados por los valores de intensidad
correspondientes de la imagen. Los valores obtenidos son sumados siendo este valor a asignar en
la imagen de salida. El proceso se ejecuta iterativamente de manera que todos los píxeles de la
imagen sean evaluados.
Operadores estadísticos
La mediana es otro de los operadores utilizados en la mejora de imágenes. En este caso la
mediana está definida por el punto central de una distribución ordenada, analizando los píxeles
correspondientes con el punto definido. El ordenamiento de los datos es un proceso costoso que
motivó el análisis de algoritmos de ordenamiento. Por otra parte, la demanda computacional
requerida llevó a sustituir los templates cuadrados por cruces o líneas verticales y horizontales,
centradas en el punto de interés. Este operador permite reducir el ruido presente en las imágenes,
eliminando puntos aislados de la imagen. Otra característica importante del operador, es que
mantiene los bordes suprimiendo la contaminación por ruido.
17
Fig. 11 Aplicación de operador estadístico sobre una imagen.
Por otra parte, es posible aplicar la moda como operador. Si bien su cálculo es complejo cuando
la población es escasa, el filtro de mediana truncada se basa en la premisa que indica que para
muchas de las distribuciones no Gaussianas, la media, la mediana y la moda se corresponden con
el mismo valor. De esta manera, la técnica remueve parte de la distribución de manera que la
mediana se aproxime a la moda de la distribución original.
Operadores morfológicos
Las operaciones morfológicas permiten cambiar las formas de los objetos en imágenes binarias
definiendo transformaciones locales que cambian valores de píxeles. Estas herramientas pueden
ser utilizadas tanto en imágenes en escala de grises como en imágenes binarias. Para su
ejecución, analizan la vecindad de los píxeles, siendo las operaciones fundamentales la erosión y
la dilatación. La erosión es una operación de reducción implementada a través de un filtro de
convolución de 3x3, por medio de la cual reemplaza el nivel de gris de un píxel por el menor
valor hallado en su vecindad.
En el caso de tratar con imágenes binarias, esta operación reemplaza el valor del píxel por
negro si alguno de sus vecinos es negro. Por otra parte, la dilatación reemplaza el valor de un
píxel por la intensidad mayor encontrada en su vecindad, o tomando blanco si alguno de los
píxeles es blanco en el caso de contar con imágenes binarias.
La erosión provoca una reducción de los puntos negros aislados en imágenes, mientras que la
dilatación acentúa su presencia.
Fig. 12 Aplicación de erosión.
18
Fig. 13 Aplicación de dilatación.
2.1.2. 3 Segmentación La segmentación de imágenes es el proceso por el cual una imagen es dividida en áreas
conectadas no solapadas denominadas regiones de acuerdo a un criterio gobernante de similitud
u homogeneidad.
La segmentación de imágenes es un proceso fundamental en diferentes aplicaciones de
procesamiento de imágenes, ya que los resultados de las etapas posteriores dependen de la
calidad de segmentación lograda. El objetivo principal de la etapa es llevar a cabo una partición
de la imagen en regiones homogéneas e interconectadas, sin tener en cuenta conocimiento
adicional acerca de los objetos presentes en la imagen. La homogeneidad está relacionada con el
color y las texturas, tal vez una de las características más importantes del proceso de
segmentación es la definición de las regiones. El nivel de particiones a las cuales una imagen es
segmentada depende pura y exclusivamente del problema que se desea resolver. Esto quiere
decir que la segmentación debe culminar cuando los objetos de interés de en una aplicación han
sido separados. Realizar esta actividad en imágenes no triviales es una de las tareas más difíciles
de ejecutar en el procesamiento de imágenes. La exactitud en la segmentación determina el éxito
o fracaso. Por otra parte, los algoritmos generalmente están basados en dos propiedades básicas
de valores de intensidad: discontinuidad y similitud. El primero, significa que el enfoque se
encuentra en particionar la imagen basándose en cambios abruptos de intensidad como bordes en
una imagen. El segundo, en cambio, se basa en particionar la imagen de acuerdo a regiones que
sean similares teniendo en cuenta un criterio ya definido. El umbralado (thresholding),
crecimiento de región o separación puede ser uno de los métodos en esta categoría [24].
En [25] se describen cuatro tipos de técnicas que se relacionan con el tipo de interpretación
realizada sobre las imágenes. De esta manera las técnicas de segmentación pueden clasificarse
en:
Técnicas basadas en píxel: Una región está compuesta por un conjunto de píxeles
conectados por una función de pertenencia definida en un espacio de color. El
agrupamiento se logra en el espacio de color, en donde se puede considerar, por ejemplo,
la pertenencia de un píxel a un plano o a un poliedro del espacio de color.
Técnicas basadas en área: Una región es un maximal de un conjunto de píxeles
conectados en el plano de la imagen, para el cual la condición de uniformidad es
satisfecha. En este caso el agrupamiento se realiza en el plano de la imagen. De esta
manera se obtienen las regiones mediante la separación de regiones no uniformes o a
través de la fusión de píxeles (o conjuntos de píxeles) homogéneos.
19
Técnicas basadas en bordes: Una región es un conjunto de píxeles conectados delimitados
por los bordes creando así un contorno de color. El contorno de color se determina a
partir de aplicar un operador de detección de imágenes y llenando los huecos de ese
contorno.
Técnicas basadas en física: Una región es un componente conectado formado por un
conjunto de píxeles agrupados de acuerdo a un modelado físico del espacio de color. El
objetivo de la técnica es extraer regiones que se correspondan con las superficies de los
objetos presentes en la escena que se corresponden con materiales homogéneos,
manteniéndose constante aún ante variaciones de matices o luminosidad.
Esta clasificación se corresponde con una clasificación clásica de métodos presentada por Fu en
1981 [26], sin embargo, es posible encontrar en la literatura otras taxonomías, como por ejemplo
la presentada por Marcello en 2004 [27] que los clasifica de acuerdo a la información explotada.
Durante los últimos 40 años la investigación y desarrollo en técnicas de segmentación tuvo un
gran crecimiento. El número de registros de artículos durante los últimos 10 años posee una alta
tasa de crecimiento siendo esta polinomial de tercer orden. Incluso se observa que no existen
registros de artículos que comprendan resumen de técnicas debido a la vasta diversidad de
algoritmos existentes [28].
2.1.2.3 Extracción de características La selección de características es uno de los aspectos más delicados dentro del diseño de un
sistema de visión. En su definición es imposible evaluar cuantitativamente los efectos al aplicar
los criterios seleccionados. En imágenes, este proceso transforma la representación gráfica de los
datos de entrada en una representación abstracta compuesta por un conjunto de valores o
símbolos, siendo capaz de seleccionar las características salientes compartidas por todas las
muestras de una misma clase, manteniendo separadas las descripciones de muestras
pertenecientes a diferentes categorías.
La descripción de las características está formada por un conjunto de valores llamados
descriptores y es aconsejable que cumplan con las siguientes propiedades [24]:
Deben formar un conjunto completo: Dos objetos deben poseer los mismos
descriptores sólo si pertenecen a la misma categoría.
Deben ser congruentes: Dos objetos similares deben poseer descriptores similares.
Es recomendable que posean propiedades invariantes: Cambios en la orientación,
posición del objeto no deben alterar a los descriptores.
Deben formar un conjunto compacto: Un descriptor debe representar la esencia del objeto
de manera eficiente, sólo conteniendo la mínima información que permita la
identificación del objeto haciéndolo diferente al resto.
Sin embargo, no existe un conjunto de descriptores completos y compactos que permitan una
caracterización general. Por esto se debe realizar un estudio minucioso de las propiedades a
seleccionar. La extracción de características está fuertemente ligada a la aplicación a desarrollar
y no existe una técnica general para su selección, ya que los descriptores a utilizar dependen
exclusivamente de las características de los objetos a inspeccionar o detectar.
Obtener una descripción cercana a la ideal en la práctica es casi imposible cuando existe una
alta variabilidad entre muestras, dejando al clasificador en estos casos la tarea de obtener los
mejores resultados posibles a partir de las mejores características disponibles. Un buen esquema
de extracción de características debe mantener y mejorar aquellas características que permiten
20
separar las clases de los patrones y ser inmune a variaciones a cambios en la etapa de
adquisición.
En [29] se definen dos niveles de extracción de características en imágenes: de bajo nivel y alto
nivel. Las primeras de ellas se refieren a características básicas que pueden ser extraídas
automáticamente desde una imagen sin tener en cuenta relaciones de aspecto. Pueden ser
aplicadas a nivel de píxeles como por ejemplo a través de umbralados. Estas operaciones son
utilizadas por la extracción de características de alto nivel para determinar formas. Dentro de la
extracción de alto nivel se encuentran los detectores de bordes, los detectores de esquinas y el
análisis de flujo óptico que permite describir el movimiento. El conjunto de operaciones de alto
nivel comprende aquellas técnicas utilizadas para la identificación de formas. En casos
complejos, la extracción de características puede incluir el análisis de cada una de las formas
simples que componen el objeto. El análisis de cada forma implica la determinación de su
posición, su orientación, su tamaño y el modo en que conforman el objeto. Sus técnicas incluyen
el análisis de regiones, formas y texturas.
2.1.2.4 Identificación de objetos Es la parte del procesamiento de imágenes que consiste en la identificación de objetos o patrones
mediante la utilización de operadores sobre regiones o límites. Cabe destacar que un patrón es un
conjunto de descriptores [24]. Suelen dividirse en dos áreas, “Teoría de la decisión” y
Estructurales. La primera categoría, básicamente se refiere a la identificación de patrones de
manera cuantitativa, esto es, longitud, área y textura. La segunda categoría, trata con los
descriptores cualitativos, generalmente representados como strings, árboles o gráficos.
Una vez obtenidos estos descriptores, se realiza una clasificación. Para ello se tienen en cuenta
ciertos rasgos. Un rasgo es la característica que nos servirá para encontrar un número que
permitirá, junto con otros, la clasificación. Pudiendo ser, largo, perímetro, relación ancho-alto,
circularidad, entre otros. Las características de los rasgos deben ser: discriminación,
confiabilidad, independencia y número pequeño de rasgos [22]:
Discriminación: cada rasgo deberá tomar valores con diferencias significativas para
objetos pertenecientes a clases diferentes. Por ejemplo, si el diámetro es un buen
elemento para diferenciar naranjas de ciruelas, la distancia entre los diámetros
característicos de las ciruelas y el de las naranjas deberá ser mayor que el error en la
determinación de los mismos.
Confiabilidad: los rasgos deberán tomar valores similares para todos los objetos
pertenecientes a la misma clase. Si elegimos el color para diferenciar manzanas de peras,
una manzana madura podrá hacer que el mismo no sea un buen elemento para la
clasificación. Sin embargo, las cerezas o ciruelas serán siempre rojas, por lo que este
rasgo funcionaría.
Independencia: los distintos rasgos seleccionados no deberán estar correlacionados entre
sí. Si elegimos el diámetro y el peso, al depender uno del otro (el cubo del radio es
proporcional al peso) estaremos haciendo dos mediciones. Pero la segunda no agrega
información a la primera.
Número de rasgos: la complejidad del reconocimiento de patrones crece rápidamente con
la dimensionalidad del problema, que se encuentra regido por la cantidad de rasgos
utilizados en el sistema.
21
2.1.3 Características del hardware El progreso continuo de las computadoras durante estos últimos 25 años ha hecho posible que
el procesamiento digital de imágenes pueda ser realizado por cualquier ingeniero o científico. En
general, una computadora debe tener cuatro características importantes para realizar esta tarea:
permitir la visualización de una imagen en alta resolución, suficiente capacidad de transferencia
de memoria, suficiente capacidad de almacenamiento y velocidad de procesamiento. Estas cuatro
demandas pueden ser llevadas a cabo en computadoras estándar [30].
2.1.3.1 Visualización de imágenes El funcionamiento integral del sistema con la visualización de imágenes provee ciertas
ventajas: se puede observar la imagen procesada y la imagen original de manera simultánea en
múltiples ventanas, y contrastar resultados utilizando herramientas gráficas. Además, permite la
visualización de imágenes en escalas de grises (8 bits), como así también imágenes en color con
una resolución de 1600x1200 o más. Por otra parte, una correcta visualización de imágenes
facilita la calibración y puesta a punto del sistema final a implementar. Cabe recordar que
generalmente estos sistemas se encuentran inmersos en ámbitos industriales con ejecución
continua, en donde no siempre es posible detener el proceso una vez iniciado.
Fig. 14 Aplicación heurisko®
22
2.1.3.2 Memoria Hoy en día las computadoras de uso cotidiano poseen suficiente memoria RAM para almacenar
múltiples imágenes. Teóricamente, una computadora de 32 bits puede almacenar hasta 4gb de
memoria y una computadora de 64 bits puede almacenar una capacidad de memoria aún mucho
mayor (más de 16gb). Sin embargo, las limitaciones en cuanto a esta capacidad suelen depender
de la placa madre (motherboards). Por otra parte, los medios de almacenamiento físico poseen
actualmente una capacidad promedio de un terabyte.
2.1.3.3 Velocidad de transferencia Gracias a las nuevas versiones de adaptadores de bus universales (USB 2.0 y USB 3.0) las
velocidades de transferencia superan ampliamente los 100 Mb/s. Esto permitió reducir el cuello
de botella que antes existía al transferir datos desde los dispositivos periféricos a la computadora.
En cuanto a la transferencia de la memoria a CPU, gracias a las nuevas tecnologías de
microprocesadores como a la de las memorias, la velocidad de transferencia supera ampliamente
los 400 Mb/s, pudiendo ser de 800 Mb/s, 1200 Mb/s y mucho más.
2.1.3.4 Velocidad de procesamiento Una aplicación de Machine Vision es una parte en la línea de producción, y sus tareas deben
finalizar dentro de un tiempo específico. Por lo tanto, el hardware a utilizar eventualmente
limitará la posibilidad de aplicar ciertos algoritmos o no. Esto quiere decir que hay ciertos
tiempos que deben ser definidos. Como el tiempo del ciclo (duración desde que se toma la
imagen hasta que se obtienen los resultados de la inspección), el inicio de la adquisición de la
imagen, tiempo máximo de procesamiento, entre otros.
La mejora en la velocidad de transferencia y la memoria también llegó acompañada del
aumento en la velocidad de procesamiento de los microprocesadores a lo largo de los años. Hoy
en día podemos hablar de velocidades mayores a 3.0 GHz y dos a ocho núcleos. En la siguiente
imagen se puede apreciar un análisis acerca de cómo la velocidad de reloj de un microprocesador
desde 1978 a 1996 ha aumentado por un factor de 50 y desde ese año al 2003 un factor de 15.
Así, podremos observar también el aumento de las operaciones de punto flotante, entre otros
aspectos (MOPS = million operations per second, MFLOPS = million floating-point operations
per second).
23
Fig. 15 Comparación clock rate.
La siguiente imagen es una comparación entre los tiempos de ejecución de un procesamiento de
imagen en una Pentium I versus una Pentium IV.
24
Fig. 16 Comparación entre Pentium I y Pentium IV de operaciones.
La prestación de procesamiento se ha visto incrementada durante la última década por la
explotación multinúcleo. Sin embargo, sólo el aumento del número de núcleos no es sostenible.
Al igual que explotar el paralelismo a nivel de instrucción en procesadores superescalares más
amplios, explotar automáticamente el paralelismo multinúcleo producirá rendimientos
decrecientes. En este contexto, la tendencia está avanzando hacia la especialización, con diseños
de chips de bajo consumo con arquitecturas heterogéneas, los cuales incorporan aceleradores
dedicados (GPUs o FPGAs) que explotan el paralelismo a nivel hardware. Una FPGA es un
dispositivo programable que contiene bloques de lógica que puede ser programada de manera
dinámica. Si lo comparamos con un PC, las mismas presentan un costo mucho más bajo, son
rápidas, y flexibles considerando su dinamicidad. Por otro lado, una GPU posee un conjunto de
núcleos de procesamiento capaces de operar a muy alta velocidad concurrentemente. Su uso
permite lograr aceleraciones en sistemas de cómputo intensivo, dentro de los que se incluye los
sistemas Machine Vision [2].
2.2 Sistemas de Machine Vision en producción de baldosas Las baldosas tienen una gran demanda en material de construcción gracias a su costo accesible,
fácil instalación, mantenimiento, resistencia a la humedad y amplia variedad de tamaños, colores
y texturas, lo que las hacen una buena opción para muchos entornos. Esto hace a la necesidad de
una producción masiva de las mismas.
25
La línea de producción para el cual se desea realizar la inspección parte de la formación del
material el cual consta de un material arcilloso con agua. El material es sometido a una
prensadora, formando lonjas de material prensado. Debido a la diversidad de pisos que existen en
la cadena de producción, estas lonjas pueden o no ser expuestas a un rodillo que se encarga de la
texturización, dando lugar a la superficie aleatoria del producto.
Las lonjas de producto son cortadas automáticamente para obtener baldosas finales del tamaño
deseado. Otros tipos de baldosas incorporan un efecto de “ahumado”, que se logra de la
pulverización de óxido de manganeso sobre la superficie para producir tal efecto. Los productos,
además, pueden o no ser impermeabilizados por la aplicación de una capa de esmalte.
Los productos son estacionados hasta alcanzar una humedad mínima, que asegure no estallar al
ser sometidos a la cocción. El proceso de cocción está establecido por medio de tres hornos que
establecen lazos de control de tal manera de estabilizar su temperatura a través de la regulación
del gas en los mismos. Luego, los productos puestos en etapa de enfriamiento, para después
ingresar en la etapa de control de calidad.
En la etapa de Control de Calidad se establecen los defectos y calidad del producto. Las
baldosas pueden tener diferentes tipos de defectos; la presencia, ausencia, o aceptación de los
mismos en una baldosa hacen a la calidad de la misma [20]. Dependiendo del número de
defectos y sus dimensiones, las baldosas se agrupan en [31]:
- De descarte (defectos inaceptables): comprende aquellas baldosas que presentan fracturas.
- Segunda Clase (pocos, pero aún aceptables defectos): comprende aquellas baldosas que
contienen “manchas” producidas por gotas del pulverizador, torceduras, marcas producidas por
maquinarias o por problemas de cocción, o bien difieran en +/- 3mm de las dimensiones
establecidas para el producto.
- Primera Clase (ninguno o muy pocos defectos aceptables): son aquellas baldosas que no
incorporen ninguna de las fallas anteriormente mencionadas.
Fig. 17 Baldosas de textura aleatoria.
2.2.1 Defectos de superficies en Baldosas Una falla puede presentarse al principio del proceso, siendo reflejada en la estructura de la
baldosa como una irregularidad en la composición geométrica de la misma (roturas, roturas en
bordes o esquinas, rayaduras en la superficie, golpes, agujeros, etc.). En el medio y final del
proceso, la falla puede presentarse en forma de agujeros o fisuras. Durante todo el proceso de
fabricación existe la posibilidad de que las baldosas puedan dañarse mientras se transportan de
una fase de producción a otra [32]. La detección de defectos en baldosas es una preocupación
muy importante en la fabricación de las mismas para mantener su calidad [6].
26
A continuación se puede observar los diferentes defectos y una descripción de los mismos [18]
[31] [33].
Defecto Descripción Tamaño Imagen
Grietas
(Cracks)
Roturas, fisuras, cortes. mm a cm.
Golpes Relieves en la superficie respecto a la
superficie plana de la baldosa.
mm.
Agujeros
(Holes)
Agujeros, cráteres. 0,25mm
mínimo.
Manchas
(Spot)
Alto contraste entre un grupo de píxeles
en relación a la intensidad que lo rodea. O
discontinuidad del color de la superficie.
mm.
Salpicaduras
(Splash)
Conjunto de manchas que siguen un
patrón y están en una porción determinada
de píxeles.
mm.
27
Gotas
(Blob)
Gotas en la superficie. Mm a cm.
Esquinas
(Corner)
Roturas en las esquinas. Mm a cm.
Bordes
(Edge)
Roturas en los bordes. Mm a cm.
Tabla 4 Tipos de defectos.
2.3 Técnicas de detección de fallas de superficie en baldosas Para detectar los defectos en las imágenes existen diversos métodos que pueden ir desde lo más
básico y simple hasta lo más sofisticado. Las técnicas de detección pueden clasificarse en tres
niveles.
En el nivel más bajo se encuentran las técnicas que tratan directamente con el crudo
(raw). Eliminación de ruido y detección de bordes son ejemplos de este nivel. La entrada
y salida es una imagen.
En el segundo nivel se encuentran los algoritmos que utilizan los resultados del primer
nivel, como por ejemplo segmentación. Recibe como entrada una imagen y como salida
atributos.
En el tercer nivel se encuentran los métodos que se utilizan para dar sentido o semántica a
la información provista de los niveles inferiores. Recibe como entrada atributos y como
salida un análisis exhaustivo [33].
28
Fig. 18 Técnicas de detección de fallas.
A continuación, se detallarán diversas técnicas que han sido de utilidad para la detección de
defectos en las baldosas. Cabe destacar que existen más técnicas dentro de cada nivel, pero como
mencionamos anteriormente, sólo se mostrarán las utilizadas en este trabajo. Otro punto a tener
en cuenta es que los métodos de tercer nivel no son tenidos en cuenta en esta tesis [2].
La umbralización (thresholding) fue una de las técnicas más utilizadas. La misma fue aplicada
en todos los algoritmos para eliminar datos que no sean de interés [20].
Fig. 19 Aplicación de threshold.
Cabe destacar que existen dos tipos de umbralado, los llamados locales y los llamados globales.
En los primeros, el valor de umbral varía por cada porción de imagen, mientras que en los
segundos, el valor es fijo para toda la imagen [7]. Dentro de los algoritmos locales, para la
detección de cracks, el umbral puede establecerse por medio del uso de la Desviación Estándar
Local [20].
29
Fig. 20 Aplicación de Local Standard Deviation
En los algoritmos para la detección de rayaduras con la operación de Ecualización de
Histograma se puede incrementar la diferencia entre las intensidades llevándola a extremos como
se sugiere en [8].
Por otra parte, es común el uso de operaciones morfológicas en diversos algoritmos de
detección, puntualmente la erosión y la dilatación. La primera, permite reducir elementos de una
imagen. La segunda, por otro lado, tiende a expandir los objetos.
Fig. 21 Dilatación.
Fig. 22 Erosión.
Cuando se utiliza estas operaciones de manera conjunta, se habla de apertura y clausura. Una
apertura, es cuando se hace una erosión y luego una dilatación. Si había un hueco en el interior
de un objeto en la imagen A, se lo abre y si hay un objeto de tamaño de un píxel se lo elimina.
Una Clausura, es cuando se hace una dilatación y luego una erosión. Si había un hueco en el
30
interior de un objeto en la imagen A, desaparece y también se quitan rugosidades huecas de los
bordes de los objetos [22].
Otro de los algoritmos, que permite la detección de las esquinas, es el método de Harris-
Stephens. El mismo analiza los quiebres de intensidad de los puntos, pudiendo obtener cada uno
de los píxeles donde esto sucede. De esta manera, es fácil enmarcar la baldosa y obtener las
cuatro esquinas para luego obtener la correspondiente dimensión de la misma. Esta técnica se
basa en el análisis de una ventana que va desplazándose a lo largo de la imagen. Al desplazarse,
puede suceder que no se encuentren cambios significativos (primera imagen). Puede resultar que
encuentre cambios en una sola dirección como en la segunda imagen. O bien, si dicho
desplazamiento, continúa obteniendo cambios significativos en todas las direcciones, como la
tercera imagen sugiere, estamos hablando de una esquina.
Fig. 23 Aplicación de Harris-Stephens.
La localización de objetos es otro conjunto de algoritmos utilizado. Para ello existen dos
maneras: la primera es el etiquetado de objetos, que consiste en escanear la imagen completa, al
encontrar un uno (1), una rutina de propagación comienza para etiquetar el objeto que esté
formado por todos los unos conectados. Como la imagen original ya se encuentra en uso en
memoria, una nueva imagen es creada para dicho etiquetado. El escaneo, continúa ignorando
todos los objetos que ya fueron etiquetados. La siguiente imagen puede ser el resultado de este
algoritmo [2]:
Fig. 24 Etiquetado de elementos de una imagen.
La otra técnica, es la basada en un boundary o frontera. Una vez aplicada alguna de las
operaciones de bordes o umbralado, la detección de objetos se basa en moverse repetidamente al
siguiente píxel de borde. Para ello hay que asegurarse de: (a) Nunca retroceder la dirección del
31
recorrido; (b) Saber cuándo se ha recorrido todo el contorno; (c) Registrar los objetos
encontrados [2].
2.4 Sistemas comerciales de clasificación de baldosas Si bien existen soluciones comerciales que atacan el problema, el costo de las mismas supera
los cientos de miles de Euros. Además, las soluciones compatibles, requieren costos importantes
de importación, y un tiempo considerable de capacitación de los operarios. Por otra parte, estos
sistemas no siempre se tratan de sistemas flexibles que puedan ser adaptados de forma natural a
las líneas de producción ya en funcionamiento.
Dentro de las soluciones comerciales, se pueden encontrar Flawmaster y Processmaster.
2.4.1 Flawmaster Dentro de los sistemas comerciales actuales relacionados con baldosas se puede encontrar
Flawmaster. Es un sistema de inspección y control que analiza los azulejos cerámicos desde
múltiples ángulos y detecta diversos tipos de defectos:
Mecánicos: perímetro, ángulos, bordes y grietas;
De decoración: falta de decoración, punto negro, punto blanco, manchas, gotas, líneas
finas, bandas y uniformidad;
Reflexión: estructura, agujeros, grumos, hundimientos, bandas de esmalte, grietas, efecto
brillante/mate.
El producto posee un sistema de iluminación LED y contiene un set de algoritmos estándar
preconfigurados que luego pueden ser configurados para cada tipo de producto.
Sus principales ventajas son: la velocidad de inspección; inspección uniforme; monitorización
continua de los defectos de fabricación y recopilación de datos [34].
Fig. 25 Flawmaster.
32
2.4.2 Processmaster Es un sistema de inspección para ser instalado al final de la línea de esmaltado en la producción
de azulejos cerámicos. Puede soportar las difíciles condiciones ambientales presentes en dicha
línea de producción. Utiliza una cámara de video a color y una luz con tecnología LED simétrica.
Puede detectar defectos mecánicos y de decoración. Cabe destacar que, al utilizarse previo a la
cocción, permite la recuperación de la masa de los azulejos [34].
Fig. 26 Processmaster.
33
Capítulo 3
Desarrollo
3.1 Entorno de desarrollo seleccionado El desarrollo de los algoritmos fue realizado utilizando MATLAB, el cual es un lenguaje de
alto rendimiento (performance) para procesamiento de matrices. El lenguaje integra
procesamiento, visualización y programación de una manera intuitiva, simple y fácil. Tanto los
problemas como sus soluciones se expresan en notación matemática. Los usos más comunes son:
Matemática.
Desarrollo de algoritmos.
Captura de datos.
Modelación, simulación y prototipado.
Análisis de datos, exploración y visualización.
Construcción de gráficos.
Desarrollo de aplicaciones matemáticas y científicas que incluyan interfaz de usuario.
Fig. 27 Productos que ofrece Matlab.
La imagen anterior muestra cómo está compuesto MATLAB hoy en día. Por un lado, dentro de
MATLAB se encuentran los complementos para Finanzas, Procesamiento de Imágenes, entre
otros. A su vez MATLAB posee interfaces y métodos para conectarse con la base de datos,
mostrar estadísticas y gráficos, etc. Una parte importante de lo que es este framework es la
simulación. MATLAB viene junto con SIMULINK y se encuentra íntimamente relacionado con
él, permitiendo realizar simulaciones de circuitos electrónicos, procesamiento de imágenes,
comunicación.
El nombre MATLAB surge de “Matrix Laboratory” y fue escrito originalmente para proveer
acceso al software de matrices creado por LINPACK (Linear System Package) y EISPACK
(Eigen System Package). Actualmente, MATLAB es una herramienta estándar para los cursos
34
introductorios y avanzados de matemática, ingeniería y ciencia en universidades de todo el
mundo. También, es muy usada en la industria para tareas de investigación, desarrollo y análisis.
Esta herramienta, a su vez, posee diversos complementos que se encuentran en la “caja de
herramientas” (ToolBox).
Fig. 28 Listado de complementos que se pueden instalar junto con MATLAB.
Para el procesamiento de imágenes, incluye una extensa base de datos de algoritmos que
facilita la definición y prototipado de sistemas de Machine Vision. Además, MATLAB utiliza
dos bibliotecas LAPACK (Linear Algebra Package) y BLAS (Basic Linear Algebra
Subprograms) para realizar todas las operaciones de matrices. Dichas bibliotecas, han
optimizado el costo computacional de las operaciones con matrices. Otro aspecto a destacar, es
que MATLAB permite delegar operaciones a GPUs (Graphics Processor Unit) o FPGAs (Field
Programmable Gate Array) de manera sencilla y simple, que con otros lenguajes podría resultar
un poco más tedioso [35].
3.2 Ambiente de captura propuesto Para poder realizar este trabajo y obtener las fotos de las baldosas, se desarrolló un ambiente de
captura. El mismo consistió en una mesa, un tablero pintado de manera uniforme donde se
apoyaron cada una de las baldosas, un trípode para mantener la cámara estable, una cámara, y un
celular. Este último fue necesario para tomar las fotografías de manera remota, evitando el
contacto con el sensor de captura y obtener de esta forma un conjunto de imágenes con
parámetros similares.
35
Fig. 29 Ambiente de captura.
El proceso fue simple, y se basó en apoyar la baldosa sobre el tablero negro y luego desde un
smartphone obtener la fotografía. Para poder sacar la foto desde el smartphone se utilizó una
aplicación para Android provista por Nikon, obtenida desde el Marketplace de Google. Su
nombre es Wireless Mobility Utility (WMU) y permite realizar una conexión punto a punto entre
ambos dispositivos través de la señal Wifi.
36
Fig. 30 MarketPlace WirelessMobileUtility
Una vez obtenidas todas las imágenes, las mismas fueron transferidas a la PC para su posterior
análisis.
3.2.1 Iluminación Con respecto a la iluminación, el primer intento fue colocar la cámara en el interior e iluminar
desde uno de los laterales. Esto generó dificultades a la hora de analizar la imagen, ya que la
intensidad de luz afectó considerablemente los resultados, haciendo que los operadores de
imágenes no pudieran detectar de forma correcta los defectos de superficie.
En este caso la percepción de las gotas no se vería afectada ya que la misma se encuentra del
lado derecho. Pero si un defecto se encontrara donde se observa el haz de luz, el mismo podría
resultar ignorado de manera completa por la aplicación del threshold; o bien, se debería utilizar
un threshold cuyo valor hubiese permitido aparecer nuevos elementos que en realidad no serían
defectos en sí.
37
Fig. 31 Captura con haz de luz a la izquierda.
Debido a esto, se optó por buscar un sistema de iluminación más uniforme. Por ello, se realizó
la captura de fotos con iluminación natural en días nubosos, donde la luz del sol no pudiera
afectar de alguna manera una porción de la baldosa. Este método puede ser reproducido en un
sistema de iluminación controlado. A continuación, se presentan distintas imágenes donde la luz
parece ser lo más uniforme posible:
38
Fig. 32 Ejemplo primer captura baldosa uniforme.
Fig. 33 Ejemplo segunda captura baldosa uniforme.
Fig. 34 Ejemplo tercer captura baldosa uniforme.
39
3.3 Desarrollo de la aplicación Para el desarrollo y ejecución del sistema, que consiste en la detección de defectos en las
baldosas, se implementó una aplicación con una interfaz visual. La misma está conformada por
un menú que permite elegir una imagen y luego ejecutar los diversos algoritmos de detección de
defectos. Cada algoritmo puede ser configurado por medio de una serie de parámetros de
entrada, los cuales poseen un valor por defecto. Sin embargo, el usuario puede modificarlos para
obtener y analizar distintos resultados. Una vez ejecutado cada algoritmo, se procede a mostrar
una descripción final que indica el tiempo de ejecución y cuantos defectos han sido detectados.
Fig. 35 Captura de pantalla de la interfaz de la aplicación.
Las siguientes subsecciones detallan la evolución de los algoritmos seleccionados para la
identificación de los defectos de superficie en el conjunto de baldosas utilizado.
3.3.1 Algoritmo de detección de bordes, esquinas y dimensión A través de la detección de bordes, el algoritmo permite reconocer dos defectos sumamente
importantes: el primero de ellos, el de detectar defectos en las esquinas y el otro, irregularidades
en los bordes. Adicionalmente, si las esquinas son correctas, es posible detectar la dimensión de
las baldosas utilizando la ecuación de área en rectángulos (b*h), considerando que el cálculo de
los valores que integran la ecuación provienen de la distancia entre dos puntos.
Un primer intento para desarrollar esta detección comenzó por obtener la imagen y convertirla
a escala de grises. Se procedió a aplicar un threshold a la imagen de manera que el resultado de
la segmentación obtenida sean objetos de interés a la aplicación (en este caso, la baldosa).
40
Fig. 36 Conversión de imagen a escala de grises.
La primera aproximación para obtener el borde la baldosa fue la aplicación de un filtro de
Prewitt. Sin embargo, resultó dificultoso poder unir los puntos de los bordes encontrados. En la
siguiente imagen, se presenta el resultado obtenido de aplicar dicho filtro:
Fig. 37 Aplicación de Prewitt.
Además, se puede observar en el margen superior izquierdo de la baldosa que el contorno no es
del todo preciso, más allá de la distorsión generada en la adquisición de la imagen.
Considerando que los resultados obtenidos no eran los esperados, se decidió como opción la
utilización de la operación regionprops, que permite medir cantidades y características de una
imagen en blanco y negro, determinando la propiedad de cada región blanca contigua. Esta
operación fue utilizada y configurada de manera tal que permita encontrar el rectángulo más
chico dentro de la región.
41
Fig. 38 Uso de regionprops para obtener el borde de la baldosa.
Este set de operaciones presentó diversos inconvenientes, el primero y principal es que la
operación de regionprops busca un rectángulo el cual no es del todo correcto considerando la
siguiente imagen que presenta cierta distorsión. Sin embargo, el problema mayor es en el caso
que la baldosa cuente con esquinas rotas, regionprops falla y no puede determinar cuántas
esquinas fueron encontradas, cuántas presentan fallas, etc. En consecuencia, se buscó otro tipo de
operación capaz de reconocer las esquinas: el método de Harris-Stephens. El mismo se basa en
detectar los cambios de intensidades en una ventana (conjunto de píxeles).
Fig. 39 Aplicación de Harris-Stephens para la detección de corners.
42
La imagen previa podría haber encontrado “corners” dentro de la baldosa. Sin embargo, existe
una operación de Matlab (imfill) que rellena los agujeros (“holes”) de los objetos en una imagen.
Por otra parte, si se observan elementos fuera de la baldosa, con un filtro que considere el área
pueden ser eliminados (bwareaopen).
Teniendo el listado de todos los “corners”, debemos encontrar cuáles corresponden a cada
esquina. Para esto se establece un rango arbitrario (llamado, a partir de aquí, handicap), el cual
será tomado en cuenta para conservar aquellos píxeles que, a priori, cumplen con la potencial
condición de ser esquina. Para que un píxel cumpla con la condición mencionada, sus valores de
coordenadas X e Y deben aproximarse a los mínimos o máximos absolutos de X e Y de la
baldosa (estos valores se extraen del listado de “corners”). Un píxel se aproxima lo suficiente al
mínimo o máximo de X y/o Y si la diferencia de las coordenadas, con respecto a los valores
mencionados recientemente, es menor al handicap.
Esto funciona de la siguiente manera:
1. Se aplica la operación de corners de Harris-Stephens.
2. Del listado de corners, se obtiene el mínimo X e Y y lo mismo se hace con los máximos.
3. Se recorre todo el listado de los píxeles que forman parte de “corners” y se calcula la
distancia, en píxeles, del píxel, valga la redundancia, analizado con respecto al mínimo o
máximo X, según corresponda y lo mismo con los valores de Y. Si cumple con la
condición de que el valor absoluto de esa distancia es menor al rango establecido
(handicap), se almacena ese píxel en un vector determinado. Existen cuatro vectores
(uno correspondiente a cada esquina) en donde se almacenaron los píxeles de acuerdo a
los criterios mencionados previamente. Aquellos píxeles que no se almacenaron en
ninguno de los cuatro vectores son tomados como potenciales errores de bordes y
almacenados en un nuevo vector.
4. Luego se recorren los vectores para obtener las esquinas correspondientes.
5. Para cada vector, se obtiene el valor que corresponda (máximo o mínimo) de X e Y y se
genera el punto del vértice de esa manera.
6. Se recorre el vector de errores y se toman aquellos píxeles que cumplen con la condición
de error. Para esto se utiliza un cálculo igual al utilizado en los pasos previos. Esto
significa, que, al obtener los máximos y mínimos, los elementos de dicho vector que
superen dicho handicap serán considerados como un error en bordes.
Cabe destacar, que el algoritmo encuentra muchos puntos que no son de interés y que deberían
eliminarse. Con la aplicación de operaciones morfológicas de erosión y dilatación este
inconveniente pudo resolverse de forma sencilla.
43
Fig. 40 Eliminación de elementos que no se consideran bordes.
Nota: Si bien la imagen presenta distorsión, al calibrarse la cámara los puntos de las esquinas
serán los correctos.
Al ejecutar el algoritmo con el set de baldosas, se descubrió que las baldosas que poseen un
esmaltado sobre la superficie, presentan ciertos inconvenientes si se trata a las imágenes en
escalas de grises. El resultado obtenido por el algoritmo ofrece una superficie mucho mayor a la
correspondida por la baldosa. Debido a esto, se optó por tener la imagen en RGB y luego aplicar
un threshold entre los valores de RGB. A continuación, se puede ver una imagen con la
detección de las esquinas.
Fig. 41 Final de ejecución de detección de esquinas.
44
Este conjunto de operaciones permite la identificación de cada una de las esquinas y la
detección de las que se encuentran rotas. Por otra parte, el método de Harris-Stephens, detecta
cambios de intensidades, por lo que un borde roto, también es detectado. Con la obtención del
valor de los mínimos y máximos en el eje de coordenadas, indicar un error en un borde resulta
fácil al comparar cada “corner” detectado con estos valores. En la imagen a continuación se
pueden observar los cuatro puntos rojos correspondientes a las esquinas y sobre el margen
superior izquierdo de la baldosa, nuevos puntos que indican los errores en bordes.
Fig. 42 Ejemplo de detección de error en bordes.
Fig. 43 Acercamiento de zoom sobre un borde con defecto detectado.
45
Finalmente, se calcula la dimensión, siempre y cuando, estén las cuatro esquinas detectadas y
no haya presencia de errores en bordes. Cabe destacar que el cálculo de la misma se basa en las
esquinas, pero como alternativa podría calcularse contando todos los píxeles blancos dentro del
rectángulo al tener la imagen binaria.
Gracias a la identificación de las cuatro esquinas, los siguientes algoritmos de detección de
errores como gotas, agujeros, rayaduras, etc., recibirán como entrada una subimagen de su
original, siendo la misma solamente la baldosa en sí, sin tener en cuenta el tablero en donde se
apoya la misma.
3.3.1.1 Ejecución del algoritmo
Fig. 44 Operaciones realizadas para bordes, esquinas y dimensión.
1. La imagen es leída.
2. Se calcula un valor de threshold considerando el valor máximo y mínimo de uno de los
colores y se aplica considerando la imagen en RGB. Es decir, se conservan (marcándose
como blanco) aquellos píxeles cuya intensidad es superior al threshold obtenido. El
threshold puede ser parametrizado a través de cornerThreshold.
3. Se eliminan todos los elementos que posean un área menor a 50000 píxeles
(bwareaopen).
4. Se llenan los agujeros (“holes”) que la baldosa tenga en su interior (imfill).
5. Se aplica el método de corners de Harris-Stephens detectando todos los cambios de
intensidades en una ventana (conjunto de píxeles).
46
6. Se clasifican los puntos encontrados en cuatro vectores correspondientes a cada lado y se
almacenan los errores en otro.
7. Se dibujan los cuatro puntos y si no hay errores se retorna la subImagen de la imagen
original para ser utilizada en los próximos algoritmos.
8. Se calcula la dimensión.
3.3.1.2 Pseudocódigo // STEP 1 var I = imread(path); // STEP 2 var bw = threshold(I, cornerThreshold); // STEP 3 bw = bwareaopen(bw, 50000); // STEP 4 bw = imfill('holes'); // STEP 5 var corners = corners(A); var cornersX = C(:,1); var cornersY = C(:,2); // STEP 6 var minX = min(cornersX); var maxX = max(cornersX); var minY = min(cornersY); var maxY = max(cornersY); for each corner in corners if (distance(minX, corner(X)) < handicupCorner) && (distance(minY, corner(Y)) < handicupCorner) v1.push(corner); elseif (distance(maxX, corner(X)) < handicupCorner) && (distance(minY, corner(Y)) < handicupCorner) v2.push(corner); elseif (distance(minX, corner(X)) < handicupCorner) && (distance(maxY, corner(Y)) < handicupCorner) v3.push(corner); elseif (distance(maxX, corner(X)) < handicupCorner) && (distance(maxY, corner(Y)) < handicupCorner) v3.push(corner); else vError.push(corner); var cornersDetected = 0; if v1.length var p00 = min(v1(X)) var p01 = min(v1(Y)) cornersDetected + 1 if v2.length var p10 = min(v2(X)) var p11 = min(v2(Y)) cornersDetected + 1 if v3.length var p20 = min(v3(X)) var p21 = min(v3(Y)) cornersDetected + 1
47
if v4.length var p30 = min(v4(X)); var p31 = min(v4(Y)); cornersDetected + 1; if cornersDetected !== 4 return ERROR! for each error in vError if (distance(minX, error(X)) < handicupError) || (distance(maxX, error(X)) < handicupError) || (distance(minY, error(Y)) < handicupError) || (distance(maxY, error(Y)) < handicupError)) vNoError.push(error); else vErrorEdge.push(error); // STEP 7 if (vErrorEdge.length > 0) draw(vErrorEdge); // STEP 8 var dimension = calculateDimension(v1, v2, v3, v4);
Tabla 5 Pseudocódigo de detección de esquinas, bordes y dimensión.
48
3.3.2 Algoritmo para la detección de blobs (gotas) Los algoritmos propuestos para la detección de blobs parten desde la subimagen generada por
las operaciones de detección de bordes y esquinas. Se aplica un threshold a la imagen para
obtener los objetos de interés y luego la imagen es invertida para aplicar la operación que elimina
los elementos que sean menores a la variable numérica areaNotIncluded cantidad de píxeles
(bwareaopen).
En una primera aproximación a la solución se consideró aplicar un filtro de Canny con un
threshold indicado y luego aplicar ciertas operaciones morfológicas sobre los objetos obtenidos.
Las mismas corresponden a una clausura. Su principal característica es eliminar ciertos huecos y
rugosidades de los bordes de los objetos. Por último, se contabilizaban los elementos
encontrados.
Fig. 45 Primer enfoque para detección de gotas.
Como se puede observar, este algoritmo detectaba muchos falsos positivos (elementos que
deberían no ser considerados como gotas). Por tal motivo, se descartó el mismo y se buscó otra
solución.
La nueva solución, luego de la eliminación de los elementos que posean menor cantidad de
píxeles definida en la variable areaNotIncluded (200), realiza una clausura en forma de discos
para preservar la naturaleza circular de los elementos. Para ello, se especifica un radio
determinado que será tenido en cuenta para dicha operación.
La siguiente operación es llenar los agujeros de todos los elementos de la imagen, esto
significa, asignarles un valor a todos los píxeles en negro dentro de los objetos de interés (imfill).
La consideración de los elementos que tengan un área entre cierto rango, hace que objetos muy
pequeños no sean tenidos en cuenta. Finalmente, se contabilizan todos los elementos y se calcula
el área de cada uno. Obteniendo el nivel de “redondez” para cada ítem del conjunto, se
seleccionan todos los elementos que posean un factor mayor a la variable thresholdRound (0.45
49
por defecto). Cabe destacar que este factor se encuentra entre cero (0) y uno (1). En la siguiente
imagen se puede apreciar la detección y el cálculo de objetos de interés con su nivel de redondez.
Fig. 46 Cálculo redondez de los elementos.
Al ejecutar este algoritmo se detectaron dos factores importantes: uno es el valor de clausura de
los discos y el otro el rango de la superficie de los objetos a considerar. El primer factor se puede
ver en la siguiente imagen, la cual la “redondez” de cada elemento detectado aumenta al utilizar
un valor de discos de cinco (5). La imagen anterior, muestra los resultados con un valor de discos
de tres (3).
50
Fig. 47 Cálculo de redondez con nueva parametrización de disk.
El otro factor, es la consideración del rango de la superficie a tener en cuenta. Este hizo que se
detectaran falsos positivos. La siguiente imagen es un reflejo de dicha situación:
Fig. 48 Ejemplo resultado final de la detección de gotas.
51
3.3.2.1 Ejecución del algoritmo
Fig. 49 Operaciones realizadas para la detección de blobs (gotas).
1. Se obtiene la sub imagen a partir de la detección de esquinas.
2. Se le aplica un threshold a la imagen.
3. Se eliminan todos los elementos que tengan una superficie menor a areaNotIncluded a
través de la operación bwareaopen.
4. Se realiza una clausura de la imagen para preservar la naturaleza circular de los
elementos utilizando imclose con un valor de 5 de los discos por defecto o lo que
blobsDisk indique.
5. Se llenan los agujeros (“holes”) que la baldosa tenga en su interior (imfill).
6. Se seleccionan los elementos que posean una superficie entre dos valores de píxeles
(minAreaFilt y maxAreaFilt) a través de bwareafilt.
7. Se contabilizan todos los elementos detectados en dicho rango (bwboundaries).
8. Se obtiene el nivel de “redondez” de cada elemento a través de una operación basada en
la superficie.
52
9. Se seleccionan todos los elementos cuya redondez es mayor al thresholdRound
determinado por la ejecución del algoritmo.
3.3.2.2 Pseudocódigo
// STEP 1 subImage = getImage(); // STEP 2 bw = threshold(subImage); // STEP 3 bw = bwareaopen(bw, areaNotIncluded); // STEP 4 se = strel(blobdisk); bw = imclose(bw, se); // STEP 5 bw = imfill(bw); // STEP 6 bw = bwareafilt(bw,[minAreaFilt maxAreaFilt]); // STEP 7 elements = bwboundaries(bw); for each element in elements // STEP 8 roundness = getRoundness(); // STEP 7 if roundness > thresholdRound blobs.push(element); if blobs.length > 0 draw(blobs);
Tabla 6 Pseudocódigo de detección de blobs.
53
3.3.3 Algoritmo para la detección de Pinhole Para el caso de detección de pinholes, se tomaron ciertas operaciones de la detección de gotas
para la detección de agujeros debido a la naturaleza del problema. Las siguientes imágenes
muestran algunos pinholes que se encuentran en las baldosas, que denotan la similitud con el
caso anterior:
Fig. 50 Ejemplo de pinhole en baldosa.
Como se puede observar, un pinhole se encuentra rodeado por una figura “redonda”. Esto
significa que podrían ser detectados por cierto grado de “redondez” como se hizo con Blobs. La
ejecución del algoritmo comienza con aplicar un threshold que permite la eliminación de píxeles
que no sean de interés. La realización de una dilatación permite unir los píxeles detectados.
Nuevamente, elementos de menor área que “areaNotIncluded” son eliminados del resultado
intermedio. La aplicación de una clausura, hace que los puntos dentro del pinhole se conecten
entre sí y los muy pequeños sean eliminados. En este punto, se aplica el llenado de agujeros
(“holes”) para eliminar todos los píxeles espureos de los elementos. Finalmente, se cuenta la
“redondez” de los elementos existentes que posean un área entre “minAreaFilt” y
“maxAreaFilt”. Para este algoritmo dicho factor “thresholdRound” es mayor que el de Blobs,
superando el 85%. La siguiente imagen muestra un factor de redondez del pinhole de 89%.
54
Fig. 51 Cálculo de redondez para pinhole.
Por último, la siguiente imagen muestra la selección de dicho elemento:
Fig. 52 Ejemplo de detección de pinhole.
55
3.3.3.1 Ejecución del algoritmo
Fig. 53 Operaciones realizadas para la detección de pinholes.
1. Se obtiene la sub imagen a partir de la detección de esquinas.
2. Se le aplica un threshold a la imagen.
3. Se aplica una dilatación para conectar píxeles entre sí a través de pinHoleDisk.
4. Se eliminan todos los elementos que tengan una superficie menor a areaNotIncluded a
través de la operación bwareaopen.
5. Se realiza una clausura de la imagen para preservar la naturaleza circular de los
elementos utilizando con un valor de 5 de los discos (pinHoleArea).
6. Se llenan los agujeros (“holes”) que la baldosa tenga en su interior (imfill).
7. Se seleccionan los elementos que posean una superficie entre dos valores de píxeles
(minAreaFilt y maxAreaFilt) a través de bwareafilt.
56
8. Se contabilizan todos los elementos detectados en dicho rango (bwboundaries).
9. Se obtiene el nivel de “redondez” de cada elemento a través de una operación basada en
la superficie.
10. Se seleccionan todos los elementos cuya redondez es mayor al thresholdRound
determinado por la ejecución del algoritmo.
3.3.3.2 Pseudocódigo // STEP 1 subImage = getImage(); // STEP 2 bw = threshold(subImage); // STEP 3 bw = imdilate(bw, 5); // STEP 4 bw = bwareaopen(bw, areaNotIncluded); // STEP 5 se = strel(pinHoleDisk); bw = imclose(bw, se); // STEP 6 bw = imfill(bw); // STEP 7 bw = bwareafilt(bw,[minAreaFilt maxAreaFilt]); // STEP 8 elements = bwboundaries(bw); for each element in elements // STEP 9 roundness = getRoundness(); // STEP 10 if roundness > thresholdRound pinHoles.push(element); if pinHoles.length > 0 draw(pinHoles);
Tabla 7 Pseudocódigo para la detección de pinholes.
57
3.3.4 Algoritmo para la detección de cracks (rayaduras) Para abordar la detección de cracks (rayaduras), en primera instancia, se intentó basar el
desarrollo a partir de las operaciones de Thresholding, Canny, Erosión y Dilatación. Sin
embargo, este enfoque no es del todo correcto ya que una detección satisfactoria depende de una
configuración adecuada de parámetros dependiente de cada baldosa procesada. Esto significa que
es necesario considerar un parámetro diferente para el threshold, otro para Canny y dos o tres
para las operaciones morfológicas. Por otro lado, al efectuar estas operaciones sobre cualquier
otro tipo de baldosa, el factor de detección de falsos positivos era muy alto. En consecuencia, se
optó por aplicar un enfoque diferente, abordando el sistema de detección de rayaduras a partir del
análisis de las líneas horizontales y verticales de la baldosa.
Fig. 54 Ejemplo de baldosa con rayaduras.
Esta decisión surge debido a que, por ser texturas aleatorias, se sabe que existen ciertos relieves
en la superficie de la baldosa. Sin embargo, los mismos no son rectas, sino que curvos o con
ondulaciones, mientras que las rayaduras tienen cierto nivel de rectitud, como podemos apreciar
en la imagen anterior.
De esta manera, el algoritmo parte de la subimagen obtenida de la detección de bordes. Una
diferencia importante con los demás algoritmos es que la imagen es convertida a escala de grises
en lugar de realizar un thresholding con la imagen a color. Luego, se realiza la operación de
ecualización de histograma (histeq), llevando cada una de las intensidades a un rango de 0 a 255.
Esto permite distribuir los oscuros de mejor manera, resaltando las supuestas rayaduras y
dejando en niveles más claros lo que correspondería a relieves de la baldosa.
La siguiente operación se basa en realizar una detección de bordes sobre la superficie de la
baldosa, y para ello se utiliza Canny con un factor de threshold alto. Se intentó realizar lo mismo
con Prewitt o Sobel, pero se detectaron una mayor cantidad de bordes (“edges”), los cuales no
correspondían a rayaduras.
58
Fig. 55 Ejemplo ejecución de Canny.
Una vez obtenidos los bordes, se aplica la transformación de Hough y se obtienen los picos de
Hough. Finalmente se buscan las líneas rectas o verticales de la imagen utilizando este método.
En el caso de que se encuentren líneas, las mismas se dibujan y se informa que la baldosa posee
rayaduras en su superficie.
Fig. 56 Aplicación de Hough Transform.
59
Sin embargo, este conjunto de operaciones, detectaba líneas en todas las baldosas, no solamente
en las que poseían rayaduras. Por lo tanto, se realizó una nueva versión del algoritmo analizando
la textura de la baldosa, aplicando una operación basada en la desviación estándar local (stdfilt).
Los elementos que no deberían ser considerados se eliminaron aplicando un threshold, y
operadores de clausura, que permite eliminar elementos muy chicos y sobredimensionar otros.
En este punto, se aplica el llenado de agujeros (“holes”) para eliminar todos los píxeles espurios
de los elementos detectados. Finalmente, se seleccionan todos los elementos detectados cuya
área encuentre dentro del rango definido como “minAreaFilt” y “maxAreaFilt”.
Fig. 57 Muestra de elementos detectados luego de aplicar stdfilt.
Por último, en la siguiente imagen se muestra la selección de todos los elementos detectados:
Fig. 58 Ejemplo de detección de rayaduras.
60
3.3.4.1 Ejecución del algoritmo
Fig. 59 Operaciones realizadas para la detección de cracks (rayaduras).
1. Se obtiene la subimagen a partir de la detección de esquinas.
2. Se convierte la imagen a blanco y negro (rgb2gray).
3. Se realiza la ecualización del histograma (histeq).
4. Se obtiene la desviación estándar local de la imagen (stdfilt)
5. Se aplica un threshold con un valor “cracksThreshold”.
6. Se realiza una clausura de los elementos (imclose), con un tamaño “cracksDisk”.
7. Se llenan los agujeros (“holes”) que la baldosa tenga en su interior (imfill).
8. Se seleccionan los elementos que posean una superficie entre dos valores de píxeles
(“minAreaFilt” y “maxAreaFilt”) a través de bwareafilt.
9. Se cuentan todos los elementos encontrados y se marcan en la imagen.
61
3.3.4.2 Pseudocódigo
// STEP 1 A = rgb2gray(subImage); // STEP 2 J = histeq(B); // STEP 3 L = stdfilt(J); // STEP 4 bw = threshold(L, cracksThreshold); // STEP 5 bw = imclose(bw, cracksDisk); // STEP 6 bw = imfill(bw); // STEP 7 bw = bwareafilt(bw,[minAreaFilt maxAreaFilt]); // STEP 8 elements = bwboundaries(bw);
// STEP 9 foreach element in bw draw(element);
Tabla 8 Pseudocódigo de detección de cracks.
62
3.4 Mecanismo de ejecución y clasificación de baldosas El proceso de ejecución inicia con la selección de la imagen a través de la interfaz visual.
Luego se ejecuta el algoritmo de detección de defectos en esquinas, bordes y dimensión. En él se
obtiene la subImagen para los demás algoritmos de detección. Esto quiere decir que, si se
detectase algún error en esta etapa, la aplicación informa el mismo, quedando estas baldosas
descartadas para la ejecución de los algoritmos de detección de blobs, cracks y pinhole. Por otra
parte, la ausencia de errores permite la ejecución de dichos algoritmos. Esto hace posible que una
baldosa pase por todo el proceso de detección y así, considerarla para la toma de todas las
métricas para su análisis (tiempo de ejecución, tiempos promedios, duración de cada algoritmo,
entre otros). En conclusión, se tendrán dos grupos de baldosas, las que solamente puedan
considerarse para la primera parte (esquinas, bordes y dimensión) y aquellas que están
disponibles por toda la ejecución. Todo lo mencionado anteriormente se puede observar en el
siguiente diagrama de ejecución:
Fig. 60 Diagrama de ejecución.
63
Capítulo 4
Resultados Experimentales
4.1 Descripción del conjunto de test En esta sección se detallarán aspectos significativos respecto tanto al conjunto de prueba sobre
el cual se evaluarán los algoritmos propuestos, así como las características del hardware de
adquisición y la plataforma de hardware en donde ejecutarán los algoritmos, A continuación, se
especificarán detalles acerca de la cámara, el tablero que se utilizó para sacar las fotografías, la
empresa que nos proveyó las baldosas y del conjunto de baldosas en sí.
4.1.1 Descripción de la captura de imágenes En principio, la cámara a utilizar fue una Micron Sensor CMOS MT9P001 de 5 Megapíxeles.
La misma, luego de instalar el software requerido, puede ser instalada en la PC y conectada
directamente a Matlab para la captura de imágenes. Sin embargo, este dispositivo fue descartado
debido a que la definición (megapíxeles) aportada por éste resultaba no ser lo ideal para los
análisis de las baldosas. Además, por el tipo de dispositivo, al digitalizar la baldosa lo hacía con
mucha distorsión, por la distancia entre sensor y objeto.
Fig. 61 Cámara Micron.
Por estos motivos es que se decidió optar por cambiar el dispositivo de captura y utilizar una
cámara digital de marca Nikon modelo Coolpix S3700, con 20.1 Megapíxeles.
64
Fig. 62 Cámara Nikon Coolpix.
Fig. 63 Especificaciones de cámara.
La única particularidad, como mencionamos en el Capítulo 3, es que la misma posee una
conexión Wifi punto a punto con un celular, de manera que la misma se podía controlar desde el
celular sin ser manipulada, evitando cambios en zoom o pixelado al realizar la captura de manera
manual.
Para la captura de las baldosas, se creó un fondo uniforme formado por una madera pintada de
color negra tiza para evitar al máximo el rebote de la luz. Cada baldosa era colocada sobre dicho
tablero, procediendo a continuación con la captura de la misma. Que el fondo sea de un solo
color y la luz no rebotara, sirvió para realizar la segmentación y detección de esquinas de manera
más productiva. Esto se debe pura y exclusivamente a que las intensidades del fondo eran muy
diferentes a las intensidades de la baldosa en sí.
Fig. 64 Tablero para la captura de baldosas.
65
4.1.2 Descripción del conjunto de pruebas Para realizar este trabajo, se nos han provisto baldosas de la empresa Loimar. La misma, es una
fábrica ubicada en la ciudad de Tandil, presente de hace más de 40 años en el mercado argentino.
Se ha constituido como uno de los principales productores de cerámica roja, dedicándose a la
fabricación de tejas, baldosas y ladrillos. Posee una producción mensual de 800.000 tejas
esmaltadas, 60.000 m2 de pisos rústicos y hasta 20.000 tn. de ladrillos huecos cerámicos.
Fig. 65 Fábrica Loimar.
Con respecto al proceso de fabricación de baldosas, la misma comienza a partir de la pasta
base, del tipo arcillosa, mezclada con agua. Esta materia, es sometida a una prensadora,
formando lonjas de material prensado. Las mismas pueden o no ser expuestas a un rodillo que se
encarga de la texturización de tal manera de obtener un producto similar a la laja. Estas lonjas,
son cortadas automáticamente para obtener baldosas finales de un tamaño de 26 cm x 26 cm o 20
cm x 30 cm.
Fig. 66 Baldosas.
Los sobrantes, son nuevamente ingresados a la pasta base para la posterior recuperación de la
misma.
Los productos son estacionados por 48 horas para reducir la humedad a un 0,2% para que los
mismos no estallen en la etapa de cocción. El proceso de cocción consta de tres hornos, llevando
al producto a 300ºC, 800ºC y 1100ºC respectivamente. Una vez finalizado el proceso de cocción,
los mismos son enfriados y apilados en palieres. Lugar donde se realiza la clasificación en tres
tipos de categorías,
de descarte: comprende aquellas baldosas que presentan fracturas.
66
de segunda: comprende aquellas baldosas que posean manchas producidas por gotas del
pulverizador, torceduras, marcas producidas por maquinarias, por problemas en la
cocción o difieren 3mm de las dimensiones establecidas.
de primera: son aquellas baldosas que no poseen ninguno de los defectos previamente
mencionados.
Mientras que las baldosas descartadas son trituradas para formar nuevamente la pasta base, las
baldosas en buen estado son empaquetadas y puestas en palieres para su comercialización.
La cantidad de baldosas consignadas por Loimar fueron de treinta y dos (32). Dentro del
conjunto podemos clasificar a las mismas en dos tipos: esmaltadas y no esmaltadas. Las
primeras, presentan un efecto de barnizado sobre la superficie, haciendo que se denote un tono
más brilloso sobre las mismas. A continuación, podemos observar una imagen de este tipo.
Fig. 67 Baldosa esmaltada.
Por otra parte, las no esmaltadas, parecen de un tono más opaco, como se observa en la
siguiente figura:
Fig. 68 Baldosa sin esmalte.
La cantidad de baldosas que presentan esmalte son de un total de once (11), mientras que la
cantidad de baldosas sin esmalte son de un total de veintiuno (21).
67
El siguiente gráfico muestra la clasificación de baldosas de acuerdo al tipo de defecto:
Fig. 69 Clasificación de baldosas de acuerdo a su defecto.
Baldosas con errores en bordes: 4
Baldosas con errores en esquinas: 4
Baldosas con errores en su dimensión: 4
Baldosas con errores de gotas: 6
Baldosas con errores de pinhole: 8
Baldosas con errores de rayaduras: 6
68
4.2 Evaluación de los métodos propuestos
4.2.1 Identificación de defectos de bordes Del conjunto de baldosas provisto por Loimar se analizan 24 baldosas. Un subconjunto de 8
baldosas es excluido de las pruebas, debido a que las baldosas presentan errores de esquinas y
dimensión y serán tratadas por los otros algoritmos presentados.
El siguiente gráfico muestra el resultado de la ejecución del algoritmo de detección de defectos
de bordes. En él aparecen dos conjuntos importantes representados por dos indicadores en forma
de barra cada uno. El primer conjunto, corresponde a la ejecución de la muestra de baldosas sin
defectos (indicador con valor veinte), cuyo resultado es de cero (segundo indicador), es decir, no
se detectó ningún falso positivo. El segundo conjunto, son las baldosas con defectos en los
bordes. Su indicador izquierdo muestra que son 4, y su indicador derecho también es 4,
mostrando que detectó errores en las cuatro baldosas.
Fig. 70 Resultado detección de bordes.
Analizando los datos obtenidos, podemos decir que la detección ha sido satisfactoria, ya que se
detectaron errores en las baldosas que deberían haberse detectado y no se detectaron errores en
las baldosas en donde no correspondía.
Por último, la siguiente imagen se corresponde con la detección de bordes ejecutada por el
algoritmo con las 4 imágenes que poseen defectos:
69
Fig. 71 Detección de bordes.
4.2.2 Identificación de defectos en esquinas El siguiente gráfico muestra el resultado de la ejecución del algoritmo de detección de defectos
de esquinas. Basada en la misma idea que bordes, aparecen nuevamente dos conjuntos con dos
indicadores. El primer conjunto muestra que para las baldosas sin defectos no se han detectado
errores y el segundo muestra que se han detectado todos los defectos en las 4 baldosas que
poseían los mismos.
Fig. 72 Resultado detección de esquinas.
El algoritmo ha resultado exitoso para dicha muestra, sin la presencia de falsos positivos ni
falsos negativos. La imagen a continuación es un ejemplo de una correcta detección de defectos
por parte de la aplicación:
70
Fig. 73 Pantalla de detección de errores en esquinas.
Como se puede apreciar, se muestra la cantidad de esquinas detectadas, en este caso, solamente
3 por lo que se imprime por pantalla un texto de “ERROR” y bloquea la aplicación para
continuar con los siguientes algoritmos de detección. Las baldosas con este error son cuatro:
Fig. 74 Esquina superior derecha faltante.
Fig. 75 Esquina superior izquierda faltante.
71
Fig. 76 Esquina inferior izquierda faltante.
Fig. 77 Esquina inferior derecha faltante.
72
4.2.3 Verificación de la dimensión de la muestra Para el caso de dimensión, nuevamente se vuelve a repetir los números de las muestras. Es
decir, 4 tienen defectos en su dimensión, 2 de ellas mayor que la seleccionada y 2 de ellas menor.
Considerando que 8 tienen defectos de esquinas o bordes, quedan 20 que no presentan este tipo
de defecto.
A través del siguiente gráfico podemos observar los resultados del algoritmo, en donde el
primer conjunto no detecta errores y sí lo hace en el otro conjunto, que era lo que se esperaba.
Fig. 78 Resultado verificación de dimensión.
El algoritmo ha resultado exitoso para dicha muestra. No se han detectado falsos positivos ni
falsos negativos. Las baldosas que poseen defectos en cuanto a dimensión son las siguientes,
junto con su respectiva dimensión:
73
Fig. 79 Dimensión: 5.264.225 píxeles.
Fig. 80 Dimensión: 4.446.624 píxeles.
Fig. 81 Dimensión: 6.793.920 píxeles.
Fig. 82 Dimensión: 6.936.192 píxeles.
La aplicación informa error si la dimensión se encuentra por encima o por debajo de 6.000.000
de píxeles. Cabe destacar que existe un umbral de aceptación del 2% tanto para sobredimensión
o subdimensión. A continuación, se muestra una imagen en la que la superficie de la baldosa se
encuentra en el rango permitido y otra en que la baldosa se encuentra muy por debajo de la
superficie establecida.
Fig. 83 Pantalla sin detección de errores.
74
Fig. 84 Pantalla detectando error de dimensión.
4.2.4 Identificación de Blobs En esta etapa se excluyen las baldosas con errores de bordes, dimensión y esquinas. Por lo
tanto, como entrada se tienen 20 baldosas. De ellas, 6 poseen defectos de gotas y 3 son
esmaltadas. Estas últimas no se comportan de buena manera, por lo que han sido excluidas. Se
espera de esta forma que 11 baldosas sean pasen sin detectar errores.
Siguiendo con la forma de mostrar los resultados, a continuación, se detalla un gráfico donde se
observa que de las imágenes con defectos de gotas, todas fueron detectadas. Y de las imágenes
que no presentan este defecto, ninguna ha sido detectada como falso positivo.
Fig. 85 Resultado detección de blobs.
Las siguientes imágenes muestran la ejecución de la aplicación para las baldosas que poseían
errores:
75
Fig. 86 “The number of blobs is 2.”
Fig. 87 “The number of blobs is 2.”
Fig. 88 “The number of blobs is 3.”
Fig. 89 “The number of blobs is 2.”
76
Fig. 90 “The number of blobs is 1.”
Fig. 91 “The number of blobs is 1.”
4.2.5 Identificación de pinhole Como en la detección de gotas, la muestra para pinhole es de 20, y las 3 baldosas esmaltadas
son excluidas. Las baldosas que presentan error de pinhole son 5, esperando que 12 puedan ser
inspeccionadas sin encontrar defectos.
El siguiente gráfico muestra que de las baldosas que poseen defectos de pinhole (5), cuatro
detectaron errores. Quedando una baldosa que no detectó error. Para las baldosas que no poseen
defecto, un total de doce (12), el algoritmo no ha detectado falsos positivos.
Fig. 92 Resultado detección de pinhole.
77
Las siguientes imágenes corresponden a la ejecución de pinhole:
Fig. 93 “No errors found on this tile.”
Fig. 94 “The number of pinholes is 1.”
Fig. 95 “The number of pinholes is 1.”
Fig. 96 “The number of pinholes is 1.”
78
Fig. 97 “The number of pinholes is 1.”
Con respecto a la baldosa la cual el algoritmo no detectó el defecto, se puede decir que el
pinhole posee un color muy parecido a la textura de la baldosa. Haciendo que la aplicación de
umbralado o dilatación ignore de alguna manera los puntos al tratar de conformar el área del
pinhole.
La siguiente tabla muestra una comparación entre el pinhole no detectado a la izquierda, y uno
detectado a la derecha:
Tabla 9 Comparación entre pinhole no detectado y detectado.
Como mencionamos anteriormente, el pinhole de la izquierda es muy chico, rodeado de textura
parecida a la baldosa. A la derecha, el pinhole se encuentra rodeado de un contorno oscuro,
haciendo que el umbralado lo seleccione.
79
4.2.6 Cracks En esta etapa se espera que el algoritmo detecte 6 rayaduras en el conjunto de 17 baldosas
analizadas.
El gráfico a continuación muestra el resultado de la detección, donde las baldosas que poseen
rayaduras fueron detectadas de manera exitosa. Sin embargo, de las baldosas que no poseen
rayaduras, una lo ha detectado.
Fig. 98 Resultado de detección de cracks.
Las siguientes imágenes muestran la detección de los defectos de rayaduras:
80
Fig. 99 “The number of cracks is 3.”
Fig. 100 “The number of cracks is 3.”
Fig. 101 “The number of cracks is 11.”
Fig. 102 “The number of cracks is 2.”
81
Fig. 103 “The number of cracks is 4.”
Fig. 104 “The number of cracks is 3.”
En el caso que se detectó una rayadura, donde no debía hacerlo, podemos mencionar que es una
situación particular. Si bien, a priori, no estaba calificada como un defecto de Crack, esta baldosa
formaba parte del conjunto de Pinholes. Como se mencionó previamente, presenta un pinhole
muy particular debido a la diferencia de color con el resto de la misma. La detección de la
rayadura se puede deber a que el umbralado local selecciona al objeto como una diferencia
importante. La imagen siguiente se corresponde con dicha detección:
Fig. 105 Detección de crack en pinhole.
82
4.3 Evaluación de la performance de los métodos propuestos En esta sección se encontrarán detalles acerca del hardware utilizado para la ejecución de la
aplicación, con sus respectivas especificaciones en detalle. Se hará mención a las resoluciones
utilizadas para la digitalización de las baldosas y su posterior procesamiento. Por último, y no
menos importante, se mostrarán los resultados en cuanto a eficiencia y performance de la
aplicación. Estos resultados serán comparados con investigaciones previas.
4.3.1 Hardware Para ejecutar la aplicación, se consideraron tres computadoras. Las especificaciones de cada
una de ellas son las siguientes: Computadora 1:
o Procesador: Intel Core i5-4590 CPU @ 3.30 GHZ.
o RAM: 8.00 GB.
o Sistema Operativo: Windows 10.
o Disco rígido SATA.
Computadora 2:
o Procesador: Intel Core i7-6500 CPU @ 2.50 GHZ.
o RAM: 8.00 GB.
o Sistema Operativo: Windows 10.
o Disco SSD.
Computadora 3:
o Procesador: Intel Core i7-7700 CPU @ 3.60 GHZ.
o RAM: 16.00 GB.
o Sistema Operativo: Windows 10.
o Disco SSD.
4.3.2 Resolución Las resoluciones a tener en cuenta fueron dos, la primera de 5152 x 3864 y la segunda de 1700
x 1275.
De estas dos resoluciones, en su interior la baldosa tiene una resolución de 2452 x 2452 (un
total aproximado de 6.000.000 de píxeles). Y la segunda de 650.000 píxeles, una resolución un
poco más grande que 800 x 800.
4.3.3 Performance de la detección Para realizar un análisis de la performance de los algoritmos se tuvieron en cuenta las treinta y
dos (32) baldosas y tres computadoras cuyas especificaciones de hardware fueron mencionadas
anteriormente. Como la aplicación provee el tiempo de ejecución de cada uno de los algoritmos,
el proceso consistió en ejecutar todos los algoritmos para cada una de las baldosas, con las dos
resoluciones. En los siguientes gráficos se presenta el promedio de los tiempos de cada uno de
los algoritmos para ambas resoluciones. En él se pueden observar que los tiempos disminuyen de
manera muy notoria entre las distintas resoluciones, siendo de un factor de nueve (9) para
dimensión, esquinas y bordes. Y para los demás algoritmos, de seis (6).
83
PC / Defecto Computadora 1 Computadora 2 Computadora 3
Resolución Resolución 1 Resolución 2 Resolución 1 Resolución 2 Resolución 1 Resolución 2
Bordes, Corners y
Dimensión
5,33 s 0,6 s 4,66 s 0.55 s 3,26 s 0,34 s
Blobs 0,24 s 0,04 s 0,24 s 0,04 s 0,17 s 0,03 s
Pinholes 0,29 s 0,05 s 0,29 s 0,04 s 0,2 s 0,03 s
Cracks 0,49 s 0,07 s 0,47 s 0,06 s 0,29 s 0,04 s
Tabla 10 Promedio de tiempos de cada algoritmo en diferentes computadoras.
De acuerdo al gráfico anterior, si comparamos la PC1 con respecto a la PC2, existe una
diferencia importante en el algoritmo de bordes, esquinas y dimensión. Esto se debe a que la
velocidad de lectura entre un disco de estado sólido y un disco rígido difiere de manera
sustancial. Si tenemos en cuenta la PC3 con la PC2 y la PC1, en principio también posee un
disco de estado sólido y, sumado a eso, posee un procesador de casi 1.00 GHZ mayor. Por
último, los demás algoritmos poseen casi los mismos tiempos, esto se debe a que la imagen con
la que trabajan ya se encuentra en memoria y las velocidades son casi similares. Se dice que son
casi similares porque existen diferencias de MHZ (~200 MHZ aproximadamente) entre las
memorias y por supuesto la última PC tiene tecnología DDR4, mientras que las otras su
tecnología es DDR3. La velocidad del procesador es otro indicio de diferencia en la velocidad de
ejecución de los algoritmos.
El siguiente gráfico muestra la ejecución promedio total de una pasada por todos los
algoritmos. Hay que tener en cuenta que las baldosas que tienen defectos en bordes, dimensión o
esquinas no ejecutan las operaciones de detección de gotas, rayaduras y pinholes.
PC / Resolución Resolución 1 Resolución 2
Computadora 1 6,34 s 0,76 s
Computadora 2 5,65 s 0,68 s
Computadora 3 3,91 s 0,44 s
Tabla 11 Ejecución promedio de todos los algoritmos.
Los algoritmos de detección de gotas, rayaduras y pinhole pueden ser comparados con los
trabajos realizados por Yadraj Meena et.al y G. M. Atiqur Rahaman et al, en cuanto a la
eficiencia y tiempos. En el trabajo realizado por Yadraj Meena et al. se realizan comparaciones
de sus algoritmos con estudios previos, que también fueron tomados en cuenta para la
comparación. Los mencionados no realizan análisis de dimensión, esquinas y bordes ya que
ambos no pudieron encontrar defectos [7] [35]. Otro aspecto a destacar, es que los estudios
previos no fueron sobre baldosas de texturas aleatorias, sino en cerámicos.
84
Fig. 106 Comparativa eficiencia diversos estudios.
Como podemos observar, la eficiencia de este trabajo se encuentra por encima de los trabajos
previos y, además, como mencionamos anteriormente, tiene en cuenta también la detección de
defectos de esquinas, bordes y dimensión. Aspecto que no es considerado en la eficiencia de los
estudios previos ya que los mismos no pudieron encontrar estos errores.
De acuerdo a los tiempos, se tendrán en cuenta solamente los de detección de gotas, pinhole y
rayaduras en comparación con los estudios previos [6] [33]. La resolución a tener en cuenta, será
la misma que la de los estudios previos, es decir 800 x 800 de tamaño de baldosa.
85
Fig. 107 Comparativa performance diversos estudios.
Los tiempos obtenidos son menores a los presentados en los trabajos anteriormente
mencionados, superando en un factor de 4 el que más se acerca. Otro aspecto a destacar, es que
un solo estudio previo pasado que consigue mejores tiempos, pero con una resolución de 800 x
800.
Con respecto a los algoritmos de detección de bordes y esquinas, se pueden contrastar con el
trabajo realizado por Ž. Hocenski et al [32]. Este estudio previo fue ejecutado por una aplicación
hecha en Matlab con un procesador de 2.2 Ghz. En su trabajo se aplica Canny en lugar de Harris-
Stephens.
Defecto / Resolución Estudio Previo 1680 x 1300 Tesis 5152 x 3864 Tesis 1700 x 1275
Bordes, dimensión y esquinas 4.63 s 3.26 s 0.34 s
Tabla 12 Comparativa detección de errores en bordes, dimensión y esquinas.
En base a la tabla mostrada previamente, podemos resaltar que el resultado del estudio previo
es menor a la performance lograda por nuestro desarrollo, incluso utilizando una resolución
mucho mayor. Si comparamos la resolución empleada, con la menor resolución utilizada en
nuestro trabajo (es casi la misma), podemos asumir que la mejora es más que sustancial, llegando
a una mejora de casi 9.
Si bien este análisis está atado a la tecnología actual, aplicar los métodos previos sobre el
sistema de procesamiento sobre el que se realizaron las pruebas puede conseguir mejores
tiempos. Más allá de eso, el objetivo del análisis es demostrar la factibilidad de implementar el
sistema sobre una línea de producción capaz de operar a la tasa requerida.
86
4.4 Análisis basado en resoluciones de imágenes Con respecto al cambio de resolución, existen dos aspectos importantes a mencionar:
1. El pinhole que el algoritmo de pinhole no detectaba en la resolución de 5152 x 3864 pero
sí era detectado por Cracks, fue detectado en la resolución de 1700 x 1275 por el primer
algoritmo, pero no por el de cracks.
“The number of pinholes is 1.”
“No errors found on this tile.”
Tabla 13 Comparativa detección en diferentes resoluciones.
2. Con el objetivo de incrementar el número de muestras a evaluar, se crearon algunos
defectos. En estos casos se incorporaron defectos de blobs. En estos casos el algoritmo de
cracks detectó los mismos para la resolución más chica.
Fig. 108 Detección de cracks en resolución más chica.
87
De acuerdo a las situaciones mencionadas previamente, para 1) se supone que pinhole funciona
mejor para resoluciones menores. Esto tiene relación directa con los operadores de threshold y
clausura. Al haber más píxeles, los mismos se encuentran más espaciados, haciendo que la
operación de clausura, en principio, borrara el pinhole. Como la resolución es menor, los píxeles
se encuentran más unidos. Incluso, para las otras baldosas con defectos de pinhole, el factor de
redondez es mucho más alto, de un piso aproximado de 90%. Por lo que para la resolución más
chica este factor hubo que aumentarlo.
Con respecto a 2), esto también está relacionado con el espaciado de píxeles. La desviación
local estándar analizando la textura, se basa en un píxel y su vecindad de 3x3. En la resolución
mayor, los rasgos del blob se encuentran más espaciados y con píxeles de intensidad de la
baldosa, mientras que al estar más unido, el desvío se acerca más al blob, afectando puramente a
dicha vecindad.
Con los resultados obtenidos se concluye que el algoritmo presentado para la detección de
Blobs, con una correcta parametrización también funciona bien. Entiéndase, con correcta
parametrización, a la adaptación de los inputs teniendo en cuenta que ahora la imagen posee una
sustancial cantidad más chica de píxeles.
La siguiente imagen muestra la configuración de los diferentes algoritmos, para la resolución
de 1700 x 1275. Los valores que aparecen fijos a la derecha de los casilleros de entrada, son los
que toma por defecto la aplicación. Los mismos son los utilizados para la resolución mayor:
Fig. 109 Parametrización para resolución 1700 x 1275.
Si bien hubo algunos cambios en la detección relacionados con el cambio de resolución, no
hubo ninguna detección de falsos positivos y todos los defectos fueron detectados.
A continuación, se presenta un cuadro donde se desglosa el tiempo consumido por las distintas
actividades de la aplicación, utilizando una configuración óptima que utiliza dos resoluciones
con el fin de acelerar el tiempo de ejecución del algoritmo. El mismo nos permite abstraer los
88
tiempos de las operaciones, en las distintas resoluciones, justificando el análisis realizado
previamente, en el cual se sugiere utilizar ambas resoluciones dependiendo el error a considerar,
bajando así el tiempo final.
Nótese las siguientes nomenclaturas:
imread, es el tiempo que tarda en leer la imagen desde el disco;
imresize, es el tiempo que tarda en cambiar la resolución a 1700 x 1275; esta operación
fue agregada solamente para este análisis, la aplicación actual no realiza la misma;
RES1, es la resolución de mayor tamaño (5152 x 3864);
RES2, es la resolución de menor tamaño (1700 x 1275);
CDE, es el algoritmo de detección de esquinas, dimensión y bordes;
s, segundos.
RES1 RES1 RES2 RES2 RES2 RES1 Total
imread imresize CDE Blobs Pinhole Cracks
PC1 0,66 s 0,19 s 0,51 s 0,04 s 0,05 s 0,49 s 1,94 s
PC2 0,56 s 0,23 s 0,5 s 0,04 s 0,04 s 0,47 s 1,84 s
PC3 0,39 s 0,07 0,3 s 0,03 s 0,03 s 0,29 s 1,11 s
Tabla 14 Performance para configuración en distintas resoluciones.
Todo lo mencionado anteriormente corresponde a diversas configuraciones que se hicieron en
cuanto a un tipo de baldosa y dos tipos de resoluciones. Este proceso puede requerir adaptaciones
o modificaciones, como sucede con el producto comercial Flawmaster [34], mencionado en el
Capítulo 2, para el cual, alegan necesitar seis meses para encontrar la configuración óptima que
asegure el correcto funcionamiento de la maquinaria sobre una línea de producción puntual.
89
4.5 Evaluación adicional Para este trabajo hemos conseguido muestras adicionales. Estas muestras corresponden a
cerámicos sobrantes de una construcción. En la siguiente imagen se pueden apreciar los mismos:
Fig. 110 Muestra cerámicos.
Este nuevo conjunto de prueba será utilizado como entrada de la aplicación sobre la cual se
pretende detectar las fallas sobre una línea de producción diferente. Sabemos que éstos no
presentan texturas aleatorias, ni tampoco se trata de baldosas. Para este conjunto en particular se
mantuvieron las condiciones de captura (ambiente, iluminación y hardware)
Detección de bordes, dimensión y esquinas:
Fig. 111 Pantalla detección error en cerámico.
90
Fig. 112 Detección esquinas en cerámico.
Fig. 113 Detección error en borde para un cerámico.
Detección de gotas y pinhole:
Fig. 114 Detección de pinhole en cerámico.
Fig. 115 Detección de blobs en cerámico.
91
4.6 Análisis de resultados obtenidos Es importante resaltar en primera instancia que los tiempos obtenidos cayeron dentro del rango
requerido, con respecto a la resolución de 5152 x 3864 y 1700 x 1275 para la detección de
defectos en bordes, dimensión y esquinas. En este aspecto, se debieron realizar ajustes bajando el
handicap para la segunda resolución, dado que disminuye sustancialmente el número de píxeles.
Otro punto importante es que el algoritmo ofrece buenos resultados para ambas resoluciones,
siendo la tasa de reconocimiento del 100% en ambas situaciones. Además, los resultados
muestran que la primer resolución tiene que analizar seis (6) millones de píxeles, mientras que la
segunda seiscientos cincuenta mil, esto es un factor de reducción de 9 aproximadamente. Los
tiempos entre uno y otro han resultado ser del mismo factor. Esto quiere decir que la mejora en
cuanto a tiempo es proporcional a la diferencia de píxeles entre dichas resoluciones.
Con respecto a la detección de defectos, el algoritmo de detección de Pinholes no pudo detectar
un defecto de este tipo, el cual fue detectado por el algoritmo de detección de rayaduras en
superficies propuesto. Para este análisis la identificación errónea fue contabilizada como un
error. De allí, se estima que el valor de eficiencia para el conjunto de pruebas evaluado fue de
97%. Por otro lado, si consideramos la eficiencia en cuanto a la detección de defectos, ninguna
baldosa con defectos ha pasado la ejecución sin que los mismos sean detectados, permitiendo
asumir que la eficiencia del algoritmo propuesto es del 100%.
En cuanto a las consideraciones de las resoluciones, también se observa que el algoritmo de
rayaduras funciona mejor con resoluciones mayores de imagen, mientras que el algoritmo de
pinhole obtiene detecciones más certeras en resoluciones inferiores. Esta apreciación se debe
principalmente a cómo cada algoritmo trata la selección de objetos de interés, esto es desviación
estándar local como umbralado en el primero y umbralado global en el segundo. La detección de
gotas se mantiene congruente para ambas resoluciones y esto se debe principalmente a que las
mismas tienen un tamaño significativo para ambas.
Por último, considerando cada uno de los trabajos previos analizados, el trabajo realizado
obtiene muy buenos resultados respecto a los tiempos, alcanzando una aceleración que va desde
4 a 9.
92
Capítulo 5
Conclusiones
5.1 Trabajos futuros Es de suponer, en principio, que los tiempos de procesamiento de este trabajo pueden mejorarse
de diversas maneras. La primera podría ser con la obtención de hardware de alta gama. Esto sería
un microprocesador más potente, memoria RAM de última generación y disco de estado sólido
de mayor rapidez. Otra vía para mejorar los tiempos podría ser llevar los algoritmos a la
utilización de la placa de video (GPU). Se ha demostrado que las placas de video poseen una
performance extremadamente alta para cálculos y sobre todo procesamiento de imágenes.
Matlab, a lo largo de sus versiones se ha enfocado en facilitar la utilización de la GPU. Es por
ello, que muchas de las operaciones y algoritmos que posee admiten como entrada objetos del
tipo GPUArray [36] [37]. En cierta manera, parte del código de la aplicación podría cambiarse
para esto. Por último, las FPGAs también ofrecen una buena opción de plataforma para este tipo
de procesamiento [2]. Son compactas, aptas para ser aplicadas en el ámbito industrial, y podría
crearse un sistema embebido que ejecute cada uno de los algoritmos.
Por otra parte, la ejecución de los algoritmos propuestos es independiente, y permiten su
paralelización y concurrencia. De esta forma el uso de cuatro computadoras industriales, en las
que cada una de ellas ejecute uno de los algoritmos, es otra posibilidad interesante en este
proceso.
En cuanto a la detección, se demostró que algunos de los algoritmos funcionan también con
cerámicos. Una correcta parametrización de los algoritmos permite que se puedan ejecutar para
realizar una inspección de superficie sobre diferentes materiales (cerámicos, baldosas). Sin
embargo, en el caso de realizar una inspección sobre baldosas de tonos más oscuros o baldosas
esmaltadas, el enfoque puede ser diferente, o bien, se necesite alguna transformación previa. Con
dicha transformación, y una correcta parametrización de los valores mencionados anteriormente,
la detección puede ser factible.
La identificación de fallas puede ser mejorada aplicando otros enfoques en cuanto a la
iluminación o diferentes tipos de filtro a la cámara. El uso de estas técnicas podría resolver el
problema expuesto anteriormente.
Se pretende incluir en trabajos futuros la calibración de la cámara y el tratamiento de la
distorsión. Estas prácticas también permitirán conocer las dimensiones de las baldosas y defectos
en unidades de medida como milímetros o centímetros, pudiendo dejar de lado la utilización de
métricas en píxeles.
En cuanto a defectos, quedaron algunos pendientes, como pueden ser salpicaduras y torceduras.
Se pretende abordar estos defectos en versiones futuras del trabajo.
Por último, el trabajo podría llegar a ser un prototipo funcional, si se incorpora un clasificador,
que permita asignar un resultado y taxonomía final al producto considerando los resultados
cuantificados obtenidos de los algoritmos.
93
5.2 Conclusiones Machine Vision a lo largo de los años se ha vuelto muy importante en la fabricación de
distintos tipos de productos. En este caso en particular, la elaboración de baldosas.
Generalmente, todo proceso de fabricación consta de diversas etapas. En muchas de ellas la
robótica, calibración, manejo de materiales o clasificación cubren gran parte de las mismas. Sin
embargo, existe un área o proceso llamado Control de Calidad en donde, hoy en día, la
aplicación de Machine Vision presenta ciertas dificultades, o su eficiencia y eficacia no alcanzan
a la visión humana. En cuanto a la actividad que involucra la fabricación de las baldosas, el
Control de Calidad consiste en detectar si dichos elementos presentan o no algún defecto luego
de su elaboración. Es decir, que algún agente haya introducido alguna alteración al producto
final, afectando la calidad del mismo.
En este trabajo se presentó una aplicación capaz de ejecutar un conjunto de algoritmos de
detección de defectos en baldosas. Estos son: defectos en bordes, esquinas, dimensión, gotas,
rayaduras y pinhole. A su vez, esta aplicación permite el conocimiento de algunas de las métricas
más significativas en el procesamiento de imágenes, que comprenden el tiempo y la tasa de
precisión en el reconocimiento de fallas. Asimismo, la aplicación desarrollada posee la
posibilidad de ajustar los parámetros de entrada de cada conjunto de algoritmos para cada
defecto. De esta manera, la misma presenta flexibilidad para tratar con diversas baldosas de
texturas aleatorias, e incluso cerámicos y poder establecer la mejor configuración paramétrica
para una muestra. Otro aspecto a destacar, es que la aplicación es intuitiva, gracias a que se ha
generado una interfaz visual sin tener que acudir, por ejemplo, a la consola de comandos.
Los algoritmos propuestos fueron seleccionados entre distintos métodos posibles, y fueron
optimizados y adaptados al problema para brindar los mejores resultados posibles. Para la
obtención de los resultados se ha seleccionado una muestra, representada en dos resoluciones
diferentes, y tres computadoras de divergentes características. El proceso consistió en ejecutar
los diferentes algoritmos de detección en cada una de las computadoras, aplicándolos sobre la
totalidad de la muestra. Gracias a las métricas provistas se pudieron realizar diversos cuadros
comparativos teniendo en cuenta las diferentes resoluciones y computadoras. Los resultados
obtenidos demuestran que una computadora de gama alta puede obtener una mejora sustancial,
en cuanto a tiempos.
Con respecto a la detección, considerando las diferentes resoluciones, los distintos algoritmos
funcionan al 100%, incluso con cerámicos de diferente tonalidad a la muestra utilizada como
base de estudio de este trabajo. Además, se han detectado todos los defectos existentes en las
distintas baldosas sin la presencia de falsos positivos. Esto quiere decir que ninguna baldosa
defectuosa hubiera sobrepasado el Control de Calidad realizado por la aplicación.
Finalmente, podemos concluir, gracias a los tiempos obtenidos de la aplicación, que la misma
es un prototipo capaz de soportar la ejecución en una línea de producción en tiempo real. Como
así también, que la misma es capaz de detectar las fallas con una tasa superior al 90%, y
cumpliendo con los requerimientos presentados en los objetivos de la propuesta.
94
Apéndice
Manual de Usuario Dentro de la carpeta del trabajo se encuentran dos subcarpetas que contienen distintas
generaciones de la aplicación standalone.
Fig. 116 Tipo de aplicación.
Especificaciones técnicas Sistema Operativo:
o Windows 10
o Windows 8.1
o Windows 8
o Windows 7 Service Pack 1
o Windows Server 2016
o Windows Server 2012 R2
o Windows Server 2012
o Windows Server 2008 R2 Service Pack 1
Procesador: Cualquier Intel o AMD x86-64
Memoria: 2 GB
Espacio en disco:
o for_redistribution: 2 GB.
o for_redistribution_files_only: 50 MB.
95
Instalador completo for_redistribution: Contiene un instalador con todas las bibliotecas necesarias en caso de no
tener Matlab en la PC. El tamaño del archivo es de aproximadamente 1.2 GB.
Fig. 117 Instalador completo.
Guía de instalación 1. Ejecutar “TileInspection.exe”.
2. Aparecerá la ventana de User Access Control, seleccionar “Sí”.
3. En la siguiente ventana seleccionar “Next” o “Siguiente” como se muestra a continuación:
Fig. 118 Instalación pantalla 1.
96
4. Aparecerá una nueva ventana para elegir el directorio en dónde instalar la aplicación y la
opción de agregar un icono al Escritorio:
Fig. 119 Instalación Pantalla 2.
5. La siguiente ventana mostrará los detalles de la instalación. Seleccionar “Install” para
confirmar la misma y proceder a su respectiva instalación:
Fig. 120 Instalación Pantalla 3.
97
6. Luego se mostrará el progreso de la instalación:
Fig. 121 Instalación Pantalla 4.
7. Por último, aparecerá una ventana para finalizar el proceso de instalación.
Fig. 122 Instalación Pantalla 5.
8. Ejecutar TileInspection.exe desde el Escritorio o directorio de instalación para comenzar
a utilizar la aplicación.
98
Ejecutable solamente for_redistribution_files_only: contiene la aplicación mínima generada ya que supone que se
tiene instalado Matlab en la PC, de manera que utiliza las bibliotecas desde dicha instalación.
Fig. 123 Ejecutable con Matlab instalado.
Para iniciar la aplicación, ejecutar TileInspection.exe.
Ejecución Una vez ejecutada la aplicación se procede a cargar la imagen, presionando sobre el botón
“Select Image”. Dicha acción disparará la ejecución del algoritmo de detección de errores en
esquinas, bordes y dimensión.
Fig. 124 Pantalla del ejecutable.
Al finalizar se mostrará una ventana con la baldosa, dibujando las 4 esquinas, en caso de
poseerlas y señalando los errores en los bordes, nuevamente, en caso de existir.
99
Fig. 125 Pantalla ejecución.
Luego de esto, la aplicación nos mostrará en el panel el resultado (1) de los distintos procesos
corridos, informando la cantidad de esquinas detectadas, la cantidad de errores en bordes
existentes y la dimensión de la baldosa.
Fig. 126 Pantalla de acciones.
100
Referencias
[1] D. T. Pham y R. J. Alcock, Smart Inspection Systems: Techniques and applications of
intelligent vision, Academic Press, 2003.
[2] E. R. Davies, Machine Vision: Theory, algorithms, practicalities, Fourth Edition, Academic
Press, 2004.
[3] U. S. Khan, «Automatic inspection system using Machine Vision», Proceedings of the 34th
Applied Imagery and Pattern Recognition Workshop, pp. 217-222, 2005.
[4] H. Golnabi, «Design and application of industrial Machine Vision systems», Robotics and
Computer-Integrated Manufacturing, vol. 23, issue 6, pp. 630-637, December 2007.
[5] Automatic Imaging Association, «Machine Vision Markets: 2007 Results and Forecasts to
2012», [online]. Available: http://machinevisiononline.org.
[6] Y. Meena y A. Mittal, «Blobs and Cracks Detection on Plain Ceramic Tile Surface»,
International Journal of Advanced Research in Computer Science and Software
Engineering, vol. 3, issue 7, pp. 647-652, 2013.
[7] H. Elbehiery, A. Hefnawy y M. Elewa, «Surface Defects Detection for Ceramic Tiles Using
Image Processing and Morphological Techniques», World Academy of Science, Engineering
and Technology, pp. 158-162, 2005.
[8] S. Singh y M. Kaur, «Machine Vision System for Automated Visual Inspection of Tile’s
Surface Quality», IOSR Journal of Engineering, vol. 2, issue 3, pp. 429-432, 2012.
[9] C. G. Relf, Image Acquisition and Provessing with LabVIEW, CRC Press, 2004.
[10] V. Sadegaonkar y K. Wagh, «Improving Quality of Apple Using Computer Vision & Image
Processing Based Grading System», International Journal of Science and Research, vol. 4,
issue 4, pp. 543-546, 2015.
[11] GigE Vision, «Allied Vision», [online]. Available:
https://www.alliedvision.com/en/news/detail/news/gige-vision-rock-solid-in-harsh-mining-
environments.html.
[12] Mars Pathfinder, «NASA Facts», [online]. Available:
https://www.jpl.nasa.gov/news/fact_sheets/mpf.pdf.
[13] Z. Haq, «University of Engineering and Technology» Deparment of Mechanical
101
Engineering, [online]. Available:
http://teacher.buet.ac.bd/zahurul/ME475/ME475_robotics.pdf.
[14] MVT, «MVT - Can Scan », [online]. Available: http://www.machine-vision-
technology.co.uk/pdf/OCR-codes-food-cans.pdf.
[15] MVT, «MVT Label and Date Verification», [online]. Available: http://www.machine-
vision-technology.co.uk/pdf/OCR-techniques-for-label-verification.pdf.
[16] A. Hornberg, Handbook of Machine Vision, WILEY-VCH, 2006.
[17] Thomson B., «Automatic System for Surface Inspection and Sorting of Tiles», ASSIST,
United Kingdom, 1993.
[18] Ž. Hocenski, T. Keser y A. Baumgartner, «A Simple and Efficient Method for Ceramic Tile
Surface Defects Detection», pp. 1606-1611, 2007.
[19] M. H. Karimi y D. Asemani, «Surface defect detection in tiling Industries using digital
image processing methods: Analysis and evaluation», ISA Transactions, pp. 834-844, 2014.
[20] R. Mishra y D. Shukla, «A Survey on Various Defect Detection», International Journal of
Engineering Trends and Technology, vol. 10, issue 13, pp. 642-648, 2014.
[21] C. Laofor y V. Peansupap, «Defect detection and quantification system to support subjective
visual quality inspection via a digital image processing: A tiling work case study»,
Automation in Construction, pp. 160-174, 2012.
[22] PDI, «Procesamiento Digital de Imágenes I», [online]. Available:
http://pdi.alumnos.exa.unicen.edu.ar/clases.
[23] N. Zuech, Understanding and Applying Machine Vision, Marcel Dekker, 2000.
[24] R. C. Gonzalez, Digital Image Processing, Prentice Hall, 2002.
[25] A. Koschan y M. A. Abidi, Digital color image processing, Wiley Interscience, 2008.
[26] K. S. Fu y J. K. Muib, «A survey on image segmentation», Pattern Recognition, vol. 13,
issue 1, pp. 3-16, 1981.
[27] J. Marcello, F. Marques y F. Eugenio, «Evaluation of Thresholding Techniques Applied to
Oceanographic Remote Sensing Imagery», SPIE, vol. 5573, issue 96, pp. 96-103, 2004.
[28] Y.-J. Zhang, «An Overview of Image and Video Segmentation in the Last 40 Years», In
Advances in Image and Video Segmentation, IRM Press, pp. 1-15, 2006.
102
[29] M. S. Nixon y A. S. Aguado, Feature Extraction & Image Processing, 2nd Edition,
Academic Press, 2008.
[30] B. Jähne, Practical Handbook on Image Processing for Scientific and Technical
Applications, 2nd edition, CRC Press, 2004.
[31] C. Boukouvalas, J. Kittler y R. Marik, «Ceramic Tile Inspection For Colour And Structural
Defects», 2006.
[32] Ž. Hocenski y T. Keser, «Failure Detection and Isolation in Ceramic Tile Edges Based on
Contour Descriptor Analysis», Mediterranean Conference on Control and Automation,
2007.
[33] A. Rahaman y M. Hossain, «Automatic Defect Detection and Classification Technique from
Image: A special case using ceramic tiles», International Journal of Computer Science and
Information Security, vol. 1, issue 1, pp. 22-30, 2009.
[34] Surface Inspection, «Sacmi», [online]. Available:
http://www.sacmi.com/System/00/02/34/23496/635421528748930645_1.pdf.
[35] R. Gonzalez, Digital Image Processing Using Matlab, Prentice Hall, 2004.
[36] Mathworks, «Image Processing on a GPU», [online]. Available:
https://www.mathworks.com/help/images/image-processing-on-a-gpu.html.
[37] Mathworks, «GPU Computing», [online]. Available:
https://www.mathworks.com/help/images/gpu-computing.html.
Top Related