SlideShare una empresa de Scribd logo
static void
                           _f_do_barnacle_install_properties(GObjectClass
                                                           *gobject_class)
                                                                          {




   OCRFeeder
                                                     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 */,

   Conversión de documentos en GNOME
                                                   G_PARAM_READABLE
                                                | G_PARAM_WRITABLE |
                                                    G_PARAM_PRIVATE);

                            g_object_class_install_property (gobject_class,

                                       F_DO_BARNACLE_PROP_CODE,



   Joaquim Rocha
   jrocha@igalia.com




GUADEC ES 7
¿Qué es?

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


                Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
¿Porqué?

El papel tiene varios problemas

Sin aplicaciones para GNU/Linux
   que hagan un buen trabajo

                    Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Problemas del papel:
     Seguridad




                         Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
           CC Photo by: http://www.flickr.com/photos/badwsky/
Problemas del papel:
   Preservación




                        Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
   CC Photo by: http://www.flickr.com/photos/98469445@N00/
Problemas del papel:
Procesamiento de datos




                     Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
     CC Photo by: http://www.flickr.com/photos/hugovk/
Problemas del papel:
      Ecología




                            Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
          CC Photo by: http://www.flickr.com/photos/pranavsingh/
Hay motores de OCR para
    GNU/Linux pero...




               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)



                       Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Lo que se quiere es

  Análisis y Reconocimiento
       de Documentos

(conversión de documentos para
       formato electrónico)
 (primeros proyectos en los 80s)
                    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

                       Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
¿Cómo?




         Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Cómo




       Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Concepto base:

     1. Recortar los contenidos
           2. 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
                     Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Tantas estructuras...




                                Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
            CC Photo by: http://www.flickr.com/photos/uber-tuber/
Las estructuras varían con el tipo de
            documento

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


                      Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
OCRFeeder se enfoca en
contenidos, no en estructuras!




                   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

                    Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Hay contenido = Hay puntos cuyo
  color es diferente del fondo




                   Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Bloques:
Se llama bloques a los grupos de 1s




                     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

                      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

                     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>



                                  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

                       Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Exportación a ODT:

        Usa ODFPy

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

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

                    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
                         Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
ABBY Finereader test




Nuance Omnipage test




                       Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
Finereader's
                                              results


Omnipage's
results




             Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
¡Demo!




         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

                      Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
GNOME:

Usa la infrastructura de GNOME
           desde Enero




                   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
                    Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
¡Gracias!

            Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7

Más contenido relacionado

PDF
Introducción a Django
PDF
Seriesfinale, a TV shows' tracker for Maemo 5
PDF
Introduction to Django
PDF
Django introduction
PDF
Hands On The New Hildon
PDF
Python introduction
PDF
OCRFeeder LinuxTag 2011
PDF
Adapting GNOME Applications to Maemo Fremantle
Introducción a Django
Seriesfinale, a TV shows' tracker for Maemo 5
Introduction to Django
Django introduction
Hands On The New Hildon
Python introduction
OCRFeeder LinuxTag 2011
Adapting GNOME Applications to Maemo Fremantle

Similar a Ocrfeeder (20)

PPTX
Software libre (ricardo crespo pwp)
PDF
Seguridad en PDF: Adobe ¬¬
PPTX
Inkscape
PPTX
Inkscape
PDF
Introducción a OpenSolaris y ZFS
PDF
Csi: siempre quisiste ser forense
PDF
Seguridad en PDF - Adobe ¬¬
PDF
Manual gimp cap1
PDF
Tutorial gimp julio
PDF
Manual gimp cap1
ZIP
Blfs es 5.0
DOCX
Software libre
DOCX
Clase de dibujar c#
PDF
Cesnavarra 2008-boletín 7
PDF
Guia analisis-de-algoritmos
PDF
GDG DevFest Lighting Talks México
PDF
Guadalinex manual
PPTX
Plataforma de Digitalización
PDF
cuestionario grafico
PDF
cuestionario-de-grafico
Software libre (ricardo crespo pwp)
Seguridad en PDF: Adobe ¬¬
Inkscape
Inkscape
Introducción a OpenSolaris y ZFS
Csi: siempre quisiste ser forense
Seguridad en PDF - Adobe ¬¬
Manual gimp cap1
Tutorial gimp julio
Manual gimp cap1
Blfs es 5.0
Software libre
Clase de dibujar c#
Cesnavarra 2008-boletín 7
Guia analisis-de-algoritmos
GDG DevFest Lighting Talks México
Guadalinex manual
Plataforma de Digitalización
cuestionario grafico
cuestionario-de-grafico
Publicidad

Ocrfeeder

  • 1. static void _f_do_barnacle_install_properties(GObjectClass *gobject_class) { OCRFeeder 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 */, Conversión de documentos en GNOME G_PARAM_READABLE | G_PARAM_WRITABLE | G_PARAM_PRIVATE); g_object_class_install_property (gobject_class, F_DO_BARNACLE_PROP_CODE, Joaquim Rocha jrocha@igalia.com GUADEC ES 7
  • 2. ¿Qué es? Análisis de Documentos y Reconocimiento Óptico de Caracteres para GNOME Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 3. ¿Porqué? El papel tiene varios problemas Sin aplicaciones para GNU/Linux que hagan un buen trabajo Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 4. Problemas del papel: Seguridad Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7 CC Photo by: http://www.flickr.com/photos/badwsky/
  • 5. Problemas del papel: Preservación Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7 CC Photo by: http://www.flickr.com/photos/98469445@N00/
  • 6. Problemas del papel: Procesamiento de datos Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7 CC Photo by: http://www.flickr.com/photos/hugovk/
  • 7. Problemas del papel: Ecología Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7 CC Photo by: http://www.flickr.com/photos/pranavsingh/
  • 8. Hay motores de OCR para GNU/Linux pero... Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 9. OCR != Conversión de Documentos (sólo tiene en cuenta los caracteres) (no considera la estructura) (no distingue contenidos) Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 10. Lo que se quiere es Análisis y Reconocimiento de Documentos (conversión de documentos para formato electrónico) (primeros proyectos en los 80s) Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 11. ¿Done estamos estábamos? * Algunas soluciones cerradas * Sólo para sistemas proprietarios * Precios variados * y todavía... resultados discutibles Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 12. ¿Cómo? Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 13. Cómo Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 14. Concepto base: 1. Recortar los contenidos 2. 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 Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 15. Tantas estructuras... Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7 CC Photo by: http://www.flickr.com/photos/uber-tuber/
  • 16. Las estructuras varían con el tipo de documento Lo que funciona para detectar un documento, no funcionará para otros Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 17. OCRFeeder se enfoca en contenidos, no en estructuras! Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 18. 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 Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 19. Hay contenido = Hay puntos cuyo color es diferente del fondo Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 20. Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 21. Bloques: Se llama bloques a los grupos de 1s Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 22. 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 Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 23. Reconocimiento: Se usan motores OCR del sistema Los motores se configuran desde la GUI o mediante ficheros XML Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 24. 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> Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 25. Clasificación: Después de obtener el texto se utilizan heurísticas para determinar si el contenido representa gráficos o texto Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 26. Exportación a ODT: Usa ODFPy (abstrae la creación de ODF) (justo por encima de XML) Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 27. Últimas funcionalidades * Mejorar la a11y * Mejorar la detección de columnas * Enderezar las imágenes * Mejorar el reconocimiento de texto Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 28. Otras funcionalidades: * Importación de PDF * Uso del pre-procesador Unpaper * Selección de fuente * Exportación a HTML * Grabar/cargar proyectos Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 29. 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 Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 30. ABBY Finereader test Nuance Omnipage test Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 31. Finereader's results Omnipage's results Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 32. ¡Demo! Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 33. 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 Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 34. GNOME: Usa la infrastructura de GNOME desde Enero Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 35. Página web: http://live.gnome.org/OCRFeeder git: http://git.gnome.org/ocrfeeder Bugzilla: http://bugzilla.gnome.org product: OCRFeeder Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7
  • 36. ¡Gracias! Joaquim Rocha (Igalia) · OCRFeeder · GUADEC ES 7