Implementación de Java OCR [cerrado]

160

Esto es principalmente curiosidad, pero ¿hay implementaciones de OCR en Java puro? Tengo curiosidad por saber cómo funcionaría esto exclusivamente en Java, y el 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 propietarias, ya que al menos podría verificar el rendimiento en ese caso.

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

rata
fuente
@Robik En primer lugar, mientras lo hace, también debe eliminar las gracias innecesarias, etc. Y, en segundo lugar, no debe editar con tal suposición, especialmente si OP todavía está activo y simplemente puede comentar, aunque es probable que sea cierto en este caso ... @ rata Solo para aclarar, ¿querías decir sorpresa?
Tobias Kienzler
Si no busca un enfoque de Java puro, entonces quizás tenga sentido construir un puente JNI (como Tess4J ). Mi sensación es que las bibliotecas de OCR están mejor representadas en el mundo de C ++ (OCRAD, GOCR, Cuneiform, vea todo aquí ).
dma_k
@rat - Tienes razón - Asprise OCR SDK para Java no está basado en Java puro. De hecho, detrás de escena, el código nativo se usa ya que OCR es un proceso computacionalmente costoso.
Asprise Support

Respuestas:

81

Recomiendo probar el proyecto Java OCR en sourceforge.net. Originalmente lo desarrollé y tengo una publicación en el blog .

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!

Ron
fuente
18
@Ron También he echado un vistazo al proyecto. No encontré la demostración y la GUI realiza varias operaciones gráficas, pero no hay instrucciones sobre cómo hacer funcionar el reconocimiento de caracteres real.
James P.
1
@Ron cuando sigo el enlace a tu blog, veo una página en blanco.
neoneye
3
@Ron, ¿dónde puedo obtener una documentación o blog o tutorial adicional?
altsyset
1
¿Cómo importar Java OCR en eclipse?
Faisal Ashraf
2
Hola, ¿hay algún tutorial para esto?
The Well
10

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

Cielo azul
fuente
1
API de Java o implementaciones de Java ...?
Ewoks el
Ninguno de los dos, pero hay una versión de línea de comandos con la que puedes hablar usando ProcessBuilder.
Aaron Digulla
1
Ni Tesseract ni Abbyy están basados ​​en Java. Simplemente tienen API para Java.
krispy
10

Si está buscando una opción muy extensible o tiene un dominio de problema específico, podría considerar la opción de usar el motor neuronal orientado a objetos Java . Otra referencia de JOONE .

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

davetapley
fuente
1
Ooh, gracias por el ejemplo. ¡Lo descargué y planeo adaptarlo a mis propias necesidades!
Amanda S
¿Me puede mostrar cómo compilar?
RadijatoR
Me temo que el proyecto ya no se mantiene @RadijatoR, por lo que no puedo ofrecer ningún consejo.
davetapley
44
La mayoría de los enlaces están muertos.
Erik
5

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.

Joshua Fox
fuente