lectura automática de instrumentos de medida mediante técnicas

137
UNIVERSIDAD DE VIGO ESCUELA TÉCNICA SUPERIOR DE INGENIEROS DE TELECOMUNICACIÓN PROYECTO FIN DE CARRERA LECTURA AUTOMÁTICA DE INSTRUMENTOS DE MEDIDA MEDIANTE TÉCNICAS DE VISIÓN ARTIFICIAL Autor: Esteban Vázquez Fernández Tutores: Fernando Martín Rodríguez Arno Formella CURSO 2007/2008

Upload: vulien

Post on 06-Jan-2017

228 views

Category:

Documents


6 download

TRANSCRIPT

Page 1: Lectura Automática de Instrumentos de Medida Mediante Técnicas

UNIVERSIDAD DE VIGO

ESCUELA TÉCNICA SUPERIOR

DE INGENIEROS DE TELECOMUNICACIÓN

PROYECTO FIN DE CARRERA

LECTURA AUTOMÁTICA DE INSTRUMENTOS DE

MEDIDA MEDIANTE TÉCNICAS DE VISIÓN

ARTIFICIAL

Autor: Esteban Vázquez Fernández

Tutores: Fernando Martín Rodríguez

Arno Formella

CURSO 2007/2008

Page 2: Lectura Automática de Instrumentos de Medida Mediante Técnicas
Page 3: Lectura Automática de Instrumentos de Medida Mediante Técnicas

LECTURA AUTOMÁTICA DE INSTRUMENTOS DE

MEDIDA MEDIANTE TÉCNICAS DE VISIÓN

ARTIFICIAL

Autor: Esteban Vázquez Fernández

Tutores: Fernando Martín Rodríguez

Arno Formella

CURSO 2007/2008

PFC desarrollado bajo beca OFOE

Page 4: Lectura Automática de Instrumentos de Medida Mediante Técnicas
Page 5: Lectura Automática de Instrumentos de Medida Mediante Técnicas

AGRADECIMIENTOS Quizá sea ésta una de las tareas más complicadas a la hora de realizar la

memoria del proyecto, pero antes de agradecer nada, he de pedir perdón por los errores

que puedan estar presentes en esta documentación. Estoy seguro de haber corregido

todos los que he encontrado, pero también estoy seguro de no haber encontrado todos

los que hay… Cualquier error o aclaración puede ser enviada a [email protected].

En segundo lugar y a riesgo de defraudar a aquellos que con entusiasmo

buscaban esta sección para tratar de reconocer nombres conocidos, siento decir que he

decidido no nombrar a nadie en concreto. Es difícil hacer una selección cuando, por el

simple hecho de que estés dedicando una parte de tu tiempo a leer este proyecto, debería

estarte agradecido. En un principio, había empezado a redactar una lista, pero cuando

me he dado cuenta de las dimensiones que estaba adquiriendo, decidí descartarla. No

quiero olvidar a nadie por despiste, ni hacer una enumeración impersonal de nombres…

Solamente he de decir que, si al leer esto esperabas encontrar tu nombre, puedes

estar tranquilo. Seguro de que debes estar aquí. Por ello, te doy las gracias.

Page 6: Lectura Automática de Instrumentos de Medida Mediante Técnicas
Page 7: Lectura Automática de Instrumentos de Medida Mediante Técnicas

LECTURA AUTOMÁTICA DE INSTRUMENTOS DE MEDIDA MEDIANTE

TÉCNICAS DE VISIÓN ARTIFICIAL.

Autor: Esteban Vázquez Fernández

Tutores: Fernando Martín Rodríguez Arno Formella

RESUMEN

En el presente proyecto se describe el diseño, implementación, comprobación,

puesta en funcionamiento y comparación de resultados de un sistema que,

automáticamente, realiza la lectura de pantallas de instrumentos de medida a partir

imágenes tomadas con una cámara fotográfica. Se ha desarrollado en el “Laboratorio

Oficial de Metroloxía de Galicia” (LOMG), con el objetivo de automatizar el proceso de

calibración de termómetros y termohigrómetros en el departamento de temperatura y

humedad.

Este trabajo enlaza con el proyecto Sistema de calibración automática de

termohigrómetros de Ángel Dacal Nieto, que se encarga de sincronización y toma de

fotografías, pero no de la interpretación. Esa será tarea de este proyecto, que mediante la

aplicación de técnicas de visión por computador, permite llevar a cabo la tarea de

calibración sin necesidad de ningún procesado posterior.

PALABRAS CLAVE

• Visión por computador

• Procesado de imagen

• Instrumentos de medida

• Lectura automática

• OCR

Page 8: Lectura Automática de Instrumentos de Medida Mediante Técnicas
Page 9: Lectura Automática de Instrumentos de Medida Mediante Técnicas

ÍNDICE

ÍNDICE

CAPÍTULO 1 INTRODUCCIÓN.............................................................................................................1

1.1. OBJETIVOS .....................................................................................................................................2 1.1.1. MOTIVACIÓN DEL PROYECTO ..........................................................................................2 1.1.2. OBJETIVOS CONCRETOS....................................................................................................3

1.2. PLAN DE TRABAJO .......................................................................................................................5 1.2.1. FASE PREVIA.........................................................................................................................5 1.2.2. PROTOTIPOS EN MATLAB..................................................................................................6 1.2.3. IMPLEMENTACIÓN Y PRUEBAS .......................................................................................7 1.2.4. IMPLANTACIÓN ....................................................................................................................7

1.3. MEDIOS MATERIALES .................................................................................................................8

CAPÍTULO 2 RESUMEN TEÓRICO .....................................................................................................9

2.1. VISIÓN POR COMPUTADOR......................................................................................................10 2.2. TIPOS DE IMÁGENES Y CARACTERÍSTICAS .........................................................................11 2.3. REPRESENTACIÓN DE IMÁGENES ..........................................................................................13 2.4. HERRAMIENTAS Y TÉCNICAS DE PREPROCESADO............................................................13

2.4.1. Tipos de operaciones ..............................................................................................................14 2.4.2. Histograma .............................................................................................................................14 2.4.3. Binarización ...........................................................................................................................16

2.4.3.1. Método de Otsu.............................................................................................................................. 17 2.4.4. Filtrado espacial.....................................................................................................................18 2.4.5. Transformaciones geométricas..............................................................................................20

2.5. SEGMENTACIÓN.........................................................................................................................21 2.5.1. Proyecciones...........................................................................................................................21

2.6. EXTRACCIÓN DE CARACTERÍSTICAS....................................................................................23 2.6.1. Momentos invariantes............................................................................................................23 2.6.2. Huecos y regiones conexas ....................................................................................................24 2.6.3. Generalidades.........................................................................................................................25

2.7. RECONOCIMIENTO Y DECISIÓN..............................................................................................26 2.7.1. Cálculo de distancias .............................................................................................................26 2.7.2. Sistemas 1-NN ........................................................................................................................27 2.7.3. Redes neuronales probabilísticas...........................................................................................29

CAPÍTULO 3 HERRAMIENTAS UTILIZADAS ................................................................................31

3.1. MATLAB.........................................................................................................................................32 3.2. EL LENGUAJE C++...........................................................................................................................34 3.3. VISUAL STUDIO PROFESSIONAL 2005..............................................................................................35 3.4. LA HERRAMIENTA CMAKE ..............................................................................................................36 3.5. LAS BIBLIOTECAS VXL ...................................................................................................................37

I

Page 10: Lectura Automática de Instrumentos de Medida Mediante Técnicas

ÍNDICE

CAPÍTULO 4 DESARROLLO ...............................................................................................................39

4.1. CAPTURA DE LA IMAGEN.........................................................................................................40 4.1.2. Proceso ...................................................................................................................................40

4.2. PREPROCESADO .........................................................................................................................43 4.2.1. CONVERSIÓN DE COLOR A ESCALA DE GRISES ........................................................43 4.2.2. BINARIZACIÓN ...................................................................................................................45

4.2.2.1. Método de detección de picos ....................................................................................................... 45 4.2.2.2. Método iterativo ............................................................................................................................ 48 4.2.2.3. Método adaptativo......................................................................................................................... 49 4.2.2.4. Solución adoptada ......................................................................................................................... 51 4.2.2.5. Calculo de la calidad del umbral.................................................................................................. 51

4.2.3. RECORTE GRUESO.............................................................................................................52 4.2.3.1. Primer paso: recorte horizontal ................................................................................................... 53 4.2.3.2. Segundo paso: recorte lateral ....................................................................................................... 55

4.2.4. CORRECIÓN DE LA INCLINACIÓN .................................................................................57 4.2.4.1. Cálculo del ángulo de inclinación................................................................................................. 57

4.3. SEGMENTACIÓN DE CARACTERES ........................................................................................59 4.3.1. Proyecciones mejoradas.........................................................................................................59 4.3.2. Procedimiento básico .............................................................................................................60 4.3.3. Técnicas complementarias.....................................................................................................61

4.4. RECONOCIMIENTO.....................................................................................................................64 4.4.1. EXTRACCIÓN DE CARACTERÍSTICAS ...........................................................................64

4.4.1.1. Escalado ......................................................................................................................................... 64 4.4.1.2. Proyecciones................................................................................................................................... 67 4.4.1.3. Medias proyecciones...................................................................................................................... 68 4.4.1.4. Gradientes de Kirsch..................................................................................................................... 69 4.4.1.4. Inspección visual: una técnica diferente ...................................................................................... 71 4.4.1.5. Técnicas probadas y descartadas ................................................................................................. 73

4.4.2. CLASIFICACIÓN .................................................................................................................75 4.5. CRITERIOS EXTERNOS ..............................................................................................................78

4.5.1. Información proporcionada...................................................................................................78 4.5.2. Información general ..............................................................................................................79

4.6. SELECCIÓN DE PATRONES .......................................................................................................80 4.7. INTEGRACIÓN DEL SISTEMA...................................................................................................82

CAPÍTULO 5 PRUEBAS Y RESULTADOS.........................................................................................85

5.1 PRUEBA DE SECUENCIAS ..........................................................................................................86 5.2. PRUEBAS SIMPLES .....................................................................................................................92 5.3. DETECCIÓN DEL PUNTO DECIMAL ........................................................................................95 5.4. PROBLEMÁTICA DE LAS TRANSICIONES..............................................................................97 5.5. CONSIDERACIONES FINALES ..................................................................................................97

II

Page 11: Lectura Automática de Instrumentos de Medida Mediante Técnicas

ÍNDICE

CAPÍTULO 6 CONCLUSIONES ...........................................................................................................99

CAPÍTULO 7 LÍNEAS FUTURAS ......................................................................................................103

APÉNDICE (A) GUÍA RÁPIDA DE OBTENCIÓN DE IMÁGENES..............................................109

APÉNDICE (B) INSTRUCCIONES DE COMPILACIÓN................................................................113

APÉNDICE (C) USO DE LA APLICACIÓN DE CAPTURA...........................................................117

BIBLIOGRAFÍA....................................................................................................................................123

III

Page 12: Lectura Automática de Instrumentos de Medida Mediante Técnicas

ÍNDICE

IV

Page 13: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 1: INTRODUCCIÓN

Capítulo 1

INTRODUCCIÓN

En este capítulo plantearemos las necesidades que se pretenden subsanar con el presente proyecto, tratando de explicar los objetivos que se persiguen. Para ello mantendremos siempre en el punto de mira el entorno para el que se requiere el sistema y en el que se va a implantar.

También trataremos de exponer brevemente las etapas que se han seguido para su realización, así como los medios utilizados para su desarrollo. Los detalles de las distintas fases serán explicados en capítulos posteriores.

1

Page 14: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 1: INTRODUCCIÓN

1.1. OBJETIVOS

1.1.1. MOTIVACIÓN DEL PROYECTO

El “Laboratorio Oficial de Metroloxía de Galicia” (en adelante LOMG) es un centro tecnológico situado en el “Parque Tecnolóxico de Galicia” (Ourense). Fue creado en 1997 por la “Consellería de Industria” de la “Xunta de Galicia” y depende actualmente de la “Fundación para o Fomento da Calidade industrial e o Desenvolvemento Tecnolóxico de Galicia”. Tiene en la actualidad 34 personas entre personal de plantilla, contratado y becarios.

Las áreas de actividad del LOMG son la metrología industrial, legal y el I+D:

- La metrología industrial trata sobre las mediciones en el área de la producción industrial y la calidad. Comprende procedimientos de calibración, intervalos de calibración, control de procesos de medición y gestión de instrumentos de medida en la industria para asegurar que están en estado de conformidad con los requisitos estipulados para su uso previsto. Cabe destacar que ésta es el área donde la experiencia del Laboratorio es más dilatada y la acreditan clientes como PSA-CITROEN, DALPHIMETAL, GENERAL DYNAMICS, FINSA, ENCE o PESCANOVA. Para dar el servicio adecuado a estas empresas, el LOMG dispone de cuatro laboratorios técnicos (temperatura y humedad, eléctrico, dimensional y mecánico), que están acreditados por la Entidad Nacional de Acreditación (ENAC) en 12 áreas.

- La metrología legal es la parte de la metrología que está sujeta a control reglamentario. Se define en el “Vocabulario Internacional de Metrología Legal” como la parte de la metrología relacionada con las actividades que son producto de requisitos estatutarios, y conciernen a las mediciones, a las unidades de medición, a los instrumentos de medida y a los métodos de medición, y que son realizadas por organismos competentes. El LOMG, si bien ya ha realizado algunas actividades en este ámbito, como la verificación de estaciones de ITV, sonómetros, contadores de agua, luz y gas, no será hasta el año 2008 cuanto se hagan extensivas a la mayor parte del parque de instrumentación.

- Las actividades de I+D, que se encuadran fundamentalmente dentro de la denominada metrología científica, tienen que ver con los problemas comunes a todos los interrogantes metrológicos, independientes de la cantidad de medida. Comprende los problemas generales teóricos y prácticos que conciernen a las unidades de medición, incluidas su realización y divulgación a través de métodos científicos, los problemas de errores e incertidumbres en la medición y los problemas de las propiedades metrológicas de los instrumentos de medida. Aquí el Laboratorio ha apostado recientemente por trabajar en dos grandes líneas como son las Tecnologías de Producción Industrial y las Micro-Nanotecnologías y los primeros resultados verán la luz próximamente.

El Departamento de Temperatura y Humedad del LOMG se encarga fundamentalmente de la calibración de todo tipo de termómetros y termohigrómetros, así como de la caracterización de medios isotermos. Los clientes más destacados son empresas del sector alimentario, aeronáutico y del automóvil.

2

Page 15: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 1: INTRODUCCIÓN

El proceso de calibración de la mayoría de estos equipos puede resumirse como sigue a continuación. Primero se generan las condiciones ambientales en el medio de calibración de acuerdo a los requisitos previos del cliente. A continuación, se compara la temperatura del calibrando, equipo que el cliente envía a calibrar, con las del patrón existente en el LOMG para esa magnitud, que tiene a su vez trazabilidad a una referencia nacional, típicamente Centro Español de Metrología (CEM), INTA (Instituto Nacional de Técnica Aeroespacial) o Taller de Precisión y Centro Electrotécnico de Artillería (TPYCEA). De la citada comparación, se obtiene la corrección e incertidumbre del calibrando.

El proceso de calibración mencionado arriba lleva consigo típicamente una captura de datos del calibrando, la introducción de la consigna del equipo y la realización del informe de calibración, que se hace de forma manual y provoca una ralentización del proceso y, en definitiva, una pérdida de eficiencia del Laboratorio.

Actualmente, se ha iniciado la automatización del proceso mediante la realización de un proyecto previo de Ingeniería Informática que sincroniza los baños, hornos y cámaras climáticas, con los patrones (conexión RS-232 o GPIB) y la toma de fotografías de los displays de los calibrandos. Esta técnica, si bien alivia bastante el trabajo del técnico y permite el funcionamiento sin su presencia, todavía exige un procesado manual posterior para que el técnico interprete las fotografías y anote los resultados de las mediciones.

1.1.2. OBJETIVOS CONCRETOS

El objetivo principal es diseñar, implementar y comprobar un sistema que realice automáticamente la lectura de displays de instrumentos a partir de la imagen de su pantalla e integrar el sistema en el flujo de trabajo en el laboratorio. Con la realización de este proyecto se propone la aplicación de técnicas de visión por computador para llevar a cabo la tarea de calibración de forma completamente automática, sin necesidad de un procesado posterior. Se pretende por tanto, la creación de un sistema de visión artificial capaz de reducir el trabajo monótono y poco especializado del técnico evitando la labor de anotación de las diferentes medidas.

Las pantallas a interpretar son numéricas, en las que se indica temperatura o humedad con diferentes niveles de precisión. La mayor complicación a la hora de llevar a cabo la interpretación de estos dispositivos es la existencia de un gran número de formatos diferentes de sus pantallas y fuentes numéricas.

En primer lugar trataremos con displays de 7 segmentos que, a priori, pueden parecer los más sencillos, pero en cuanto vamos viendo ejemplos de sus formatos nos encontramos con caracteres rectos y en cursiva, con diferentes grosores e inclinaciones, separación entre caracteres e incluso diferentes convenios a la hora de representar una misma cifra con un display de 7 segmentos como podemos apreciar en la figura 1.1.

3

Page 16: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 1: INTRODUCCIÓN

Podemos apreciar la diferente forma de representar en este caso la cifra 7, así como un formato inclinado.

Figura 1.1

También hay aparatos con pantallas gráficas que presentan formatos numéricos más complejos como los mostrados en la figura 1.2.

Figura 1.2

Finalmente, no podemos perder de vista que los dispositivos a calibrar son instrumentos de medida que están siendo utilizados en entornos industriales, muchas veces hostiles. Por este motivo, también es frecuente la aparición de pantallas deterioradas por manchas, plásticos protectores, ralladuras y demás elementos que dificultan la lectura de los instrumentos. Un ejemplo de ello se muestra en a figura 1.3.

Las burbujas de aire del plástico protector

producen manchas en la pantalla. La pantalla está sucia y rayada.

El plástico protector produce rayas y sombras El plástico protector está parcialmente despegado

en la parte inferior.

Figura 1.3

4

Page 17: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 1: INTRODUCCIÓN

Una gran complicación añadida a este sistema es, por tanto, el no saber el tipo de formato que va a presentar la pantalla que va a tener que interpretar. El resultado final será una aplicación que reciba una imagen y que devuelva el valor interpretado a la aplicación de la que ya disponemos.

1.2. PLAN DE TRABAJO

1.2.1. FASE PREVIA

Partimos del estudio de trabajos anteriores de reconocimiento de caracteres así como de las diferentes técnicas empleadas y que puedan ser de utilidad en el presente proyecto. Dada la amplitud y diversidad del campo de la visión por computador y el reconocimiento de caracteres, hemos seleccionado los métodos, de entre los existentes, que mejor se ajustan al problema planteado y hemos propuesto otros propios en los casos necesarios. Respecto a esto cabe destacar que no estamos ante un proyecto meramente teórico, sino que tenemos que proporcionar un sistema plenamente funcional y que se integre en el entorno de las necesidades de una empresa. Por esta razón, tras probar en muchos casos técnicas generales en el campo de la visión artificial, se han tenido que adoptar soluciones concretas diseñadas a la medida de los problemas que presenta este proyecto, de forma que se pueda garantizar una utilidad real y una integración exitosa en la dinámica de trabajo del LOMG.

También era tarea de esta fase inicial el análisis del proyecto del que el presente es continuación para poder integrarlos, así como el estudio del entorno de trabajo utilizado. Prescindiremos de la parte de sincronización y comunicación con las distintas cámaras climáticas1 del proyecto de partida para centrarnos en la parte que realmente nos interesa, que es la obtención de las imágenes. En este aspecto, el programa desarrollado proporciona al técnico una ventana en la que le permite ajustar y comprobar parámetros de la cámara (enfoque, iluminación, etc.) hasta que la imagen sea de la calidad deseada. Posteriormente, se le pide que seleccione con un recuadro la zona de interés, que será la imagen que nuestro sistema analizará. En el apéndice (C) se comentarán los detalles de este proceso.

1 Una cámara climática es un dispositivo compuesto por un recinto en el que se generan condiciones de temperatura y humedad relativa por medio del calentamiento/enfriamiento del aire y la adición/eliminación de vapor de agua.

5

Page 18: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 1: INTRODUCCIÓN

Figura 1.4

Tras el estudio teórico previo, ha sido necesario analizar la realidad del trabajo en el laboratorio. Al ser este un proyecto realizado bajo demanda de un centro tecnológico como es el LOMG, será necesario un proceso de entrevistas y observación para detectar detalles y necesidades del entorno en el que finalmente estará funcionando el sistema. Aspectos de relevancia son la distribución física de la cámara fotográfica y elementos de iluminación, de forma que se puedan eliminar posibles sombras y carencias en la obtención de las imágenes interfiriendo lo menos posible en el trabajo del personal del laboratorio.

1.2.2. PROTOTIPOS EN MATLAB

Posteriormente, se ha trabajado con la herramienta Matlab en la realización y prueba de prototipos. Para ello se han tomado una serie de muestras de las imágenes de los distintos dispositivos a interpretar. La elección de Matlab se debe a las ventajas y facilidades que proporciona en el procesado de imagen. De esta forma y como se ha dicho anteriormente, se ha podido evaluar la idoneidad de los distintos métodos y procesados efectuados, seleccionar los que mejor se ajustaban y modificarlos hasta obtener los resultados deseados. En el apartado dedicado a la descripción de las herramientas utilizadas (Capítulo 3) hablaremos más en detalle de Matlab.

6

Page 19: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 1: INTRODUCCIÓN

1.2.3. IMPLEMENTACIÓN Y PRUEBAS

Una vez comprobado el correcto funcionamiento de las soluciones adoptadas en Matlab, se ha dado paso a su implementación definitiva. Dado que en el LOMG se trabaja con hojas Excel para los informes de calibración, el proyecto previo ha sido realizado en lenguaje Visual C++, dentro del entorno de desarrollo Microsoft Visual Studio Professional 2005 para lograr la necesaria integración. Tanto el lenguaje C++ (por su potencial para el procesado de imagen) como el entorno de trabajo (para asegurar la compatibilidad) han sido empleados también en el presente proyecto.

En un principio, se planteó como posibilidad la utilización de bibliotecas externas. La decisión de su uso o no iría en función de la adecuación de las funciones proporcionadas a las necesidades y del grado de dependencia de estas, pudiendo ser preferible el uso de funciones propias de no suponer un esfuerzo excesivo su implementación. Finalmente, considerando los puntos a favor y en contra, se ha decidido utilizar la biblioteca VXL (ver capítulo 3). Aunque supone un mayor tiempo de estudio y de adaptación inicial, presenta numerosos beneficios, ya no solo a la hora de la implementación, sino para futuras ampliaciones y modificaciones.

Para la realización de las pruebas se ha realizado un archivo de imágenes de los dispositivos que han ido entrando en el laboratorio durante el periodo de realización del proyecto. Con estas imágenes se ha elaborado una batería de pruebas que se explicará en detalle en el capítulo 5. Esto permitirá evaluar la tasa de aciertos y la fiabilidad del sistema.

1.2.4. IMPLANTACIÓN

Finalmente, se ha procedido a la implantación del sistema en el entorno de trabajo del laboratorio. Para ello, es necesario dar las instrucciones precisas al personal que vaya a utilizar la herramienta. Dentro de esto, se incluye cómo utilizar el software, cómo ajustar los parámetros de la cámara y su disposición espacial, cómo obtener unas imágenes óptimas que permitan una correcta interpretación, etc. Es importante que la información proporcionada sea la adecuada, sin entrar en detalles superfluos que no sean necesarios para el correcto aprovechamiento de la utilidad de la herramienta.

Una vez puesto en marcha el sistema, es necesario evaluar el grado de ajuste a la dinámica de trabajo real del centro. Puede ser necesario, tras un periodo inicial de prueba del sistema por los usuarios finales (técnicos de laboratorio del LOMG), realizar algún tipo de ajuste o pequeña modificación que no haya sido detectada en las entrevistas iniciales y que les facilite el trabajo con el sistema. En este aspecto habrá dos tipos de modificaciones. Por un lado, las que no hayan sido detectadas en el periodo de prueba y sea necesario corregir para proporcionar un correcto funcionamiento del sistema. Y, por otra parte, las apreciaciones de uso y funcionalidades, que podrán ser propuestas como futuras modificaciones y ampliaciones del presente proyecto.

7

Page 20: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 1: INTRODUCCIÓN

1.3. MEDIOS MATERIALES

Para la realización del proyecto se ha utilizado una serie de medios, tanto

hardware como software que son listados a continuación. En sucesivos capítulos (Herramientas utilizadas y Desarrollo) serán analizados en detalle.

- Matlab 7R14 con toolboxes de imagen y procesado de señal. - Microsoft Visual Studio Professional 2005. - Librerias VXL. - Herramienta CMake. - Procesador de textos para la documentación (Office 2003). - PC con todo el software anterior instalado. - Cámara digital C-Cam BCi4 con lentes de 25 y 75 mm. - Dispositivos de medida (termómetros, etc.). - Impresora.

8

Page 21: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Capítulo 2

RESUMEN TEÓRICO

En este capitulo se introducirán los conceptos teóricos necesarios para la correcta compresión del desarrollo del proyecto. Se tratarán los procedimientos y técnicas más comunes en el campo del procesado de imagen y la visión por computador que presenten relación con el trabajo realizado en el proyecto. La forma de adaptar esos métodos o diseñar otros nuevos a partir de ellos se dejará para el capítulo dedicado al desarrollo.

El objetivo no es dar una explicación exhaustiva de los conceptos introducidos, sino servir como guión al lector del proyecto y facilitar su comprensión. Para una explicación en profundidad de cualquiera de los temas tratados re recomienda recurrir a la bibliografía listada en la parte final de esta documentación.

9

Page 22: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

2.1. VISIÓN POR COMPUTADOR

La visión por computador o visión artificial puede definirse como el proceso de extracción de información del mundo físico a partir de imágenes, utilizando para ello un computador. Es la capacidad de la máquina para ver el mundo que la rodea. Desde el punto de vista de la ingeniería, nos referimos a un sistema autónomo que realiza algunas de las tareas que el sistema de visión humano realiza. La información o tareas que este sistema de visión pueda llegar a extraer o localizar van desde la simple detección de objetos sencillos en la imagen hasta la interpretación tridimensional de complicadas escenas.

La visión por computador es una disciplina en creciente auge y continuo interés por la cantidad de aplicaciones con un inminente potencial de implantación tales como: robótica, medición, reconocimiento de objetos, procesos de inspección automática, navegación de vehículos, análisis de imágenes medicas, etc.

El campo de la visión artificial está íntimamente ligado al procesado de imágenes digitales, que proporciona las herramientas necesarias para el desarrollo del primero. Por esta razón son dos disciplinas que frecuentemente se entrelazan y complementan en la bibliografía. Las nuevas necesidades de las aplicaciones de visión artificial potencian el desarrollo de nuevas técnicas en procesado de imagen y viceversa, nuevos métodos de procesado de imagen facilitan la aparición de nuevas aplicaciones de visión por computador.

Ambas disciplinas giran, por tanto, en torno a un elemento común: la imagen digital, que será protagonista de los siguientes apartados desarrollados. El proceso típico de un sistema de visión artificial se muestra en la figura 2.1. Las partes de este proceso serán utilizadas en el presente capítulo para explicar sus fundamentos teóricos.

Figura 2.1

10

Page 23: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

2.2. TIPOS DE IMÁGENES Y CARACTERÍSTICAS

En el ámbito digital, al igual que en la fotografía impresa tradicional, nos encontramos con diferentes tipos de imágenes. La primera y más sencilla clasificación que podemos adoptar consiste en distinguir entre imágenes en color e imágenes en escala de grises.

Independientemente de si nos encontramos ante imágenes de un tipo u otro, hay dos características comunes que determinarán su calidad:

• Resolución espacial: Viene determinada por el número de puntos (píxeles) por unidad de superficie. Cuanto mayor sea esta relación, más nivel de detalle presentará la imagen y, por consiguiente, mayor será su calidad.

• Resolución en amplitud o profundidad de bits: Hace referencia al número de bits

empleados para representar cada uno de los puntos de la imagen. Cuanto mayor sea, más niveles distintos se podrán tener y, por tanto, mayor resolución en amplitud.

En las imágenes en color, el sistema más utilizado y el que adoptaremos en el presente proyecto es el RGB (Red-Green-Blue). En este, cada punto de la imagen (píxel) viene determinado por tres valores que indican el porcentaje de rojo, verde y azul. En la sección dedicada al desarrollo del proyecto explicaremos la decisión de pesos adoptada para la conversión entre imágenes en color RGB e imágenes en escala de grises.

Las imágenes en escala de grises utilizan un único valor para la representación de cada punto, que se corresponde con la intensidad. Dependiendo del número de bits que empleemos para almacenar el valor de intensidad de cada píxel, tendremos diferentes niveles de escala de grises, lo que se conoce como profundidad de la imagen. La más frecuentemente utilizada es la que asigna un byte a cada píxel, con lo que tenemos 256 niveles de gris, en los que el nivel más bajo (0) se corresponde con el negro y el nivel más alto (255) con el blanco.

Si reducimos en número de niveles de gris a dos, tenemos una imagen binaria, en la que el 1 o nivel alto representa el blanco y el 0 o nivel bajo representa el negro.

En la figura 2.2 se muestra un ejemplo de los distintos tipos de imagen. Cabe destacar la escasa diferencia que podemos apreciar a simple vista entre la imagen con 256 niveles de gris y la imagen con 64 niveles de gris. Esto se debe a que el ojo humano1 no es capaz de diferenciar entre más de 50 o 60 niveles de gris. Sin embargo, es mucho más sensible a los cambios de color (cambios de tinte), como puede ser el paso de un tono de rojo a uno de verde.

1 Cuando hablamos del ojo humano nos referimos al ojo medio. Todos tenemos el típico amigo “experto observador” capaz de distinguir los 256 niveles y de ver en el dominio de la frecuencia si es necesario.

11

Page 24: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Imagen original en color Imagen con 256 niveles de gris

Imagen con 64 niveles de gris Imagen con 16 niveles de gris

Imagen con 4 niveles de gris Imagen con 2 niveles de gris

Figura 2.2

12

Page 25: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

2.3. REPRESENTACIÓN DE IMÁGENES

La forma mas sencilla de trabajar con imágenes digitales es verlas como una función de dos dimensiones f(x,y), donde x e y indican las coordenadas espaciales, y el valor de la función en el punto (x,y) es proporcional al brillo (nivel de gris o intensidad) de la imagen en ese punto. En el caso de imágenes en color RGB, a los planos x e y añadimos un tercer plano z que puede tomar 3 valores: el del rojo, el del azul o el del verde.

Por convenio, a lo largo de todo este proyecto trabajaremos con los ejes mostrados en la figura 2.3.

Figura 2.3

2.4. HERRAMIENTAS Y TÉCNICAS DE PREPROCESADO

Entendemos el procesado de una imagen como una transformación de una imagen de entrada en otra imagen de salida. Desde el punto de vista de un sistema de visión artificial, el objetivo de este procesado es facilitar el análisis posterior y hacerlo más fiable. El prefijo “pre” viene precisamente de que ese procesado se realiza en la imagen antes de pasar a analizarla para extraer información. Dentro de este ámbito caben transformaciones en la intensidad de los píxeles para mejorar el contraste, operaciones de filtrado para eliminar ruido o incluso transformaciones geométricas

13

Page 26: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

sobre la totalidad de la imagen. A continuación, explicaremos las herramientas y técnicas más habituales.

2.4.1. Tipos de operaciones

A la hora de realizar operaciones sobre una imagen podemos actuar de dos formas:

1. Operaciones individuales: La transformación realizada en cada píxel es función únicamente de su propio valor. Un ejemplo de operación individual es la binarización.

2. Operaciones de vecindad: El valor de cada píxel tras la transformación

dependerá de los valores de los píxeles de su vecindad. El tamaño de esta puede variar, siendo frecuente el uso de vecindades de 3x3 o 5x5 puntos. Un ejemplo de operación de vecindad es el filtrado.

Figura 2.4

2.4.2. Histograma

El histograma de una imagen es una herramienta visual de gran utilidad para el estudio de imágenes digitales. Con una simple observación podemos obtener información del contraste o distribución de intensidades.

El histograma de una imagen digital con L niveles de gris en el rango [0, L-1] es una función discreta de la forma:

kk nrh =)(

rk es el k-ésimo nivel de gris.

nk es el número de píxeles en la imagen con el nivel de gris rk.

k = 0, 1, 2, ..., L-1 niveles de gris.

14

Page 27: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Normalmente el histograma se normaliza, de forma que sus valores estén comprendidos entre 0 y 1. De esta forma quedaría:

Nn

rh kk =)(

N puede tomar diferentes valores. Lo más frecuente es asignarle el número total de píxeles de la imagen. De esta forma, podemos interpretar los como probabilidades. Sin embargo, esto da como resultado valores del histograma próximos al 0 y no aprovechar todo el rango [0,1]. Un método que soluciona este problema y que ha sido adoptado en el presente proyecto es asignar a N el valor del máximo número de píxeles que tienen el mismo nivel de intensidad.

)( krh

N = max(nk)

En la figura 2.5 podemos ver un ejemplo de histograma.

Figura 2.5

Es fácil ver las numerosas posibilidades que ofrece el realizar operaciones sobre el histograma para el ámbito del preprocesado. Estas suelen ser operaciones individuales a nivel de cada punto de la imagen que inciden directamente sobre su intensidad. La más destacada quizá sea la ecualización de histograma, mediante la cual conseguimos aumentar el contraste de la imagen. Para una información detallada de cada una de estas operaciones se recomienda consultar la bibliografía. En la presente

15

Page 28: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

documentación nos limitaremos a explicar las operaciones realizadas a lo largo del desarrollo del proyecto.

2.4.3. Binarización

En muchos sistemas de visión por computador (entre ellos el que nos ocupa) resulta imprescindible binarizar la imagen con la que se está trabajando para poder extraer información. Este proceso consiste en pasar la imagen en escala de grises con n niveles a una imagen de las mismas dimensiones, pero con solo dos niveles, blanco y negro.

Un paso decisivo en este proceso es el cálculo del umbral de decisión. Este umbral actuará como un filtro escalón, de forma que los puntos con intensidad superior serán blancos y los de intensidad inferior resultarán negros.

Es una operación individual que realiza para cada píxel la siguiente transformación:

⎭⎬⎫

⎩⎨⎧

≤>

=umbralyxfnegroumbralyxfblanco

yxg),(,),(,

),( , siendo f(x,y) el valor que toma el píxel en

la imagen de entrada.

El objetivo es conseguir que los píxeles de color blanco se correspondan con los objetos de interés y los de color negro con el entorno. Para lograr esto en el caso en que las regiones de interés sean más oscuras que el entorno, frecuentemente se realiza una operación de inversión tras la binarización.

Imagen en color Imagen en escala de grises

Figura 2.6 a

16

Page 29: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Imagen binarizada Imagen invertida

Figura 2.6 b

El paso más importante de este proceso es el cálculo del umbral, paro lo que existen diferentes métodos que no son, ni mucho menos, triviales. La mayoría de las técnicas se basan en estadísticos aplicados sobre el histograma. Uno de los más ampliamente utilizados y comentados en la bibliografía es el método de Otsu [Otsu].

La explicación detallada de los empleados en este trabajo puede verse en el capítulo 4, dedicado al desarrollo del proyecto.

2.4.3.1. Método de Otsu

La mayoría de los métodos para hallar el umbral no dan buenos resultados cuando se trabaja con imágenes del mundo real debido a la presencia de ruido, histogramas planos o una iluminación inadecuada. Por el contrario, el método de Otsu es considerado uno de los mejores métodos de selección de umbral para imágenes del mundo real.

El método de Otsu elige el umbral óptimo maximizando la varianza entre clases mediante una búsqueda exhaustiva en el histograma de la imagen en escala de grises. Para ello necesitamos calcular los siguientes parámetros.

Media global de los niveles de gris, ∑= )(llpµ

Varianza global de los niveles de gris, ∑ −= )()( 22 lpl µσ

Luego tomamos un umbral U, para dividir la imagen en los píxeles que están por encima y por debajo. Para cada uno de las distribuciones parciales calculamos la media y la varianza.

17

Page 30: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

∑−

=1

0 11

)(U

wllpµ ; ∑

+

=255

1 22

)(U w

llpµ

∑− −

=1

0 1

212

1)()(U

wlpl µ

σ ; ∑+

−=

255

1 2

222

2)()(

U wlpl µ

σ

donde:

∑−

=1

0)(1

U

lpw ; ∑+

=255

1)(2

Ulpw

Así, se define la varianza conjunta como:

222

211

2 σσϑ ww += ;

La medida de la calidad del umbral resulta ser

22 ϑσ −=C ,

En donde C valdría para el caso ideal en que hubiera solamente dos niveles de gris. La forma de calcular el umbral U consiste en calcular de forma iterativa la calidad de todos los posibles umbrales y tomar el U que produzca una mayor C.

En el capítulo dedicado al desarrollo se explicará un método iterativo basado en el método de Otsu, pero simplificado y adecuado al caso que nos ocupa.

2.4.4. Filtrado espacial

El filtrado espacial de imágenes digitales resulta ser una operación de convolución entre las funciones bidimensionales imagen, f, y un núcleo que llamaremos h. No es el objetivo de esta documentación explicar las operaciones de convolución, para lo que nos remitimos de nuevo a la bibliografía recomendada [Gonzalez & Woods][J. González]. Nos centraremos en los aspectos esenciales para la comprensión del proceso de filtrado.

El filtrado espacial es una operación que transforma el valor de un píxel p en la posición (x,y) teniendo en cuenta los valores de los píxeles vecinos. Para ello se realiza una suma ponderada de los valores de los puntos de la vecindad del punto p. Los valores

18

Page 31: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

de esa ponderación vendrán definidos por una máscara (h), que se comporta realmente como un filtro. El tamaño de la máscara puede variar dependiendo del número de píxeles que queramos tener en cuenta para el filtrado, siendo valores típicos 3x3 o 5x5. De esta forma tenemos que:

∑∑ −−=m n

o nymxfnmhyxf ),(),(),(

Por ejemplo, para realizar el promediado de los píxeles de la vecindad utilizaríamos una máscara de la forma:

⎥⎥⎥⎥⎥⎥

⎢⎢⎢⎢⎢⎢

=

91

91

91

91

91

91

91

91

91

h

Dando como resultado

)1,1(91)1,(

91)1,1(

91

),1(91),(

91),1(

91

)1,1(91)1,(

91)1,1(

91),(0

++++++−

++++−

+−++−+−−=

yxfyxfyxf

yxfyxfyxf

yxfyxfyxfyxf

A la hora de aplicar la máscara a toda la imagen hay que tener en cuenta lo que sucede en los bordes. Estos no disponen de toda la vecindad, por lo que no se les puede aplicar la misma operación. Distintas soluciones pueden ser permitir una imagen de salida de menores dimensiones que la imagen de entrada o, si queremos mantener el tamaño, duplicar los píxeles de los bordes de la imagen de entrada en la imagen de salida.

19

Page 32: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

La máscara se desplaza a lo largo de toda la imagen para realizar el filtrado en cada punto.

Figura 2.7

2.4.5. Transformaciones geométricas

Las operaciones geométricas son transformaciones que modifican las coordenadas espaciales de la imagen. El resultado es similar a lo que ocurriría si la imagen se observase desde otro punto de vista. En el presente proyecto se hace uso de transformaciones geométricas como son la interpolación, el diezmado o el giro. Este tipo de operaciones no presentan en general una elevada dificultad en su comprensión, dado que resultan bastante visuales e intuitivas. Por esta razón limitaremos la explicación de la mayor parte de ellas a las situaciones concretas que se presenten en el capítulo dedicado al desarrollo.

20

Page 33: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

2.5. SEGMENTACIÓN

La segmentación es el proceso mediante el cual se separan las zonas de la imagen que presentan interés y de las cuales posteriormente se podrán extraer características. En cierta medida, el proceso de binarización explicado en el apartado anterior es también un procedimiento de segmentación, en el sentido de que consigue separar las zonas de interés (en blanco) de su entrono (en negro). Sin embargo, en el sistema presentado en este proyecto, su función está mejor integrada como parte del preprocesado realizado para adecuar la imagen al verdadero proceso de segmentación que centraremos en el recorte de las cifras a interpretar. Por esta razón, en esta sección nos limitaremos a explicar las técnicas más frecuentes empleadas en la segmentación de caracteres.

2.5.1. Proyecciones

En el caso que nos ocupa y en la mayoría de situaciones en las que se necesita reconocer caracteres, un método ampliamente utilizado es el de las proyecciones. Este consiste en calcular los vectores suma de columnas (proyección horizontal) y suma de las filas (proyección vertical) de la matriz imagen. Así, como podemos apreciar en la figura 2.8, resulta sencillo separar los caracteres a partir de los mínimos y máximos presentados.

Imagen con caracteres para segmentar.

Proyección vertical:

Resulta fácil diferenciar las dos líneas de texto, con lo que podremos separarlas sin mayor problema.

Figura 2.8ª

21

Page 34: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Trozo de detalle de una de las líneas.

Proyección horizontal:

Ahora las divisiones entre caracteres no son tan claras como lo eren entre líneas, pero se puede apreciar la sucesión de mínimos y máximos marcada por los caracteres y su espacio intermedio.

Figura 2.8b

La técnica de las proyecciones se utilizará como base sobre la que hacer modificaciones y mejoras para llevara a cabo la segmentación de los caracteres a interpretar por el sistema descrito en esta documentación. Su descripción se muestra en el capítulo dedicado al desarrollo.

22

Page 35: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

2.6. EXTRACCIÓN DE CARACTERÍSTICAS

Para poder reconocer un objeto u obtener la información buscada en la imagen es necesario extraer unas características que permitan describirlo matemáticamente. Para ello, lo más habitual es formar un vector de características con aquellas propiedades que resulten más relevantes para nuestro objetivo. Es importante que estos descriptores sean precisos, presenten un elevado poder de discriminación y, dependiendo de la aplicación, puede ser deseable o no que permanezcan invariantes ante escalado, puntos de vista, etc.

A continuación describiremos de forma breve algunos de los métodos utilizados en la extracción de características para reconocimiento de caracteres.

2.6.1. Momentos invariantes

Son descriptores de regiones que se mantienen invariantes a operaciones geométricas de de traslación, rotación o cambio de escala. Por esta razón son un tipo de características ampliamente utilizado en el reconocimiento de caracteres [G. Pajares]. Sus fundamentos son los siguientes:

El momento bidimensional de orden (p + q) de una imagen digital f(x, y) de dimensiones M x N se define como:

∑∑−

=

=

=1

0

1

0

),(M

x

N

y

qppq yxfyxm

El momento central de orden (p + q) se define como:

∑∑−

=

=

−−=1

0

1

0

),()()(M

x

N

y

qppq yxfyyxxµ

siendo

00

10

mm

x = ; 00

01

mm

y =

Los momentos centrales normalizados se definen como:

γµµ

η00

pqpq =

siendo

12

++

=qpγ , con p+q = 2, 3,…

23

Page 36: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Finalmente, de los momentos segundo y tercero podemos obtener los siete momentos invariantes (ante cambios de escala, traslación, rotación o simetría) siguientes:

02201 ηηφ +=

211

202202 )(4)( ηηηφ +−=

20321

212303 )3()3( ηηηηφ −+−=

20321

212304 )()( ηηηηφ +++=

[ ][ ]2

03212

123003210321

20321

21230123012305

)()(3))(3(

)(3)())(3(

ηηηηηηηη

ηηηηηηηηφ

+−++−+

+−++−=

[ ]))((4

)()()(

0321123011

20321

2120302206

ηηηηηηηηηηηφ

++++−+−=

( )( ) ( ) ( )[ ]( )( ) ( ) ( )[ ]2

03212

123003213012

20321

21230123003217

33

33

ηηηηηηηη

ηηηηηηηηφ

+−++−+

+−++−=

De la invarianza viene su potencia para el reconocimiento. Sin embargo, en el presente proyecto ésta resultó ser un problema como veremos más adelante (capítulo 4).

2.6.2. Huecos y regiones conexas

Resulta bastante intuitivo que el número de huecos puede utilizarse como una característica que nos permita diferenciar entre grupos de caracteres (normalmente con 2, 1 o 0 huecos). Además esta es una característica que no depende del tamaño o de la inclinación.

Otra propiedad relacionada es el número de regiones conexas. Entendemos por región conexas a un conjunto de píxeles blancos (no podemos olvidar que en esta fase estamos trabajando con imágenes binarias) de forma que el camino entre dos puntos cualquiera no necesita pasar por ningún píxel negro. Debemos diferenciar entre conectividad a 4 y conectividad a 8. En la figura 2.9 se ilustran estos conceptos

24

Page 37: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Vecindad a 4 del punto (i, j) Vecindad a 8 del punto (i, j)

• Empleando conectividad a 8 las casillas a 1 formarían una sola región conexa. • Empleando conectividad a 4 las casillas a 1 formarían dos regiones conexas independientes.

Figura 2.9

Una forma de relacionar estas dos características es el número de Euler, que se define como la diferencia entre el número de regiones conexas y el número de huecos.

6 8 Número de Euler = 0 Número de Euler = -1

Figura 2.10

2.6.3. Generalidades

Muchos métodos de extracción de características son fuertemente dependientes de las dimensiones de la imagen. Entre ellos están algunos de los utilizados en la implementación de este proyecto como son las proyecciones o las componentes direccionales de Kirsh, cuya explicación dejaremos para el capítulo de desarrollo.

25

Page 38: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Los vectores de características obtenidos mediante estos procedimientos tienen una longitud proporcional a las dimensiones de la imagen de entrada. Tenemos por tanto, por un lado la necesidad de trabajar con vectores de características de longitud constante y por otro, la necesidad de permitir múltiples tamaños en las imágenes a interpretar. Para poder mantener constante la dimensión de los vectores será necesario realizar operaciones de cambio de escala sobre las imágenes segmentadas, generalmente un diezmado.

Mediante el diezmado adaptamos los recortes de los caracteres sobre los que vamos a extraer características a un tamaño menor con el que trabajar para obtener vectores de tamaño constante (aunque suficiente). El procedimiento de diezmado empleado se explicará con detalle en el capítulo de desarrollo.

2.7. RECONOCIMIENTO Y DECISIÓN

Una vez que tenemos los caracteres de entrada caracterizados por unos vectores de características, tendremos que decidir con que objeto se corresponden. Para ello, normalmente dispondremos de una serie de patrones con los que, de una forma u otra, tendremos que comparar. Para llevar a cabo esta comparación y clasificación será necesario normalmente el cálculo de distancias, por lo que empezaremos explicando los conceptos necesarios a este efecto.

2.7.1. Cálculo de distancias

Supongamos tres puntos a, b y c. Para que d sea una función distancia deberá cumplir:

0),( ≥bad , ( babad =⇔= 0),( );

),(),( abdbad = ;

),(),(),( cbdbadcad +≤

En base a estas tres propiedades y siendo n el número de componentes de los vectores a y b, podemos definir distintos tipos de distancia entre las que tenemos:

Distancia Euclídea (norma 2):

2222

211 )(...)()(),( nne babababad −++−+−=

o lo que es lo mismo (empleando notación de vectores),

( ) ( )bababad Te −−=),(

26

Page 39: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Distancia rectangular o Manhatan (norma 1):

( ) ∑=

−=n

iii babad

1

,

Distancia de Tchebichev:

),...,,max(),( 2211 nnT babababad −−−=

Distancia de Mahalanobis:

( ) ( )baCbabad Te −−= −1),(

siendo la matriz de covarianzas. 1−C

2.7.2. Sistemas 1-NN

El 1-NN es un clasificador de mínima distancia. La idea de este tipo de clasificadores es calcular las distancias del vector de características de entrada a los distintos vectores de características de los patrones disponibles y seleccionar aquel que esté más próximo como valor de salida.

Existen dos posibilidades a la hora de seleccionar los patrones con que comparar:

Podemos tener varios patrones para una misma clase y calcular el vector de características de la clase como la media de los vectores (o centroide) de cada patrón individual. Este sistema solo funciona bien cuando los patrones de una misma clase forman nubes poco dispersas entre si y bien separadas con las nubes de las otras clases.

27

Page 40: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Figura 2.11

Si no se da la condición del párrafo anterior tendremos que considerar cada patrón como una clase individual y diferenciada. En este caso estaremos ante un clasificador 1-NN. Un ejemplo de esta situación es el que se da en el presente proyecto. El espectro de tipos de fuente de entrada es muy amplio, recorriendo desde caracteres de siete segmentos hasta complejas fuentes propias de un editor de texto. En este caso es frecuente que una cifra presente más similitudes (menor distancia) con otra cifra que con la misma en otros formatos.

Figura 2.12

28

Page 41: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Para el cálculo de la distancia podemos emplear cualquiera de las explicadas en el apartado anterior. Lo más lógico es utilizar la distancia Euclídea, sin embargo, al ser las componentes de todos los vectores siempre positivas el resultado de la decisión va a ser el mismo utilizando la distancia rectangular, que es computacionalmente más sencilla.

2.7.3. Redes neuronales probabilísticas

El PNN (Probabilistic Neural Network) es un método de clasificación basado en la teoría de la decisión de Bayes. Se enfocará, por tanto, el problema de la decisión desde un punto de vista probabilístico.

Pese a recibir el nombre de red neuronal, el PNN es un clasificador que no precisa de entrenamiento previo a su funcionamiento. Por el contrario, necesita recorrer todo el conjunto de entrenamiento para hacer cálculos cada vez que se ejecuta y requiere una elevada cantidad de memoria para almacenarlo, por lo que el resultado es un clasificador lento. Sin embargo, debe ser tenido en cuenta dado que sus resultados suelen ser muy buenos en el reconocimiento de caracteres [Gonzalez & Woods].

Supongamos que tenemos un vector de características x y un conjunto de clases en las que clasificar. El método se basa en el cálculo de las probabilidades a

posteriori , es decir, para una observación dada x la probabilidad de que pertenezca a la clase . Según la regla de Bayes

ic)/( xicp

ic

)(),(

)/(x

xx

pcp

cp ii =

o lo que es lo mismo

)()()/(

)/(x

xx

pcpcp

cp iii =

Podemos apreciar que minimizar el riesgo de error a la hora de asignar el vector de características de entrada x a la clase es lo mismo que maximizar , por lo que la regla de decisión a tomar sería la siguiente:

ic )/( xicp

jicpcpc jii ≠∀>⇔∈ )/()/( xxx

Teniendo en cuenta que es constante respecto a (no resulta discriminante) y utilizando el término de la derecha en la regla de Bayes, obtenemos

)(xp ic

jicpcpcpcpc jjiii ≠∀>⇔∈ )()/()()/( xxx

29

Page 42: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 2: RESUMEN TEÓRICO

Podemos utilizar sin más como función de decisión (a maximizar)

)()/()( iii cpcpD xx =

Generalmente las distribuciones de densidad de probabilidad se eligen Gaussianas, con lo que queda la fórmula

)()2(

1)()()(

21

2/12/

1

i

m

ini cpeD ii

Ti

⎟⎟

⎜⎜

⎛=

−−− − xCmx

Cx

π

donde n es la dimensión de los vectores de características, es el vector de características con la media de los patrones de la clase , es la matriz de covarianzas y

im

ic iC

iC es su determinante.

∑∈

=ici

i M x

xm 1

∑∈

−=ic

Tii

T

ii M x

mmxxC 1

La interpretación de esta fórmula consiste en situar un núcleo gaussiano con simetría elíptica centrado en cada una de las muestras de entrenamiento.

El cálculo de esta función de decisión para cada uno de los patrones de entrada resulta tedioso por lo que en la bibliografía se recomiendan algunas aproximaciones como la sugerida en [F. Martín]:

∑=

−=i i

jM

j

d

i

ii e

Mcp

D1

),()2/1( )(22)()( xxx σ

donde d es la conocida distancia euclídea. 2(.)

En esta fórmula se asume la existencia de muestras de entrenamiento para la clase , esas muestras se escriben: x (

iM

ic ji( ) j varía de 1 a ). La probabilidad de

pertenencia de un carácter a la clase a priori se puede suponer constante en la mayoría de casos por lo que se puede eliminar de la fórmula al no influir en la maximización. Para σ se recomienda un valor entre 0.25 y 5.00 a determinar experimentalmente, siendo 0.25 el que proporciona mejores resultados. Con este valor los núcleos están muy concentrados alrededor de su máximo aproximándose la PNN al clasificador 1-NN visto anteriormente.

iM

ic

30

Page 43: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 3: HERRAMIENTAS UTILIZADAS

Capítulo 3

HERRAMIENTAS UTILIZADAS

En este capítulo trataremos las herramientas utilizadas para el desarrollo del proyecto tales como herramientas para desarrollo de prototipos (MatLAB), entornos de programación, herramientas utilizadas para compilar y enlazar bibliotecas, bibliotecas externas utilizadas, etc.

El objetivo será dar una visión global, sin entrar en los detalles de las funcionalidades utilizadas en cada caso, para las que se puede consultar la bibliografía o, en muchos casos, la propia ayuda de los programas.

31

Page 44: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 3: HERRAMIENTAS UTILIZADAS

3.1. MatLAB

La implementación de algoritmos de visión artificial y de procesado de imagen es muy costosa en tiempo ya que necesita mecanismos de bajo nivel para tratar directamente con las imágenes en memoria. Esta es precisamente una de las razones por las que el lenguaje C++ es adecuado para su implementación (por sus características compartidas de alto y bajo nivel). Sin embargo, implementar los desarrollos directamente en C++ tiene el riesgo de que tras invertir todo ese tiempo, el método no funcione y haya que modificarlo o diseñar otro de nuevo partiendo de cero. A esto hay que sumar el tiempo de búsqueda y depuración de los errores que existan en el código antes de probar realmente el propio algoritmo.

Todos estos errores y tiempo se pueden ahorrar utilizando una herramienta como MatLAB para la fase de diseño de algoritmos. De esta forma, a la hora de la implementación definitiva en C++ tenemos la certeza de que los algoritmos funcionan correctamente, evitando rediseñar en caso de fallos. Fallos que, por otro lado, tenemos la seguridad de que se deben a errores de implementación y no de diseño. Con esto evitamos frustrantes pérdidas de tiempo a la vez que mejoramos la comprensión de los procesos a implementar.

MatLAB es la abreviatura de Matrix Laboratory (laboratorio de matrices). Es un programa de análisis numérico creado por The MathWorks en 1984. Está disponible para las plataformas Unix, Windows y Mac OS X. La versión utilizada en el presente proyecto ha sido la 7.0 (R 14).

MatLAB dispone de unas bibliotecas especializadas para distintos tipos de aplicaciones llamadas toolboxes. Estas toolboxes contienen funciones (M-files) que amplian las funcionalidades de MATLAB para resolver problemas de ámbitos particulares. Algunas de ellas están destinadas al procesado digital de señal, adquisición de datos, economía, inteligencia artificial, lógica difusa, etc. En nuestro caso ha resultado de gran interés la dedicada a procesado de imagen.

La herramienta MatLAB ha sido elegida para el desarrollo de prototipos por las enormes posibilidades que ofrece en el procesado de imágenes. Entre otras, nos proporciona acceso a imágenes en distintos formatos mediante estructuras sencillas que nos permiten tratarlas como una matriz e implementaciones de la mayoría de funciones más comúnmente utilizadas en el procesado de imagen. De esta forma, podemos centrarnos totalmente en el diseño de los algoritmos, sin preocupaciones de bajo nivel. Se ha mostrado como una herramienta de gran ayuda poder probar distintos métodos y procedimientos, cuya implementación en MatLAB resulta considerablemente más sencilla que en C++. De esta forma, nos ha permitido elegir y corregir los que mejor se adaptaron a nuestras necesidades y descartar los demás.

La utilización de las bibliotecas de procesado de imagen de MatLAB está ampliamente documentada, por lo que no nos detendremos aquí en dar una explicación de las herramientas disponibles. Además, la ayuda de este entorno es realmente útil a la hora de consultar el funcionamiento de alguna de sus funciones, cosa que por desgracia no suele ser lo más común [MathWorks].

32

Page 45: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 3: HERRAMIENTAS UTILIZADAS

Además de las pestañas y tablas de herramientas, podemos apreciar 3 zonas diferenciadas:

1. Ventana de comandos: Nos permite introducir comandos a ejecutar, variables, llamadas a funciones, etc.

2. Workspace: donde se pueden visualizar todas las variables en uso y sus valores. 3. Historial de comandos: donde se pueden consultar las acciones realizadas previamente..

Figura 3.1

También disponemos de un editor con el que escribir y visualizar funciones y archivos ejecutables.

Figura 3.2

33

Page 46: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 3: HERRAMIENTAS UTILIZADAS

Aquí podemos observar uno de los prototipos en funcionamiento. Se ve como va mostrando figuras con los resultados obtenidos.

Figura 3.3

3.2. El lenguaje C++

El lenguaje de programación elegido para la implementación de este proyecto es C++ [Stroustrup][Deitel]. En la actualidad, es el lenguaje de programación más ampliamente utilizado en el campo de la visión artificial. Esto hecho hace que podamos encontrar gran cantidad de bibliotecas y funciones dedicadas al tratamiento y procesado de imagen (entre ellas la biblioteca VXL, de la que hablaremos más adelante).

C++ combina la rapidez y eficacia del lenguaje C clásico con la orientación a objetos, lo que lo convierte en una herramienta muy potente para el desarrollo de programas que necesitan grandes cargas de trabajo. Este es el caso del procesado de imágenes digitales, en el que tenemos que manejar grandes cantidades de memoria y procesos con gran carga computacional.

Por otro lado y sin perder de vista que este es un proyecto destinado a una aplicación real e inmediata, había que tener en cuenta el trabajo previo con el que era necesario enlazar el proyecto. Esta había sido implementado en C++ utilizando el entorno de Visual Studio 2005. Utilizar el mismo entorno y lenguaje de programación nos facilita la integración de ambos sistemas.

Si la sencillez y multitud de funcionalidades de Matlab lo hacían ideal para la realización de prototipos, la potencia y capacidad de integración de C++ lo revelan como el lenguaje más idóneo para la herramienta final.

34

Page 47: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 3: HERRAMIENTAS UTILIZADAS

3.3. Visual Studio Professional 2005

Dado que en el LOMG se trabaja con hojas Excel para los informes de calibración, el proyecto previo ha sido realizado en lenguaje Visual C++, dentro del entorno de desarrollo Microsoft Visual Studio Professional 2005, ya que éste proporciona las bibliotecas necesarias para el manejo y creación de archivos Excel. Esto ha condicionado enormemente la elección del mismo entorno para el desarrollo de este proyecto, ya que necesitábamos asegurar la compatibilidad de funcionamiento e integración de ambos sistemas.

Sin embargo, se ha intentado que el código utilizado sea lo más estándar posible, permitiendo la migración a cualquier otro compilador y sistema operativo que pueda ser utilizado en el futuro con el menor número de modificaciones posibles. Por esta razón, se ha decidido utilizar la herramienta CMake (que se explicará en el siguiente apartado) para enlazar las bibliotecas y preparar las opciones de compilación en lugar de las propias opciones del entorno.

En la figura 3.4 podemos ver el entorno Visual Studio 2005.

Además de las pestañas y tablas de herramientas, podemos apreciar 4 zonas diferenciadas:

4. Explorador de soluciones: nos permite ver y abrir los distintos archivos presentes en nuestro proyecto.

5. Zona del editor: donde se pueden visualizar y editar los archivos. 6. Ayuda (no demasiado útil…) 7. Zona de resultados: donde se muestran avisos, errores de compilación, etc.

Figura 3.4

35

Page 48: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 3: HERRAMIENTAS UTILIZADAS

3.4. La herramienta CMake

CMake [CMake] es una herramienta multiplataforma de código libre empleada para configurar y dirigir el proceso de compilación de aplicaciones. Para ello, utiliza ficheros independientes del compilador que vayamos a utilizar llamados CMakeLists.txt. En ellos se describe el proceso de compilación y se establecen las dependencias. Cuando ejecutamos CMake, se generan los ficheros necesarios, dependiendo del compilador y sistema operativo que estemos utilizando.

De esta forma, toda la información necesaria para compilar nuestro proyecto está en los ficheros CMakeList.txt y es independiente del compilador utilizado. La herramienta CMake soporta los compiladores más habituales de C y C++, entre los que se encuentran gcc, C++ Builder o Visual Studio. Para preparar los archivos para ser compilados CMake necesita tres datos: el compilador que va a ser empleado, la dirección del código fuente y la dirección donde se van a generar el código objeto, las bibliotecas y los ejecutables producidos en la compilación.

Figura 3.5

El uso de esta herramienta, para nuestro caso concreto, y los parámetros utilizados en los ficheros CMakeList.txt serán explicados en el apéndice (B), dedicado a la compilación del proyecto.

36

Page 49: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 3: HERRAMIENTAS UTILIZADAS

3.5. Las bibliotecas VXL

Trabajar con imágenes lleva consigo una serie de operaciones como cargar en memoria la imagen, salvarla, acceder a los píxeles, etc., que no son ni mucho menos triviales en C++. A esto hay que sumar la multitud de formatos existentes para guardar imágenes digitales. Debido a estas circunstancias, están surgiendo en los últimos años una serie de bibliotecas que aportan capacidades como cargar o guardar imágenes en diversos formatos de forma independiente de estos u otras facilidades como estructuras para el manejo de los píxeles, etc.

De entre las muchas existentes, se ha decidido usar para este proyecto la biblioteca VXL [VXL]. VXL es realmente una colección de bibliotecas en C++ diseñada para su uso en visión por computador. Su objetivo es ser ligeras, rápidas y robustas. Además, al estar escritas en ANSI/ISO C++ nos permiten total compatibilidad con multitud de plataformas. Estas bibliotecas se dividen en dos grupos, por una parte la biblioteca del paquete core, núcleo de VXL y por otra parte las bibliotecas del paquete contrib, que proporcionan funcionalidades complementarias, pero que no han sido usadas en el presente proyecto. Dentro del núcleo nos encontramos con las siguientes:

• vnl (numerics): Algoritmos numéricos para trabajar con matrices y vectores. • vil (imaging): Funciones para cargar, guardar y manipular imágenes en multitud

de formatos, incluyendo imágenes de gran tamaño. • vgl (geometry): Proporciona funciones para realizar operaciones geométricas

con puntos, curvas y otros elementos de 2 y 3 dimensiones. • vsl (streaming I/O), vbl (basic templates), vul (utilities): Varias

funcionalidades independientes de la plataforma.

Cabe destacar la presencia de una capa de compatibilidad con la librería estándar (STL) [Josuttis][STL]. STL es un conjunto de clases definidas en el estándar ISO C++ que aportan numerosas funcionalidades. El problema es que existen algunos compiladores que pueden dar problemas a la hora de utilizar estas bibliotecas. Para mantener la compatibilidad con cualquier compilador, VXL define su propia biblioteca estándar con las mismas funciones que la STL original. Esta capa de compatibilidad, que recibe el nombre de VCL, mantiene la misma estructura e interfaces y se compila de forma conjunta con VXL. De esta forma, todas las funciones de STL estarán disponibles, independientemente de que sean soportadas por el compilador o no. Para acceder a ellas utilizaremos la misma llamada que en la STL original precedida de “vcl_”. Por ejemplo, en lugar de cout utilizaremos vcl_cout.

Información más detallada sobre como compilar y enlazar las bibliotecas de VXL con nuestro programa se puede consultar en el apéndice (B).

37

Page 50: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 3: HERRAMIENTAS UTILIZADAS

38

Page 51: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Capítulo 4

DESARROLLO

En este capítulo describiremos todo el proceso que lleva a cabo el software de reconocimiento desde que recibe la imagen hasta que devuelve el resultado con el número leído. También se incluye un primer apartado dedicado a la captura de la imagen y la utilización del software de captura del que disponemos. Finalmente, presentamos una última sección en la que se explica la interfaz de sockets implementada para permitir la compatibilidad del software reconocedor y su funcionamiento como servidor.

39

Page 52: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

4.1. CAPTURA DE LA IMAGEN

Uno de los pasos más importantes, sino el que más, en un sistema de visión artificial es la captura de la imagen. Muchas veces se le presta poca atención, pero lo cierto es que obtener una buena imagen facilita mucho el trabajo de procesado posterior, mientras que si le imagen es mala puede llegar a ser imposible obtener la información buscada, por potente que sea el software de reconocimiento.

Llegado este punto, debemos aclarar lo que entendemos por imagen buena o mala. Para nuestro caso, una buena imagen es aquella que presenta unas condiciones de iluminación, enfoque, ausencia de sombras, etc. que permita a un observador humano interpretar, sin hacer un esfuerzo extraordinario, la misma información que queremos que sea interpretada por el sistema de visión artificial.

4.1.2. Proceso

A continuación describiremos el procedimiento seguido para obtener las imágenes en el presente proyecto. Para ello disponemos de las siguientes herramientas.

Hardware:

- Cámara C-Cam BCi4: Nos proporciona imágenes de 1208 x 1024 puntos tanto en color RGB como en escala de grises

Figura 4.1

- Lente de 25 mm: Nos permite obtener imágenes bien enfocadas desde distancias de unos 15 cm hasta 1 m aproximadamente. Es la lente que usaremos en la mayoría de los casos.

- Lente de 75 mm: Permite obtener imágenes bien enfocadas desde distancias de 1.5 m hasta 10 m. Se utilizara cuando la disposición física del dispositivo a medir no permita situar la cámara a una distancia en la que podamos utilizar la primera lente.

40

Page 53: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Software:

- El programa desarrollado en el proyecto previo de Ingeniería Informática con el nombre “Sistema de calibración automática de termohigrómetros” [A. Dacal], se encarga de recoger los datos necesarios para la calibración e interactuar con la cámara para sacar las imágenes que posteriormente interpretaremos.

No podemos perder de vista las condiciones del entorno de trabajo en las que el sistema está funcionando. Estamos hablando de un laboratorio en el que trabajan varios técnicos haciendo mediciones y es necesario que el sistema interfiera lo menos posible en su trabajo. Por ello, es deseable situar la cámara lo más cerca posible del dispositivo a fotografiar de forma que minimicemos la probabilidad de que el personal de laboratorio tenga que desplazarse entre cámara y objetivo (de ahí que sea preferible utilizar la lente de 25 mm siempre que sea posible). También es necesario, ya que el proceso de calibración puede tardar varias horas, que no se muevan ni la cámara ni el objetivo durante éste. Todos estos detalles, si bien son fundamentales para el funcionamiento del sistema, se dejan al buen criterio del personal del laboratorio.

Entorno de trabajo del laboratorio

Figura 4.2

41

Page 54: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Otro aspecto importante es jugar con la orientación de la pantalla del dispositivo a medir y de la cámara con respecto a los focos de luz hasta lograr minimizar la presencia de brillos y sombras en la imagen. Aunque el software de reconocimiento cuenta con elementos para corregir estos problemas (como explicaremos en el apartado correspondiente) son indudables las ventajas de eliminarlos en la toma de imágenes, frente a un posterior procesado. Siempre es mejor evitar la presencia de ruido que tener que eliminarlo después. Lo deseable sería disponer de unos focos de luz difusa para evitar estos casos, pero esta propuesta fue descartada por razones de incompatibilidad con el trabajo en el laboratorio.

En la figura 4.3 podemos ver ejemplos de imágenes bien tomadas atendiendo a este aspecto e imágenes con brillos y sombras.

Imágenes bien tomadas.

Imágenes tomadas con una iluminación deficiente

Figura 4.3

Otro criterio es la inclinación. El software desarrollado es capaz de corregir la inclinación de la pantalla, pero de nuevo volvemos sobre el mismo aspecto: siempre es preferible la ausencia de error que la posibilidad de corregirlo. Sin embargo, existen dispositivos en los que, por su forma física, contornos redondeados, etc., es muy complicado conseguir una total horizontalidad de la pantalla.

También es de gran importancia un correcto ajuste del enfoque. Si este está bien ajustado el borde entre las cifras y el fondo de la pantalla estará bien delimitado. Con un mal ajuste, el paso de cifra a fondo de pantalla será progresivo. Esto implica que, al no

42

Page 55: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

haber una transición abrupta, aparezcan muchos píxeles con niveles de intensidad situados en el intervalo entre la intensidad de las cifras y la del fondo de pantalla. Esta situación dificultará la segmentación posterior.

En la figura 4.4 podemos ver un ejemplo del mismo display bien y mal enfocado.

Imagen desenfocada Imagen bien enfocada

Figura 4.4

4.2. PREPROCESADO

4.2.1. CONVERSIÓN DE COLOR A ESCALA DE GRISES

El sistema de reconocimiento objeto de este proyecto permite el funcionamiento tanto con imágenes en color como con imágenes en escala de grises. También puede trabajar con los formatos más habituales de imagen, incluyendo archivos bmp, jpg, png, etc. Sin embargo, para nuestro objetivo no necesitamos trabajar con los colores de la imagen, por lo que utilizaremos imágenes en escala de grises.

Lo primero que hacemos cuando cargamos una imagen para reconocer es comprobar si es una imagen con un solo plano de escala de grises o con tres planos de color, en cuyo caso tendremos que convertirla al primer formato. Esta conversión es trivial y pocas veces se le presta atención. El procedimiento básico consiste en promediar los tres niveles de color, rojo, verde y azul, en un solo nivel de intensidad. Sin embargo, una correcta distribución de los pesos otorgados a cada uno de los tres colores puede ayudar a resaltar determinadas características que sean de mayor interés y ocultar otras que no lo sean tanto. Un mal ajuste en los pesos dados a cada plano de color puede dar como resultado que dos colores diferentes resulten en una misma intensidad en la escala de grises, impidiendo diferenciarlos.

Hay numerosas técnicas para convertir imágenes en color a escala de grises. En la figura 4.5 se pueden ver varios ejemplos de ellas y de cómo, dependiendo de los pesos asignados, se pueden distinguir con mayor o menor facilidad los diferentes

43

Page 56: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

colores. En este proyecto se ha seguido la recomendación ITU-R BT.709, que asigna los pesos 0.2125, 0.7154 y 0.0721 al rojo, verde y azul respectivamente.

gris = 0.2125 rojo + 0.7121 verde + 0.0721 azul

Imagen original en color.

(rojo + verde + azul)/3

(3 rojo + 4 verde + 2

azul)/9

Sistemas NTSC y PAL:

0.299 rojo + 0.587 verde +

0.114 azul

Figura 4.5ª

44

Page 57: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

ITU-R BT.709: 0.2125 rojo

+ 0.7154 verde + 0.0721

azul

Figura 4.5b

4.2.2. BINARIZACIÓN

Antes de pasar a explicar los diferentes métodos de binarización utilizados, debemos aclarar que, por convenio, hemos decidido presentar siempre los caracteres de interés en blanco y el fondo de pantalla en negro. Para ello, después de llevar a cabo la binarización de la imagen, hacemos un recuento de píxeles blancos y negros. Lo normal es que el número de píxeles pertenecientes al fondo de pantalla sea mayor que el de los caracteres. Por tanto, si el número de píxeles contados en negro es mayor que el de blancos dejamos la imagen como está, si es menor, la invertimos.

Independientemente del proceso de binarización empleado, posteriormente, realizamos un filtrado de mediana a la imagen resultante, con el que eliminamos el posible ruido puntual (píxeles blancos aislados o pequeños grupos).

A continuación, pasamos a explicar los detalles de los distintos métodos de binarización implementados. En realidad, no son propiamente métodos de binarización, sino de cálculo del umbral necesario para esta. El proceso posterior de binarización es trivial y se limita a poner a 1 los puntos que estén por encima del umbral y a 0 los que estén por debajo.

4.2.2.1. Método de detección de picos

Observando el histograma de la imagen de una pantalla a estudio, podemos ver que en la mayoría de los casos estamos ante un histograma bimodal. De esta forma, un buen umbral para la binarización estaría situado en el mínimo local que se encuentra entre los dos máximos locales de los dos picos.

En la figura 4.6 tenemos un ejemplo de una pantalla y un histograma de este tipo.

45

Page 58: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Figura 4.6

Un método efectivo para la búsqueda de ese umbral consiste en utilizar una ventana deslizante para localizar los máximos locales [F. Martín 2]. Para ello, desplazamos esta ventana a lo largo de los valores de intensidad del histograma, considerando que un punto es un máximo local si, estando en el centro de la ventana, es el máximo de esta. Una vez localizados los máximos locales, solamente hay que buscar el mínimo situado entre estos y tomarlo como umbral.

Este método funciona bien cuando tenemos dos intensidades claramente dominantes como es el caso de unos dígitos sobre el fondo de una pantalla. Sin embargo, es frecuente que aparezcan picos de ruido como los mostrados en la figura 4.7 debidos a machas en el display, suciedad, etc.

Para eliminarlos, aplicaremos un filtrado de mediana al propio histograma mediante una ventana deslizante de dimensión 3 que vamos desplazando a lo largo de este. El resultado de este filtrado es el que vemos en la figura 4.8.

46

Page 59: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Figura 4.7

Figura 4.8

47

Page 60: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Cabe destacar que hay que llegar a un compromiso en el tamaño de la ventana empleada para la búsqueda de máximos locales. Si es demasiado grande no detectaremos los máximos que estén próximos entre si (que caigan dentro de la misma ventana). Si es demasiado pequeña, detectaremos falsos máximos debidos a pequeños picos de manchas, etc. que no se corresponden con las zonas a separar. En nuestro caso, hemos tomado una ventana de tamaño 11. El hecho de escoger una ventana relativamente pequeña se debe a que frecuentemente trabajamos con imágenes en las que hay un bajo contraste entre los caracteres de interés y el fondo de pantalla, por lo que los dos picos están próximos entre si. Además, el peligro de detectar picos secundarios no supone un mayor problema, ya que en este caso disponemos de un método de binarización alternativo (que será explicado en los siguientes apartados).

4.2.2.2. Método iterativo

Es un método basado en aproximaciones sucesivas en el que se repiten una serie de pasos hasta que el resultado converge. La recursión es la siguiente [Gonzalez & Woods]:

1. Se fija T∆ al valor 0.5 y se toma un umbral inicial igual a la suma del máximo valor de intensidad de la imagen y el mínimo dividido por 2.

)(1 nT

5.0=∆T

2)min()max()(1

imgimgnT +=

2. Se divide la imagen en dos zonas: por un lado los puntos con intensidad mayor que y por otro los de menor. )(1 nT

3. Se calcula la intensidad media de cada una de las zonas, 1µ y 2µ . 4. Se calcula el nuevo como la media de las dos intensidades medias. )1(1 +nT

2)1( 21

1µµ +

=+nT

5. Si )()1( 111 nTnTT −+=∆ es mayor o igual que T∆ se vuelve al paso 2, si 1T∆ es menor que se termina. T∆

En la figura 4.9 se muestra una comparación entre el método de búsqueda de picos y el método iterativo propuesto.

48

Page 61: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Método de búsqueda de picos Método iterativo

Figura 4.9

Podemos ver como, para la misma imagen propuesta, el método de búsqueda de picos se comporta mejor, manteniendo los caracteres separados, mientras que el método iterativo tiende a unir caracteres próximos. Sin embargo, el segundo método es robusto frente a histogramas con múltiples picos, en los que el primero no puede decidir.

4.2.2.3. Método adaptativo

Hay ocasiones en las que los métodos anteriores no funcionan, sobretodo por motivos de iluminación, presencia de sombras, etc. En esto casos el umbral calculado para toda la imagen puede no ser recomendable en algunos puntos de esta, bien porque estén más oscuros por una sombra o más claros por un reflejo.

Un ejemplo de esta situación lo podemos ver en la figura 4.10, en la que un trozo del número desaparece por estar más iluminado que el resto de la pantalla.

Imagen de una pantalla con una zona más clara

entre el 4 y el 9 debida a una mala iluminación

Imagen binarizada con un único umbral global.

Figura 10

49

Page 62: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Una solución para esta situación consiste en dividir la imagen en trozos y calcular el umbral para cada uno de ellos [F. Martín] [Ohya]. De esta forma, las zonas afectadas por un brillo o sombra tendrán un umbral adaptado a su diferente condición de iluminación. El método empleado para calcular el umbral en cada cuadro es el iterativo explicado en el apartado anterior, ya que son zonas demasiado pequeñas para la búsqueda de picos.

Para evitar un aspecto abaldosado de la imagen binarizada debido a bordes abruptos entre los distintos cuadros, hacemos una interpolación bilineal de los umbrales calculados para cada zona. Así, tenemos realmente un umbral para cada píxel y conseguimos una transición suave entre zonas diferentemente iluminadas.

El numero de trozos en los que dividir la imagen ha sido objeto de estudio y numerosas pruebas. Aunque en una primera aproximación puede parecer que cabría esperar unos mejores resultados cuanto mayor fuese el número de baldosas, no es así. En la figura 4.11 se muestra un ejemplo de una situación con diferentes números de divisiones.

Binarización con rejilla 8 x 8 Binarización con rejilla 16 x 16

Binarizción con rejilla 4 x 3 (solución adoptada)

Figura 4.11

A medida que aumentamos el número de cuadros, disminuye el tamaño de estos. Si reducimos el tamaño hasta el punto de que existan cuadros que solo ocupen un tipo de zona (frecuentemente fondo de pantalla), el umbral producido por estos será completamente falso, dando lugar a manchas blancas en la imagen que impedirán su correcta interpretación.

50

Page 63: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Del estudio del caso concreto que nos ocupa, se puede apreciar que son convenientes rectángulos de un mayor ancho que alto para evitar que se puedan situar trozos en los espacios entre cifras. La solución adoptada consiste en una rejilla de 4 divisiones horizontales por 3 verticales con la que se obtuvieron los mejores resultados para las imágenes probadas.

4.2.2.4. Solución adoptada

La solución implementada en el proyecto consiste en utilizar en primer lugar el método de búsqueda de picos y, si el resultado no es bueno, pasar al método adaptativo. La clave esta en decidir si un umbral es bueno o malo. Una primera criba se realiza realmente antes de su cálculo. Si el número de picos dominantes no es dos descartamos directamente el primer método. En otro caso necesitamos calcular la calidad del umbral obtenido (mediante el método explicado en el siguiente apartado). Si la calidad es buena se utiliza ese umbral, si la calidad es mala, se pasa al método adaptativo.

La principal restricción en cuanto al cálculo de múltiples umbrales es la mayor carga computacional. Sin embargo, esa no es una limitación en la aplicación objetivo de este proyecto, en el que transcurre un tiempo infinitamente grande entre cada una de las solicitudes de procesado de imagen en comparación con el tiempo empleado en cada una de ellas.

Y entonces, ¿por que no usar siempre este método? La razón es simple. En los casos en los que la calidad del umbral es buena se ha comprobado un mejor funcionamiento del método de búsqueda de picos.

4.2.2.5. Calculo de la calidad del umbral

Para medir la calidad del umbral calculamos el porcentaje de píxeles situados en el entorno de este (ver figura 4.12).

51

Page 64: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Figura 4.12

El conjunto de píxeles a considerar estaría formado por los situados en el intervalo X entorno al umbral U, calculado como

)(15.0 01 MMX −×= [F. Martín]

Siendo M1 y M2 la media de los píxeles blancos y negros respectivamente. De esta forma, si ese porcentaje es mayor que el 2.5% consideramos que la calidad es mala. En caso contrario la damos por buena.

4.2.3. RECORTE GRUESO

Una vez que tenemos la imagen binaria con los caracteres en blanco y el fondo en negro, tendremos que seleccionar le zona de interés. Pera ello, eliminaremos los bordes superior e inferior en un primer paso y los trozos a izquierda y derecha del numero a leer en un segundo paso.

El método utilizado será el clásico de las proyecciones. Por proyección horizontal entendemos el vector de longitud igual al ancho de la imagen (según el

52

Page 65: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

convenio utilizado, ni()) en el que cada componente es la suma de los valores de la correspondiente columna en la imagen. De forma similar obtenemos la proyección vertical como suma de filas. Finalmente, para trabajar con valores normalizados, dividimos cada componente del vector proyección por el máximo, de forma que sus valores queden comprendidos en el intervalo [0, 1].

En la figura 4.13 podemos ver la imagen de una pantalla binarizada y sus correspondientes proyecciones horizontal y vertical.

Pantalla binarizada

Proyección horizontal Proyección vertical

Figura 4.13

4.2.3.1. Primer paso: recorte horizontal

Una vez obtenida la proyección vertical, recorreremos el vector empezando en cero para recortar la parte superior y empezando en el último punto para borrar la parte inferior. Para facilitar la comprensión del algoritmo e independizar la explicación de las decisiones de implementación, nos centraremos en la gráfica proyección en lugar del vector. De esta forma, hablaremos de inspeccionar la gráfica de izquierda a derecha y de derecha a izquierda para encontrar los puntos de corte superior e inferior respectivamente. Cuando en el recorrido detectemos el comienzo de la zona de caracteres marcaremos ese punto en la gráfica como fila de corte en la imagen original.

53

Page 66: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

El problema es como saber si un punto se corresponde con el inicio de un carácter. Un método sencillo sería considerar cualquier valor mayor que cero como carácter. Este no es un buen método, ya que fallaría ante la presencia de cualquier pequeño ruido. La solución adoptada consiste en analizar cambios de pendiente en el vector proyección. El inicio de la zona de caracteres viene delimitado por una transición rápida de valores bajos a valores altos como podemos ver en la figura 4.14. En un primer momento y tras probar con diversos valores, so observó un buen funcionamiento considerando ascensos superiores a 0.2 (sobre el total comprendido entre 0 y 1) en intervalos de 4 puntos. Sin embargo, estos valores no tienen en cuenta las dimensiones de la imagen, que pueden llegar a variar en un rango bastante amplio1. Una solución sencilla y que funciona bien para nuestra aplicación consiste en declarar diferentes tamaños para los intervalos en función de las dimensiones de la imagen. Para nuestro caso fue suficiente con declarar un intervalo de 4 puntos para imágenes con una altura inferior a 200 líneas y un intervalo de 8 puntos para imágenes con una altura superior a 200 líneas. Este método nos proporciona robustez frente a picos de ruido.

(a) Zona de rápida transición que indica inicio de carácter. (b) Esta perturbación debida a ruido será descartada por no presentar una transición abrupta.

Figura 4.14

1 Dado que la cámara utilizada toma imágenes de 1280x1024 píxeles, dependiendo de la distancia y el tamaño del display, la pantalla recortada suele presentar dimensiones desde 100x50 hasta 800x400 puntos.

54

Page 67: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

El resultado de este primer paso se muestra en la figura 4.15, en la que podemos ver como se ha conseguido eliminar la macha de ruido que había en la esquina inferior derecha de la pantalla1.

Figura 4.15

4.2.3.2. Segundo paso: recorte lateral

Una vez que hemos recortado las partes inferior y superior, realizamos la proyección horizontal. Al obtenerla ahora y no antes del recorte horizontal conseguimos eliminar el posible ruido presente en los trozos cortados, proporcionando una mayor claridad a la gráfica (ver figura 4.16).

Podemos ver claramente como al realizar la proyección después del recorte horizontal se consigue eliminar el ruido que aparecía en el lado derecho debido a una mancha en la esquina inferior derecha de la imagen original.

Figura 4.16

De igual forma que en el primer paso, inspeccionamos la gráfica de izquierda a derecha y de derecha a izquierda para encontrar los puntos de corte que marquen el

1 En realidad era un trozo de alguna indicación mostrada en la pantalla, pero la consideramos ruido por no presentar ningún tipo de información que nos resulte de interés.

55

Page 68: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

comienzo de los caracteres. Estos puntos se corresponderán con las columnas por donde habrá que recortar la imagen original.

En este caso, los valores frontera tomados para las transiciones han sido un ascenso de 0.06 sobre el total normalizado entre 0 y 1 en intervalos de 4 puntos para imágenes con un número de columnas inferior a 500 y 8 puntos para imágenes con un número de columnas superior a 500. El hecho de haber marcado unos valores menos restrictivos a la pendiente se debe a que el inicio de los caracteres en la proyección horizontal es menos abrupto que el que delimita la línea de interés en la proyección vertical.

Quizá con un ejemplo resulte más sencillo aclarar esto. Supongamos que la primera cifra del número a interpretar es un 7. Su proyección se muestra en la figura 4.17. Resulta sencillo ver como el inicio del carácter por el lado izquierdo es mucho menos abrupto que en el lado derecho.

Figura 4.17

El resultado final, después de ambos recortes, es el mostrado en la figura 4.18.

Figura 4.18

56

Page 69: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Debemos señalar que los valores que fijados para los recortes se han ajustado para proporcionar el mejor funcionamiento con las pantallas de los dispositivos con los que normalmente se trabaja en el departamento de temperatura y humedad del LOMG. En el caso de disponer de pantallas más claras se podría trabajar con valores menos restrictivos, mientras que en situaciones de mayor ruido (debido a mala iluminación, displays sucios o deteriorados, etc.) se podrían elevar estos límites.

4.2.4. CORRECIÓN DE LA INCLINACIÓN

El método para la corrección de la inclinación en la imagen ha sido diseñado a medida para el problema que se nos plantea. Aunque es similar al método de Hough [Duda][G. Pajares], no necesita engorrosas transformaciones ni cambios de coordenadas. En realidad, es un método bastante intuitivo, como mostraremos a continuación.

Debemos resaltar que la parte interesante del método es el cálculo del ángulo de inclinación, ya que la rotación propiamente dicha es común a cualquier método y la podemos encontrar implementada en la mayoría de bibliotecas de procesado de imagen.

4.2.4.1. Cálculo del ángulo de inclinación

Para encontrar el ángulo de inclinación, nos fijaremos en la línea horizontal que sigue el número a lo largo de la pantalla. Para ello, utilizaremos la parte superior de las cifras, ya que, en la mayoría de os formatos presenta una mayor cantidad de trazos horizontales que la inferior1. Observando la línea que pasa por esos trazos y empleando operaciones trigonométricas básicas resulta sencillo calcular el ángulo de inclinación.

Figura 4.19

El procedimiento es el siguiente:

1 Si se tratara de texto en lugar de números, donde nos encontramos con letras de distintas alturas como por ejemplo la “d” y la “o”, utilizaríamos la parte inferior.

57

Page 70: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

En primer lugar hacemos una búsqueda por columnas en la imagen para localizar la posición de los puntos de transición de negro a blanco. En este proceso descartamos aquellas posiciones que estén por debajo del 20% del total por considerar que no pertenecen a la parte superior de la cifra. También son filtrados los píxeles aislados1, para asegurar que los trazos se ajusten de la mejor forma posible a una línea. En la figura 4.20 podemos ver una imagen de esa selección de puntos.

Imagen inclinada

Trazos sin filtrar Trazos filtrados

Figura 4.20

El siguiente paso es tomar dos de esos puntos, preferentemente de los extremos para minimizar el error. Uno de los puntos, al que llamaremos a, está más cercano al borde superior de la imagen, mientras que al más alejado lo denominaremos b. Con ellos y un tercer punto situado en la proyección de b sobre la línea horizontal en la que se sitúa a formamos un triángulo rectángulo. Llegado este punto, ya tenemos todos los datos necesarios para calcular la tangente de ese triángulo, que es una buena aproximación del ángulo para valores inclinación menores de 15º. Para valores mayores los resultados pueden estar tabulados.

La imagen con la inclinación corregida se muestra en la figura 4.21, en la que podemos apreciar que el tamaño original ha aumentado tras la rotación.

1 Es un procedimiento de filtrado sencillo que, básicamente, consiste en descartar aquellos píxeles que no tienen ningún compañero a su derecha y a su izquierda. Así se evitan también las diagonales que suelen aparecer en los bordes de los números.

58

Page 71: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Figura 4.21

Ya solo queda eliminar los bordes en la imagen final.

Figura 4.22

4.3. SEGMENTACIÓN DE CARACTERES

El proceso de segmentación consiste en separar cada cifra del conjunto de la imagen para poder interpretarla de forma individual. Para ello nos apoyaremos en la técnica de las proyecciones vista en apartados anteriores, pero en este caso con algunas modificaciones. En primer lugar explicaremos el procedimiento básico de separación de caracteres. Posteriormente abordaremos una serie de técnicas añadidas a este proceso que ayudan a evitar y corregir errores en la segmentación.

4.3.1. Proyecciones mejoradas

Para eliminar picos en los vectores proyección debidos a píxeles de ruido en la imagen y separar caracteres que estén demasiado juntos o incluso solapando la parte superior de uno con la inferior de otro, utilizamos lo que hemos llamado proyecciones mejoradas. A continuación explicaremos el caso de la proyección horizontal, siendo análogo el de la proyección vertical.

59

Page 72: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

En lugar de tomar las sumas de las columnas para cada componente del vector proyección, tomamos el producto escalar entre dos columnas. Estas podrían ser columnas consecutivas (columna i y columna i+1), pero hemos comprobado un mejor funcionamiento frente al ruido utilizando las columnas i-1 e i+1. Como se puede apreciar en la figura 4.23, este procedimiento, además de eliminar ruido, permite una mayor capacidad de separación entre caracteres cuando los límites son dudosos.

Proyección tradicional Proyección mejorada

Figura 4.23

Finalmente, al igual que con las proyecciones tradicionales, dividimos cada componente del vector por el máximo para trabajar con valores normalizados.

4.3.2. Procedimiento básico

Una vez que tenemos la proyección horizontal de la imagen a segmentar1, procedemos a la búsqueda de caracteres. Empezamos de derecha a izquierda (por las cifras menos significativas), ya que la transición que marca el inicio de una cifra suele estar mejor definida por ese lado. El método empleado consiste en una búsqueda de mínimos con histéresis. Lo que esto significa es que utilizamos niveles diferentes para marcar el inicio y el fin de carácter. Esto nos permite eliminar errores debidos a picos de ruido de forma similar a como actúa un circuito de histéresis eliminando los rebotes de un pulsador.

Marcamos el inicio de carácter cuando la proyección supera un determinado valor y no marcamos su fin hasta que se alcanza un valor fijado a un nivel inferior al inicial. Los valores fijados tras numerosas pruebas han sido 0.06 (sobre el rango de 0 a 1) para el inicio de carácter y 0.01 para el fin. De esta forma, una vez marcado el final

1 A partir de este punto, trabajaremos con las proyecciones mejoradas, aunque el desarrollo es perfectamente válido también para las simples.

60

Page 73: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

de carácter, tendremos un margen de ruido para evitar falsas detecciones en el espacio entre caracteres.

En la figura 4.24 se muestran, de forma exagerada para poder verlo gráficamente, los puntos de marcado.

Utilizando histéresis en los puntos de marcado se evitan los errores que producirían los picos de ruido presentes en el espacio entre caracteres.

Figura 4.24

4.3.3. Técnicas complementarias

Tras la primera estimación de los límites de cada carácter usando las proyecciones, se llevan a cabo una serie de comprobaciones añadidas para validar la segmentación. Si los resultados son favorables se seguirá adelante con el corte propuesto, sino se hará una corrección de la segmentación inicial.

61

Page 74: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Relación de aspecto:

Definimos la relación de aspecto de un carácter como el cociente entre las dimensiones vertical y horizontal del rectángulo más pequeño que lo contiene.

horizontal

vertical

DDR =

Figura 4.25

Todos los formatos numéricos que hemos observado en los dispositivos a los que hemos tenido acceso presentaban una relación de aspecto superior a 1. En términos generales, R se mueve en el intervalo [1.5, 2] (relaciones alto/ancho de 3/2 a 2/1).

Teniendo esto en cuenta, podemos utilizar la relación de aspecto de las cifras para separar caracteres que hayan podido quedar unidos en el proceso de binarización. Si un carácter segmentado presenta una relación de aspecto inferior a lo esperado consideraremos la posibilidad de separarlo en dos. En este sentido, hemos decidido ser conservadores, bajando el umbral de R al valor 1.2 para evitar detectar falsas uniones.

Número de picos y mínimo central:

En caso de detectar una relación de aspecto por debajo de la esperada, tendremos que separar en dos el carácter inicial. Para buscar el punto de corte comprobaremos el número de picos en la proyección del carácter y el mínimo central.

Del estudio de las proyecciones horizontales de diferentes formatos numéricos, observamos que ninguna cifra presenta un número de picos superior a 3. En un principio, se pensó en utilizar esta característica para determinar que dos caracteres se habían segmentado unidos en caso de presentar un número de picos superior. El problema es que la aparición de caracteres unidos se da en situaciones de elevado ruido (debida a una mala iluminación, enfoque de la lente, contraste, etc.), lo que también resulta en una modificación del aspecto de las cifras y, por tanto, el número de picos presente en sus proyecciones.

62

Page 75: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Por esta razón se descartó el uso de este método como decisor, pero se mantiene para localizar el mínimo central por el cual dividir en dos cifras. El procedimiento es el de ventana deslizante explicado anteriormente.

Búsqueda de punto decimal en formatos inclinados:

Es frecuente que los dispositivos presenten pantallas en cursiva con un grado de inclinación que hace que la parte superior derecha de la cifra de las unidades se solape en la proyección con el punto decimal. En estos casos se segmentaría en un único trozo la cifra y el punto.

En la figura 4.26 se muestra un ejemplo de esta situación. La parte superior del 2 se solapa con el punto decimal. Podemos ver en la proyección horizontal como resulta imposible distinguir el 2 del punto, ya que aparecen en un único bloque.

Figura 4.26

63

Page 76: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Para hacer frente a estas situaciones, realizamos una inspección de la parte inferior del carácter en busca de una fragmentación que indique la presencia del punto. Para ello empleamos la proyección del trozo inferior de la imagen.

Figura 4.27

En la figura 4.27 podemos ver como ahora sí resulta sencillo separar el 2 del punto. En la implementación se ha decidido utilizar la parte inferior correspondiente al 25% de la altura de la imagen.

4.4. RECONOCIMIENTO

4.4.1. EXTRACCIÓN DE CARACTERÍSTICAS

Existen multitud de características a tener en cuenta en una imagen a la hora de clasificarla, por lo que en cada caso tendremos que seleccionar aquellas que mejor se adapten a nuestra aplicación. En esta sección abordaremos los métodos empleados para la extracción de los vectores de características que nos permitan una mejor diferenciación entre los elementos a clasificar, que en nuestro caso son las cifras de una pantalla.

4.4.1.1. Escalado

En primer lugar, para trabajar con imágenes normalizadas en tamaño, realizamos un escalado de la cifra a la que queremos extraer características. Para ello la transformamos a un tamaño fijo de 16 x 16 píxeles. Lo normal es que la imagen de entrada original tenga unas dimensiones mayores, por lo que el proceso será en realidad un diezmado. En caso contrario, habrá que agrandar la imagen original, por lo que trabajaremos por debajo de la resolución mínima.

Para el proceso de diezmado dividiremos la imagen de entrada en un número fijo de rectángulos de tamaño . Cada uno de esos rectángulos se transforma en un m nx0 0

64

Page 77: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

único píxel al que se asigna el valor de la media, que en el caso de una imagen binaria se aproxima a 0 o 1.

Figura 4.28

Llamaremos y n a los tamaños iniciales de la imagen y m y a los tamaños finales (en nuestro caso 16x16). Si los tamaños originales son múltiplos de los tamaños destino, el resultado es muy sencillo, siendo todos los rectángulos en los que hay que dividir la imagen de igual tamaño.

m1 1 2 n2

2

10

mmm = ;

2

10

nnn =

En caso de que no sean múltiplos enteros, la conversión será más compleja. Explicaremos a continuación el caso para la dimensión horizontal ( y ) siendo análogo para la conversión de la dimensión vertical.

m1 m2

En primer lugar tendremos dos posibles tamaños para los m trozos: 2

[ ]210 /__ mmdeenteraPartem =

′ = +m m0 0 1

Por otra parte, llamaremos k al número de trozos de tamaño y al número de trozos de tamaño . Así, podemos obtener dos ecuaciones simples:

m0 ′k′m0

65

Page 78: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Número de píxeles de la imagen original: m m k m k1 0 0= + ′ ′ Número de píxeles de la imagen destino: m k k2 = + ′

A partir de estas dos ecuaciones podemos obtener de forma sencilla los valores de k y

: ′k

''

00

201

mmmmmk

−−

=

kmk −= 2'

Para el eje vertical se procede de la misma forma. Posteriormente, queda distribuir los rectángulos de diferente tamaño sobre la trama de la imagen original. Para evitar una descompensación en la imagen resultante, distribuimos de forma alterna trozos de longitud m y (de igual forma para la distribución vertical). 0 ′m0

Al convertir las imágenes de entrada (cifras) a un tamaño constante de 16x16, generalmente modificamos su relación de aspecto. Sin embargo, lejos de suponer un inconveniente, resulta ventajoso, ya que conseguimos independizar la relación de aspecto original de la imagen, del proceso de extracción de características (ver figura 4.29).

Para el sistema ambas cifras tendrán las mismas características.

Figura 4.29

A modo de ejemplo, podemos ver en la figura 4.30 el resultado del proceso de diezmado sobre una de las cifras utilizadas como patrón.

66

Page 79: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Figura 4.30

Una vez realizado el escalado, ya tenemos los caracteres listos para la extracción de características. Para ello, usaremos los métodos descritos a continuación. También se incluye un apartado en el que se indican métodos probados que finalmente fueron descartados y por qué.

4.4.1.2. Proyecciones

El método de las proyecciones es un procedimiento de extracción de características ampliamente extendido en el campo de los OCR. La forma de realizar las proyecciones es la misma que se ha explicado en apartados anteriores. En un primer momento se probó a utilizar como vectores de características las proyecciones horizontal y vertical del carácter a reconocer. Sin embargo, estas no son discriminantes a la hora de identificar ciertos caracteres. En la figura 4.31 podemos ver un ejemplo de esta situación. Al observar las proyecciones de los números 2 y 5 nos damos cuenta de que, en el formato de 7 segmentos, son iguales.

Figura 4.31ª

67

Page 80: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Figura 4.31b

Para evitar este problema, la solución adoptada ha sido la que hemos denominado medias proyecciones.

4.4.1.3. Medias proyecciones

En lugar de realizar las proyecciones horizontal y vertical directamente, dividimos la imagen en dos zonas y obtenemos dos pares de proyecciones. Para la división tomamos el eje horizontal central, partiendo la imagen en dos trozos al 50% de su altura. Así, conseguimos eliminar las coincidencias en el vector proyección de todos los formatos numéricos estudiados.

Figura 4.32

Tras este proceso disponemos de cuatro vectores de características:

• Horizontal superior (de longitud 16). • Vertical superior (de longitud 8). • Horizontal inferior (de longitud 16). • Vertical inferior (de longitud 8).

68

Page 81: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

4.4.1.4. Gradientes de Kirsch

Otro método de extracción de características empleado será la detección de componentes direccionales de Kirsch. Para ello, sobre la imagen original escalada a tamaño 16x16, definimos cuatro componentes direccionales: horizontal, vertical, diagonal primera y diagonal segunda. La división de una imagen en sus componentes se muestra con un ejemplo en la figura 4.33.

Imagen original Horizontal Vertical Diagonal 1 Diagonal 2

Figura 4.33

En una imagen sencilla como la del ejemplo resulta fácil separar sus componentes direccionales, pero para imágenes más complejas no lo será tanto. Para estos casos disponemos del operador gradiente de Kirsh que explicaremos a continuación. Para ello utilizaremos la notación que se muestra en la figura 4.34 para el entorno de un píxel.

A0 A1 A2

A7 (i,j) A3

A6 A5 A4

Figura 4.34

Se define:

21 ++ ++= kkkk AAAS

76543 +++++ ++++= kkkkkk AAAAAT

Para las que debemos considerar k como circular módulo 8.

69

Page 82: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

A partir de estas fórmulas podemos obtener las componentes direccionales del gradiente.

Horizontal: G i j max S T S TH ( , ) ( , )= − −5 3 5 30 0 4 4 .

Vertical: G i j max S T S TV ( , ) ( , )= − −5 3 5 32 2 6 6 .

Diagonal 1: G i j max S T S TD1 1 1 5 55 3 5 3( , ) ( , )= − − .

Diagonal 2: G i j max S T S TD2 3 3 75 3 5 3( , ) ( , )= 7− − .

Aplicar estas operaciones a cada píxel de la imagen sería equivalente a realizar un filtrado con las máscaras de la figura 4.35 y tomar el mayor de los dos posibles para cada componente.

Horizontal ⎥⎥⎥

⎢⎢⎢

−−−−−

333303

555

⎥⎥⎥

⎢⎢⎢

⎡−−−−−

555303333

Vertical ⎥⎥⎥

⎢⎢⎢

−−−

−−

533503533

⎥⎥⎥

⎢⎢⎢

−−−−−

335305335

Diagonal primera ⎥⎥⎥

⎢⎢⎢

−−−−−

333503553

⎥⎥⎥

⎢⎢⎢

−−−−−

355305333

Diagonal segunda ⎥⎥⎥

⎢⎢⎢

−−

−−−

553503333

⎥⎥⎥

⎢⎢⎢

−−−−−

333305355

Figura 4.35

Aplicando estas operaciones a todos los píxeles de la imagen obtenemos 4 imágenes con las 4 componentes horizontal, vertical, diagonal primera y diagonal segunda. Necesitamos trabajar con vectores de características y no con matrices, así que tendremos que convertir esas imágenes en vectores. Para ello, los formaremos como una simple secuencia de las filas de cada una de las imágenes, obteniendo así cuatro vectores de longitud 256 (16x16):

70

Page 83: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

• Horizontal. • Vertical. • Diagonal primera. • Diagonal segunda.

En la figura 4.36 se puede ver un ejemplo gráfico del resultado de extraer las cuatro componentes a la imagen de una cifra binarizada.

original horizontal vertical diagonal 1 diagonal 2

Figura 4.36

4.4.1.4. Inspección visual: una técnica diferente

En este apartado explicaremos una técnica nueva y completamente diferente a las anteriores. No es una técnica de extracción propiamente dicha, ya que no nos proporciona un vector de características. Lo que nos índica es directamente la cifra más probable. Es un método de reconocimiento completo, en el que no podemos dividir los procesos de extracción de características y de clasificación.

Los sistemas vistos anteriormente extraen una serie de características objetivas resultado de un complejo procesado de la imagen. Proyecciones, gradientes, etc. son rasgos identificativos de los patrones buscados, pero son poco intuitivos desde el punto de vista de un ser humano. El método de “inspección visual” pretende imitar la actuación de una persona a la hora de reconocer cada una de las cifras.

Hagamos una prueba sencilla. Escribamos en un papel las cifras del 0 al 9 y planteémonos a nosotros mismos dos preguntas: ¿Qué cifra es cada una? ¿Por qué? La primera pregunta es muy sencilla e inmediata, pero la segunda quizá nos plantee algún problema. Tenemos tan interiorizada la forma de reconocer un número que es probable que nos resulte difícil responder.

Sin embargo, si planteamos esa misma pregunta a niños de 4 años, que están aprendiendo a identificar los números, resulta sorprendente la cantidad de cosas que responden y que nosotros sencillamente habríamos pasado por alto.

Lo que este sistema pretende es tratar de descubrir determinadas características geométricas de las cifras que permiten identificarlas de forma univoca. El alfabeto de las cifras es relativamente corto e, independientemente del tipo de fuente a estudio, existen rasgos propios de cada cifra que la hacen única frente a las demás. Veamos ahora una serie de ejemplos.

71

Page 84: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

0 0 0

Tiene todo el contorno cerrado y no presenta ningún trazo a media altura (hueco).

1 1 1

Tiene un trazo vertical dominante y nunca tiene un trazo horizontal superior.

2 2 2

Siempre tiene un hueco en la parte superior izquierda y en la parte inferior derecha.

3 3 3

Siempre tiene un hueco en las partes superior e inferior izquierda.

4 4 4

Es el único que, o bien está abierto en la parte superior, o se cierra formando un triángulo.

5 5 5

Siempre tiene un hueco en la parte superior derecha y en la parte inferior izquierda.

6 6 6

Siempre tiene un hueco en la parte superior derecha y está cerrada en la parte inferior.

7 7 7

Independientemente del formato, siempre tiene un trazo horizontal superior y nunca inferior.

8 8 8

Tiene todo el contorno cerrado y un trazo a media altura.

9 9 9

Siempre tiene un hueco en la parte inferior izquierda y está cerrada en la parte superior.

Figura 4.37

Es fácil ver que hay unos determinados rasgos presentes en cada cifra que resultan más esclarecedores a la hora de identificarla que otros. El problema ahora es

72

Page 85: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

como implementar esta inspección. Una forma sencilla de hacerlo es utilizando las regiones que se muestran en la figura 4.38.

Figura 4.38

Utilizando esas regiones para inspeccionar la existencia de los huecos o trazos explicados en la figura 4.37 podemos averiguar de forma sencilla los rasgos definitorios de las cifras más problemáticas, proporcionando una forma de distinguir las cifras más conflictivas en una imagen borrosa.

La idea de este procedimiento no es proporcionar por si mismo un método de reconocimiento, sino la de combinarlo con los métodos de extracción de vectores para aumentar la probabilidad de acierto. En el apartado dedicado a la decisión se explicará como se lleva a cabo esta conjunción.

4.4.1.5. Técnicas probadas y descartadas

En un primer momento se pensó en utilizar como ayuda a la decisión el número de huecos. Sin embargo, fue descartado por dos razones principalmente. Por un lado, la variabilidad del tipo de fuente podía hacer que una misma cifra presentase diferente número de huecos. Este es el caso del número 4, que en ocasiones aparece abierto por su parte superior y en ocasiones cerrado formando un hueco. Por otra parte se da la circunstancia de que en algunos formatos, sobre todo en los de 7 segmentos, el trazo de las cifras no es continuo (ver figura 4.39). En estos casos el número de regiones conexas y de huecos no es representativo.

73

Page 86: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Figura 4.39

Otro método probado y descartado fue el de los momentos invariantes (ver Capítulo de introducción teórica). Es un método ampliamente utilizado en OCR ya que permite localizar formas que se ajusten exactamente a un patrón independientemente de su tamaño o inclinación. Sin embargo, este no era nuestro caso, ya que no podíamos hacer coincidir las cifras buscadas con un patrón exacto por la variabilidad de los formatos de entrada. También resulta ser, generalmente, un método lento, aunque ese no es un inconveniente primordial en nuestra aplicación. En la figura 4.40 se muestran algunos ejemplos de problemas derivados de la invarianza ante rotación o ante simetría.

La invarianza ante rotación hace imposible diferenciar cifras en algunos formatos.

La invarianza ante reflexión hace imposible diferenciar cifras en algunos formatos.

Figura 4.40

74

Page 87: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

4.4.2. CLASIFICACIÓN

Explicaremos en este apartado las técnicas de decisión empleadas para clasificar los caracteres una vez extraídas sus características. Nos centraremos en el decisor utilizado, explicando los motivos por los que se ha elegido frente a otras propuestas.

El clasificador finalmente implementado es un clasificador 1-NN modificado. Se basa en la regla del vecino más próximo, calculando la distancia del vector de características a cada uno de los vectores patrón. De entre ellas, tomaremos la menor y se clasificará el carácter como perteneciente a la misma clase a la que pertenezca el patrón más próximo.

Como vector de características se han utilizado los cuatro vectores de proyecciones y los cuatro vectores de gradientes de Kirsh unidos en un único vector. Para el cálculo de la distancia se recurre a la norma 1. Al ser las componentes de todos los vectores siempre positivas el resultado de la decisión va a ser el mismo que utilizando la distancia Euclídea, pero computacionalmente más sencillo.

( ) ∑=

−=n

iii babad

1,

También se probó el funcionamiento con redes neuronales probabilísticas (PNN) pero, tras sucesivos ajustes de los parámetros, se pudo observar que se obtenían mejores resultados cuanto más se aproximaba la red a un clasificador 1-NN (y nunca se llegaban a alcanzar los resultados de este), por lo que fue descartado. Esto se debe a las características de los propios patrones utilizados. El espectro de tipos de fuente de entrada es muy amplio, recorriendo desde caracteres de siete segmentos hasta complejas fuentes propias de un editor de texto. En este caso es frecuente que una cifra presente más similitudes (menor distancia) con otra cifra que con la misma en otros formatos (ver figura 4.41). Al darse esta situación, los valores medios calculados para los vectores de características de cada clase no son suficientemente representativos para todos los patrones de esta clase.

Carácter de entrada

Distancia = 4020 Distancia = 5407 Distancia = 5174 Distancia = 3962

Se muestran las distancias calculadas entre los vectores de características del carácter de entrada y algunos de los patrones. Podemos ver que está más cerca de un patrón de otra clase distinta (2) que de los patrones de su misma clase (1)

Figura 4.41

75

Page 88: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

El mayor problema de los clasificadores 1-NN suele ser la carga computacional que suponle tener que recorrer todo el espacio de patrones, sin embargo esto no es un problema para el caso que nos ocupa por dos razones principales. En primer lugar, el alfabeto de utilizado es relativamente corto (solo se necesitan las cifras del 0 al 9 y algún signo1) por lo que la carga es menor que en los clasificadores alfanuméricos. Por otro lado, la rapidez de respuesta no es crítica para nuestra aplicación, en la que el tiempo que transcurre entre la solicitud de procesado de dos imágenes sucesivas es de varios ordenes de magnitud superior al propio tiempo de procesado. Esto es, frecuentemente transcurren varios segundos entre la toma de imágenes y en ningún momento se necesitan restricciones de tiempo real.

Para combinar este método con el explicado en el apartado anterior, al se le ha dado el nombre de inspección visual, se procede de la siguiente forma:

Tras el proceso de extracción de características y cálculo de distancias según el método 1-NN, se lleva a cabo la inspección visual de la cifra a analizar. Este segundo método analiza las características geométricas del carácter, dando como resultado un vector de tantas componentes como cifras posibles y cuyos valores son 0 para las cifras incompatibles y 1 para las cifras que encajan con los rasgos principales analizados (explicados anteriormente). A las cifras ganadoras de este proceso (componentes a 1) se les reduce la distancia en un 20 % sobre las calculadas con el primer método. De esta forma consigue diferenciar en los casos dudosos, en los que las distancias calculadas en el primer paso proporcionan valores muy próximos entre si y que no son aclaratorios.

A modo de ejemplo, si tras el proceso de inspección visual resulta ganadora la cifra ‘2’ (vector con esa componente a 1 y las demás a 0), las distancias a todos los patrones cuyo tipo se corresponde con la cifra ‘2’ calculadas en el proceso anterior, se verán reducidas en un 20 %.

En la figura 4.42 se muestra un diagrama de este proceso.

1 Por el momento solo se ha visto la necesidad de incluir el punto decimal, ‘.’, y el signo ‘-’, que aparece en caso de números negativos. Sin embargo, de ser necesario, resulta sencillo añadir nuevos símbolos, como se explicará posteriormente.

76

Page 89: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

CIFRA

Extracción de

Características

Inspección Visual

Cálculode

Distancias

Reduccióndel 20 % paradistancias de

cifras ganadoras

1-NN

RESULTADO

Vector de

cifrasVectorde

distancias

Figura 4.42

77

Page 90: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

4.5. CRITERIOS EXTERNOS

Existe una serie de información del entorno que puede ser utilizada de forma posterior en la interpretación de resultados. A continuación explicaremos algunas de las consideraciones que el sistema tiene en cuenta a la hora de devolver un resultado.

4.5.1. Información proporcionada

En la fase de interacción con el software de captura de imagen del que se hace uso, se ha decidido permitir la introducción de una serie de parámetros relativos a la medición que se va a efectuar y que pueden ser de utilidad a la hora de la interpretación. De todas formas, se permite que el sistema funcione con la ayuda de estos parámetros o de forma independiente.

En primer lugar, se permite al técnico seleccionar el formato numérico de la pantalla de la que va a tomar imágenes. De esta forma podemos saber la posición exacta del punto decimal y la cantidad de cifras a la izquierda y a la derecha. Para ello, se le da la opción de escoger entre una serie de formatos típicos como, por ejemplo, 00.00 o 00.0. Por supuesto, también tiene la opción de dejar este campo en blanco, en cuyo caso no sería utilizado para la interpretación.

Esta información es especialmente útil en aquellas pantallas en las que es complicado identificar el punto decimal. Esto se debe, frecuentemente a que aparece unido al carácter anterior por encontrarse muy próximos entre si. En esta situación se suele producir una zona oscura entre ambos caracteres debida a la propia sombra de las cifras sobre el display o a un desajuste en el enfoque de la cámara. En la figura 4.43 se muestra un ejemplo de esta situación.

En este caso las propias cifras producen una sombra sobre el fondo de pantalla que provoca la unión del punto decimal con las cifras laterales. Ante esta situación, el sistema consigue segmentar las cifras correctamente, pero necesita la información externa para la situación del punto decimal.

Figura 4.43

Otro parámetro que podemos utilizar es el punto de consigna de la medida. Cuando se van a efectuar las medidas para la calibración de un instrumento se sabe de antemano bajo que condiciones va a medir. Estas condiciones conforman lo que es el punto de consigna. Veamos un ejemplo para entender el procedimiento.

78

Page 91: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Si se quiere calibrar un termómetro en el punto de 20 ºC, podemos utilizar esta información a la hora de interpretar los resultados obtenidos. De esta forma si el resultado leído se va fuera de un margen establecido se podría descartar por considerar un error en la lectura. En nuestro caso, se podría aceptar un valor de 21.3 ºC y descartar 51.3 ºC, por ejemplo.

Esta información podría ser utilizada incluso a la hora de decidir las cifras. En el ejemplo anterior se le podrían dar pesos distintos a la cifra de las decenas en función de la proximidad al punto de consigna marcado. Sin embargo, a petición del LOMG no se ha utilizado esta información en la implementación final. La causa es que el objetivo de las mediciones es ver el error que comete el propio aparato de medida, siendo necesario que se estime aunque se aleje considerablemente del punto de consigna.

Por esta razón, el procedimiento seguido es el siguiente: Se permite la introducción de los datos de punto de consigna y un determinado margen (en el que se espera que estén los resultados) en el proceso de configuración del sistema. Si el valor interpretado, sin utilizar esta información, está dentro del margen se muestra en verde. Si el valor interpretado se sale del margen establecido, no se realiza ninguna corrección, pero se muestra un aviso (numero en rojo) para que al técnico le resulte sencilla su localización y comprobación manual con el verdadero valor presentado en la imagen.

4.5.2. Información general

Hay una serie de consideraciones a tener en cuenta en el número interpretado que dependen de la información mostrada en los instrumentos a los que el presente proyecto está destinado. Los datos a leer van a ser siempre numéricos, normalmente compuestos por un punto decimal y una serie de cifras a la derecha y a la izquierda. De esta forma, resulta lógico llevar a cabo una serie de comprobaciones al resultado obtenido antes de devolverlo. Entre ellas, podemos destacar las siguientes:

• Comprobar la presencia de puntos decimales en los extremos izquierdo o derecho del número. Estos pueden aparecer debido a ruido, manchas, presencia de símbolos o trozos de símbolos como “ºC”, etc. En este caso se eliminan.

• Se tratará de evitar, en la medida de lo posible, la presencia de varios puntos

decimales. Para ello, evitaremos las búsquedas forzadas de punto1 en el caso en que haya sido identificado de forma natural (como un carácter independiente).

1 En el apartado de segmentación se describe un método que trata de localizar la presencia de puntos decimales para el caso de cifras en cursiva. Este podría llevar a detectar falsos puntos en el caso de imágenes con un excesivo ruido que llegue a fragmentar cifras.

79

Page 92: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

4.6. SELECCIÓN DE PATRONES

En este apartado explicaremos las decisiones tomadas a la hora de seleccionar los patrones y la forma de implementarlos.

Como norma general, en los sistemas de reconocimiento de caracteres suele ser recomendable el uso de patrones reales. Es decir, patrones sacados de imágenes obtenidas con el mismo sistema que va a ser utilizado para obtener las imágenes a interpretar por el reconocedor. Esto permite aproximar mejor las características que con patrones ficticios.

Sin embargo, en el presente sistema se ha decidido utilizar patrones artificiales por varias razones. En primer lugar, los patrones reales funcionan especialmente bien cuando existe una correspondencia exacta entre el tipo patrón y el tipo a reconocer. Sin embargo, en nuestro caso estaríamos cometiendo un error ya de partida, ya que el formato de los caracteres es diferente e independiente en cada uno de los instrumentos. Al seleccionar los patrones de un instrumento concreto y descartar los de otro estaríamos influenciando las características de forma equivocada.

A modo de ejemplo, tratemos el caso de los displays de siete segmentos, que es el tipo de caracteres más numeroso. Dentro de estos nos encontramos con segmentos más o menos gruesos, con distintos grados de inclinación, con diferentes contornos para cada uno de los segmentos, etc. Una solución poco práctica sería tratar de incluir todos los tipos posibles en la lista de patrones. Esto supondría una carga de tiempo y memoria inviable y, aun así, nunca tendríamos la seguridad de incluir todas las posibilidades. El día de mañana podría llegar un aparato con un formato de siete segmentos diferente.

Por otro lado, al tratarse de pantallas relativamente pequeñas, no resulta sencillo obtener imágenes con la suficiente calidad como para tomarlas como patrones. En general, la pérdida de calidad en estos casos no puede ser despreciada.

Por todo esto, se ha decidido seleccionar unos patrones artificiales y suficientemente genéricos como para ser representativos de los instrumentos a interpretar. Para ello, se ha hecho uso de un procesador de texto con diferentes formatos numéricos, entre ellos los de siete segmentos1, para obtener imágenes con una calidad suficiente de los distintos caracteres. También se ha seleccionado algún formato complejo que, si bien se ha observado su coincidencia con algunos de los aparatos analizados, resulta bastante estándar para funcionar como base para otros formatos similares. Éste es el que recibe la denominación de arial en la mayoría de procesadores de texto.

En la figura 4.44 se muestra un ejemplo de algunos de los formatos incluidos en la carpeta patrones.

1 Esta es la fuente denominada DS-Digital. Normalmente no está incluida por defecto en los procesadores de texto, pero se puede descargar de forma gratuita de cualquier archivo de fuentes en la red.

80

Page 93: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Ejemplos para el caso de la cifra 2 de algunos de los formatos patrón incluidos en el sistema inicial.

Figura 4.44

No podemos perder de vista que el sistema va a ser puesto en funcionamiento en un laboratorio. Para la selección de caracteres se ha procedido observar los instrumentos que han llegado al laboratorio durante el periodo de desarrollo. También se ha consultado a los técnicos sobre los tipos de pantallas mas habituales con el objetivo de ajustarse de la mejor forma posible a los instrumentos a leer. Sin embargo, en cualquier momento podría hacerse frecuente la llegada de aparatos con un formato numérico diferente y que no se ajuste a ninguno de los incluidos en la fase de diseño.

Para que esta situación no suponga un problema en el uso del sistema, se ha diseñado de forma que resulte sencilla su actualización por parte del personal del laboratorio, que en ningún caso tiene que tener conocimientos sobre el software subyacente. El sistema es el siguiente: En el mismo directorio en el que se encuentra el archivo ejecutable se encuentra una carpeta con el nombre "patrones". Dentro de esta se encuentran las imágenes de cada uno de los caracteres que forman el conjunto de patrones. La forma de identificar estas imágenes con el carácter al que representan es darle un nombre cuya primera letra sea ese carácter. Así, por ejemplo, todas las imágenes cuyo nombre empiece por '7' formarán el conjunto de patrones para la cifra 7.

Si queremos añadir algún nuevo patrón a la lista, por los motivos expuestos anteriormente, no tenemos más que introducir una imagen con el carácter en cuestión, recortado, dentro de la carpeta "patrones" y darle un nombre que empiece por ese carácter. En la próxima ejecución del servidor de reconocimiento se incluirán de forma automática y transparente para el usuario los nuevos caracteres. Además se permite la introducción por separado de cualquier carácter independientemente del resto del alfabeto. Es decir, si un nuevo formato numérico solo presenta diferencias en alguno de sus caracteres, coincidiendo los demás con alguno de los existentes, se puede introducir solamente el carácter conflictivo sin ningún problema.

Una excepción es el caso del '.', cuyo nombre empieza por la letra 'p', para evitar problemas con el sistema de nombres de ficheros. Esto no supone ningún conflicto, ya que no es objetivo de este sistema el reconocer letras.

81

Page 94: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

4.7. INTEGRACIÓN DEL SISTEMA

En este apartado explicaremos las decisiones adoptadas para llevar a cabo la integración del sistema de reconocimiento objeto de este proyecto con el sistema encargado de la sincronización y captura de imágenes del que disponemos. La solución implementada consiste en una interfaz de sockets con una estructura cliente-servidor. El motivo de esta decisión es doble y será explicado a continuación.

La primera cuestión es la sencillez de integración con el sistema existente. Éste hace uso de bibliotecas externas, herramientas propias de Visual Studio para proporcionar un entorno gráfico, bases de datos, etc. Todo ello se compila haciendo uso de las directivas que proporciona el propio entorno de Visual Studio 2005. Por otro lado, el presente proyecto hace uso de las bibliotecas de visión artificial VXL, por lo que es necesaria la herramienta CMake (explicada en el capítulo dedicado a la herramientas utilizadas) para generar las instrucciones de compilación. Ante esta situación, resulta inviable modificar cualquiera de las dos partes para conseguir compilarlas de forma conjunta.

Por otra parte, y como razón de peso definitiva para la decisión de utilizar una interfaz de sockets, se nos presentaba el siguiente problema. Los ordenadores disponibles en el laboratorio están destinados a trabajos de poca carga computacional como es la introducción de datos de las calibraciones y redacción de informes. Por esta razón, aunque se dispone de algún ordenador más potente, la mayoría están bastante limitados en cuanto a memoria y capacidad de procesamiento1. Dado que estos equipos se encuentran conectados en red, parece razonable poner en funcionamiento el sistema reconocedor en el equipo más potente y que los ordenadores que ejecuten el programa de calibración funcionen como clientes de este.

Expuesta la problemática existente, se ha considerado como la opción más adecuada la definición de una interfaz cliente que se pueda incluir de forma sencilla en el programa existente y que interaccione con nuestro programa servidor. El proceso es el que se describe en la figura 4.45

1 Como es habitual, los equipos nuevos y más prestacionales se destinan a los departamentos donde se les vaya a sacar un mayor rendimiento, mientras los más antiguos se delegan a labores menos críticas. En esta situación nos podemos encontrar con auténticos “clásicos” dignos de coleccionista.

82

Page 95: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

Figura 4.45

La estructura de los paquetes intercambiados es muy sencilla y se muestra a continuación.

Trama de petición

• TX: 2 bytes con los caracteres ‘T’ y ‘X’.

• Longitud: Un entero de 4 bytes con la longitud de la foto a enviar.

• Punto de consigna: Un “float” de 4 bytes con el punto de consigna de la calibración.

• Margen: Un “flota” de 4 bytes con el margen (superior o inferior) en el que debería

mantenerse el número leído.

• Formato: Una cadena de longitud variable en la que se indica el formato numérico de la

pantalla a interpretar con un punto decimal y un número de ceros a la izquierda y a la derecha.

Ej. 00.00

Trama de asentimiento

• OK: 2 bytes con los caracteres ‘O’ y ‘K’.

Figura 4.46

83

Page 96: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 4: DESARROLLO

La trama con el resultado de la interpretación es una cadena de longitud variable que representa los caracteres leídos en la pantalla.

Los sockets utilizados son los proporcionados por la Winsock DLL de Windows para el protocolo TCP, siguiendo las recomendaciones que se pueden consultar en la ayuda de Visual Studio Professional 2005, y el puerto seleccionado para el servidor ha sido el 6666.

84

Page 97: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Capítulo 5

PRUEBAS Y RESULTADOS

En este capítulo explicaremos las pruebas aplicadas al sistema e interpretaremos los resultados obtenidos. No nos quedaremos en la mera presentación de una tabla con unos resultados numéricos, que frecuentemente son difíciles de interpretar y no aportan demasiada información sobre el funcionamiento real del sistema y los problemas encontrados. En contraposición, trataremos de abordar los casos más destacables con imágenes, tratando de ofrecer un razonamiento sobre los resultados obtenidos. Para ello, diferenciaremos entre varios tipos de pruebas, cada una enfocada a un aspecto diferente del funcionamiento del sistema.

85

Page 98: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

5.1 PRUEBA DE SECUENCIAS

El objetivo de este sistema de visión por computador es interpretar una serie de imágenes procedentes de un dispositivo que permanecerá en una posición física fija para observar la evolución de los datos en su pantalla. Por esta razón es importante evaluar los porcentajes de acierto en secuencias de imágenes que proceden del mismo aparato y comparten unas mismas condiciones de tamaño, iluminación, etc. Estas son imágenes de dispositivos que, de partida, sabemos que pueden ser interpretadas por el sistema1, pero, aún así, pueden producirse errores puntuales dentro de una misma secuencia.

Consideraremos un resultado como acierto solo en el caso de que todas las cifras del número sean correctas, siendo contabilizado como fallo cualquier otro caso. A la hora de considerar los aciertos y fallos, solamente tendremos en cuenta las cifras significativas de los números analizados. El caso de la detección del punto decimal no es relevante en este sentido, ya que en el caso de detección no directa, es obtenido a partir de la información de formato proporcionada por el usuario. Sin embargo, más adelante dedicaremos un apartado a comentar los resultados obtenidos y los problemas encontrados en la detección del punto analizando ejemplos concretos de imágenes, tanto sencillas como problemáticas.

También eliminaremos de estas secuencias aquellas imágenes en las que el número es captado por la cámara en proceso de cambio. La problemática de estas transiciones será abordada en un apartado posterior.

La estructura que adoptaremos será la siguiente:

1. En primer lugar presentaremos una serie de secuencias de imágenes para un determinado número de dispositivos distintos. Para cada una de ellas, mostraremos una imagen de ejemplo y comentaremos sus características. Se incluirán aquí tanto imágenes sencillas como casos de pantallas con condiciones que dificulten su lectura. Analizaremos el número total de imágenes, número de aciertos y número de fallos, así como los correspondientes porcentajes.

2. En segundo lugar ofreceremos unos resultados globales ponderados para esta situación.

1 No debemos olvidar que, en la fase inicial de puesta en marcha del sistema, el usuario selecciona en la imagen la zona de interés y recibe al momento una interpretación. Esto le permite comprobar que el sistema funciona correctamente para ese display o ajustar de nuevo la zona de interés si hubiese algún problema con la interpretación.

86

Page 99: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Caso 1

Display de siete segmentos con manchas de burbujas en plástico protector

_____________________________________ Número de imágenes analizadas: 12 Número de aciertos: 12 (100 %) Número de fallos: 0 (0 %) _____________________________________

Caso 2

Pantalla gráfica en buenas condiciones.

_____________________________________ Número de imágenes analizadas: 17 Número de aciertos: 17 (100 %) Número de fallos: 0 (0 %) _____________________________________

Caso 3 Pantalla gráfica cercana (en la que se acentúan las imperfecciones y rejilla de píxeles) con condiciones deficientes de iluminación.

_____________________________________ Número de imágenes analizadas: 37 Número de aciertos: 37 (100 %) Número de fallos: 0 (0 %) _____________________________________

87

Page 100: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Caso 4

Pantalla de siete segmentos inclinada con buenas condiciones de iluminación.

_____________________________________ Número de imágenes analizadas: 28 Número de aciertos: 28 (100 %) Número de fallos: 0 (0 %) _____________________________________

Caso 5

Pantalla de siete segmentos con sombra de los propios dígitos sobre el fondo de pantalla.

_____________________________________ Número de imágenes analizadas: 17 Número de aciertos: 17 (100 %) Número de fallos: 0 (0 %) _____________________________________

Caso 6

Misma pantalla se siete segmentos borrosa (mal enfocada).

_____________________________________ Número de imágenes analizadas: 19 Número de aciertos: 17 (89.4737 %) Número de fallos: 2 (10.5263 %) _____________________________________

88

Page 101: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Caso 7

Pantalla de siete segmentos inclinada con números brillantes sobre fondo oscuro y anomalías de rayado.

Detalle:

_____________________________________ Número de imágenes analizadas: 19 Número de aciertos: 18 (94.7368 %) Número de fallos: 1 (5.26316 %) _____________________________________

Caso 8

Misma pantalla que el caso anterior (con la misma anomalía de rayado), en la que el formato cambia de forma automática durante la serie de imágenes.

_____________________________________ Número de imágenes analizadas: 40 Número de aciertos: 39 (97.5 %) Número de fallos: 1 (2.5 %) _____________________________________

Caso 9

Otra pantalla de siete segmentos en buenas condiciones.

_____________________________________ Número de imágenes analizadas: 30 Número de aciertos: 29 (96.6667 %) Número de fallos: 1 (3.33333 %) _____________________________________

89

Page 102: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Caso 10

Pantalla de siete segmentos con manchas, bajo contraste y una ligera inclinación.

_____________________________________ Número de imágenes analizadas: 20 Número de aciertos: 20 (100 %) Número de fallos: 0 (0 %) _____________________________________

Caso 11

Misma pantalla de siete segmentos que el caso anterior, ahora con una deformación debida a al ángulo de incidencia.

_____________________________________ Número de imágenes analizadas: 12 Número de aciertos: 12 (100 %) Número de fallos: 0 (0 %) _____________________________________

Caso 12 Pantalla gráfica, altamente pixelada, con un desajuste de enfoque a la derecha debido a un ángulo de incidencia oblicuo.

_____________________________________ Número de imágenes analizadas: 59 Número de aciertos: 56 (94.9153 %) Número de fallos: 3 (5.08475 %) _____________________________________

90

Page 103: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Caso 13

Pantalla de siete segmentos con numerosas manchas.

_____________________________________ Número de imágenes analizadas: 30 Número de aciertos: 30 (100 %) Número de fallos: 0 (0 %) _____________________________________

Caso 14

Pantalla gráfica con bajo contraste.

_____________________________________ Número de imágenes analizadas: 28 Número de aciertos: 28 (100 %) Número de fallos: 0 (0 %) _____________________________________

Caso 15

Pantalla gráfica con influencia de rejilla de píxeles.

Detalle:

_____________________________________ Número de imágenes analizadas: 23 Número de aciertos: 21 (91.3043 %) Número de fallos: 2 (8.69565 %) _____________________________________

91

Page 104: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Caso 16 Pantalla gráfica.

_____________________________________ Número de imágenes analizadas: 58 Número de aciertos: 58 (100 %) Número de fallos: 0 (0 %) _____________________________________

Resultados globales

Número total de imágenes analizadas: 449

Número total de fallos: 10 (2.227 %)

Número total de aciertos: 439 (97.773 %)

5.2. PRUEBAS SIMPLES

En este apartado analizaremos los resultados de realizar pruebas individuales a diferentes pantallas. En este caso no disponemos de una secuencia completa para analizar el comportamiento global, pero podemos utilizarlas como orientación ante el tipo de pantallas que el sistema es capaz de interpretar y cuáles resultan problemáticas. Hemos decidido eliminar de este apartado aquellas pantallas con formatos similares a los ya presentados en las pruebas de secuencias, centrándonos solamente en aquellos instrumentos que presentan unas características numéricas diferentes de las habituales. También se presentarán algunas imágenes con unas condiciones poco favorables para su interpretación con el objetivo de ver cual es el comportamiento del sistema ante situaciones no deseables.

El procedimiento a seguir será el siguiente: se mostrará la imagen a interpretar y se indicará si el sistema la reconoce con éxito o no. Para facilitar la interpretación, también se mostrará la imagen resultante del proceso de binarización. En caso de fallo, se analizará el motivo y, en la medida de lo posible, se planteará una posible solución que será analizada en el capítulo dedicado a líneas futuras. En este caso, no presentaremos una tabla con los resultados de fallos y aciertos, ya que no resulta representativa, sino que el análisis será más cualitativo.

Debemos tener en cuenta que la mayoría de los displays probados en esta sección no forman parte del conjunto de instrumentos a los que el presente reconocedor

92

Page 105: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

está enfocado. Sin embargo, nos pueden dar una idea de su versatilidad y capacidad de adaptación a otras posibles aplicaciones.

De nuevo, al igual que en la sección anterior, no será tenida en cuenta la detección del punto decimal, cuyo análisis se deja para la siguiente sección. Consideraremos como aciertos solo los casos en los que todas las cifras sean identificadas correctamente, siendo catalogado como fallo cualquier otro caso.

Imagen original Imagen binarizada

Número interpretado correctamente: 20.04 El aspecto más importante aquí es la presencia de más de dos intensidades dominantes (los segmentos apagados de las cifras destacan sobre el fondo).

Número interpretado correctamente: 22.9 En este caso, vemos que el sistema se muestra robusto frente a sombras y reflejos en la pantalla.

Número interpretado correctamente: 22.0 La dificultad de esta imagen reside en las machas debidas a un plástico protector despegado.

Número interpretado correctamente: 23.02 En este caso la imagen es mostrada en un monitor del tipo CRT.

Número interpretado incorrectamente: 5.5-7.5.5 El número interpretado en este caso carece de sentido. Al presentar una pantalla tan pixelada, no se efectúa la segmentación correctamente (dividiendo las cifras en varios trozos). Por otra parte, el formato numérico con el ‘0’ barrado no había sido considerado en el alfabeto de patrones, por lo que no se interpreta de forma correcta.

93

Page 106: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Número interpretado correctamente: 23.5 En este caso nos encontramos con una pantalla fuertemente dañada, lo que implica números borrosos.

Número interpretado correctamente: 45.678 Número sacado de una pantalla tipo LCD con un formato numérico de fuente escrita.

Número interpretado correctamente: 60.0 Display de siete segmentos amarillo, desenfocado.

Número interpretado incorrectamente: 12.3 El problema para interpretar esta pantalla es debido a su poca definición. Las líneas que forman los trazos de las cifras solo tienen un único píxel de grosor y, tras la binarización, se forman regiones aisladas que dan lugar a una mala segmentación.

Número interpretado correctamente: 0.01 El problema del brillo en la esquina superior derecha es solucionado mediante la técnica de binarización con umbrales múltiples.

Número interpretado incorrectamente: 277.8 El punto que aparece en la parte superior no forma parte del número a interpretar, sino que se corresponde con una indicación externa del dispositivo (en este caso concreto indica si la medición se efectúa en grados centígrados o Fahrenheit). Dado que en nuestro sistema no se contaba con la presencia de ese símbolo es interpretado como si fuera una cifra más, en este caso, un 7. Una posible solución a este problema se presentará en el capítulo dedicado a líneas futuras.

94

Page 107: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Número interpretado correctamente: 333.35 Display de siete segmentos en rojo (ver ejemplo siguiente).

Número interpretado incorrectamente: 337.39 Se muestra en este caso el mismo display que en el caso anterior, pero ahora se ha tomado la imagen sin cuidar la iluminación. Los reflejos producidos, junto con la suciedad y rayas de la pantalla (que se agudizan debido a la luz) impiden la correcta interpretación.

Número interpretado incorrectamente: 301.2 Demasiada iluminación satura la el CCD de la cámara, dando lugar a números borrosos. En estos casos es recomendable reducir la apertura en la lente.

Número interpretado correctamente: 123 La presencia de esta imagen aquí es una pura anécdota (a nosotros también nos sorprendió su correcta interpretación).

5.3. DETECCIÓN DEL PUNTO DECIMAL

Aunque éste no es un problema crítico, dedicaremos esta sección a analizar el caso de la detección del punto decimal. El mayor problema ante el que nos encontramos es la variedad de formatos numéricos ante los que nos podemos encontrar: Hay equipos en los que el punto decimal se encuentra en la parte inferior entre dos cifras, aumentando la separación entre estas; en otros se encuentra en la misma posición, pero se mantiene la distancia entre cifras, con lo que el punto aparece muy próximo a éstas (llegando a estar pegado en algunos casos). En otras pantallas, el punto aparece por debajo de las cifras decimales o a mitad de altura, en algunos casos, el punto deja de ser punto y es una coma u otro símbolo extraño, etc.

A esta problemática hay que sumar la complicación añadida que aparece cuando trabajamos con imágenes borrosas o con un mal enfoque. En estos casos, el punto, que ya de por sí aparece siempre más próximo a las cifras que éstas entre sí, acaba uniéndose a la parte inferior de la cifra contigua, haciendo imposible su separación.

95

Page 108: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

A continuación mostraremos algunos ejemplos de casos en los que se complica la detección del punto decimal.

Ejemplo 1

La sombra producida por las cifras sobre el fondo de pantalla, junto con un desajuste en el enfoque hace que aparezcan unidos cifras y punto decimal en la imagen binarizada. El segmentador consigue separar correctamente las cifras y proporciona una buena interpretación, pero es necesario hacer uso de la información externa sobre el formato numérico para situar el punto decimal.

Ejemplo 2

En este caso, a la proximidad entre el punto decimal y la cifra de la izquierda, se suma la presencia de machas claras en el entorno de este. La influencia de estas en el histograma local de esa zona hace que el umbral calculado para la binarización se desplace hacia posiciones mas elevadas (más claro), provocando la unión entre la cifra y el punto decimal. De nuevo, en esta situación se soluciona con el uso de la información de formato.

Ejemplo 3

En este ejemplo, vemos como la inclinación de la cifra hace imposible separarla del punto decimal mediante la proyección. Sin embargo, este es localizado con éxito mediante la técnica de búsqueda desarrollada para estos casos y explicada en el capítulo dedicado al desarrollo del proyecto. En esta situación no es necesario hacer uso de la información de formato para la localización.

96

Page 109: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

5.4. PROBLEMÁTICA DE LAS TRANSICIONES

La elevada precisión de algunos de los aparatos hace que sean sensibles a cambios mínimos en las magnitudes a medir. Si a esto se suma la lentitud de algunas de las pantallas, da lugar a imágenes como las siguientes:

Número interpretado: 27.16

Número interpretado: 35.28

Número interpretado: 30.3

Número interpretado: -0-027

Figura 5.1

En la figura 5.1 se muestran las imágenes junto con los resultados interpretados por el sistema. Estas imágenes fueron capturadas en un periodo de transición de la pantalla entre dos números diferentes. En estos casos, ni siquiera un supervisor humano sería capaz de interpretar el número presente en la pantalla.

Aunque este problema pueda parecer alarmante, durante el uso habitual del sistema no será frecuente. En el propio procedimiento de calibración se incluye el esperar a que el conjunto formado por el medio y el instrumento a calibrar permanezcan estables. Por esta razón, el impacto de estos casos será mínimo, pero aún así sería conveniente que fueran tratados. En el capítulo dedicado a líneas futuras retomaremos de nuevo este tema.

5.5. CONSIDERACIONES FINALES

Existen una serie de consideraciones generales que es necesario tener en cuenta a la hora de interpretar los resultados obtenidos. En las pruebas realizadas y presentadas en el presente capítulo, para ofrecer una visión más general sobre los diferentes casos posibles y aplicaciones de este sistema, hemos tratado de mostrar ejemplos de lo más variado en cuanto a las pantallas presentadas. Por ello, hemos considerado por igual los aparatos que más frecuentemente son calibrados en el laboratorio y los casos especiales y poco habituales mostrados en esta documentación.

97

Page 110: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 5: PRUEBAS Y RESULTADOS

Sin embargo, la realidad del trabajo diario en el laboratorio de calibración es un poco distinta y, a la vez, más favorable para el sistema reconocedor. A pesar de la gran variedad de formatos numéricos con los que nos podemos encontrar, aproximadamente el 70 % de los instrumentos (termómetros y termohigrómetros) presentan un display típico de siete segmentos. A la vista de los resultados obtenidos, en caso de disponer de pantallas en buen estado y unas imágenes con unas condiciones razonables de iluminación, inclinación, enfoque, etc. no debería de haber problemas para llevar a cabo su interpretación.

De este modo, si a la hora de calcular los porcentajes de éxito de nuestro reconocedor tuviésemos en cuenta las diferentes probabilidades de ocurrencia de los distintos tipos de pantallas, el recuento de aciertos sería mayor.

98

Page 111: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 6: CONCLUSIONES

Capítulo 6

CONCLUSIONES

En un entorno de trabajo cada vez más competitivo, resulta de vital importancia agilizar los procesos para evitar retrasos, disminuir tiempos de espera y, en definitiva, aumentar la calidad de los productos y servicios ofertados. Para lograr este objetivo, es necesario evitar que personal cualificado realice tareas repetitivas y poco especializadas que le retrasen en sus labores principales. Por ello, la automatización de estas tareas es necesaria para conseguir el aumento de calidad demandado. Las técnicas de visión artificial son una herramienta fundamental en los procesos de automatización, inspección y supervisión industrial.

En el caso que nos ocupa, liberar al técnico de laboratorio de las tareas de anotación e interpretación manual de los resultados de las mediciones, le permite centrarse en los trabajos que requieren un conocimiento y dedicación específico. No se trata solo del tiempo que se pierde en llevar a cabo las anotaciones, sino de su necesidad de atención, en tiempo real estricto, en el momento preciso en que se den las condiciones adecuadas para la medición, impidiendo así la realización de cualquier trabajo simultaneo que no permita espera. Eliminando esta problemática se consigue aumentar considerablemente el rendimiento del laboratorio.

99

Page 112: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 6: CONCLUSIONES

Como se ha remarcado continuamente a lo largo de esta documentación, no se pueden perder nunca de vista las necesidades que se pretenden solucionar con el proyecto, el uso que se le va a dar y sus usuarios finales. Este aspecto supone una gran diferencia frente a proyectos puramente académicos o teóricos, en los que quizá exista más libertad en la toma de decisiones, mientras que la necesidad de dar aplicación a los resultados obtenidos marca enormemente las decisiones adoptadas. En este sentido, se revela como un factor fundamental el diálogo e interacción constate con las personas que van a usar la aplicación. Tener siempre en el punto de mira las necesidades reales y las aportaciones que pueden hacer los usuarios en el sistema, facilitará el diseño y evitará pérdidas de tiempo en desarrollos innecesarios que no aporten verdadero valor a la aplicación. En definitiva, ajustarse en la medida de lo posible, a lo que el destinatario espera del sistema aumentará su valor de forma más evidente que las prestaciones más sofisticadas, pero que no aporten utilidad real.

Los resultados obtenidos son muy satisfactorios, no solo por la adecuación a la solución de los problemas planteados, sino también por la versatilidad alcanzada. Esta permite intuir numerosas aplicaciones de utilidad real en el campo de la lectura y supervisión automática de cualquier dispositivo que presente un valor numérico correspondiente a la medida de una magnitud física.

Tras esta reflexión general, podemos extraer una serie de conclusiones más específicas a partir de los resultados de las pruebas realizadas. Nos centraremos, a continuación, en algunos aspectos relacionados con el funcionamiento observado del sistema.

Es importante destacar en este apartado los beneficios de trabajar con unas buenas imágenes. Con esto nos referimos a unas buenas condiciones de iluminación, posicionamiento (evitando ángulos de inclinación excesivos o deformaciones debidas al ángulo de incidencia), enfoque, etc. Hemos visto en los ejemplos analizados como ante una misma pantalla, variando las condiciones de obtención de la imagen, se puede pasar de ser imposible su interpretación a no presentar ningún problema. Por esta razón será de vital importancia proporcionar a los técnicos que vayan a hacer uso del programa una guía con la información precisa para la correcta obtención de las imágenes (ver apéndice (A)).

Otro aspecto de interés es que, en un principio, se pensó que el mayor problema que se iba a presentar al afrontar este proyecto iba a ser la multitud de formatos numéricos posibles. Sin embargo, se ha observado que el reconocedor se comporta de forma correcta en la mayoría de los casos en los que se enfrenta a fuentes desconocidas. Esto se debe a que, a pesar de que varíen los tipos, el alfabeto de las cifras es relativamente corto y los rasgos característicos y diferenciadores entre símbolos suelen mantener una línea de cohesión entre sí. Por el contrario, los problemas suelen venir de la etapa de binarización y segmentación, cuando la pantalla presenta texturas extrañas. Con esto, nos referimos a displays, como algunos de los mostrados en el capítulo de pruebas, en los que la rejilla de los píxeles se hace muy marcada, perdiendo

100

Page 113: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 6: CONCLUSIONES

uniformidad. Ante estas condiciones se puede producir una incorrecta segmentación de los caracteres1.

Una forma sencilla de evitar problemas con este tipo de pantallas consiste en lo siguiente: si disponemos de espacio suficiente para colocar la cámara sin interferir en el trabajo del laboratorio, podemos tratar de situarla lo más alejada posible de nuestro objetivo. De esta forma, lo que estamos haciendo, en cierta medida, es un filtrado en la propia captura de la imagen, disminuyendo la influencia de las imperfecciones y textura rugosa de la pantalla. En caso de no disponer de espacio, se puede conseguir un efecto parecido desenfocando ligeramente la imagen. Claro está que, en la mayoría de los casos, el mejor funcionamiento se consigue con imágenes cercanas y bien enfocadas, por lo que este procedimiento solo debe realizarse en situaciones con pantallas atípicas en las que se detecte que pueda haber problemas de este tipo.

También resulta destacable que, tras observar el funcionamiento del método de inspección visual en conjunción con los métodos de extracción de características y clasificación, se ha revelado como una gran ventaja. Hemos decidido ser muy conservadores en su utilización, dándole un peso relativamente bajo en el conjunto final de la decisión de forma que funcione como una ayuda a la diferenciación entre caracteres dudosos. Sin embargo, siendo inicialmente un método probado sin demasiadas expectativas, ha resultado ser una herramienta muy potente, que ofrece resultados interesantes, incluso de forma independiente, y que merece seguir siendo mejorada.

1 A este respecto, se recomienda leer el capítulo de líneas futuras, fuertemente ligado a este de conclusiones, y en el que se tratan algunas de las líneas de trabajo que permitirán solucionar las limitaciones encontradas.

101

Page 114: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 6: CONCLUSIONES

102

Page 115: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 7: LÍNEAS FUTURAS

Capítulo 7

LÍNEAS FUTURAS

Uno de los aspectos más satisfactorios que nos hemos encontrado a la hora de realizar este proyecto, es la cantidad de modificaciones, ampliaciones y nuevas aplicaciones que admite. Su realización deja gran variedad de líneas abiertas en las que mejorar su funcionamiento, añadir nuevas funcionalidades o realizar modificaciones y estudios que permitan su adaptación a nuevos campos. A veces puede llegar a resultar difícil, en proyectos de este tipo, saber donde parar una vez alcanzados los objetivos, ya que la adición de mejoras puede ser constante. Por ello, a continuación trataremos de presentar y justificar algunas de las múltiples líneas futuras, algunas de las cuales están siendo ya exploradas en el momento de escritura de esta documentación.

Cuando se toman los datos de entrada para una calibración en el software de captura de imagen, se selecciona en un rectángulo la zona de interés con el número a interpretar. Como, además, el dispositivo va a permanecer inmóvil durante todo el proceso de calibración, no se hace necesario utilizar técnicas de localización de la zona de caracteres, que es recortada por el usuario. Sin embargo, podría resultar interesante buscar alternativas para realizar esta localización de forma automática. Nos surge entonces una pregunta, ¿para qué necesitamos la localización automática si al técnico no le supone ningún esfuerzo la selección manual en la configuración inicial? La respuesta es que, en la mayoría de los casos, no sería necesaria (prueba de ello es que el sistema

103

Page 116: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 7: LÍNEAS FUTURAS

funciona correctamente). Sin embargo, recortar “a mano” no es el procedimiento más preciso y, a veces, puede incurrirse en situaciones no recomendables (ver guía de obtención de imágenes en el apéndice (A)) que dificulten el reconocimiento.

Para alcanzar este objetivo, además de las técnicas habituales y presentes en la bibliografía, presentamos a continuación una posibilidad adaptada a nuestro caso concreto. En esta aplicación, disponemos de una secuencia de imágenes. Además, estas permanecen estáticas, a excepción de las cifras a interpretar, que varían de una medición a otra. Pues bien, si en lugar de procesar cada imagen por separado utilizamos toda la secuencia disponible, parece sencillo realizar operaciones de comparación entre las imágenes (sumas y restas) para localizar las zonas de variación, que se corresponden con la zona de interés.

Desgraciadamente, la situación no es tan fácil, ya que existen otros factores que contribuyen a aumentar la diferencia entre imágenes, como cambios en la iluminación global o en los focos y orientación de ésta1. Así y todo, esta línea de trabajo se muestra como muy prometedora.

Otra línea de trabajo interesante es la utilización de la colorimetría en la fase de preprocesado. Como se sugirió en el capítulo dedicado al desarrollo, una correcta ponderación de los colores en la conversión de las imágenes RGB a escala de gris mejora el contraste y la diferenciación entre los distintos tonos. Llevado a casos extremos, puede marcar la diferencia entre poder diferenciar entre dos tonos de color o que ambos produzcan la misma intensidad en la escala de grises, perdiéndose así información que puede ser relevante. Sin embargo, si lo enfocamos desde otro punto de vista, a veces hay cierta información que puede ser interesante perder. A continuación, mostraremos un ejemplo.

Un problema que se da frecuentemente en las imágenes a interpretar es la presencia de sombras en la pantalla, debidas a demasiada proximidad entre los números y los salientes de la carcasa, iluminación con focos justo encima del aparato, etc. Esto da lugar a diferencias en la escala de grises entre las zonas iluminadas y de sombra que, de ser posible, sería de gran utilidad eliminar.

Pues bien, ¿qué papel puede jugar aquí la colorimetría? Para poder responder a esto, falta exponer un último factor en la ecuación. Curiosamente, la gran mayoría de los displays de los instrumentos analizados presentan un tono de color verde en su pantalla, otros son azules o rojos, etc. Es decir, generalmente existe un color claramente dominante en su pantalla. Dicho esto, podríamos utilizar esta característica para eliminar la influencia de manchas o sombras en la pantalla. Es decir, jugando con los pesos asignados a cada una de las componentes de color en la conversión, se puede hacer que las partes que nos interese igualar se aproximen entre si y las partes que nos interese destacar aumenten su diferenciación. Claro está que, para poder llevar a cabo este procedimiento con unos resultados exitosos, es necesario un estudio minucioso de cómo aplicarlo a cada situación y qué resulta lo más efectivo en cada tipo de pantalla (con un determinado color, textura, etc.)

1 Una luz que se enciende o se apaga, una sombra de algo o alguien que asa cerca, la propia variación de la luz a lo largo del día, etc.

104

Page 117: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 7: LÍNEAS FUTURAS

A modo de curiosidad mostramos en la figura 7.1 el efecto de binarizar una imagen en color tras pasarla a escala de grises teniendo en cuenta solo una de sus componentes de color.

Imagen original

Escala de grises usando las tres

componentes

Imagen binaria usando las tres

componentes

Escala de grises usando solamente el rojo Imagen binaria de la componente roja

Escala de grises usando solamente el

verde

Imagen binaria de la componente verde

Escala de grises usando solamente el azul Imagen binaria de la componente azul

Figura 7.1

105

Page 118: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 7: LÍNEAS FUTURAS

El problema que se presenta a continuación ya fue introducido en el capítulo de pruebas. Se ha observado la existencia de algunos instrumentos que presentan cierta información complementaria al valor de la medición realizada y que aparece, literalmente, en medio de los números. Un ejemplo de ello se muestra en la figura 7.2, en la que el punto que se sitúa entre el 2 y el 7 proporciona información sobre la escala de temperatura utilizada (ºC o Fahrenheit).

Figura 7.2

Una herramienta que sería de gran utilidad para el funcionamiento del sistema en estos casos sería que el usuario, en la fase inicial de introducción de parámetros, pudiese marcar determinadas regiones a eliminar de la zona de interés. Una forma sencilla sería permitirle marcar con un rectángulo la zona a eliminar y sustituir esos píxeles con el valor medio de los puntos que forman el borde del rectángulo marcado1. Además, con este sistema también se permitiría eliminar manchas debidas a daños en la pantalla del aparato (siempre que no estén sobre los trazos de una cifra).

Zona a eliminar seleccionada Imagen resultante

Figura 7.3

1 Esta es una mera propuesta a modo de ejemplo. Seguramente se podrían estudiar soluciones mejores para rellenar la región marcada.

106

Page 119: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 7: LÍNEAS FUTURAS

Otro problema, ya introducido también en el capítulo de pruebas, es el caso en que las imágenes tomadas se corresponden con un proceso de transición entre dos números en la pantalla. Actualmente, el sistema no es capaz de reconocer esta situación, con lo que trata de interpretarla igualmente, proporcionando un resultado ficticio1.

Será objeto de estudio el tratar de buscar un método consistente para poder rechazar estos casos, en los que tampoco un observador humano podría decidir (ver figura 7.4).

¿Cuáles son las dos cifras decimales? Podemos razonar que una está entre un 7 y un 5 y la otra entre un 0 y un 3. Sin embargo, si vamos más allá, a lo que más se parecen ambas es a un 8…

Figura 7.4

Alguna posible aproximación a una solución sería fijar el tipo de fuente en los parámetros de entrada. De esta forma, tomando como ejemplo la figura 7.4, si la cifra se determina como un 8, pero no se corresponde con el tipo definido, se descarta. Sin embargo, se plantean aquí otros muchos problemas: ¿es posible definir tipos que abarquen todas las posibilidades? Si no es así, ¿cómo decidir a cual corresponde una entrada determinada? ¿No estamos limitando realmente todo el funcionamiento del sistema al fijar la entrada?, etc. Otra posibilidad podría ser descartar las cifras dudosas.

Otra línea de trabajo, también adelantada en el capítulo de pruebas, es el tratar aquellos tipos de pantallas gráficas de baja resolución, que presentan una separación entre píxeles del mismo orden de magnitud que su diámetro. En estros casos, el aspecto de rejilla del display, llevaba a fallos (comentados anteriormente) en la segmentación de caracteres.

Figura 7.5

1 Cualquier resultado interpretado sería erróneo, ya que estaríamos decidiendo un valor cuando en realidad no hay forma de saber cual es (en ese momento, el instrumento no está proporcionando una medición válida).

107

Page 120: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Capítulo 7: LÍNEAS FUTURAS

Una posible solución a este problema se podría abordar mediante la utilización de operaciones de morfología matemática (opening y closing) sobre la imagen binarizada para conseguir que los puntos de los caracteres se unan formando trazos. El problema es que, con este procedimiento, probablemente causaríamos problemas en las imágenes en las que no se da esta condición. Para tratar de evitarlo, se puede dar al usuario del programa la opción de realizar o no esta operación en la fase inicial de configuración del sistema.

Hasta ahora, hemos tratado en todo momento líneas futuras que tratan de resolver problemas concretos e identificados en el sistema, siendo todas ellas soluciones que han sido previamente analizadas. A continuación serán propuestas una serie de líneas más generales y que no tratan de modificar ni mejorar el comportamiento del sistema ante determinadas situaciones, sino ampliar sus funcionalidades. Aquí no nos detendremos a dar una explicación, sino más bien una enumeración de posibles líneas de trabajo que continúen este proyecto.

En este sentido, una línea pendiente es el reconocimiento de medidores analógicos de agujas. Aunque son minoritarios frente a los aparatos que presentan un display digital, puede ser interesante desarrollar un sistema capaz de reconocer estos dispositivos. Claro está que el tratamiento, en cuanto al sistema de visión artificial, sería completamente diferente al que se aborda en este proyecto.

Por otra parte, también resultaría de utilidad llevar a cabo un estudio detallado de los tipos de pantallas que presentan los instrumentos de medida que más frecuente llegan al laboratorio de calibración. Se deberían analizar características físicas de pantalla como dimensiones, color, iluminación interna y otras como formato numérico, tipo de fuente, autoapagado, etc. Así como las tendencias y expectativas de futuro. Tampoco debemos limitarnos a los termómetros y termohigrómetros, que son el objetivo de este proyecto, sino que deberían ser abordados todo tipo de instrumentos que presente una pantalla digital sobre la que realizar lecturas. Esta información conformaría una base de datos de gran valor y utilidad a la hora de decidir qué rumbo tomar para las mejoras y líneas de trabajo en el campo de la lectura automática de instrumentos de medida.

108

Page 121: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice A: GUÍA RÁPIDA DE OBTENCIÓN DE IMÁGENES

Apéndice (A)

GUÍA RÁPIDA DE OBTENCIÓN DE

IMÁGENES

La captura de las imágenes es la parte más importante en cualquier sistema de visión artificial. Si la imagen es buena, se le facilitará el trabajo al sistema reconocedor, mientras que si la imagen es mala, por potente que sea el sistema, será imposible su reconocimiento. Por imagen buena, entendemos aquella en la que un supervisor humano puede interpretar el resultado a simple vista, sin realizar un esfuerzo excesivo.

A continuación se describe el procedimiento básico para la obtención de imágenes que puedan ser interpretadas correctamente por el sistema reconocedor. Seguir estos pasos sencillos contribuirá a disminuir la presencia de fallos.

109

Page 122: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice A: GUÍA RÁPIDA DE OBTENCIÓN DE IMÁGENES

• Con el objetivo de que interfiera lo menos posible en el trabajo en el laboratorio trataremos de minimizar la distancia entre la cámara y el dispositivo a fotografiar.

• Ambos dispositivos deben estar colocados lo más firmemente posible, de forma

que se evite cualquier desplazamiento durante el tiempo que dure todo el proceso de captura de imágenes. En el caso de la cámara, hay que tener especial cuidado en el ajuste del trípode.

• La pantalla del instrumento a medir y la cámara deben estar enfrentadas de forma lo más perpendicular posible, evitando las situaciones descritas en la figura.

Colocación incorrecta Colocación correcta

• También es recomendable mantener el número lo más horizontal posible en la imagen capturada, evitando ángulos de inclinación elevados.

Imagen correcta Imagen incorrecta

• Se debe ajustar el enfoque de la cámara hasta conseguir una imagen lo más nítida posible, consiguiendo que los bordes de los trazos de las cifras estén bien definidos.

Mal Aceptable Bien

110

Page 123: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice A: GUÍA RÁPIDA DE OBTENCIÓN DE IMÁGENES

• Se debe ajustar la luz admitida por la cámara de forma que no sature la imagen. Por norma general, en los displays autoiluminados (como, por ejemplo, los de LEDs rojos) deberemos disminuir la apertura y en los displays sin iluminación deberemos aumentarla.

• Se debe procurar evitar reflejos y sombras sobre los números a leer. Hay que tener especial cuidado con la sombra que produce el borde de la pantalla cuando el instrumento se encuentra debajo de una fuente de luz.

Cuidado con esto.

• Para seleccionar la zona de interés, se debe ajustar el recuadro a los números a leer, evitando espacios grandes (de tamaño comparable al de una cifra) en los bordes, pero sin llegar a cortar las cifras.

Bien Mal: demasiado espacio a la izq.

del número

Mal: se cortan los bordes

• En caso de no poder cumplir alguna de las condiciones anteriores, es recomendable usar el sentido común... ¿qué te ayudaría a ti, como observador humano, a ver mejor el número en la imagen?, ¿aumentar la luz? ¿disminuir la inclinación?, ¿evitar esa sombra en la esquina?, etc.

• Tras la selección de la zona de interés, se debe comprobar el número interpretado. Si es correcto, se puede seguir adelante. Si es falso, se debe probar a seleccionar de nuevo. Si persiste el fallo, se deben revisar los pasos anteriores (colocación, enfoque, iluminación, etc.)

111

Page 124: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice A: GUÍA RÁPIDA DE OBTENCIÓN DE IMÁGENES

112

Page 125: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice B: INSTRUCCIONES DE COMPILACIÓN

Apéndice (B)

INSTRUCCIONES DE

COMPILACIÓN

Describiremos a continuación, las herramientas necesarias y los procedimientos a seguir para la correcta compilación y ejecución del proyecto en el entorno de un sistema operativo Windows.

Herramientas necesarias

Para poder utilizar este sistema serán necesarios una serie de requisitos previos. Esto es, contar con una serie de herramientas software para su correcta compilación.

• Entorno de desarrollo y compilador Visual Studio Professional 2005 de Microsoft.

• Herramienta CMake. Podemos obtener la última versión a través de la página web www.cmake.org. Aunque también está disponible el código fuente, el que a nosotros nos ineresará será el archivo ejecutables (.exe) para entornos Windows. El desarrollo de este proyecto se ha llevado a cabo con la versión 2.4.7 de CMake.

113

Page 126: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice B: INSTRUCCIONES DE COMPILACIÓN

• Librerías VXL. Estas bibliotecas pueden ser obtenidas a través de la web http://vxl.sourceforge.net/ en donde está disponible la última versión. Para el desarrollo de este proyecto se ha hecho uso de la versión 1.9.0 de VXL.

Instalación de las herramientas

Obviaremos aquí el proceso de instalación del entorno Visual Studio Professional 2005, ya que es un proceso sumamente sencillo y el instalador proporcionado con la distribución indica todos los pasos de forma interactiva. Tampoco supondrá ninguna complicación la instalación de la herramienta CMake. Algo más de atención merecen las bibliotecas VXL.

Instalación de CMake

El procedimiento para instalar esta herramienta será muy sencillo ya que en la página oficial se nos proporciona directamente el instalador para Winows. No tenemos más que descargar el archivo cmake-2.4.7-win32-x86.exe de la página oficial de CMake, www.cmake.org y seguir los pasos que se nos indican. También se podrá obtener este archivo del soporte digital que acompaña a esta documentación.

Instalación de VXL

En este caso, necesitamos obtener la versión no compilada de VXL. Esto lo podemos realizar a través de la página http://vxl.sourceforge.net/. El fichero a descargar tiene el nombre vxl-1.9.0.zip y se corresponde con la última versión disponible. También se proporciona una copia en el soporte digital que acompaña esta documentación. Para poder llevar a cabo la instalación de VXL será imprescindible contar con la herramienta CMake previamente instalada. Los pasos a seguir son los siguientes:

• Creamos un directorio en el que instalar la librería vxl, por ejemplo, C:\vxl\

• Descomprimimos el fichero descargado (vxl-1.9.0.zip) en el directorio escogido, dando lugar al subdirectorio vxl-1.9.0 (C:\vxl\vxl-1.9.0).

• En el mismo directorio (C:\vxl\) creamos otra carpeta en la que se ubicarán los

archivos binarios. La llamaremos bin.

• Lanzamos el CMake.

• Seleccionamos el directorio fuente, el directorio para ejecutables y el compilador.

114

Page 127: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice B: INSTRUCCIONES DE COMPILACIÓN

• Desactivamos las opciones siguientes: o BUILD_EXAMPLES o BUILD_SHARED_LIBS o BUILD_TESTING

Para las demás, mantenemos las opciones por defecto.

• Hacemos click en “Configure”.

• Hacemos click en“Ok”.

• Abrimos el archive .sln en el directorio C:\vxl\bin\

• Ya en el Visual Studio, seleccionamos ALL_BUILD Project y lo compilamos. Esta operación puede tardar entre 15 minutos y media hora dependiendo de la potencia del equipo...

Después de eso, tendremos compiladas en el directorio C:\vxl\bin\ todo el conjunto de librerías VXL.

Compilación del proyecto

Una vez instaladas todas las herramientas necesarias para la utilización del proyecto, explicaremos el procedimiento a seguir para su compilación.

El primer paso que debemos dar será el de obtener la versión no compilada del proyecto desarrollado. Para ello, podemos copiar directamente el directorio aplicación que se incluye en el soporte digital que acompaña a esta documentación. Dentro de ese directorio encontraremos el subdirectorio bin, el subdirectorio src y un archivo “CMakeLists.txt”. El contenido de ese archivo es:

#Nombre del proyecto "VISION"

PROJECT(VISION)

SET(VXL_DIR C:/PFC/bin)

SET(EXECUTABLE_OUTPUT_PATH ${VISION_SOURCE_DIR}/bin)

FIND_PACKAGE(VXL)

115

Page 128: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice B: INSTRUCCIONES DE COMPILACIÓN

IF(VXL_FOUND)

INCLUDE(${VXL_CMAKE_DIR}/UseVXL.cmake)

ENDIF(VXL_FOUND)

#El codigo fuente se encuentra todo almacenado en el directorio src

SUBDIRS(src)

Substituimos la línea

SET(VXL_DIR C:/PFC/bin)

por

SET(VXL_DIR C:/vxl/bin)

que es el directorio donde hemos instalado las bibliotecas VXL. Mediante este cambio indicamos a CMake donde puede encontrar las bibliotecas VXL que necesitamos enlazar para compilar el proyecto.

De nuevo tendremos que ejecutar la herramienta CMake, indicando, como directorios fuente y binarios, src y bin respectivamente. En este caso, aceptamos todas las opciones por defecto y generamos la solución correspondiente para el compilador de Visual Studio 2005.

Finalmente, abrimos con el Visual Studio la solución generada, que recibe el nombre VISION.sln (dentro de aplicación\bin\) y la compilamos. Tras esto, en el directorio aplicación\bin\debug\ tendremos el archivo procesa.exe, que es el ejecutable para Windows del servidor de reconocimiento.

Para poder ejecutar el servidor, necesitamos copiar en el mismo directorio en la que situemos el archivo ejecutable (procesa.exe) la carpeta con los patrones (ver contenido del CD).

Ejecución del sistema previamente compilado

También es posible obtener del soporte digital el sistema previamente compilado y preparado para ser ejecutado directamente en un entorno Windows, sin necesidad de realizar los pasos anteriores. Para ello no tenemos más que copiar la carpeta correspondiente (ver contenido del CD) del CD a nuestro disco duro y ejecutar el archivo procesa.exe.

116

Page 129: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice C: USO DE LA APLICACIÓN DE CAPTURA

Apéndice (C)

USO DE LA APLICACIÓN DE

CAPTURA

Se explica aquí el funcionamiento básico del software de calibración. Prescindiremos de los pasos dedicados a la introducción de parámetros necesarios para la elaboración de los informes, que no resultan relevantes para nuestro proyecto. Intentaremos ilustrar, por tanto, solamente la parte dedicada a la captura de imágenes y la interpretación de resultados.

Empezaremos entonces, directamente en la ventana en la que se selecciona la cámara fotográfica y todo lo relacionado con ella. Distinguimos dos partes: Elegir Cámara y Configurar.

Si deseamos cámara fotográfica (siempre, en el caso que nos ocupa) debemos seleccionar Usar Cámara Fotográfica, y a continuación elegir una de la lista desplegable Cámara Fotográfica.

La opción Se quiere interpretación significa que el sistema interpretará las fotografías efectuadas a los displays de las muestras, extrayendo su valor e incorporándolo a los archivos de salida del proceso. Si esta opción no se selecciona, no se realizará ninguna interpretación sobre los archivos, quedando en manos del técnico.

117

Page 130: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice C: USO DE LA APLICACIÓN DE CAPTURA

Una vez seleccionada una cámara fotográfica, es hora de configurarla. El primer paso es asegurarse de que la cámara está conectada a la computadora, y tiene alimentación eléctrica. Comprobado esto, debemos pulsar el botón Configurar. Dependiendo del modelo, esta tarea puede tardar varios segundos.

Ventana de cámara fotográfica de la nueva calibración

También se introducirá en este punto, de forma opcional, los parámetros relativos a formato numérico, punto de consigna y margen.

Una vez está configurada la cámara, debemos pulsar Capturar para obtener una imagen. En este momento indicaremos qué zona de la foto recoge el display de cada calibrando introducido en la primera ventana del alta de calibración.

Debemos hacer clic en la esquina superior izquierda del display, arrastrar hasta la esquina inferior derecha del mismo, y soltar. Veremos cómo surge un rectángulo azul indicando la zona que estamos seleccionando. Al soltar, la imagen cambiará, reflejando la zona concreta que acabamos de seleccionar.

118

Page 131: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice C: USO DE LA APLICACIÓN DE CAPTURA

Detalle de la selección de display en la ventana de cámara fotográfica de la nueva calibración.

Resultado de la selección de display en la ventana de cámara fotográfica de la nueva calibración.

119

Page 132: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice C: USO DE LA APLICACIÓN DE CAPTURA

Tras la selección se muestra el número interpretado en la pantalla. Si después de hacer esta operación vemos que la zona recortada no es la que deseamos o que el número no es el correcto, debemos pulsar Capturar para volver a tomar una imagen de la cámara, y volver a repetir la operación de selección. Si, por el contrario, la selección tiene éxito, debemos pulsar en el botón Adelante para continuar con la calibración.

A continuación mostraremos un ejemplo de ejecución, en el que se ve cómo se van mostrando las imágenes junto con los resultados interpretados que, posteriormente serán volcados a la hoja de cálculo para realizar el informe correspondiente.

120

Page 133: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice C: USO DE LA APLICACIÓN DE CAPTURA

Proceso en ejecución

121

Page 134: Lectura Automática de Instrumentos de Medida Mediante Técnicas

Apéndice C: USO DE LA APLICACIÓN DE CAPTURA

122

Page 135: Lectura Automática de Instrumentos de Medida Mediante Técnicas

BIBLIOGRAFÍA

BIBLIOGRAFÍA

[F. Martín] Contribución al reconocimiento de caracteres en imágenes

complejas, Fernando Martín Rodríguez. Tesis Doctoral.

Universidad de Vigo, 1999.

[A. Dacal] Sistema de calibración automática de termohigrómetros,

Ángel Dacal Nieto. Proyecto Fin de Carrera. Universidad

de Vigo, 2007. Director: Arno Formella. Codirector:

Higinio González Jorge.

[Gonzalez & Woods] Rafael C. González, Richard E. Woods. Digital Image

Processing. Ed. Prentice Hall, 3ª edición, 2008.

[Jain] Anil K. Jain. Fundamentals of Digital Image Processing.

Ed. Prentice Hall. 1989.

123

Page 136: Lectura Automática de Instrumentos de Medida Mediante Técnicas

BIBLIOGRAFÍA

[Shapiro] Linda G. Shapiro, George C. Stockman, Computer Vision.

Ed. Prentice Hall. 2001.

[Gonzalez] Rafael C. González. Digital Image Processing Using

Matlab. Ed. Prentice Hall. 2004.

[R. Montoto] Roberto C. Montoto, Fernando Martín (tutor). Curso

Práctico de Procesado de Imagen Usando Matlab.

Proyecto Fin de Carrera, Universidade de Vigo. 2000.

[G. Pajares] G. Pajares, J.M. de la Cruz. Visión por Computador. Ed.

Ra-ma. 2001.

[J. González] Javier González Jiménez. Visión por Computador. Ed.

Paraninfo. 1999.

[E. R. Davies] E. R. Davies. Machine Vision, theory, algorithms,

practicalities. Ed. Elsevier. 3ª edición, 2005.

[Otsu] N. Otsu. "A Threshold Selection Method for Gray Level

Histograms". IEEE Transactions on System, Man and

Cybernetics. Enero, 1979.

[Stroustrup] Stroustrup, B., El lenguaje de Programación C++, 3ª

edición (Especial), Addison-Wesley, 2001.

[Deitel] Deitel, H. M., Deitel, P. J., C++ How to Program. 3ª

Edición. Prentice Hall. 2000.

[Josuttis] Nicolai M. Josuttis, The C++ Standard Library: A Tutorial

and Reference. Addison-Wesley.

[F. Martín 2] Analysis Tools for Gray Level Histograms. F. Martín

Rodríguez. Proceedings de SPPRA-2003. Rodas (Grecia).

Junio, 2003.

[Ohya] J. Ohya, A. Shio, S. Akamatsu. “Recognizing Characters in

Scene Images”. IEEE Transactions of Pattern Analysis and

124

Page 137: Lectura Automática de Instrumentos de Medida Mediante Técnicas

BIBLIOGRAFÍA

Machine Intelligence, Vol. 16, Nº 2, pp 214-220. Febresro,

1994.

[Duda] Richard O. Duda, Peter E. Hart. “Use of the Hough

transformation to detect lines and curves in pictures”.

Technical Note 36, Abril 1971. Comm. ACM, Vol 15, Nº 1,

pp. 11-15 (Enero 1972).

Direcciones de interés:

[VXL] http://vxl.sourceforge.net

[LOMG] http://www.lomg.net

[MathWorks] http://www.mathworks.com

[CMake] http://www.cmake.org

[STL] http://www.cplusplus.com/reference/stl/

125