Comparaison détaillée entre Windows OCR Engine et Tesseract
Publié avril 3, 2024
Partager:
A l'ère du numérique, la reconnaissance optique des caractères(OCR) est devenue partie intégrante de diverses industries, permettant la conversion d'images et de documents scannés en texte éditable et consultable.
Parmi les nombreux logiciels d'OCR disponibles, tels que Google Cloud Vision(API Vision dans les nuages)le moteur OCR de Windows vs Tesseract, Adobe Acrobat Pro DC, ABBYY Finereader et bien d'autres encoreIronOCR se distinguent comme des concurrents de premier plan, chacun offrant des caractéristiques et des capacités uniques pour faciliter l'analyse des documents.
Cet article vise à fournir une analyse comparative complète de ces trois moteurs d'OCR, en évaluant leur précision, leur performance et leur facilité d'intégration.
1. Introduction aux moteurs OCR
Les moteurs OCR sont des outils logiciels conçus pour reconnaître et extraire du texte brut à partir d'images, de PDF et d'autres documents numérisés. Elles utilisent des algorithmes sophistiqués et des techniques d'apprentissage automatique pour identifier avec précision les caractères et les convertir en un fichier texte lisible par une machine. Windows OCR Engine, Tesseract et IronOCR représentent trois solutions d'OCR largement utilisées, chacune ayant ses points forts et ses applications.
2. Moteur OCR Windows
Les**Moteur OCR Windowsintégré au système d'exploitation Windows, offre une solution pratique et conviviale pour l'extraction de texte à partir d'images d'entrée et de documents numérisés. S'appuyant sur des techniques avancées de traitement de l'image, il peut reconnaître avec précision du texte dans différentes langues et différents styles de polices. Le moteur Windows OCR est accessible via l'API Windows Runtime, ce qui permet une intégration transparente dans les applications Windows avec les capacités d'un outil de ligne de commande.
2.1 Caractéristiques principales du moteur Windows OCR
Prise en charge des langues : Le moteur d'OCR Windows prend en charge de nombreuses langues, ce qui le rend adapté aux documents multilingues.
Traitement de l'image : Il utilise des algorithmes sophistiqués de traitement d'images pour améliorer la précision de la reconnaissance des textes imprimés, même sur des images de faible qualité.
Intégration aux applications Windows : Le moteur d'OCR Windows s'intègre parfaitement aux applications Windows, ce qui permet aux développeurs d'incorporer des fonctions d'OCR dans leurs logiciels.
2.2 Exemple de code
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string [] args)
{
// Provide the path to the image file
string imagePath = "sample.png";
try
{
// Instantiate the program class
Program program = new Program();
// Call the ExtractText method to extract text from the image
string extractedText = await program.ExtractText(imagePath);
// Display the extracted text
Console.WriteLine("Extracted Text:");
Console.WriteLine(extractedText);
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
public async Task<string> ExtractText(string image)
{
// Initialize StringBuilder to store extracted text
StringBuilder text = new StringBuilder();
try
{
// Open the image file stream
using (var fileStream = System.IO.File.OpenRead(image))
{
Console.WriteLine("Extracted Text:");
// Create a BitmapDecoder from the image file stream
var bmpDecoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream());
// Get the software bitmap from the decoder
var softwareBmp = await bmpDecoder.GetSoftwareBitmapAsync();
// Create an OCR engine from user profile languages
var ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages();
// Recognize text from the software bitmap
var ocrResult = await ocrEngine.RecognizeAsync(softwareBmp);
// Append each line of recognized text to the StringBuilder
foreach (var line in ocrResult.Lines)
{
text.AppendLine(line.Text);
}
}
}
catch (Exception ex)
{
throw ex; // Propagate the exception
}
// Return the extracted text
return text.ToString();
}
}
using System;
using System.IO;
using System.Text;
using System.Threading.Tasks;
class Program
{
static async Task Main(string [] args)
{
// Provide the path to the image file
string imagePath = "sample.png";
try
{
// Instantiate the program class
Program program = new Program();
// Call the ExtractText method to extract text from the image
string extractedText = await program.ExtractText(imagePath);
// Display the extracted text
Console.WriteLine("Extracted Text:");
Console.WriteLine(extractedText);
}
catch (Exception ex)
{
Console.WriteLine("An error occurred: " + ex.Message);
}
}
public async Task<string> ExtractText(string image)
{
// Initialize StringBuilder to store extracted text
StringBuilder text = new StringBuilder();
try
{
// Open the image file stream
using (var fileStream = System.IO.File.OpenRead(image))
{
Console.WriteLine("Extracted Text:");
// Create a BitmapDecoder from the image file stream
var bmpDecoder = await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream());
// Get the software bitmap from the decoder
var softwareBmp = await bmpDecoder.GetSoftwareBitmapAsync();
// Create an OCR engine from user profile languages
var ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages();
// Recognize text from the software bitmap
var ocrResult = await ocrEngine.RecognizeAsync(softwareBmp);
// Append each line of recognized text to the StringBuilder
foreach (var line in ocrResult.Lines)
{
text.AppendLine(line.Text);
}
}
}
catch (Exception ex)
{
throw ex; // Propagate the exception
}
// Return the extracted text
return text.ToString();
}
}
Imports System
Imports System.IO
Imports System.Text
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Provide the path to the image file
Dim imagePath As String = "sample.png"
Try
' Instantiate the program class
Dim program As New Program()
' Call the ExtractText method to extract text from the image
Dim extractedText As String = Await program.ExtractText(imagePath)
' Display the extracted text
Console.WriteLine("Extracted Text:")
Console.WriteLine(extractedText)
Catch ex As Exception
Console.WriteLine("An error occurred: " & ex.Message)
End Try
End Function
Public Async Function ExtractText(ByVal image As String) As Task(Of String)
' Initialize StringBuilder to store extracted text
Dim text As New StringBuilder()
Try
' Open the image file stream
Using fileStream = System.IO.File.OpenRead(image)
Console.WriteLine("Extracted Text:")
' Create a BitmapDecoder from the image file stream
Dim bmpDecoder = Await Windows.Graphics.Imaging.BitmapDecoder.CreateAsync(fileStream.AsRandomAccessStream())
' Get the software bitmap from the decoder
Dim softwareBmp = Await bmpDecoder.GetSoftwareBitmapAsync()
' Create an OCR engine from user profile languages
Dim ocrEngine = Windows.Media.Ocr.OcrEngine.TryCreateFromUserProfileLanguages()
' Recognize text from the software bitmap
Dim ocrResult = Await ocrEngine.RecognizeAsync(softwareBmp)
' Append each line of recognized text to the StringBuilder
For Each line In ocrResult.Lines
text.AppendLine(line.Text)
Next line
End Using
Catch ex As Exception
Throw ex ' Propagate the exception
End Try
' Return the extracted text
Return text.ToString()
End Function
End Class
$vbLabelText $csharpLabel
2.2.1 Production
3. Tesseract
Tesseractun moteur d'OCR open-source développé par Google, a gagné en popularité grâce à sa précision et à sa polyvalence. Il prend en charge plus de 100 langues et peut traiter différents formats d'image, notamment TIFF, JPEG et PNG. Tesseract OCR Engine utilise des algorithmes d'apprentissage profond et des réseaux neuronaux pour atteindre des niveaux élevés de précision de reconnaissance de texte, ce qui le rend adapté à un large éventail d'applications.
3.1 Caractéristiques principales de Tesseract
Prise en charge des langues : Le moteur Tesseract prend en charge plus de 100 langues, y compris des écritures complexes telles que l'arabe et le chinois.
Prétraitement des images : Il offre des capacités étendues de prétraitement d'images, y compris le désalignement, la binarisation et la réduction du bruit, afin d'améliorer la précision de la reconnaissance de texte.
Options de personnalisation : Tesseract permet aux utilisateurs d'affiner les paramètres d'OCR et de former des modèles personnalisés pour des cas d'utilisation spécifiques, améliorant ainsi la précision et la performance.
3.2 Exemple de code
using Patagames.Ocr;
using (var api = OcrApi.Create())
{
api.Init(Patagames.Ocr.Enums.Languages.English);
string plainText = api.GetTextFromImage(@"C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png");
Console.WriteLine(plainText);
}
using Patagames.Ocr;
using (var api = OcrApi.Create())
{
api.Init(Patagames.Ocr.Enums.Languages.English);
string plainText = api.GetTextFromImage(@"C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png");
Console.WriteLine(plainText);
}
Imports Patagames.Ocr
Using api = OcrApi.Create()
api.Init(Patagames.Ocr.Enums.Languages.English)
Dim plainText As String = api.GetTextFromImage("C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png")
Console.WriteLine(plainText)
End Using
$vbLabelText $csharpLabel
3.2.1 Production
4. IronOCR
IronOCRun puissant moteur d'OCR développé par Iron Software, se distingue par sa précision exceptionnelle, sa facilité d'utilisation et la prise en charge de nombreuses langues. Il offre des fonctionnalités d'OCR sur site et prend en charge plus de 127 langues, ce qui le rend adapté aux applications internationales. IronOCR s'appuie sur des algorithmes avancés d'apprentissage automatique et sur la technologie de vision dans le cloud pour fournir des résultats précis en matière de reconnaissance de texte, même dans des scénarios difficiles.
4.1 Caractéristiques principales de l'IronOCR
Précision élevée : l'IronOCR offre une précision inégalée dans le secteur de la reconnaissance de texte, garantissant des résultats fiables pour divers types de documents et de langues.
Prise en charge polyvalente des langues : Il prend en charge plus de 127 langues et fournit des packs linguistiques complets pour une reconnaissance de texte multilingue transparente.
Intégration simple : IronOCR offre une intégration directe avec les applications .NET, avec des API intuitives et une documentation complète pour rationaliser le processus de développement avec le prétraitement et le post-traitement des images originales pour en extraire les textes.
4.2 Installer IronOCR
Avant de passer au codage, voyons comment installer IronOCR à l'aide du gestionnaire de paquets NuGet.
Dans Visual Studio, allez dans le menu Outils et sélectionnez NuGet Package Manager.
Une nouvelle liste apparaît, sélectionnez ici le gestionnaire de paquets NuGet pour les solutions.
Une nouvelle fenêtre apparaît, allez dans l'onglet "Parcourir" et cliquez sur "IronOCR" dans la barre de recherche.
Une liste de paquets apparaît Sélectionnez le dernier paquet IronOCR et cliquez sur installer.
4.3 Exemple de code (C&num ;)
using IronOcr;
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
var result = ocr.Read("C:\\Users\\buttw\\source\\repos\\ironqr\\ironqr\\bin\\Debug\\net5.0\\Iron.png");
Console.WriteLine(result.Text);
using IronOcr;
var ocr = new IronTesseract();
ocr.Language = OcrLanguage.English;
var result = ocr.Read("C:\\Users\\buttw\\source\\repos\\ironqr\\ironqr\\bin\\Debug\\net5.0\\Iron.png");
Console.WriteLine(result.Text);
Imports IronOcr
Private ocr = New IronTesseract()
ocr.Language = OcrLanguage.English
Dim result = ocr.Read("C:\Users\buttw\source\repos\ironqr\ironqr\bin\Debug\net5.0\Iron.png")
Console.WriteLine(result.Text)
$vbLabelText $csharpLabel
4.3.1 Production
5. Évaluation comparative
5.1 Précision et performance
Le moteur OCR de Windows et Tesseract offrent une précision décente mais peuvent avoir des difficultés avec des mises en page complexes.
IronOCR : Excelle en précision, offrant des résultats fiables sur divers types de documents et langues, y compris les images bruyantes.
5.2 Facilité d'intégration
Moteur d'OCR Windows : s'intègre parfaitement aux applications Windows mais manque d'options de personnalisation.
Tesseract : nécessite une configuration et des dépendances supplémentaires pour l'intégration, mais offre des options de personnalisation étendues.
IronOCR : permet une intégration simple aux applications .NET, avec des API intuitives et une documentation complète.
5.3 Soutien linguistique
Windows OCR Engine et Tesseract Prend en charge un nombre limité de langues par rapport à Tesseract et IronOCR.
IronOCR : prend en charge plus de 127 langues, ce qui le rend adapté aux applications mondiales.
6. Conclusion
En conclusion, bien que Windows OCR Engine et Tesseract soient des choix populaires pour la reconnaissance de texte,IronOCR s'impose comme le moteur d'OCR le plus précis et le plus polyvalent. Sa précision de pointe, sa prise en charge étendue des langues et sa simplicité d'intégration en font une solution de choix pour les entreprises et les développeurs à la recherche d'une fonctionnalité d'OCR fiable. En tirant parti d'IronOCR, les entreprises peuvent rationaliser les flux de traitement des documents, améliorer la précision de l'extraction des données et dégager des informations précieuses à partir des documents et des images numérisés.
IronOCR offre uneessai gratuit. Pour en savoir plus sur IronOCR et ses caractéristiques, consultez le site suivantici.
Jordi maîtrise parfaitement Python, C# et C++. Lorsqu'il ne met pas à profit ses compétences chez Iron Software, il se consacre à la programmation de jeux. Partageant des responsabilités en matière de tests de produits, de développement de produits et de recherche, Jordi apporte une valeur ajoutée considérable à l'amélioration continue des produits. Cette expérience variée le stimule et l'engage, et il dit que c'est l'un des aspects qu'il préfère dans son travail chez Iron Software. Jordi a grandi à Miami, en Floride, et a étudié l'informatique et les statistiques à l'université de Floride.
< PRÉCÉDENT OCR dans le nuage (comparaison des caractéristiques de l'OCR)
SUIVANT > Azure OCR vs Google OCR (Comparaison des fonctionnalités d'OCR)
Des millions d'ingénieurs dans le monde entier lui font confiance
Réservez une démo en direct gratuite
Réservez une démonstration personnelle de 30 minutes.
Pas de contrat, pas de détails de carte, pas d'engagements.
Voici ce à quoi vous pouvez vous attendre :
Une démonstration en direct de notre produit et de ses principales fonctionnalités
Obtenez des recommandations de fonctionnalités spécifiques au projet
Toutes vos questions trouvent réponse pour vous assurer de disposer de toutes les informations dont vous avez besoin. (Aucune obligation de votre part.)
CHOISIR L'HEURE
VOS INFORMATIONS
Réservez votre gratuit Démonstration en direct
Fiable par plus de 2 millions d'ingénieurs dans le monde entier