Comment utiliser les valeurs de confiance Tesseract OCR en C# | IronOCR

Comment obtenir la confiance des lecteurs de C&#35 ; OCR avec IronOCR

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

La confiance de lecture d'IronOCR indique le degré de certitude du système OCR quant à l'exactitude du texte reconnu, avec des valeurs de 0 à 100, où des scores plus élevés signifient une plus grande fiabilité - accédez-y via la propriété Confidence sur n'importe quel objet OcrResult.

La confiance en lecture dans la ROC (reconnaissance optique de caractères) fait référence au niveau de certitude ou de fiabilité que le système ROC attribue à l'exactitude du texte qu'il a reconnu dans une image ou un document. Il s'agit d'une mesure du degré de confiance du système OCR quant à l'exactitude du texte reconnu. Cette mesure devient particulièrement importante lors du traitement de documents numérisés, photos, ou de toute autre image dont la qualité du texte peut varier.

Un score de confiance élevé indique un haut degré de certitude que la reconnaissance est précise, tandis qu'un faible score de confiance suggère que la reconnaissance peut être moins fiable. La compréhension de ces niveaux de confiance aide les développeurs à mettre en œuvre une logique de validation et un traitement des erreurs appropriés dans leurs applications.

<TODO : Ajouter une image ici -->

<Description : Diagramme ou capture d'écran illustrant le concept de code -->

Démarrage rapide : Obtenez une confiance en lecture OCR en une seule ligne

Utilisez la méthode Read d'IronTesseract avec un chemin de fichier image, puis accédez à la propriété Confidence sur le OcrResult renvoyé pour voir à quel point IronOCR est certain de sa reconnaissance de texte. Il s'agit d'un moyen simple et fiable de commencer à évaluer la précision des résultats de l'OCR.

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.

    double confidence = new IronOcr.IronTesseract().Read("input.png").Confidence;
  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


Comment obtenir la confiance des lecteurs en C#;?

Après avoir effectué la reconnaissance optique de caractères (OCR) sur l'image d'entrée, le niveau de confiance du texte est stocké dans la propriété Confiance . Utilisez l'instruction " using " pour libérer automatiquement les objets après utilisation. Ajoutez des documents tels que des images et des PDF avec les classes OcrImageInput et OcrPdfInput , respectivement. La méthode Read renvoie un objet OcrResult qui permet d'accéder à la propriété Confidence.

:path=/static-assets/ocr/content-code-examples/how-to/tesseract-result-confidence-get-confidence.cs
using IronOcr;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Add image
using var imageInput = new OcrImageInput("sample.tiff");
// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Get confidence level
double confidence = ocrResult.Confidence;
Imports IronOcr

' Instantiate IronTesseract
Private ocrTesseract As New IronTesseract()

' Add image
Private imageInput = New OcrImageInput("sample.tiff")
' Perform OCR
Private ocrResult As OcrResult = ocrTesseract.Read(imageInput)

' Get confidence level
Private confidence As Double = ocrResult.Confidence
$vbLabelText   $csharpLabel

La valeur de confiance renvoyée est comprise entre 0 et 100, où :

  • 90-100 : Excellente confiance - Le texte est très fiable
  • 80-89 : Bon niveau de confiance - Le texte est généralement précis avec des incertitudes mineures
  • 70-79 : Confiance modérée - Le texte peut contenir quelques erreurs
  • En dessous de 70 : Confiance faible - Le texte doit être revu ou retraité

Comment obtenir la confiance à différents niveaux?

Vous pouvez non seulement récupérer le niveau de confiance de l'ensemble du document, mais aussi accéder aux niveaux de confiance de chaque page, paragraphe, ligne, mot et caractère. De plus, vous pouvez obtenir la confiance d'un bloc, qui représente un ensemble d'un ou plusieurs paragraphes étroitement liés.

<TODO : Ajouter une image ici -->

<Description : Diagramme ou capture d'écran illustrant le concept de code -->

:path=/static-assets/ocr/content-code-examples/how-to/tesseract-result-confidence-confidence-level.cs
// Get page confidence level
double pageConfidence = ocrResult.Pages[0].Confidence;

// Get paragraph confidence level
double paragraphConfidence = ocrResult.Paragraphs[0].Confidence;

// Get line confidence level
double lineConfidence = ocrResult.Lines[0].Confidence;

// Get word confidence level
double wordConfidence = ocrResult.Words[0].Confidence;

// Get character confidence level
double characterConfidence = ocrResult.Characters[0].Confidence;

// Get block confidence level
double blockConfidence = ocrResult.Blocks[0].Confidence;
' Get page confidence level
Dim pageConfidence As Double = ocrResult.Pages(0).Confidence

' Get paragraph confidence level
Dim paragraphConfidence As Double = ocrResult.Paragraphs(0).Confidence

' Get line confidence level
Dim lineConfidence As Double = ocrResult.Lines(0).Confidence

' Get word confidence level
Dim wordConfidence As Double = ocrResult.Words(0).Confidence

' Get character confidence level
Dim characterConfidence As Double = ocrResult.Characters(0).Confidence

' Get block confidence level
Dim blockConfidence As Double = ocrResult.Blocks(0).Confidence
$vbLabelText   $csharpLabel

Exemple pratique : Filtrage par confiance

Lorsque vous traitez des documents de qualité variable, tels que des numérisations de faible qualité, vous pouvez utiliser des indices de confiance pour filtrer les résultats :

using IronOcr;
using System.Linq;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Configure for better accuracy
ocrTesseract.Configuration.ReadBarCodes = false;
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Add image
using var imageInput = new OcrImageInput("invoice.png");
// Apply filters to improve quality
imageInput.Deskew();
imageInput.DeNoise();

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Filter words with confidence above 85%
var highConfidenceWords = ocrResult.Words
    .Where(word => word.Confidence >= 85)
    .Select(word => word.Text)
    .ToList();

// Process only high-confidence text
string reliableText = string.Join(" ", highConfidenceWords);
Console.WriteLine($"High confidence text: {reliableText}");

// Flag low-confidence words for manual review
var lowConfidenceWords = ocrResult.Words
    .Where(word => word.Confidence < 85)
    .Select(word => new { word.Text, word.Confidence })
    .ToList();

foreach (var word in lowConfidenceWords)
{
    Console.WriteLine($"Review needed: '{word.Text}' (Confidence: {word.Confidence:F2}%)");
}
using IronOcr;
using System.Linq;

// Instantiate IronTesseract
IronTesseract ocrTesseract = new IronTesseract();

// Configure for better accuracy
ocrTesseract.Configuration.ReadBarCodes = false;
ocrTesseract.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Add image
using var imageInput = new OcrImageInput("invoice.png");
// Apply filters to improve quality
imageInput.Deskew();
imageInput.DeNoise();

// Perform OCR
OcrResult ocrResult = ocrTesseract.Read(imageInput);

// Filter words with confidence above 85%
var highConfidenceWords = ocrResult.Words
    .Where(word => word.Confidence >= 85)
    .Select(word => word.Text)
    .ToList();

// Process only high-confidence text
string reliableText = string.Join(" ", highConfidenceWords);
Console.WriteLine($"High confidence text: {reliableText}");

// Flag low-confidence words for manual review
var lowConfidenceWords = ocrResult.Words
    .Where(word => word.Confidence < 85)
    .Select(word => new { word.Text, word.Confidence })
    .ToList();

foreach (var word in lowConfidenceWords)
{
    Console.WriteLine($"Review needed: '{word.Text}' (Confidence: {word.Confidence:F2}%)");
}
IRON VB CONVERTER ERROR developers@ironsoftware.com
$vbLabelText   $csharpLabel

Qu'est-ce que le choix des caractères dans l'OCR ? Outre le niveau de confiance, il existe une autre propriété intéressante appelée **Choix** . Les choix contiennent une liste d'alternatives de choix de mots et leur pertinence statistique. Ces informations permettent à l'utilisateur d'accéder à d'autres personnages possibles. Cette fonction est particulièrement utile lorsque l'on travaille avec [plusieurs langues](https://ironsoftware.com/csharp/ocr/how-to/ocr-multiple-languages/) ou des polices spécialisées. ```csharp :path=/static-assets/ocr/content-code-examples/how-to/tesseract-result-confidence-get-choices.cs ```

En quoi les choix de caractères alternatifs sont-ils utiles ? Les choix de caractères alternatifs offrent plusieurs avantages : 1. **Résolution des ambiguïtés** : Lorsque des caractères tels que "O" et "0", ou "l" et "1" sont confondus 2. **Variations de police** : Différentes interprétations pour les polices stylisées ou décoratives 3. **Qualité** : Multiples possibilités en cas de texte dégradé 4. **Contexte linguistique** : Interprétations alternatives basées sur des règles linguistiques
Vue de débogage des choix de caractères OCR montrant les scores de confiance et les résultats de la reconnaissance de texte pour le
### Travailler avec des choix de caractères Voici un exemple complet qui montre comment utiliser les choix de caractères pour améliorer la précision : ```csharp using IronOcr; using System; using System.Linq; using static IronOcr.OcrResult; // Configure IronTesseract for detailed results IronTesseract ocrTesseract = new IronTesseract(); // Process image with potential ambiguities using var imageInput = new OcrImageInput("ambiguous_text.png"); OcrResult ocrResult = ocrTesseract.Read(imageInput); // Analyze character choices for each word foreach (var word in ocrResult.Words) { Console.WriteLine($"\nWord: '{word.Text}' (Confidence: {word.Confidence:F2}%)"); // Check each character in the word foreach (var character in word.Characters) { if (character.Choices != null && character.Choices.Length > 1) { Console.WriteLine($" Character '{character.Text}' has alternatives:"); // Display all choices sorted by confidence foreach (var choice in character.Choices.OrderByDescending(c => c.Confidence)) { Console.WriteLine($" - '{choice.Text}': {choice.Confidence:F2}%"); } } } } ``` ## Stratégies de confiance avancées Lorsque l'on travaille avec des documents spécialisés tels que les passeports, les plaques d'immatriculation ou les chèques MICR, les indices de confiance deviennent cruciaux pour la validation : ```csharp using IronOcr; public class DocumentValidator { private readonly IronTesseract ocr = new IronTesseract(); public bool ValidatePassportNumber(string imagePath, double minConfidence = 95.0) { using var input = new OcrImageInput(imagePath); // Configure for passport reading ocr.Configuration.ReadBarCodes = true; ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.SingleLine; // Apply preprocessing input.Deskew(); input.Scale(200); // Upscale for better accuracy var result = ocr.Read(input); // Find passport number pattern var passportLine = result.Lines .Where(line => line.Text.Contains("P<") || IsPassportNumberFormat(line.Text)) .FirstOrDefault(); if (passportLine != null) { Console.WriteLine($"Passport line found: {passportLine.Text}"); Console.WriteLine($"Confidence: {passportLine.Confidence:F2}%"); // Only accept if confidence meets threshold return passportLine.Confidence >= minConfidence; } return false; } private bool IsPassportNumberFormat(string text) { // Simple passport number validation return System.Text.RegularExpressions.Regex.IsMatch(text, @"^[A-Z]\d{7,9}$"); } } ``` ## Optimiser pour une meilleure confiance Pour obtenir des scores de confiance plus élevés, envisagez d'utiliser des [filtres d'image](https://ironsoftware.com/csharp/ocr/how-to/image-quality-correction/) et des techniques de prétraitement : ```csharp using IronOcr; // Create an optimized OCR workflow IronTesseract ocr = new IronTesseract(); using var input = new OcrImageInput("low_quality_scan.jpg"); // Apply multiple filters to improve confidence input.Deskew(); // Correct rotation input.DeNoise(); // Remove noise input.Sharpen(); // Enhance edges input.Dilate(); // Thicken text input.Scale(150); // Upscale for clarity // Configure for accuracy over speed ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5; ocr.Configuration.EngineMode = TesseractEngineMode.TesseractOnly; var result = ocr.Read(input); Console.WriteLine($"Document confidence: {result.Confidence:F2}%"); // Generate confidence report var confidenceReport = result.Pages .Select((page, index) => new { PageNumber = index + 1, Confidence = page.Confidence, WordCount = page.Words.Length, LowConfidenceWords = page.Words.Count(w => w.Confidence < 80) }); foreach (var page in confidenceReport) { Console.WriteLine($"Page {page.PageNumber}: {page.Confidence:F2}% confidence"); Console.WriteLine($" Total words: {page.WordCount}"); Console.WriteLine($" Low confidence words: {page.LowConfidenceWords}"); } ``` ## Résumé Il est essentiel de comprendre et d'utiliser les scores de confiance de l'OCR pour créer des applications de traitement de documents robustes. En exploitant les propriétés de confiance et les choix de caractères d'IronOcr, les développeurs peuvent mettre en œuvre des mécanismes intelligents de validation, de traitement des erreurs et d'assurance qualité dans leurs flux de travail d'OCR. Que vous traitiez des [captures d'écran](https://ironsoftware.com/csharp/ocr/how-to/read-screenshot/), des [tableaux](https://ironsoftware.com/csharp/ocr/how-to/read-table-in-document/) ou des documents spécialisés, les indices de confiance fournissent les mesures nécessaires pour garantir la précision de l'extraction de texte.

Questions Fréquemment Posées

Qu'est-ce que la confiance dans l'OCR et pourquoi est-elle importante ?

La confiance dans l'OCR est une mesure de 0 à 100 indiquant le degré de certitude du système d'OCR quant à la précision de la reconnaissance de texte. IronOCR fournit cette mesure par le biais de la propriété Confidence sur tout objet OcrResult, aidant les développeurs à évaluer la fiabilité du texte reconnu, en particulier lors du traitement de documents numérisés, de photos ou d'images dont la qualité du texte varie.

Comment vérifier rapidement la confiance de l'OCR en C# ?

Avec IronOCR, vous pouvez obtenir la confiance de l'OCR en une seule ligne de code : double confidence = new IronOcr.IronTesseract().Read("input.png").Confidence ; Cela renvoie un score de confiance entre 0 et 100 indiquant le degré de certitude de l'OCR quant à sa reconnaissance de texte.

Que signifient les différents intervalles de confiance ?

Les scores de confiance de l'IronOCR indiquent : 90-100 (Excellent) signifie que le texte est très fiable ; 80-89 (Bon) signifie que le texte est généralement précis avec des incertitudes mineures ; 70-79 (Modéré) signifie que le texte peut contenir quelques erreurs ; moins de 70 (Faible) signifie que le texte doit être revu ou retraité.

Comment puis-je accéder aux niveaux de confiance pour différents éléments de texte ?

IronOcr vous permet de récupérer les niveaux de confiance à plusieurs granularités - pages, paragraphes, lignes, mots et caractères individuels. Après avoir effectué l'OCR, vous pouvez accéder à la propriété Confidence à chaque niveau par le biais de la structure de l'objet OcrResult.

Puis-je obtenir des suggestions de mots alternatifs avec des scores de confiance ?

Oui, IronOCR fournit une propriété Choices qui propose des choix de mots alternatifs avec leurs scores de confiance. Cette fonctionnalité est utile lorsque le moteur OCR identifie plusieurs interprétations possibles d'un même texte, ce qui vous permet de mettre en œuvre une logique de validation intelligente.

Comment puis-je mettre en œuvre la validation basée sur la confiance dans mon application ?

Après avoir utilisé la méthode Read d'IronOCR, vérifiez la propriété Confidence du résultat de l'OcrR. Mettez en œuvre une logique conditionnelle basée sur des seuils de confiance - par exemple, acceptez automatiquement les résultats supérieurs à 90, signalez les résultats entre 70 et 90 pour examen, et retraitez ou vérifiez manuellement les résultats inférieurs à 70.

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
Revu par
Jeff Fritz
Jeffrey T. Fritz
Responsable principal du programme - Équipe de la communauté .NET
Jeff est également responsable principal du programme pour les équipes .NET et Visual Studio. Il est le producteur exécutif de la série de conférences virtuelles .NET Conf et anime 'Fritz and Friends', une diffusion en direct pour développeurs qui est diffusée deux fois par semaine où il parle de technologie et écrit du code avec les téléspectateurs. Jeff écrit des ateliers, des présentations et prévoit du contenu pour les plus grands événements de développement Microsoft, y compris Microsoft Build, Microsoft Ignite, .NET Conf et le sommet Microsoft MVP
Prêt à commencer?
Nuget Téléchargements 5,246,844 | Version : 2025.12 vient de sortir