View
41
Download
5
Category
Preview:
Citation preview
DISEÑO DE UN MICROSISTEMA USANDO FPGAs
PARA MEDIR EL ÁREA DE UNA LÁMINA DE
CUERO
JHOHANN FABIÁN SALAZAR LOAIZA
UNIVERSIDAD DEL VALLE
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
PROGRAMA DE POSTGRADO EN INGENIERÍA ELÉCTRICA Y ELE CTRÓNICA
SANTIAGO DE CALI
2012
DISEÑO DE UN MICROSISTEMA USANDO FPGAs
PARA MEDIR EL ÁREA DE UNA LÁMINA DE
CUERO
JHOHANN FABIÁN SALAZAR LOAIZA
Trabajo de grado en opción al título de:
Magíster en Ingeniería - Énfasis Ingeniería Electró nica
Director:
Jaime Velasco Medina Ph.D
Escuela de Ingeniería Eléctrica y Electrónica
UNIVERSIDAD DEL VALLE
FACULTAD DE INGENIERÍA
ESCUELA DE INGENIERÍA ELÉCTRICA Y ELECTRÓNICA
PROGRAMA DE POSTGRADO EN INGENIERÍA ELÉCTRICA Y ELE CTRÓNICA
SANTIAGO DE CALI
2012
iii
Tabla de Contenido
INTRODUCCIÓN 5 1.1 MOTIVACIÓN 5 1.2 CONTRIBUCIÓN DE LA TESIS 7 1.3 ORGANIZACIÓN DE LA TESIS 7
BIBLIOGRAFÍA 8 FUNDAMENTOS E IMPLEMENTACIONES HARDWARE PARA EL PROCESAMIENTO DIGITAL DE IMÁGENES 9 2.1 INTRODUCCIÓN 9 2.2 FUNDAMENTOS DEL SISTEMA DE CAPTURA DE UNA IMAGEN 11
2.2.1 Imagen digital 11 2.2.2 Sistema de Adquisición de una Imagen 13 2.2.3 Modelo Pinhole 15 2.2.4 Corrección de la Distorsión 18 2.2.5 Iluminación de la imagen 20 1. Iluminación normal 22 2. Iluminación horizontal 22 3. Iluminación vertical 22
2.3 TÉCNICAS PARA EL PROCESAMIENTO DIGITAL DE IMÁGENES 22 2.3.1 Mejoramiento de la Imagen 22 2.3.1.1 Operaciones Morfológicas 23 1. Dilatación 23
2. Erosión 24 3. Apertura y Cierre 24 4. Transformación Top Hat y Bottom Hat 25 2.3.1.2 Filtrado en el Dominio Espacial 27 1. Filtrado espacial paso bajo 28 2. Filtrado por la mediana 28 3. Filtrado espacial paso alto 29 4. Filtrado high boost 30 5. Filtros diferenciales 31 2.3.2 Segmentación de imágenes 32 2.3.2.1 Operador Laplaciano 33 2.3.2.2 Umbralización 34 1. Métodos Basados en la Forma del Histograma. 34 2. Métodos Basados en Agrupamiento de Píxeles o Clustering. 36 3. Métodos Basados en Información de la Entropía del Histograma. 37 4. Métodos Basados en los Atributos de la Imagen. 39 5. Métodos Basados en Información Espacial. 41 6. Métodos basados en características locales. 43
2.4 IMPLEMENTACIONES HARDWARE PARA EL PROCESAMIENTO DIGITAL DE IMÁGENES 44
2.4.1 Arquitecturas Hardware para la Captura de Imágenes 44 2.4.2 Arquitecturas Hardware para la Corrección de Distorsiones en la Captura de una Imagen 47 2.4.3 Arquitecturas Hardware para la Mejora y el Realce de una Imagen 48 2.4.4 Arquitecturas Hardware para la Segmentación y la Umbralización
de una Imagen 53 BIBLIOGRAFÍA 56
iv
ILUMINACIÓN, CALIBRACIÓN Y SIMULACIÓN FUNCIONAL DE LOS ALGORITMOS USADOS PARA MEDIR UNA LÁMINA DE CUERO 61 3.1 INTRODUCCIÓN 61
3.2 IMPLEMENTACIÓN DEL SISTEMA DE ILUMINACIÓN 61
3.3 CALIBRACIÓN DEL SISTEMA DE CAPTURA DE LA IMAGEN 63
3.4 SIMULACIÓN DE LOS ALGORITMOS DE MEJORAMIENTO Y REALCE DE LA IMAGEN. 67
3.4.1 Simulación del Filtro Mediana 67 3.4.2 Simulación de la Supresión del Fondo de la Imagen 69 3.4.3 Simulación del Filtro High Boost 72
3.5 SELECCIÓN DE ALGORITMOS DE UMBRALIZACIÓN 73
3.5.1 Criterios para la evaluación de los algoritmos de umbralización 74 3.5.1.1 Criterio basado en la clasificación errónea. 74 3.5.1.2 Criterio basado en el error relativo del área del objeto. 74 3.5.2 Evaluación de los algoritmos de umbralización 75 3.5.2.1 Resultados para la Figura Cuadrado 77 3.5.2.2 Resultados para la Figura Círculo 79 3.5.2.3 Resultados para la Figura Triángulo 81
3.6 SIMULACIÓN DE LOS ALGORITMOS DE UMBRALIZACIÓN SELECCIONADOS SOBRE LÁMINAS DE CUERO 83
BIBLIOGRAFÍA 88 IMPLEMENTACIÓN HARDWARE DE LOS ALGORITMOS PARA MEDIR UNA LÁMINA DE CUERO 89 4.1 INTRODUCCIÓN 89
4.1.1 Diagrama de Bloques para Medir una Lámina de Cuero 89
4.2 ETAPA DE ADECUACIÓN DE LA IMAGEN ORIGINAL 91 4.2.1 Filtrado Mediana de la Imagen 92 4.2.2 Supresión del Fondo de la Imagen 98 4.2.2.1 Bloque Restador de Fondo 98 4.2.2.1 Filtrado Morfológico Bottom Hat 100
4.2.3 Filtrado High Boost de la Imagen 105 4.3 ETAPA DE UMBRALIZACIÓN DE LA IMAGEN 108
4.3.1 Arquitectura Hardware para el Algoritmo de Umbralización de Otsu 108 4.3.1.1 Implementación del Bloque para el Cálculo del Histograma 111 4.3.1.2 Implementación del Bloque Estadístico 112 4.3.1.3 Implementación del Bloque para Cálculo del Umbral Otsu 113 4.3.2 Arquitectura Hardware para el Algoritmo de Umbralización ISODATA 114 4.3.3 Arquitectura Hardware para el Algoritmo de Umbralización Intermodal 116 4.3.4 Arquitectura Hardware para el Algoritmo de Umbralización Valles y Colinas 119
4.4 ETAPA PARA EL CÁLCULO DEL ÁREA ÓPTIMA DE LA LÁMINA
DE CUERO 121 4.4.1 Ejemplo con Círculos para Calcular el Área Óptima de la Lámina de Cuero 121 4.4.2 Arquitectura Hardware para el Cálculo del Valor Optimo. 123
BIBLIOGRAFÍA 126 CONCLUSIONES Y TRABAJO FUTURO 127
v
LISTA DE FIGURAS
Figura 1.1-1. Sistema electrónico tradicional para medir el área de una lámina de cuero.
6
Figura 1.1-2. Sistema de visión artificial basado en FPGAs para medir el área de una lámina de cuero.
7
Figura 2.1-1. Sistema para medir el área de una lámina de cuero usando un microsistema basado en FPGA
10
Figura 2.2-1. Representación grafica de la función muestreo bidimensional.
12
Figura 2.2-2. Representación grafica del proceso de discretización y cuantización.
12
Figura 2.2-3. Dispositivos de captura.
13
Figura 2.2-4. Modelo Pinhole.
16
Figura 2.2-5. Efectos de distorsión radial.
20
Figura 2.2-6. Ley de los cuadrados
21
Figura 2.2-7. Tipos de iluminación
21
Figura 2.3-1. Proceso de dilatación de una imagen
23
Figura 2.3-2. Proceso de erosión de una imagen
24
Figura 2.3-3. Proceso de apertura de una imagen
25
Figura 2.3-4. Proceso de cerradura de una imagen
25
Figura 2.3-5. Transformación top hat en una imagen
26
Figura 2.3-6. Transformación bottom hat en una imagen
26
Figura 2.3-7. Operación de convolución sobre una imagen
27
Figura 2.3-8. Mascara de convolución para un filtro paso bajo
28
Figura 2.3-9. Filtrado paso bajo
29
Figura 2.3-10. Filtro mediana
29
Figura 2.3-11. Mascara de convolución para un filtro paso alto
29
Figura 2.3-12. Filtrado paso alto
30
Figura 2.3-13. Mascara de convolución para un filtro high boost
30
Figura 2.3-14. Filtrado high boost
31
vi
Figura 2.3-15. Operadores de gradiente
32
Figura 2.3-16. Operador Laplaciano
33
Figura 2.3-17. Operación del operador Laplaciano
33
Figura 2.3-18. Umbralizacion de una imagen
34
Figura 2.3-19. Matriz de coocurrencia
42
Figura 2.4-1. Arquitectura para el dispositivo LM9630 producido por [42]
45
Figura 2.4-2. Arquitectura basada en un FPGA para el procesamiento en tiempo real de imágenes propuesto por [43]
45
Figura 2.4-3. Arquitectura basada en un FPGA para la captura de imágenes de un sensor CMOS, propuesto por [44]
46
Figura 2.4-4. Bloque DSP para la captura de imágenes de un sensor CMOS, propuesto por [7]
47
Figura 2.4-5. Arquitectura basada en un FPGA para la corrección de las distorsiones que generan los lentes en una imagen propuesta por [45]
47
Figura 2.4-6. Arquitectura basada en un FPGA para la corrección de las distorsiones que generan los lentes en una imagen propuesta por [46]
48
Figura 2.4-7. Arquitectura basada en un FPGA para el cálculo del histograma propuesta por [47]
49
Figura 2.4-8. Arquitectura basada en un FPGA de un filtro FIR bi-dimensional [48]
50
Figura 2.4-9. Arquitectura basada en un FPGA de un filtro Gausiano [49]
50
Figura 2.4-10. Arquitectura basada en un FPGA de un filtro mediana [50]
51
Figura 2.4-11. Arquitectura de un comparador basada en transistores pmos y nmos [51]
52
Figura 2.4-12. Arquitectura de detector de bordes sobel implementado por [52]
52
Figura 2.4-13. Arquitectura para la realización de las operaciones de dilatación y erosion en imágenes implementada en [53]
53
Figura 2.4-14. Arquitectura para umbralizacion de una imagen mediante el algoritmo ISODATA implementada en [54]
53
Figura 2.4-15. Arquitectura para la segmentación y extracción de características de un video implementada en [55]
54
Figura 2.4-16. Arquitectura para la umbralizacion por el método espacio temporal para video implementada en [56]
55
Figura 3.2-1. Lámpara usada para la iluminación de sitio de medición. Tomada de [1]
61
Figura 3.2-1. Iluminación de la lámina de cuero
62
Figura 3.3-1. Toolbox en Matlab para la calibración de cámaras.
63
vii
Figura 3.3-2. Patrón de Calibración de 64 cuadros de 20 mm c/u.
63
Figura 3.3-3. Imágenes de calibración cargadas en el toolbox calibration.
64
Figura 3.3-4. Parámetros extrínsecos de la cámara.
65
Figura 3.3-5. Modelo de distorsión radial.
65
Figura 3.3-6. Modelo de distorsión tangencial.
66
Figura 3.4-1. Aplicación del Filtro mediana a diferentes laminas de cuero
68
Figura 3.4-2. Supresión del fondo a una la lámina de cuero por diferencia con el fondo
70
Figura 3.4-3. Supresion del fondo a una la lámina de cuero por filtrado bottom hat
71
Figura 3.4-4. Mejoramiento de bordes a una lamina de cuero sin fondo, por filtrado High boost
73
Figura 3.5-1. Figuras geométricas de prueba y sus histogramas
77
Figura 3.5-2. Umbralizacion de la figura cuadrado de 2500 pixeles
78
Figura 3.5-3. Umbralizacion de la figura circulo de 1861 pixeles
80
Figura 3.5-4. Umbralizacion de la figura triangulo de 16000 pixeles
82
Figura 3.6-1. Láminas de cuero capturadas en escala de grises
83
Figura 3.6-2. Histogramas de las láminas de cuero en escala de grises.
85
Figura 4.1-1 Diagrama de bloques para medir una lámina de cuero
90
Figura 4.2-1 Bloque funcional para la adecuación de la imagen
91
Figura 4.2-2 Arreglo sistólico de un filtro mediana
92
Figura 4.2-3 Arreglo sistólico de un filtro mediana mejorado en [2]
93
Figura 4.2-4 Filtro no lineal tipo mediana implementado en pipeline
94
Figura 4.2-5 circuito de manejo de memoria y la imagen de ejemplo
97
Figura 4.2-6 Bloque hardware del restador de fondo y su funcionamiento
100
Figura 4.2-7 Elementos estructurales para las operaciones de dilatación y erosión
101
Figura 4.2-8 Arquitectura pipeline para realizar las operaciones de dilatación y erosión
102
Figura 4.2-9 Simulación de las operaciones de dilatación y erosión
104
Figura 4.2-10 Arquitectura pipeline para realizar el filtro high boost
105
Figura 4.2-11 Simulación del filtrado high boost
107
Figura 4.3-1 Imagen de prueba para calcular el umbral de Otsu
109
viii
Figura 4.3-2 Umbralizacion de Otsu de forma grafica
110
Figura 4.3-3 Cálculo en hardware del histograma
112
Figura 4.3-4 Arquitectura hardware del bloque estadístico
112
Figura 4.3-5 Arquitectura hardware del bloque que cálculo el umbral de Otsu
113
Figura 4.3-6. Arquitectura hardware para el cálculo del umbral ISODATA
115
Figura 4.3-7 Algoritmos intermodal mostrado gráficamente
117
Figura 4.3-8. Arquitectura hardware del algoritmo intermodal
118
Figura 4.3-9 Cálculo del mínimo valle gráficamente
119
Figura 4.3-10. Calculo del umbral valles y colinas
120
Figura 4.4-1. Círculos de prueba
121
Figura 4.4-2. Intersección de las imágenes binarias
122
Figura 4.4-3. Arquitectura a bloques para el cálculo del área optimo
125
ix
LISTA DE TABLAS
Tabla 3.2-1. Muestras tomadas en el área de medición
62
Tabla 3.3-1. Valores de calibración de la cámara
64
Tabla 3.3-2. Valores de calibración para cada punto
67
Tabla 3.5-1. Algoritmos de umbralizacion a evaluar
75
Tabla 3.5-2. Calculo de los valores de los criterios de selección para la figura en forma de cuadrado
79
Tabla 3.5-3. Calculo de los valores de los criterios de selección para la figura en forma de círculo
80
Tabla 3.5-4. Calculo de los valores de los criterios de selección para la figura en forma de triangulo
82
Tabla 3.6-1. Resultados de simulación de la medida del cuero para la lamina de la figura 3.6-1a
86
Tabla 3.6-2. Resultados de simulación de la medida del cuero para la lamina de la figura 3.6-1b
86
Tabla 3.6-3. Resultados de simulación de la medida del cuero para la lamina de la figura 3.6-1c
86
Tabla 3.6-4. Resultados de simulación de la medida del cuero para la lamina de la figura 3.6-1d
87
Tabla 4.2-1 Resultados de simulación del filtro mediana
98
Tabla 4.2-2 Resultados de simulación del supresor del fondo
100
Tabla 4.2-3 Resultados de simulación del filtro Bottom hat
105
Tabla 4.2-4 Resultados de simulación del filtro High boost
108
Tabla 4.3-1 Resultados de simulación del umbralizador de Otsu
114
Tabla 4.3-2 Resultados de simulación del umbralizador ISODATA
116
Tabla 4.3-3 Resultados de simulación del umbralizador Intermodal
119
Tabla 4.3-4 Resultados de simulación del umbralizador valles y colinas
120
Tabla 4.4-1. Resultados de las intersecciones de los círculos mostrados en la figura 4.3-2
123
Tabla 4.4-2 Resultados de simulación para el cálculo del área optima
125
5
INTRODUCCIÓN
Las láminas de cuero son comercializadas de acuerdo al tamaño de su superficie y las
unidades típicas son: el decímetro cuadrado, el pie cuadrado y el metro cuadrado. Para
realizar esta medida se utilizan actualmente sistemas electrónicos de medición, en su
mayoría de fabricación extranjera, esto conlleva a los problemas de falta de soporte y
mantenimiento, además, la electrónica incorporada en todo el sistema usa en promedio
entre 80 y 160 sensores fotoeléctricos, los cuales son propensos a fallas por contaminación
del medio ambiente u oxidación por las sustancias usadas en el proceso, lo que conlleva a
un mantenimiento frecuente, generando interrupciones en el proceso de producción y altos
costos por reparación o importación de sus repuestos.
Si la cantidad de partes electrónicas se disminuye o se integra en bloques más pequeños y
compactos, se puede disminuir las fallas del sistema y los inconvenientes en el proceso de
medición del área de una lámina de cuero. Entonces, con el propósito de mitigar los
anteriores inconvenientes en los equipos electrónicos usados en la medición de una lámina
de cuero, esta tesis de maestría presenta el diseño de un microsistema basado en FPGAs
para medir el área de una lámina de cuero. Es decir, mediante la implementación en
hardware de algoritmos de visión artificial usando FPGAs es posible realizar la medición
del área de una lámina de cuero de una forma confiable y robusta.
1.1 Motivación
En las actividades que se llevan a cabo en las curtiembres, uno de los procesos más
importantes es la medición del área de una lámina de cuero, ya sea el cuero azul (curtido en
cromo) o el cuero terminado, el cual es medido en decímetros cuadrados o pies cuadrados.
Los equipos de medición son generalmente electrónicos, aunque anteriormente se usaban
métodos manuales o mecánicos. Información más detallada sobre este aspecto puede ser
consultada en [1], el cual es un enlace en internet que muestra los diferentes métodos de
medición.
Los equipos electrónicos presentan mayores ventajas sobre los sistemas de medición
mecánicos y/o manuales debido a su precisión y velocidad. En la Figura 1.1-1, se observa
un esquema de un equipo electrónico tradicional.
Un equipo electrónico tradicional para medir el área de una lámina de cuero está
conformado por:
Capítulo 1
Introducción
6
• Mesa transportadora: Es un sistema mecánico que se encarga de desplazar el cuero
sobre el arreglo de sensores fotoeléctricos y bajo el sistema de iluminación.
• Sistema de iluminación: Este sistema se encarga de iluminar el arreglo fotoeléctrico
y debe mantener una iluminación constante.
• Arreglo de sensores fotoeléctricos: Este arreglo se encarga de capturar la
información de la lámina del cuero cuando se desplaza sobre la mesa.
Figura 1.1-1. Sistema electrónico tradicional para medir el área de una lámina de cuero.
El error porcentual en los equipos electrónicos tradicionales está entre 1% y 2%, lo cual es
debido a que existe una distancia entre cada fotosensor de 2 cms. Sin embargo, el error
puede aumentar si existen cambios en la velocidad de la banda transportadora o en la
intensidad de la luz de las lámparas.
Adicionalmente, los equipos electrónicos tradicionales destinados a trabajar con cuero azul
sufren un fuerte deterioro de las tarjetas electrónicas, debido a que estas láminas de cuero
están impregnadas de cromo, lo cual conduce a la sulfatación de las partes metálicas y las
pistas de cobre en los circuitos impresos. Este tipo de deterioro produce un error mayor en
la medida y en consecuencia la confiabilidad se reduce.
Teniendo en cuenta, las ventajas y falencias que tienen los equipos electrónicos
tradicionales, en esta tesis se presenta el desarrollo de un equipo electrónico de medición
del área de las láminas de cuero, el cual usa una tecnología diferente a la tradicional y
cumple con las siguientes características:
• Alta confiabilidad: Error relativo inferior al 1%
• Alta robustez: Equipo bien compacto y separado físicamente de las sustancias
químicas destructoras del cobre.
Introducción
7
En este caso, el sistema electrónico de medición es un microsistema basado en FPGAs que
permite implementar varias técnicas o algoritmos de visión artificial en hardware
considerando procesamiento paralelo. En la Figura 1.1-2 se muestra el sistema de visión
artificial basado en FPGAs para medir el área de una lámina de cuero.
Figura 1.1-2. Sistema de visión artificial basado en FPGAs para medir el área de una lámina de
cuero.
1.2 Contribución de la Tesis
En esta tesis se presenta el diseño de un microsistema usando FPGAs para medir el área de
una lámina de cuero. La principal contribución consiste en que el sistema desarrollado
presenta una alta confiabilidad debido a que se implementaron 4 algoritmos.
Adicionalmente, el sistema presenta una alta robustez debido a que se encuentra lo
suficientemente separado de la lámina de cuero. Teniendo en cuenta estas ventajas, este
sistema de medición es altamente competitivo con respecto a los productos existentes en el
mercado. Los algoritmos de umbralización en hardware son: OTSU, ISODATA, intermodal
y cálculo del valle.
1.3 Organización de la Tesis
La tesis está organizada en cinco capítulos. En el capítulo 1, se describen los
inconvenientes que presentan los sistemas electrónicos de medición tradicionales; en el
capítulo 2 se presenta el marco teórico necesario para soportar este proyecto; en el capítulo
3 se presenta una descripción sobre los métodos que permiten realizar una correcta
separación entre la imagen de la lámina de cuero y la imagen de la mesa. En el capítulo 4 se
presenta el diseño en hardware del microsistema de medición con los algoritmos
implementados y finalmente en el capítulo 5 se presentan las conclusiones y el trabajo
futuro.
Introducción
8
Bibliografía
[1] http://www.cueronet.com/tecnicacuero.htm
9
2.1 Introducción En este capítulo se presentan los conceptos teóricos utilizados en el diseño del microsistema basado en FPGA para la medición del área de una lámina de cuero. En este caso, se usa una cámara de video como sensor de captura de la imagen de la lámina de cuero, para ser procesada digitalmente y obtener de forma precisa y confiable la medida de su área. Los algoritmos de procesamiento de la imagen son implementados en hardware de forma embebida sobre el FPGA con el propósito de lograr mejores resultados en cuanto a desempeño, portabilidad y confiabilidad. Por lo tanto, con el propósito de alcanzar un excelente desempeño del diseño es necesario entender muy bien, las diversas técnicas para el procesamiento digital de imágenes y sus posibles implementaciones en hardware. En general, cualquier sistema para capturar una imagen y procesarla digitalmente debe disponer como mínimo de:
1. Sistema de adquisición e iluminación de las imágenes: cámara de video y lámparas de iluminación uniforme.
2. Sistema de procesamiento y visualización: tarjeta electrónica en la cual se
implementan en hardware los algoritmos de procesamiento de imágenes. En este orden de ideas, se hace necesario realizar el estudio teórico sobre diversos temas de visión por computador. En la Figura 2.1-1 se muestran los diferentes elementos que hacen parte de un sistema de visión por computador y más exactamente el sistema desarrollado en este trabajo para la medición de una lamina de cuero.
Capítulo 2
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
10
Figura 2.1-1 Sistema para medir el área de una lámina de cuero usando un microsistema basado en
FPGA.
En este capítulo se presentan los fundamentos teóricos del sistema de captura de la imagen, del sistema de iluminación técnicas usadas para el procesamiento digital de la imagen de una lámina de cuero, y algunas implementaciones en hardware de estos algoritmos. En la sección 2.2 se presentan los fundamentos del sistema de adquisición de imágenes, que abarca desde la captura de la imagen, el modelo pinhole, los modelos de distorsión, hasta los modelos de iluminación para el sistema de captura. En la sección 2.3 se presenta el marco teórico de diversas técnicas de procesamiento digital de imágenes que permiten dar mejor contrastes a la imagen analizada, destacando las características de interés. También se presentan las seis técnicas de umbralización con la explicación de varios algoritmos según sus técnicas.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
11
En la sección 2.4 se presentan dieciseis implementaciones en hardware, entre las cuales se describen arquitecturas para la captura de la imagen, para el realce y mejoramiento de la imagen y para la umbralización de la imagen.
2.2 Fundamentos del Sistema de Captura de una Image n
Para realizar una buena captura de una imagen se deben tener presentes, aspectos como el tipo de sensor de captura que se va a usar, ya que si no se logra una buena copia digital de la imagen a tratar, se hará más complejo el proceso de análisis de su información y la extracción de sus características. De igual modo se deben conocer aspectos como el modelo matemático del sistema de captura (pinhole) y las distorsiones presentes en el lente y así corregirlas antes de iniciar su análisis. Otro aspecto importante que influye en el sistema de captura de la imagen es el sistema de iluminación, ya que si la imagen se ilumina de forma errónea esta imagen presentará efectos de sombras o brillos que alteraran la información de la imagen.
2.2.1 Imagen digital Una imagen es una función continua F(x,y), donde las coordenadas x, y son variables espaciales del plano donde se forma la imagen. La amplitud de la función F, es la intensidad en esa coordenada. Una imagen también se define por dos funciones separadas: Una es la iluminación L(x,y) y la otra la reflectancia R(x,y) y es definida por la ecuación 2.2-1. Este tema es ampliado en [1], en el capitulo 2.
),().,(),( yxLyxRyxF = (2.2-1)
Cuando la posición (x,y) y los valores de la amplitud de la función F son cantidades discretas finitas, esta imagen es llamada una imagen digital. El proceso de discretizar las variables espaciales x, y se conoce como muestreo y está definida por la ecuación 2.2-2, gráficamente se observa en la figura 2.2-1.
∫ ∫∞
∞−=−− ),(),(),(
0000yxfdxdyyyxxyxf δ (2.2-2)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
12
Figura 2.2- 1. Representación grafica de la función muestreo bidimensional.
La discretización de la amplitud S se denomina cuantización. Este proceso consiste en asignarle a cada localización discreta x,y un valor entero 2b , donde b es el número de bits asignados a cada nivel de gris. La discretización y cuantización es descrita gráficamente por la figura 2.2-2.
Figura 2.2-2. Representación grafica del proceso de discretización y cuantización.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
13
2.2.2 Sistema de Adquisición de una Imagen Para la correcta adquisición de una imagen se debe contar con un buen sistema de captura, donde se tengan presentes aspectos como la tecnología de fabricación y los distintos parámetros intrínsecos y extrínsecos del sistema. Referente a la tecnología de fabricación, actualmente las cámaras de video están construidas por sensores de estado sólido como las CMOS y CCD, en [2] el autor describe tendencias sobre el uso de sensores CMOS y en [3] se hace una revisión sobre esta tecnología. En [4] se muestra un diseño híbrido entre ambas tecnologías y en [5] se presenta una aplicación de un sensor CCD para la segmentación de imágenes. Se debe tener presente que los sensores CMOS se pueden integrar más que la CCD, consumen menos potencia pero la imagen es de menor calidad, y son ampliamente usados en cámaras para PC, sistemas de seguridad, escáneres códigos de barras entre otros sistemas de bajo costo. Mientras las CCD son de mayor tamaño, de más consumo pero de mejor calidad, son usadas frecuentemente en fotografía digital, aplicaciones digitales de alta precisión y científicas. En la figura 2.2-3 se observan los sensores tipo CMOS y CCD.
a)
b)
Figura 2.2-3. Dispositivos de captura.
a) Sensor CMOS. b) Sensor CCD
Estos sensores de captura tienen características que deben ser tenidas en cuenta a la hora de seleccionarlo, entre las características más relevantes tenemos: 1. Responsividad luminosa: Es el nivel de señal que es capaz de ofrecer el sensor por cada unidad de energía óptica incidente. Se define por la ecuación 2.2-3
∫
∫
Φ
Φ=
λ
λ
λλλ
λλλ
dV
ds
Km
SA
lx
AS
e
ne
dfdf
li)()(
)()(
.)8.632(
(2.2-3)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
14
Donde: Sli es la responsividad luminosa en unidades de [Amperios/lux]. Sdf (632,8) es la responsividad absoluta del detector fotométrico a 632,8 nm. Φe(λ) es la distribución espectral de la fuente iluminante tipo A. Sn(λ) es la responsividad espectral relativa del detector fotométrico. V(λ) es Eficiencia espectral luminosa para la visión fotópica. Km es la eficiencia espectral luminosa máxima (683 lm/W). Adf es el área del detector fotométrico. Mayor información sobre este tema puede ser consultada en [6].
2. Relación señal a ruido o SNR (Signal Noise Relation): El SNR da un indicador de cuantos fotones inciden sobre el sensor de captura o la superficie del fotodiodo de captura, sobre otros factores que afectan negativamente la imagen original. El SNR está dado por la ecuación 2.2-4
cvTiiq
TiiSNR
dcph
ph
ph 2210
)(log20)(
σσ +++= (2.2-4)
Donde: SNR(iph) es la relación de señal a ruido sobre sensor de captura o el fotodiodo. q(iph+idc) es la carga de los electrones incidentes en el fotodiodo y la corriente de polarización del mismo. T es el periodo de exposición del fotodiodo en la captura de la imagen. σ2v es la varianza del ruido en el circuito. σ2c es la varianza antes de iniciar la conducción el fotodiodo. iph es la corriente del fotodiodo. Mayor ampliación sobre este tema puede ser consultada en [7], en el numeral 1.2.1
3. Rango Dinámico: Es la razón entre el máximo nivel de luminosidad que el sensor puede medir antes de saturarse y el mínimo nivel descontado el ruido de lectura. El rango dinámico está definido por la ecuación 2.2-5.
cvTiq
QDR
ph
sat
2210log20
σσ ++= (2.2-5)
Donde: DR es el rango dinámico. qiph es la carga de los electrones incidentes en el fotodiodo. T es el periodo de exposición del fotodiodo en la captura de la imagen. σ2v es la varianza del ruido en el circuito. σ2c es la varianza antes de iniciar la conducción el fotodiodo. Mayor ampliación sobre este tema puede ser consultada en [7], en el numeral 1.2.1
4. Velocidad de captura: La velocidad de captura de una imagen está dada por la cantidad de imágenes que puede capturar en un segundo y está representado por las siglas del FPS
(Frames Per Second). Podemos citar dos arquitecturas de captura de video. La arquitectura de lectura digital que permite velocidades de captura de hasta los 10KFPS y la arquictectura de lectura analógica que permite velocidades de captura de hasta 400 MFPS. La ecuación 2.2-6 describe la velocidad de captura para una arquitectura digital secuencial de píxel por píxel (PBP). En [8] el autor hace un análisis de las diferentes arquitecturas para la captura de imágenes.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
15
1−
+=ROADCPBP
xn
bHxVFR ττ (2.2-6)
Donde, H y V, son el número de filas y columnas del arreglo de sensores, ADC
τ es el tiempo
que toma la conversión de análogo a digital, RO
τ es el tiempo que tarda el dispositivo en
enviar la conversión, b es el número de bits y n es el número de salidas paralelas.
Otras características que deben ser tenidas en cuenta son: Las densidad de píxeles, esta característica describe la relación entre el número de píxeles y el tamaño del sensor, entre mas área se disponga para la misma cantidad de píxeles, mayor será el tamaño de este píxel, por lo tanto mayor la iluminación recibida, dando como resultado mayor calidad de la imagen capturada. La respuesta uniforme, con esta característica se espera que un píxel sometido al mismo nivel de excitación de luz que sus vecinos no presente cambios apreciables respecto de ellos. El Blooming es el fenómeno por el cual un píxel que ha alcanzado la saturación empieza a saturar a sus vecinos, creando efectos y patrones no deseados.
2.2.3 Modelo Pinhole El sistema de captura para imágenes más sencillo, es el modelo pinhole, el cual está compuesto por una cámara con un orificio infinitamente pequeño y por este los rayos de luz entran a la cámara y forman una imagen del cuerpo situado en frente de este orificio en su interior, pero de forma invertida. En [9] el autor, en el capitulo11 hace la descripción del modelo pinhole y la proyección de perspectiva que se analiza a continuación. En el modelo pinhole, todos los rayos provenientes de un objeto atraviesan un fino agujero e impactan en la cámara o el sensor de captura en el caso de las cámaras electrónicas. Debido a que los rayos de luz pasan a través de los lentes y estos no tienen un comportamiento lineal se presentan deformaciones en la imagen proyectada dentro de la cámara o en el sensor de captura, por lo tanto el modelo pinhole debe ser corregido por medio de parámetros que corrijan su comportamiento no lineal y lo aproximen a la apariencia real del objeto. En este modelo, el sistema de referencia de la cámara se sitúa en el centro de la proyección, coincidiendo el eje z de este sistema con el eje óptico o eje axial. En esta disposición de ejes, el plano imagen, de coordenadas u,v, se encuentra situado a una distancia igual a la longitud focal del objetivo, de forma perpendicular al eje óptico. La intersección del eje óptico con el plano imagen se denomina punto principal. El centro de proyección o centro óptico de la cámara se supone constante pero es a priori desconocido. El plano imagen normalmente se sitúa por delante del centro de proyección, para tener una imagen sin inversión. En la Figura 2.2-4, se muestra un diagrama del Modelo Pinhole.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
16
Figura 2.2-4. Modelo Pinhole.
Un punto Xcam expresado en el sistema de coordenadas de la cámara, con coordenadas [X Y
Z], se proyecta en un punto del plano imagen Xim de coordenadas (x,y) aplicando el modelo pinhole. Los valores de las coordenadas del plano imagen se obtienen a partir de las ecuaciones de proyección de perspectiva para un objetivo de distancia focal f , suponiendo que Z > f , esto es, todos los puntos en análisis se encuentran en frente de la lente, según la ecuación 2.2-7
=
Y
X
Z
f
y
x (2.2-7)
Las coordenadas en píxeles (u,v) de esta posición (x,y) en el plano imagen se obtienen utilizando el tamaño horizontal y vertical de los píxeles. Posteriormente, se deben referenciar dichos valores al origen superior izquierdo de la imagen en el sensor, por lo que se adiciona el valor del punto principal (u0,v0), el cual viene dado en píxeles. Dicha conversión se efectúa aplicando la expresión contenida en 2.2-8, realizando la transformación entre el espacio euclidiano de la cámara (plano imagen con distancia z=-focal) y el sensor de la imagen 2D con origen (0,0) situado en la parte superior izquierda de la imagen captada.
0
0
.
.
vysv
uxsu
y
x
+=+=
(2.2-8)
El punto tridimensional Xcam correspondiente al píxel de impacto (u,v) no es único. Todos los puntos pertenecientes a la recta que une el centro de proyección C con el punto Xcam inicialmente considerado son posibles puntos originales. Así cualquier punto M de la recta R con coordenadas (X,Y,Z) cumple la igualdad de la ecuación 2.2-9, al proyectarse sobre el píxel (u,v):
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
17
Cam
y
x
Z
Y
X
vf
uf
v
u
=
100
0
0
1
0
0
λ (2.2-9)
Donde, fsf
fsf
yy
xx
.
.
==
El subíndice cam para las coordenadas (X,Y,Z) indican que el punto M viene expresado en el sistema de referencia de la cámara. En general, las coordenadas para objetos de la escena vendrán dadas para un sistema de referencia global o particular para un objeto. Además se nota que el centro C del sistema de coordenadas de la cámara, centro de proyección, no se conoce a priori. Si se consideran las coordenadas (X,Y,Z)w de un punto M de la escena para un cierto sistema de referencia externo, dichas coordenadas se tienen que expresar en el sistema de coordenadas de la cámara para así poder aplicar las ecuaciones de proyección del modelo pinhole. La transformación entre ambos sistemas de coordenadas viene expresada como una matriz de rotación y traslación denominada matriz extrínseca (RText). Conocida dicha matriz RText se puede realizar la transformación de coordenadas de un punto expresado en el sistema de referencia W al sistema de coordenadas de la cámara C. Dicha ecuación, haciendo uso de coordenadas homogéneas, se describen en la ecuación 2.2-10
Wcam
Z
Y
X
r
r
r
r
r
r
r
r
r
Z
Y
X
=
10001
33
23
13
32
22
12
31
21
11
(2.2-10)
La notación habitualmente empleada para expresar las ecuaciones de proyección P de un punto M (X,Y,Z)w sobre el plano imagen en el píxel de coordenadas m (u,v) se describen en la ecuación 2.2-11.
PMm → (2.2-11) Donde la matriz P puede ser descrita por la ecuación 2.2-12:
=
10000
0
0
100
0
0
33
23
13
32
22
12
31
21
11
0
0
z
y
x
y
x
t
t
t
r
r
r
r
r
r
r
r
r
vf
uf
P (2.2-12)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
18
La proyección perspectiva o pinhole está definida a falta de un factor de escala λ. El modelo pinhole sirve para modelar correctamente lentes delgados, dado que el espesor de los mismos se considera despreciable y se puede decir que todos los haces de rayos que lo atraviesan lo hacen siempre por el mismo centro de proyección. En el caso, de trabajar con lentes donde el espesor no es despreciable, lentes gruesos, este modelo no tiene en cuenta que la transformación entre los puntos del espacio y sus puntos correspondientes en el plano imagen vienen dados por dos planos principales diferentes. Por tanto, el parámetro f representa la distancia del sistema de referencia de la cámara al plano imagen la cual no es, en general, equivalente a la distancia focal efectiva del sistema óptico, cuyo valor es una propiedad intrínseca de los lentes. El modelo pinhole, aunque inválido para proporcionar un modelo en el espacio euclidiano, es utilizado como modelo de formación de las imágenes en el espacio proyectivo. Es decir, no puede proporcionar valores reales de distancias euclidianas pero sí modelar la captura de objetos en una escena sobre el plano imagen al aplicar directamente la proyección perspectiva.
2.2.4 Corrección de la Distorsión Cuando se trata de realizar mediciones a través de una cámara como en este proyecto, el modelo pinhole debe ser corregido con la ayuda de otros parámetros que modelan una distorsión para lograr medidas de buena precisión. Es decir, además de considerar la proyección perspectiva ideal dada por el modelo pinhole, hay que compensar los efectos reales que no se tienen en cuenta. La distorsión introducida por los lentes se añade a las coordenadas del modelo pinhole mediante un polinomio en función de su posición (u,v) modificándolo adecuadamente. Es decir la distorsión es la distancia existente entre el impacto ideal dado por el modelo pinhole (modelo de proyección de perspectiva) y la posición real que ocupa cada píxel en la imagen. En [10] el autor describe la calibración de una cámara con zoom y movimiento pan-tilt. Existen diferentes tipos de distorsión que vienen a modelar y corregir fenómenos y aberraciones ópticas de distinto origen. En la calibración, se suelen considerar únicamente dos tipos: distorsión radial y tangencial. La distorsión denominada radial se observa de forma cada vez más apreciable al considerar píxeles más alejados del punto principal. Para cámaras de gran angular donde la distancia focal es muy corta, se interpola un polinomio de aproximación para corregir dicha posición con un grado de hasta quinto orden, que son descritas por las ecuaciones 2.2-13 y 2.2-14.
2
0
2
02
−+
−=yxf
vv
f
uur (2.2-13)
Distancia radial = 10
5
8
4
6
3
4
2
2
1rarararara ++++ (2.2-14)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
19
En cámaras de distancia focal muy corta es recomendable hacer uso de los cinco parámetros ai, para cámaras con distancia focal intermedia el número de parámetros de corrección de la distorsión es menor. En la Figura 2.2-5 se muestran los efectos de la distorsión radial en una imagen. Por otra parte, para corregir la no perpendicularidad entre el eje óptico del lente fijo y el plano imagen se introduce un término de distorsión tangencial. Dicha distorsión expresada por un polinomio de segundo orden y es modelada por los dos parámetros p1 y p2, siendo diferentes las expresiones para las coordenadas u y v, como se describen en las ecuaciones 2.2-15, 2.2-16, 2.2-17, 2.2-18, 2.2-19. Los valores de p1 y p2 varían de una cámara a otra.
2
0
−=xf
uuu (2.2-15)
2
0
−=yf
vvv (2.2-16)
222vur += (2.2-17)
uvpurpuTangencialDist2
22
12)2(__ ++= (2.2-18)
uvpvrpvTangencialDist1
22
22)2(__ ++= (2.2-19)
Estos modelos de distorsión cubren una extensa variedad de distorsiones, siendo capaz de modelar sin error cualquier fenómeno típico de distorsión de los lentes actuales de distancia focal fija. En el proceso de calibración de la cámara y posterior utilización del mismo en las coordenadas ideales del modelo pinhole, se les añade los términos de distorsión radial y tangencial correspondientes, como se describen en las Ecuaciones 2.2-20 y 2.2-21.
udistradDistuuZcam
Xcamfuux
_tan__*)(00
+−+=− (2.2-20)
vdistradDistvvZcam
Ycamfvvy
_tan__*)(00
+−+=− (2.2-21)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
20
Figura 2.2-5. Efectos de distorsión radial.
2.2.5 Iluminación de la imagen La iluminación es una componente muy importante en un sistema de visión por computador, ya que permite al sistema de captura de la imagen registrar de forma más eficiente las características del objeto en análisis. La iluminación se define como el flujo luminoso por unidad de superficie (Lúmenes/metro cuadrado) y está dada por la ecuación 2.2-22, su unidad de medida es el LUX.
0ds
dE
φ= (2.2-22)
Si el tipo de iluminación es de una fuente puntual, su intensidad luminosa estará definida por la potencia luminosa de la fuente en esa dirección por unidad de ángulo solido y es medido en Lúmenes sobre Estereorradián y su unidad es la Candela. Se define por la ecuación 2.2-23.
Ω=d
dI
φ (2.2-23)
La iluminación E y la intensidad luminosa I se relacionan por medio de la ley inversa de los cuadrados y es descrita por la ecuación 2.2-24.
2d
IE = (2.2-24)
Donde d2 es la distancia entre la fuente de iluminación y el objeto iluminado. En la figura 2.2-6 se observa esta relación.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
21
Figura 2.2-6. Ley de los cuadrados
Para relacionar la iluminación con el ángulo formado por la dirección del rayo incidente y la perpendicular a la superficie se hace uso de la ley del coseno que esta descrita por la ecuación 2.2-25
αcos2d
IE = (2.2-25)
A continuación se analiza la ley del coseno para los tipos de iluminación observados en la figura 2.2-7.
1. Iluminación normal 2. Iluminación horizontal 3. Iluminación vertical
Figura 2.2-7. Tipos de iluminación
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
22
1. Iluminación normal: En este caso el ángulo de inclinación es de 900 y la iluminación la describe la ecuación (2.2-24) 2. Iluminación horizontal: En este caso la podemos relacionar en función de la altura del elemento de iluminación h y se describe por la ecuación 2.2-26
α32cos
h
IE = (2.2-26)
3. Iluminación vertical: En este caso, entre los ángulos α y β existe una relación sencilla, ya que ambos pertenecen a un triángulo rectángulo, por los tanto α + β + 90=180 y aplicando relaciones trigonométricas podemos llegar a la ecuación 2.2-27.
αsend
IE
2= (2.2-27)
Mayor información sobre luminotecnia puede ser consultada en [11]
2.3 Técnicas para el Procesamiento Digital de Imáge nes Cuando una imagen es capturada por el sistema de adquisición de imágenes, se deben aplicar una serie de algoritmos que permitan mejorar la imagen capturada y realzar las características importantes del objeto en análisis. Actualmente existe muchas técnicas que permiten el procesamiento digital de una imagen, pero según la aplicación se deben escoger técnicas adecuadas que permitan transformar la imagen capturada en la imagen esperada. En este proyecto se debe adecuar, contrastar y separar la lámina de cuero del resto de la imagen, para poder realizar la medida correcta de dicha lámina. En este orden de ideas se deben estudiar las técnicas de procesamiento de la imagen que permitan el mejoramiento y la segmentación de la imagen, por lo tanto se abordarán los temas de mejoramiento y segmentación de las imágenes.
2.3.1 Mejoramiento de la Imagen Las técnicas de mejoramiento de la imagen tienen como objetivo principal procesar la imagen capturada y modificarla de tal forma que la imagen resultante muestre las características que deseamos analizar. Las técnicas de mejoramiento de la imagen se usan según el tipo de aplicación o problema a resolver, por lo tanto se analizaran las técnicas más competentes para este proyecto. Las técnicas a analizar son:
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
23
1. Operaciones morfológicas 2. Filtrado en el dominio espacial
2.3.1.1 Operaciones Morfológicas Las operaciones morfológicas aplicadas a imágenes, sirven para extraer sus componentes principales como su contorno, el esqueleto, cerco convexo entre otras. Estas técnicas morfológicas también son usadas en el pre-procesamiento de la imagen mediante el uso de filtros morfológicos. En [1] en el numera 8.4 y en [12] se hace mayor análisis sobre este tema. A continuación se describirán las siguientes técnicas:
1. Dilatación 2. Erosión 3. Apertura y cierre 4. Transformaciónes top hat y bottom hat
1. Dilatación
Esta técnica consiste en adicionar píxeles al contorno de los objetos presentes en la imagen y se define para imágenes en escala de grises como: La dilatación de escala de grises de f
por b, representada f ⊕ b, se define por medio de la ecuación 2.3-1
bf DyxDytxsyxbytxsfMaxtsbf ∈∈−−+−−=⊕ ),(;)(),(),(),(),)(( (2.3-1)
Donde Df y Db son dominios de f y b, respectivamente. La condición de los parámetros de desplazamiento (s – x) y (f – y) tienen que estar contenidos en el dominio de f. La dilatación de una imagen puede ser observada en la figura 2.3-1.
a)
b)
Figura 2.3-1. Proceso de dilatación de una imagen
a) Imagen original. b) Imagen dilatada
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
24
2. Erosión
Esta técnica consiste en eliminar píxeles del contorno de los objetos presentes en la imagen. La erosión de una imagen se define mediante la ecuación 2.3-2
(f θ b) bf DyxDytxsyxbytxsfMints ∈∈++−++= ),(;)(),(),(),(),( (2.3-2)
Donde Df y Db son dominios de f y b, respectivamente. La condición de que los parámetros de desplazamiento ( s + x ) y ( f + y ) tienen que estar contenidos en el dominio de f. La erosión de una imagen puede ser observada en la figura 2.3-2.
a)
b)
Figura 2.3-2. Proceso de erosión de una imagen
a) Imagen original. b) Imagen erosionada
3. Apertura y Cierre
La apertura y el cierre de una imagen son operaciones que resultan de la combinación de la dilatación y la erosión, por lo tanto, la apertura es una erosión seguida de una dilatación y se describe por la ecuación 2.3-3.
)( bf o = (f θ b) ⊕ b (2.3-3)
La operación de apertura en una imagen es usada para suavizar sus contornos, eliminar pequeñas protuberancias y romper conexiones débiles. La apertura de una imagen se muestra en la figura 2.3-3
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
25
a)
b)
Figura 2.3-3. Proceso de apertura de una imagen
a) Imagen original. b) Imagen con apertura
De forma similar se define que el cierre es una dilatación seguida de una erosión y se describe por la ecuación 2.3-4.
)()( bfbf ⊕=• θ b (2.3-4)
La operación de cierre de una imagen es usada para suavizar contornos, rellenar detalles, rellenar vacios en el contorno y eliminar pequeños huecos. Esta operación es observada en la figura 2.3-4.
a)
b)
Figura 2.3-4. Proceso de cerradura de una imagen
Imagen original. b) Imagen con cerradura
4. Transformación Top Hat y Bottom Hat
La transformación top hat sustrae a la imagen, la apertura de la imagen. Es útil para resaltar objetos de color contrario al fondo o extraer detalles brillantes en presencia de sombras. Se define por la ecuación 2.3-5.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
26
)( bffh o−= (2.3-5)
En la figura 2.3-5 se observa esta transformación
a)
b)
Figura 2.3-5. Transformación top hat en una imagen
Imagen original. b) Imagen con transformación
La transformación bottom hat sustrae a la imagen la cerradura de la imagen, es útil para capturar detalles oscuros en zonas iluminadas. Se define por la ecuación 2.3-6
fbfh −•= )( (2.3-6)
En la figura 2.3-6 se observa esta transformación
a)
b)
Figura 2.3-6. Transformación bottom hat en una imagen
Imagen original. b) Imagen con transformación
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
27
2.3.1.2 Filtrado en el Dominio Espacial Los filtros en el procesamiento de digital de imágenes son usados para atenuar el ruido en los píxeles de la imagen o resaltar las características que deseamos analizar o estudiar, los filtros se pueden diseñar en el dominio espacial o en el dominio frecuencial. En este proyecto solo se describirán los filtros suavizantes en el dominio espacial. Los filtros en el dominio espacial son el resultado de una operación de convolución tal como lo describe la ecuación 2.3-7, donde el píxel p en la posición (i,j) es el resultado de la convolución, mxn en el tamaño de la máscara usada y los elementos wk son los componentes de la máscara y los zk son los píxeles que intervienen en la operación.
∑=
=mxn
k
kkzwjiP
1
),( (2.3-7)
En la figura 2.3-7 se observa esta operación. En [1] en el numeral 4.3.2 el autor analiza más a fondo este tema
Figura 2.3-7. Operación de convolución sobre una imagen
Entre los filtros más importantes tenemos: 1. Filtrado espacial paso bajo 2. Filtrado por la mediana 3. Filtrado espacial paso alto 4. Filtrado high boost 5. Filtros diferenciales
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
28
1. Filtrado Espacial Paso Bajo
Según la respuesta de impulso para un filtro espacial paso bajo, es necesario que los coeficientes de la máscara del filtro sean positivos. Este filtro tiene especial aplicación para el suavizado o difuminado de una imagen. Un ejemplo de una máscara que puede ser usada por esta imagen se muestra en la figura 2.3-8. Este filtro puede describirse por la ecuación 2.3-8.
=111
111
111
9
1xh
Figura 2.3-8. Máscara de convolución para un filtro paso bajo
∑=
=M
i
iyxg
Myxg
1
),(1
),( (2.3-8)
La operación sobre una imagen de este filtro puede observarse en la figura 2.3-9
a)
b)
Figura 2.3-9. Filtrado paso bajo
a) Imagen Original. b) Imagen filtrada por mascara de 35x35
2. Filtrado por la Mediana
El filtro mediana es un filtro no lineal, su operación consiste tomar los valores del píxel a filtrar y de su entorno, ordenarlos y posteriormente calcular el valor de la mediana. El
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
29
filtrado por la mediana tiene especial aplicación cuando el objetivo es la disminución del ruido producido por componentes puntuales fuertes similares al ruido sal y pimienta, pero preservando los bordes de la imagen. Este filtro aplicado a una máscara de 3x3 se puede definir por la ecuación 2.3-9 y su aplicación sobre una imagen en la figura 2.3-10.
++++−+−
++−−−=
)1,1()1,()1,1(
),1(),(),1(
)1,1()1,()1,1(
),(
jifjifjif
jifjifjif
jifjifjif
medianajip (2.3-9)
a)
b)
Figura 2.3-10. Filtro mediana
a) Imagen Original. b) Imagen filtrada por máscara de 3x3
3. Filtrado Espacial Paso Alto
La respuesta impulso necesaria para este filtro implica que el filtro debe tener coeficientes negativos en la periferia de la máscara y en el centro valores positivos. Generalmente son llamados filtros de realce, su principal aplicación está en la detección de los cambios bruscos o desniveles de intensidad en la imagen, como es el caso de los bordes de una imagen. Una máscara común que describe a este filtro puede observarse en la figura 2.3-11. Se puede representar por la misma ecuación del filtro paso bajo, dado por la ecuación 2.3-8
−−−−−−−−
=111
181
111
9
1xh
Figura 2.3-11. Máscara de convolución para un filtro paso alto
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
30
La operación sobre una imagen puede observarse en la figura 2.3-12
a)
b)
Figura 2.3-12. Filtrado paso alto
a) Imagen Original. b) Imagen filtrada por mascara de 3x3
4. Filtrado High Boost
El filtro high boost es un caso especial del filtro paso alto donde el valor central de la máscara esta dado por un valor w. Este valor w esta dado por un factor de amplificación A de la imagen original, si A es mayor que 1, da como resultado la imagen original con bordes mas definidos, si A es igual a 1, el resultado es un filtro pasa alto normal. Se define por la ecuación 2.3-8, pero cambiando el valor central de la máscara por A. La máscara de convolución para el filtro high boost puede ser descrita por la figura 2.3-13, y la aplicación de un filtro high boost puede ser apreciada en la figura 2.3-14.
−−−−−−−−
=111
11
111
9
1wxh
Figura 2.3-13. Máscara de convolución para un filtro high boost
Donde w es igual a 9A-1, con A ≥ 1.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
31
a)
b)
Figura 2.3-14. Filtrado high boost
a) Imagen Original. b) Imagen filtrada con A = 1.7
5. Filtros Diferenciales
Los filtros diferenciales tienen como característica principal que aumentan la nitidez de la imagen, el método más común de diferenciación de una imagen es el gradiente. El Operador Gradiente es un operador diferencial que resalta los cambios bruscos o bordes que tiene una imagen. Estos cambios bruscos son los píxeles alrededor de la imagen que presentan variaciones rápidas en sus niveles de gris o de intensidad. El operador gradiente en una imagen f (x,y) sobre un punto (x,y) se define como un vector bidimensional y esta dado por la ecuación 2.3-10 y su módulo por la ecuación 2.3-11.
∂∂∂∂
=∇
y
fx
f
f (2.3-10)
22
22)(
∂∂+
∂∂=+=∇
y
f
x
fGGfmagyx
(2.3-11)
Este operador gradiente puede implementarse usando máscaras de 2x2 o 3x3, como se observa en la figura 2.3-15, donde se muestran sus diferentes formas. Una aplicación en la detección de discontinuidades puede ser consultada en [13].
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
32
−10
01
− 01
10
a)
−−−
111
000
111
−−−
101
101
101
b)
−−−
121
000
121
−−−
101
202
101
c)
Figura 2.3-15. Operadores de gradiente
a) Operador Roberts. b) Operador Prewitt. c) Operador Sobel
2.3.2 Segmentación de imágenes La segmentación tiene como objetivo extraer información de una imagen, dividiéndola en sus partes importantes u objetos. La segmentación se logra cuando los objetos de interés son separados de la imagen, para este proyecto en especial, cuando se logra separar la lámina del cuero del resto de la imagen. Información más profunda sobre segmentación puede ser consultada en [1] en el capítulo 7. La segmentación de imágenes monocromáticas generalmente se basan en dos propiedades básicas de los niveles de gris: La discontinuidad y la similaridad. En los métodos basados en discontinuidad se divide la imagen basándose en los cambios bruscos de los niveles de gris, entre las técnicas mas comunes de la discontinuidad tenemos el operador gradiente que fue descrito en el numeral anterior y el operador Laplaciano. Los métodos basados en similaridad buscan construir objetos basándose en las regiones que forma la imagen. Su función es encontrar píxeles vecinos que tengan una propiedad en común. Una de las técnicas más conocidas de este método es la umbralización.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
33
2.3.2.1 Operador Laplaciano El operador Laplaciano es un operador de segunda derivada y tiene como objetivo principal descubrir transiciones de intensidad en la imagen. El operador Laplaciano, al derivar dos veces la imagen genera un impulso al entrar al borde y otro al salir del borde de la imagen; en los demás lugares de la imagen su valor será cero. Esta característica lo hace ideal para detectar con precisión la ubicación de los bordes de objetos o finales de imágenes de pieza o materia prima en procesos industriales, pero es muy susceptible al ruido de píxeles que se mezcla con el objeto a analizar en la imagen. Este operador se usa generalmente con otros métodos para lograr la detección óptima de los bordes ya que el operador por si solo genera imágenes de polaridad. (+ Positivo al entrar al borde, - negativo al salir del borde, 0 en el borde y demás partes de la imagen). Este operador esta descrito por la ecuación 2.3-12
)(4)1,()1,(),1(),1(2
2
2
2
2 xfyxfyxfyxfyxfy
f
x
ff −−+++−++=
∂∂+
∂∂=∇ (2.3-12)
Una máscara que puede describir este operador es observada en la figura 2.3-16
−−−
−=
010
141
010
h
Figura 2.3-16. Operador Laplaciano
La aplicación de este operador sobre una imagen puede observarse en la figura 2.3-17
a)
b)
Figura 2.3-17. Operación del operador Laplaciano
a) Imagen Original. b) Imagen con aplicación del operador Laplaciano
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
34
2.3.2.2 Umbralización La umbralización es una técnica de segmentación ampliamente utilizada en aplicaciones industriales, donde existe una clara diferencia entre el objeto a extraer y el fondo de la imagen. Cuando se aplica un umbral T a una imagen, ésta quedará binaria, etiquetando con 0 los píxeles que pertenecen al objeto y con 1 a los que pertenecen al fondo tal como se observa en las Figura 2.3-18.
a)
b)
Figura 2.3-18. Umbralización de una imagen
a) Imagen Original. b) Imagen umbralizada Los métodos de umbralización pueden ser implementados de forma manual o automática. En los métodos manuales se debe tener una iluminación uniforme, un fondo constante y un buen contraste entre el objeto y el fondo. Con los métodos automáticos se busca obtener mayor robustez y se usan para ambientes en donde el ruido y la iluminación pueden no ser siempre uniformes. En [14] los autores hacen una evaluación entre los diferentes métodos de umbralización y los clasifican en 6 grupos:
1. Métodos Basados en la Forma del Histograma.
En estos métodos se analizan las curvas, los valles y las colinas del histograma. Ejemplos de estos métodos son:
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
35
a. Umbralización basado en la concavidad del histograma: Este método se basa en el análisis de los puntos de concavidad de la envolvente convexa de la función de masa de probabilidad de la imagen. Los puntos más profundos en la concavidad convexa, son candidatos potenciales para el umbral. La selección del umbral óptimo T, entre los puntos candidatos seleccionados es obtenido por medio de la ecuación 2.3-13
[ ] ))(()(maxmaxarg ipHullipT −= (2.3-13)
Donde p(i) es la función de masa de probabilidad de la imagen, Hull(p(i)) es la envolvente convexa de la función de masa de probabilidad de la imagen . Una aplicación moderna de esta técnica puede ser consultada en [15]
b. Umbralización basado en los picos del histograma: Este método se basa en el análisis de los picos del histograma suavizado. Se genera una señal detectora de picos r(g) por medio de la convolución del histograma con el kernel de detección de picos, el cual es completamente caracterizado por el parámetro N de suavizado, que se ajusta automáticamente hasta alcanzar el número deseado de picos. La señal de detección está dada por la ecuación 2.3-14, y para binarización se reduce el número de picos I hasta dos. El umbral óptimo T es obtenido por la ecuación 2.3-15.
1,..I i ),,,[( ==iiismeS (2.3-14)
1.0 ,s )-(1 e 21
≤≤+= γγγoptT (2.3-15)
En [16] se describe una aplicación de este método.
c. Umbralización intermodal: Sugiere que el histograma bimodal sea leído y se promedien en grupos de 3 valores consecutivos, hasta terminar con todos los datos, y se encuentren los dos valores máximos. Para estos dos valores máximos se calculan sus posiciones j y k, y el valor de umbral esta descrito por la ecuación 2.3-16, donde gmax y gmin son los picos máximos y mínimos del histograma y gmid es el punto medio del histograma
∑=
−=*
min
)()(minmax
midg
gg
optgpggT (2.3-16)
Para que este método funcione adecuadamente, el histograma no debe tener picos muy variables, ni valles muy amplios y planos. Esta información puede ser consultada en [17].
d. Otros métodos de umbralización basados en la forma del histograma son propuestos por [18], [19], donde hacen uso de la transformada wavelet y en [20] en autor propone un método basado en una función de dos niveles y de forma iterativa se minimiza la varianza entre estas funciones.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
36
2. Métodos Basados en Agrupamiento de Píxeles o Clu stering.
En estos métodos los píxeles son agrupados en dos partes, según sus niveles de gris, generalmente denominados fondo y objeto, o también pueden agruparse como dos distribuciones gausianas. Ejemplos de estos tenemos:
a. Umbralización ISODATA: (Iterative Self Organizing Data Analysis TEchiniques) procesa los patrones repetidamente y en cada iteración se asignan al grupo más cercano una serie de heurísticas con el objetivo de: eliminar agrupamientos poco numerosos, mezclar agrupamientos cercanos y dividir agrupamientos dispersos. Este algoritmo se caracteriza por usar la información directamente de la imagen. Este método es propuesto por [21]. A continuación se muestra el procedimiento para calcular el umbral ISODATA:
1. Seleccione un umbral inicial T para el promedio de la intensidad. 2. Particione la imagen en dos grupos: R1 y R2 utilizando T. 3. Calcule los valores medios de las regiones µ1 y µ2 4. Asigne un nuevo umbral para T usando la ecuación 2.3-17
2
)(21
µµ +=T (2.3-17)
5. Repetir los pasos 2,3 y 4 hasta que el valor de T no cambie.
b. Umbralización de Otsu: El método de Otsu presenta buenos resultados cuando se trabaja con imágenes del mundo real, donde la presencia de ruido y la mala iluminación son características comunes de estos ambientes. Este método usa una imagen, la cual es una función bidimensional de la intensidad del nivel de gris, y está compuesta de N píxeles, cuyos niveles de gris se encuentran entre 1 y K, donde K es el máximo nivel de intensidad. Por ejemplo, en una imagen en escala de grises de 8 bits, el valor de K sería 255. El número de píxeles con nivel de gris i, y la probabilidad de ocurrencia de este nivel se denominan fi tal como se describe en la ecuación 2.3-18. Este método es propuesto por [22] y se describe a continuación.
N
fiP i=)( (2.3-18)
Cuando la umbralización se realiza en dos niveles o binarización, los píxeles se dividen en 2 clases, q1(i) y q2(i), donde los niveles de gris de q1(i) son [1..t*] y los niveles de q2(i) son [t+1…K], y son descritos por la Ecuaciones 2.3-19 y 2.3-20
∑=
=t
i
iPiq1
1)()( (2.3-19)
∑+=
=k
ti
iPiq1
2)()( (2.3-20)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
37
La media de las clases q1(i) y q2(i) están descritos por las Ecuaciones 2.3-21 y 2.3-22
∑=
=t
i iq
iiPt
1 1
1
)(
)()(µ (2.3-21)
∑+=
=k
ti iq
iiPt
1 2
2
)(
)()(µ (2.3-22)
El método de Otsu define la diferencia de clases para una imagen usando la ecuación 2.3-23, y la clase 1 y clase 2 del histograma se describen usando las Ecuaciones 2.3-24 y 2.3-25
)(
)()]([)(
11
2
1
2
1
tq
iPtit
t
i
∑=
−= µσ (2.3-23)
)(
)()]([)(
21
2
2
2
2
tq
iPtit
I
ti
∑+=
−= µσ (2.3-24)
)()()()()(2
22
2
11
2ttqttqt
wσσσ += (2.3-25)
En este caso, mediante la minimización de la ecuación 2.3-25 se obtiene el umbral de OTSU. Un estudio comparativo de este algoritmo se describe en [23]
d. Entre otros métodos de umbralización basados en agrupamientos de píxeles tenemos el del mínimo error propuesto por [24], y la umbralización por agrupamientos difusos propuesto por [25].
3. Métodos Basados en Información de la Entropía de l Histograma.
Estos métodos usan la entropía de la distribución de los niveles de gris de la imagen. Su criterio se basa en encontrar un umbral óptimo que maximice la entropía entre el fondo y el objeto en la imagen, y otros autores minimizan la entropía cruzada como un indicador de preservación de la información. Ejemplos de estos métodos tenemos:
a. Umbralización basada en la maximización de la entropía. Este algoritmo divide la imagen en dos distribuciones de probabilidad, una que represente el objeto y otra que represente el fondo. Se selecciona un valor t, tal que la suma de las entropías de estas distribuciones de probabilidad sea máxima. Implementaciones de esta umbralización puede ser consultada en [26,27]. En este caso, se considera una función de probabilidad de distribución no lineal descrita por la ecuación 2.3-26
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
38
NXN
m
NxN
m
e
eNmfpd
9
9
1
1),( −
−
−
+=
(2.3-26)
Donde N es un número par positivo y m pertenece a un valor entero entre 1,2…NxN. La entropía asociada con el objeto y el fondo están descritas por las Ecuaciones 2.3-27 y 2.3-28
),()(
),(ln
)(
),(),(
0 1Nmfpd
tp
mkp
tp
mkpNtH
t
K
A
NxN
m
A
A ∑ ∑= =−= (2.3-27)
),()(
),(ln
)(
),(),(
255
1 1Nmfpd
tp
mkp
tp
mkpNtH
tK
B
NxN
m
B
B ∑ ∑+= =−= (2.3-28)
En este caso, la función de criterio está dada por la ecuación 2.3-29
),(),(),( NtHNtHNtBA
+=Θ (2.3-29)
El valor de umbral óptimo T se encuentra maximizando la ecuación 2.3-30
),( NtArgMaxT Θ= (2.3-30)
b. Umbralización Basado en el Cálculo de la Mínima Cross-entropía. En [28] proponen un algoritmo que considera que el umbral de separación es la minimización de la distancia teórica de la información. La distancia está descrita por la ecuación 2.3-31 y es llamada la distancia. Kullback-Leibler. Esta distancia es la medida entre las dos distribuciones del objeto p(g) y el fondo q(g).
)](),(),([arg312211TbmTbmTbmequalT
opt==== (2.3-31)
La ecuación 2.3-32 describe la mínima cross-entropía.
∑ ∑= +=
+=T
g
G
Tg
optT
gT
gT0 1 bf
])(m
glog p(g)
)(m
glog p(g) min[arg (2.3-32)
Considerando la restricción que la imagen original y la imagen umbralizada tienen el mismo promedio de intensidad en el objeto y el fondo. La ecuación 2.3-33 describe la anterior consideración.
∑ ∑∑ ∑≥ ≥≤ ≤
==Tg Tg
b
Tg Tg
f TmgTmg )(;)( (2.3-33)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
39
c. Umbralización basada en la maximización de la entropía por medio de coeficientes de pertenencia difusa. Este método propuesto en [29], es un método de umbralización que se basa en un coeficiente de pertenencia difusa, el cual es un valor en escala de grises que separa el fondo del objeto en una imagen. Este valor es calculado en base a la función de probabilidad acumulada. El valor de pertenencia difuso está dado por la ecuación 2.3-34, el cual indica el grado de pertenencia al fondo de la imagen.
)( 2
)()1(...)(5.0)(
TP
iTpiTpTpiTf
−+−−+++=−µ
(2.3-34)
La ecuación 2.3-35 indica el grado de pertenencia del objeto en la imagen.
))(-(1 2
)()1(...)1(5.0)(
TP
iTpiTpTpiT
b
+++−++++=+µ (2.3-35)
El valor de umbral de separación debe tener la máxima incertidumbre como se describe en la ecuación 2.3-36
5.0)()( == TT bf µµ (2.3-36)
De tal forma que la ecuación 2.3-37 describe el óptimo valor de umbral.
)()(minarg THTHT bfTopt −= (2.3-37)
Las funciones Hb(T) y Hf(T) son descritas por las Ecuaciones 2.3-38 y 2.3-39
))(log()(
)()(
0
∑=
−=T
g
ff gTP
gpTH µ (2.3-38)
))(log()(1
)()(
1
∑+= −
−=G
Tg
bb gTP
gpTH µ (2.3-39)
Una comparación de los métodos basados en la entropía pueden ser consultados en [30] y una aplicación de los métodos de cross-entropia puede ser consultado en [31].
4. Métodos Basados en los Atributos de la Imagen.
Estos métodos utilizan características de la imagen como formas, texturas, niveles de gris, conectividad, etc. Su criterio se basa en encontrar un valor de umbral según el atributo
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
40
seleccionado que corresponda a una medida de similitud entre la imagen original y la imagen binarizada. Ejemplos de estos métodos tenemos: a. Umbralización Basado en el Cálculo de Preservación de Momentos: En [32] el autor propone un algoritmo de umbralización que considera que una imagen en escala de grises es una versión borrosa de una imagen binaria ideal, por lo tanto se establece que los tres primeros momentos de una imagen en escala de grises coincidan con los tres primeros momentos de una imagen binaria. Los momentos de una imagen binaria bk y de una imagen en escala de grises mk, están descritos por las Ecuaciones 2.3-40 y 2.3-41
∑=
=G
g
k
k ggpm
0
)( (2.3-40)
k
bb
k
ffk mPmPb += (2.3-41)
El umbral de separación está dado por la ecuación 2.3-42
∑=p(g)
q(g)log )(),( gqpqD (2.3-42)
b. Umbralización por similitud difusa: En [33] se presenta un método que utiliza la teoría de conjuntos difusos para umbralizar imágenes. Considerando el índice difuso que se obtiene calculando la distancia entre el nivel de gris y el nivel binario. El conjunto de la imagen está descrito por la ecuación 2.3-43.
))],((),,([ jiIjiIF fµ= (2.3-43)
Donde el coeficiente difuso esta descrito por la ecuación 2.3-44:
1)),((0 ≤≤ jiIfµ
(2.3-44)
Las Ecuaciones 2.3-45 y 2.3-46 representan para cada píxel (i,j) la medida difusa perteneciente al objeto al fondo respectivamente. La medida difusa puede estar dada por las medianas del objeto mf(T) y del fondo mb(T).
TjiI
C
TmjiITjiI
f
f ≤−
+
= ),( si )(),(
1
1)),,((µ (2.3-45)
TjiI
C
TmjiITjiI
b
b≥
−+
= ),( si )(),(
1
1)),,((µ (2.3-46)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
41
Donde C es un valor constante que cumple la condición descrita por la ecuación 2.3-47
1),((5.0 ≤≤ jiIF
µ (2.3-47)
Por ejemplo, C puede tomar un valor como gmax – gmin o simplemente llamarlo G. Teniendo en cuenta el valor de pertenencia difuso de cada píxel, se puede obtener un índice difuso de toda la imagen mediante la entropía de Shannon o la medida de Yager. La entropía de Shannon presenta mejores resultados debido a que con menor valor para la medida difusa, es mejor la binarización de la imagen. El umbral de separación óptimo es presentado por la ecuación 2.3-48
)]()).,(1log()),(1()),((log),(2log
1min[arg
02
gpTgTgTgTgN
T fff
G
gfopt µµµµ −−+−= ∑
= (2.3-48)
c. Otros métodos de umbralización basados en los atributos de la imagen son expuestos por [34] donde hacen uso de la umbralización topológica en estado estable, con el objetivo de binarizar la imagen mientras se establece el tamaño correcto de los tamaños de los objetos sobre el primer plano. En [35] el autor expone un método que considera que el umbral es el cambio en la incertidumbre de una observación cuando se clasifica el fondo de la imagen con el objeto a separar. En ausencia de cualquier observación la entropía de la escena es
medida por )1log()1(log)( αααα −−−−=XH , donde α es la probabilidad que un píxel
permanezca al primer plano (objeto), mientras α−1 es la probabilidad que pertenezca al segundo plano u objeto.
5. Métodos Basados en Información Espacial.
Estos métodos usan la información espacial de los píxeles, como las probabilidades de su contexto, probabilidades de coocurrencia, funciones de correlación, modelos de dependencia lineal local, entropía bi-dimensional entre otros. Ejemplos de estos métodos tenemos:
a. Umbralización basada la probabilidad de coocurrencia: En [36] el autor lo propone para dos imágenes con histogramas idénticos, pero con diferentes entropías de enésimo orden. Por lo tanto se considera que la coocurrencia de los niveles de gris de k y l de una imagen
como una función de umbralización T, es calculada por la ecuación 2.3-49, donde 1=δ , si
))),1(()),((()))1,(()),((( mjiIkjiImjiIkjiI =+∧=∨=+∧= y 0=δ para otros casos
∑=agen
mkc
Im
,δ (2.3-49)
Se propone establecer el umbral de tal manera que las probabilidades de coocurrencia de la imagen original y la imagen binarizada sean mínimamente divergentes. Como medida de
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
42
similitud se usa divergencia dirigida o la distancia Kullback-Leibler . Se plantea una matriz de coocurrencia para cuatro cuadrantes, donde el primer cuadrante se define como las transiciones que tiene el fondo con el fondo, el segundo cuadrante se define como las transiciones que tiene el fondo con el objeto, el tercer cuadrante se define como las transiciones que tiene el objeto con el fondo y el cuarto cuadrante se define como las transiciones que tiene el objeto con el objeto. La figura 2.3-19 muestra la matriz de coocurrencia.
Figura 2.3-19. Matriz de coocurrencia
Usando las probabilidades de coocurrencia, que sería el resultado de las transiciones del fondo y el objeto del píxel i,j normalizado, por el número de transiciones.
Las ecuaciones 2.3-50 hasta la 2.3-53 describen las probabilidades de estas transiciones.
∑∑= =
=T
i
T
j
ijbb pTP0 0
)( (2.3-50)
∑ ∑= +=
=T
i
G
Tj
ijbf pTP0 1
)( (2.3-51)
∑ ∑+= +=
=G
Ti
G
Tj
ijff pTP1 1
)( (2.3-52)
∑∑+= =
=G
Ti
T
j
ijfb pTP1 0
)( (2.3-53)
Las cantidades, que son la métrica se definen como Qbb(T), Qbf(T), Qff(T), Qfd(T) son usadas para calcular el umbral óptimo según la ecuación 2.3-54
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
43
(T)](T)logQP (T)(T)logQP (T)(T)logQP (T)(T)logQargmin[PT fbfbffffbfbfbbbbopt +++= (2.3-54)
b. Umbralización basada en conjuntos aleatorios: Este método propuesto es [37] está basado en la mejor aproximación de una función de distancia en una imagen en escala de grises con un umbral de valor T y una función de distancia esperada. La idea subyacente de este método es que cada imagen en escala de grises da lugar a una distribución en un conjunto aleatorio. En el contexto de la umbralización, cada valor de umbral genera un conjunto de objetos binarios con diferentes propiedades de distancia. Así la función de
distancia esperada ubica el píxel (i,j), a una distancia ),( jid la cual es obtenida del promedio
del mapa de distancias );,(T
Fjid , para todos los valores de umbral entre 0 y G, o
alternativamente con los pesos que corresponden al valor del histograma. Donde FT
describe el objeto binario. El umbral óptimo se calcula por medio de la ecuación 2.3-55
|);,(),(|maxmin, TjiTopt FjidjidT −= (2.3-55)
c. Umbralización basada en la entropía difusa de una partición bi-dimensional: En [38] el autor propone un método que combina la entropía difusa y el histograma bi-dimensional de los valores de píxel y los promedios de los vecinos a una distacia 3x3. Un histograma bi-dimensional es particionado en una región brillante y otra oscura y difusa conforma a una
función S dada por Kaufmann. Un píxel xi es asignado según la reglas difusas )(iAxµ que a
su vez caracterizan tres parámetros llamados (a,b,c), para obtener la mejores reglas difusas se usa la ecuación 2.3-56 de entropía difusa
),(log),(),()(,
yxpyxpyxAHyx
Afuzzy ∑−= µ (2.3-56)
Donde A son los eventos del fondo o el objeto en la imagen, y el umbral óptimo se define por la ecuación 2.3-57
)()(max,,
FondoHObjetoHT fuzzyfuzzycba
opt += (2.3-57)
6. Métodos basados en características locales.
Estos métodos adaptan el umbral de cada píxel en función de las características locales de la imagen, tal como rango, varianza, parámetros de superficie, etc. Ejemplos de estos métodos tenemos:
a. Umbralización por la varianza local: Este método propuesto en [39] adapta el umbral según a la media local m(i,j) y la desviación estándar σ(i,j) y calcula una ventana de bxb píxeles. Se puede representar por la ecuación 2.3-58
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
44
433x3T j)VarI(i,or T ),(Ave if 1),( ><= jiIjiB (2.3-58)
b. Umbralización basada en el contraste local: Este método propuesto por [40] compara el nivel de gris de un píxel, con el promedio de niveles de gris de sus vecinos. El umbral se toma como el valor medio en el rango de valores de los vecinos. Puede representarse por la ecuación 2.3-59
OtroCaso
biasjiIjiifjiB
w∗<
=),(),(
0
1),(
µ (2.3-59)
c. Umbralización por ajuste de superficie: Este método propuesto por [41] se basa en la combinación de la detección de bordes y la información del nivel de gris para construir un umbral de la superficie. Se calcula la magnitud del gradiente de la superficie y es adelgazado para obtener los máximos gradientes locales. El umbral de superficie es obtenido con la interpolación de superficie potencial usando el método de sobre relajación. El umbral se obtiene por medio de la ecuación 2.3-60
4/),(),(),(1
jiRjiTjiTnnn
+= − (2.3-60)
Donde R(i,j) es el laplaciano discreto de la superficie.
2.4 Implementaciones Hardware para el Procesamiento digital de Imágenes En esta sección se realiza una recopilación de diversas arquitecturas hardware para el procesamiento digital de imágenes. Se inicia con arquitecturas propuestas para la captura de la imagen desde el sensor, que pretenden mejorar características como la fidelidad de la imagen y su velocidad de captura. Se muestra una arquitectura que permite corregir las distorsiones generadas por el lente de la cámara de forma automática. También se presentan varias arquitecturas para filtros como la mediana y el gausiano que pretenden mejorar la imagen capturada, y finalmente se presenta dos arquitecturas que buscan la umbralización de una imagen de forma automática.
2.4.1 Arquitecturas Hardware para la Captura de Imá genes En la figura 2.4-1 se muestra la arquitectura interna del dispositivo LM9630 [42], con capacidad para capturar imágenes monocromáticas de sensores CMOS de 100x128 con una velocidad de captura de 580 fps
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
45
Figura 2.4-1. Arquitectura para el dispositivo LM9630 producido por [42]
En la figura 2.4-2 se muestra una arquitectura para basada en FPGAs para el procesamiento en tiempo real de imágenes propuesto por [43], donde el autor propone una arquitectura para la captura de una imagen por medio de un sensor CMOS con una resolución de 1280 x 1024 píxeles, y permite enviar la imagen a un PC de forma paralela, además permite realizar convoluciones con mascaras de nxn
Figura 2.4-2. Arquitectura basada en un FPGA para el procesamiento en tiempo real de imágenes
propuesto por [43]
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
46
La figura 2.4-3 muestra una arquitectura para la captura de imágenes de alta velocidad para sensores CMOS propuesta por [44], con una resolución de 1280x1024, donde proponen una velocidad de captura de 500 fps mediante convertidores ADC de 10 bits
Figura 2.4-3. Arquitectura basada en un FPGA para la captura de imágenes de un sensor CMOS,
propuesto por [44]
En [7] el autor describe el desarrollo de una arquitectura de alta velocidad para la captura de una imagen, esta arquitectura permite capturar imágenes a una velocidad de 10.000 fps. Esta arquitectura se observa en la figura 2.4-4
a)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
47
b)
Figura 2.4-4. Bloque DSP para la captura de imágenes de un sensor CMOS, propuesto por [7]
a) Bloque DSP b) Esquemático del píxel
2.4.2 Arquitecturas Hardware para la Corrección de Distorsiones en la Captura de una Imagen En la figura 2.4-5 se muestra una arquitectura propuesta por [45], donde el autor propone la corrección de la imagen capturada por un sistema estereoscópico mediante el uso de un FPGA, esta arquitectura tiene como componente principal un bloque llamado LDRU (Lens Distortion and Rectification Unit), que es la unidad de rectificación de lentes y distorsiones. Su aplicación se orienta a la robótica móvil y según sus autores tiene la capacidad de corregir una imagen capturada a una velocidad de 35 fps y de tamaño de 1024x1024 píxeles.
Figura 2.4-5. Arquitectura basada en un FPGA para la corrección de las distorsiones que generan
los lentes en una imagen propuesta por [45]
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
48
En la figura 2.4-6 se muestra una arquitectura propuesta en [46], para la corrección geométrica generada por un lente en una imagen. La implementación de los cálculos matemáticos son realizados a través del algoritmo CORDIC de forma paralela en pipeline mostrado en la figura 2.3-6a, y la implementación de la arquitectura para la corrección radial en pipeline se muestra en la figura 2.3-6b
a)
b)
Figura 2.4-6. Arquitectura basada en un FPGA para la corrección de las distorsiones que generan los lentes en una imagen propuesta por [46]
a) Arquitectura CORDIC b) Arquitectura para la corrección radial
2.4.3 Arquitecturas Hardware para la Mejora y el Re alce de una Imagen Uno de los cálculos más usados en el procesamiento digital de imágenes, es el cálculo del histograma y en [47], los autores proponen una arquitectura en hardware para el cálculo del histograma de forma paralela. En la figura 2.4-7 se observa el diseño de esta arquitectura, que tiene como propósito una técnica que libere la memoria de posibles colisiones de los datos almacenados. La PCH (Parallel Histogram Computation) Usa una memoria de dos puertos, y se desarrolla en dos etapas, primero se almacenan en dos arreglos los píxeles de las posiciones pares e impares respectivamente y de forma simultánea. En la segunda etapa se actualiza el incremento del histograma.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
49
a)
b)
Figura 2.4-7. Arquitectura basada en un FPGA para el cálculo del histograma propuesta por [47]
a) Arquitectura para el manejo del histograma. b) Arquitectura para el manejo de la memoria
de dos puertos En la figura 2.4-8 se muestra la implementación de un filtro FIR bi-dimensional propuesto por [48]. La idea principal de este filtro es rotar la ventana formada por los vecinos de cada píxel que se procesa a determinado ángulo, y realizar el filtrado sobre la ventana de la imagen rotada con un banco de filtros FIR fijo.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
50
Figura 2.4-8. Arquitectura basada en un FPGA de un filtro FIR bi-dimensional [48]
La implementación de un filtro para el mejoramiento de imágenes es propuesta por [49] donde se implementa un filtro gausiano mediante el algoritmo CORDIC como se observa en la figura 2.4-9a y calcula la dirección y la magnitud del gradiente como se observa en la figura 2.4-9b.
a)
b)
Figura 2.4-9. Arquitectura basada en un FPGA de un filtro Gausiano [49]
a) Filtro Gausiano. b) Calculo de la dirección y magnitud del gradiente
En [50] los autores diseñan un filtro mediana para sistemas de inspeccion industrial en tiempo real. El filtro mediana tiene la característica de ser un filtro no lineal y que su algoritmo de implementación consiste en organizar un conjunto de datos y seleccionar la posición media de este conjunto. Los autores proponen una arquitectura que reduce el tiempo de cálculo de este filtro, mediante la reducción de los bloques comparadores que requiere un filtro mediana clásico. La implementación de este filtro mediana es mostrada por la figura 2.4-10.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
51
a)
b)
c)
Figura 2.4-10. Arquitectura basada en un FPGA de un filtro mediana [50]
a) Nodo básico de comparadores. b) Red de comparadores. c) Filtro mediana
Otra implementación del filtro mediana es vista en la figura 2.4-11, donde los autores [51] diseñan un bloque de comparación basado en full-adder de un bit y un multiplexor implementados mediante transistores pmos y nmos.
a)
b)
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
52
c)
Figura 2.4-11. Arquitectura de un comparador basada en transistores pmos y nmos [51]
a) Full-adder. b) Multiplexor. c) Comparador
Para la detección y realce de bordes en [52] los autores proponen un detector de bordes sobel , usando un filtro digital de aritmética distribuida con el objetivo de realzar bordes de imágenes un tamaño de 256x256 píxeles. La figura 2.4-12 muestra esta implementación.
Figura 2.4-12. Arquitectura de detector de bordes sobel implementado por [52]
Una arquitectura que implementa filtros morfológicos desarrollados por [53] es mostrada en la figura 2.4-13. Esta arquitectura tiene como objetivo de realizar las operaciones básicas de la matemática morfológica, para aplicarla como acelerador de hardware, en operaciones de filtrado, segmentación y etiquetado de imágenes.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
53
Figura 2.4-13. Arquitectura para la realización de las operaciones de dilatación y erosion en
imágenes implementada en [53]
2.4.4 Arquitecturas Hardware para la Segmentación y la Umbralización de una Imagen Una arquitectura para la umbralización basada en el algoritmo ISODATA es mostrada en la figura 2.4-14. Esta implementación realizada por [54] diseña un datapath paralelizado y en pipeline lo que aumenta la velocidad de cálculo del umbral.
Figura 2.4-14. Arquitectura para umbralización de una imagen mediante el algoritmo ISODATA
implementada en [54]
La figura 2.4-15 muestra una arquitectura para la segmentación de imágenes por el método de
crecimiento de regiones. Esta arquitectura diseñada por [55] tiene como objetivo separar
características de objetos en un video. La figura 2.4-15a muestra la arquitectura para la
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
54
segmentación y la extracción de características, la figura 2.4-15b muestra el circuito de
umbralización por crecimiento de regiones y la figura 2.4-15c muestra el circuito para la extracción
de características.
a)
b)
c)
Figura 2.4-15. Arquitectura para la segmentación y extracción de características de un video
implementada en [55]
a) Arquitectura principal. b) Circuito de umbralización. c) Circuito de extracción de
características
En [56] los autores proponen un método de segmentación espacio-temporal para video. Esta arquitectura procesa imágenes a una velocidad de 133 Mpixeles por segundo. En la figura 2.4-16a muestra el circuito de segmentación del objeto y la figura 2.4-16b muestra el circuito de umbralización.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
55
a)
b)
Figura 2.4-16. Arquitectura para la umbralización por el método espacio temporal para video
implementada en [56]
a) Arquitectura principal. b) Circuito de umbralización.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
56
Bibliografía
[1] Tratamiento digital de Imágenes. Rafael C. Gonzales, Richard E. woods. 1996.
[2] Trends in CMOS Image Sensor Technology and Design, Abbas El Gamal. Department of
Electrical Engineering. Stanford University, Stanford CA 94305. 2003 [3] Review of CMOS image sensors. M. Bigasa, E. Cabrujaa, J. Forestb, J. Salviba. Centre
Nacional de Microelectronica, IMB-CNM (CSIC), Campus Universitat Autonoma de Barcelona, 08193 Bellaterra, Barcelona, Spain. Institut d’Informatica i Aplicacions Campus Montilivi, Universitat de Girona, 17071 Girona, Spain. 2005
[4] CCD / CMOS Hybrid FPA for Low Light Level Imaging. Xinqiao (Chiao) Liu, Boyd A.
Fowler, Steve K. Onishi, Paul Vu, David D. Wen, Hung Do, and Stuart Horn, Fairchild Imaging, Inc., 1801 McCarthy Boulevard, Milpitas, CA 95035. U.S. Army Night Vision and Electronic Sensors Directorate, 10221 Burbeck Rd., Fort Belvoir, VA 22060-5806. 2003
[5] Image splicing detection using camera response function consistency and automatic
segmentation. Yu-Feng Hsu and Shih-Fu Chang. Department of Electrical Engineering. Columbia University. fyfhsu,sfchangg@ee.columbia.edu. 2006
[6] Calibración de responsividad absoluta de detectores fotométricos para la realización de la
candela j. c. molina, j. c. Bermúdez Centro Nacional de Metrología, km 4,5 Carretera a los Cués, El Marqués, Qro. México. 2006
[7] CMOS image sensors dynamic range and SNR enhancement via statistical signal
processing. A dissertation submitted to the department of electrical engineering and the committee on graduate studies of stanford university in partial fulfillment of the requirements for the degree of doctor of philosophy Xinqiao Liu. June 2002
[8] CMOS Image Sensors for High Speed Applications. Munir El-Desouki,M. Jamal
Deen,Qiyin Fang, Louis Liu, Frances Tse and David Armstrong. ISSN 1424-8220. Canada. 2009
[9] Visión por computador. Gonzalo Pajares, Jesus M. de la Cruz. 2002 [10] Calibración de una cámara con zoom y movimiento pan-tilt. Alfredo Gardel Vicente.
Universidad de alcala, Escuela politécnica superior. Tesis de doctorado. Apéndice A. Calibracion de objetos con distancia focal fija. 2004
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
57
[11] Luminotecnia. Principios fundamentales, Capitulo 6. México 2002 [12] An overview of morphological filtering. Jean Serra & Luc Vincent. Centre de Morphologie
Mathematique. Ecole Nationale Superieure des Mines de Paris. Francia. 1992 [13] Detección de discontinuidades y mejora de contraste mediante el calculo de gradientes
usando redes neuronales celulares. M. A. Jaramillo Morán, J. A. Fernández Muñoz. E. Martínez de Salazar Martínez. Departamento de ingeniería electrónica y electromecánica. Escuela de ingeniería industrial. Universidad de Extremadura. España. 2000
[14] Survey over image thresholding techniques and quantitative performance
evaluationMehmet SezginTubıtak Marmara Research Center Information Technologies Research InstituteGebze, Kocaeli. Turkey. E-mail: sezgin@btae.mam.gov.tr, Bulent Sankur Bogazic¸i University Electric-Electronic Engineering Department Bebek, I˙stanbul. Turkey. 2004
[15] An Adaptive Canny Edge Detector using Histogram Concavity Analysis. Jun Zeng, Dehua
Li.International Journal of Digital Content Technology and its Applications. Volume 5, Number 6, China. Junio 2011
[16] Multi-modal gray-level histogram modeling and decomposition.Jeng Horng, Kuo ching Fan. Universidad de Taiwan. 2001
[17] Goal-directed evaluation of binarization methods, O.D. Trier, A.K. Jain, IEEE Tran.
Pattern Analysis and Machine Intelligence, PAMI-17 1995. [18] Histogram Analysis Using a Scale-Space Approach, M.J. Carlotto, IEEE Trans. Pattern
Analysis and Machine Intelligence, PAMI-9. 1997 [19] Automatic threshold selection using the wavelet transform, J.C. Olivo, Graphical Models
and Image Processing. 1994. [20] Thresholding Based on Histogram Approximation, N. Ramesh, J.H. Yoo, I.K. Sethi, IEE
Proc. Vis. Image, Signal Proc. 1995. [21] Ridler, TW & Calvard, S , "Picture thresholding using an iterative selection method", IEEE
Transactions on Systems, Man and Cybernetics 8: 630-632. 1978 [22] A threshold selection method from gray-level histograms. N. Otsu. IEEE Transactions on
Systems, Man, and Cybernetics. 1979. [23] T-tests, F-tests and Otsu’s Methods for Image Thresholding Jing-Hao Xue* and D. Michael
Titterington. Jing-Hao Xue* and D. Michael Titterington. IEEE TRANSACTIONS ON IMAGE PROCESSING, 2010
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
58
[24] Automatic Target Classification Using Moment Invariant of Image Shapes, D.E. Lloyd, Technical Report, RAE IDN AW126, Farnborough-UK, 1985.
[25] Investigations on fuzzy thresholding based on fuzzy clustering, C.V. Jawahar, P.K. Biswas,
A.K. Ray, Pattern Recognition. 1997 [26] J. N. Kapur, P. K. Sahoo, and A. K. C. Wong, “A new method for gray-level picture
thresholding using the entropy of the histogram,” Comput. Vision graphics Image Process., vol. 29, pp. 273-285. 1985
[27] Yang Xiao, Zhiguo Cao , Tianxu Zhang. “Entropic Thresholding Based on Gray-level
Spatial Correlation Histogram.” Huazhong Univ. of Sci. And Tech, Wuhan, 430074, P.R.China. 2006.
[28] An Iterative Algorithm for Minimum Cross Entropy Thresholding, Li, CH & Tam, PKS,
Pattern Recognition Letters. 1998 [29] Utilization of information measure as a means of image thresholding, Shanbhag, Abhijit
G, Graph. Models Image Process. 1994 [30] Survey and comparative analysis of entropy and relative entropy thresholding techniques
C.-I Chang, Y. Du, J. Wang, S.-M. Guo and P.D. Thouin. Image Signal Process., Vol. 153, No. 6, December 2006.
[31] Multilevel Minimum Cross Entropy Threshold Selection based on Honey Bee Mating
Optimization Ming-Huwi Horng, Member, IAENG, Ting-Wei Jiang and Jin-Yi Chen. Proceedings of the International MultiConference of Engineers and Computer Scientists 2009
[32] Moment-preserving thresholding: a new approach, W. Tsai, Computer Vision Graphics
Image Process., vol. 29, pp. 377-393. 1985 [33] Image Thresholding by Minimizing the Measures of Fuzziness, L.K. Huang, M.J.J. Wang,
Pattern Recognition, 1995 [34] Digital Image Thresholding Based on Topological Stable State, A. Pikaz, A. Averbuch.
Pattern Recognition, 1996. [35] Maximum Segmented Image Information Thresholding, C.K. Leung, F.K. Lam, Graphical
Models and Image Processing, 1998. [36] A note on the use of gray level co-occurrence matrix in threshold selection, B. Chanda,
D.D. Majumder, Signal Processing, 15 1988 [37] A new thresholding technique based on random sets, Pattern Recognition, N. Friel, I.S.
Molchanov, 1999.
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
59
[38] Fuzzy Partition of Two-Dimensional Histogram and its Application to Thresholding, H.D. Cheng, Y.H. Chen, Pattern Recognition, 1999.
[39] W. Niblack, An Introduction to Image Processing, Prentice-Hall, pp:115-116. 1986 [40] New segmentation techniques for document image analysis, N.B. Venkateswarluh, R.D.
Boyle, Image and Vision Computing, 1995 [41] Binarization of document images using Hadamard multiresolution analysis, F. Chang, K.H.
Liang, T.M. Tan, W.L. Hwang, ICDAR'99: Int. Conf. On Document Analysis and Recognition, 1999
[42] National Semiconductor LM9630. 2002 [43] Architecture Based on FPGA’s for Real-Time Image Processing. Ignacio Bravo, Pedro
Jimenez, Manuel Mazo, Jose Luis Lazaro, and Ernesto Martın. Electronics Department. University of Alcala. Madrid , España. 2006
[44] Design and implementation of high-speed digital CMOS camera driving control timing and
data interface. SUN Honghai, CAI Rongtai,WANG Yanjie. Changchun Institute of Optics. Chine. 2006
[45] FPGA-based rectification and lens undistortion for a real-time embedded stereo vision
sensor Emanuel Staudinger, Martin Humenberger and Wilfried Kubinger Austrian Research Centers GmbH – ARC Donau-City-Str. 1, 1220 Vienna, Austria. 2008
[46] FPGA-based Optical Distortion Correction for Imaging Systems. Lin Qiang Nigel M
Allinson. Department of Electronic and Electrical Engineering, The University of Sheffield Mappin Street, Sheffield, , Reino Unido. 2006
[47] FPGA Implementation of Parallel Histogram Computation. Asadollah Shahbahrami1, Jae
Young Hur1, Netherlands Organization for Scientic Research. Holanda. 2009 [48] Low-cost space-varying FIR filter architecture for computational imaging systems.
Guotong Feng, Mohammed Shoaib. Department of Electrical Engineering, Princeton University, Princeton. 2009
[49] A Parallel Hardware Architecture for Image Feature Detection Vanderlei Bonato, Eduardo
Marques1, and George A. Constantinides. Institute of Mathematical and Computing Sciences. The University of Sao Paulo. Brasil. 2008.
[50] An FPGA-based implementation for median filter meeting the real-time requirements of automated visual inspection systems. Miguel A. Vega-Rodríguez. Juan M. Sánchez-Pérez, Juan A. Gómez-Pulido. Universidad de Extremadura. España. 2002.
[51] Digital Circuit Architecture for a Median Filter of Grayscale Images Based on Sorting
Network Victor Jimenez-Fernandez, Denisse Martinez-Navarrete, Carlos Ventura-
Fundamentos e Implementaciones Hardware para el Procesamiento Digital de Imágenes
60
Arizmendi, Zulma Hernandez-Paxtian, Joel Ramirez-Rodriguez, International journal of circuits, systems and signal processing . Mexico 2011.
[52] Hardware implementation of sobel-edge detection distributed arithmetic digital filter.
Sorawat CHIVAPREECHA and Kobchai DEJHAN. Faculty of Engineering and Research Center for Communication and Information Technology. 25th ACRS 2004. Thailand. 2004
[53] Image Processing Architectures for Binary Morphology and Labeling, Hugo Hedberg, The
Department of Electrical and Information Technology, Lund University,LUND, SWEDEN. 2008
[54] A Parallelized and Pipelined Datapath to Implement ISODATA Algorithm for Rosette Scan
Images on a Reconfigurable Hardware. Ehsan Rahimi, Shahriar B. Shokouhi, Ali Sadr. Iran
University. 2008
[55] Image Segmentation and Pattern Matching Based FPGA/ASIC Implementation Architecture of Real-Time Object Tracking. K. Yamaoka, T. Morimoto, H. Adachi, T. Koide, and H. J. Mattausch Research Center for Nanodevices and Systems, Hiroshima University. 2006
[56] An FPGA-based implementation of spatio-temporal object segmentation. Kumara
Ratnayake and Aishy Amer. Concordia University, Electrical and Computer Engineering, Montreal, Quebec, Canada. 2006
61
ILUMINACIÓN, CALIBRACIÓN Y SIMULACIÓN FUNCIONAL DE LOS ALGORITMOS USADOS PARA MEDIR UNA LÁMINA DE CUERO
3.1 Introducción
Este capítulo se divide en cinco secciones principales. La sección 3.2 que presenta los
resultados de las mediciones realizadas a la iluminación del sitio donde se realizaron las
capturas de las imágenes de la lámina de cuero. La sección 3.3 presentan los resultados de
la calibración del sistema de captura de la imagen, con sus parámetros de corrección del
lente. La sección 3.4 muestra la simulación de los algoritmos que realizan el mejoramiento
y realce de la lámina de cuero buscando facilitar su separación del fondo. En la sección 3.5
se presentan los criterios de evaluación usados para la selección de los umbralizadores a
diseñar en este proyecto, y finalmente en la sección 3.6 se presentan los resultados de
simulación de los umbralizadores seleccionados.
3.2 Implementación del Sistema de Iluminación
Para el desarrollo de este proyecto se ha implementado la iluminación horizontal por medio
de una lámpara de sodio de 250W de uso industrial similar a la mostrada en la figura 3.2.1
Figura 3.2-1. Lámpara usada para la iluminación de sitio de medición. Tomada de [1]
La altura a la cual se ha ubicado la lámpara es de 5 metros. Estas lámparas tienen una
intensidad luminosa de 33000 lumen según [1]. Con esta información se calcula el flujo
Capítulo 3
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
62
luminoso por unidad de área que iluminará la lámina de cuero por medio de la ecuación
2.2-24. Para este proyecto se estima un flujo luminoso máximo de 1320 LUX. La figura
3.2-2 muestra la forma de iluminar la lámina de cuero
Figura 3.2-2. Iluminación de la lámina de cuero
La ecuación 3.2-1 es un indicador de la uniformidad luminosa. Esta información nos indica
si la iluminación es uniforme y debe cumplir el criterio de ser mayor o igual a 0.8. Para
calcular la uniformidad luminosa se debe hacer un muestreo del flujo luminoso en
diferentes partes dentro del área donde se realizaran las medidas. La tabla 3.1 muestra las
diferentes medidas realizadas en el área de medición.
∑=
=n
i
n
n
an
aaaaaMinUI
1
3210
1
..,. (3.2-1)
Tabla 3.2-1. Muestras tomadas en el área de medición
Muestra Medida [LUX] Orientación de la
medida
1 1180 N 2 1150 S 3 1000 E 4 1050 O
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
63
La uniformidad luminosa calculada fue de 0.91, el cual es mayor que 0.8, por lo tanto se
considera una iluminación uniforme.
3.3 Calibración del Sistema de Captura de la Imagen
Como sistema de captura se ha usado una cámara digital con un lente CMOS y configurada
para capturar imágenes de 1417x1063 píxeles. Para su calibración se usó un programa
realizado en Matlab de código abierto llamado “Camera Calibration ToolBox for Matlab”, cuya interfaz de presentación se observa en la Figura 3.3-1
Figura 3.3-1. Toolbox en Matlab para la calibración de cámaras.
Para realizar la calibración se hace necesario tener varias imágenes similares a la Figura
3.3-2 donde el patrón de calibración tiene forma de tablero de ajedrez.
X
YO
The red crosses should be close to the image corners
200 400 600 800 1000 1200 1400 1600 1800 2000 2200
200
400
600
800
1000
1200
1400
1600
Figura 3.3-2. Patrón de Calibración de 64 cuadros de 20 mm c/u.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
64
Con el propósito de realizar los patrones de calibración se tomaron 15 fotografías en
diferentes posiciones, se cargan en el toolbox de calibración y el programa nos genera la
Figura 3.3-3, donde se muestran las imágenes de prueba para calibración.
Calibration images
Figura 3.3-3. Imágenes de calibración cargadas en el toolbox calibration.
Una vez cargadas las imágenes en el toolbox calibration, se marca un cuadrado como en la
Figura 3.3-2 por cada imagen, y después se ejecuta la calibración. Los resultados de la
calibración son presentados en la Tabla 3.3-1.
Tabla 3.3-1. Valores de calibración de la cámara
Parámetro Resultado Desviación
Longitud focal fc = [ 3129.06605 3140.30730 +/-[263.12486 263.85072 ]
Punto principal cc = [ 335.98766 238.90657 ] ± [ 3.10113 4.17690 ]
Asimetría alpha_c = [ 0.00000 ] ± [ 0.00000]
Angulo de cada cuadro 90.00000 ± 0.00000 Grados
Distorsión kc = [ 1.74924 -215.20296 0.00095 -0.00755 0.00000 ]
± [±± [ 0.30476 72.96209 0.00375 0.00183 0.00000 ]
Error de pixel [0.15721 0.14225 ]
El programa genera gráficamente los parámetros extrínsecos de la cámara en un gráfico
3D, donde se muestra la posición espacial de la cámara y de las diferentes imágenes en el
espacio de coordenadas. Este gráfico se puede observar en la Figura 3.3-4.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
65
Figura 3.3-4. Parámetros extrínsecos de la cámara.
El toolbox también nos genera los componentes de la distorsión radial y tangencial, que se
pueden observar en las Figuras 3.3-5 y 3.3-6, respectivamente. Esta información fue
consultada tomada de [2]
Figura 3.3-5. Modelo de distorsión radial.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
66
Figura 3.3-6. Modelo de Distorsión tangencial.
A continuación se muestran las ecuaciones que modelan los parámetros intrínsecos de la
cámara.
Dado un punto en el espacio xn, tal como se describe en la Ecuación 3.3-1 y 3.3-2:
=
=y
x
Z
Y
Z
X
x
c
c
c
c
n (3.3-1)
Donde:
222
yxr += (3.3-2)
Debido a que el lente de la cámara genera una distorsión, el punto xn se convierte ahora en el punto xd que se relaciona mediante la Ecuación 3.3-3:
dxxrKcrKcrKcx
xx
n
d
d
d++++=
= ))5()2()1(1(
)2(
)1(642 (3.3-3)
Donde el vector dx, que es la distorsión tangencial está dado por la Ecuación 3.3-4
++
++=
xykcyrkc
xrkcxykcdx
)4(2)2)(3(
)2)(4()3(2
22
22
(3.3-4)
Según los datos arrojados por el programa de calibración el vector kc es igual a:
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
67
kc = [ 1.74924 -215.20296 0.00095 -0.00755 0.00000 ]. El vector kc se reemplaza en
la Ecuación 3.2-3 para obtener los valores de corrección de la imagen, tal como la describe
la Ecuación 3.3-5.
+=++=
)2()2()(2(
)1())(*_)1()(1(
ccxfcy
cccxcalphaxfcx
dp
ddp
(3.3-5)
Ya conocidos los valores de xd, encontrados por la Ecuación 3.3-3, y con los valores de fc(1), fc(2), cc(1), cc(2) y alpha_c calculados por el programa de calibración, se pueden
encontrar las valores reales de ubicación de cada punto de la imagen. Estos valores se ven
en la Tabla 3.3-2. La calibración por medio de este método y otros similares puede ser
detallada en el trabajo realizado en [3]
Tabla 3.3-2. Valores de calibración para cada punto
FC 3129.06605 3140.30730
CC 335.98766 238.90657
alpha_c 0.00000
3.4 Simulación de los Algoritmos de Mejoramiento y Realce de la Imagen.
Para el mejoramiento y realce de la imagen capturada se han implementado tres algoritmos
que permiten mejorar la imagen de la lámina de cuero y atenuar el fondo sobre el cual está
dicha lámina. Las simulaciones a realizar son:
1. Simulación del filtro mediana
2. Simulación de la supresion del fondo de la imagen 3. Simulación del filtro High boost
3.4.1 Simulación del Filtro Mediana
El filtro mediana se implementa para una máscara de 3x3. Este filtro tiene como objetivo
principal atenuar el ruido producido por componentes puntuales fuertes, pero preservando
el borde de la imagen. La ecuación 2.3-9 describe el cálculo de la mediana
Para la simulación se han usado tres imágenes de láminas de cuero y se ha añadido de
forma externa ruido tipo “sal y pimienta” con el objetivo de simular su comportamiento y
analizar los resultados. La figura 3.4-1 muestra las imágenes con ruido y sin ruido. En [4] el
autor propone diferentes métodos de implementación de la mediana.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
68
a)
b)
c)
d)
e)
f)
Figura 3.4-1. Aplicación del Filtro mediana a diferentes láminas de cuero
a) Lamina #1 con ruido. b) Lamina #1 Filtrada. c) Lamina #2 con ruido. d) Lamina #2 Filtrada. e) Lamina #3 con ruido. f) Lamina #3 filtrada.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
69
3.4.2 Simulación de la Supresión del Fondo de la Im agen Para la supresión del fondo de la imagen se han implementado dos alternativas. La primera
alternativa consiste en almacenar periódicamente el fondo de la imagen y usarlo como
referencia o tara, con el objetivo de calibrar a cero el sistema de medida. Con el fondo
almacenado se procede a restarlo de la imagen que contiene la lámina de cuero a medir.
Esta diferencia genera una imagen con la lámina de cuero sin el fondo o muy disminuido.
La supresión de fondo se realiza aplicando la ecuación 3.4-1. Donde k es un valor de offset para el ajuste de la diferencia entre el fondo y la imagen. La figura 3.4-2 muestra la
supresión de fondo realizada a la lámina de cuero #1.
<−
=otroscasosPixel
kPixelPixelNuevoPixel
imagen
fondoimagen
,
,255 (3.4-1)
a)
b)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
70
c)
Figura 3.4-2. Supresión del fondo a una la lámina de cuero por diferencia con el fondo
a) Fondo de la imagen. b) Lámina #1. c) Lámina #1 sin fondo.
La supresión del fondo se logra de forma correcta, pero se debe conocer a priori el fondo de
la imagen.
La segunda alternativa consiste en aplicar operaciones morfológicas, usando un filtro
Bottom hat. Este filtro morfológico aplica una operación de cerradura a la imagen original y
este resultado lo resta a la imagen original. Este filtró lo describe por la ecuación 2.3-6.
Tiene especial aplicación en la atenuación de las zonas claras y el resalte de las zonas
oscuras, lo cual es apropiado para este proyecto, ya que el fondo es blanco y la lámina de
cuero es de un color diferente. La operación sobre la lámina de cuero #1 se observa en las
figuras 3.4-3a y 3.4-3b. Para obtener el formato de la imagen que se usa en este proyecto,
que es un fondo claro y la lámina de cuero en un color más oscuro, se aplica la ecuación
3.4-2, Donde k es un valor de offset para el ajuste de la diferencia entre el fondo y la imagen, con este cambio el fondo quedara blanco, como se observa en la figura 3.4-3c. En
[5] el autor presenta una aplicación del filtro bottom hat que realiza el suavizado de la imagen y la detección de bordes en imágenes y la compara con otras técnicas de filtrado
lineal.
<
=otroscasosPixel
kPixelNuevoPixel
Bottomhat
Bottomhat
,
,255 (3.4-1)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
71
a)
b)
c)
Figura 3.4-3. Supresión del fondo a una la lámina de cuero por filtrado bottom hat
a) Fondo de la imagen. b) Lamina #1. c) Lamina #1 sin fondo.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
72
Para el diseño del filtro bottom hat se implemento un elemento estructural en forma de
disco de 50 píxeles. Esta supresión del fondo tiene la característica que no requiere conocer
a priori el fondo de la imagen, pero si requiere el tamaño del elemento estructural a priori.
3.4.3 Simulación del Filtro High Boost
Cuando el algoritmo de supresión de fondo ha eliminado la imagen del fondo de la lámina
de cuero, se hace necesario realizar un filtrado, ya que se deben eliminar los residuos de
que genero la supresión y mejorar los bordes de la nueva imagen. En este caso el filtrado se
realiza usando un filtro High-Boost el cual tiene la característica de mejorar los bordes y
permitir el paso de parte de la imagen de acuerdo al valor de A, como se describe en la
Ecuación 2.3-8. Una aplicación de este filtro puede ser consultada en [6]
En la figura 3.4-4a y 3.4.4b se observa la aplicación del filtro high boost a la lámina de
cuero #1, después de suprimirle el fondo por medio de las técnicas vistas en el numeral
3.4.2.
a)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
73
b)
Figura 3.4-4. Mejoramiento de bordes a una lámina de cuero sin fondo, por filtrado High boost
a) Filtro aplicado a la figura 3.4-2c b) Filtro aplicado a la figura 3.4-3c
3.5 Selección de Algoritmos de Umbralización
En la literatura consultada no se encuentran trabajos documentados que implementen algún
algoritmo de umbralización en hardware para la medición de láminas de cuero. Pero hay
trabajos que usan técnicas de visión artificial para medir el cuero, como son los siguientes
casos. En [7] se presenta un sistema para cortar y medir el área de una lámina de cuero, este
sistema se basa en una cámara en posición perpendicular a la lámina de cuero. El sensor de
captura de la cámara está basado en un arreglo matricial monocromático de tecnología
CCD, y un sistema servo controlado para el movimiento del lente. En [8] el autor propone
un prototipo para medir una lámina de cuero por medio de una webcam y un PC. En [9] el
autor propone un sistema de medición con un sensor en forma de escáner y un computador,
hace un análisis del error de las maquinas actuales de sensores fotoeléctricos y las antigua
máquina con sistema Pinwheel en relación al método que propone.
Las técnicas de umbralización nos permiten separar el fondo del objeto en una imagen, pero
no siempre se realiza de la manera esperada. El éxito o fracaso de esta técnica depende de
aspectos como la iluminación, el pre-procesamiento de la imagen y del algoritmo usado
para umbralizar. En este numeral se analizaran y evaluaran varios algoritmos de
umbralización con el objetivo de seleccionar cuales algoritmos dan mejores resultados y
cuales son apropiados a implementar sobre FPGAs. En [10] los autores hacen una
evaluación de varios algoritmos de umbralización hacen un análisis de varios criterios de
selección.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
74
A continuación se describe la secuencia de los temas a analizar.
1. Criterios para la evaluación de los algoritmos de umbralización
2. Evaluación de los algoritmos de umbralización
3. Selección y prueba de los algoritmos a implementar
3.5.1 Criterios para la evaluación de los algoritmo s de umbralización
Existen en la literatura muchos algoritmos de umbralización como los descritos en el
capitulo dos, como los algoritmos de OTSU, ISODATA, intermodal, máxima entropía,
percentiles, etc., los cuales entregan buenos resultados de umbralización para diferentes
tipos de imágenes, pero se deben seleccionar los algoritmos a usar en este proyecto por
medio de algún criterio. Para la selección de los algoritmos de umbralización se usarán dos
criterios:
1. Criterio basado en la clasificación errónea.
2. Criterio basado en el error relativo de área del objeto
3.5.1.1 Criterio basado en la clasificación errónea .
Cuando la segmentación de realiza solo a dos clases, como es el caso de la umbralización,
el criterio por clasificación errónea se puede describir por la ecuación 3.5-1.
00
00
1FB
FFBBME
TT
+∩+∩
−= (3.5-1)
Donde o
B y o
F son el fondo y el objeto de la imagen original, yT
B y T
F son el fondo y el
objeto de la imagen de prueba.
3.5.1.2 Criterio basado en el error relativo del ár ea del objeto. Cuando se realiza una correcta umbralización se espera que el objeto separado mantenga
sus medidas de forma precisa. Para cuantificar este criterio se usa la ecuación 3.5-2.
True
TestTrue
A
AARAE
−= (3.5-2)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
75
Donde True
A es el área real del objeto y test
A es el área del objeto en prueba
3.5.2 Evaluación de los algoritmos de umbralización
Se han seleccionado diez algoritmos de umbralización tomando como referencia los
métodos expuestos en el capitulo dos. El método basado en la información espacial no se
evaluara, ya que son especialmente usados para pequeñas regiones, como es el caso de
reconocimiento de caracteres escritos.
Los algoritmos a evaluar se muestran en la tabla 3.5-1
Tabla 3.5-1. Algoritmos de umbralización a evaluar
Nª Algoritmo de umbralización Método 1 ISODATA Agrupamiento de píxeles 2 Otsu Agrupamiento de píxeles 3 Mínimo error Agrupamiento de píxeles 4 Intermodal Forma del histograma 5 Concavidad Forma del histograma 6 Valles y colinas Forma del histograma 7 Máxima entropía Entropía de la imagen 8 Mínima entropía cruzada Entropía de la imagen 9 Momentos Atributos de la imagen 10 Similitud difusa Atributos de la imagen
Se han diseñado tres figuras geométricas como imágenes de prueba. Las imágenes de
prueba son diseñadas en un programa gráfico, con el objetivo de conocer a priori su área y
el número de objetos, además se ha adicionado ruido gausiano para dificultar su
umbralización. Las figuras 3.5-1 se muestran las figuras geométricas con ruido gausiano y
sus respectivos histogramas. La figura 3.5-1a es un cuadrado de 2500 píxeles , la figura
3.5-1b es un círculo de 1861 píxeles y la figura 3.5-1c es un triángulo de 16000 píxeles .
a)
b)
c)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
76
0 50 100 150 200 250
0
500
1000
1500
2000
Intesidad
Pix
eles
d)
0 50 100 150 200 250
0
500
1000
1500
2000
Intesidad
Pix
eles
e)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
77
0 50 100 150 200 250
0
200
400
600
800
1000
1200
1400
1600
1800
Intesidad
Pix
eles
f)
Figura 3.5-1. Figuras geométricas de prueba y sus histogramas a) Cuadrado con A= 2500 píxeles b) Círculo con A= 1861 píxeles c) Triangulo con A= 16000
píxeles d) Histograma del cuadrado e) Histograma del círculo. f) Histograma del triángulo
3.5.2.1 Resultados para la Figura Cuadrado En estas pruebas se nota que los algoritmos del método de umbralización por forma del
histograma dieron mejores resultados, como son el caso de los algoritmos intermodal,
valles y colina, seguido por los algoritmos del método de agrupamiento como Otsu e
ISODATA. Esto se puede verificar por inspeccion visual y por medio del cálculo del
promedio de los criterios de evaluación, a menor valor mejor la umbralización. La figura
3.5-2 y la tabla 3.5-2 muestran los resultados de umbralización.
A=2517 píxeles
a)
A= 2517 píxeles
b)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
78
A=70711 píxeles
c)
A=2495 píxeles
d)
A= 1950 píxeles
e)
A=2507 píxeles
f)
A= 2906 píxeles
g)
A= 64663 píxeles
h)
A= 7469 píxeles
i)
A= 75789 píxeles
j)
Figura 3.5-2. Umbralizacion de la figura cuadrado de 2500 píxeles a) Umbralizacion ISODATA b) Umbralizacion Otsu c) Umbralizacion mínimo error d)
Umbralizacion intermodal e) Umbralizacion concavidad. f) Umbralizacion Valles y colinas. g) Umbralizacion máxima entropía. h) Umbralizacion mínima entropía cruzada.
i) Umbralizacion Momentos. j) Umbralizacion similitud difusa
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
79
Tabla 3.5-2. Calculo de los valores de los criterios de selección para la figura en
forma de cuadrado Ranking Algoritmo de umbralización ME RAE Valor
medioME,RAE 1 Intermodal 0,00013021 0,002 0,0010651
2 Valles y colinas 0,00018229 0,0028 0,00149115
3 ISODATA 0,00044271 0,0068 0,00362135
4 Otsu 0,00044271 0,0068 0,00362135
5 Máxima entropía 0,01057292 0,1624 0,08648646
6 Concavidad 0,01432292 0,22 0,11716146
7 Momentos 0,12940104 1,9876 1,05850052
8 Mínima entropía cruzada 0,8588 24,8652 12,862
9 Mínimo error 0,8925 27,2844 14,08845
10 Similitud difusa 0,9555 29,3156 15,13555
3.5.2.2 Resultados para la Figura Círculo Al igual que las pruebas anteriores se observa en la tabla 3.5-3 que los primeros cuatro
algoritmos continúan dando mejores resultados. En este caso el algoritmo de umbralización
de concavidad mejoro al de máxima entropía, pero no logra segmentar todo el círculo de
manera perfecta. En la figura 3.5-3 se observan los resultados.
A= 1880 píxeles
a)
A= 1880pixeles
b)
A= 70916 píxeles
c)
A= 1859 píxeles
d)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
80
A= 1609 píxeles
e)
A= 1865 píxeles
f)
A= 2195pixeles
g)
A= 68159 píxeles
h)
A= 8079 píxeles
i)
A= 75800 píxeles
j)
Figura 3.5-3. Umbralizacion de la figura círculo de 1861 píxeles
a) Umbralizacion ISODATA b) Umbralizacion Otsu c) Umbralizacion mínimo error d)
Umbralizacion intermodal e) Umbralizacion concavidad. f) Umbralizacion Valles y colinas. g) Umbralizacion máxima entropía. h) Umbralizacion mínima entropía cruzada. i)
Umbralizacion Momentos. j) Umbralizacion similitud difusa
Tabla 3.5-3. Calculo de los valores de los criterios de selección para la figura en forma de
círculo
Ranking Algoritmo de umbralización ME RAE Valor medioME,RAE
1 Intermodal 0,00844264 0,00107469 0,00475867
2 Valles y colinas 0,00839012 0,00214938 0,00526975
3 ISODATA 0,00839012 0,01020956 0,00929984
4 Otsu 0,00839012 0,01020956 0,00929984
5 Concavidad 0,01500768 0,13541107 0,07520938
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
81
6 Máxima entropía 0,00839012 0,1794734 0,09393176
7 Momentos 0,15489555 3,3412144 1,74805498
8 Mínima entropía cruzada 0,88 35,6249328 18,2418664
9 Mínimo error 0,9025 37,1063944 18,9994472
10 Similitud difusa 0,92 39,7307899 20,3431449
3.5.2.3 Resultados para la Figura Triángulo De igual manera que con las dos figuras geométricas anteriores, los algoritmos de valles y
colina, intermodal y Otsu dan los mejores resultado. Sin embargo los demás algoritmos
empiezan a mejorar su desempeño al tener una mayor relación entre el fondo y la imagen.
Todos los algoritmos de umbralización a excepto el de mínimo error lograron separar la
figura geométrica del fondo para este caso unos en mayor medida que otros. La figura 3.5-
4 y la tabla 3.5-4, presentan los resultados de umbralización.
A= 16045 píxeles
a)
A= 16039 píxeles
b)
A= 41764 píxeles
c)
A= 16003 píxeles
d)
A= 15005 píxeles
e)
A= 15993 píxeles
f)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
82
A= 17838 píxeles
g)
A= 15845 píxeles
h)
A= 18851 píxeles
i)
A= 16323 píxeles
j) Figura 3.5-4. Umbralizacion de la figura triángulo de 16000 píxeles
b) Umbralizacion ISODATA b) Umbralizacion Otsu c) Umbralizacion mínimo error d) Umbralizacion intermodal e) Umbralizacion concavidad. f) Umbralizacion Valles y
colinas. g) Umbralizacion máxima entropía. h) Umbralizacion mínima entropía cruzada. i) Umbralizacion Momentos. j) Umbralizacion similitud difusa
Tabla 3.5-4. Calculo de los valores de los criterios de selección para la figura en
forma de triángulo
Ranking Algoritmo de umbralización ME RAE Valor
medioME,RAE 1 Intermodal 0,14956811 0,0001875 0,0748778
2 Valles y colinas 0,14950166 0,0004375 0,07496958
3 Otsu 0,15036545 0,0024375 0,07640147
4 ISODATA 0,15049834 0,0028125 0,07665542
5 Mínima entropía cruzada 0,14950166 0,0096875 0,07959458
6 Similitud difusa 0,15665559 0,0201875 0,08842155
7 Concavidad 0,14950166 0,0621875 0,10584458
8 Máxima entropía 0,19021041 0,114875 0,1525427
9 Momentos 0,21264673 0,1781875 0,19541712
10 Mínimo error 0,72013289 1,61025 1,16519145
Se puede concluir que los algoritmos intermodal, valles y colinas, Otsu e ISODATA son confiables para Umbralizar imágenes en ambientes ruidoso y con relaciones de imagen y fondo pequeñas. Los algoritmos citados anteriormente serán implementados sobre FPGAs en este proyecto.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
83
3.6 Simulación de los Algoritmos de Umbralización S eleccionados sobre láminas de cuero
Los algoritmos de umbralización presentados en el numeral anterior, han sido usados para
medir el área de varias láminas de cuero que tienen diferentes tamaños. En este caso, se han
seleccionado tres láminas de cuero azul o wet blue, como se le llama al cuero recién curtido
con cromo de forma aleatoria y se usara un patrón de medida de radio de 6.1 dm, que
cumple con la norma ISO 11646:1993 .
En la Figura 3.6-1a se muestra una lámina de cuero patrón circular de diámetro de 6.1 dm y
en las figuras 3.6-1b, 3.6-1c y 3.6-1d se muestran tres láminas de cuero azul previamente
medidas. Sus respectivos histogramas son mostrados en la figura 3.6-2.
Las medidas realizadas a estas tres láminas de cuero se hicieron por medio de una máquina
electrónica calibrada por un patrón avalado por la SIC (Superintendencia de industria y
comercio), fueron de: 260 dm2, 246 dm
2 y 281 dm
2.
La imágenes son capturadas en escala de gris y se usó una mesa de fondo blanco que tiene
3.75 m de ancho por 5 m de largo y una resolución de 1417 x 1063 píxeles. Las láminas de
cuero son centradas en la mesa para mitigar los efectos de las distorsiones que tiene el
lente, que para este caso son en sus orillas.
a)
b)
c)
d)
Figura 3.6-1. Láminas de cuero capturadas en escala de grises a) Patrón circular de diámetro 6.1 dm b) Lámina con área 260 dm2 c) Lámina con área 246 dm2 d)
Lámina con área 281 dm2.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
84
0 50 100 150 200 250
0
0.5
1
1.5
2
2.5
3
3.5x 10
4
Intesidad
Pixeles
a)
0 50 100 150 200 250
0
0.5
1
1.5
2
2.5
3
x 104
Intesidad
Pixeles
b)
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
85
0 50 100 150 200 250
0
0.5
1
1.5
2
2.5
3
x 104
Intesidad
Pixeles
c)
0 50 100 150 200 250
0
0.5
1
1.5
2
2.5
3
x 104
Intesidad
Pixeles
d)
Figura 3.6-2. Histogramas de las láminas de cuero en escala de grises. a) Patrón circular de diámetro 6.1 dm, b) Lámina con área 260 dm2, c) Lámina con área 246 dm2,
d) Lámina con área 281 dm2.
Usando los cuatro algoritmos de umbralización seleccionados anteriormente se midió el
área del cuero a las cuatro láminas vistas en la figura 3.6-1. Los resultados son presentados
en las Tablas 3.6-1, 3.6-2, 3.6-3 y 3.6-4.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
86
Tabla 3.6-1. Resultados de simulación de la medida del cuero para la lámina de la figura
3.6-1a
Algoritmo de
umbralización
Lámina de cuero patrón circular de diámetro 6,1 dm mostrada en la figura 3.6-1a
Área = 29.2 dm2
Umbral Cantidad de píxeles
Área en dm2
Error absoluto dm2
Error relativo
1. Intermodal 151 23512 29,26 0,03 0,12%
2. ISODATA 153 23535 29,27 0,05 0,16%
3. Otsu 153 23535 29,27 0,05 0,16%
4. Cálculo del valle 140 23352 29,04 0,18 -0,62%
Tabla 3.6-2. Resultados de simulación de la medida del cuero para la lámina de la figura
3.6-1b
Algoritmo de
umbralización
Lámina de cuero figura 3.6-1b Área = 246 dm2
Umbral
Cantidad de píxeles
Área en dm2
Error absoluto dm2
Error relativo
1. Intermodal 159 197335 245,56 0,44 -0,18%
2. ISODATA 162 197602 245,77 0,23 -0,09%
4. Otsu 162 197602 245,77 0,23 -0,09%
9. Cálculo del valle 150 196554 244,47 1,53 -0,62%
Tabla 3.6-3. Resultados de simulación de la medida del cuero para la lámina de la figura
3.6-1c
Algoritmo de
umbralización
Lámina de cuero figura 3.6-1c Área = 260 dm2
Umbral
Cantidad de píxeles
Área en dm2
Error absoluto dm2
Error relativo
1. Intermodal 157 209505 260,71 0,71 0,27%
2. ISODATA 155 209295 260,32 0,32 0,12%
4. Otsu 155 209295 260,32 0,32 0,12%
9. Cálculo del valle 158 209618 260,72 0,72 0,28%
Tabla 3.6-4. Resultados de simulación de la medida del cuero para la lámina de la figura
3.6-1d
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
87
Algoritmo de
umbralización
Lámina de cuero figura 3.6-1c Área = 280 dm2
Umbral
Cantidad de píxeles
Área en dm2
Error absoluto dm2
Error relativo
1. Intermodal 159 226206 281,49 0,49 0,17%
2. ISODATA 156 225818 280,87 0,13 -0,05%
4. Otsu 156 225818 280,87 0,13 -0,05%
9. Cálculo del valle 153 225422 280,38 0,62 -0,22%
Para realizar los cálculos del área para cada algoritmo se tomaron 10 imágenes por cada
lámina y se uso el promedio de ellas, para hacer el cálculo del área en decímetros cuadrados
y sus respectivos errores.
Los cálculos de los errores relativos y absolutos para las tres láminas de cuero (excepto la
lámina de cuero patrón, ya que se puede medir por su forma geométrica) se tomo como
referencia la máquina electrónica que previamente la midió.
Iluminación, Calibración y Simulación Funcional de los Algoritmos Usados para Medir una Lámina de Cuero
88
Bibliografía
[1] Ficha técnica para la lámpara de sodio de referencia SUPER SHP-T Tubular Clara, de la
fabrica sylvania
[2] Camera Calibration Toolbox for Matlab. Jean-Yves Bouguet. Francia. 2009
[3] Autocalibración y sincronización de múltiples cámaras ptz. Universidad autónoma de
Madrid. Javier García Ocón. España. 2007
[4] Median Filtering in Constant Time. Simon Perreault and Patrick Hebert . Francia. 2007
[5] Speckle Noise Removal and Edge Detection Using Mathematical Morphology. Arpit Singhal, Mandeep Singh International Journal of Soft Computing and Engineering
(IJSCE).ISSN: 2231-2307, Noviembre 2011
[6] Robust Video Denoising for Better Subjective Evaluation. Aditya Acharya, Sukadev
Meher. Electronics and Communication Engineering Department, National Institute of
Technology Rourkela, Odisha, India. Agosto 2011
[7] Inspection and measurement of leather system based on artificial visión techniques
applied to the automation and waterjet cut direct application. J. D. Aranda Peñaranda. J.
A. Ramos Alcazar. L. M. Tomas Balibrea. J. L. Muños Lozano. R. Torres Sanchez.
Instituto Murciano de Tecnologia. España. 1994
[8] Prototipo de medición de superficies mediante un computador usando una cámara
digital. Univerdidad politécnica salesiana. Patricio Fernando Urjiles. Ecuador. 2003
[9] Surface área measurement of leather system based image processing techniques applied
to the automation application. Rehan Adil, Department of Electronic Engineering The
3rd International Conference on Machine Vision. Pakistan. 2010
[10] Selection of thresholding methods for non-destructive testing application. Mehmet
Sezgin, Bulent Sankut. Turkey. 2001
89
IMPLEMENTACIÓN HARDWARE DE LOS ALGORITMOS PARA MEDIR UNA LÁMINA DE CUERO
4.1 Introducción En este capítulo se presenta la implementación en hardware de los algoritmos de adecuación y umbralización que son usados para la medición de una lámina de cuero. En este caso se sintetizaron nueve algoritmos que permiten separar una lámina de cuero de su entorno, y medir su área. Los algoritmos sintetizados son: Un filtro mediana, un supresor del fondo de la imagen por restador y otro por operación morfología bottom hat, un filtro high boost, cuatro algoritmos de umbralización que son: Umbralizador de Otsu, umbralizador ISODATA, umbralizador intermodal y el umbralizador entre valles y colinas, y un algoritmo para el cálculo del valor óptimo del área. También se sintetizo un algoritmo para el cálculo del histograma y otro que es un generador de direcciones para facilitar el manejo de la memoria. Este diseño ha sido calculado para imágenes de 100x75 píxeles, con el fin de verificar su funcionalidad, pero de igual forma es expandible para imágenes de mayor tamaño, dependiendo de tipo de FPGA usada.
4.1.1 Diagrama de Bloques para Medir una Lámina de Cuero La arquitectura propuesta en hardware para medir una lámina de cuero consta principalmente de una secuencia de tres etapas de procesamiento. 1. La primera etapa consiste en adecuar la imagen original mediante el filtrado y la supresión
del fondo, de forma tal que la imagen resultante pueda ser umbralizada de forma correcta 2. La segunda etapa consiste en la correcta binarización de la imagen con el fondo
suprimido usando cuatro algoritmos de umbralización. 3. La tercera etapa consiste en la selección del umbral óptimo entre los cuatro resultados de
los umbralizadores.
En la Figura 4.1-1 se muestra el diagrama de bloques para medir una lámina de cuero.
C Capítulo 4
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
90
Figura 4.1-1 Diagrama de bloques para medir una lámina de cuero
El diagrama de bloques para medir una lámina de cuero esta implementado por:
• Dos bloques de memoria ROM de 8Kb cada uno. Uno que almacena la imagen a medir y otro que almacena el fondo de la imagen a medir.
• Dos bloques de memoria RAM de 8Kb cada uno. Uno para almacenar el resultado de la imagen tratada y otro que almacena la imagen en proceso
• Un bloque para la adecuación de la imagen. En este bloque se implementan las arquitecturas para la adecuación y supresión de fondo de la imagen.
• Un bloque para los umbralizadores. En este bloque se implementan los algoritmos de umbralización seleccionados en el capítulo 3.
• Cuatro registros de 8 bits cada una, que almacenan los resultados de los umbralizadores.
• Un bloque para el cálculo del valor óptimo del área de la lámina de cuero
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
91
• Un bloque para la unidad de control. En este bloque se almacenan todas las maquinas de estado que controlan los diferentes bloques.
4.2 Etapa de Adecuación de la Imagen Original
La imagen original una vez capturada, contiene la información de la lámina del cuero y la del fondo o mesa de trabajo, por lo tanto esta imagen debe ser adecuada antes de proceder a medir el área de la lámina de cuero. Esta adecuación consiste en filtrar la imagen del posible ruido que pueda contener, atenuar las características del fondo y resaltar los bordes y demás píxeles correspondientes a la lámina de cuero. La figura 4.2-1 muestra los diagrama funcional de esta etapa.
La supresión del fondo se propone de dos maneras, una semiautomática, ya que requiere conocer a priori el fondo de la imagen en memoria y otra automática que captura la información del fondo de forma de la misma imagen
Figura 4.2-1 Bloque funcional para la adecuación de la imagen
La adecuación de la imagen original se realiza en tres pasos:
1. Filtrado mediana de la imagen 2. Supresión del fondo de la imagen 3. Filtrado High-boost de la imagen
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
92
4.2.1 Filtrado Mediana de la Imagen
El filtro mediana es un filtro no lineal descrito por la ecuación 2.3-9 y es frecuentemente usado para suprimir las componentes puntuales fuertes de la imagen, sin pérdida de la información. El filtro mediana debe realizar un ordenamiento para lograr obtener el valor mediano. Existen algunos desarrollos en hardware que pretenden optimizar este cálculo. Una propuesta es realizada por [1], que busca mejorar el tiempo de búsqueda y ordenamiento mediante un comparador de tres datos, implementado con transistores de tecnología pmos.
El filtro mediana puede ser realizado mediante un arreglo sistólico clásico que permite el ordenamiento de un vector, tal como se observa en la figura 4.2-2, donde se hace uso de 41 comparadores.
Figura 4.2-2 Arreglo sistólico de un filtro mediana
En [2] los autores proponen el diseño de un filtro mejorado que solo hace uso de 27 comparadores para una ventana de 3x3 píxeles, esta propuesta es mostrada en la figura 4.2-3a, y será la utilizada en este proyecto como un elemento de proceso (PE).
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
93
a)
b)
Figura 4.2-3 Arreglo sistólico de un filtro mediana mejorado en [2]
a) Filtro mediana mejorada. b) Elemento de proceso PE
La arquitectura propuesta para este filtro se basa en el PE de la figura 4.2-3b y se ha implementado en pipeline para lograr un reuso de 3 píxeles. Esta arquitectura se observa en la figura 4.2-4. Una arquitectura similar es presentada en [3], pero lo aplican a un filtro mediana adaptativo.
Para aplicar el filtro mediana normalmente se debe cargar el píxel a filtrar con sus vecinos formando una ventana nxn. Para realizarlo en pipeline, se debe cargar esta matriz nxn por medio de n columnas en los registros de desplazamiento, para facilitar el manejo de memoria y la carga de los datos a los circuitos pipeline se ha propuesto el circuito de la figura 4.2.5a. Por ejemplo, se tiene una imagen como la mostrada en la figura 4.2-5b de un tamaño de 6x6 píxeles formada por caracteres para facilitar su aplicación. Para filtrar la imagen con la arquitectura propuesta en la figura 4.2-2a se debe agregar a los bordes de la imagen valores de blanco ‘puro’ o 0xff o
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
94
duplicar los píxeles del borde, para que al aplicar la máscara del filtro, los índices de la memoria no generen posiciones negativas. La nueva imagen queda representada por una matriz de 7x7, como se observa en la figura 4.2-5c. Para filtrar el punto ubicado en la posición fila i=3, columna j=3 con valor de intensidad ‘e’, de la nueva imagen, se deben cargar los datos de forma serial sobre los registros de desplazamiento en el siguiente orden p(2,2), p(3,2) ,p(4,2), p(2,3), p(3,3) ,p(4,3), p(2,4) ,p(3,4), p(4,4) o en intensidad a, b ,c, d, e, f, g, h, i, como se observa en la figura 4.2-5d. Una vez cargados los registros, se calcula la mediana en forma paralela y se carga solo la columna de los tres píxeles siguientes y se ejecuta de nuevo el cálculo de la mediana, haciendo un re-uso de seis píxeles ya cargados en los registros de desplazamiento, como se observa en la figura 4.2-5e. La simulación se observa en la figura 4.2-5f. La tabla 4.2-1 presenta los resultados de compilación.
Figura 4.2-4 Filtro no lineal tipo mediana implementado en pipeline
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
95
a)
b
a d
c
e
g
h
f i
k
j m
l
n
p
q
o r
t
s v
u
w
y
z
x 1
3
2 5
4
6
8
9
7 0
b)
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
96
c)
0xff0xff 0xff0xff 0xff0xff 0xff0xff
0xff
0xff
0xff
b
a d
c
e
g
h
f i
k
j m
l
n
p
q
o r
0xff
0xff
0xff
Fondo falso
Fondo falsoFondo falso
Primer columna
abc
Segunda columna
def
Tercer columna
ghi
Flujo de datos
d)
0xff0xff 0xff0xff 0xff0xff 0xff0xff
0xff
0xff
0xff
0xff
0xff
0xff
0xff
b
a d
c
e
g
h
f i
k
j m
l
n
p
q
o r
0xff
0xff
0xff
0xff
0xff
0xff
0xff0xff 0xff0xff 0xff0xff 0xff
Fondo falso
Fondo falso
Fondo falso Fondo falso
t
s v
u
w
y
z
x 1
3
2 5
4
6
8
9
7 0
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
97
0xff0xff 0xff0xff 0xff0xff 0xff0xff
0xff
0xff
0xff
b
a d
c
e
g
h
f i
k
j m
l
n
p
q
o r
0xff
0xff
0xff
Fondo falso
Fondo falsoFondo falso
Segunda columna
def
Tercer columna
ghi
Flujo de datos
Cuarta columna
jkl
Datos de reuso
e)
f)
Figura 4.2-5 circuito de manejo de memoria y la imagen de ejemplo
a) Circuito para el manejo de la memoria. b) Imagen de ejemplo de 6x6. c) Imagen de ejemplo
sobre-muestreada de 7x7. d) Captura de datos. e) Reuso de seis datos. f) Simulación del filtro
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
98
Tabla 4.2-1 Resultados de simulación del filtro mediana
Elementos usados Total
Celdas lógicas 295
Registros 183
4.2.2 Supresión del Fondo de la Imagen
La supresión del fondo de la imagen permite mejorar el contraste de la lámina de cuero, ya que suprime total o parcialmente el fondo o la mesa de trabajo de la escena. Para este proyecto se han implementado dos técnicas. La primera consiste en almacenar previamente el fondo y restarlo de la nueva imagen tomada, mitigando efectos de iluminación a bajo costo computacional, pero dejando el sistema de modo semiautomático, ya que requiere la intervención del operario. La segunda técnica consiste en realizar un filtrado morfológico bottom hat, suprimiendo el fondo de forma automática pero a mayor costo computacional. Para este proyecto se implementarán las dos técnicas.
4.2.2.1 Bloque Restador de Fondo
Este bloque permite suprimir un píxel del fondo con uno de la imagen. Entonces; se realiza la diferencia y se compara con un valor de referencia. De acuerdo a este resultado, si la diferencia es menor que la referencia, se guarda un valor de 255 o blanco puro. En caso contrario se guarda el píxel de la imagen o el cuero. El diseño de este del supresor de fondo propuesto está compuesto por dos sumadores, dos multiplexores y un comparador y es mostrado en la figura 4.2-6c. La figura 4.2-6a muestra gráficamente como funciona este bloque.
Esta técnica semiautomática de supresión del fondo permite eliminar de forma precisa el fondo de la imagen, puede usarse como una tara para la medida, ya que permite suprimir defectos producidos por la suciedad, la iluminación y pequeños cambios del tono del fondo. La tabla 4.2-2 presenta los resultados de compilación.
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
99
250 248 250 252 245 248
250 248 250 252 245 248
255 148 45 52 45 148
250 238 150 90 145 248
245 248 150 152 145 248
235 248 250 252 245 248
Imagen Original
255 255 255 255 255 255
255 255 255 255 255 255
255 148 45 52 45 148
255 255 150 90 145 255
255 255 150 152 145 255
255 255 255 255 245 255
Offset = 10
250 241 245 243 240 250
250 248 250 252 245 248
255 239 251 245 240 128
250 238 250 250 245 248
245 248 250 252 245 248
235 248 250 252 245 248
Imagen del Fondo
Imagen con fondo suprimido
Imagen
Fondo
a)
b)
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
100
c)
Figura 4.2-6 Bloque hardware del restador de fondo y su funcionamiento
a) Funcionamiento de forma grafica de la resta. b) Restador como elemento de proceso (PE).
c) Bloque hardware del restador.
Tabla 4.2-2 Resultados de simulación del supresor del fondo
Elementos usados Total
ALUT’s 27
4.2.2.1 Filtrado Morfológico Bottom Hat El filtro morfológico Bottom hat realiza la operación de cerradura sobre la imagen, eliminando la mayoría de elementos en ella, dejando solo el fondo. La realización de una operación de cerradura implica hacer primero una dilatación a la imagen y después una erosión, o sea se deben realizar dos filtrados a la imagen, aplicando el mismo elemento
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
101
estructural en ambos filtrados, elevando el costo computacional, pero sin la necesidad de conocer a priori el fondo de la imagen. Estas operaciones de dilatación y erosión se implementaron en pipeline y el elemento estructura es formado en una matriz binaria de 3x3 elementos, similares a los mostrados en la figura 4.2-7
0 1 0
1 1 1
0 1 0
a)
1 1 1
1 1 1
1 1 1
b)
0 0 1
0 1 0
1 0 0
c)
1 0 1
0 1 0
1 0 1
d)
Figura 4.2-7 Elementos estructurales para las operaciones de dilatación y erosión
a) Cruz b) Cuadrado c) Diagonal d) Equis
Los elementos estructurales se cargan de forma serial por medio de registros de desplazamiento de un bit. Según la estructura a cargar, estos valores binarios activan los multiplexores, seleccionando un cero o el valor del píxel. Una vez cargados los registros de desplazamiento (pipeline) con los píxeles de la máscara seleccionada se obtiene el valor de erosión del píxel en esa vecindad. Esta tarea se realiza hasta recorrer toda la imagen. Después se ejecuta el mismo procedimiento, pero haciendo la dilatación de la imagen. Al realizar el segundo recorrido se obtiene la cerradura de la imagen. La arquitectura propuesta se observa en la figura 4.2-8. Un diseño de una arquitectura para el cálculo de erosión y dilatación es presentada en [4] Para hacer el filtrado bottom hat se debe aplicar la cerradura y después suprimirle la imagen original, para obtener de esta manera la imagen sin el fondo. La resta se hace usando el bloque del restador mostrado en la figura 4.2-6a
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
102
Figura 4.2-8 Arquitectura pipeline para realizar las operaciones de dilatación y erosión
La simulación de este filtro se observa gráficamente en la secuencia de la figura 4.2-9 donde se tiene una imagen de 8x8 píxeles y se aplica un elemento estructural en forma de cruz. En la figura 4.2-9a se filtra el píxel con valor de intensidad 5, dando como resultado
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
103
para la erosión el menor valor dentro de esta vecindad, el cual es el valor de intensidad 2. La tabla 4.2-3 presenta los resultados de compilación.
a)
b)
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
104
c)
d)
Figura 4.2-9 Simulación de las operaciones de dilatación y erosión
a) Filtrado en T1. b) Filtrado en T2. c) Filtrado en T3. d) Diagrama de tiempos
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
105
Tabla 4.2-3 Resultados de simulación del filtro Bottom hat
Elementos usados Total
Registros 450
Registros lógicos dedicados 450
ALUTs combinacionales 2350
4.2.3 Filtrado High Boost de la Imagen
Cuando el algoritmo de supresión de fondo ha realizado la resta entre la imagen de la mesa y la imagen de la lámina de cuero, se hace necesario realizar un filtrado, ya que se deben eliminar los residuos de que generó la supresión y mejorar los bordes de la nueva imagen. En este caso el filtrado se realiza usando un filtro High-Boost el cual tiene la característica de mejorar los bordes y permitir el paso de parte de la imagen de acuerdo al valor de A, como se describe en la Ecuación 2.3-8
La implementación de este filtro se realiza en pipeline como se observa en la figura 4.2-10
a)
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
106
+
+
-
+
+
-
X0[0..7]
X1[0..7]
X2[0..7]
X3[0..7]
X5[0..7]
X6[0..7]
X7[0..7]
X8[0..7]
X4[0..7] Y[0..7]
b)
+X0[0..7]
X1[0..7]
X2[0..7]
X3[0..7]
X5 [0 .. 7]
X6 [0 .. 7]
X7 [0 .. 7]
X8 [0 .. 7]
Suma[0..10]
X4[0..10]
+
-
0A
BA>B
A
BA>B
A
BA>B
A
BA>B
255
0
1
0
1
HB[0..10]
c)
Figura 4.2-10 Arquitectura pipeline para realizar el filtro high boost
a) Arquitectura high boost. b) Elemento de proceso de suma y resta. c) Bloque del elemento de suma y resta
Este filtro se realiza con un arreglo de registros de desplazamiento, los cuales realizan el pipeline del filtro y la máscara se implementa con un sumador de 8 entradas y un restador, para mantener el valor de salida en el rango de 0 a 255 se usan dos comparadores y dos multiplexores.
La simulación del filtro high boost, aplicado a un píxel de una imagen de prueba se observa en la secuencia mostrada en la figura 4.2-11. La tabla 4.2-4 presenta los resultados de compilación.
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
107
a)
b)
Figura 4.2-11 Simulación del filtrado high boost
a) Píxel filtrado con high boost. b) Diagrama de tiempos
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
108
Tabla 4.2-4 Resultados de simulación del filtro High boost
Elementos usados Total
Registros 364
Registros lógicos dedicados 364
ALUTs combinacionales 2086
4.3 Etapa de Umbralización de la Imagen Los algoritmos de umbralización son una parte fundamental del microsistema de medición debido a que estos terminan de separar el fondo de la lámina de cuero mediante el cálculo de un valor de umbral que separa los niveles de intensidad de la imagen en dos regiones. Una región que contiene los píxeles del fondo de la imagen y otra que contiene los píxeles de la lámina de cuero. La suma de los píxeles contenidos en la región umbralizada, representan el área real de la lámina de cuero En la sección 3.5.2 se realizo una evaluación a diez algoritmos de umbralización, de los cuales se han implementado los primeros cuatro algoritmos mediante arquitecturas hardware. Los algoritmos implementados son:
1. Arquitectura hardware para el algoritmo de umbralización de Otsu 2. Arquitectura hardware para el algoritmo de umbralización ISODATA 3. Arquitectura hardware para el algoritmo de umbralización intermodal 4. Arquitectura hardware para el algoritmo de umbralización de valles y colinas
4.3.1 Arquitectura Hardware para el Algoritmo de Um bralización de Otsu El algoritmo de umbralización de OTSU hace uso iterativo de la información del histograma de la imagen. El histograma implementado en este proyecto es para imágenes en escala de grises, o sea de 8 bits y solo requiere 256 valores o posiciones de memoria. En [5] se desarrolla una arquitectura que pretende mejorar la implementación en hardware de este algoritmo El algoritmo de Otsu utiliza la varianza como una medida de dispersión de los niveles de gris. Este método busca un valor de umbral que minimice la varianza en la región de interés y que a su vez sea máxima con las demás regiones. Para esto el algoritmo debe encontrar un valor de umbral donde el cociente entre ambas varianzas sea máximo. La implementación hardware del algoritmo de OTSU se basa en el cálculo del histograma y en dos bloques principales, un bloque estadístico para calcular los momentos estadísticos OMEGA y MU, y otro para calcular el umbral de OTSU a través de la varianza.
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
109
Para comprender mejor el funcionamiento de este algoritmo se plantea una imagen de 6x6 píxeles como la mostrada en la figura 4.3-1a y su histograma en la figura 4.3-1b.
a)
b)
Figura 4.3-1 Imagen de prueba para calcular el umbral de Otsu
a) Imagen de prueba. b) Histograma de la imagen de prueba
0
2
4
6
8
10
12
Negro Seminegro Gris Grisclaro Semiblanco Blanco
Ca
nti
da
d d
e p
ixe
les
Intensidad
Histograma de intensidad
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
110
Una vez calculado el histograma, se calculan los momentos estadísticos y se busca el umbral de separación mediante la comparación de la varianza entre clases (fondo y objeto), de forma tal que el mínimo valor es el umbral de Otsu, este procedimiento se observa la figura 4.3-2.
a)
b)
c)
d)
e)
f)
Figura 4.3-2 Umbralización de Otsu de forma grafica
a) Imagen para umbral T<0. b) Imagen para umbral T<1. c) Imagen para umbral T<2.
d) Imagen para umbral T<3. e) Imagen para umbral T<4. f) Imagen para umbral T<5.
Se observa que la varianza dentro de las clases es menor en las figuras 4.3-2c y 4.3-2d y de igual manera, la figura queda mejor separada para estos dos umbrales, o para un umbral T <3. La tabla 4.3-1 presenta los resultados de compilación de umbralizador de Otsu.
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
111
4.3.1.1 Implementación del Bloque para el Cálculo d el Histograma Para la implementación del hardware para calcular el histograma se requiere tener un bloque de memoria RAM para almacenar el conteo de cada elemento que se repite en la imagen inicializada en cero. Se carga el valor del nivel de intensidad de la imagen y este valor apunta a la dirección de la memoria RAM del histograma. Con la Memoria RAM direccionada, se carga el valor actual de esta posición y se aumenta en uno. Para realizar este incremento se usa un sumador acumulador y su salida se graba nuevamente en la memoria RAM del histograma. Para sincronizar esta operación se requiere que la línea de lectura del la memoria RAM de la imagen y el histograma estén en nivel alto, es este momento se carga el valor del píxel de la imagen en el puerto de direcciones de histograma, dando salida al valor de intensidad del histograma de esta posición. Este valor es incrementado en uno. Una vez cargado el valor de suma y acumulación se activa la línea de escritura de la memoria RAM del histograma y se actualiza el nuevo valor del histograma. En la Figura 4.3-3 se muestran el bloque hardware para el cálculo del histograma y su simulación.
a)
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
112
b)
Figura 4.3-3 Cálculo en hardware del histograma
a) Bloque hardware del histograma. b) Simulación del histograma
4.3.1.2 Implementación del Bloque Estadístico
El bloque estadístico permite calcular los momentos llamados omega y miu. Para la implementación de este método se dispone de dos bloques de memoria RAM, un sumador-acumulador para el cálculo del histograma acumulado o el momento omega y un multiplicador-sumador y acumulador que calcula el área de intensidad acumulada. La implementación de este bloque estadístico se observa en la figura 4.3-4
Figura 4.3-4 Arquitectura hardware del bloque estadístico
Este bloque estadístico se calcula a partir del histograma de la imagen a analizar o más directamente del histograma almacenado en la memoria RAM “histograma”. La memoria RAM
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
113
“Omega” almacena el cálculo del histograma acumulado, mediante la suma y acumulación de los valores presentes y pasados del histograma. De igual forma pero precedida de una multiplicación entre el valor del histograma y el i-esimo valor del histograma se calculan los valores de la memoria RAM “Miu”.
4.3.1.3 Implementación del Bloque para Cálculo del Umbral O tsu Este bloque calcula la varianza entre clases para hallar el umbral de Otsu. Los cálculos aritméticos son realizados por los bloques funcionales mostrados en la figura 4.3-5 para números enteros, los principales bloques son: Un sumador, cuatro flip-flops, cuatro restadores, cuatro multiplicadores, dos divisores, y un comparador, los cuales se encargan de calcular el valor de umbral de Otsu.
Figura 4.3-5 Arquitectura hardware del bloque que cálculo el umbral de Otsu
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
114
Esta arquitectura realiza los cálculos matemáticos para hallar la varianza de cada clase (fondo y objeto) de forma iterativa, encontrando el mínimo valor entre ambas clases y guardando la posición del contador de la iteración, que finalmente es el valor de umbral de Otsu. La tabla 4.3-1 presenta los resultados de compilación
Tabla 4.3-1 Resultados de simulación del umbralizador de Otsu
Elementos usados Total
Multiplicadores de 9 bits embebidos 18
Registros 156
Registros lógicos dedicados 156
Funciones combinacionales 2259
Memoria Total en bits 72032
4.3.2 Arquitectura Hardware para el Algoritmo de Um bralización ISODATA El umbralizador ISODATA se puede describir en dos pasos, como se presentan a continuación: 1. En el primer paso, se deben calcular los umbrales iníciales. Para calcular los valores
iníciales se toman los valores de las esquinas de la imagen y se promedian, este valor se llama T1, después se promedia el resto de píxeles de la imagen, este valor se llama T2, luego se calcula el promedio T1 y T2, a este valor se le llama el umbral T inicial. En este procedimiento se inicializa el umbral viejo o anterior, con un valor de cero.
2. En el segundo paso, se calcula el promedio de la región contenida por los valores inferiores al umbral inicial y se calcula el promedio de la región contenida por los demás valores. Estos promedios se llaman T1 y T2. Se calcula el promedio entre T1 y T2 y se compara con el umbral T inicial, si son iguales, entonces se ha calculado el umbral ISODATA y se termina el cálculo, en caso contrario, se hará el umbral T inicial como el umbral viejo y el promedio de T1 y T2 será el nuevo umbral T inicial, y se regresa al paso uno de nuevo.
La implementación de este umbralizador se ha diseñado para que realice el cálculo del promedio entre T1 y T2 en hardware, e inicie el umbral inicial por medio de la señal “Iniciar”, cargando de esta forma el primer valor de umbral T, se resetea el flip-flop umbral viejo a cero. Una vez inicializado, se cargan todos los píxeles de la imagen y se calculan los siguientes valores promedio T1 y T2, y a su vez el promedio entre ellos. Este valor es comparado con el umbral viejo cargado en el flip-flop, y si son iguales, este valor será el umbral ISODATA, y se cargara en el flip-flop de salida. En caso contrario este valor se carga como umbral T y el antiguo valor de umbral T se desplaza, convirtiéndose en el umbral viejo. Este proceso se repite hasta que el umbral viejo y el promedio de T1 y T2 sean iguales. Una implementación en
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
115
hardware de este algoritmo es propuesta en [6]. La tabla 4.3-2 presenta los resultados de compilación. La arquitectura propuesta se observa en la figura 4.3-6.
Figura 4.3-6. Arquitectura hardware para el cálculo del umbral ISODATA
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
116
Tabla 4.3-2 Resultados de simulación del umbralizador ISODATA
Elementos usados Total
Registros 40
Registros lógicos dedicados 40
ALUTs combinacionales 986
4.3.3 Arquitectura Hardware para el Algoritmo de Um bralización Intermodal
Este umbralizador hace uso de forma iterativa del histograma y lo modifica adelgazándolo con cada iteración; no realiza complejos cálculos matemáticos lo cual hace que ocupe menor área, pero tiene mayor tiempo de convergencia, ya que depende de la forma de la distribución frecuencial de los píxeles en su histograma. El umbral de separación se calcula en el valor medio de los picos máximos adelgazados. Al algoritmo intermodal propuesto en este proyecto se realiza en cuatro pasos, como se muestran a continuación. 1. Se lee el histograma, haciendo una comparación entre grupos de 3 registros de las
posiciones [k-1], [k], [k+1], y acumulando las veces que se cumpla la condición dada por la Ecuación 4.3-1.
]1[][]1[ +<>− kkk (4.3-1)
2. En el caso de que el valor del acumulado sea igual a tres, se debe finalizar la lectura del
histograma. En caso de que se termine de leer el histograma y el acumulado es igual a dos, se ejecuta el paso 4, de lo contrario se ejecuta el paso 3.
3. Se promedian los valores de la posiciones [k-1], [k] y [k+1] y se almacenan de nuevo en
la posición k, al terminar de actualizar el histograma se ejecuta de nuevo el paso 1. 4. Se calcula el umbral promediando entre la ubicación del primer valor acumulado y el
segundo valor acumulado. Esta ubicación es el umbral intermodal. Este algoritmo se puede observar en gráficamente en la figura 4.3-7. La tabla 4.3-3 presenta los resultados de compilación
a)
c)
Figura 4.3
a) Búsqueda de máximos en el histograma. b) Adelgazamiento del histograma. c) Reducción del
histograma hasta obtener
Para la implementación de este algoritmo de RAM, uno para el histograma que se modifica y otro para el histograma temporal; tres flops para mantener actualizados los datos ipermiten encontrar el valor de umbral. En la Figura 4.3.del algoritmo intermodal.
Implementación Hardware de los Algoritmos para Medir una Lámina de C
117
b)
d)
Figura 4.3-7 Algoritmos intermodal mostrado gráficamente
a) Búsqueda de máximos en el histograma. b) Adelgazamiento del histograma. c) Reducción del
histograma hasta obtener dos máximos. d) Calculo del umbral de intermodal
Para la implementación de este algoritmo de umbralización se usaron, dos bloques de memoria RAM, uno para el histograma que se modifica y otro para el histograma temporal; tres
lizados los datos i-1, i, i+1 y tres bloques de comparación que permiten encontrar el valor de umbral. En la Figura 4.3.8 se muestra la arquitectura hardware
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
a) Búsqueda de máximos en el histograma. b) Adelgazamiento del histograma. c) Reducción del
al de intermodal
loques de memoria RAM, uno para el histograma que se modifica y otro para el histograma temporal; tres fllip-
bloques de comparación que la arquitectura hardware
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
118
Figura 4.3-8. Arquitectura hardware del algoritmo intermodal
Esta arquitectura hardware adelgaza el histograma mediante el promedio de tres píxeles consecutivos. Este procedimiento lo realiza a todo el histograma de la imagen y al finalizar el adelgazamiento se verifica que solo existan dos valores máximos. El valor medio de estos dos máximos es el umbral Intermodal. El histograma se carga inicialmente en la memoria RAM “Intermodal”, mediante la habilitación de la señal LdH. Una vez cargado el histograma, se inicia el proceso de adelgazamiento.
Se usa una red de retardo de tres flipdespués de haber calculado el promedio, y doumbral intermodal se logra cuando se ha terminado de adelgazar el histograma y la salida del comparador esta activa para A=2. En este momento se carga el resultado del promedio de las posiciones de la primera colina y la segunda colina encontrada.
Tabla 4.3-3 Resultados de simulación
Elementos usados
Celdas lógicas
Registros
Memoria Total en bits
4.3.4 Arquitectura H ardware para el y Colinas Este umbralizador funciona de forma similar al adelgazándolo con cada iteracióncual hace que ocupe menor área, pero tiene mayoseparación se calcula en el valor mínimo del valle del histograma adelgazado.de este algoritmo depende de que exista un buen contraste entre el fondo y la imagen y obtener un valor mínimo entre el valle que se forma entre el fondo y la El algoritmo de umbralizaciónestá en que solo cambia el paso Gráficamente este paso se observa en la figura 4.3
Figura 4.3
Este bloque umbralizador se compone de: Dhistograma que se modifica y otro para el histograma temporal, tres de mantener actualizados los datos iencontrar el valor de umbral, que será el mínimo valor del valle entre los máximos finales. En la Figura 4.3-10 se muestra el diagrama de b
Implementación Hardware de los Algoritmos para Medir una Lámina de C
119
Se usa una red de retardo de tres flip-flops para guardar la posición que se puede sobredespués de haber calculado el promedio, y dos de atraso para guardar la posición adelgazada. El
ntermodal se logra cuando se ha terminado de adelgazar el histograma y la salida del esta activa para A=2. En este momento se carga el resultado del promedio de las
colina y la segunda colina encontrada.
Resultados de simulación del umbralizador Intermodal
Total
323
117
8192
ardware para el Algoritmo de Umbral ización
Este umbralizador funciona de forma similar al intermodal, haciendo uso del histograma y adelgazándolo con cada iteración; no realiza complejos cálculos aritméticos ni matemáticos lo cual hace que ocupe menor área, pero tiene mayor tiempo de convergencia. El umbral de separación se calcula en el valor mínimo del valle del histograma adelgazado.de este algoritmo depende de que exista un buen contraste entre el fondo y la imagen y
ntre el valle que se forma entre el fondo y la lámina
umbralización es similar al usado para el algoritmo intermodal, su diferencia está en que solo cambia el paso número 4 al calcular el valor mínimo en lugar del valor medio.
este paso se observa en la figura 4.3-9
Figura 4.3-9 Cálculo del mínimo valle gráficamente
ue umbralizador se compone de: Dos bloques de memoria RAM, uno para el
histograma que se modifica y otro para el histograma temporal, tres fllip-flopsde mantener actualizados los datos i-1, i, i+1 y tres bloques de comparación que permite encontrar el valor de umbral, que será el mínimo valor del valle entre los máximos finales. En la
10 se muestra el diagrama de bloques del umbralizador cálculo del valle.
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
flops para guardar la posición que se puede sobre escribir, posición adelgazada. El
ntermodal se logra cuando se ha terminado de adelgazar el histograma y la salida del esta activa para A=2. En este momento se carga el resultado del promedio de las
del umbralizador Intermodal
ización Valles
, haciendo uso del histograma y o realiza complejos cálculos aritméticos ni matemáticos lo
r tiempo de convergencia. El umbral de separación se calcula en el valor mínimo del valle del histograma adelgazado. La convergencia de este algoritmo depende de que exista un buen contraste entre el fondo y la imagen y así poder
lámina de cuero.
es similar al usado para el algoritmo intermodal, su diferencia 4 al calcular el valor mínimo en lugar del valor medio.
os bloques de memoria RAM, uno para el flops que se encargan
de comparación que permite encontrar el valor de umbral, que será el mínimo valor del valle entre los máximos finales. En la
loques del umbralizador cálculo del valle.
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
120
Figura 4.3-10. Calculo del umbral valles y colinas
Esta arquitectura es similar a la propuesta para el algoritmo Intermodal, su diferencia está en la carga del mínimo valor que cumple la condición dada por la ecuación 4.3-1 en lugar del valor medio. La tabla 4.3-4 presenta los resultados simulación.
Tabla 4.3-4 Resultados de simulación del umbralizador valles y colinas
Elementos usados Total
Celdas lógicas 330
Registros 130
Memoria Total en bits 8192
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
121
4.4 Etapa para el Cálculo del Área Óptima de la Lám ina de Cuero Al tener cuatro valores de umbral, se debe decidir cuál de ellos usar y así binarizar la imagen y calcular el área correspondiente. Para calcular el área óptima se sustraen las imágenes entre si y se calcula el promedio para el par de imágenes de menor variación. A continuación se muestra un ejemplo de cómo se realiza este proceso.
4.4.1 Ejemplo con Círculos para Calcular el Área Óp tima de la Lámina de Cuero 1. Se generan las figuras binarias usando cada umbral. Para la mejor comprensión de este método se usarán figuras en forma de círculo con diámetros diferentes y un área total de la imagen de 50x50 píxeles, tal como se observa en la figura 4.4-1a, 4.4-1b, 4.4-1c, 4.4-1d.
a)
b)
c)
d)
Figura 4.4-1. Círculos de prueba
a) Círculo A de un diámetro de 47 píxeles y área 1734 pixeles2. b) Círculo B de un diámetro de 45
píxeles y área 1590 pixeles2. c) Círculo C de un diámetro de 43 píxeles y área 1452 pixeles
2. d)
Círculo D de un diámetro de 46 píxeles y área 1661 pixeles2.
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
122
2. Se implementa la operación BA∩ y acumulando su resultado. Los píxeles no comunes entre los círculos se observan en la figura 4.4-2.
a)
b)
c)
d)
e)
f)
Figura 4.4-2. Intersección de las imágenes binarias
a) BA∩ b) CA∩ c) DA∩ d) CB∩ e) DB∩ f) DC ∩
El área sombreada de los círculos de la figura 4.4-2 representa los píxeles que no son comunes en ambas imágenes, y por lo tanto son un indicador de la variación entre ambas umbralizaciones. El valor óptimo de umbral se logra cuando este valor es mínimo. Para este
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
123
ejemplo en particular se presenta en la tabla 4.4-1 los resultados de las intersecciones de los círculos mostrados en la figura 4.4-1
Tabla 4.4-1. Resultados de las intersecciones de los círculos mostrados en la figura 4.3-2
Intersección entre los conjuntos Cantidad de píxeles no comunes
BA∩ 145
CA∩ 283
DA∩ 73
CB∩ 138
DB∩ 71
DC ∩ 210
3. Se selección los conjuntos que contienen la menor cantidad de píxeles no comunes, y sobre este conjunto se calcula el promedio de sus valores de umbral. Este promedio será el valor óptimo, que para este caso sería el promedio del área B y D, que es 1626 píxeles
4.4.2 Arquitectura Hardware para el Cálculo del Va lor Optimo. La arquitectura a bloques propuesta para el cálculo del área optima consta de una etapa en la cual se lee la imagen sin fondo almacenada en la memoria RAM llamada “Imagen Tratada”, donde se compara con cada umbral y se calcula cada área según su umbral, mediante cuatro sumadores acumuladores, como se observa en la figura 4.4-3a. Las señales bitA, bitB, bitC y bitD son generadas por la comparación entre el píxel de la imagen y cada umbral de separación. Estas señales habilitan la suma y acumulación de cada píxel que corresponde a la lámina de cuero, los cuales se denominan AOtsu, AISODATA, AIntermodal y AVallesycolinas que corresponden a los valores de área en píxeles según el umbral de cálculo. La figura 4.4-3b muestra las señales bitA, bitB, bitC y bitD combinadas en parejas por la operación xor calculan el área no común entre cada par de láminas de cuero umbralizadas. También se cargan los valores de los promedios de las áreas calculadas y los valores de área no común en el circuito mostrado en la figura 4.4-3c y calcula el menor valor del área no común y canaliza el promedio de área de esta pareja, que finalmente es el área óptima de la lámina de cuero. La tabla 4.4-2 presenta los resultados de compilación
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
124
a)
b)
c)
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
125
d)
Figura 4.4-3. Arquitectura a bloques para el cálculo del área óptimo
a) Calculo de las distintas áreas según el umbral b) Calculo de los promedios entre las áreas y sus
área no comunes c) Bloque PE para el cálculo del menor valor no común y su área optima. d)
Tabla 4.4-2 Resultados de simulación para el cálculo del área óptima
Elementos usados Total
Celdas lógicas 330
Registros 130
ALUT’s 20
Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero
126
Bibliografía
[1] Digital Circuit Architecture for a Median Filter of Grayscale Images Based on Sorting Network. International journal of circuits, systems and signal processing. Victor Jimenez-Fernandez, Denisse Martinez-Navarrete, Carlos Ventura-Arizmendi, Zulma Hernandez-Paxtian, Joel Ramirez-Rodriguez. 2011
[2] An FPGA-based implementation for median filter meeting the real-time
requirements of automated visual inspection systems. Proceedings of the 10th Mediterranean Conferenceon Control and Automation. lisboa. miguel a. vega-rodríguez, juan m. sánchez-pérez, juan a. gómez-pulido. Universidad de Extremadura, Dpto. de Informática, España. 2002
[3] High Speed Pipelined Architecture for Adaptive Median Filter. European Journal of
Scientific Research. D.Dhanasekaran K. Boopathy Bagan . ISSN 1450-216X Vol.29 No.4 pp. 454-460. 2009.
[4] Implementación de una arquitectura para un filtro morfológico de imágenes
digitales en escala de grises en un fpga de altera. tesis para optar el título de ingeniero electrónico. Jordán Giacomo Villeta Espinoza. Perú. 2003
[5] Implementation of Otsu's Thresholding Process Based on FPGA. Wang Jianlai, Yang
Chunling, Zhu Min, Wang Changhui. School of Electrical Engineering Harbin Institute of Technology Harbin, China wjl820518@sina.com 2009
[6] A Parallelized and Pipelined Datapath to Implement ISODATA Algorithm for Rosette
Scan Images on a Reconfigurable Hardware. Ehsan Rahimi, Shahriar B. Shokouhi, Ali
Sadr. Iran University. 2008
81
CONCLUSIONES Y TRABAJO FUTURO
En este trabajo se presenta el diseño de un microsistema basado en un FPGAs para la
medición del área de una lámina de cuero. En este caso, se lleva a cabo un análisis de las
diferentes partes que componen este sistema de medición y se realiza un estudio sobre los
aspectos teóricos para la realización del proyecto y desarrollos actuales de microsistemas
para el procesamiento digital de imágenes sobre FPGAs.
Se selecciona una cámara que permite obtener imágenes de buena resolución y con mínima
distorsión del lente con el objetivo de lograr la medición más confiable desde el inicio de la
captura de la imagen. Los resultados experimentales mostraron que las imágenes tomadas
presentaron una distorsión despreciable, ya que sus capturas se hicieron de forma centrada.
La resolución de captura fue de 1.5 mega píxeles, lográndose una resolución de 804
pixeles por decímetro cuadrado, suficientes para lograr la precisión propuesta y mejorando
notablemente la resolución respecto a los equipos de medida tradicionales que pueden
obtener hasta 25 puntos por decímetro cuadrado.
Se uso un sistema de iluminación practico y robusto, implementado con una lámpara de uso
industrial, para obtener una buena relación entre el contraste de la lámina del cuero y la
mesa de medida; el tipo de iluminación usada fue la iluminación frontal, la cual presenta
buenos resultados y es de fácil instalación, aunque presento algunos problemas con los
cambios de iluminación a lo largo del día. Para solucionar este problema se opto por
implementar la técnica de supresión de fondo y medir en un sitio cerrado, para evitar
perturbaciones externas, mitigando los problemas de sombras en la imagen.
Los algoritmos para el mejoramiento de la imagen se implementaron con un filtro mediana
y posteriormente se suprimió el fondo de la imagen mediante un filtro morfológico bottom
hat, que se desempeño correctamente en todas la pruebas, logrando suprimir el fondo con
éxito. Posteriormente se filtro la imagen usando un filtro high-boost que tiene como
objetivo mejorar los bordes de la imagen y disminuir la pérdida de área causada por bordes
defectuosos generados durante la supresión del fondo, esto permitió definir mejor el
contorno de la imagen de la lámina de cuero.
La implementación hardware en pipeline del filtro mediana, bottom hat y el, high boost
mejoran el desempeño del filtrado ya que hace un re-uso de seis de nueve pixeles que se
usan comúnmente en este tipo de filtros, logrando mejorar la velocidad en el
procesamiento.
Una de las partes más importantes de este trabajo de investigación, consistió en determinar
que algoritmos, técnicas o métodos nos permiten separar de forma óptima y confiable la
Capítulo 5
Conclusiones y Trabajo Futuro
82
imagen de la mesa de la imagen de la lámina de cuero, para poder realizar su medición de
forma correcta. Durante el desarrollo de este proyecto se determino que las técnicas de
umbralizacion resolvían esta necesidad, y se probo de forma experimental cuales dieron
mejores resultados para realizar este proyecto.
Se investigo en la literatura existente diversas técnicas de umbralizacion, y en este caso se
probaron diez algoritmos de umbralizacion. Se uso el criterio basado en la clasificación
errónea y el criterio basado en el error relativo para determinar los mejores resultados de
umbralizacion, dando como resultados los algoritmos de umbralizacion de Otsu,
ISODATA, Intermodal y valles y colinas.
El éxito de estos algoritmos radico en que ellos hacen su búsqueda en las distribuciones que
separa el valle más profundo. Al buscar sobre este valle profundo se incrementan la
posibilidades de éxito ya que el fondo de la imagen o la mesa de trabajo es de un color que
genera un buen contraste con las láminas de cuero, que generalmente para esta aplicación
son de color azul o curtido en cromo (wet-blue). Teniendo en cuenta, los resultados de
medición se puede finalmente concluir que el microsistema para la medición de una lámina
de cuero logra mejores resultados que las maquina electrónicas tradicionales, ya que el
error relativo fue inferior al 1%, mientras que el error relativo de los sistemas de medición
tradicionales están entre el 1 y el 3%, aparte de la ventaja técnica que representa el tener un
sistema de medición compacto, el cual presenta menos problemas por mantenimiento que
sus contrapartes tradicionales.
El trabajo futuro puede estar enfocado a capturar la imagen desde el sistema de medición y
no de forma externa como se realizo en este proyecto. Se pueden implementar arquitecturas
como las mostradas en el capitulo 2, en la sección 2.4.1 con el objetivo de realizar de forma
embebida toda la medición de la lamina de cuero. De igual manera se puede implementar la
corrección del lente y ajuste de perspectiva de forma embebida en el FPGA como los
mostrados en el capitulo 2 en la sección 2.4.1, para disminuir la distancia de instalación del
sistema de captura de la imagen, ya que en este trabajo esta a una distancia aproximada de 5
metros de altura, lo cual le resta un poco de practicidad a la hora de realizar el montaje.
También se puede mejorar el sistema de iluminación, implementando un sistema de
iluminación automático que permita a toda hora tener una iluminación siempre constante en
diversos puntos de área de medición, con el objetivo de mitigar los efectos producidos por
los cambios de iluminación a lo largo del día o los altibajos de tensión comunes en
ambientes industriales.
Una de las ventajas de usar un sistema de medición mediante el uso de sensores de captura
tipo CMOS o CCD es que al aumentar la resolución del sistema de captura se disminuye el
error relativo en la medida. Lo cual es algo factible en este momento ya que la relación
precio y resolución del sensor cada día es más baja, dando como resultados alta precisión a
bajo precio. Otra forma de lograr mas precisión para este microsistema de medición es
mediante un arreglo de cámaras, que ayudan a disminuir la distancia del sistema de captura
de la imagen y aumentar su resolución de medida sin necesidad de aumentar la resolución
en pixeles de la imagen.
Conclusiones y Trabajo Futuro
83
En el corto plazo se puede avanzar a la implementación del sistema de medición sobre
video en tiempo real, mediante técnicas de tracking. Es posible aplicar técnicas de
segmentación espacio-temporales de objetos y medir la lamina de cuero en el trayecto
durante la línea de producción, disminuyendo paradas, e inclusive, suprimiendo de la línea
de producción la etapa de medición, ya que se puede realizar en cualquier parte del proceso
donde se extienda la lamina de cuero, como puede ser en el pintado, en el escurrido o
después del planchado.
Con esta aplicación se puede migrar fácilmente al desarrollo de productos de impacto en la
industria del cuero, como puede ser la detección de fallas en el cuero, medición de la
calidad de la pintura en el cuero, o identificación de piezas para el corte automático del
cuero.
Recommended