2009-11-28 14 views
144

Esto es principalmente solo curiosidad, pero ¿hay implementaciones de OCR en Java puro? Tengo curiosidad de cómo esto funcionaría puramente en Java, y OCR en general me interesa, así que me encantaría ver cómo se implementa en un lenguaje que entiendo completamente. Naturalmente, esto requeriría que la implementación sea de código abierto, pero todavía estoy interesado en soluciones exclusivas, ya que al menos podría verificar el rendimiento en ese caso.Implementación de OCR de Java

He visto un par que se puede usar en Java (como Asprise) pero no parece que se trate de implementaciones de Java puro ... ¿hay alguno?

+0

@Robik En primer lugar, mientras lo hace, también debe eliminar agradecimientos innecesarios, etc. Y segundo, no debe editar en tal supuesto, especialmente si OP todavía está activo y simplemente podría comentar, aunque es probablemente sea cierto en este caso ... @ ** rata ** Solo para aclarar, ¿te refieres a la sorpresa? –

+0

Si no busca el enfoque de Java puro, entonces construir un puente JNI (como [Tess4J] (http://tess4j.sourceforge.net/)) tiene sentido. Mi sensación es que las bibliotecas de OCR están mejor representadas en el mundo de C++ (OCRAD, GOCR, Cuneiform - vea todo [aquí] (http://centurion.nfors.com/w/software/ocr)). –

+0

@rat - Tiene razón - [Asprise OCR SDK para Java] (http://asprise.com/royalty-free-library/java-ocr-api-overview.html) no está basado únicamente en Java.De hecho, detrás de la escena, el código nativo se usa como OCR es un proceso muy computacionalmente costoso. –

Respuesta

3

acaba de encontrar este (no lo saben, no probado, compruebe usted mismo)

Ron Cemer Java OCR


ya que sólo necesita esto para la curiosidad que podría mirar en el origen de este applet.

Lo hace OCR de caracteres escritos a mano con una red neuronal

Java OCR: Handwriting Recognition

4

Hay una variedad de bibliotecas de OCR por ahí. Sin embargo, mi experiencia es que las principales implementaciones comerciales, ABBYY, Omnipage y ReadIris, superan con creces las implementaciones de código abierto u otras implementaciones menores. Estas bibliotecas comerciales no están diseñadas principalmente para funcionar con Java, aunque, por supuesto, es posible.

Por supuesto, si su interés es aprender el código, las implementaciones de código abierto harán el truco.

8

Si está buscando una opción muy extensible o tiene un dominio de problema específico, podría plantearse rodar la suya con el Java Object Oriented Neural Engine. Otra referencia JOONE.

Lo utilicé con éxito en un proyecto personal para identificar la letra de una imagen como this, puede encontrar toda la fuente para el componente de OCR de mi aplicación en github, here.

+1

Ooh, gracias por el ejemplo. ¡Lo descargué y planeo adaptarlo para mis propias necesidades! –

+0

¿Me puede mostrar cómo compilar? – RadijatoR

+0

Me temo que el proyecto ya no se mantiene @RadijatoR, por lo que no puedo ofrecer ningún consejo. – dukedave

74

Recomiendo probar el proyecto Java OCR en sourceforge.net. Originalmente lo desarrollé, y tengo a blog posting on it.

Desde que lo puse en sourceforge, su funcionalidad se ha ampliado y mejorado bastante gracias al gran trabajo de un investigador/desarrollador voluntario.

Pruébalo, y si no te gusta, ¡siempre puedes mejorarlo!

+0

hola, he echado un vistazo a este proyecto. Es bastante impresionante. Gracias. Sin embargo, tengo una pregunta, ¿puede esto convertir una imagen tif, jpeg en un archivo de búsqueda? –

+17

@Ron También he echado un vistazo al proyecto. No encontré la demo y la GUI realiza varias operaciones gráficas, pero no hay instrucciones sobre cómo obtener el reconocimiento real del personaje. –

+1

@Ron cuando sigo el enlace a su blog, veo una página en blanco. – neoneye

8

Hemos probado algunos motores de OCR con Java como Tesseract, Asprise, Abbyy etc. En nuestro análisis, Abbyy dio los mejores resultados.

+1

Implementaciones Java API o Java ..? – Ewoks

+0

Ninguno, pero hay una versión de línea de comandos a la que puede hablar utilizando 'ProcessBuilder'. –

+1

Ni Tesseract ni Abbyy están basados ​​en Java. Simplemente tienen API para Java. – krispy