Configuration rapide de l'OCR en C# ; pour des performances optimales

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

La configuration rapide d'IronOcr permet d'accélérer la vitesse de traitement de l'OCR de 17 % sans perte de précision en utilisant le mode linguistique EnglishFast et en désactivant les fonctionnalités inutiles comme la lecture des codes-barres. Cette optimisation est idéale pour le traitement de gros volumes où le temps est compté.

IronOcr fonctionne efficacement dès sa sortie de l'emballage. Lorsque la vitesse est prioritaire par rapport à la précision absolue, IronOCR offre une configuration rapide. Cette configuration permet d'améliorer considérablement les performances de numérisation avec un impact minimal sur la précision, ce qui la rend beaucoup plus rapide que la configuration standard OCR.

Cet article montre comment mettre en place une configuration rapide et compare les résultats des benchmarks entre les configurations rapide et standard d'IronOcr. Que vous traitiez des documents numérisés, des PDF ou des images, ces optimisations peuvent améliorer considérablement les performances de votre application.

Commencez avec IronOCR


Démarrage rapide : configuration de Fast OCR en C#

Le composant principal pour une configuration rapide est la propriété Language. La définition de la propriété Language sur OcrLanguage.EnglishFast donne la priorité à la rapidité au détriment d'un coût potentiel minime en termes de précision. IronOcr peut ainsi lire en vrac beaucoup plus rapidement, ce qui est particulièrement utile dans les applications critiques où le temps est essentiel.

Outre le choix de la langue rapide, vous pouvez gagner en rapidité en désactivant les configurations inutiles, telles que ReadBarCodes. Laissez IronOcr détecter automatiquement la segmentation des pages pour simplifier la configuration. Pour des options de configuration plus avancées, consultez notre Guide de configuration détaillé de Tesseract.

L'exemple de code ci-dessous traite l'image d'entrée suivante :

Quel format d'entrée dois-je utiliser?

Le texte d'ouverture de Moby Dick affiché en blanc sur fond sombre montrant l'introduction d'Ismaël

Quel est le code dont j'ai besoin pour une configuration rapide?

Nuget IconCommencez dès maintenant à créer des PDF avec NuGet :

  1. Installez IronOCR avec le gestionnaire de packages NuGet

    PM > Install-Package IronOcr

  2. Copiez et exécutez cet extrait de code.

    /* :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.PageSegmentationMode = TesseractPageSegmentationMode.Auto;
    
    using var ocrInput = new OcrInput();
    ocrInput.LoadImage("image.png");
    
    var ocrResult = ocrTesseract.Read(ocrInput);
    Console.WriteLine(ocrResult.Text);
  3. Déployez pour tester sur votre environnement de production.

    Commencez à utiliser IronOCR dans votre projet dès aujourd'hui grâce à un essai gratuit.
    arrow pointer

Quel résultat puis-je attendre?

L'éditeur Visual Studio affiche le passage d'ouverture du roman Moby Dick

Voici le texte extrait ci-dessus. Le moteur OCR capture avec précision le texte littéraire tout en conservant le formatage et la structure d'origine. La configuration rapide donne d'excellents résultats pour un texte clair et contrasté comme dans cet exemple.


Comment la configuration rapide se compare-t-elle à la configuration standard ?

<TODO : Ajouter une image ici -->

Pour démontrer l'impact sur le monde réel, nous comparons les performances de la configuration standard à celles de la configuration rapide. Nous utilisons un ensemble de 10 images types, chacune contenant plusieurs paragraphes, pour comparer les performances et visualiser les compromis liés à l'utilisation d'une configuration rapide.

Pour la configuration standard, nous initialisons IronTesseract avec ses paramètres par défaut, sans appliquer de propriétés orientées vers la vitesse. Cette approche de référence est similaire à notre guide de suivi des performances, qui montre comment surveiller les opérations d'OCR en temps réel.

Voici les exemples inputs que nous utilisons pour exécuter le test. Ces images représentent des scénarios de documents typiques que vous pourriez rencontrer lors du traitement de documents multipages ou d'opérations par lots.

Comment exécuter l'analyse comparative?

: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

Ce code de référence démontre plusieurs concepts importants :

  1. Traitement par lots : le code traite plusieurs images en une seule opération, comme dans notre exemple d'OCR multithread, qui montre comment tirer parti du traitement parallèle pour améliorer encore la vitesse.

  2. Mesure des performances : L'utilisation de la classe Stopwatch permet d'obtenir des mesures de temps précises à la milliseconde près, ce qui est essentiel pour comparer différentes configurations.

  3. Enregistrement des résultats : la sortie console et la sortie fichier vous permettent d'analyser les résultats ultérieurement et de vérifier les différences de précision entre les configurations.

Quels sont les gains de performance auxquels je peux m'attendre?

Mode Temps total Temps moyen / Image Gain de temps par rapport à la norme Gain de précision par rapport à la norme
Standard 10,40 s 1,040 s Ligne de base Ligne de base
Rapide 8,60 s 0,860 s +17,31 % (Plus rapide) +0% (Identique)

La comparaison entre les configurations standard et rapide montre un avantage significatif en termes de performances pour la configuration rapide. En établissant le mode standard comme référence (10,40 secondes de temps total), la configuration rapide a terminé le même lot de 10 images en seulement 8,60 secondes. Cela représente un gain de temps substantiel de 17,31 %. Il est essentiel que cette amélioration de la vitesse ne compromette pas la qualité ; la précision était identique entre les deux modes, les deux configurations produisant le même texte.

Pour vérifier les résultats, vous pouvez télécharger à la fois le sortie texte rapide et le sortie texte standard.

Quand utiliser Fast Configuration?

La configuration rapide est particulièrement utile pour :

  • Traitement de documents à grand volume où des milliers de pages doivent être traitées rapidement
  • Applications en temps réel où le temps de réponse est critique
  • Applications web qui doivent maintenir une expérience utilisateur réactive
  • Systèmes de traitement par lots fonctionnant selon un calendrier serré

Pour les scénarios plus complexes impliquant plusieurs langues, des numérisations de mauvaise qualité, ou des types de documents spécialisés tels que plaques d'immatriculation ou passeports, vous pouvez utiliser la configuration standard pour garantir une précision maximale.

IronOcr simplifie le passage d'une configuration à l'autre - il suffit de modifier quelques propriétés et votre application peut s'adapter à différentes exigences de performance sans modification majeure du code.

Questions Fréquemment Posées

Quelle est la rapidité de la configuration OCR rapide par rapport aux paramètres standard ?

La configuration rapide d'IronOcr permet d'atteindre une vitesse de traitement supérieure de 17 % par rapport aux paramètres d'OCR standard, avec un impact minimal sur la précision. Ce gain de performance est obtenu grâce au mode linguistique EnglishFast et à la désactivation des fonctions inutiles.

Quel est le principal paramètre qui permet un traitement OCR rapide ?

La principale composante de la configuration rapide dans IronOcr consiste à définir la propriété Language sur OcrLanguage.EnglishFast. Cela permet de privilégier la vitesse par rapport à un coût potentiel minime en termes de précision, ce qui en fait la solution idéale pour le traitement en masse et les applications soumises à des contraintes de temps.

Comment puis-je optimiser la vitesse de l'OCR au-delà du mode EnglishFast ?

Vous pouvez obtenir des améliorations de vitesse supplémentaires en désactivant les fonctionnalités inutiles dans IronOcr, par exemple en définissant ReadBarCodes sur false si vous n'avez pas besoin de la détection des codes-barres. Laissez également IronOCR détecter automatiquement la segmentation des pages en utilisant TesseractPageSegmentationMode.Auto.

Quand dois-je utiliser la configuration rapide de l'OCR plutôt que les paramètres standard ?

La configuration de l'OCR rapide dans IronOcr est idéale pour les scénarios de traitement de gros volumes où le temps est essentiel et où un léger compromis en termes de précision est acceptable. Elle est particulièrement utile pour les applications critiques qui doivent traiter rapidement des documents numérisés, des PDF ou des images.

La configuration rapide fonctionne-t-elle avec tous les types de documents ?

Oui, la configuration rapide d'IronOCR fonctionne efficacement avec différents types de documents, notamment les documents numérisés, les PDF et les images. Les avantages de l'optimisation s'appliquent quel que soit le format d'entrée que vous traitez.

Y a-t-il une perte de précision lors de l'utilisation du mode OCR rapide ?

La configuration rapide d'IronOCR permet des gains de performance de numérisation significatifs avec un impact minimal sur la précision. Bien qu'il puisse y avoir un léger coût potentiel en termes de précision lors de l'utilisation du mode EnglishFast, le compromis en vaut souvent la peine pour les applications qui donnent la priorité à la vitesse.

Curtis Chau
Rédacteur technique

Curtis Chau détient un baccalauréat en informatique (Université de Carleton) et se spécialise dans le développement front-end avec expertise en Node.js, TypeScript, JavaScript et React. Passionné par la création d'interfaces utilisateur intuitives et esthétiquement plaisantes, Curtis aime travailler avec des frameworks modernes ...

Lire la suite
Prêt à commencer?
Nuget Téléchargements 5,299,091 | Version : 2025.12 vient de sortir