Uma comparação entre o OCR do Google e o IronOCR
OCR significa Reconhecimento Óptico de Caracteres. Ele fornece a facilidade de converter um arquivo de imagem em texto codificado por máquina. Os documentos digitalizados são sempre salvos como um arquivo de imagem pelo computador. Os dados nesses arquivos de imagem não podem ser pesquisados, editados ou salvos em formato de texto usando um editor de texto normal ou mesmo usando um aplicativo de processamento de texto. O processamento OCR ajuda a converter essas imagens em texto legível por máquina para processamento adicional por seus usuários.
Nesta era moderna, os documentos digitalizados compartilhados pela internet estão em formato digital, principalmente na forma de PDFs ou imagens. Há uma série de recursos online disponíveis que convertem a imagem em texto. No entanto, a maioria das empresas requer essa funcionalidade em suas aplicações de software. Tendo isso em mente, existem muitas bibliotecas que fornecem tecnologia de processamento OCR para ser incorporada em aplicações de software.
Neste artigo, vamos discutir duas das bibliotecas OCR mais populares para C#. Estes são:
- IronOCR
- Google Cloud Vision OCR (API Vision)
IronOCR - Biblioteca C
IronOCR for .NET é uma biblioteca C# para digitalizar, pesquisar e ler imagens e PDFs. Ela recebe um arquivo de imagem ou PDF como entrada e usa a mais recente versão customizada do motor .NET OCR do Tesseract 5 para produzir texto, dados estruturados ou documentos PDF pesquisáveis. O Tesseract está disponível em mais de 125 idiomas, juntamente com suporte multiplataforma no .NET Core, e .NET Standard, de 2.0 até 7.
IronOCR é uma API amigável que permite aos desenvolvedores C# converter imagens em texto automaticamente, usando a classe IronTesseract e uma chave de API. Ela prioriza velocidade, precisão e facilidade de uso. Ela também auxilia a API de Visão Computacional a encontrar texto com um conjunto de modelos treinados.
Outro recurso poderoso do IronOCR é que ele pode escanear códigos de barras e códigos QR de todos os arquivos de imagem e ler seus textos. Outras características importantes do IronOCR são listadas abaixo.
Características
- Idiomas Internacionais: Suporte para mais de 125 idiomas e idiomas personalizados com desempenho de alta qualidade e rápido
- Leitura de Texto e Código de Barras: Ler Texto e Números de Múltiplos Idiomas de Uma Só Vez
- Documentos Especializados: Ler especificamente texto de Recibos, Cheques, Faturas
- Ler de Muitos Formatos: Imagens (PNG, JPG, GIF, TIFF, BMP),
System.Drawing Objects, Streams, documentos PDF (DPI otimizado de destino) - Filtros: Assistente de Filtros, Correção de Imagem, Corrigir Orientação da Imagem, Corrigir Cores da Imagem
- Saída de Dados Simples: Strings de Texto .NET, Dados de Código de Barras e QR, Imagens
Agora, vamos dar uma olhada na API Google Cloud Vision.
Google Cloud Vision OCR
API Google Cloud Vision é uma biblioteca cliente OCR do Google Cloud que suporta a linguagem C#. Ela permite que desenvolvedores C# integrem facilmente recursos de detecção de Visão Computacional em aplicações de software. Ela realiza OCR e detecta texto de arquivos de imagem, rótulos de imagens, detecção de rostos e detecção de marcos.
A API Google Cloud Vision utiliza APIs REST e RPC para fornecer um poderoso modelo ML (machine learning) pré-treinado. Com a API Cloud Vision, você pode classificar rapidamente imagens em milhões de categorias já definidas. Ela também pode detectar objetos e ler texto de documentos impressos e texto manuscrito.
Características
- Detecção de Texto em Imagem: OCR em uma imagem para reconhecimento de texto e convertê-la em código de linguagem de máquina
- Detecção de Texto em Documentos: OCR um arquivo (PDF/TIFF), texto denso
- Detecção de Marcos: Retorna coordenadas de objetos detectados
- Detecção de logotipo: Retorna uma descrição textual
- Detecção de rótulo: Retorna rótulos generalizados para imagem
O restante do artigo segue da seguinte forma:
- Criando um projeto do Visual Studio
- Instalando IronOCR
- Instalando Google OCR
- Imagem para Texto
- Código de barras e QR Code para Texto
- PDF para Texto
- Licenciamento
- Conclusão
1. Criando um projeto do Visual Studio
Neste tutorial, vamos usar o Visual Studio 2022, a versão mais recente. Então, presumo que você já o tenha baixado e instalado para C#. Se não, você pode baixá-lo do site do Visual Studio.
Agora, precisamos criar um projeto de Console para começar com ambas as bibliotecas. Siga as etapas para criar um projeto:
- Abra seu Visual Studio 2022.
-
Clique em Criar um novo projeto.

-
Selecione Aplicativo de Console C# das opções fornecidas.

- Configure seu novo projeto com um nome e a localização. Por exemplo, "OCRProject".
-
Clique em Avançar.

-
Nas informações adicionais, selecione .NET 6.0 Framework, pois é a versão mais estável.

- Agora, clique em Criar, e o projeto será criado no local especificado.
Em seguida, vamos instalar as bibliotecas em nosso projeto para comparação.
2. Instalando IronOCR
Existem várias maneiras de instalar a biblioteca IronOCR. Vamos analisá-los um por um.
2.1. Usando o Gerenciador de Pacotes NuGet do Visual Studio
NuGet é o gerenciador de pacotes para download e instalação de dependências no seu projeto. Seus pacotes contêm o código compilado (DLL) e o arquivo manifesto. Acesse-o usando o seguinte método:
- Clique na aba Ferramentas
- Expanda a opção Gerenciador de Pacotes NuGet
-
Clique em Gerenciar Pacotes NuGet para Solução

- ou, clique com o botão direito no Solution Explorer
-
Clique em Gerenciar Pacotes NuGet

Agora, a janela do Gerenciador de Pacotes NuGet será aberta. Procure por IronOCR e clique em Instalar.

2.2. Baixar do Site do NuGet
Pode ser baixado diretamente do site oficial do NuGet. Siga as etapas fornecidas:
- Clique no link para o site do NuGet.
- Clique na opção Download package ao lado direito da página.
- Abra o pacote baixado, e ele começará a instalar.
- Finalmente, recarregue a solução, e está feito.
2.3. Baixar usando a Página da Web IronOCR
Simplesmente visite o site da Iron Software e navegue até a página IronOCR for .NET. Role até a parte inferior e clique em Download DLL ou Download Windows Installer.

Um arquivo Zip será baixado. Extraia-o e adicione-o ao seu arquivo de projeto ou execute o Instalador do Windows. Siga os passos abaixo para adicioná-lo ao seu projeto.
- Clique com o botão direito nas dependências do projeto no Visual Studio a partir do Solution Explorer.
- Em seguida, selecione a opção Adicionar Referência ao Projeto.
- Navegue até o local do arquivo DLL baixado.
- Por fim, clique em OK para adicionar a referência do projeto.
2.4. Usando o Prompt de Comando no Visual Studio
- Navegue até a aba Ferramentas no Visual Studio.
- Expanda a opção Gerenciador de Pacotes NuGet.
- Selecione Console do Gerenciador de Pacotes e digite o seguinte comando:
Install-Package IronOcr
Isso baixará e instalará automaticamente o IronOCR no seu projeto.
Agora, estamos prontos para usar o IronOCR em nosso projeto.
2.5. Adicionando os Namespaces Necessários do IronOCR
Há apenas um namespace necessário, e ele deve ser adicionado no topo do arquivo de código-fonte onde precisamos acessar suas funções.
using IronOcr;
using IronOcr;
Imports IronOcr
Agora, vamos instalar o Google Vision OCR.
3. Instalando o Google OCR
Para poder usar a API Vision no seu projeto C#, você deve ter os seguintes pré-requisitos atendidos:
- Crie uma Conta do Google
- Crie um novo projeto no Console do Google Cloud
- Ative o Faturamento
- Ative a API Vision
- Crie uma Conta de Serviço e defina as credenciais
- Baixe as credenciais da chave da conta de serviço no formato de arquivo JSON
Você pode ver detalhadamente a configuração e os requisitos para usar o Google Cloud Vision na documentação oficial aqui.
Agora, para instalar a biblioteca cliente do Google Cloud para realizar o processamento de OCR no Visual Studio, precisamos usar o Gerenciador de Pacotes NuGet.
3.1. Usando o Gerenciador de Pacotes NuGet
Acesse-o usando o seguinte método:
- Clique na aba Ferramentas
- Expanda a opção Gerenciador de Pacotes NuGet
-
Clique em Gerenciar Pacotes NuGet para Solução

- ou, clique com o botão direito no Solution Explorer
-
Clique em Gerenciar Pacotes NuGet

Agora, a janela do Gerenciador de Pacotes NuGet será aberta. Procure por Google Cloud Vision OCR e clique em Instalar.

3.2. Adicionando o Namespace do Google Vision API
Inclua o seguinte namespace para usar a API Vision do Google OCR:
using Google.Cloud.Vision.V1;
using Google.Cloud.Vision.V1;
Imports Google.Cloud.Vision.V1
Além disso, defina a variável de ambiente com as credenciais da chave baixadas no formato de arquivo JSON.
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
Agora, tudo está configurado e pronto para uso.
4. Imagem para Texto
Ler dados de imagens é uma tarefa tediosa. Resolução e qualidade da imagem desempenham um papel importante ao extrair conteúdo. Ambas as bibliotecas fornecem funcionalidade de Reconhecimento Óptico de Caracteres (OCR) para extrair texto de imagens.
4.1. Usando IronOCR
IronOCR facilita muito para os desenvolvedores lerem o conteúdo de um arquivo de imagem com sua poderosa classe IronTesseract. Aqui usaremos uma imagem PNG para ler texto de um arquivo de imagem e o código é o seguinte:
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/employmentapp.png");
// Process the image
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/employmentapp.png");
// Process the image
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
' Add the image to be processed
input.AddImage("test-files/employmentapp.png")
' Process the image
Dim result = ocr.Read(input)
' Output the extracted text
Console.WriteLine(result.Text)
End Using
IMAGEM DE ENTRADA

SAÍDA

A saída do IronOCR corresponde à imagem original fornecida a ele. O código é limpo e fácil de entender sem quaisquer tecnicalidades.
4.2. Usando o Google OCR
O Google Cloud Vision OCR também converte a imagem em texto com diferentes fontes. Primeiramente, precisamos criar um cliente usando o arquivo de credenciais. Em seguida, usando este objeto cliente, podemos chamar o método DetectText para obter uma resposta em forma de anotação. O código é apresentado da seguinte forma:
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Google.Cloud.Vision.V1.Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json");
var client = ImageAnnotatorClient.Create();
var image = Google.Cloud.Vision.V1.Image.FromFile("test-files/employmentapp.png");
var response = client.DetectText(image);
foreach (var annotation in response)
{
if (annotation.Description != null)
{
Console.WriteLine(annotation.Description);
}
}
Environment.SetEnvironmentVariable("GOOGLE_APPLICATION_CREDENTIALS", "key.json")
Dim client = ImageAnnotatorClient.Create()
Dim image = Google.Cloud.Vision.V1.Image.FromFile("test-files/employmentapp.png")
Dim response = client.DetectText(image)
For Each annotation In response
If annotation.Description IsNot Nothing Then
Console.WriteLine(annotation.Description)
End If
Next annotation
A mesma imagem é dada como entrada para comparar a saída de ambas as bibliotecas.

A partir da saída acima, você pode ver claramente que IronOCR preserva os formatos de saída de imagem. Embora o Google OCR tenha fornecido texto de saída preciso, a formatação da tabela não é preservada. IronOCR preservou a formatação da tabela exatamente como na imagem fornecida.
5. Código de Barras e QR Code para Texto
5.1. Usando IronOCR
IronOCR fornece um recurso único e útil ao ler imagens, ou seja, ele pode ler códigos de barras e QR Codes. Ele pode detectar códigos de barras e exibir seu valor com facilidade. Primeiro, defina a configuração ReadBarCodes como verdadeira, e então itere através de cada um dos códigos de barras nos resultados do OCR. O código para ler códigos de barras é dado abaixo:
var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/Barcode.png");
// Process the image
var result = ocr.Read(input);
// Iterate and output barcode values
foreach (var barcode in result.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
var ocr = new IronTesseract();
ocr.Configuration.ReadBarCodes = true;
using (var input = new OcrInput())
{
// Add the image to be processed
input.AddImage("test-files/Barcode.png");
// Process the image
var result = ocr.Read(input);
// Iterate and output barcode values
foreach (var barcode in result.Barcodes)
{
Console.WriteLine(barcode.Value);
}
}
Dim ocr = New IronTesseract()
ocr.Configuration.ReadBarCodes = True
Using input = New OcrInput()
' Add the image to be processed
input.AddImage("test-files/Barcode.png")
' Process the image
Dim result = ocr.Read(input)
' Iterate and output barcode values
For Each barcode In result.Barcodes
Console.WriteLine(barcode.Value)
Next barcode
End Using
IMAGEM DE ENTRADA

SAÍDA

Todos os três códigos de barras na entrada são lidos com sucesso, e seu texto oculto é exibido.
5.2. Usando Google OCR
O Google Vision API ainda não permite essa funcionalidade. Ler códigos de barras pode ser útil em aplicativos de software. No entanto, o Google OCR permite que você obtenha texto de um documento escaneado como um arquivo de imagem. O código para detecção de rótulos é o seguinte:
var client = ImageAnnotatorClient.Create();
var image = Google.Cloud.Vision.V1.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
var client = ImageAnnotatorClient.Create();
var image = Google.Cloud.Vision.V1.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg");
var labels = client.DetectLabels(image);
Console.WriteLine("Labels (and confidence score):");
Console.WriteLine(new String('=', 30));
foreach (var label in labels)
{
Console.WriteLine($"{label.Description} ({(int)(label.Score * 100)}%)");
}
Imports System
Dim client = ImageAnnotatorClient.Create()
Dim image = Google.Cloud.Vision.V1.Image.FromUri("gs://cloud-samples-data/vision/using_curl/shanghai.jpeg")
Dim labels = client.DetectLabels(image)
Console.WriteLine("Labels (and confidence score):")
Console.WriteLine(New String("="c, 30))
For Each label In labels
Console.WriteLine($"{label.Description} ({CInt(Math.Truncate(label.Score * 100))}%)")
Next label
SAÍDA

6. PDF para Texto
6.1. Usando IronOCR
Ler arquivos PDF é tão fácil quanto ler arquivos de imagem no IronOCR. Você só precisa mudar o método AddImage para AddPdf no código de leitura de imagem. O código é o seguinte:
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the PDF to be processed
input.AddPdf("test-files/example.PDF");
// Process the PDF
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
var ocr = new IronTesseract();
using (var input = new OcrInput())
{
// Add the PDF to be processed
input.AddPdf("test-files/example.PDF");
// Process the PDF
var result = ocr.Read(input);
// Output the extracted text
Console.WriteLine(result.Text);
}
Dim ocr = New IronTesseract()
Using input = New OcrInput()
' Add the PDF to be processed
input.AddPdf("test-files/example.PDF")
' Process the PDF
Dim result = ocr.Read(input)
' Output the extracted text
Console.WriteLine(result.Text)
End Using
SAÍDA
O texto extraído está na mesma formatação que o arquivo PDF.

6.2. Usando Google OCR
O Google OCR também fornece a capacidade de extrair texto de documentos PDF/TIFF. No entanto, ele só detecta texto se o arquivo estiver no Google Cloud Storage. Para isso, você precisa criar um bucket de Armazenamento do Google. O código para C# não é direto e é bastante longo para implementar aqui. Não há exemplos disponíveis para C# para detectar textos em arquivos. Você pode consultar o código Java como referência para tentar.
7. Licenciamento
IronOCR é gratuito para fins de desenvolvimento, mas precisa ser licenciado para uso comercial. Ele também oferece um teste gratuito para testar todo o seu potencial para suas necessidades. O pacote Lite começa a partir de um certo valor com um teste gratuito. IronOCR oferece 1 ano de suporte ao produto e atualizações gratuitamente e, em seguida, um ano após, custa $399. Todas as licenças são perpétuas, significando apenas uma compra única e sem cobranças ocultas. Você também pode escolher cobertura de redistribuição livre de royalties para produtos SaaS e OEM com apenas uma compra única de $1999. Para mais informações sobre pacotes de licenças e planos de preços, por favor, visite aqui.

Google Cloud Vision os planos de preços são baseados no número de operações realizadas pela aplicação em uma imagem. Para arquivos como PDF que possuem várias páginas, cada página é tratada como uma imagem. Além disso, cada recurso aplicado a uma imagem é uma unidade faturável separada. Por exemplo, se você aplicar detecção de texto e detecção de rótulo à mesma imagem, cada recurso será cobrado separadamente. Os planos de preços são fornecidos abaixo, e para mais informações, por favor, visite este link.

8. Conclusão
IronOCR fornece aos desenvolvedores C# a API Tesseract mais avançada que conhecemos, em qualquer plataforma. IronOCR pode ser implantado em Windows, Linux, Mac, Azure, AWS, Lambda, e suporta projetos .NET Framework, assim como .NET Standard e .NET Core. Também podemos ler códigos de barras em digitalizações OCR e até mesmo exportar nosso OCR como HTML e PDFs pesquisáveis.
Google Cloud Vision API é uma API avançada baseada em IA. Ele oferece uma variedade de recursos de análise de imagem que podem ser muito úteis na construção de aplicativos de ML. Ele permite que os desenvolvedores se comuniquem diretamente com o Google Cloud usando uma chave API, o que significa que não há necessidade de armazenar arquivos localmente.
As licenças IronOCR são baseadas em usuários, o que significa que você deve sempre comprar uma licença com base no número de desenvolvedores que usarão o produto. As licenças do Google Cloud Vision são baseadas no número de imagens para extrair informações e analisar os dados. As licenças são mensais, e os preços tornam-se muito altos para um grande número de imagens em comparação com as licenças da IronOCR. Além disso, a licença do IronOCR é uma compra única e pode ser usada por toda a vida, e suporta distribuição OEM e SaaS.
Na conclusão geral, ambas as bibliotecas possuem capacidades de aprendizado de máquina. O IronOCR tem uma ligeira vantagem sobre o Google OCR, pois é especificamente construído para o framework C# .NET, que é rápido e economiza tempo. Ele fornece todos os recursos com muito poucas linhas de código, aliviando os desenvolvedores de escrever códigos longos. É construído na API Tesseract 5 mais popular, o que torna fácil integrar e analisar imagens e outros formatos de arquivo com resultados precisos. Por outro lado, o Google Vision OCR é baseado em IA e mais focado em Java, Python e REST e só pode ser executado quando conectado ao Google Cloud. Isso pode consumir tempo, pois a resposta vem do lado do servidor. Você pode escolher a biblioteca de acordo com suas necessidades específicas.
Agora, você pode obter 5 produtos Iron pelo preço de 2. As seguintes ferramentas estão incluídas no Iron Suite:
- IronBarcode
- IronXL
- IronOCR
- IronPDF
- IronWebscraper
Visite este link para explorar mais.
Você pode baixar IronOCR aqui.
Perguntas frequentes
Como posso converter imagens em texto usando C#?
Você pode usar o IronOCR, que utiliza o mecanismo Tesseract 5 para converter imagens em texto legível por máquina. Ele suporta mais de 125 idiomas e é compatível com diversas plataformas, tornando-se uma excelente opção para extração de texto em aplicações C#.
Quais são os benefícios de usar o IronOCR para leitura de códigos de barras e códigos QR?
O IronOCR não só converte imagens e PDFs em texto, como também se destaca na leitura de códigos de barras e QR codes. Ele proporciona extração de dados rápida e precisa, tornando-se uma ferramenta versátil para aplicações que necessitam de recursos abrangentes de OCR.
Como o IronOCR lida com diferentes idiomas?
O IronOCR é compatível com mais de 125 idiomas e oferece suporte a idiomas personalizados. Essa ampla compatibilidade linguística permite que ele seja altamente adaptável a aplicações internacionais, garantindo o reconhecimento de texto em diversos idiomas.
Quais são os requisitos de instalação do IronOCR em um projeto C#?
Para instalar o IronOCR em um projeto C#, você pode usar o gerenciador de pacotes NuGet no Visual Studio. Basta pesquisar por IronOCR no gerenciador de pacotes NuGet e instalá-lo para integrar facilmente as funcionalidades de OCR ao seu aplicativo.
Como o modelo de licenciamento do IronOCR se compara aos serviços de OCR baseados em nuvem?
O IronOCR oferece um modelo de compra única com licenças perpétuas, proporcionando valor a longo prazo sem custos recorrentes. Em contrapartida, serviços de OCR baseados em nuvem, como o Google Cloud Vision, geralmente utilizam um modelo de preços por uso, que pode se tornar caro com alta demanda.
Quais plataformas são suportadas pelo IronOCR?
O IronOCR pode ser implementado em diversas plataformas, incluindo Windows, Linux, Mac, Azure, AWS e Lambda. Ele oferece suporte a projetos .NET Framework, .NET Standard e .NET Core, proporcionando versatilidade para diferentes ambientes de desenvolvimento.
O IronOCR funciona offline?
Sim, o IronOCR pode funcionar offline, o que representa uma vantagem significativa em relação às soluções baseadas na nuvem. Essa funcionalidade garante que o processamento de OCR não dependa de uma conexão com a internet, oferecendo maior controle e segurança.
Como o IronOCR garante precisão e velocidade no processamento de OCR?
O IronOCR utiliza algoritmos avançados e o mecanismo Tesseract 5 para fornecer processamento OCR rápido e preciso. Seus filtros de correção de imagem aprimoram ainda mais a precisão do reconhecimento de texto, tornando-o uma escolha confiável para tarefas de OCR de alta qualidade.


