# 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 :
- [`ReadLicensePlate()`](/csharp/ocr/how-to/read-license-plate/)
- [`ReadPassport()`](/csharp/ocr/how-to/read-passport/)
- [`ReadPhoto()`](/csharp/ocr/how-to/read-photo/)
- [`ReadDocumentAdvanced()`](/csharp/ocr/how-to/read-table-in-document/)
- [`ReadScreenShot()`](/csharp/ocr/how-to/read-screenshot/)
## 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()` :
```csharp
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);
```
`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](/csharp/ocr/troubleshooting/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.
[[i:(La sortie PDF consultable n'est pas disponible pour le moment avec les lectures AdvancedScan. Si vous dépendez de cette fonctionnalité, restez sur le chemin de lecture standard d'IronOCR.)]]
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 :
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 readinginput.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);
C#
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.
Veuillez noter: La sortie PDF consultable n'est pas disponible pour le moment avec les lectures AdvancedScan. Si vous dépendez de cette fonctionnalité, restez sur le chemin de lecture standard d'IronOCR.
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 et créer des manuels bien structurés et visuellement attrayants.