Configuração rápida de OCR em C# para desempenho ideal.

This article was translated from English: Does it need improvement?
Translated
View the article in English

A configuração rápida do IronOCR permite velocidades de processamento de OCR até 17% mais rápidas sem perda de precisão, usando o modo de idioma EnglishFast e desativando recursos desnecessários como a leitura de códigos de barras. Essa otimização é ideal para processamento de alto volume, onde o tempo é crucial.

O IronOCR funciona eficazmente logo após ser instalado. Quando a velocidade é priorizada em detrimento da precisão absoluta, o IronOCR oferece uma configuração rápida. Essa configuração proporciona ganhos significativos no desempenho de digitalização com impacto mínimo na precisão, tornando-a muito mais rápida do que a configuração OCR padrão.

Este artigo demonstra como configurar o modo rápido e compara os resultados de testes de desempenho entre as configurações rápida e padrão do IronOCR. Quer você esteja processando documentos digitalizados , PDFs ou imagens , essas otimizações podem melhorar significativamente o desempenho do seu aplicativo.


Início rápido: Configurar OCR rápido em C#

O principal componente para configuração rápida é a propriedade Language. Definir a propriedade Language para OcrLanguage.EnglishFast prioriza a velocidade em detrimento de um pequeno potencial custo de precisão. Isso permite que o IronOCR leia em massa muito mais rapidamente, o que é especialmente útil em aplicações de missão crítica onde o tempo é essencial.

Além de definir o idioma rápido, você pode ganhar mais velocidade desativando configurações desnecessárias, como ReadBarCodes. Deixe o IronOCR detectar automaticamente a segmentação da página para manter a configuração simples. Para opções de configuração mais avançadas, consulte nosso guia de configuração detalhado do Tesseract .

O exemplo de código abaixo processa a seguinte imagem de entrada:

Qual formato de entrada devo usar?

Texto de abertura de Moby Dick exibido em branco sobre fundo escuro, mostrando a introdução de Ismael.

Que código preciso para uma configuração rápida?

  1. Instale IronOCR com o Gerenciador de Pacotes NuGet

    PM > Install-Package IronOcr
  2. Copie e execute este trecho de código.

    /* :path=/static-assets/ocr/content-code-examples/how-to/ocr-fast-configuration.cs */
    using IronOcr;
    using System;
    
    var ocrTesseract = new IronTesseract();
    
    // Fast Dictionary
    ocrTesseract.Language = OcrLanguage.EnglishFast;
    
    // Turn off unneeded options
    ocrTesseract.Configuration.ReadBarCodes = false;
    
    // Assume text is laid out neatly in an orthogonal document
    ocrTesseract.Configuration.PageSegmentationModo = TesseractPageSegmentationModo.Auto;
    
    using var ocrInput = new OcrInput();
    ocrInput.LoadImage("image.png");
    
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
  3. Implante para testar em seu ambiente de produção.

    Comece a usar IronOCR em seu projeto hoje com uma avaliação gratuita

    arrow pointer

Que resultados posso esperar?

O editor do Visual Studio exibe a passagem inicial do romance Moby Dick.

Este é o texto extraído do comando acima. O mecanismo de OCR captura com precisão o texto literário, mantendo a formatação e a estrutura originais. A configuração rápida proporciona excelentes resultados para textos nítidos e de alto contraste, como neste exemplo.


Como a configuração rápida se compara à configuração padrão?

Para demonstrar o impacto no mundo real, comparamos o desempenho da configuração padrão com a configuração rápida. Utilizamos um conjunto de 10 imagens de amostra, cada uma contendo vários parágrafos, para comparar o desempenho e visualizar as vantagens e desvantagens do uso de configuração rápida.

Para a configuração padrão, inicializamos IronTesseract com suas configurações padrão, sem aplicar quaisquer propriedades orientadas para velocidade. Essa abordagem de avaliação comparativa é semelhante ao nosso guia de acompanhamento de desempenho , que mostra como monitorar operações de OCR em tempo real.

Aqui estão os exemplos de entradas que usamos para executar o teste. Essas imagens representam cenários típicos de documentos que você pode encontrar ao processar documentos com várias páginas ou operações em lote.

Como faço para executar o teste de desempenho?

:path=/static-assets/ocr/content-code-examples/how-to/ocr-fast-configuration-benchmark.cs
using IronOcr;
using System;
using System.Diagnostics;
using System.IO;

// --- Tesseract Engine Setup ---
var ocrTesseract = new IronTesseract();
ocrTesseract.Language = OcrLanguage.EnglishFast;
ocrTesseract.Configuration.ReadBarCodes = false;
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.Auto;

// --- 1. Define folder and get files ---
string folderPath = @"images"; // IMPORTANT: Set this to your image directory
string filePattern = "*.png";    // Change to "*.jpg", "*.bmp", etc. as needed
string outputFilePath = "ocr_results.txt"; // The new results file

// Get all image files in the directory
var imageFiles = Directory.GetFiles(folderPath, filePattern);

Console.WriteLine($"Found {imageFiles.Length} total images to process...");
Console.WriteLine($"Results will be written to: {outputFilePath}");

// --- 2. Start timer and process images, writing to file ---
// Open the output file *before* the loop for efficiency
using (StreamWriter writer = new StreamWriter(outputFilePath))
{
    var stopwatch = Stopwatch.StartNew();

    foreach (var file in imageFiles)
    {
        string fileName = Path.GetFileName(file);

        using var ocrInput = new OcrInput();
        ocrInput.LoadImage(file);

        var ocrResult = ocrTesseract.Read(ocrInput);

        // Check if any text was actually found
        if (!string.IsNullOrEmpty(ocrResult.Text))
        {
            // Write to Console
            Console.WriteLine($"--- Text found in: {fileName} ---");
            Console.WriteLine(ocrResult.Text.Trim());
            Console.WriteLine("------------------------------------------");

            // Write to File
            writer.WriteLine($"--- Text found in: {fileName} ---");
            writer.WriteLine(ocrResult.Text.Trim());
            writer.WriteLine("------------------------------------------");
            writer.WriteLine(); // Add a blank line for readability
        }
        else
        {
            // Write to Console
            Console.WriteLine($"No text found in: {fileName}");

            // Write to File
            writer.WriteLine($"No text found in: {fileName}");
            writer.WriteLine();
        }
    }

    stopwatch.Stop();

    // --- 3. Print and write final benchmark summary ---
    string lineSeparator = "\n========================================";
    string title = "Batch OCR Processing Complete";
    string summary = $"Fast configuration took {stopwatch.Elapsed.TotalSeconds:F2} seconds";

    // Write summary to Console
    Console.WriteLine(lineSeparator);
    Console.WriteLine(title);
    Console.WriteLine("========================================");
    Console.WriteLine(summary);

    // Write summary to File
    writer.WriteLine(lineSeparator);
    writer.WriteLine(title);
    writer.WriteLine("========================================");
    writer.WriteLine(summary);

    if (imageFiles.Length > 0)
    {
        string avgTime = $"Average time per image: {(stopwatch.Elapsed.TotalSeconds / (double)imageFiles.Length):F3} seconds";
        Console.WriteLine(avgTime);
        writer.WriteLine(avgTime);
    }
}

Console.WriteLine($"\nSuccessfully saved results to {outputFilePath}");
$vbLabelText   $csharpLabel

Este código de referência demonstra vários conceitos importantes:

  1. Processamento em lote : O código processa várias imagens em uma única operação, semelhante ao nosso exemplo de OCR multithread , que mostra como aproveitar o processamento paralelo para obter melhorias de velocidade ainda maiores.

  2. Medição de Desempenho: Usar a classe Stopwatch fornece medições de tempo precisas até milissegundos, essenciais para comparar diferentes configurações.

  3. Registro de resultados : A saída tanto no console quanto em arquivo garante que você possa analisar os resultados posteriormente e verificar as diferenças de precisão entre as configurações.

Que ganhos de desempenho posso esperar?

Modo Tempo total Tempo médio / Imagem Ganho de tempo em relação ao padrão Ganho de precisão em relação ao padrão
**Padrão** 10,40 s 1,040 s Linha de base Linha de base
**Rápido** 8,60 s 0,860 s +17,31% (Mais rápido) +0% (Idêntico)

A comparação de desempenho entre as configurações padrão e rápida demonstra uma vantagem significativa para a configuração rápida. Ao estabelecer o modo padrão como linha de base (tempo total de 10,40 segundos), a configuração rápida concluiu o mesmo lote de 10 imagens em apenas 8,60 segundos. Isso representa um ganho de tempo substancial de 17,31%. Fundamentalmente, essa melhoria na velocidade não comprometeu a qualidade; A precisão foi idêntica em ambos os modos, com ambas as configurações produzindo a mesma saída de texto.

Para verificar os resultados, você pode baixar tanto a saída de texto rápida quanto a saída de texto padrão .

Quando devo usar a configuração rápida?

A configuração rápida é particularmente benéfica para:

  • Processamento de documentos em grande volume, onde milhares de páginas precisam ser processadas rapidamente.
  • Aplicações em tempo real onde o tempo de resposta é crítico
  • Aplicações web que precisam manter experiências de usuário responsivas
  • Sistemas de processamento em lote que operam em cronogramas rigorosos

Para cenários mais complexos que envolvam vários idiomas , digitalizações de baixa qualidade ou tipos de documentos especializados, como placas de veículos ou passaportes , talvez seja melhor usar a configuração padrão para garantir a máxima precisão.

O IronOCR simplifica a troca entre configurações: basta alterar algumas propriedades e seu aplicativo pode se adaptar a diferentes requisitos de desempenho sem grandes alterações no código.

Perguntas frequentes

Quão mais rápida é a configuração de OCR rápido em comparação com as configurações padrão?

A configuração rápida do IronOCR pode alcançar velocidades de processamento até 17% mais rápidas em comparação com as configurações padrão de OCR, com impacto mínimo na precisão. Esse ganho de desempenho é obtido por meio do modo de idioma EnglishFast e pela desativação de recursos desnecessários.

Qual é a principal configuração que permite o processamento rápido de OCR?

O principal componente para uma configuração rápida no IronOCR é definir a propriedade Language para OcrLanguage.EnglishFast. Isso prioriza a velocidade em detrimento de uma pequena perda potencial de precisão, tornando-o ideal para processamento em massa e aplicações com restrições de tempo.

Como posso otimizar ainda mais a velocidade do OCR além de usar o modo Inglês Rápido?

Você pode obter melhorias adicionais de velocidade desativando recursos desnecessários no IronOCR, como definir ReadBarCodes como falso se não precisar da detecção de código de barras. Além disso, permita que o IronOCR detecte automaticamente a segmentação de páginas usando TesseractPageSegmentationMode.Auto.

Quando devo usar a configuração de OCR rápido em vez das configurações padrão?

A configuração rápida de OCR no IronOCR é ideal para cenários de processamento de alto volume, onde o tempo é crucial e uma pequena perda de precisão é aceitável. É particularmente útil para aplicações de missão crítica que precisam processar documentos digitalizados, PDFs ou imagens rapidamente.

A configuração rápida funciona com todos os tipos de documento?

Sim, a configuração rápida do IronOCR funciona eficazmente com vários tipos de documentos, incluindo documentos digitalizados, PDFs e imagens. Os benefícios da otimização aplicam-se independentemente do formato de entrada que estiver a processar.

Existe alguma perda de precisão ao usar o modo OCR rápido?

A configuração rápida do IronOCR proporciona ganhos significativos no desempenho de digitalização com impacto mínimo na precisão. Embora possa haver uma pequena perda potencial de precisão ao usar o modo EnglishFast, essa compensação geralmente vale a pena para aplicações que priorizam a velocidade.

Curtis Chau
Redator Técnico

Curtis Chau é bacharel em Ciência da Computação (Universidade Carleton) e se especializa em desenvolvimento front-end, com experiência em Node.js, TypeScript, JavaScript e React. Apaixonado por criar interfaces de usuário intuitivas e esteticamente agradáveis, Curtis gosta de trabalhar com frameworks modernos e criar manuais ...

Leia mais
Pronto para começar?
Nuget Downloads 5,525,971 | Versão: 2026.3 acaba de ser lançado
Still Scrolling Icon

Ainda está rolando a tela?

Quer provas rápidas? PM > Install-Package IronOcr
executar um exemplo Veja sua imagem se transformar em texto pesquisável.