ocrfeeder

36
static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { GParamSpec *pspec; /* Party code attribute */ pspec = g_param_spec_uint64 (F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code", 0, G_MAXUINT64, G_MAXUINT64 /* default value */, G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, Joaquim Rocha [email protected] OCRFeeder Conversión de documentos en GNOME GUADEC ES 7 GUADEC ES 7

Upload: joaquim-rocha

Post on 07-Jul-2015

1.819 views

Category:

Documents


1 download

TRANSCRIPT

Page 1: Ocrfeeder

static void_f_do_barnacle_install_properties(GObjectClass

*gobject_class){

GParamSpec *pspec;

/* Party code attribute */ pspec = g_param_spec_uint64

(F_DO_BARNACLE_CODE, "Barnacle code.", "Barnacle code",

0, G_MAXUINT64,

G_MAXUINT64 /* default value */,

G_PARAM_READABLE | G_PARAM_WRITABLE |

G_PARAM_PRIVATE);

g_object_class_install_property (gobject_class,

F_DO_BARNACLE_PROP_CODE,

Joaquim [email protected]

OCRFeeder

Conversión de documentos en GNOME

GUADEC ES 7GUADEC ES 7

Page 2: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

¿Qué es?

Análisis de Documentos y Reconocimiento Óptico de Caracteres para GNOME

Page 3: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

¿Porqué?

El papel tiene varios problemas

Sin aplicaciones para GNU/Linux que hagan un buen trabajo

Page 4: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Problemas del papel:Seguridad

CC Photo by: http://www.flickr.com/photos/badwsky/

Page 5: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Problemas del papel:Preservación

CC Photo by: http://www.flickr.com/photos/98469445@N00/

Page 6: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Problemas del papel:Procesamiento de datos

CC Photo by: http://www.flickr.com/photos/hugovk/

Page 7: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Problemas del papel:Ecología

CC Photo by: http://www.flickr.com/photos/pranavsingh/

Page 8: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Hay motores de OCR para GNU/Linux pero...

Page 9: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

OCR != Conversión de Documentos

(sólo tiene en cuenta los caracteres)(no considera la estructura)(no distingue contenidos)

Page 10: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Lo que se quiere es

Análisis y Reconocimientode Documentos

(conversión de documentos para formato electrónico)

(primeros proyectos en los 80s)

Page 11: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

¿Done estamos estábamos?

* Algunas soluciones cerradas* Sólo para sistemas proprietarios

* Precios variados* y todavía... resultados discutibles

Page 12: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

¿Cómo?

Page 13: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Cómo

Page 14: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Concepto base:

1. Recortar los contenidos2. Clasificarlos

2.1. Son gráficos → se pegan en el documento

2.2. Son texto → Se calcula el tamaño de letra; se pegan en el

documento

Page 15: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Tantas estructuras...

CC Photo by: http://www.flickr.com/photos/uber-tuber/

Page 16: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Las estructuras varían con el tipo de documento

Lo que funciona para detectar un documento, no funcionará para otros

Page 17: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

OCRFeeder se enfoca en contenidos, no en estructuras!

Page 18: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Concepto clave:

Si una imagen de un documento puede ser dividida en ventanas de 1 (contenido) o 0 (sin contenido), entonces es posible agrupar todos

los 1s y delinear los contenidos

Page 19: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Hay contenido = Hay puntos cuyo color es diferente del fondo

Page 20: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Page 21: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Bloques:

Se llama bloques a los grupos de 1s

Page 22: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Juntando bloques:

Los bloques se comparan con los demás y se juntan cuando sea

adecuado

Cuando ya no se pueden juntar más bloques, la parte del análisis está

acabada

Page 23: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Reconocimiento:

Se usan motores OCR del sistema

Los motores se configuran desde la GUI o mediante ficheros XML

Page 24: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Configuración de un motor OCR:

<?xml version="1.0" encoding="UTF-8"?><engine>

<name>Tesseract</name><image_format>TIFF</image_format><engine_path>/usr/bin/tesseract</engine_path><arguments>$IMAGE $FILE; cat $FILE.txt;

rm $FILE.txt</arguments></engine>

Page 25: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Clasificación:

Después de obtener el texto se utilizan heurísticas para determinar si el contenido representa gráficos o

texto

Page 26: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Exportación a ODT:

Usa ODFPy

(abstrae la creación de ODF)(justo por encima de XML)

Page 27: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Últimas funcionalidades

* Mejorar la a11y

* Mejorar la detección de columnas

* Enderezar las imágenes

* Mejorar el reconocimiento de texto

Page 28: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Otras funcionalidades:

* Importación de PDF* Uso del pre-procesador Unpaper

* Selección de fuente* Exportación a HTML

* Grabar/cargar proyectos

Page 29: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Interacción con el usuario:

Los usuarios pueden editar y revisar los resultados de los algoritmos

Entonces, la UI puede funcionar en modo automático o “manual”

El ILC sólo funciona en el modo automático

Page 30: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Nuance Omnipage test

ABBY Finereader test

Page 31: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Omnipage'sresults

Finereader'sresults

Page 32: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

¡Demo!

Page 33: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Futuro:

* Integración de Ocropus como método de análisis alternativo

* Más formatos de exportación: HOCR, txt, PDF

* Mejor integración con GNOME y sus aplicaciones

Page 34: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

GNOME:

Usa la infrastructura de GNOME desde Enero

Page 35: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Página web:http://live.gnome.org/OCRFeeder

git:http://git.gnome.org/ocrfeeder

Bugzilla:http://bugzilla.gnome.org

product: OCRFeeder

Page 36: Ocrfeeder

Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

¡Gracias!