Tesseract vs Microsoft OCR: Porównanie bezpośrednie
Deweloperzy często muszą wybierać między narzędziem Tesseract OCR a microsoftowym silnikiem OCR, gdy chodzi o rozpoznawanie znaków optycznych (OCR) w C#. Pomimo różnych możliwości, wydajności, integracji i łatwości, oba są skutecznymi narzędziami OCR do wyodrębniania tekstu z zdjęć lub zeskanowanych dokumentów. W ramach rozwoju C#, dokładnie przyjrzymy się zaletom, wadom i przydatności różnych narzędzi OCR, takich jak Tesseract vs Microsoft OCR w tym artykule.
Co to jest OCR?
Optical Character Recognition to OCR. Jest to technologia, która umożliwia przekształcanie różnych formatów dokumentów, takich jak zeskanowane dokumenty obrazowe, pliki PDF lub zdjęcia z aparatu cyfrowego, w edytowalne i przeszukiwalne dane. Aby przekształcić formy i wzory obrazu w maszynowo czytelny tekst, różne narzędzia OCR, takie jak Google Cloud Vision lub Google Vision OCR, analizują obrazy. Dzięki tej technice użytkownicy mogą pobierać tekst z fotografii i edytować, wyszukiwać oraz zmieniać zawartość tak samo jak w dokumencie cyfrowym.
Tesseract OCR
Tesseract OCR to open-source'owy silnik optycznego rozpoznawania znaków (OCR), czasami nazywany po prostu Tesseract. Tesseract, który początkowo stworzył Hewlett-Packard Laboratories w latach 80. XX wieku, a obecnie jest utrzymywany przez Google, jest jednym z najpopularniejszych silników OCR w użyciu dzisiaj.
Główną funkcją Tesseract jest rozpoznawanie tekstu zawartego na obrazach lub obsługiwanie zeskanowanych dokumentów i przekładanie ich na tekst maszynowo czytelny. To sprawia, że tekst staje się edytowalny, przeszukiwalny i manipulowalny, umożliwiając użytkownikom tworzenie tekstu z różnych źródeł, w tym analiz skanowanych dokumentów, zdjęć i plików PDF.
Kluczowe cechy Tesseract OCR
- Open-Source: Tesseract jest dostępny bezpłatnie do użytku, modyfikacji i dystrybucji przez każdego na warunkach licencji Apache 2.0. Jego open-source'owa konstrukcja znacznie przyczyniła się do szerokiego przyjęcia i stałego ulepszania, dzięki wkładom społeczności.
- Wsparcie językowe: Tesseract jest w stanie rozpoznać więcej niż 100 różnych skryptów i zestawów znaków oprócz języków. Jest odpowiedni dla szerokiego zakresu aplikacji OCR w różnych językach i regionach geograficznych z powodu jego wielojęzycznych możliwości.
- Dokładność: Tesseract jest znany z doskonałej dokładności rozpoznawania tekstu, szczególnie gdy jest poprawnie skonfigurowany i wyszkolony z odpowiednimi danymi. Może niezawodnie wyodrębnić tekst z obrazów z różnymi problemami, w tym zniekształconymi kątami, niską jakością i niewystarczającym oświetleniem.
- Opcje: Tesseract oferuje dużą liczbę opcji konfiguracyjnych i dostosowywania. Dla specyficznych przypadków użycia, użytkownicy mogą dostosować różne parametry, aby zoptymalizować wydajność OCR. Ponadto, Tesseract może być połączony z różnymi platformami i językami komputerowymi, takimi jak Java, C++, Python i C#, umożliwiając deweloperom korzystanie z jego możliwości w szerokim zakresie aplikacji.
- Tesseract przechodzi ciągły rozwój i utrzymanie, z nowymi funkcjami dodawanymi regularnie, aby poprawić jego dokładność, wydajność i wsparcie dla języków. Społeczność open-source Tesseract wspiera jego ciągły rozwój, gwarantując, że zawsze będzie narzędziem OCR o dojrzałej formie.
Zainstaluj Tesseract OCR dla .NET
Instalacja Tesseract OCR na komputerze jest pierwszym krokiem. Oficjalne repozytorium GitHub Tesseract to miejsce, skąd można pobrać instalator Tesseract: https://github.com/tesseract-ocr/tesseract.
Aby zainstalować Tesseract OCR na swoim komputerze, postępuj zgodnie z instrukcjami instalacji specyficznymi dla Twojego systemu operacyjnego (Windows, macOS lub Linux). Po zainstalowaniu Tesseract OCR, użyj Menedżera Pakietów NuGet w Visual Studio, aby dodać opakowanie Tesseract.NET do swojego projektu w C#.
Przejdź do narzędzi Narzędzia -> Menedżer pakietów NuGet -> Zarządzaj pakietami NuGet dla rozwiązania po otwarciu projektu C# w Visual Studio. Powinienes byc w stanie zlokalizowac pakiet o nazwie "Tesseract" lub "Tesseract.NET", wyszukujac "Tesseract" w Menedzerze pakietow NuGet. Aby dolaczyc pakiet do projektu, wybierz go i kliknij Zainstaluj.

Tesseract OCR using C
Postępuj zgodnie z tymi krokami, aby używać Tesseract w swoim projekcie C#:
using Tesseract;
class Program
{
static void Main(string[] args)
{
// Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
// Load the image from which to extract text
using (var img = Pix.LoadFromFile("image.png"))
{
// Process the image and extract the text
using (var page = engine.Process(img))
{
// Get the extracted text
var text = page.GetText();
Console.WriteLine(text); // Print the extracted text
}
}
}
}
}
using Tesseract;
class Program
{
static void Main(string[] args)
{
// Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
using (var engine = new TesseractEngine(@"path_to_tesseract_folder", "eng", EngineMode.Default))
{
// Load the image from which to extract text
using (var img = Pix.LoadFromFile("image.png"))
{
// Process the image and extract the text
using (var page = engine.Process(img))
{
// Get the extracted text
var text = page.GetText();
Console.WriteLine(text); // Print the extracted text
}
}
}
}
}
Imports Tesseract
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize the Tesseract engine with the path to your Tesseract installation and the desired language(s)
Using engine = New TesseractEngine("path_to_tesseract_folder", "eng", EngineMode.Default)
' Load the image from which to extract text
Using img = Pix.LoadFromFile("image.png")
' Process the image and extract the text
Using page = engine.Process(img)
' Get the extracted text
Dim text = page.GetText()
Console.WriteLine(text) ' Print the extracted text
End Using
End Using
End Using
End Sub
End Class
Aby to osiągnąć, podaj lokalizację katalogu instalacyjnego Tesseract oraz język lub języki, które chcesz używać w opcjach konstruktora TesseractEngine. Zamień "eng" na kod języka, który chcesz użyć (np. "eng" dla angielskiego) i "path_to_tesseract_folder" na faktyczną ścieżkę do katalogu instalacyjnego Tesseract.
Po skonfigurowaniu Tesseract w projekcie C#, można teraz wykorzystać jego funkcje OCR do ekstrakcji tekstu z obrazów. Instancja TesseractEngine może być użyta do przetwarzania obrazu po jego załadowaniu za pomocą klasy Pix w celu wyodrębnienia tekstu lub uruchomienia OCR na pliku obrazowym, zamieniając "image.png" na ścieżkę do pliku obrazu.
Co to jest Microsoft OCR?
Pakiet Cognitive Services firmy Microsoft obejmuje Microsoft OCR, czasami nazywany Microsoft Optical Character Recognition. Microsoft Azure oferuje oparte na chmurze rozwiazanie do optycznego rozpoznawania znakow (OCR), które moze wyodrebnic tekst z dokumentow i zdjec z ulepszonymi funkcjami rozpoznawania tekstu. OCR Microsoft wykorzystuje głębokie sieci neuronowe i techniki uczenia maszynowego do rozpoznawania tekstu z różnych źródeł z doskonałą dokładnością.
Najważniejsze cechy
- Integracja z Azure Cognitive Services: Funkcje OCR firmy Microsoft współpracują z Azure Cognitive Services, zbiorem usług i interfejsów API Microsoft Azure zasilanych przez AI. Dzięki temu połączeniu programiści mogą łatwo integrować funkcje OCR Microsoftu w aplikacjach i przepływach pracy, korzystając z REST APIs, SDKs i bibliotek klienckich.
- Wysoka dokładność i wydajność: Dzięki zaawansowanym modelom uczenia maszynowego, które zostały wytrenowane na ogromnych zbiorach danych, Microsoft OCR zapewnia rozpoznawanie tekstu o wysokiej dokładności i wydajności. Dzieki zdolnosci precyzyjnego wyodrebniania tekstu z fotografii o skomplikowanych ukladach i roznych krojach pisma, jest odpowiedni dla szerokiego spektrum aplikacji OCR. Skalowalność i niezawodność: Microsoft OCR, składnik Azure Cognitive Services, zapewnia skalowalność i niezawodność, co czyni go odpowiednim dla aplikacji o różnych wymaganiach przetwarzania. Może skutecznie zarządzać dużymi ilościami dokumentów i wieloma żądaniami jednocześnie, gwarantując ciągłość działania i stabilną wydajność.
- Obsluga wielojezyczna: Microsoft OCR, podobnie jak inne programy OCR, umozliwia rozpoznawanie wielojezyczne, pozwalajac uzytkownikom na wyciaganie tekstu z zdjec w roznych jezykach i zestawach znakow. Dzieki wsparciu wielojezykowemu nadaje sie do miedzynarodowych aplikacji z roznorodnymi potrzebami jezykowymi.
Aby użyć Microsoft OCR w projekcie C#, należy połączyć je z Azure Cognitive Services, a dokładniej z Computer Vision API. Oto jak możesz zacząć:
Utwórz konto Azure
Należy założyć konto w Azure, jeśli jeszcze go nie posiadasz. Możesz utworzyć bezpłatne konto w Azure i uzyskać dostęp do kilku usług w czasie trwania okresu próbnego.
Configure Azure Cognitive Services
Usługa Computer Vision w Azure Cognitive Services musi być skonfigurowana, gdy posiadasz konto Azure.
- Otwórz Portal Azure.
- Wyszukaj "Computer Vision" klikając "Utwórz zasób". Kliknij "Utwórz" po wybraniu usługi Computer Vision. Aby skonfigurować usługę, należy wybrać subskrypcję i poziom cenowy, postępując zgodnie z instrukcjami.
- Po zbudowaniu usługi, przejdź do zasobu i zapisz klucz subskrypcji oraz URL punktu końcowego; będziesz ich potrzebować do zweryfikowania autentyczności swoich zapytań.
Zainstaluj SDK Azure Cognitive Services
Wykorzystanie Microsoft Azure jest możliwe. Aby komunikować się z API Computer Vision w swoim projekcie C#, użyj pakietu NuGet CognitiveServices.Vision.ComputerVision.
Przejdź do Narzędzia -> Menedżer pakietów NuGet, a następnie Zarządzaj pakietami NuGet dla rozwiązania po otwarciu projektu C# w Visual Studio.
Zainstaluj pakiet, wyszukując "Microsoft.Azure.CognitiveServices.Vision.ComputerVision".

Microsoft OCR Using C
Po zainstalowaniu SDK, mozna uzyc API Computer Vision do przeprowadzania OCR. Poniżej znajduje się wprowadzeniowy przykład użycia API Computer Vision do wykonywania OCR na obrazie:
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Set your endpoint and subscription key for authentication
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
// Create a new instance of the ComputerVisionClient
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
// Perform OCR on the specified image
var result = await client.RecognizePrintedTextInStreamAsync(true, "image.png");
// Iterate over the results and print the recognized text
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
using System;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision;
using Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models;
using System.Threading.Tasks;
class Program
{
static async Task Main(string[] args)
{
// Set your endpoint and subscription key for authentication
var endpoint = "YOUR_ENDPOINT";
var subscriptionKey = "YOUR_SUBSCRIPTION_KEY";
// Create a new instance of the ComputerVisionClient
var client = new ComputerVisionClient(new ApiKeyServiceClientCredentials(subscriptionKey))
{
Endpoint = endpoint
};
// Perform OCR on the specified image
var result = await client.RecognizePrintedTextInStreamAsync(true, "image.png");
// Iterate over the results and print the recognized text
foreach (var region in result.Regions)
{
foreach (var line in region.Lines)
{
foreach (var word in line.Words)
{
Console.WriteLine(word.Text);
}
}
}
}
}
Imports System
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision
Imports Microsoft.Azure.CognitiveServices.Vision.ComputerVision.Models
Imports System.Threading.Tasks
Friend Class Program
Shared Async Function Main(ByVal args() As String) As Task
' Set your endpoint and subscription key for authentication
Dim endpoint = "YOUR_ENDPOINT"
Dim subscriptionKey = "YOUR_SUBSCRIPTION_KEY"
' Create a new instance of the ComputerVisionClient
Dim client = New ComputerVisionClient(New ApiKeyServiceClientCredentials(subscriptionKey)) With {.Endpoint = endpoint}
' Perform OCR on the specified image
Dim result = Await client.RecognizePrintedTextInStreamAsync(True, "image.png")
' Iterate over the results and print the recognized text
For Each region In result.Regions
For Each line In region.Lines
For Each word In line.Words
Console.WriteLine(word.Text)
Next word
Next line
Next region
End Function
End Class
Aby wykonać OCR na pliku obrazkowym, zamień "image.png" w powyższym przykładzie kodu na ścieżkę do pliku obrazowego. Ten kod pobierze rozpoznany tekst z obrazu, wysyłając go do API Computer Vision. Adres URL punktu końcowego i klucz subskrypcji, które otrzymałeś po skonfigurowaniu usługi Computer Vision w Azure Cognitive Services, powinny zostać podstawione za "YOUR_ENDPOINT" i "YOUR_SUBSCRIPTION_KEY".
Czym jest IronOCR?
Deweloperzy moga dodac mozliwosci rozpoznawania tekstu do swoich aplikacji C# lub VB.NET za pomoca IronOCR, biblioteki OCR dla .NET. Oferuje przyjazne dla użytkownika API do ekstrakcji tekstu z plików PDF, obrazów i innych typów mediów. Iron Software, firma zajmująca się tworzeniem oprogramowania, która specjalizuje się w komponentach i bibliotekach .NET, tworzy i utrzymuje IronOCR.
Najważniejsze cechy IronOCR
- Prosta integracja: Możesz łatwo włączyć IronOCR do swoich projektów w C# lub VB.NET, korzystając z pakietów NuGet lub bezpośrednio uzyskując dostęp do biblioteki w swoim projekcie.
- Wszechstronne OCR: IronOCR potrafi rozpoznawac tekst z szerokiego zakresu zrodel, takich jak zrzuty ekranu, zeskanowane dokumenty, pliki PDF i fotografie. Jest w stanie obslugiwac kilka typow obrazow, w tym BMP, TIFF, PNG i JPEG. Dokładne rozpoznawanie tekstu: IronOCR osiąga doskonałą dokładność rozpoznawania tekstu, wykorzystując zaawansowane algorytmy OCR. Tekst na fotografiach o różnych rozdzielczościach, czcionkach i tłach może być niezawodnie wyodrębniony za jego pomocą.
- Wsparcie dla wielu języków: IronOCR jest odpowiedni dla aplikacji wielojęzycznych, ponieważ potrafi rozpoznawać wiele języków. Umozliwia dostosowane szkolenie jezykowe i jest wyposazone w wbudowane pakiety jezykowe dla popularnych jezykow. Wyodrębnianie tekstu z PDF: Skanowane i obrazowe pliki PDF mogą mieć tekst wyodrębniany przez IronOCR. Podczas usuwania tekstu z dokumentów PDF można zachować oryginalne formatowanie i układ treści.
- Przetwarzanie wstepne obrazu: Przed przetwarzaniem OCR, IronOCR moze poprawic jakosc wczytywanych obrazow za pomoca funkcji przetwarzania wstepnego obrazu. Obejmuje to zadania takie jak wyprostowanie, modyfikacja kontrastu i redukcja szumów.
IronOCR Using C
Oto podstawowy przykład C# z użyciem IronOCR:
// Create an instance of IronTesseract
var Ocr = new IronTesseract(); // nothing to configure
// Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
// Prepare the image input and perform OCR
using (var Input = new OcrInput())
{
// Add the image for OCR processing
Input.AddImage(@"Demo.png");
// Read the text from the image
var Result = Ocr.Read(Input);
// Print the recognized text
Console.WriteLine(Result.Text);
Console.ReadKey(); // Wait for user input before closing
}
// Create an instance of IronTesseract
var Ocr = new IronTesseract(); // nothing to configure
// Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest;
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5;
// Prepare the image input and perform OCR
using (var Input = new OcrInput())
{
// Add the image for OCR processing
Input.AddImage(@"Demo.png");
// Read the text from the image
var Result = Ocr.Read(Input);
// Print the recognized text
Console.WriteLine(Result.Text);
Console.ReadKey(); // Wait for user input before closing
}
' Create an instance of IronTesseract
Dim Ocr = New IronTesseract() ' nothing to configure
' Set the language and Tesseract version to be used for OCR
Ocr.Language = OcrLanguage.EnglishBest
Ocr.Configuration.TesseractVersion = TesseractVersion.Tesseract5
' Prepare the image input and perform OCR
Using Input = New OcrInput()
' Add the image for OCR processing
Input.AddImage("Demo.png")
' Read the text from the image
Dim Result = Ocr.Read(Input)
' Print the recognized text
Console.WriteLine(Result.Text)
Console.ReadKey() ' Wait for user input before closing
End Using
Możemy wyodrębnić dane z obrazu z najwyższą dokładnością OCR, używając powyższego kodu. Dodatkowo, IronOCR ulatwia konwersje tekstu wyodrebnionego z dokumentow do edytowalnych formatow plikow, w tym Word. Przeskanowany dokument może również zostać przekształcony przez nas w przeszukiwalny PDF. Z IronOCR, rezultat można zapisać w różnych formatach wyjściowych OCR. Aby dowiedzieć się więcej o kodzie, zapoznaj się z zasobem tutaj.
Obraz źródłowy:

Wynik:

Wnioski
Podsumowując, Tesseract i Microsoft OCR, każdy z unikalnymi zaletami i wadami, oferują solidne możliwości OCR dla programistów C#. Ponieważ Tesseract oferuje możliwość dostosowywania i elastyczność, jest dobrym wyborem dla aplikacji, które wymagają dużej ilości precyzyjnego dostosowywania. Jednak Microsoft OCR jest najlepszą opcją dla aplikacji C# potrzebujących zaawansowanych możliwości rozpoznawania tekstu ze względu na wysoką dokładność, skalowalność i bezproblemową integrację z usługami Azure. Przy projektach C#, programiści powinni rozważyć swoje indywidualne potrzeby, wymagania dotyczące modyfikacji oraz ograniczenia finansowe przed podjęciem decyzji między Tesseract a Microsoft OCR.
Na koniec, IronOCR to niezwykłe rozwiązanie OCR, które oferuje wyjątkową integrację, elastyczność i dokładność. Dzięki swojej niezrównanej dokładności, zaawansowanym algorytmom oraz zdolności do rozpoznawania szerokiej gamy typów dokumentów, IronOCR jest najlepszym rozwiązaniem OCR na rynku. Poniewaz IronOCR integruje sie gladko w wielu dokumentach i powszechnie uzywanych jezykach programowania, zapewnia dostepnosc dla programistow, jednoczesnie utrzymujac intuicyjny interfejs.
Mozesz wyprobowac przystepna edycje rozwojowa IronOCR za darmo, a jesli kupisz pakiet IronOCR, otrzymasz wieczysta licencje. Z ceną początkową $999, pakiet IronOCR to doskonała wartość, oferując jedną cenę za kilka urządzeń. Aby dowiedzieć się więcej o kosztach, odwiedź stronę internetową IronOCR. Kliknij ten link, aby dowiedzieć się więcej o produktach Iron Software.
Często Zadawane Pytania
Jak wypada porównanie Tesseract i Microsoft OCR pod względem obsługi języków?
Tesseract obsługuje ponad 100 języków i oferuje szerokie możliwości dostosowywania danych językowych, co czyni go bardzo wszechstronnym. Microsoft OCR zapewnia również obsługę wielu języków poprzez Azure Cognitive Services, umożliwiając skalowalne przetwarzanie językowe w chmurze.
Które narzędzie OCR oferuje lepszą integrację z projektami C#?
Microsoft OCR płynnie integruje się z projektami C# za pośrednictwem Azure Cognitive Services, oferując skalowalność w chmurze. Tesseract można zintegrować za pomocą opakowania Tesseract.NET. Alternatywnie, IronOCR zapewnia łatwą integrację z projektami C# i zawiera dodatkowe funkcje dostosowane do potrzeb programistów .NET.
Jakie są główne zalety korzystania z Microsoft OCR?
Microsoft OCR oferuje wysoką dokładność, skalowalność i obsługę wielu języków dzięki systemowi opartemu na chmurze, Azure Cognitive Services, który wykorzystuje głębokie sieci neuronowe do rozpoznawania tekstu.
Co sprawia, że Tesseract OCR nadaje się do dostosowywania?
Tesseract OCR jest oprogramowaniem typu open source i oferuje szerokie możliwości dostosowania, umożliwiając programistom dostosowanie go do różnych potrzeb projektowych. Pozwala na niestandardowe szkolenie językowe i precyzyjne dostosowanie ustawień rozpoznawania.
W jaki sposób IronOCR może usprawnić projekt w języku C# w porównaniu z Tesseract i Microsoft OCR?
IronOCR oferuje łatwą integrację, wysoką dokładność i obsługę wielu języków, a także zaawansowane funkcje, takie jak wstępne przetwarzanie obrazów i ekstrakcja tekstu z plików PDF. Jest zaprojektowany do płynnego działania w aplikacjach .NET, zapewniając programistom intuicyjny interfejs.
Jakie czynniki należy wziąć pod uwagę przy wyborze narzędzia OCR dla języka C#?
Wybierając narzędzie OCR dla języka C#, należy wziąć pod uwagę takie czynniki, jak obsługa języków, łatwość integracji, opcje dostosowywania, skalowalność oraz konkretne wymagania projektu. Tesseract jest idealny pod względem możliwości dostosowywania, Microsoft OCR pod względem skalowalności w chmurze, a IronOCR for .NET pod względem łatwości integracji z platformą .NET.
Czy IronOCR może służyć do konwersji obrazów na tekst w aplikacji napisanej w języku C#?
Tak, IronOCR może być używany do konwersji obrazów na tekst w aplikacji C#. Obsługuje wiele formatów obrazów i zapewnia wysoką dokładność rozpoznawania tekstu, co czyni go niezawodnym wyborem dla programistów.

