diseño de un microsistema basado en fpgas para la medicion de una lamina de cuero

134
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 ELECTRÓNICA SANTIAGO DE CALI 2012

Upload: jhohann-fabian-salazar-loaiza

Post on 30-Jun-2015

367 views

Category:

Technology


0 download

DESCRIPTION

FPGAs, sistemas electronicos, diseño digital, arquitectura FPGA, algoritmos de vision artificial

TRANSCRIPT

Page 1: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 2: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 3: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 4: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 5: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 6: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 7: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 8: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 9: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 10: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 11: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 12: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 13: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

Introducción

8

Bibliografía

[1] http://www.cueronet.com/tecnicacuero.htm

Page 14: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 15: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 16: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 17: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 18: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 19: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 20: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 21: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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):

Page 22: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 23: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 24: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 25: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 26: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 27: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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:

Page 28: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 29: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 30: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 31: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 32: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 33: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 34: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 35: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 36: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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].

Page 37: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 38: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 39: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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:

Page 40: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 41: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 42: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 43: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 44: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 45: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 46: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 47: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 48: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 49: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 50: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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]

Page 51: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 52: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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]

Page 53: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 54: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 55: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 56: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 57: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 58: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 59: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 60: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 61: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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,[email protected]. 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

Page 62: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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: [email protected], 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

Page 63: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 64: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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-

Page 65: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 66: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 67: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 68: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 69: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 70: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 71: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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:

Page 72: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 73: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 74: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 75: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 76: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 77: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 78: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 79: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 80: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 81: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 82: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 83: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 84: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 85: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 86: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 87: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 88: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 89: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 90: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 91: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 92: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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ó.

Page 93: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 94: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 95: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 96: Diseño de un microsistema basado en FPGAs para la medicion de una lamina 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

Page 97: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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).

Page 98: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 99: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 100: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 101: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 102: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 103: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 104: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 105: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 106: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 107: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 108: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 109: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 110: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 111: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 112: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 113: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 114: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 115: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 116: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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)

Page 117: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 118: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 119: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 120: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 121: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 122: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 123: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 124: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 125: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 126: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 127: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 128: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 129: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

Implementación Hardware de los Algoritmos para Medir una Lámina de Cuero

124

a)

b)

c)

Page 130: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 131: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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 [email protected] 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

Page 132: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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

Page 133: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.

Page 134: Diseño de un microsistema basado en FPGAs para la medicion de una lamina de cuero

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.