desarrollo de un analizador de imágenes basado en el

Anuncio
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
DESARROLLO DE UN ANALIZADOR
DE IMÁGENES BASADO EN EL
RECONOCIMIENTO ÓPTICO DE CARACTERES
Por
JOYNER ALBERTO CADORE CHACÓN
INFORME DE PASANTÍA
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de Ingeniero Electrónico.
Sartenejas, Febrero de 2009
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
DESARROLLO DE UN ANALIZADOR
DE IMÁGENES BASADO EN EL
RECONOCIMIENTO ÓPTICO DE CARACTERES
Por:
JOYNER ALBERTO CADORE CHACÓN
Realizado con la Asesoría de:
Prof. Trina Adrián de Pérez (Tutor Académico en Venezuela)
Prof. Narciso García Santos (Tutor Académico en España)
INFORME DE PASANTÍA
Presentado ante la Ilustre Universidad Simón Bolívar
como requisito parcial para optar al título de Ingeniero Electrónico.
Sartenejas, Febrero de 2009
iii
UNIVERSIDAD SIMÓN BOLÍVAR
Decanato de Estudios Profesionales
Coordinación de Ingeniería Electrónica
DESARROLLO DE UN ANALIZADOR DE IMÁGENES BASADO EN EL RECONOCIMIENTO
ÓPTICO DE CARACTERES.
Por
JOYNER ALBERTO CADORE CHACÓN
RESUMEN
Para garantizar la alta calidad del Servicio de Televisión sobre IP (IPTV) Imagenio, la
empresa Telefónica S.A. debe asegurarse de que los Descodificadores de dicho servicio
funcionen correctamente antes de distribuirlos entre los usuarios El presente Proyecto de
Grado, llamado “Desarrollo de un Analizador de Imágenes Basado en el Reconocimiento
Óptico de Caracteres”, se desarrolló durante el período de Pasantía Larga en la empresa
Telefónica I+D (Madrid, España). Consistió, básicamente, en la extracción de información de
imágenes de los Descodificadores del Servicio Imagenio de Telefónica S.A., contenedoras de
la configuración (de red, de emisión de audio y video, etc.) de los mismos, para su posterior
comprobación. Para ello, fue necesario aplicar técnicas de tratamiento digital de imágenes,
reconocimiento óptico de caracteres (OCR) y un algoritmo (llamado de Semejanza de Texto)
que permitiese corroborar la veracidad de la información obtenida mediante OCR. Las
pruebas realizadas fueron completamente satisfactorias.
PALABRAS CLAVES
IPTV, STB, Reconocimiento Óptico de Caracteres (OCR), Tesseract, Algoritmo de
Levenshtein, Algoritmo de Brew, Segmentación, OTSU, Algoritmo de Canny, Dilatación,
Interpolación.
iv
AGRADECIMIENTOS
A la empresa Telefónica I+D, en particular a la División de Video Bajo Demanda y
Servicios a Terceros, por haberme brindado la oportunidad de hacer mi Pasantía Larga y
con ella, mi Proyecto de Grado.
A mis tutores académicos en España y Venezuela, Prof. Narciso García Santos y Prof.
Trina Adrián de Pérez, respectivamente, por apoyarme desde el comienzo en la realización
de este proyecto. Gracias por haber estado a mi lado y por haberme guiado con tanta
dedicación y paciencia.
A mi familia, por respaldarme incondicionalmente, por creer en mí siempre a pesar de
mis errores. Un millón de gracias.
A mis amigos, por estar allí en todo momento, por estar presentes tanto en los
momentos dulces como en los agrios.
v
A Mis Padres.
vi
ÍNDICE GENERAL
ACTA DE EVALUACIÓN .......................................................................................................iii
RESUMEN ......................................................................................................................... iv
PALABRAS CLAVES ............................................................................................................ iv
AGRADECIMIENTOS ........................................................................................................... v
ÍNDICE GENERAL .............................................................................................................. vii
ÍNDICE DE FIGURAS........................................................................................................... x
ÍNDICE DE TABLAS .......................................................................................................... xiii
LISTA DE ABREVIATURAS ................................................................................................. xiv
INTRODUCCIÓN ................................................................................................................. 1
CARACTERÍSTICAS PRINCIPALES ........................................................................................ 2
OBJETIVOS DEL PROYECTO ................................................................................................ 4
ORGANIZACIÓN DEL INFORME ........................................................................................... 5
CAPÍTULO I ...................................................................................................................... 6
CAPÍTULO I - LA EMPRESA: TELEFÓNICA I+D ...................................................................... 6
CAPÍTULO II ..................................................................................................................... 9
CAPÍTULO II - MARCO TEÓRICO ......................................................................................... 9
2.1 RECONOCIMIENTO ÓPTICO DE CARACTERES ................................................................. 9
2.2 DISTANCIA ENTRE CADENAS DE TEXTO....................................................................... 14
2.2.1 DISTANCIA DE EDICIÓN DE LEVENSHTEIN ................................................................. 14
2.2.2 DISTANCIA DE EDICIÓN DE BREW............................................................................. 17
2.3 TÉCNICAS DE SEGMENTACIÓN DE IMÁGENES .............................................................. 20
2.3.1 UMBRALIZACIÓN ...................................................................................................... 20
2.3.2 ALGORITMOS DE DETECCIÓN DE BORDES: CANNY ..................................................... 20
vii
2.3.3 CONVERSIÓN A ESCALA DE GRISES ........................................................................... 23
2.3.4 CONVERSIÓN A BLANCO Y NEGRO – MÉTODO DE OTSU ............................................. 23
CAPÍTULO III .................................................................................................................. 25
CAPÍTULO III - DISEÑO DEL ANALIZADOR DE IMÁGENES ................................................... 25
3.1 SELECCIÓN DEL LENGUAJE DE PROGRAMACIÓN Y DEL ENTORNO DE DESARROLLO ....... 25
3.2 SELECCIÓN DEL OCR .................................................................................................. 25
3.3 TESSERACT - OCR ...................................................................................................... 28
3.4 ALGORITMO DE SEMEJANZA DE TEXTO ....................................................................... 28
3.5 SELECCIÓN DE LA HERRAMIENTA DE TRATAMIENTO DE IMÁGENES .............................. 33
3.6 TRATAMIENTO DE IMÁGENES ..................................................................................... 33
3.7 PREPARACIÓN DE LAS IMÁGENES PARA EL OCR ........................................................... 39
3.8 LOCALIZACIÓN DE LAS CADENAS DE TEXTO EN LA IMAGEN.......................................... 39
3.8.1 LOCALIZACIÓN DE LAS CADENAS DE TEXTO MEDIANTE EL EMPLEO DE UMBRALIZACIÓN.
....................................................................................................................................... 40
3.8.2 LOCALIZACIÓN DE LAS CADENAS DE TEXTO MEDIANTE EL EMPLEO DE ALGORITMOS DE
DETECCIÓN DE BORDE...................................................................................................... 45
3.9 OBTENCIÓN DE LAS CADENAS DE TEXTO EN IMÁGENES INDIVIDUALES ........................ 46
3.10 MEJORAS DE LAS IMÁGENES CONTENEDORAS DE LAS CADENAS DE TEXTO PARA EL
TESSERACT – OCR. .......................................................................................................... 49
3.11 PROCESAMIENTO DE LA INFORMACIÓN CONTENIDA EN LAS IMÁGENES ...................... 50
3.11.1 CLASIFICACIÓN DE LAS DE CADENAS DE TEXTO....................................................... 51
3.11.2 ALMACENAMIENTO DE LA INFORMACIÓN ................................................................. 52
3.11.3 EXTRACCIÓN Y VALIDACIÓN DE LA INFORMACIÓN ................................................... 53
3.12 CONSULTA DE LA INFORMACIÓN ............................................................................... 57
3.13 IMPLEMENTACIÓN DEL ANALIZADOR DE IMÁGENES ................................................... 57
CAPÍTULO IV .................................................................................................................. 59
viii
CAPÍTULO IV - PRUEBAS REALIZADAS Y ANÁLISIS DE LOS RESULTADOS............................. 59
4.1 PRIMERA PRUEBA: PARA LAS CUATRO PANTALLAS DE CONFIGURACIÓN, EMITIDAS POR
UN STB. .......................................................................................................................... 59
4.2. SEGUNDA PRUEBA: SOBRE UNA MISMA PANTALLA DE CONFIGURACIÓN, EMITIDA POR
DIFERENTES STB. ............................................................................................................ 62
4.3. CONCLUSIONES SOBRE LAS PRUEBAS ........................................................................ 64
CONCLUSIONES Y RECOMENDACIONES ............................................................................. 65
REFERENCIAS BIBLIOGRÁFICAS ........................................................................................ 67
APÉNDICES...................................................................................................................... 69
APÉNDICE A: SONDA ROBOT WITBE ................................................................................. 69
APÉNDICE B: STB............................................................................................................. 70
APÉNDICE C: CONFUSIONES MÁS COMUNES EN OCR. ........................................................ 71
APÉNDICE D: TAREA DE PÁGINAS LOCALES. ...................................................................... 73
ix
ÍNDICE DE FIGURAS
Figura 1.1: Logo de Imagenio. ............................................................................................. 1
Figura 1.2: Diagrama de Distribución de Señales IPTV. ........................................................... 3
Figura 1.3: Arquitectura del Sistema de Automatización de Pruebas......................................... 4
Figura 1.4: Logo de la Empresa. ........................................................................................... 6
Figura 2.1: Imagen original I. ............................................................................................. 21
Figuras 2.2 y 2.3: Imágenes IX e IY. .................................................................................... 22
Figuras 2.4 y 2.5: Imagen N, antes y después de suprimir los píxeles que no son máximos. .... 22
Figuras 2.6: Imagen final, luego de aplicar histéresis. ........................................................... 23
Figura 3.1: Resumen del Tratamiento de Imágenes. ............................................................. 34
Figura 3.2: Páginas Locales del STB de Imagenio – Pantalla de Configuración de los Parámetros
de Red. ............................................................................................................................ 35
Figura 3.3: Páginas Locales del STB de Imagenio – Pantalla de Configuración de los Parámetros
de Emisión de Video. ......................................................................................................... 36
Figura 3.4: Páginas Locales del STB de Imagenio – Pantalla de Configuración de los Parámetros
de Emisión de Audio. ......................................................................................................... 37
Figura 3.5: Páginas Locales del STB de Imagenio – Pantalla con Información acerca del STB. .. 38
Figuras 3.6a, 3.6b, 3.6c y 3.6d: Imágenes con pedazos de las cadenas de texto de interés, para
calcular los histogramas de los modelos de color HSV y RGB. ................................................ 40
Figura 3.7a: Imagen obtenida luego de aplicar umbralización para el modelo de color HSV,
utilizando la figura 3.6a para obtener el histograma. ............................................................ 41
Figura 3.8a: Imagen obtenida luego de aplicar umbralización para el modelo de color RGB,
utilizando la figura 3.6a para obtener el histograma ............................................................. 41
Figura 3.7b: Imagen obtenida luego de aplicar umbralización para el modelo de color HSV,
utilizando la figura 3.6b para obtener el histograma. ............................................................ 42
Figura 3.8b.- Imagen obtenida luego de aplicar umbralización para el modelo de color RGB,
utilizando la figura 3.6b para obtener el histograma ............................................................. 42
Figura 3.7c.- Imagen obtenida luego de aplicar umbralización para el modelo de color HSV,
utilizando la figura 3.6c para obtener el histograma.............................................................. 43
Figura 3.8c: Imagen obtenida luego de aplicar umbralización para el modelo de color RGB,
utilizando la figura 3.6c para obtener el histograma.............................................................. 43
x
Figura 3.7d.- Imagen obtenida luego de aplicar umbralización para el modelo de color HSV,
utilizando la figura 3.6d para obtener el histograma. ............................................................ 44
Figura 3.8d.- Imagen obtenida luego de aplicar umbralización para el modelo de color RGB,
utilizando la figura 3.6d para obtener el histograma. ............................................................ 44
Figura 3.9: Pantalla de Configuración de los Parámetros de Emisión de Audio, luego de la
aplicación del Algoritmo de Canny....................................................................................... 45
Figura 3.10: Imagen resultante luego de dilatar los bordes conseguidos con el Algoritmo de
Canny. ............................................................................................................................. 46
Figura 3.11: Pantalla de Configuración de los Parámetros de Emisión de Audio, en escala de
grises. .............................................................................................................................. 47
Figura 3.12: Pantalla de Configuración de los Parámetros de Emisión de Audio, en blanco y
negro. .............................................................................................................................. 48
Figura 3.13: Cadenas de texto individualizadas. ................................................................... 48
Figura 3.14: Ejemplos de cadenas de texto individualizadas, aumentadas por un factor de 4
utilizando interpolación vecino más próximo. ....................................................................... 49
Figura 3.15: Ejemplos de cadenas de texto individualizadas, aumentadas por un factor de 4
utilizando interpolación bilineal. .......................................................................................... 50
Figura 3.16: Ejemplos de cadenas de texto individualizadas, aumentadas por un factor de 4
utilizando interpolación bicúbica. ........................................................................................ 50
Figura 3.17: Identificación de las Cadenas de Texto en la Pantalla de Configuración de los
Parámetros de Emisión de Audio......................................................................................... 52
Figura 3.18: Resultado de la lectura de un Campo Estático con Tesseract – OCR. ................... 53
Figura 3.19: Campo Estático obtenido. ................................................................................ 54
Figura 3.20: Comprobación de Título / Campo Estático. ........................................................ 55
Figura 3.21: Resultado de la lectura de un Campo Variable con Tesseract – OCR. ................... 55
Figura 3.22: Comprobación de Campo Variable. ................................................................... 57
Figura 3.23: Esquema de la implementación del Analizador de Imágenes en la sonda robot
WITBE.............................................................................................................................. 58
Figura A.1: Sonda Video Robot WITBE S4000 (imagen referencial). ....................................... 69
Figura C.1: Tablas de confusiones más comunes, pertenecientes al primer estudio. ................ 71
Figura C.2: Tablas de confusiones más comunes, pertenecientes al segundo estudio. ............. 72
Figura D.1: Tarea de Páginas Locales – Paso 1. ................................................................... 73
Figura D.2: Tarea de Páginas Locales – Paso 2. ................................................................... 74
xi
Figura D.3: Pantalla de Configuración de los Parámetros de Video, correspondiente al STB
Motorola 1720. .................................................................................................................. 74
Figura D.4: Tarea de Páginas Locales – Paso 3. ................................................................... 75
Figura D.5: Tarea de Páginas Locales – Paso 4. ................................................................... 75
Figura D.6: Tarea de Páginas Locales – Paso 5. ................................................................... 76
Figura D.7: Tarea de Páginas Locales – Paso 6 (y último) ..................................................... 76
Figura D.8: Tarea de Páginas Locales – Resultados. ............................................................. 77
xii
ÍNDICE DE TABLAS
Tabla 2.1: Comparación de Cadenas de Texto usando el Algoritmo de Levenshtein. ............... 16
Tabla 2.2: Comparación de Cadenas de Texto usando el Algoritmo de Brew. ......................... 19
Tabla 3.1: Comparativas de Motores y Software OCR. ......................................................... 26
Tabla 3.2: Tabla de Confusiones más Comunes................................................................... 30
Tabla 3.3: Resultados del AST, en modalidad # 1. .............................................................. 54
Tabla 3.4: Resultados del AST, en modalidad # 1. .............................................................. 56
Tabla 4.1: Resultados obtenidos con las imágenes emitidas por el STB Motorola 1920, para la
Pantalla de Configuración de Red....................................................................................... 60
Tabla 4.2: Resultados obtenidos con las imágenes emitidas por el STB Motorola 1920, para la
Pantalla de Configuración de Video. ................................................................................... 60
Tabla 4.3: Resultados obtenidos con las imágenes emitidas por el STB Motorola 1920, para la
Pantalla de Configuración de Audio. ................................................................................... 61
Tabla 4.4: Resultados obtenidos con las imágenes emitidas por el STB Motorola 1920, para la
Pantalla de Configuración de Otros Parámetros. .................................................................. 61
Tabla 4.5: Resultados obtenidos para las imágenes emitidas por el STB Philips 5750. ............ 62
Tabla 4.6: Resultados obtenidos para las imágenes emitidas por el STB ADB 5810. ............... 63
Tabla 4.7: Resultados obtenidos para las imágenes emitidas por el STB Motorola 1920. ......... 63
Tabla 4.8: Resultados obtenidos para las imágenes emitidas por los 3 STB. .......................... 64
xiii
LISTA DE ABREVIATURAS
ADSL: Asymmetric Digital Subscriber Line - Línea Analogica-Digital Asimétrica.
AST: Algoritmo de Semejanza de Texto.
BMP: Bitmap – Mapa de Bits
CF – CO: Cadena Fuente, Cadena Objetivo.
LD: Levenshtein Distance – Distancia de Levenshtein
HD: High Definition – Alta Definición.
HDMI: High Definition Multimedia Interface – Interfaz Multimedia de Alta Definición.
HSV: Hue, Saturation, Value – Tonalidad, Saturación, Valor (Modelo de Color).
IP: Internet Protocol - Protocolo de Internet.
IPTV: Internet Protocol Television – Televisión sobre IP.
OCR: Optical Character Recognition - Reconocimiento Óptico de Caracteres.
RGB: Red, Green, Blue - Rojo, Verde, Azul (Modelo de Color).
SD: Standard Definition – Definición Estándar.
STB: Set Top Box – Descodificador de Televisión Digital.
VOD: Video on Demand – Video Bajo Demanda.
xiv
1
INTRODUCCIÓN
Imagenio[1] (ver figura 1.1) es un servicio de televisión digital interactiva del grupo
Telefónica S.A. Es suministrado conjuntamente con el servicio de ADSL, sobre una misma
infraestructura, pero con un ancho de banda reservado. En otras palabras, la señal de
televisión se transporta utilizando conexiones de banda ancha sobre el protocolo IP. Este
servicio es denominado IPTV.
Figura 1.1: Logo de Imagenio.
La señal de televisión llega codificada al router ADSL del usuario final, y para
obtenerla, se conecta a este último un dispositivo descodificador denominado Set Top Box
(STB). Desde el STB se puede obtener la señal de televisión en formato tradicional (SD, a
través del Euroconector) o en formato de alta definición ((HD,
HD, a través de un conector
HDMI).
El proceso de certificación de los terminales de usuario, los STB, de la Plataforma IPTV
Imagenio, requiere un elevado uso de recursos de laboratorio y de personal cualificado por
varios motivos. Primero, por la existencia de un catálogo técnico de descodificadores
heterogéneo, y segundo, por la gran cantidad de entregas software (Kernels) de cada uno
de los modelos para la resolución de incidencias o incorporación de nuevas funcionalidades
o servicios. Adicionalmente, la cada vez mayor complejidad de los servicios ofertados por
Imagenio conlleva a que el proceso de certificación
certificación de terminales de usuario sea más
complejo y más extenso.
Telefónica S.A., a través del Departamento Conectividad y Redes del Hogar, otorgó a
Telefónica
I+D
(TID)
el
Proyecto
“Sistema
para
la
Validación
Automática
de
Descodificadores y Aplicaciones Imagenio”, con el fin de de mejorar el proceso de
2
certificación
actual
de
los
descodificadores
de
Imagenio,
y
conseguir
reducir
significativamente el tiempo necesario y los costes. Para ello se propuso una solución
integral para la automatización del proceso de pruebas de certificación de los STB, basada
en herramientas comerciales y desarrollos adaptados a las necesidades específicas del
cliente (Telefónica S.A.).
Características Principales
El sistema de validación automática de los STB está basado en las sondas robot Witbe
(ver Apéndice A), adaptadas por TID para completar la funcionalidad requerida por el
cliente. Estas sondas interactúan con los STB mediante un emisor de infrarrojos (figura 1.2),
que emula el comportamiento del mando a distancia que poseen los usuarios de Imagenio,
y que permite ejecutar casos de prueba durante el proceso de certificación de los
descodificadores. Estas sondas, además, permiten medir la disponibilidad y la calidad de los
servicios de vídeo, tanto de TV como de Video on Demand (VoD), conectándose a las
salidas ofrecidas por los STB: Euroconector y/o HDMI.
La funcionalidad soportada por las sondas debe incluir:
1. Medición de la disponibilidad de los servicios TV y VoD.
2. Medición de la calidad de los servicios (tanto en TV como en VoD), basada en criterios de
Quality of Experience (QoE), con un Mean Opinion Score (MOS) de 1 a 5.
3. Medición de tiempos entre cambios de canal (contenidos TV) y Trick Modes (contenidos
VoD).
4. Detección de artefactos, congelaciones, pixelaciones y pérdidas de audio en el video.
5. Detección de pérdidas de sincronismo entre el audio y el vídeo de un contenido.
6. Análisis del tráfico de red.
7. Detección de retardos en la navegación por los menús de la aplicación Imagenio.
8. Reconocimiento óptico de caracteres para la comprobación de configuraciones.
3
Figura 1.2: Diagrama de Distribución de Señales IPTV.
Por otra parte, el sistema de validación automática de los STB permite a los usuarios
del sistema, mediante una herramienta gráfica (llamada Gestor de Pruebas), la definición y
planificación de casos de prueba que serán ejecutados por las sondas. El Gestor de Pruebas
es el encargado de generar y enviar ficheros con órdenes que serán ejecutados por las
sondas. Tras ejecutar los casos de prueba, las sondas generan unos resultados que serán
visibles y gestionables por los usuarios desde dicho Gestor de Pruebas. En la figura 1.3 se
presenta la arquitectura de dicho sistema.
En base a las funcionalidades mencionadas anteriormente, las sondas son capaces de
realizar pruebas sobre:
1.
Calidad de audio/video Unicast y Multicast.
2.
Trick Modes sobre VoD.
3.
Cambios de canal sobre TV.
4.
Audio: control de volumen, mute, idiomas.
5.
Configuración de Páginas Locales de los STB.
6.
Navegación por las Aplicaciones Imagenio.
4
Figura 1.3: Arquitectura del Sistema de Automatización de Pruebas.
Objetivos del Proyecto
Sobre la prueba “Configuración de Páginas Locales de los STB”, mencionada en el
apartado anterior, se desarrolló el Proyecto que se presenta a continuación.
Esta prueba requiere de la funcionalidad de “Reconocimiento Óptico de Caracteres
para la comprobación de configuraciones”, que necesitó ser desarrollada antes de su
implementación en las sondas robot WITBE. Esta funcionalidad lo que permite es comprobar
la correcta configuración de Red, Video, Audio y demás de los STB.
Los Objetivos del Proyecto son los siguientes:
1.
Diseño de un analizador de imágenes para el ordenador, que permita:
a.
Tomar una imagen (capturada con la sonda robot WITBE), que contenga texto, como
parámetro de entrada y devolver las cadenas de caracteres presentes en ella.
5
b.
Verificar la validez de las cadenas de texto obtenidas de la imagen, mediante la
comparación con las cadenas de texto buscadas.
2.
Diseño de un algoritmo de toma de decisiones, que permita determinar la validez de los
resultados. Para ello será necesario:
a.
Definir los criterios de validez para las cadenas de texto obtenidas de las imágenes,
mediante la comparación de las mismas con las cadenas de texto buscadas. Se
utilizaran criterios como números de caracteres, distancia y semejanza entre los
mismos, etc.
Organización del Informe
Después de la Introducción, se presenta el Capítulo Primero con información sobre la
empresa donde se realizó la Pasantía Larga. Seguidamente, se presenta el Capítulo Segundo
con el Marco Teórico; en el mismo se explican todas las herramientas utilizadas para el
desarrollo del Analizador de Imágenes.
El Capítulo Tercero contiene, en detalle, el diseño del analizador de imágenes, que
consiste de 2 grandes partes: selección y/o creación de las herramientas apropiadas e
implementación de las mismas, mediante el uso de algoritmos especiales.
En el Capítulo Cuarto se detallan las diferentes pruebas realizadas para demostrar la
fiabilidad del Analizador de Imágenes.
Finalmente, se presentan las conclusiones y recomendaciones del Proyecto en general.
6
CAPÍTULO I
LA EMPRESA: TELEFÓNICA I+D
Telefónica I+D (TID)[2] (ver figura 1.4) perteneciente al Grupo Telefónica S.A., es la
empresa más importante de España en el área de investigación y desarrollo. Desarrolla
actividades a nivel nacional e internacional, dirigidas principalmente a la innovación
tecnológica.
Figura 1.4: Logo de la Empresa.
Desde su creación en Marzo de 1988, se dedica al desarrollo de numerosos productos
y servicios para telefonía (fija y móvil), internet y televisión (IMAGENIO), destinados a
resolver las necesidades presentes, a la vez que crea soluciones innovadoras para
anticiparse a los retos futuros.
Actualmente existen cinco sedes de TID en España, localizadas en Barcelona,
Granada, Huesca, Madrid y Valladolid. Fuera de España hay sedes 2 sedes, una en São
Paulo, Brasil y la otra en Ciudad de México, México. Sus actividades han estado ligadas
principalmente a la evolución de las telecomunicaciones y a las demandas sociales en esas
áreas.
7
El número de proyectos anuales desarrollados en la empresa es de 1500
aproximadamente, que generalmente potencian los servicios telefónicos fijos, móviles,
multimedia e interactivos, los sistemas de gestión de redes y servicios, los sistemas de
soporte a operaciones y de apoyo al negocio, y a la innovación. Asimismo, las
investigaciones de TID han contribuido notablemente en el desarrollo de la banda
ancha/ADSL y de los servicios de internet de Telefónica (como la televisión digital
interactiva, mejor conocida como Imagenio), a mejorar los servicios móviles y a lanzar
nuevos servicios al mercado, así como también a mejorar la atención al cliente y a contribuir
a hacer realidad el hogar digital (o vivienda virtual).
Las actividades de TID han generado un sin fin número de patentes y registros, que
han contribuido significativamente a incrementar la Propiedad Intelectual e Industrial del
Grupo Telefónica S.A.
TID colabora estrechamente con las Universidades, las Comunidades Autónomas y la
Administración Central del Estado Español, y tiene una importante presencia en los
principales
foros,
congresos
y
publicaciones,
nacionales
e
internacionales,
sobre
telecomunicaciones. También se ha caracterizado por participar, desde su creación, en
programas y proyectos cofinanciados por la Unión Europea (UE), junto a otras empresas e
instituciones del continente. Actualmente, es conocida como el primer centro de
investigación y desarrollo de telecomunicaciones por participación en proyectos del
Programa Marco de la UE.
Innovación Tecnológica
Una de las cosas más importantes en el Grupo Telefónica S.A. es la innovación, pues
contribuye al negocio de las telecomunicaciones, mejorando lo ya existente y abriendo
continuamente nuevos espacios. La idea de innovación va más allá de la tecnología,
llegando a los ámbitos comerciales y de procesos, con el objetivo de transformar las ideas
en productos y servicios rentables y/o mejores. Esta filosofía ha logrado que TID sea la
acreedora de numerosos premios y distinciones a la innovación y a la excelencia.
8
Su estrategia en el proceso de generación de nuevas ideas se basa en la incorporación
de conocimientos multidisciplinares y en la apertura a numerosas fuentes generadoras de
propuestas. En este sentido, ha incrementado su presencia en los foros y programas de
investigación nacionales y europeos, así como en eventos dedicados a presentar los últimos
avances tecnológicos, donde se suelen llevar a cabo concursos para la búsqueda de nuevos
talentos.
Campos de Investigación
Telefónica I+D tiene participación en muchos de los proyectos de investigación más
prometedores de la actualidad: nuevo protocolo para internet (IPv6); técnicas biométricas
más avanzadas para la identificación y autentificación segura de las personas; aplicaciones
de vanguardia para la gestión del conocimiento; servicios y aplicaciones móviles del futuro
independientes de la tecnología de acceso; plataformas abiertas para servicios controlados
por voz; sistemas domóticos avanzados dirigidos al hogar digital; aplicaciones para la
seguridad informática, etc.
No obstante, el área donde posee más participación es la dedicada a las
comunicaciones móviles (análisis espectral, infraestructura e interfaz radio, gestión de la
movilidad en los servicios móviles de banda ancha, etc.). También trabaja activamente en
las áreas de creación de nuevos servicios y contenidos para banda ancha, siendo uno de los
principales el servicio de IPTV Imagenio.
En TID también existen áreas de investigación orientadas hacia aplicaciones sociales.
Algunas de las actividades que se están desarrollando en la actualidad son: el nuevo
servicio de seguridad estructural para edificios mediante redes ópticas; sistemas de atención
médica para el tratamiento de la diabetes; aplicaciones de tele-enseñanza y educación
virtual adaptadas a la realidad de los países iberoamericanos; entre otros.
9
CAPÍTULO II
MARCO TEÓRICO
2.1 RECONOCIMIENTO ÓPTICO DE CARACTERES
Un software de reconocimiento óptico de caracteres (OCR, por sus siglas en inglés,
Optical Character Recognition) permite extraer los caracteres presentes en una imagen y
almacenarlos en un formato manejable por un editor de texto en un ordenador.
Antecedentes del OCR[3]
En 1929, Gustav Tauschek patentó en Alemania un método para hacer OCR. Poco
después, en 1933, Handel obtuvo una patente en Estados Unidos para patentar otro
método para hacer OCR. En 1935, Tauschek patento su método en Estados Unidos.
La máquina (mecánica) creada por Tauschek, que usaba plantillas, consistía en un
fotodetector y funcionaba de la siguiente manera: las plantillas de caracteres eran colocadas
sobre cada caracter del texto, el cual era irradiado con luz. Al haber una coincidencia, toda
la luz era absorbida (por el caracter que en principio era negro o algún otro color oscuro).
En el caso de no coincidir plantilla y caracter, se reflejaba una porción de luz al fotoreceptor,
que lo detectaba y reportaba el fallo. Este es uno de los primeros intentos de hacer un
sistema de OCR, antes de la Segunda Guerra Mundial.
El desarrollo de los sistemas OCR continuó pasada la Segunda Guerra Mundial. Los
sistemas OCR utilizados durante los años 50 (primera generación) seguían estando basados,
en su mayoría, en el sistema de Tauschek. El sistema de ausencia / presencia de luz y su
traducción a lógica binaria de 0’s y 1’s, para conformar bytes de información, era muy
10
limitada, pues requería el uso de fuentes muy específicas. Quienes trabajaban con el
sistema de Tauschek de base, pronto se darían cuenta de esta limitante y comenzarían a
desarrollar alternativas.
En 1950 el criptólogo/criptoanalista David Shepard, de la Agencia de Seguridad de las
Fuerzas Armadas de los Estados Unidos, trabajó con el Dr. Louis Tordella en procesos de
automatización de datos, para dicha Agencia. Trabajaron sobre el problema de cómo
convertir mensajes impresos en algún formato manejable por el ordenador para su posterior
procesamiento. Shepard consideró la posibilidad de construir una máquina para ésta tarea,
y lo hace: con la colaboración de Harvey Cook, construye “Gismo”.
Shepard, posteriormente, funda la Intelligent Machines Research Corporation (IMR),
donde se haría el primer sistema OCR comercial. Los sistemas OCR desarrollados por la
IMR permitían, al igual que Gismo, tolerar cambios ligeros en el tipo de fuente, pero a
diferencia de este último que requería cierta disposición en vertical de los caracteres, podían
leer el texto sin restricciones de localización.
Durante esta década, fueron varias las compañías que adquirieron sistemas
comerciales a la IMR: Readers Digest, Standard Oil Company of California (interés en leer
registros de tarjetas de crédito, para hacer los cobros), Ohio Bell Telephone Company, IBM;
etc. Incluso la Fuerza Aérea de los Estados Unidos les adquirió un sistema OCR, para leer
mensajes recibidos en forma impresa, siendo estos transmitidos a distancia.
En la década de los 60, a mediados aproximadamente, se desarrolló una segunda
generación de sistemas OCR. Usando tubos de rayos catódicos y lápices de luz en lugar de
fotoreceptores, utilizaban la técnica de “Seguimiento de Curva”. Esto permitió que los
sistemas OCR fueran más flexibles, a la hora de localizar el texto y de reconocer variados
tipos de fuente. Esta tecnología introdujo el concepto de los caracteres escritos a mano,
pudiendo ser leídos con ciertas restricciones. También introdujo el concepto de tintas no
legibles, de color azul, que eran utilizadas por el sistema de lectura, altamente sensible al
espectro ultravioleta.
11
En el año 1965, Readers Digest y la RCA colaboraron en la construcción de un lector
de documentos basado en OCR, para digitalizar los seriales de los cupones utilizados que
enviaban los consumidores. Dichos cupones eran elaborados con la fuente OCR-A, utilizando
una impresora de RCA de nombre “Drum”. Los resultados de la lectura del OCR eran
procesador directamente por un ordenador RCA 301 (de los primeros de estado sólido del
mercado).
Seguidamente, RCA le diseñó un lector OCR especializado a la Trans World Airlines,
para el procesamiento de los billetes aéreos, con texto por ambas caras. Estos lectores OCR
procesaban documentos a una tasa de 1500 por minuto, y descartaban aquellos que no
podían ser correctamente leídos.
En Europa, comenzaron a usarse sistemas OCR en el año 1965. La primera compañía
en utilizarlos fue la Oficina Postal Británica. A ésta le siguió, entre otras, el banco británico
National Giro, cuyo uso estaba destinado al procesamiento de recibos de pago; esto
represento una revolución para la banca Británica de aquel momento.
En los primeros años de la década de los 70, se introdujeron los dispositivos de
tercera generación para los sistemas OCR: arrays de fotodiodos. El funcionamiento: los
sensores eran alineados en arreglos, y la imagen reflejada de un documento con texto era
procesada. Estos dispositivos tenían alta sensibilidad para el espectro infrarrojo por lo cual
se comenzaron a utilizar tintas de color rojo ilegible.
En 1974, Ray Kurzweil funda en los Estados Unidos la compañía Kurzweil Computer
Products Inc., y desarrolla el primer sistema OCR capaz de leer cualquier tipo de texto
impreso en fuente normal. En principio, él pensó que la mejor aplicación de esta tecnología
sería la de crear una máquina que leyese para las personas con problemas severos en la
visión y/o ciegas: Procesamiento del texto escrito y su posterior reproducción sonora. Esta
idea requirió el desarrollo de dos tecnologías: Un escáner de texto y un sintetizador texto –
voz. El producto fue terminado en enero de 1976. En 1978, la Kurzweil Computer Products
pone a la venta una versión comercial de su motor OCR. Dos años más tarde, la compañía
12
es adquirida por Xerox, y se convierte en una filial; cambia su nombre a Nuance, compañía
que continúa hoy en día trabajando en el área de reconocimiento óptico de caracteres y en
el área de reconocimiento del habla.
Las siguientes generaciones de sistemas OCR, a partir de la década de los 80, estaban
basadas también en el escaneo con arrays. Esto, sumado a las cada vez más altas
velocidades de procesamiento de los ordenadores, convergió en el concepto de
Procesamiento de Imágenes.
El Procesamiento de Imágenes requiere de arrays mucho más complejos que los
arrays utilizados por la tercera generación de sistemas OCR. Cuando estas imágenes son
procesadas con la lógica de un sistema OCR (esto es, con los códigos binarios adecuados)
se pueden reconocer y/o interpretar los caracteres presentes en la imagen, almacenados en
forma de matrices de puntos. Esto se traduce en sistemas flexibles frente a diferentes tipos
de fuentes, y menos rigurosos en cuanto al posicionamiento de los caracteres.
Estado Actual del OCR[4]
Un software OCR, hoy en día, no tiene un acierto del 100 % para todos los casos.
Suelen estar preparados para funcionar con algunos idiomas (uso de diccionarios), con
ciertos tipos de caracteres (fuentes) y con imágenes de una calidad determinada.
Modificaciones en algunos de estos tres parámetros pueden ocasionar que haya inserciones,
pérdidas y/o sustituciones de caracteres.
El desarrollo de los motores OCR ha mejorado con el paso del tiempo. Entre las cosas
que continuamente se consiguen están:
- Mayor exactitud en las lecturas de textos, disminuyendo el número de pérdidas y/o
sustituciones de caracteres.
- Menor dependencia del tipo de fuente.
13
- Mejoras en la capacidad de lectura de textos escritos a mano y de textos cursivos (estos
últimos, son aquellos donde las letras están unidas, sin individualizar).
- Admisión de imágenes de menor calidad para la extracción de texto (borrosas, con bajo
contraste, etc.).
Sin embargo, existen ciertas cosas que son difíciles de salvar:
- La lectura de texto depende tanto del idioma como del alfabeto. Si se leen palabras de
idiomas distintos, pero de alfabeto común (por ejemplo, inglés, italiano y español, todos
basados en el alfabeto latino), se podrán reconocer muchos caracteres correctamente, e
incluso palabras enteras. Pero, si se leen palabras de alfabetos distintos (latino, asiático,
cirílicos, etc.) al que se ha utilizado en la configuración del motor OCR, difícilmente se
podrá reconocer carácter alguno, y mucho menos una palabra. Especial es el caso de los
números, que por ser de uso más universal, prácticamente cualquier motor OCR puede
reconocerlos correctamente.
- Similaridad entre letras y números. Por ejemplo, si a la hora de leer cadenas de texto
aparecen la letra mayúscula “O” y/o el número “0”, es muy difícil discernir para el
software OCR cuando es uno u otro, pues la diferencia es muy poca. Una persona puede
determinar visualmente las diferencias existentes, e incluso si fuera necesario, por
contexto.
- Una persona puede ser capaz de leer un texto en una imagen con poco contraste,
borrosa, o incluso leer texto sobre imágenes o texto sobre texto (superposición), pues
posee la ventaja de conocer gran cantidad de palabras que permiten “adivinar” las que
están en la imagen en el caso de que no se distingan claramente. Lograr que un software
OCR tenga esta funcionalidad, de obtener sólo la información relevante de una imagen,
es el mayor reto que existe hoy en día en esta área.
14
2.2 DISTANCIA ENTRE CADENAS DE TEXTO
A pesar del buen funcionamiento que pudiese tener un software OCR, los resultados
que arrojaría no serían 100% exactos para todas las imágenes. Esto hace que sea necesario
comprobar de alguna manera que tan buenos son. Para tal tarea se pensó en la utilización
de un algoritmo que determinase cuan parecida es una cadena de texto a otra.
A continuación se presentan 2 algoritmos, Levenshtein y Brew, que permiten hallar
cuántos caracteres diferentes hay en una cadena de texto respecto a otra, en el caso del
primero; en el caso del segundo, permite hallar adicionalmente qué tipo de diferencia ha
ocurrido (sustitución, supresión o adición de un carácter).
2.2.1 DISTANCIA DE EDICIÓN DE LEVENSHTEIN[5]
La Distancia de Levenshtein (LD por sus siglas en inglés, Levenshtein Distance),
también llamada Distancia de Edición, es una medida de semejanza entre dos cadenas de
texto: una cadena fuente “CF” (lo que se tiene) y una cadena objetivo “CO” (lo que se
desea obtener). El valor de la LD viene a ser el número de sustituciones, supresiones o
adiciones necesarias para convertir a CF en CO.
La Distancia de Levenshtein tiene las siguientes características:
- LD = 0 sí y sólo sí las cadenas de texto comparadas son iguales.
- Su valor mínimo será siempre, al menos, la diferencia de tamaño entre las dos cadenas
de texto comparadas.
- Su valor máximo será, en el peor caso, el tamaño de la cadena de texto más larga.
A continuación presentamos de manera detallada los pasos del algoritmo, y un
ejemplo de su aplicación:
15
1.
Sean n y m los tamaños de las cadenas de texto CF y CO, respectivamente. Si n = 0,
LD = m; si m = 0, LD = n; en otro caso, construimos una matriz D (de distancia) m x n.
2.
Inicializamos la primera fila desde 0 hasta n; inicializamos la primera columna desde 0
hasta m. Ningún carácter es asociado con la posición (0,0) de la matriz.
3.
Examinamos cada carácter de CF, con i entre 1 y n. Asimismo, examinamos cada
carácter de CO, con j entre 1 y m.
4.
Si CF[i] = CO[j], el costo es 0 (esto significa que ha ocurrido un acierto entre dos
caracteres). Caso contrario, el costo es 1.
5.
En la posición D[i,j] de la matriz, se coloca el valor mínimo de entre los siguientes:
- D[i-1, j] + 1
- D[i, j-1] + 1
- D[i-1, j-1] + costo
6.
Luego de que la iteración entre los pasos 3 y 5 finalice, el valor LD se obtendrá de la
posición D[n,m] de la matriz.
Ejemplo: Supongamos que tenemos dos cadenas de texto, una CF = ‘CAR4CE’ y otra
CO = ‘CARACAS’. En este caso, tendríamos que LD = 3, puesto que necesitaríamos 3
cambios para convertir CF en CO: la sustitución de “4” por “A”, la sustitución de “E” por “A”
y la adición de “S”. En el caso de no existir diferencia alguna entre CF y CO, LD = 0. La
aplicación de los pasos del algoritmo se presenta en la tabla 2.1.
La LD se encuentra en la posición n,m de la matriz D (tabla 2.1), es decir, D[n,m] =
D[6,7] = 3 (esquina inferior derecha en la matriz de ejemplo). Esto concuerda con lo
presentado anteriormente, que se necesitaban 3 cambios para CF = CO: la sustitución de
“e” por “a” y la adición de una “s” al final de la cadena CF.
16
Tabla 2.1: Comparación de Cadenas de Texto usando el Algoritmo de Levenshtein.
Pasos 1 y 2
C
A
R
A
C
A
S
Pasos 3 al 5, con i = 1...
C A R 4 C E Ammmaaaa
C A R 4 C E
0 1 2 3 4 5 6
0 1 2 3 4 5 6
C 1 0
1
A 2 1
2
R 3 2
3
A 4 3
4
C 5 4
5
A 6 5
6
S 7 6
7
Pasos 3 al 5, con i = 2
C
A
R
A
C
A
S
0
1
2
3
4
5
6
7
Pasos 3 al 5, con i = 3oppp
C A R 4 C E Ammmaaaa
C A R 4 C E
1 2 3 4 5 6
0 1 2 3 4 5 6
C 1 0 1 2
0 1
A 2 1 0 1
1 0
R
2 1
3 2 1 0
A 4 3 2 1
3 2
C 5 4 3 2
4 3
A 6 5 4 3
5 4
S 7 6 5 4
6 5
Pasos 3 al 5, con i = 5
p
C A R 4 C E Ammmaaaa
0 1 2 3 4 5 6
C 1 0 1 2 3 4
A 2 1 0 1 2 3
R 3 2 1 0 1 2
A 4 3 2 1 1 2
C 5 4 3 2 2 1
A 6 5 4 3 3 2
S 7 6 5 4 4 3
Pasos 3 al 5, con i = 6oppp
C
A
R
A
C
A
S
0
1
2
3
4
5
6
7
C A R 4 C E
1 2 3 4 5 6
0 1 2 3 4 5
1 0 1 2 3 4
2 1 0 1 2 3
3 2 1 1 2 3
4 3 2 2 1 2
5 4 3 3 2 2
6 5 4 4 3 3
17
Las aplicaciones de la LD son varias: correctores ortográficos, detección de plagio,
análisis de ADN, etc. Sin embargo, el conocer la LD no brinda mayor información acerca de
las diferencias entre la CF y la CO (sustitución, supresión y/o adición). Por lo tanto, su uso
directo no es suficiente para los objetivos del presente Proyecto: es necesario saber, no sólo
cuantos cambios hay entre cadenas de texto, sino que tipos de cambios han ocurrido.
La solución a este problema (saber qué tipo de cambios hay entre CF y CO) se
soluciona con el algoritmo de distancia de edición de Brew.
2.2.2 DISTANCIA DE EDICIÓN DE BREW[6]
La Distancia de Edición de Brew permite obtener los tipos de cambios necesarios para
transformar la Cadena Fuente en la Cadena Objetivo (y no al revés, pues a diferencia de la
LD, en este algoritmo adición y supresión se tratan por separado).
A continuación presentamos de manera detallada los pasos del algoritmo (que
básicamente son los mismos de la LD, con ciertas modificaciones), y un ejemplo de su
aplicación:
1. Sean n y m los tamaños de las cadenas de texto CF y CO, respectivamente. Si n = 0, LD
= m; si m = 0, LD = n; en otro caso, construimos una matriz D (de distancia) m x n.
2. Inicializamos la primera fila desde 0 hasta n; inicializamos la primera columna desde 0
hasta m.
3. Examinamos cada carácter de CF, con i entre 1 y n. Asimismo, examinamos cada
carácter de CO, con j entre 1 y m.
4. Si CF[i] = CO[j], tenemos un costo acierto de valor 0. Caso contrario, tenemos un costo
de sustitución, de valor 1. Estos costos, a diferencia de la LD, podrían ser modificables en
caso de necesitarlo (para otras aplicaciones).
18
5. En la posición D[i,j] de la matriz, se coloca el valor mínimo de entre los siguientes:
- D[i-1, j] + costo de adición
- D[i, j-1] + costo de supresión
- D[i-1, j-1] + costo acierto o sustitución
Los costos de adición y supresión, en este caso, son iguales y de valor 1. También son
ajustables, pero para las necesidades del proyecto (saber qué diferencias hay entre las
cadenas) basta con utilizar los valores de la LD.
El cambio más importante introducido en este algoritmo es el siguiente: en la posición
D[i,j] de la matriz se coloca una etiqueta (‘Acierto’, ‘Sustitución’, ‘Adición’ o ‘Supresión’) de
acuerdo al valor mínimo obtenido (en la posición D[0,0] se coloca la etiqueta ´Inicio’).
Además, se almacena la posición de la matriz donde ocurrió ese mínimo. Esto último
permitirá, una vez se complete la matriz, encontrar a partir de la posición D[n, m] todos los
cambios ocurridos entre las cadenas de texto.
6. Luego de que la iteración entre los pasos 3 y 5 finalice, el valor LD (dado que los costos
se han mantenido iguales) se obtendrá de la posición D[n,m] de la matriz.
En la tabla 2.2 se muestra la comparación entre las mismas cadenas de texto que en
el ejemplo de la LD, con la finalidad de ilustrar tanto el funcionamiento del algoritmo de
Brew como las diferencias con el algoritmo de Levenshtein.
19
Tabla 2.2: Comparación de Cadenas de Texto usando el Algoritmo de Brew.
0
“INICIO”
C
A
R
4
C
E
1
“DEL”
0 (0,0)
“ACIERTO”
2
3
4
5
6
1 (1,1)
“SUPRE”
2 (1,2)
“SUPRE”
3 (1,3)
“SUPRE”
1 (2,2)
“SUPRE”
2 (2,3)
“SUPRE”
3 (2,4)
“SUPRE”
4 (2,5)
“SUPRE”
1 (3,3)
“SUPRE”
2 (3,4)
“SUPRE”
3 (3,5)
“SUPRE”
1 (3,3)
“SUST”
2 (3,4)
“SUPRE”
3 (4,5)
“SUPRE”
INCNI
1
“INS”
A
2
1 (1,1)
“ADICIÓN”
0 (1,1)
“ACIERTO”
R
3
2 (2,1)
“ADICIÓN”
1 (2,2)
0 (2,2)
“ADICIÓN” “ACIERTO”
A
4
3 (3,1)
“ADICIÓN”
2 (3,1)
“ACIERTO”
1 (3,3)
“INS”
C
5
4 (4,1)
“ADICIÓN”
3 (4,2)
“ADICIÓN”
2 (4,3)
“INS”
A
6
5 (5,1)
“ADICIÓN”
4 (5,1)
“ACIERTO”
3 (5,3)
“INS”
7
6 (6,1)
“ADICIÓN”
5 (6,2)
“ADICIÓN”
S
4 (0,4)
5 (1,5)
“ACIERTO” “SUPRE”
2 (4,3)
1 (4,4)
2 (5,5)
ADICIÓN “ACIERTO” “SUPRE”
3 (5,4)
“SUST”
2 (5,5)
“ADICIÓN”
2 (5,5)
“SUST”
4 (6,3)
4 (6,3)
3 (6,5)
“ADICIÓN” ADICIÓN “ADICIÓN”
3 (6,6)
“INS”
En la posición D[n,m] de este ejemplo, tenemos el valor de la LD = 3. A partir de esa
posición, si comenzamos a recorrer las posiciones donde ocurrieron los menores costos
(valores entre paréntesis) hasta D[0,0], obtendremos los tipos de cambios que hay en CF
respecto a la CO (la sustitución y la adición necesarias, pero que no eran indicadas por el
algoritmo de Levenshtein).
20
2.3 TÉCNICAS DE SEGMENTACIÓN DE IMÁGENES
La Segmentación consiste en dividir una imagen en múltiples regiones (por ejemplo,
en píxeles) para ser analizada y/o manipulada de manera más sencilla. Lo ideal para aplicar
esta técnica es que cada píxel (en este caso), o grupos de ellos, tengan características y/o
propiedades (tales como color, textura, etc.) lo suficientemente diferentes del resto como
para ser diferenciados. La característica más utilizada con esta técnica es la amplitud de la
luminancia, en el caso de imágenes monocromáticas, y las componentes de color, en el
caso de imágenes a colores.
Bajo la suposición de que las cadenas de texto de interés en la imagen tenían el
mismo color, y de que este era lo suficientemente diferente de los colores de fondo, se
procedió a aplicar técnicas de segmentación de imágenes.
2.3.1 UMBRALIZACIÓN
La Umbralización es la evaluación, píxel a píxel, de la imagen para hacer algún tipo de
discriminación. El objetivo es conservar los pixeles de la imagen que estén dentro de cierto
umbral (valores mínimo y máximo), es decir, que sean de determinado color.
2.3.2 ALGORITMOS DE DETECCIÓN DE BORDES: CANNY
El algoritmo de detección de bordes utilizado fue el de Canny[7]. Experiencias
(satisfactorias) previas en el grupo de trabajo condujeron a su utilización. Asimismo, otras
experiencias[8] en detección de bordes de letras, como por ejemplo, matrículas de
automóviles[9], donde existen una gran cantidad de imágenes distintas y resultados
altamente satisfactorios, sirvieron de referencia a la hora de seleccionarlo.
El Algoritmo de Canny se utiliza para detectar los bordes presentes en una imagen. Se
basa en el uso de máscaras gaussianas y en el uso de la primera derivada. Las condiciones
en las que se basa este algoritmo son las siguientes:
21
- Se deben detectar solamente (todos) los bordes presentes en la imagen.
- La distancia entre la posición real del borde y el píxel localizado debe ser la mínima
posible.
- No deben identificarse varios píxeles como un borde si existe uno solo.
Los pasos del algoritmo de Canny se presentan a continuación, con el objetivo de
ilustrar el funcionamiento del mismo.
1. Partiendo de una imagen I (figura 2.1), se calcula su gaussiana unidimensional, GU, en
las direcciones x e y.
Figura 2.1: Imagen original I. [10]
2. Se obtienen la primera derivada (también unidimensional) de las componentes x e y de la
gaussiana (GX y GY).
3. Se hace la convolución de I con GX y GY, obteniendo dos nuevas imágenes: IX e IY IX
(figuras 2.2 y 2.3).
4. Se halla la magnitud, ඥIଡ଼ଶ + Iଢ଼ଶ , y se obtiene una nueva imagen N (figura 2.4).
5. En N, se suprimen los píxeles que no sean máximos: se compara la magnitud de cada
píxel con sus vecinos en un entorno cercano (figura 2.5).
22
Figuras 2.2 y 2.3: Imágenes IX e IY.
[11]
Figuras 2.4 y 2.5: Imagen N, antes y después de suprimir los píxeles que no son
máximos.
[12]
6. Finalmente, se aplica histéresis sobre la imagen N (figura 2.6). Se definen dos umbrales,
U1 > U2. Se hace un recorrido por los píxeles de N, y para que alguno pertenezca a un
borde debe ser mayor que U1, o mayor que U2 sí y sólo sí al menos uno de sus vecinos
sea mayor que U1. Con la histéresis, se logran “encadenar” mejor los píxeles de borde,
evitando, de acuerdo a los umbrales, posible ruido presente en la imagen.
23
Figuras 2.6: Imagen final, luego de aplicar histéresis.
[13]
2.3.3 CONVERSIÓN A ESCALA DE GRISES
La conversión a escala de grises, utilizada en este Proyecto, es la que viene dada por
la siguiente ecuación: Y = 0.299*R + 0.587*G + 0.114*B, donde RGB son componentes de
color y Y la luminancia o nivel de gris.
2.3.4 CONVERSIÓN A BLANCO Y NEGRO – MÉTODO DE OTSU
La conversión a blanco y negro, utilizada en este Proyecto, se hizo aplicando
Umbralización Binivel sobre una imagen en escala de grises (resultante de aplicar al
conversión del punto 2.3.3), utilizando el método de Otsu para calcular el umbral de
luminancia. Entiéndase por Binivel, conversión de cada píxel a blanco o a negro según el
umbral obtenido.
El método de Otsu[14],[15] consiste en la conversión de una imagen en escala de grises
a una imagen en blanco y negro (imagen binaria). Este algoritmo asume que la imagen
tiene regiones homogéneas, condición que es inversamente proporcional a la varianza.
Asume también que hay dos grandes grupos de píxeles: de objetos y de fondo de imagen.
24
El algoritmo selecciona el umbral minimizando la varianza dentro de cada región de la
imagen (un grupo de N cantidad de píxeles, por ejemplo) y maximizándola entre distintas
regiones.
Este método tiene un gran inconveniente, y es que asume que sólo hay dos tipos de
píxeles (objetos y fondo). Esto implica que, cuando estos dos grupos son muy diferentes no
funciona correctamente, pues podrían existir una cantidad importante de grupos
“intermedios”. Por lo tanto, el método Otsu no funciona bien con iluminación variable.
25
CAPÍTULO III
DISEÑO DEL ANALIZADOR DE IMÁGENES
3.1 SELECCIÓN DEL LENGUAJE DE PROGRAMACIÓN Y DEL ENTORNO DE
DESARROLLO
El lenguaje de programación utilizado en el desarrollo del Proyecto es el C++. Más
que una selección, fue una exigencia del proyecto de Telefónica I+D del cual se deriva el
Proyecto: Al momento de comenzar este último, los desarrollos se estaban haciendo en
C++, por lo cual, por compatibilidad, se decidió dar continuidad a su uso.
Como ventaja añadida, en TID se disponía (sin representar un costo adicional para el
proyecto) del entorno de desarrollo “Microsoft Visual Studio 2005”, cuyas prestaciones
resultaban suficientes para cumplir los objetivos planteados.
Adicionalmente, las herramientas utilizadas tanto para el reconocimiento óptico de
caracteres como para el análisis de imágenes también estaban desarrolladas en C++ (se
verá con mayor detalle más adelante).
3.2 SELECCIÓN DEL OCR
Diferentes motores y software OCR fueron considerados antes de la selección de
alguno. En la tabla 3.1 se presentan comparaciones entre dichos software de OCR.
26
Tabla 3.1: Comparativas de Motores y Software OCR.
Motor /
Desarrollador
Licencia
Software
GOCR
Ventajas
Desventajas
Admite diferentes
Es fácil de usar
No disponible en
tipos de fuentes.
(para sólo tener
español;
5 años de
Interfaz poco
desarrollo).
amigable.
El sistema oficial
Lee a color o
Interfaz poco
de OCR de GNU
blanco y negro,
amigable.
Especiales
Jörg
GNU
Schulenburg
Ocrad
Características
Proyecto GNU
GNU
soporta UTF-8,
posee analizador
de composición
(columnas, filas)
Tesseract -
Google;
Gratuito;
Adquirido por
Soporta
Motor producido
OCR
Comunidad de
Licencia
Google. El mejor
Windows, Linux
hasta el año
desarrolladores
Apache.
software OCR
y Mac OS X.
1995.
Tiene excelentes
Buen manejo
El costo (160
algoritmos de
del formato
euros aprox.).
reconocimiento de
PDF;
texto.
actualizaciones
gratuito del
momento.
FineReader
ABBYY
Comercial
OCR
periódicas.
Readiris
IrisLink
Comercial
Liviano, Rápido,
Buen
El costo (aunque
Simple.
funcionamiento
existe una
con escáner;
versión de
interfaz
prueba de 30
amigable;
días).
disponibilidad
del idioma
español.
27
Ms Office
Microsoft.
Comercial.
Patrocinado por
Uso intuitivo.
El costo. Se
Document
Microsoft Office;
Motor que
enfoca en
Imaging
enlaza con
procesa más del
documentos de
OmniPage PRO de
99%.
imagen de
ScanSoft.
OmniPage
Nuance
Comercial.
Microsoft.
El más vendido
Automatiza el
El costo (100
del mundo
proceso de
euros aprox.).
(actualmente).
conversión de
texto; trabaja
con el formato
PDF; precisión
del 99%;
disponible en
múltiples
idiomas.
El software OCR comercial mejor posicionado en el mercado, para el momento de la
escogencia, fue el OmniPage de la compañía Nuance. Sin embargo, su uso de descartó
debido a la existencia de motores OCR de uso gratuito.
De los motores OCR gratuitos, el que mejor prestaciones presentaba, al momento de
la escogencia, era el Tesseract - OCR. El que su código fuente estuviese disponible para
Windows en C++ (el lenguaje de programación seleccionado para el desarrollo del
proyecto) y el que tuviese la opción de configuración para el idioma español, fueron factores
decisivos al momento de seleccionarlo. Adicionalmente, posee un buen soporte, al tener una
amplia comunidad de desarrolladores, y el tener la licencia Apache, permite su libre uso en
aplicaciones de carácter comercial y/o propietario, como es el caso de la aplicación
desarrollada para TID.
Una opción adicional de este software es que permite la posibilidad de
“entrenamiento”: mediante una aplicación, con interfaz gráfica incluida, puede prepararse a
dicho software para reconocer nuevos tipos de fuente. Esta funcionalidad es muy
28
importante, pues permitiría hacer frente a cambios de fuente (imposibles de reconocer por
el software) en las imágenes a analizar en este proyecto.
3.3 TESSERACT - OCR
El software Tesseract – OCR tiene las siguientes características[16]:
- Desarrollado sobre C++. Su código fuente está disponible, lo que lo hace compilable de
acuerdo a las necesidades del proyecto.
- Soporte de varios idiomas: alemán, español, inglés, italiano, etc.
- Admite imágenes en diversos formatos: .bmp, .png, .tiff, etc. (el formato de interés para
el proyecto es el .bmp).
- Admite imágenes en color, en escala de grises o en blanco y negro, siendo las dos
últimas las formas recomendadas para un óptimo funcionamiento.
- Las imágenes no necesitan ser de altísima calidad: podrían ser un poco borrosas y/o de
bajo contraste.
- Generación de los resultados de las lecturas de los caracteres de una imagen en un
fichero de texto (.txt) manejable prácticamente por cualquier editor de texto hoy en día.
3.4 ALGORITMO DE SEMEJANZA DE TEXTO
El Algoritmo de Semejanza de Texto (AST) es la implementación del Algoritmo de
Brew con ciertas modificaciones. Este último permite identificar las diferencias existentes
entre dos cadenas de texto; sin embargo, para los objetivos del proyecto, sigue sin ser
suficiente.
Lo que se necesitaba era obtener una medida que indicase cuán parecida es la CF a la
CO. Para ello, considerando que un acierto del 100% ocurre cuando CF = CO, tenemos la
siguiente fórmula empírica:
29
Semejanza = 100 - (Penalización / Longitud Máxima) [%]
…(i)
donde:
Penalización: Ponderación de las diferencias ocurridas entre CF y CO.
Longitud Máxima: el valor máximo de entre las longitudes de las cadenas, n y m.
Utilizando la información obtenida de las diferencias entre las cadenas de texto, se
pueden extraer los caracteres involucrados. Es decir, al ocurrir una sustitución, supresión o
adición de caracteres, se pueden obtener el par de caracteres envueltos en la acción. La
finalidad es ponderar las diferencias ocurridas.
Una vez obtenidos los pares de caracteres diferentes, se comprobarían en una tabla
de ponderación (ver tabla 3.2) y los valores obtenidos se sumarían a la variable
Penalización.
En la elaboración de la tabla 3.2, se consideró que:
1. En el caso de ocurrir una sustitución de caracteres, se asumió que la penalización es
simétrica, es decir, es igual para una pareja de caracteres ‘ab’ que para una pareja ‘ba’.
2. Al ocurrir una adición o una supresión, el par de caracteres se forma con un caracter
presente (en la CF o en la CO, respectivamente) y el caracter “vacío”. Igual que en el
caso de la sustitución, se asumió penalización simétrica.
Dado que el algoritmo está pensado para usarse con la Cadena Fuente proveniente de
la lectura de una imagen con OCR, la tabla 3.2 se elaboró considerando algunos de los
fallos más habituales en OCR (ver Apéndice C).
30
Tabla 3.2: Tabla de Confusiones más Comunes.
Parejas de
Caracteres
.
,
;
:
_
*
a
á
b
c
d
e
é
f
g
h
i
í
j
k
l
m
n
ñ
o
ó
p
q
r
s
t
u
ú
v
w
x
y
z
A
Á
B
C
D
E
É
F
Porcentaje
10
10
20
20
20
20
30
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
40
50
40
40
40
40
40
40
40
40
40
40
50
50
40
40
40
40
40
40
40
40
40
40
Parejas de
Caracteres
Ii
1I
I1
0O
O0
0o
o0
oO
Oo
ft
tf
tl
lt
tc
ct
yv
vy
ao
oa
gq
qg
eo
oe
co
oc
op
po
hb
bh
se
es
an
na
fl
lf
mn
nm
hn
nh
bo
ob
da
ad
hi
ih
aá
áá
Porcentaje
30
30
30
30
30
30
30
30
30
40
40
40
40
50
50
40
40
50
50
40
40
50
50
50
50
40
40
40
40
50
50
50
50
30
30
30
30
30
30
40
40
50
50
50
50
20
20
31
G
H
I
Í
J
K
L
M
N
Ñ
O
Ó
P
Q
R
S
T
U
Ú
V
W
X
Y
Z
.-.
,.
.,
.:
:.
;:
:;
as
sa
ae
ea
ec
ce
Il
lI
l1
1l
il
li
it
ti
iI
40
40
40
40
40
40
40
40
40
50
40
40
40
40
40
40
40
40
40
40
50
50
40
40
20
20
20
20
20
20
20
20
50
50
40
40
40
40
30
30
30
30
30
30
30
30
30
eé
ée
ií
íi
oó
óo
uú
úu
Ss
sS
5S
S5
5s
s5
4A
A4
08
80
MH
HM
DO
OD
D0
0D
NM
MN
AÁ
ÁA
EÉ
ÉE
IÍ
ÍI
OÓ
ÓO
UÚ
ÚU
UV
VU
1]
]1
I]
]I
(C
C(
(c
c(
([
[(
Otro Caso
20
20
20
20
20
20
20
20
15
15
20
20
20
20
20
20
50
50
50
50
30
30
30
30
30
30
20
20
20
20
20
20
20
20
20
20
20
20
30
30
30
30
20
20
20
20
30
30
50
32
En el caso de que ocurra que una pareja de caracteres no se encuentra en la tabla, se
estableció una Penalización = 50, puesto que se asume que si no está en la tabla no ha de
ser una ocurrencia habitual. Este valor también es ajustable.
Finalmente, al aplicar la fórmula (i) se pueden obtener dos cosas:
- Modalidad # 1: El valor porcentual de la semejanza entre las cadenas CF y CO.
- Modalidad # 2: De acuerdo a un criterio referencial (con el que se compararía el
resultado arrojado por la fórmula mencionada anteriormente), se puede considerar que
ha ocurrido un acierto o un fallo de la CF respecto a la CO (esto es, pensando que la
Cadena Fuente proviene de la lectura de una imagen con el OCR).
Por ejemplo, para el caso de las CF = ‘CAR4CE’ y la CO = ‘CARACAS’, se tendría lo
siguiente:
- En la sustitución de “4” por “A”, se almacenarían el par de caracteres “4A”.
- En la sustitución de “E” por “A”, se almacenarían el par de caracteres “EA”.
- En la supresión de “S”,
se almacenaría “ S” (el espacio indica vacío, ausencia del
caracter).
La penalización en este caso sería: 20 correspondiente a la primera sustitución, 50 por
la segunda sustitución y 40 por la supresión. Entonces, Penalización = 110.
Las longitudes de CF y CO son 6 y 7, respectivamente, siendo la Longitud Máxima = 7.
Sustituyendo valores en (i) tenemos:
Semejanza = 100 - (110 / 7) = 84,3 %
33
3.5 SELECCIÓN DE LA HERRAMIENTA DE TRATAMIENTO DE IMÁGENES
La herramienta utilizada para el tratamiento de imágenes fue OpenCV[17], en su
versión de C++. Al igual que en la escogencia del lenguaje de programación, su uso fue
una exigencia del proyecto de Telefónica I+D del cual se deriva el Proyecto: al momento de
comenzar este último, los desarrollos que involucraban tratamiento de imágenes se estaban
haciendo con OpenCV, con lo cual, por compatibilidad, se tuvo que usar. Asimismo, la
experiencia del grupo de trabajo con OpenCV representó un valor añadido, pues fueron
capaces de proporcionar recomendaciones en el tratamiento de imágenes.
OpenCV (en inglés Open Computer Vision) es una librería de visión artificial (o visión
por ordenador) orientada al tratamiento de imágenes (capturadas en tiempo real o no). Fue
originalmente desarrollada por Intel y está publicada bajo licencia BSD (Berkeley Software
Distribution), que permite su libre uso para propósitos de investigación y/o comerciales de
manera gratuita.
3.6 TRATAMIENTO DE IMÁGENES
En la figura 3.1 se presenta un diagrama que resume el tratamiento de imágenes
hecho en este Proyecto. El primer paso consiste en generar las imágenes a ser tratadas,
correspondientes a las Páginas Locales de Configuración de los STB de Imagenio, que no
son otra cosa que 4 pantallas de configuración de las características de emisión de las
señales de audio y video. El objetivo, como fue mencionado anteriormente, es extraer la
información presente en las mismas y comprobar su veracidad. Los STB emiten las páginas
locales en Video Compuesto. Las imágenes se obtuvieron con la sonda robot Witbe (ver
Apéndice A): a partir de la captura de la señal de video en tiempo real, se puede extraer (en
cualquier momento) una imagen (frame) en formato .BMP. En las figuras 3.2, 3.3, 3.4 Y 3.5
se muestran imágenes capturadas para el STB (ver Apéndice B) Motorola 1920.
34
Figura 3.1: Resumen del Tratamiento de Imágenes.
35
Figura 3.2: Páginas Locales del STB de Imagenio – Pantalla de Configuración de los
Parámetros de Red.
36
Figura 3.3: Páginas Locales del STB de Imagenio – Pantalla de Configuración de los
Parámetros de Emisión de Video.
37
Figura 3.4: Páginas Locales del STB de Imagenio – Pantalla de Configuración de los
Parámetros de Emisión de Audio.
38
Figura 3.5: Páginas Locales del STB de Imagenio – Pantalla con Información acerca del STB.
39
3.7 PREPARACIÓN DE LAS IMÁGENES PARA EL OCR
Antes de aplicarle a cualquiera de las 4 imágenes (figuras 3.2, 3.3, 3.4 y 3.5) OCR,
necesitan ser tratadas. Esto se debe a que:
- No todas las cadenas de texto presentes en la imagen son de interés.
- Lo deseable sería obtener imágenes de cada cadena de texto, y luego leerlas de forma
individual. De esta manera se pueden manejar los errores de lectura con mayor facilidad,
al tener limitado el origen de los mismos.
- El diseño de las imágenes incluye diversos colores y muchos bordes, lo cual podría ser
interpretado por el OCR como un carácter o incluso alguna palabra, cuando en realidad
no lo son.
En síntesis, el objetivo era conseguir “recortar” de la imagen principal cada cadena de
texto para posteriormente ser “leídas” con OCR. Para ello, los pasos que había que seguir
eran: localización de las cadenas de texto en la imagen, extracción de las mismas y
adaptación de los “recortes” de la imagen principal para un funcionamiento óptimo del
Tesseract – OCR.
A continuación se explica detalladamente el proceso de obtención de las cadenas de
texto individualizadas, que luego serán leídas una a una con el Tesseract – OCR. Para ello (y
también en explicaciones sucesivas) se utilizará la figura 3.4 como referencia.
3.8 LOCALIZACIÓN DE LAS CADENAS DE TEXTO EN LA IMAGEN
Para esta tarea se consideraron 2 alternativas, recomendadas por el grupo de trabajo,
pues se habían enfrentado anteriormente al problema de hacer OCR en imágenes:
1.
Localización de las cadenas de texto mediante el empleo de Umbralización.
2.
Localización de las cadenas de texto mediante el empleo de algoritmos de detección de
borde.
40
3.8.1 LOCALIZACIÓN DE LAS CADENAS DE TEXTO MEDIANTE EL EMPLEO DE
UMBRALIZACIÓN.
La Umbralización se aplicó, sobre la figura 3.4, para las componentes de dos modelos
de color, HSV y RGB. Para obtener los umbrales correspondientes, se calcularon
histogramas de partes de la imagen original, donde hubiese, al menos, un pedazo de alguna
cadena de texto (figuras 3.6a, 3.6b, 3.6c y 3.6d). Lo que se pretendía obtener eran valores
suficientemente exactos de las componentes de color (de uno u otro modelo) que
permitiesen recorrer la imagen original, píxel a píxel, y hacer una discriminación de los
mismos, esperando obtener como resultado una nueva imagen con dichas cadenas de
texto.
Figuras 3.6a, 3.6b, 3.6c y 3.6d: Imágenes con pedazos de las cadenas de texto de interés,
para calcular los histogramas de los modelos de color HSV y RGB.
Luego de calcular los histogramas de ambos modelos de color para las figuras 3.6a,
3.6b, 3.6c y 3.6d y de aplicar Umbralización sobre la imagen original, se obtuvieron,
respectivamente, las figuras 3.7a, 3.7b, 3.7c y 3.7d para el modelo HSV y las figuras 3.8a,
3.8b, 3.8c y 3.8d para el modelo RGB.
Como se observa en las figuras 3.7 y 3.8, la opción de Umbralización no es viable,
pues la imagen de la figura 3.4 no es ni uniforme ni homogénea: las componentes de color
no presentan valores significativamente diferentes. En consecuencia, esta opción fue
descartada.
41
Figura 3.7a: Imagen obtenida luego de aplicar umbralización para el modelo de color HSV,
utilizando la figura 3.6a para obtener el histograma.
Figura 3.8a: Imagen obtenida luego de aplicar umbralización para el modelo de color RGB,
utilizando la figura 3.6a para obtener el histograma.
42
Figura 3.7b: Imagen obtenida luego de aplicar umbralización para el modelo de color HSV,
utilizando la figura 3.6b para obtener el histograma.
Figura 3.8b.- Imagen obtenida luego de aplicar umbralización para el modelo de color RGB,
utilizando la figura 3.6b para obtener el histograma.
43
Figura 3.7c.- Imagen obtenida luego de aplicar umbralización para el modelo de color HSV,
utilizando la figura 3.6c para obtener el histograma.
Figura 3.8c: Imagen obtenida luego de aplicar umbralización para el modelo de color RGB,
utilizando la figura 3.6c para obtener el histograma.
44
Figura 3.7d.- Imagen obtenida luego de aplicar umbralización para el modelo de color HSV,
utilizando la figura 3.6d para obtener el histograma.
Figura 3.8d.- Imagen obtenida luego de aplicar umbralización para el modelo de color RGB,
utilizando la figura 3.6d para obtener el histograma.
45
3.8.2 LOCALIZACIÓN DE LAS CADENAS DE TEXTO MEDIANTE EL EMPLEO DE
ALGORITMOS DE DETECCIÓN DE BORDE.
En la figura 3.9 se presenta la imagen resultante luego de aplicarle el Algoritmo de
Canny a la figura 3.4. Como se puede apreciar, se consiguieron obtener los bordes de las
cadenas de texto deseadas y algunos otros que no son de interés.
Figura 3.9: Pantalla de Configuración de los Parámetros de Emisión de Audio, luego de la
aplicación del Algoritmo de Canny.
Luego de ver los resultados de las 2 alternativas propuestas para la localización de las
cadenas de texto en la imagen, es evidente que la segunda
segunda presenta los resultados más
favorables, y por tanto, fue la solución adoptada. Además, dichos resultados serían
suficientes para (servir de base a) la obtención de las imágenes individualizadas con las
cadenas de texto, como se verá a continuación.
46
3.9 OBTENCIÓN DE LAS CADENAS DE TEXTO EN IMÁGENES INDIVIDUALES
A pesar de que el contorno de algunos caracteres no se encuentre perfectamente
definido (ver figura 3.9), son lo suficientemente buenos para ayudar a localizar en que parte
de la imagen se encuentran las cadenas de texto. Los bordes hallados que no resulten de
interés son debidamente filtrados, como se verá posteriormente.
Una vez localizadas las cadenas de texto en la imagen, el siguiente paso es su
obtención como imágenes individualizadas. P
Para
ara ello, se procedió a dilatar los bordes de la
figura 3.9 hasta convertirlos en “objetos localizables” de la imagen (en otras palabras,
convertir en un solo elemento cada cadena de texto). El resultado de la dilatación se
muestra en la figura 3.10.
Figura 3.10: Imagen resultante luego de dilatar los bordes conseguidos con el Algoritmo de
Canny.
47
Al localizar todos los objetos de la imagen, es posible calcular su área y su perímetro.
Estos dos criterios, junto con las coordenadas x,y de cada uno, sirvieron para discriminar las
cadenas de texto de interés de los objetos no deseados.
Como fue mencionado el apartado 3.3, el funcionamiento óptimo del Tesseract – OCR
es con imágenes en escala de grises y/o blanco y negro. En las figuras 3.11 y 3.12 se
presentan ambas conversiones. La mejor imagen es la figura 3.11, pues no presenta
deterioros drásticos como la imagen de la figura 3.12. Con sólo aplicarla a esta imagen es
descartable la conversión a blanco y negro, puesto que en la parte afectada todas las
imágenes tienen texto de interés (figuras 3.2, 3.3, 3.4 y 3.5).
Figura 3.11: Pantalla de Configuración
Configuración de los Parámetros de Emisión de Audio, en escala de
grises.
48
Figura 3.12: Pantalla de Configuración de los Parámetros de Emisión de Audio, en blanco y
negro.
Finalmente, se utilizaron las coordenadas x,y de los objetos deseados y se procedió a
“recortar” de la figura 3.11 las cadenas de texto respectivas (ver figura 3.13).
Figura 3.13: Cadenas de texto individualizadas.
49
3.10 MEJORAS DE LAS IMÁGENES CONTENEDORAS DE LAS CADENAS DE
TEXTO PARA EL TESSERACT – OCR.
Una mejora adicional sobre las imágenes de la figura 3.13, antes de utilizarlas con
Tesseract – OCR, es hacerles una ampliación. El desempeño del Tesseract – OCR mejora
cuanto más grandes son los caracteres a reconocer. De manera experimental se consiguió
que, aumentando por un factor de 4, las cadenas de texto individualizadas se leían mucho
mejor respecto a su tamaño original. Factores mayores a ese no mejoraban más la lectura,
e incluso para factores superiores a 5-6 la lectura comenzaba de degradarse.
Para hacer la ampliación de las imágenes, se utilizaron los métodos de interpolación
vecino más próximo (figura 3.14), bilineal (figura 3.15) y bicúbico (figura 3.16). El primero
puede perder algunos valores, pues sólo usa la información del píxel más cercano. Los dos
últimos utilizan información de los 4 y 16 píxeles más cercanos, respectivamente. El método
bicúbico es, por lo tanto, el que añade menor distorsión a la imagen, es decir, el que arroja
imágenes más parecidas a la original. En las figuras 3.14 y 3.15 se puede ver como el
método vecino más próximo parece haber eliminado píxeles y el método bilineal
desdibujado un poco las letras. En la figura 3.16 se muestra una imagen, si bien no
perfecta, bastante fidedigna respecto a la original y mejor que las otras 2, por lo cual, fue el
método seleccionado para la ampliación de las imágenes.
Figura 3.14: Ejemplos de cadenas de texto individualizadas, aumentadas por un factor de 4
utilizando interpolación vecino más próximo.
50
Figura 3.15: Ejemplos de cadenas de texto individualizadas, aumentadas por un factor de 4
utilizando interpolación bilineal.
Figura 3.16: Ejemplos de cadenas de texto individualizadas, aumentadas por un factor de 4
utilizando interpolación bicúbica.
3.11
PROCESAMIENTO
DE
LA
INFORMACIÓN
CONTENIDA
EN
LAS
IMÁGENES
Una vez listas las imágenes individuales contenedoras de las cadenas de texto, se
procede a “leerlas” con el Tesseract – OCR. En otras palabras, se procede a obtener la
información de dichas imáge
imágenes.
nes. Para comprobar cuan acertada es la lectura, se dispone
del Algoritmo de Semejanza de Texto, expuesto en el apartado 3.4.
51
3.11.1 CLASIFICACIÓN DE LAS DE CADENAS DE TEXTO.
Las cadenas de texto fueron clasificadas en Títulos, Campos Estáticos o Campos
Variables, de acuerdo tanto al tipo de información brindada, como a su variabilidad.
Entiéndase por esto último, la posibilidad de una cadena de texto de ser modificada. En la
figura 3.17 se muestran indicadores con la clasificación de las cadenas de texto presentes
en las Páginas Locales de los STB de Imagenio.
1. Títulos: Los Títulos sirven para clasificar los parámetros (campos estáticos y variables) de
cada pantalla de configuración de los STB. Pueden o no existir.
Para el momento de realización de este Proyecto, sólo la pantalla de configuración de
los parámetros de audio contenía títulos (figura 3.4). Sin embargo, el desarrollo hecho
admite la aparición y/o supresión de títulos en cualquiera de las páginas locales.
2. Campos Estáticos: Los campos estáticos son las cadenas de texto que no pueden ser
modificadas por el usuario. Situados al lado izquierdo de cada página local, definen los
parámetros de configuración de los STB. Pueden ser agregados o removidos campos
estáticos en las páginas locales, según varíen los parámetros de configuración de los
STB.
3. Campos Variables: Los campos variables, situados a la derecha de cada página local, son
aquellas cadenas de texto modificables por el usuario, por el propio STB (por ejemplo, el
campo estático “Fecha” de la figura 3.5) o desde la planta de producción de Imagenio
(por ejemplo, los campos variables asociados a los estáticos “Versión Software” y
“Versión Firmware” de la figura 3.5, que varían según sean actualizados vía ADSL) en
cualquier momento.
52
Figura 3.17: Identificación de las Cadenas de Texto en la Pantalla de Configuración de los
Parámetros de Emisión de Audio.
3.11.2 ALMACENAMIENTO DE LA INFORMACIÓN
La información extraída de las imágenes de Páginas Locales se almacenará de la
siguiente forma: se guardará cada Campo Estático con su respectivo Campo Variable
asociado. En el caso de existir algún Título, pasa a formar parte de cada Campo Estático
asociado, y en consecuencia, estará asociado indirectamente al Campo Variable.
El objetivo es que, consultando un Campo Estático (o Título + Campo Estático) se
pueda conocer el valor del Campo Variable, y con ello, verificar la correcta configuración de
los parámetros de una determinada Página Local.
53
La veracidad de los Campos Estáticos, como se verá en el apartado 3.12.3, se debe
comprobar antes de almacenarse la información, pues este será el “Identificador” a
consultar por parte de los usuarios del Analizador de Texto (ver Apéndice D). Los Campos
Variables serán, por lo tanto, cadenas de texto cuya veracidad se comprobará utilizando los
valores introducidos por dichos usuarios.
3.11.3 EXTRACCIÓN Y VALIDACIÓN DE LA INFORMACIÓN
Al momento de extraer la información de las imágenes, hay que tener en cuenta que
cada campo estático tiene asociado un campo variable, y que ambos estarán asociados a un
título en el caso de existir. Las imágenes serán leídas con el Tesseract OCR en el siguiente
orden: Títulos, Campo Estático, Campo Variable, Campo Estático, Campo Variable, etc.
Cada cadena de texto obtenida (de las imágenes individualizadas) con Tesseract –
OCR debe ser comprobada. Es decir, debe verificarse si la cadena de texto conseguida era
la esperada, o al menos si es suficientemente parecida como para darse por válida. Existen
dos tipos de comprobación, una para Títulos y Campos Estáticos, y otra para Campos
Variables.
Comprobación de Títulos y Campos Estáticos
Estas cadenas de texto son del tipo no modificables. Por lo tanto, siempre tendrán
valores fijos y conocidos. A continuación se enumeran los pasos para hacer la
comprobación, utilizando un Campo Estático como ejemplo:
1. Se lee la imagen correspondiente, obteniendo así la CF (figura 3.18)
Røtardo Audlo SPDIF
Figura 3.18: Resultado de la lectura de un Campo Estático con Tesseract – OCR.
54
2. La cadena de texto obtenida (CF) se compara con cada uno de los posibles campos
estáticos, conocidos previamente, para la Pantalla de Configuración que se está
analizando. Al conjunto de estos últimos se les llama “Diccionario”. La comparación se
hace utilizando la modalidad 1 del AST (ver tabla 3.3).
Tabla 3.3:
3.3: Resultados del AST, en modalidad # 1.
Cadena Fuente (CF)
Røtardo Audlo SPDIF
Cadena Objetivo (CO)
Semejanza [%]
Configuración SPDIF
33.00
Configuración HDMI
16.00
Conversión AC3 a estéreo
11.25
Retardo Audio SPDIF
88.50
3. Se escoge como CO aquella que presente el mayor parecido con la CF. En este caso, CO
= ‘Retardo Audio SPDIF’.
4. Se hace una comparación de la CF con la CO utilizando la modalidad 2 del AST. En el
caso de ocurrir “Acierto” (figura 3.19), se almacena el campo estático correspondiente y
se procede a leer y comprobar su campo variable asociado. En el caso de ocurrir “Fallo”
no se almacena nada y se asume que el campo estático no existe, y por lo tanto,
tampoco existe un campo variable asociado.
Retardo Audio SPDIF
Figura 3.19: Campo Estático obtenido.
En la figura 3.20 se presenta un diagrama con los pasos para la comprobación de
Títulos y Campos Estáticos.
55
Figura 3.20:
3.20: Comprobación de Título / Campo Estático.
Comprobación de Campos Variables
Estas cadenas de texto son del tipo modificable. Las modificaciones pueden ser de dos
tipos:
- Modificaciones “Conocidas”: Son las modificaciones que pueden hacerse de manera
limitada y conocida, es decir, cuando el parámetro puede tomar solamente ciertos
valores predefinidos. Por ejemplo, el parámetro ‘Conversión AC3 a estéreo’ puede tomar
los valores ‘Sí’ y ‘No’ (figura 3.4). Para este tipo de campo variable puede usarse un
Diccionario.
- Modificaciones “Desconocidas”: Son las modificaciones que pueden hacerse de manera
ilimitada y/o desconocida, por lo que está descartado el uso de Diccionario alguno. Por
ejemplo, el parámetro ‘Versión Software’ de la figura 3.5.
A continuación se enumeran los pasos para hacer la comprobación de un Campo
Variable:
1. Se lee la imagen correspondiente, obteniendo así la CF (figura 3.21).
desactivado
Figura 3.21: Resultado de la lectura de un Campo Variable con Tesseract – OCR.
56
2. En el caso de existir Diccionario (caso contrario, saltar al paso 4): La cadena de texto
obtenida (CF) se compara con cada uno de los posibles campos variables conocidos
previamente. La comparación se hace utilizando la modalidad 1 del AST (ver tabla 3.4).
3. Se escoge como nueva CF aquella que presente el mayor parecido con la CF inicial. En
este caso, la nueva CF = ‘desactivado’.
Tabla 3.4: Resultados del AST, en modalidad # 1.
Cadena Fuente (CF)
desactivado
Cadena Objetivo (CO)
Semejanza [%]
desactivado
100
100 ms
27.27
200 ms
27.27
300 ms
27.27
4. Se hace una comparación de la CF con la CO utilizando la modalidad 2 del AST. La
cadena CO es el valor que desea comprobarse (ver Apéndice D). En el caso de ocurrir
“Acierto”, se almacena el campo variable asociado al campo estático correspondiente. En
el caso de ocurrir “Fallo”, se deja el campo variable vacío.
En la figura 3.22 se presenta un diagrama con los pasos para la comprobación de los
Campos Variables.
57
Figura 3.22: Comprobación de Campo Variable.
3.12 CONSULTA DE LA INFORMACIÓN
La información obtenida de las imágenes, y luego de su correspondiente validación, se
almacena en una tabla, y puede ser consultada utilizando como identificador/localizador al
Título + Campo Estático, como se mencionó en el apartado 3.12. De existir, se devuelve el
identificador acompañado del Campo Variable asociado, que a su vez puede contener
información o estar vacío. Si no existe, se devuelven ambos campos vacíos.
3.13 IMPLEMENTACIÓN DEL ANALIZADOR DE IMÁGENES
Como se mencionó en el punto 3.1, el desarrollo del Analizador de Imágenes fue
hecho en el lenguaje C++. Una vez culminado, fue incluido en una librería dinámica,
llamada “OCR.DLL”, que incluía otras aplicaciones del proyecto de TID. No obstante, el
desarrollo software de la sonda robot WITBE fue hecho en el lenguaje Python. Por
cuestiones de compatibilidad, fue necesario el uso de un “puente” entre ambos lenguajes,
que permitiesen ejecutar las funcionalidades incluidas en la “OCR.DLL” desde Python (ver
figura 3.23).
58
La sonda ejecuta una serie de funciones, llamadas “Tareas”. Por ejemplo, hace
mediciones de la calidad del audio y video emitido por los STB, verifica el correcto
funcionamiento de los STB, verifica la correcta configuración de los STB, etc. Esta última
funcionalidad utiliza el Analizador de Imágenes desarrollado en este Proyecto. El nombre de
la Tarea asociada es “Páginas Locales”, y tiene como parámetros de entrada una imagen
para analizar y las cadenas de texto que se deseen comprobar.
Figura 3.23: Esquema de la implementación del Analizador de Imágenes en la sonda robot
WITBE.
59
CAPÍTULO IV
PRUEBAS REALIZADAS Y ANÁLISIS DE LOS RESULTADOS
En este apartado se presentarán una serie de resultados obtenidos al utilizar el
Tesseract – OCR, sobre imágenes preparadas para ello, tal y como fue expuesto en los
puntos 3.8 al 3.11.
4.1
PRIMERA
PRUEBA:
PARA
LAS
CUATRO
PANTALLAS
DE
CONFIGURACIÓN, EMITIDAS POR UN STB.
En las tablas 4.1, 4.2, 4.3 y 4.4 se presentan resultados obtenidos para las cuatro
Pantallas de Configuración de los STB: Red, Video, Audio y Otros (figuras 3.2, 3.3, 3.4 y
3.5), capturadas con la sonda robot WITBE y emitidas por el STB Motorola 1920. Por cada
pantalla se capturó una muestra de 20 imágenes. Se presentan resultados promediados en
cada una de las cuatro tablas.
Se considera que ocurre un “Acierto” cuando se obtiene con el Tesseract – OCR el
caracter esperado de la imagen. Se considera que ocurre un “Fallo” cuando se obtiene un
caracter incorrecto (uno diferente al original), cuando se añaden caracteres en la lectura o
cuando se suprimen caracteres de la cadena de texto original.
60
Tabla 4.1: Resultados obtenidos con las imágenes emitidas por el STB Motorola 1920, para
la Pantalla de Configuración de Red.
Cadena de Texto Objetivo (CO)
N° caracteres
<Aciertos>
<Fallos>
Modo de Red
11
7,2
3,9
estático
8
8,0
0,0
Dirección IP
12
12,0
0,0
10.42.4.250
11
9,85
1,15
Máscara de Subred
17
16,0
1,0
255.255.255.248
15
13,1
2,0
Pasarela
8
7,2
0,9
10.42.4.249
11
9,85
1,3
Dirección del OPCH
21
21,0
0,0
239.0.2.10:22222
16
15,9
0,4
DNS Primario
12
12,0
0,0
172.26.23.3
11
10,15
1,15
Tabla 4.2: Resultados obtenidos con las imágenes emitidas por el STB Motorola 1920, para
la Pantalla de Configuración de Video.
Cadena de Texto Objetivo (CO)
N° caracteres
<Aciertos>
<Fallos>
Modo de vídeo
13
11,5
1,8
Euroconector
12
10,0
2,0
Modo de salida (Eurocon)
24
23,3
0,8
S-Video
7
6,0
1,0
Frecuencia RF
13
13,0
0,0
36
2
2,0
0,0
61
Tabla 4.3: Resultados obtenidos con las imágenes emitidas por el STB Motorola 1920, para
la Pantalla de Configuración de Audio.
Cadena de Texto Objetivo (CO)
N° caracteres
<Aciertos>
<Fallos>
Configuración SPDIF
19
9,9
9,3
Conversión AC3 a estéreo
24
20,1
4,0
Sí
2
2,0
0,0
Retardo Audio SPDIF
19
17,8
1,2
Desactivado
11
11,0
0,0
Configuración HDMI
18
16,0
2,0
Conversión AC3 a estéreo
24
21,6
2,4
Sí
2
2,0
0,0
Tabla 4.4: Resultados obtenidos con las imágenes emitidas por el STB Motorola 1920, para
la Pantalla de Configuración de Otros Parámetros.
Cadena de Texto Objetivo (CO)
N° caracteres
<Aciertos>
<Fallos>
Fabricante
10
8,0
2,1
motorola - vip1920-9t
21
16,4
5,8
Fecha
5
5,0
0,0
06/08/2008 - 11:09
18
17,6
2,0
Versión Software
16
16,0
0,0
2008.05.28.15.12.35
19
15,8
6,3
Versión Hardware
16
16,0
0,0
535636-008-00
13
10,2
2,8
Versión Firmware
16
14,4
1,7
2.21 (4.15.3 - 1.2.3.9)
23
21,6
3,4
62
4.2.
SEGUNDA
PRUEBA:
SOBRE
UNA
MISMA
PANTALLA
DE
CONFIGURACIÓN, EMITIDA POR DIFERENTES STB.
En las tablas 4.5, 4.6 y 4.7 se presentan resultados obtenidos para la Pantalla de
Configuración de Red de los STB (figura 3.4), capturada con la sonda robot WITBE y
emitida por 3 STB diferentes. De dicha pantalla se utilizaron únicamente las cadenas de
texto comunes para los 3 STB. Para cada uno de ellos, se capturó una muestra de 20
imágenes. Se presentan resultados promediados en cada una de las tres tablas.
Tabla 4.5: Resultados obtenidos para las imágenes emitidas por el STB Philips 5750.
Cadena de Texto Objetivo (CO)
N° caracteres
<Aciertos>
<Fallos>
Modo de Red
11
6,7
5,2
Estático
8
7,9
0,1
Dirección IP
12
11,3
0,7
Máscara de Subred
17
16,5
0,5
255.255.255.248
15
9,9
5,1
Pasarela
8
7,7
0,3
Dirección IP del OPCH
21
20,7
0,9
239.0.2.10:22222
16
13,9
3,0
DNS Primario
12
12,0
0
63
Tabla 4.6: Resultados obtenidos para las imágenes emitidas por el STB ADB 5810.
Cadena de Texto Objetivo (CO)
N° caracteres
<Aciertos>
<Fallos>
Modo de Red
11
8,8
2,2
Estático
8
8,0
0
Dirección IP
12
8,8
3,2
Máscara de Subred
17
14,8
2,2
255.255.255.248
15
9,2
5,8
Pasarela
8
5,7
2,3
Dirección IP del OPCH
21
17,2
3,8
239.0.2.10:22222
16
15,8
0,5
DNS Primario
12
12,0
0
Tabla 4.7: Resultados obtenidos para las imágenes emitidas por el STB Motorola 1920.
Cadena de Texto Objetivo (CO)
N° caracteres
<Aciertos>
<Fallos>
Modo de Red
11
7,2
3,9
estático
8
8,0
0
Dirección IP
12
12,0
0
Máscara de Subred
17
16,0
1,0
255.255.255.248
15
13,1
2,0
Pasarela
8
7,2
0,9
Dirección IP del OPCH
21
21,0
0
239.0.2.10:22222
16
15,9
0,4
DNS Primario
12
12,0
0
En la tabla 4.8 se presentan los resultados promediados para los 3 STB. En otras
palabras, resultados conjuntos para las 60 capturas de imagen de la Pantalla de
Configuración de Audio de los STB.
64
Tabla 4.8: Resultados obtenidos para las imágenes emitidas por los 3 STB.
Cadena de Texto Objetivo (CO)
N° caracteres
<Aciertos>
<Fallos>
Modo de Red
11
7,6
3,8
estático
8
8,0
0,0
Dirección IP
12
10,7
1,3
Máscara de Subred
17
15,8
1,2
255.255.255.248
15
10,7
4,3
Pasarela
8
6,9
1,2
Dirección IP del OPCH
21
19,6
1,6
239.0.2.10:22222
16
15,2
1,3
4.3. CONCLUSIONES SOBRE LAS PRUEBAS
Luego de realizar las dos pruebas anteriores, se obtuvieron las siguientes
conclusiones:
- Las lecturas con Tesseract – OCR de las imágenes correspondientes a las primeras
cadenas de texto (parte superior de la imagen) son las menos efectivas, especialmente
las ubicadas en la parte superior izquierda. Esto se debe a que en esa área hay una
mayor cantidad de brillo, que afecta el contraste de la imagen en escala de grises.
- Unas cadenas de texto se leen mejor que otras, es decir, el OCR no es 100% acertado.
De allí que se justifique el uso del AST para comprobar los resultados, y que este permita
la posibilidad de hacerlo con diferentes criterios numéricos, que irán en función de lo
acertado de la lectura en cada parte de la imagen.
- Los resultados de OCR no varían significativamente entre diferentes STB (Segunda
Prueba).
65
CONCLUSIONES Y RECOMENDACIONES
El Analizador de Imágenes basado en OCR que ha sido desarrollado durante este
Proyecto ha cumplido con los objetivos inicialmente planteados: extracción del texto de las
Pantallas de Configuración de los STB de Imagenio, y su respectiva validación. Asimismo,
luego de su finalización, fue implementado (ver Apéndice D) satisfactoriamente en las
Sondas Robot Witbe, y ha pasado, por tanto, a formar parte de las Pruebas de Validación de
los STB que Telefónica S.A. tiene en su Planta de Producción.
Es importante saber que el Analizador funciona tal y como está bajo una serie de
condiciones:
- Es dependiente del Look and Feel de Imagenio. Es decir, depende de la apariencia de la
interfaz de usuario del servicio, en este caso, de las Páginas Locales. Modificaciones en el
tipo de fuente y los colores, por ejemplo, afectarían el desempeño del Analizador hecho.
- El Algoritmo de Semejanza de Texto no admite como confusiones más probables el que
un caracter sea leído como un par de caracteres. Por ejemplo, que el OCR en lugar de
leer “m” lea
“rn”,”tn”, etc. La inclusión de estos casos mejoraría el desempeño del
mismo.
- En el caso de modificaciones de fuente en las cadenas de texto de las Páginas Locales,
será necesario ajustar el Algoritmo de Semejanza de Texto, pues es posible que ocurran
y/o desaparezcan confusiones comunes del Tesseract – OCR.
- Los Diccionarios, explicados en el apartado 3.12.3, sirven para comprobar los parámetros
de Red, Audio y Vídeo existentes a día de hoy. Modificaciones en los mismos, requerirán
la actualización de los Diccionarios.
El funcionamiento del Analizador de Imágenes está garantizado siempre y cuando se
respeten las condiciones mencionadas anteriormente. De no cumplirse alguna de ellas, es
66
posible que funcione, pero no perfectamente, y los resultados obtenidos en esos casos no
tendrán completa fiabilidad.
67
REFERENCIAS BIBLIOGRÁFICAS
• Chen, C.H.; Wang, P. S. Handbook of Pattern Recognition and Computer Vision. 3ERA
edición. World Scientific, 2004. Referencia
[4]
• De la Escalera, A. Visión por Computador, Fundamentos y Métodos. Prentice Hall, 2001.
Referencias
[7], [14]
• Hamey, L.; Priest, C. Automatic Number Plate Recognition for Australian Conditions.
Digital Image Computing: Techniqiues and Applications, IEEE Proceedings, Diciembre
2005. Referencia
[9]
• Jain, A. K.; Jung, K.; Kim, K. I. Text Information Extraction in Images and Video: A
Survey. Pattern Recognition, Volumen 37, Capítulo 5, Mayo 2004, Págs. 977-997.
• Kanai, J.; Nartker, T.; Rice, S.V. An Evaluation of OCR Accuracy. Technical Report 93-01,
Information Science Research Institute, University of Nevada, Las Vegas, Abril 1993.
Referencia
[15]
• Optichal Character Recognition (OCR). The Association for Automatic Identification and
Data Capture Technologies, Septiembre 2000. Referencia
[3]
• Pratt, W. K. Digital Image Processing, 4TA edición. Wiley, 2007. Referencia
[19]
• Ringlstetter, C. OCR correction and determination of Levenshtein weights. Master's
Degree Course Work in Computational Linguistics, Information and Language Center,
Ludwig-Maximilians University of Munich, Septiembre 2003. Referencia
[20]
• S.A. Tesseract – OCR. Disponible en Internet: http://code.google.com/p/tesseract-ocr/,
consultado el 17 de Diciembre de 2008. Referencia
• S.A.
Algoritmo
de
[16]
Levenshtein.
Disponible
en
Internet:
http://www.levenshtein.net/index.html, consultado el 17 de Diciembre de 2008.
Referencia
• S.A.
[5]
Algoritmo
de
Brew.
Disponible
en
Internet:
http://www.ling.ohio-
state.edu/~cbrew/795M/string-distance.html, consultado el 17 de Diciembre de 2008.
Referencia
[6]
• S.A. Intranet de Telefónica I+D. Consultado el 17 de Diciembre de 2008. Referencias
[2]
[1],
68
• S.A. OpenCV. Disponible en Internet: http://opencv.willowgarage.com/wiki/, consultado
el 17 de Diciembre de 2008. Referencia
• S.A.
Sondas
Robot
[17]
Witbe.
Disponible
en
Internet:
http://www.witbe.net/qoe/index.php/english/Monitoring/video-tv.html, consultado el 17
de Diciembre de 2008. Referencia
[18]
69
APÉNDICES
APÉNDICE A: SONDA ROBOT WITBE
La Sonda Robot Witbe S4000[18] (figura A.1) permite el monitoreo de servicios de TV,
IPTV y VoD. Posee la capacidad de capturar señales de audio y video en definición estándar
(S-Video o Video Compuesto) y en alta definición, y realizar mediciones sobre las mismas:
tiempo de cambio entre canales, calidad de audio y de video percibidos (Quality of
Experience, QoE), análisis de red (para el servicio IPTV y VoD), entre otras.
Para realizar mediciones, como las mencionadas anteriormente, la sonda ejecuta una
serie de “Tareas”, que no son otra cosa que aplicaciones específicas para cada una. Son
ajustables mediante la modificación de sus de parámetros.
A partir de las capacidades y/o funcionamiento básico de la sonda robot, es posible
diseñar nuevas Tareas. Gracias a esto, fue posible diseñar las Tareas necesarias para el
proyecto de TID “Sistema para la validación automática de descodificadores y aplicaciones
de Imagenio”.
Figura A.1: Sonda Video Robot WITBE S4000 (imagen referencial).
70
APÉNDICE B: STB
Al momento de culminar el Analizador de Imágenes, existían 5 tipos diferentes de
STB:
1. PHILIPS DIT - 5750
2. ADB 3800
3. ADB - 5810TWX
4. MOTOROLA IP - STB - 1720
5. MOTOROLA VIP 1920 - 9t.
Todos estos STB emiten las Páginas Locales en definición estándar con el Modo de
Video Compuesto.
71
APÉNDICE C: CONFUSIONES MÁS COMUNES EN OCR.
En la elaboración de la tabla 3.2 se utilizaron como base los resultados de dos estudios
distintos. El primero[19], elaborado en “The Information Science Research Institute University of Nevada” y el segundo[20] hecho en la “Ludwig Maximilians Universität München”. En las figuras C.1 y C.2 se presentan, a modo de referencia, los datos empleados
de ambos estudios.
Figura C.1: Tablas de confusiones más comunes, pertenecientes al primer estudio.
72
Figura C.2: Tablas de confusiones más comunes, pertenecientes al segundo estudio.
73
APÉNDICE D: TAREA DE PÁGINAS LOCALES.
Para ejecutar las Tareas en la sonda robot WITBE, se dispone de una interfaz web.
Desde allí son configurables todos los parámetros de las diversas Tareas disponibles. A
continuación se muestra, de manera simplificada, la configuración y ejecución de una Tarea
de Páginas Locales.
Lo primero que hay que hacer es autenticarse en el sistema (figura D.1).
Seguidamente, entramos en el menú principal, donde clicamos en “Definición casos de
prueba” (figura D.2) y posteriormente en “Prueba de Páginas Locales” (figura D.4). Se
desplegará una nueva pantalla donde se define la imagen a analizar (figura D.3) y los
parámetros que se desean comprobar.
Figura D.1: Tarea de Páginas Locales – Paso 1.
74
Figura D.2: Tarea de Páginas Locales – Paso 2.
Figura D.3: Pantalla de Configuración de los Parámetros de Video, correspondiente al STB
Motorola 1720.
75
Figura D.4: Tarea de Páginas Locales – Paso 3.
Después de definir los parámetros de la Tarea de Páginas Locales, la guardamos y
procedemos a ejecutarla. En “Planes de Prueba” (figura D.5) se encuentran disponibles
todas las Tareas configuradas hasta el momento y susceptibles de ser ejecutadas. Como se
puede ver en la figura anterior, la Tarea con nombre “Parámetros Video” fue debidamente
almacenada.
Figura D.5: Tarea de Páginas Locales – Paso 4.
76
Clicando en la opción “Ejecuciones” (figura D.6) escogemos la Tarea y la sonda robot
donde queremos ejecutarla. Al clicar en la opción “Guardar” la tarea comienza su ejecución
en la sonda escogida.
Figura D.6: Tarea de Páginas Locales – Paso 5.
Finalmente, accediendo a la opción “Resultados” (figura D.7), se puede buscar la
Tarea de interés y verificar los resultados obtenidos (figura D.8).
Figura D.7: Tarea de Páginas Locales – Paso 6 (y último)
.
77
Figura D.8: Tarea de Páginas Locales – Resultados.
Descargar