Amélioration des résultats OCR insatisfaisants
La qualité de l'OCR dépend fortement de l'entrée. Une configuration, un filtre ou un réglage qui lit proprement un document peut échouer sur un autre, vous laissant avec un texte corrompu ou incomplet. Lorsque la lecture standard déçoit, le paquet IronOcr.Extensions.AdvancedScan comble généralement l'écart de précision.
La différence réside dans le moteur. IronOCR standard fonctionne sur le moteur Tesseract, tandis que IronOcr.Extensions.AdvancedScan est alimenté par PaddleOCR et ajoute des capacités d'apprentissage automatique. Cela le rend bien adapté aux entrées bruyantes comme les captures d'écran, et aux sources structurées comme les passeports et les plaques d'immatriculation.
Le package expose des méthodes de lecture spécialement conçues pour ces cas :
Solution
1. Commencez avec ReadDocumentAdvanced() et EnhanceResolution()
Avant de recourir à toute autre configuration, associez la méthode ReadDocumentAdvanced() avec le filtre de prétraitement EnhanceResolution(). Cette combinaison résout la plupart des problèmes de précision rencontrés par les utilisateurs avec la lecture standard.
Appliquez le filtre sur le OcrInput, puis passez cette même entrée à ReadDocumentAdvanced() :
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
var ocr = new IronTesseract();
using var input = new OcrInput();
input.LoadPdf("document.pdf");
// Upscale and sharpen low-resolution input before reading
input.EnhanceResolution();
var result = ocr.ReadDocumentAdvanced(input);
Console.WriteLine(result.Text);
Imports IronOcr
Dim ocr As New IronTesseract()
Using input As New OcrInput()
input.LoadPdf("document.pdf")
' Upscale and sharpen low-resolution input before reading
input.EnhanceResolution()
Dim result = ocr.ReadDocumentAdvanced(input)
Console.WriteLine(result.Text)
End Using
ReadDocumentAdvanced() exécute le moteur d'apprentissage automatique PaddleOCR pour analyser des documents riches en texte et sensibles à la mise en page, tandis que EnhanceResolution() améliore et affine les entrées basse résolution avant la lecture. La basse résolution est une cause fréquente de mauvais résultats, donc cette étape de pré-traitement est souvent aussi importante que le changement de moteur.
2. Ciblez x64 sur le .NET Framework
Configurez les projets .NET Framework pour qu'ils se compilent en x64. AdvancedScan nécessite une quantité importante de mémoire, et l'exécuter sous une autre architecture peut déclencher des erreurs d'exécution. Consultez le guide Advanced Scan on .NET Framework pour la configuration complète.
Limitations
AdvancedScan offre une grande précision, mais quelques contraintes s'appliquent aujourd'hui :
- Moins de fonctionnalités de résultats : Les objets de résultat AdvancedScan exposent moins de propriétés que l'objet standard
OcrResult. - Types de retour différents : chaque méthode de lecture renvoie un type d'objet de résultat différent, consultez la Référence API pour les détails de celui que vous appelez.
- Pas de PDF consultables : la création de PDF consultables à partir de la sortie AdvancedScan n'est pas encore prise en charge, bien que la fonctionnalité soit en développement.
- Langues limitées : le package prend actuellement en charge l'anglais, le chinois, le japonais, le coréen et les alphabets latins.

