Ir para o conteúdo do rodapé
FERRAMENTAS DE OCR
Como implementar OCR em C# usando bibliotecas de código aberto

OCR C# de código aberto (lista para desenvolvedores)

O OCR (Reconhecimento Óptico de Caracteres) é uma tecnologia revolucionária que transforma completamente a forma como os documentos digitalizados podem ser utilizados no mundo digital atual. Ela permite que os computadores reconheçam e extraiam texto de uma variedade de fontes, incluindo documentos PDF digitalizados, permitindo-nos editar e interagir efetivamente com documentos PDF. Um dos programas de reconhecimento óptico de caracteres (OCR) é o Adobe Acrobat, que permite extrair rapidamente texto de documentos digitalizados e convertê-los em PDFs editáveis e PDFs de imagem pesquisáveis.

Os desenvolvedores podem acessar ferramentas robustas e APIs que utilizam algoritmos de ponta e abordagens de aprendizado de máquina ao utilizar bibliotecas de OCR como Tesseract e IronOCR. Essas bibliotecas permitem o reconhecimento preciso de texto, facilitando o gerenciamento e a recuperação de informações úteis tanto de documentos digitalizados anteriormente quanto de novos documentos. O OCR possibilita a análise contínua de conteúdo e ajuda empresas e indivíduos a maximizar sua produtividade aproveitando ao máximo seus documentos digitalizados e imagens de página. OCR é uma ferramenta vital na tecnologia atual, seja para digitalizar registros em papel, extrair dados de faturas ou simplesmente melhorar a acessibilidade de documentos.

Tesseract

O mecanismo de OCR de código aberto mais renomado é chamado de Tesseract, e foi inicialmente criado pela Hewlett-Packard. Desde 2006, o Google vem apoiando este projeto de software livre, que é lançado sob a licença Apache.

Um dos sistemas de código aberto mais precisos e gratuitos disponíveis é o mecanismo OCR Tesseract. O Tesseract agora suporta 116 idiomas com sua versão estável mais recente, 4.1.1, que é baseada em LSTM.

O Tesseract requer suporte de uma interface gráfica separada quando executado a partir de uma interface de linha de comando porque não possui sua própria interface embutida. Ele pode aprender novas informações usando suas redes neurais e possui um pipeline avançado de pré-processamento de imagem. A técnica mais eficaz para adicionar capacidades de OCR à sua aplicação .NET é o Tesseract .NET SDK, que é uma das melhores soluções para fornecer capacidades de reconhecimento de texto. Mesmo que o Tesseract seja, sem dúvida, a melhor biblioteca de OCR atualmente no mercado.

GOCR

O programa OCR (Reconhecimento Óptico de Caracteres) conhecido como GOCR foi criado sob a Licença Pública GNU. Ele transforma arquivos de texto de volta em imagens digitalizadas de documentos. Após iniciar o programa e gerir a equipe de desenvolvimento no SF, Joerg Schulenburg continua a lidar com o pacote em uma base de tempo (muito) baixa atualmente.

Uma vez que o GOCR pode ser usado com várias interfaces, é relativamente simples portá-lo para outros sistemas operacionais, aplicações de rede e arquiteturas. Ele pode ler uma ampla gama de tipos de arquivos de imagem, e até 2010, sua qualidade melhorou constantemente.

De acordo com o GOCR, ele pode lidar com fontes sans-serif de coluna única com altura de 20–60 pixels. Ele relata dificuldades com textos escritos em alfabetos diferentes do latim, fontes serifadas, letras sobrepostas, vários tipos de tipografia, fotos ruidosas e ângulos de inclinação excessivos. O GOCR também é capaz de traduzir códigos de barras.

CuneiForm

CuneiForm, uma tecnologia gratuita e de código aberto, agora também é conhecida como 'Cognitive OpenOCR'. Tem saída integrada e um banco de dados. Abrange 23 idiomas distintos e também realiza tarefas como escaneamento de formato de texto, análise de layout de documentos e identificação.

A Cognitive Technologies desenvolveu as licenças para o OpenOCR, que são freeware e BSD. Embora suporte o uso multiplataforma, os usuários de Linux não recebem uma interface gráfica.

Para simplificar o trabalho de reconhecimento de caracteres em qualquer aplicativo Dot NET Framework 2.0 ou posterior, a biblioteca wrapper Puma Dot NET é usada. Ele executa uma verificação de dicionário enquanto processa os dados para melhorar a qualidade do reconhecimento.

CuneiForm é uma tecnologia projetada para converter automaticamente ou semiautomaticamente cópias eletrônicas de documentos em papel e arquivos de imagem em um formato editável sem afetar a estrutura e as fontes originais do documento. O sistema consiste em duas partes para processar documentos eletrônicos em lotes e um documento por vez. Além disso, o sistema suporta uma combinação de russo e inglês. Apenas o ramo criado por Andrei Borovsky em 2009 suporta o reconhecimento de outros idiomas híbridos. Ensinar o sistema a reconhecer outros idiomas é desafiador, uma vez que cada idioma está associado a um arquivo dat, cuja estrutura e processo de criação não são divulgados pelos desenvolvedores.

Kraken

O Kraken foi desenvolvido para resolver os problemas com o Ocropus sem impactar seus outros recursos. Ele utiliza sua biblioteca de rede neural CLSTM e aproveita a valiosa experiência obtida em projetos anteriores com dados novos. Ele requer o uso de certas bibliotecas externas para funcionar efetivamente em diferentes plataformas. Com a ajuda das informações armazenadas, ele pode fazer previsões mais precisas sobre possíveis problemas de validação de dados. Além disso, sua metodologia de trabalho facilita a implantação e treinamento fácil de novos modelos.

A9T9

A9T9 é um software OCR gratuito que pode ser usado para extrair texto de arquivos de imagem e converter imagens e documentos PDF. Ele fornece uma interface gráfica de usuário (GUI) para o motor OCR Tesseract.

O programa é fácil de configurar. Mais importante, é completamente gratuito e de código aberto. Não tem spyware e adware.

Você pode abrir um arquivo PDF ou uma imagem, e o conteúdo do arquivo de origem será exibido na janela à esquerda. Se o seu documento tiver várias páginas ou for um documento multipáginas, você pode usar as setas na parte inferior da página para navegar entre as páginas.

Para iniciar o processo de OCR, basta clicar no botão verde de OCR, e a saída aparecerá no segundo painel à direita. Você tem a opção de salvar o texto resultante como arquivos de texto e documentos do Word.

IronOCR

Ao contrário da biblioteca Tesseract padrão, o IronOCR expande o Tesseract e fornece uma biblioteca C# OCR nativa com maior precisão, desempenho melhorado e estabilidade aumentada. O IronOCR pode ser usado em programas .NET e sites para extrair texto de PDFs e imagens. Ele suporta uma ampla gama de idiomas estrangeiros e pode gerar texto simples ou saída de dados estruturados. É capaz de escanear códigos de barras e imagens com texto incorporado. A biblioteca pode ser utilizada em aplicações desenvolvidas em .NET para console, web, MVC e desktop. A equipe de desenvolvimento oferece assistência direta com o processo de licenciamento para implantações comerciais. IronOCR é compatível com as versões mais recentes do Visual Studio.

Vantagem do IronOCR

  • Usando o mais recente motor Tesseract 5, o IronOCR é capaz de ler documentos de papel, códigos de barras e códigos QR de vários arquivos de imagem ou PDF. Este pacote simplifica a incorporação de OCR em aplicativos de desktop, console e web.
  • O IronOCR nos permite realizar OCR, o que nos permite converter PDFs digitalizados em PDFs pesquisáveis.
  • Além de listas de palavras e idiomas personalizados, o IronOCR suporta 125 idiomas diferentes mundialmente.
  • O IronOCR pode escanear mais de 20 tipos diferentes de códigos de barras e códigos QR.
  • O IronOCR pode fornecer saída em texto simples, assim como dados de código de barras. Os desenvolvedores podem recuperar todo o conteúdo para entrada direta em um sistema usando um paradigma alternativo de objeto de dados estruturados. Isso inclui cabeçalhos estruturados, parágrafos, linhas, palavras e caracteres em aplicações web.

Abaixo está o código de exemplo que usaremos para reconhecer o conteúdo de texto da imagem fornecida e convertê-lo em texto.

using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
using IronOcr;

// Instantiate an IronTesseract object to utilize its OCR capabilities
var Ocr = new IronTesseract();

// Set the language to English for better accuracy
Ocr.Language = OcrLanguage.EnglishBest;

// Optionally specify the Tesseract version to ensure compatibility
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;

// Create an OcrInput object to add images for OCR processing
using (var Input = new OcrInput())
{
    // Add the image to be processed; specify the image's path
    Input.AddImage(@"Demo.png");

    // Perform the OCR and store the result
    var Result = Ocr.Read(Input);

    // Output the extracted text to the console
    Console.WriteLine(Result.Text);

    // Pause the console to keep it open
    Console.ReadKey();
}
$vbLabelText   $csharpLabel

No trecho de código acima, estamos desenvolvendo um recurso usando IronTesseract. Primeiro, instanciamos um novo objeto OcrInput para permitir a adição de um ou mais arquivos de imagem. Você pode adicionar quantas imagens quiser especificando o caminho de cada imagem usando o método AddImage. Após adicionar suas imagens, o método Read é chamado no objeto IronTesseract para realizar OCR no input fornecido. O texto resultante é então extraído e exibido via console.

A saída abaixo mostra o texto extraído da imagem fornecida anteriormente, demonstrando que o texto foi extraído com sucesso da imagem.

OCR C# Open Source (Lista para desenvolvedores) Figura 1 - Resultado

Veja esta publicação para uma instrução completa do IronOCR.

Conclusão

Ferramentas de código aberto de OCR nos permitem construir nossos próprios programas usando seu código fonte. No entanto, algumas ferramentas não têm uma biblioteca oficial ou equipe dedicada para fornecer suporte em caso de problemas de codificação. A documentação do Tesseract também carece de código de exemplo ou tutoriais para cenários de uso comum, tornando difícil para iniciantes entenderem o código e as bibliotecas.

O IronOCR suporta vários projetos .NET como .NET Framework Standard 2, .NET Framework 4.5, e .NET Core 2, 3, e 5. Também funciona com tecnologias mais recentes como Mono, Xamarin e Azure. Aproveitando as tecnologias IronOCR, podemos melhorar os resultados do Tesseract e corrigir documentos ou imagens digitalizados incorretamente. O complexo sistema de dicionário do Tesseract é gerenciado através do NuGet Package. Utilizamos a Biblioteca Iron OCR para desenvolver uma ferramenta de OCR.

Com o IronOCR, podemos usar o programa sem nenhuma configuração adicional, e ele suporta arquivos PDF, TIFF de múltiplos quadros, e todos os formatos de imagem comuns. Também oferece capacidades de reconhecimento de códigos de barras, permitindo-nos extrair dados de códigos de barras e ler valores de códigos de barras em imagens. O IronOCR fornece uma edição de desenvolvimento econômica com um teste gratuito, e a licença vitalícia está incluída no pacote IronOCR sem custo adicional. O pacote IronOCR fornece cobertura para múltiplas plataformas com um único pagamento. Para mais informações sobre os preços do IronOCR, consulte esta página.

Kannaopat Udonpant
Engenheiro de Software
Antes de se tornar Engenheiro de Software, Kannapat concluiu um doutorado em Recursos Ambientais pela Universidade de Hokkaido, no Japão. Durante o doutorado, Kannapat também integrou o Laboratório de Robótica Veicular, que faz parte do Departamento de Engenharia de Bioprodução. Em 2022, ele utilizou suas habilidades ...
Leia mais

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me