Articulo de referencia

OCRopus

{{Cite news|url=https://developers.googleblog.com/2007/04/announcing-ocropus-open-source-ocr.html|title=Announcing the OCRopus Open Source OCR System|last=Breuel|first=Thomas|da...

OCRopus es un software gratuito para el análisis del diseño de documentos y el reconocimiento óptico de caracteres (OCR), publicado bajo la licencia Apache 2.0 , con un diseño muy modular que utiliza interfaces de línea de comandos .

Fue desarrollado bajo la dirección de Thomas Breuel, del Centro Alemán de Investigación en Inteligencia Artificial en Kaiserslautern , Alemania, y contó con el patrocinio de Google .

Descripción

OCRopus fue diseñado especialmente para su uso en proyectos de digitalización de libros de gran volumen , como Google Books , Internet Archive o bibliotecas. Admite una gran cantidad de idiomas y fuentes. [ 5 ] Sin embargo, también puede utilizarse para aplicaciones de escritorio y de oficina, o para aplicaciones destinadas a personas con discapacidad visual.

Sus componentes principales realizan las siguientes funciones:

Para estos componentes se pueden utilizar scripts individuales o múltiples. El enfoque de programación modular permite utilizar flujos de trabajo individuales e intercambiar pasos individuales.

Por defecto, OCRopus incluye un modelo para textos en inglés y otro para textos en Fraktur . Estos modelos hacen referencia al alfabeto y son en gran medida independientes del idioma en sí. [ 6 ] Se pueden entrenar nuevos caracteres o variantes lingüísticas desde el principio o añadirlos posteriormente.

El reconocimiento de texto reciente se basa en redes neuronales recurrentes ( LSTM ) y no requiere un modelo de lenguaje. Esto permite entrenar modelos independientes del idioma, para los cuales se han demostrado buenos resultados de reconocimiento en inglés, alemán y francés simultáneamente. [ 7 ] Además del alfabeto latino , existen resultados para otros alfabetos como el sánscrito , el urdu , el devanagari y el griego .

Se pueden lograr tasas de detección muy buenas mediante un entrenamiento adecuado. Este esfuerzo adicional es particularmente valioso para documentos o textos difíciles que ya no son comunes hoy en día y que no son el objetivo principal de otros programas de OCR. [ 8 ] [ 9 ]

Historia

El 9 de abril de 2007, se anunció OCRopus como un proyecto patrocinado por Google para desarrollar tecnologías OCR avanzadas. [ 1 ] Se concedió financiación por un período de tres años y cubrió, en particular, puestos de doctorado y postdoctorado en DFKI y la Universidad de Kaiserslautern . A cambio, OCRopus también se utilizó para el reconocimiento automático de texto en Google Book Search . [ 10 ] Desde el principio se adoptó una licencia de código abierto para facilitar la colaboración entre la investigación industrial y académica. [ 11 ] OCRopus ha recibido financiación adicional de la Fundación Andrew W. Mellon y el BMBF . [ 12 ]

La primera versión alfa 0.1 se publicó el 22 de octubre de 2007 y le siguieron varias versiones preliminares entre diciembre de 2007 y mayo de 2009, alcanzando la versión estable 0.4.4 en marzo de 2010. [ 13 ] Originalmente, el software se desarrolló en C++ , Python y Lua con Jam como sistema de compilación . Se realizó una refactorización completa del código fuente en módulos de Python y se publicó en la versión 0.5 (junio de 2012). [ 14 ]

Inicialmente, Tesseract se utilizó como el único módulo de reconocimiento de texto. Desde 2009 (versión 0.4), Tesseract solo se admitió como un complemento. En su lugar, se utilizó un reconocedor de texto de desarrollo propio (también basado en segmentos). [ 15 ] Este reconocedor se utilizó posteriormente junto con OpenFST [ 16 ] para el modelado del lenguaje después del paso de reconocimiento. A partir de 2013, se ofreció un reconocimiento adicional con redes neuronales recurrentes ( LSTM ), que con el lanzamiento de la versión 1.0 en noviembre de 2014 es el único reconocedor. [ 17 ] [ 18 ]

El código fuente se gestiona a través de GitHub y es mantenido y desarrollado por una comunidad de desarrolladores. [ 19 ] La versión actual de OCRopus es 1.3.3 (diciembre de 2017). [ 20 ]

El software OCR kraken , utilizado por la plataforma de transcripción eScriptorium, es una bifurcación de OCRopus. Añadió soporte para escrituras de derecha a izquierda . [ 21 ] Otra bifurcación basada en kraken es Calamari .

Thomas Breuel también desarrolló un sucesor, OCRopus 2, y está trabajando activamente en OCRopus 4. [ 22 ]

El 27 de abril de 2026, la mayoría de los proyectos relacionados con OCRopus (incluidos ocropy , ocropy2 y ocropus4 ) se trasladaron a una nueva organización de GitHub, " ocropus-archive ", y se marcaron como " archivados/ya no reciben mantenimiento ".

Uso

Flujo de trabajo de OCRopus
Diagrama de flujo de trabajo de las distintas herramientas de línea de comandos de OCRopus.

OCRopus se puede usar desde la línea de comandos. Una vez instalado, se puede invocar especificando las imágenes de entrada. Generará el texto reconocido directamente en la salida estándar o lo escribirá como código hOCR ( basado en HTML ) en archivos, desde los cuales se puede transformar en un PDF con capacidad de búsqueda. Si se necesita un control más preciso, se pueden especificar opciones en la línea de comandos para realizar operaciones específicas (por ejemplo, reconocer una sola línea). [ 23 ]

Ejemplo de las llamadas de OCRopus para reconocer el texto en una imagen:

# realizar binarización ocropus-nlbin tests/ersch.png -o libro # realizar análisis de diseño de página ocropus-gpageseg libro/0001.bin.png # Realizar el reconocimiento de líneas de texto (con un modelo Fraktur) ocropus-rpred -m models/fraktur.pyrnn.gz book/0001/*.bin.png # Generar salida HTML ocropus-hocr libro/0001.bin.png -o libro/0001.html

Otras herramientas se centran en la parte de entrenamiento de OCRopus. Existen modelos de OCRopus para extraer texto de alfabetos latinos, griegos, cirílicos e índicos. [ 24 ]

Referencias

  1. 1 2 Breuel, Thomas (9 de abril de 2007). "Anuncio del sistema OCR de código abierto OCRopus" . Blog de desarrolladores de Google . Recuperado el 29 de diciembre de 2017 .
  2. "Versión 1.3.3" . 16 de diciembre de 2017. Consultado el 15 de marzo de 2018 .
  3. "Versión 1.3.3" . 16 de diciembre de 2017. Consultado el 19 de febrero de 2020 .
  4. "Versión 1.3.3" . 16 de diciembre de 2017. Consultado el 1 de agosto de 2020 .
  5. Breuel, Thomas (2009). «Avances recientes en el sistema OCRopus OCR». Actas del Taller Internacional sobre OCR Multilingüe - MOCR '09 . Nueva York, NY, EE. UU.: ACM. págs. 2:1–2:10. doi : 10.1145/1577802.1577805 . ISBN  9781605586984. S2CID 16920122 . 
  6. "Modelos" . Wiki de ocropy . Consultado el 5 de enero de 2018 .
  7. Ul-Hasan, Adnan; Breuel, Thomas M. (2013). "¿Podemos construir un OCR independiente del idioma utilizando redes LSTM?". Actas del 4.º Taller Internacional sobre OCR Multilingüe - MOCR '13 . Nueva York, NY, EE. UU.: ACM. págs. 9:1–9:5. doi : 10.1145/2505377.2505394 . ISBN  9781450321143. S2CID 15054318 . 
  8. ^ Springmann, Uwe (1 de diciembre de 2016). "OCR para nuevos estampados". Informatik-Spektrum (en alemán). 39 (6): 459– 462. doi : 10.1007/s00287-016-1004-3 . ISSN 0170-6012 . S2CID 26680054 .  
  9. ^ Simistira, F.; Ul-Hassan, A.; Papavassiliou, V.; Gatos, B.; Katsouros, V.; Liwicki, M. (agosto de 2015). "Reconocimiento de escrituras politónicas griegas históricas utilizando redes LSTM". 2015 13ª Conferencia Internacional sobre Análisis y Reconocimiento de Documentos (ICDAR) . págs. 766– 770. doi : 10.1109/icdar.2015.7333865 . ISBN  978-1-4799-1805-8. S2CID 39049104 . 
  10. "Proyecto de investigación OCRopus" . dfki.de. Archivado del original el 6 de enero de 2018. Consultado el 5 de enero de 2018 .
  11. Breuel, Thomas M. (28 de enero de 2008). "El sistema OCR de código abierto OCRopus". En Yanikoglu, Berrin A; Berkner, Kathrin (eds.). Reconocimiento y recuperación de documentos XV . Reconocimiento y recuperación de documentos XV. Vol. 6815. pp. 68150F–68150F–15. Bibcode : 2008SPIE.6815E..0FB . CiteSeerX 10.1.1.99.8505 . doi : 10.1117/12.783598 . S2CID 14728635 .    
  12. "Sitio web del proyecto ocropus" . Google Project Hosting . Enero de 2019. Archivado del original el 24 de diciembre de 2012.
  13. "Versiones anteriores - ocropy" . GitHub . Consultado el 5 de enero de 2018 .
  14. "OCRopus 0.5" . Grupos de Google . 2 de junio de 2012.
  15. OCRopus ni siquiera se enlaza con Tesseract por defecto .
  16. Sitio web oficial de OpenFST .
  17. "ocropy - release v1.0" . GitHub . 2 de noviembre de 2014 . Consultado el 5 de enero de 2018 .
  18. Breuel, TM; Ul-Hasan, A.; Al-Azawi, MA; Shafait, F. (agosto de 2013). «OCR de alto rendimiento para inglés impreso y Fraktur mediante redes LSTM». XII Conferencia Internacional sobre Análisis y Reconocimiento de Documentos de 2013. págs. 683–687 . doi : 10.1109/icdar.2013.140 . ISBN  978-0-7695-4999-6. S2CID 7244356 . 
  19. "ocropy: herramientas basadas en Python para el análisis de documentos y OCR" , GitHub , consultado el 5 de enero de 2018.
  20. "Lanza ocropy" . GitHub . Consultado el 5 de enero de 2018 .
  21. "Kraken: un reconocedor de texto universal para las humanidades" . Consultado el 23 de enero de 2024 .
  22. "El sistema OCRopus OCR y software relacionado" . GitHub . Consultado el 27 de agosto de 2021 .
  23. "ocropy wiki" . GitHub . Consultado el 30 de diciembre de 2017 .
  24. "modelos ocropy" . GitHub . Consultado el 13 de marzo de 2018 .
  • ocropy en GitHub
  • Wiki de Ocropy en GitHub
  • Servidor de publicaciones de la IUPR (documentos que respaldan muchos de los algoritmos utilizados en OCRopus)