Engines de OCR. Alguma que presta em Java?  XML
Índice dos Fóruns » Assuntos gerais (Off-topic)
Autor Mensagem
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Srs.,

Estou precisando de uma engine de OCR, de uns tempos pra cá comecei a testar algumas e não achei nenhuma que tenha uma SDK aceitável em Java e que tenha essa interface. Algumas que testei:

Clara OCR - Projeto muito inicial e está parado no tempo, reconheceu mal.
Tesseract OCR - Reconheceu mal imagem com boa qualidade, sem contar que não dá pra botar o portugues pra funcionar nem com reza brava no 3.0, e o 2.0 leu muito mal.
JOCR - Reconheceu mal
FreeOCR - Sumiu do mapa
Asprise OCR - Reconheceu mal
Abbyy Fine Reader - Muito boa, excelente leitura e falhou muito pouco, porém é cara que só e não vi suporte da SDK em Java.

Lote de documentos para teste:
- Contrato em PDF bitonal, com imagens TIFF (capturadas c/ 100dpi)
- Uma conta de luz capturada com 300dpi
- Um printscreen de browser
- Outro print, bitonal, de um arquivo de texto.

Enfim, não vi algum bom suporte a isso e depois de muito pesquisar tô caindo na realidade: não tem ou é impressão minha? Alguém sabe algum outro? E sobre a Abbyy, alguém conhece algo sobre ela em Java? (o site diz que tem suporte, mas fala que não tem exemplos, achei isso bem contraditório)

[]'s

PS: esqueci de comentar, fui baixar também a Pegasus, mas não encontrei em canto algum a SDK Java deles.

This message was edited 1 time. Last update was at 24/08/2011 22:14:15

Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

Abby e OmniPage SDK (da Nuance) são os melhores, ambos são pagos e são caros.

Outra, você não quer uma API em Java, mesmo que você pegue qualquer um desses, escreva uma aplicação wrapper em linha de comando e chame eles, OCRs tem costume de dar segfault, morrer quando o arquivo está corrompido e coisas do tipo, então é muito mais seguro executar ele do lado de fora da sua app pra evitar que ela morra do nada porque o SDK falhou.

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
juliocbq
GUJ Expert
[Avatar]

Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline

É mais fácil escrever uma que usar as bugadas versões demos disponíveis pela internet. Não é um projeto difícil de desenvolver e é uma boa chance de ganhar known how com redes neurais e processamento de imagens.


Trabalho para uma ou duas semanas.

http://www.codeproject.com/KB/cs/neural_network_ocr.aspx
http://www.codeproject.com/KB/recipes/OCR-Chain-Code.aspx

This message was edited 1 time. Last update was at 25/08/2011 06:46:22


www.citrox.com.br
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Opa Julio,

O problema de tudo é que eu não acredito (e seria realmente impossível) que iria atingir uma boa qualidade no estilo da Abbbyy com o desenvolvimento em duas semanas. E é um produto que estou desenvolvendo, não um trabalho menor. Portanto, eu tô em busca de uma solução "quase" perfeita.

Não consegui baixar a SDK da Pegasus for Java, também. Alguém sabe como diabos encontro?

Maurício, eu até pagaria se a SDK for boa. A idéia é: desenvolver um wrapper mesmo, a aplicação ia bater em um service com um metodo ocr(bytes, recognizeBarcodes), e ia retornar a String da coisa. Qual o motivo pra uma OCR dessas dar segfault tao normalmente?

[]'s!

This message was edited 1 time. Last update was at 25/08/2011 07:53:42

Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

AUser wrote:Maurício, eu até pagaria se a SDK for boa. A idéia é: desenvolver um wrapper mesmo, a aplicação ia bater em um service com um metodo ocr(bytes, recognizeBarcodes), e ia retornar a String da coisa. Qual o motivo pra uma OCR dessas dar segfault tao normalmente?


Nào sei, sinceramente, mas a minha experiência tanto com o OmniPage quanto com o Abby é que isso é bem como e a JVM sempre cai junto, então o que fazemos hoje aqui é sempre chamar como processo externo.

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Certo, mas ela continua caindo chamando como processo externo? Como você faz isso? Chama pelo windows mesmo ou linux? Diretão, na unha como um comando do sistema?

[]'s
juliocbq
GUJ Expert
[Avatar]

Membro desde: 13/11/2008 12:10:18
Mensagens: 3927
Offline

AUser wrote:Opa Julio,

O problema de tudo é que eu não acredito (e seria realmente impossível) que iria atingir uma boa qualidade no estilo da Abbbyy com o desenvolvimento em duas semanas. E é um produto que estou desenvolvendo, não um trabalho menor. Portanto, eu tô em busca de uma solução "quase" perfeita.

Não consegui baixar a SDK da Pegasus for Java, também. Alguém sabe como diabos encontro?

Maurício, eu até pagaria se a SDK for boa. A idéia é: desenvolver um wrapper mesmo, a aplicação ia bater em um service com um metodo ocr(bytes, recognizeBarcodes), e ia retornar a String da coisa. Qual o motivo pra uma OCR dessas dar segfault tao normalmente?

[]'s!


esse artigo postado aí tem 10% de margem de erro, não tá bom? Os sdks do mercado estão nessa margem também.

www.citrox.com.br
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

AUser wrote:Certo, mas ela continua caindo chamando como processo externo? Como você faz isso? Chama pelo windows mesmo ou linux? Diretão, na unha como um comando do sistema?

[]'s


É um executável que chamamos via ProcessBuilder mesmo, nada demais.

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Mauricio Linhares wrote:
AUser wrote:Certo, mas ela continua caindo chamando como processo externo? Como você faz isso? Chama pelo windows mesmo ou linux? Diretão, na unha como um comando do sistema?

[]'s


É um executável que chamamos via ProcessBuilder mesmo, nada demais.


Blz. Mas esse EXE veio junto com a instalação dele ou vcs precisaram adquirir separadamente?
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

juliocbq wrote:
AUser wrote:Opa Julio,

O problema de tudo é que eu não acredito (e seria realmente impossível) que iria atingir uma boa qualidade no estilo da Abbbyy com o desenvolvimento em duas semanas. E é um produto que estou desenvolvendo, não um trabalho menor. Portanto, eu tô em busca de uma solução "quase" perfeita.

Não consegui baixar a SDK da Pegasus for Java, também. Alguém sabe como diabos encontro?

Maurício, eu até pagaria se a SDK for boa. A idéia é: desenvolver um wrapper mesmo, a aplicação ia bater em um service com um metodo ocr(bytes, recognizeBarcodes), e ia retornar a String da coisa. Qual o motivo pra uma OCR dessas dar segfault tao normalmente?

[]'s!


esse artigo postado aí tem 10% de margem de erro, não tá bom? Os sdks do mercado estão nessa margem também.


Vou testa-la depois e posto opiniões. Obrigado.
Mauricio Linhares
Moderador
[Avatar]

Membro desde: 09/01/2005 23:28:22
Mensagens: 3717
Localização: João Pessoa, Paraíba - Brasil
Offline

AUser wrote:Blz. Mas esse EXE veio junto com a instalação dele ou vcs precisaram adquirir separadamente?


Eu escrevi o programa em C mesmo, eles só mandam o SDK pra você.

Meu blog sobre desenvolvimento | My Last.fm | @mauriciojr

Screencast de Introdução a linguagem Objective-C
[WWW]
AUser
GUJ Master
[Avatar]

Membro desde: 23/10/2008 06:39:07
Mensagens: 1092
Offline

Mauricio Linhares wrote:
AUser wrote:Blz. Mas esse EXE veio junto com a instalação dele ou vcs precisaram adquirir separadamente?


Eu escrevi o programa em C mesmo, eles só mandam o SDK pra você.


Beleza, muito obrigado.

Tô tentando até agora falar com o departamento de vendas dele. Vms ver se respondem.

[]'s!
 
Índice dos Fóruns » Assuntos gerais (Off-topic)
Ir para:   
Powered by JForum 2.1.8 © JForum Team