OCRopus es un sistema gratuito de análisis de documentos y reconocimiento óptico de caracteres (OCR) lanzado bajo la licencia Apache v2.0 con un diseño muy modular que utiliza interfaces de línea de comandos .
Desarrollador (es) | Thomas Breuel, DFKI |
---|---|
Versión inicial | 9 de abril de 2007 [1] |
Lanzamiento estable | 1.3.3 / 16 de diciembre de 2017 |
Repositorio | |
Escrito en | C ++ y Python |
Sistema operativo | FreeBSD , Linux , Mac OS X |
Tipo | Reconocimiento óptico de caracteres |
Licencia | Licencia de Apache v2.0 |
Sitio web | github |
OCRopus se desarrolló bajo la dirección de Thomas Breuel del Centro Alemán de Investigación de Inteligencia Artificial en Kaiserslautern , Alemania y fue patrocinado por Google .
Descripción
OCRopus fue especialmente diseñado para su uso en proyectos de digitalización de libros de gran volumen , como Google Books , Internet Archive o bibliotecas. Se admitirán una gran cantidad de idiomas y fuentes. [2] Sin embargo, también se puede utilizar para aplicaciones de escritorio y de oficina o para aplicaciones para personas con discapacidad visual.
Los principales componentes de OCRopus se forman:
- análisis del diseño del documento
- reconocimiento óptico de caracteres
- uso de modelos de lenguaje estadístico
Hay disponibles scripts únicos o múltiples para estos componentes. El enfoque modular permite utilizar flujos de trabajo individuales e intercambiar pasos individuales.
Por defecto, OCRopus viene con un modelo para textos en inglés y un modelo para texto en Fraktur . Estos modelos se refieren al guión y son en gran medida independientes del idioma real. [3] Se pueden entrenar nuevos caracteres o variantes de idioma tanto nuevos como adicionales.
El reconocimiento de texto reciente se basa en redes neuronales recurrentes ( LSTM ) y no requiere un modelo de lenguaje. Esto hace posible entrenar modelos independientes del idioma para los que se han mostrado buenos resultados de reconocimiento para inglés, alemán y francés al mismo tiempo. [4] Además de la escritura latina , hay resultados para otras escrituras como sánscrito , urdu , devanagari y griego .
Se pueden lograr muy buenos índices de detección mediante una formación adecuada. Este esfuerzo adicional es particularmente valioso para documentos o scripts difíciles que ya no son comunes hoy en día, que no están en el foco de otro software de OCR. [5] [6]
Historia
El 9 de abril de 2007, OCRopus se anunció como un proyecto patrocinado por Google para desarrollar tecnologías avanzadas de OCR. [1] La financiación se concedió por un período de tres años y cubrió, en particular, puestos de doctorado y posdoctorado en DFKI y la Universidad de Kaiserslautern . A cambio, OCRopus también se utilizó para el reconocimiento automático de texto en la Búsqueda de libros de Google . [7] La concesión de licencias bajo una licencia de código abierto se realizó desde el principio para facilitar la colaboración entre la investigación industrial y académica. [8] OCRopus ha recibido financiación adicional de la Fundación Andrew W. Mellon y la BMBF . [9]
La primera versión alfa 0.1 se lanzó el 22 de octubre de 2007 y varias versiones preliminares siguieron entre diciembre de 2007 y mayo de 2009, alcanzando una versión estable 0.4.4 en marzo de 2010. [10] Originalmente, el software se desarrolló en C ++ , Python y Lua con Jam como sistema de construcción . Se realizó una refactorización completa del código fuente en los módulos de Python y se lanzó en la versión 0.5 (junio de 2012). [11]
Inicialmente, Tesseract se utilizó como el único módulo de reconocimiento de texto. Desde 2009 (versión 0.4) Tesseract solo fue compatible como complemento. En su lugar, se utilizó un reconocedor de texto de desarrollo propio (también basado en segmentos). [12] Este reconocedor se usó luego junto con OpenFST [13] para modelar el 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. [14] [15]
El código fuente se administra a través de GitHub y es mantenido y desarrollado por una comunidad de desarrolladores. [16] La versión actual de OCRopus es 1.3.3 (diciembre de 2017). [17]
Uso
OCRopus se puede utilizar desde la línea de comandos. Una vez instalado, se puede invocar especificando las imágenes de entrada. Enviará el texto reconocido a la salida estándar directamente o lo escribirá como código hOCR ( basado en HTML ) en archivos, desde los cuales luego 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 comando para realizar operaciones específicas (por ejemplo, reconocer una sola línea). [18]
Ejemplo de llamadas de OCRopus para reconocer el texto en una imagen:
# perform binarizationocropus-nlbin tests/ersch.png -o book# perform page layout analysisocropus-gpageseg book/0001.bin.png# perform text line recognition (with a fraktur model)ocropus-rpred -m models/fraktur.pyrnn.gz book/0001/*.bin.png# generate HTML outputocropus-hocr book/0001.bin.png -o book/0001.html
Otras herramientas se concentran en la parte de formación de OCRopus. Existen modelos OCRopus para extraer texto de escrituras latinas, griegas, cirílicas e índicas. [19]
Referencias
- ↑ a b Breuel, Thomas (9 de abril de 2007). "Anuncio del sistema OCR de código abierto OCRopus" . Blog de desarrolladores de Google . Consultado el 29 de diciembre de 2017 .
- ^ Breuel, Thomas (2009). Progreso reciente 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.
- ^ "Modelos" . wiki de ocropy . Consultado el 5 de enero de 2018 .
- ^ Ul-Hasan, Adnan; Breuel, Thomas M. (2013). ¿Podemos crear OCR independiente del idioma utilizando LSTM Networks? . Actas del IV 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.
- ^ Springmann, Uwe (1 de diciembre de 2016). "OCR für alte Drucke". Informatik-Spektrum (en alemán). 39 (6): 459–462. doi : 10.1007 / s00287-016-1004-3 . ISSN 0170-6012 .
- ^ 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 XIII Congreso Internacional de Análisis y Reconocimiento de Documentos (ICDAR) . págs. 766–770. doi : 10.1109 / icdar.2015.7333865 . ISBN 978-1-4799-1805-8.
- ^ "Proyecto de investigación OCRopus" . www.dfki.de . Consultado el 5 de enero de 2018 .
- ^ Breuel, Thomas M. (28 de enero de 2008). "El sistema OCR de código abierto OCRopus". Actas Volumen 6815, Reconocimiento y recuperación de documentos XV . Reconocimiento y recuperación de documentos XV. 6815 : 68150F – 68150F – 15. Código Bibliográfico : 2008SPIE.6815E..0FB . CiteSeerX 10.1.1.99.8505 . doi : 10.1117 / 12.783598 .
- ^ "sitio web del proyecto ocropus" . Alojamiento de proyectos de Google . Enero de 2019. Archivado desde el original el 24 de diciembre de 2012.
- ^ "Versiones anteriores - ocropy" . GitHub . Consultado el 5 de enero de 2018 .
- ^ "OCRopus 0.5" . Grupos de Google . 2 de junio de 2012.
- ^ OCRopus ni siquiera se vincula con Tesseract de forma predeterminada .
- ^ Sitio web oficial de OpenFST .
- ^ "ocropy - versión v1.0" . GitHub . 2 de noviembre de 2014 . Consultado el 5 de enero de 2018 .
- ^ Breuel, TM; Ul-Hasan, A .; Al-Azawi, MA; Shafait, F. (agosto de 2013). OCR de alto rendimiento para inglés impreso y Fraktur con LSTM Networks . 2013 XII Congreso Internacional de Análisis y Reconocimiento de Documentos . págs. 683–687. doi : 10.1109 / icdar.2013.140 . ISBN 978-0-7695-4999-6.
- ^ "ocropy: herramientas basadas en Python para el análisis de documentos y OCR" , GitHub , consultado el 5 de enero de 2018
- ^ "Libera ocropía" . GitHub . Consultado el 5 de enero de 2018 .
- ^ "wiki de ocropy" . GitHub . Consultado el 30 de diciembre de 2017 .
- ^ "modelos de ocropía" . GitHub . Consultado el 13 de marzo de 2018 .
enlaces externos
- ocropy en GitHub
- Wiki de Ocropy en GitHub
- Servidor de publicaciones IUPR (artículos detrás de muchos de los algoritmos utilizados en OCRopus)