Tesseract OCR dla wielu języków (Samouczek dla deweloperów)
OCR to technologia używana do zamiany dokumentów różnych typów na edytowalne i przeszukiwalne dane. Zmienia zeskanowane obrazy, pliki PDF i zdjęcia z cyfrowego aparatu na dane, które można edytować i przeszukiwać. Ta technologia jest szeroko wykorzystywana do zmiany wydrukowanych dokumentów na formę cyfrową do edytowania, wyszukiwania i przechowywania, zmniejszając fizyczną przestrzeń zajmowaną przez dokumenty. OCR odgrywa ogromną rolę w automatyzacji wprowadzania danych, oszczędzając firmom i organizacjom dużo czasu poprzez zmniejszenie pracy wykonywanej przez zasoby ludzkie.
Jest to proces, który wykorzystuje zaawansowane techniki uczenia maszynowego i rozpoznawania wzorców, aby dokładnie wyodrębnić tekst z obrazów. Najnowsze osiągnięcia w zakresie OCR zwiększyły jego dokładność, co pozwala na wsparcie większej liczby języków oraz skomplikowanych pism, takich jak pismo arabskie. Bardzo potrzebne w finansach, zdrowiu, ustawodawstwie i edukacji, OCR pojawiło się jako niezbędne narzędzie tam, gdzie przetwarzanie kilku wydrukowanych dokumentów szybko było koniecznością. W tym artykule zostanie użyty Tesseract do OCR obrazów w danych w wielu językach.
Jak używać Tesseract OCR z wieloma językami
- Najpierw zainstaluj pakiet NuGet IronOCR/Tesseract w swoim projekcie .NET.
- Utworz instancje klasy
IronTesseract, aby zainicjowac silnik OCR. - Właściwość języka obsługuje więcej niż jeden język.
- Okresl sciezke do pliku z obrazem, ktory chcesz przetworzyc, a nastepnie utworz obiekt
OcrInput. - Teraz wykonaj OCR na wejsciowym obrazie, uzywajac funkcji
ReadinstancjiIronTesseract. - Weź wynik i wyświetl rozpoznany tekst.
What is Tesseract?
Tesseract jest otwartym silnikiem do Optycznego Rozpoznawania Znaków rozwijanym przez firmę Hewlett-Packard, później utrzymywanym przez Google. Jest znany ze swojej wysokiej precyzji i adaptacyjności, co czyni go jednym z najważniejszych OCRów. Tesseract wspiera wykrywanie skryptów, rozpoznaje tekst w wielu językach i potrafi obsługiwać wiele języków jednocześnie; Dlatego jest ogólnie używany do projektów wymagających wielojęzycznych dokumentów i wsparcia.
Silnik Tesseract OCR działa na informacjach zawartych w każdym pojedynczym pikselu obrazu, śledząc wzory przedstawiające znaki, słowa i zdania, które są ostatecznie konwertowane na tekst czytelny dla maszyn. Wiele obsługiwanych typów plików obrazów, takich jak TIFF, JPEG i PNG, pozwala Tesseractowi na tworzenie tekstu w formatach takich jak plain text, HTML i przeszukiwalny PDF.
Jednym z istotnych zalet Tesseract jest to, że można go nauczyć rozpoznawać konkretną czcionkę lub nowo dodane języki. Jest również często używany w różnych aplikacjach, począwszy od prostego wyciągania tekstu po złożone zadania w zakresie cyfryzacji dokumentów historycznych, przetwarzania faktur, a nawet oprogramowania do dostępności, które umożliwia czytanie osobom z dysfunkcjami wzroku.
Tworzenie nowego projektu w Visual Studio
Otwórz program Visual Studio. Po otwarciu programu przejdź do "menu plik." Pod "menu plik" znajduje się opcja "nowy projekt." Pod "nowy projekt" kliknij "aplikacja konsolowa." W tym poście stworzymy dokumenty PDF za pomocą programu konsolowego.

Wprowadź nazwę projektu i lokalizację pliku w podanych polach tekstowych. Następnie, jak pokazano na poniższym obrazku, kliknij przycisk Utwórz i wybierz potrzebny .NET Framework.

Teraz, gdy wybrano wersję aplikacji, projekt Visual Studio utworzy swoją strukturę. Jesli wybrales wersje konsolowa, Windows lub web, otworzy plik program.cs, aby dodac kod oraz zbudowac/uruchomic aplikacje.
Zainstaluj Tesseract OCR dla .NET
Pierwszym krokiem jest pobranie i zainstalowanie oprogramowania Tesseract OCR na swoim komputerze. Oto oficjalne repozytorium Tesseract na GitHub z instalatorem Tesseract: https://github.com/tesseract-ocr/tesseract.
Najlepiej jest zainstalować Tesseract OCR na swoim komputerze, postępując zgodnie z instrukcjami instalacji specyficznymi dla swojego systemu operacyjnego—czy to Windows, macOS, czy Linux. Po zainstalowaniu dodaj pakiet Tesseract.NET do swojego projektu C# za pomocą menedżera pakietów NuGet w Visual Studio.
Otwórz menedżera pakietów NuGet w swoim projekcie Visual Studio z Narzędzia -> Menedżer pakietów NuGet -> Zarządzaj pakietami NuGet dla rozwiązania. Następnie wyszukaj "Tesseract" w menedżerze pakietów NuGet, aby uzyskać pakiet "Tesseract" lub "Tesseract.NET". Wybierz ten pakiet i kliknij przycisk Instaluj, aby go zainstalować w swoim projekcie.

Tesseract OCR using C
Musisz skonfigurować Tesseract w swoim projekcie C#, aby określić lokalizację pliku wykonywalnego Tesseract OCR i plików danych języka po zainstalowaniu nakładki Tesseract.NET. Oto przykład:
using System;
using System.Drawing;
using Tesseract;
class Program
{
static void Main()
{
// Set the path to the Tesseract data files (traineddata files)
string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files
// Load the image
string imagePath = @"path_to_your_image.png";
using (var img = Pix.LoadFromFile(imagePath))
{
// Add languages to the Tesseract engine
using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
{
using (var page = engine.Process(img))
{
// Extract the text
string text = page.GetText();
Console.WriteLine("Recognized Text:");
Console.WriteLine(text);
}
}
}
}
}
using System;
using System.Drawing;
using Tesseract;
class Program
{
static void Main()
{
// Set the path to the Tesseract data files (traineddata files)
string tessDataPath = @"./tessdata"; // Ensure this directory contains the language data files
// Load the image
string imagePath = @"path_to_your_image.png";
using (var img = Pix.LoadFromFile(imagePath))
{
// Add languages to the Tesseract engine
using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
{
using (var page = engine.Process(img))
{
// Extract the text
string text = page.GetText();
Console.WriteLine("Recognized Text:");
Console.WriteLine(text);
}
}
}
}
}
Imports System
Imports System.Drawing
Imports Tesseract
Friend Class Program
Shared Sub Main()
' Set the path to the Tesseract data files (traineddata files)
Dim tessDataPath As String = "./tessdata" ' Ensure this directory contains the language data files
' Load the image
Dim imagePath As String = "path_to_your_image.png"
Using img = Pix.LoadFromFile(imagePath)
' Add languages to the Tesseract engine
Using engine = New TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default)
Using page = engine.Process(img)
' Extract the text
Dim text As String = page.GetText()
Console.WriteLine("Recognized Text:")
Console.WriteLine(text)
End Using
End Using
End Using
End Sub
End Class
Powyższy kod wyjaśnia, jak Tesseract OCR może wykrywać i wyodrębniać tekst z obrazów zawierających wiele języków. Początkowo ustawia ścieżkę do plików danych języka Tesseract. Niezbedne pliki .traineddata dla kazdego odpowiadajacego jezyka, takiego jak angielski, hiszpanski i francuski, powinny byc obecne w sciezce.

Laduje obraz okreslony przez imagePath uzywajac metody Pix.LoadFromFile. Bardziej szczegółowo, można by się spodziewać obrazu z tekstem w języku angielskim, hiszpańskim i francuskim. Nastepnie inicjalizowana jest instancja TesseractEngine z sciezkami do plikow danych jezykowych oraz interesujacymi nas jezykami: "eng+spa+fra", aby rozpoznac tekst. Silnik będzie działać w domyślnym trybie.

Obraz zostanie przetworzony za pomoca metody Process klasy silnika, gdzie jest analizowany, tekst wyodrebniany i zapisywany w zmiennej text. Wyodrębniony tekst jest następnie drukowany na konsoli, tworząc wizualizację działania OCR.
What is IronOCR?
IronOCR to proprietyczna biblioteka OCR skoncentrowana na .NET. Dodaje ona funkcje OCR do aplikacji .NET i umożliwia wyodrębnianie tekstu z obrazów, zeskanowanych dokumentów, PDF i wszystkich innych mediów wizualnych. Kierując się nowoczesnym rozpoznawaniem tekstu dzięki niezwykle skutecznemu silnikowi Tesseract, IronOCR obejmuje również szereg dodatkowych funkcji, które czynią ją odpowiednią dla aplikacji Enterprise.
IronOCR oferuje szerokie wsparcie językowe—ponad 120 języków z obsługą automatycznego wykrywania języka i przetwarzania dokumentów zawierających wiele języków jednocześnie. To czyni IronOCR bardzo wszechstronnym i gotowym do wdrożenia na całym świecie, gdzie przetwarzanie dokumentów wielojęzycznych jest niezwykle istotne.

Z drugiej strony, IronOCR kładzie nacisk na prostotę w użytkowaniu i integracji. Jego niezwykle łatwy w obsłudze interfejs API jest uzupełniony szczegółowa dokumentacja i zestawem przykładowych projektów, które pomogą każdemu deweloperowi szybko rozpocząć pracę. Obsługuje szeroką gamę formatów obrazów i dokumentów PDF. Wbudowane zaawansowane funkcje wstępnego przetwarzania obrazu, redukcji szumów i korekcji błędów poprawiają dokładność i wydajność OCR.
Zainstaluj IronOCR
Można instalować pakiety bezpośrednio w swoim rozwiązaniu za pomocą narzędzia do zarządzania pakietami NuGet w Visual Studio. Kolejna migawka pokazuje, jak otworzyć menedżer pakietów NuGet.

Ma wbudowane pole wyszukiwania, które wyświetla listę pakietów z witryny NuGet. Jak widać na poniższym zrzucie ekranu, przeszukamy menedżera pakietów frazę IronOCR:

Wyniki wyszukiwania mogą zawierać listę potencjalnych rozwiązań. Będziesz musiał wybrać niezbędny pakiet rozwiązania do zainstalowania.
Zainstaluj również wymagane pakiety języka Tesseract jeden po drugim, takie jak ten poniżej do tego przykładu.
W tym przykładzie użyjemy języków hiszpańskiego, francuskiego i angielskiego. Angielski to domyślny pakiet językowy i nie wymaga instalacji.

Zainstaluj hiszpański z pakietu NuGet.

Czytaj wiele języków z IronOCR z silnikiem Tesseract
Poniższy przykład demonstruje, jak rozpoznać tekst w wielu językach z obrazu za pomocą C# oraz silnika IronOCR i Tesseract.
using IronOcr;
class Program
{
static void Main(string[] args)
{
// Initialize IronTesseract engine
var Ocr = new IronTesseract();
// Add multiple languages
Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;
// Path to the image
var inputFile = @"path\to\your\image.png";
// Read the image and perform OCR
using (var input = new OcrInput(inputFile))
{
// Perform OCR
var result = Ocr.Read(input);
// Display the result
Console.WriteLine("Recognized Text:");
Console.WriteLine(result.Text);
}
}
}
using IronOcr;
class Program
{
static void Main(string[] args)
{
// Initialize IronTesseract engine
var Ocr = new IronTesseract();
// Add multiple languages
Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;
// Path to the image
var inputFile = @"path\to\your\image.png";
// Read the image and perform OCR
using (var input = new OcrInput(inputFile))
{
// Perform OCR
var result = Ocr.Read(input);
// Display the result
Console.WriteLine("Recognized Text:");
Console.WriteLine(result.Text);
}
}
}
Imports IronOcr
Friend Class Program
Shared Sub Main(ByVal args() As String)
' Initialize IronTesseract engine
Dim Ocr = New IronTesseract()
' Add multiple languages
Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French
' Path to the image
Dim inputFile = "path\to\your\image.png"
' Read the image and perform OCR
Using input = New OcrInput(inputFile)
' Perform OCR
Dim result = Ocr.Read(input)
' Display the result
Console.WriteLine("Recognized Text:")
Console.WriteLine(result.Text)
End Using
End Sub
End Class
Powyższy program C# używa biblioteki IronOCR do przeprowadzania Optycznego Rozpoznawania Znaków na obrazie zawierającym znaki angielskie, hiszpańskie i francuskie. Program rozpoczyna sie od importowania wymaganego przestrzeni nazw dla IronOCR i deklarowania klasy o nazwie Program z metoda Main, ktora jest punktem wejsciowym aplikacji.
W metodzie Main inicjalizowana jest instancja klasy IronTesseract i przypisywana do zmiennej Ocr. Wlasciwosc Language jest ustawiona, aby zawierac angielski, hiszpanski oraz francuski, poprzez laczenie OcrLanguage.English, OcrLanguage.Spanish i OcrLanguage.French. To gwarantuje, że silnik OCR może rozpoznawać i przetwarzać tekst w dowolnym z tych trzech języków.
Sciezka do pliku wejsciowego z obrazem jest ustawiona przy uzyciu zmiennej inputFile. Obraz jest nastepnie ladowany wewnatrz instrukcji using z instancja klasy OcrInput dla odpowiedniego zarzadzania zasobami i zwalniania. Na koniec wywolywana jest metoda Read instancji IronTesseract z obiektem wejsciowym, aby wykonac OCR na obrazie.
Rozpoznany tekst jest nastepnie wypisywany na konsole przy uzyciu metody Console.WriteLine. Ten program ilustruje skuteczną metodę użycia wielojęzykowej funkcji IronOCR do wyodrębniania tekstu z obrazów zawierających słowa w różnych językach.

Dlaczego IronOCR jest lepszy niż Tesseract?
IronOCR jest bardziej przyjazny dla użytkownika w porównaniu do Tesseract i oferuje pewne zalety. Po pierwsze, IronOCR gwarantuje doskonałe wsparcie językowe z 125 językami gotowymi do użycia, podczas gdy Tesseract może wymagać skomplikowanej konfiguracji i dodatkowego szkolenia dla optymalnej wydajności ze swoim wsparciem dla 100 języków. Dodatkowo, IronOCR łatwo integruje się z aplikacjami .NET i jest wyposażony w kompleksową dokumentację.
IronOCR ma mniej stromą krzywą uczenia się i wymaga mniej technicznej konfiguracji niż Tesseract. Zawiera również zaawansowane wstępne przetwarzanie obrazu i regularne aktualizacje dla lepszej dokładności i niezawodności przy złożonych rodzajach dokumentów. IronOCR jest doskonałym wyborem dla deweloperów poszukujących solidnego, wszechstronnego i łatwo zastosowalnego rozwiązania OCR.
Wnioski

Podczas gdy Tesseract i IronOCR są solidnymi technologiami OCR, każdy z nich ma unikalne zdolności i mocne strony. Tesseract, będąc open-source, jest niezawodny dla każdego, kto szuka darmowego rozwiązania i ma aktywne społeczności oraz ciągłe usprawnienia.
Z kolei IronOCR to proprietyczna biblioteka dla .NET Framework, oferująca ulepszone doświadczenie użytkownika z łatwiejszą integracją i wsparciem dla większości typów plików obrazów. Również dobrze działa w rozpoznawaniu tekstu, zwłaszcza przy treściach o niskiej jakości obrazu. IronOCR w pełni wspiera wiele języków i posiada dodatkowe funkcje, które czynią go bardziej przyjaznym dla użytkownika.
IronOCR oferuje opłacalną edycję dla deweloperów, a po zakupie zapewnia licencję na całe życie. Pakiet IronOCR zaczyna się po cenie $liteLicense jako jednorazowy koszt dla wielu systemów, oferując doskonałą wartość za pieniądze i wsparcie inżynieryjne online przez 24/7 dla licencjonowanych użytkowników. Więcej informacji można znaleźć na stronie IronOCR.
Często Zadawane Pytania
Jak mogę używać Tesseract OCR z wieloma językami w projekcie .NET?
Możesz skorzystać z biblioteki IronOCR, która upraszcza integrację OCR Tesseract do przetwarzania obrazów zawierających tekst w wielu językach. Dodaj pakiet NuGet IronOCR/Tesseract do swojego projektu .NET i skonfiguruj języki za pomocą właściwości Language klasy IronTesseract.
Jakie zalety ma IronOCR w porównaniu ze standardowym Tesseractem?
IronOCR zapewnia bardziej przyjazny dla użytkownika interfejs API dla aplikacji .NET, obsługuje ponad 120 języków od razu po uruchomieniu i oferuje zaawansowane przetwarzanie wstępne obrazów w celu poprawy dokładności. Integruje się płynnie z projektami .NET, oferując obszerną dokumentację i wsparcie dla programistów.
Czy IronOCR może obsługiwać dokumenty w wielu językach jednocześnie?
Tak, IronOCR może przetwarzać dokumenty wielojęzyczne poprzez ustawienie wielu języków we właściwości Language. Ta funkcja jest szczególnie przydatna w aplikacjach globalnych, gdzie dokumenty mogą zawierać tekst w różnych językach.
Jak wygląda proces konfiguracji IronOCR w projekcie C#?
Aby skonfigurować IronOCR w projekcie C#, najpierw zainstaluj pakiet IronOCR/Tesseract NuGet za pomocą menedżera pakietów NuGet w Visual Studio. Następnie utwórz instancję klasy IronTesseract w swoim kodzie i użyj jej metod do przetwarzania obrazów zawierających tekst.
W jaki sposób IronOCR poprawia dokładność wyników OCR?
IronOCR poprawia dokładność dzięki zaawansowanym technikom wstępnego przetwarzania obrazów, które poprawiają jakość obrazu przed wyodrębnieniem tekstu. Ta funkcja pomaga w dokładnym rozpoznawaniu tekstu z obrazów o różnej jakości.
Jakie rodzaje dokumentów może przetwarzać IronOCR?
IronOCR może przetwarzać różne typy dokumentów, w tym zeskanowane obrazy, pliki PDF i zdjęcia wykonane aparatami cyfrowymi. Konwertuje te dokumenty na formaty danych, które można edytować i przeszukiwać.
Czy IronOCR nadaje się do automatyzacji zadań związanych z wprowadzaniem danych?
Tak, IronOCR jest bardzo skuteczny w automatyzacji wprowadzania danych poprzez konwersję dokumentów drukowanych na tekst cyfrowy, co zmniejsza nakład pracy ręcznej i pozwala zaoszczędzić czas. Jest szeroko stosowany w takich sektórach jak finanse, opieka zdrowotna i edukacja.
W jaki sposób IronOCR wspiera programistów we wdrażaniu technologii OCR?
IronOCR zapewnia obszerną dokumentację, przyjazny dla użytkownika interfejs API oraz całodobowe wsparcie inżynierów online, ułatwiając programistom wdrażanie technologii OCR w ich aplikacjach .NET.
Jakie są główne zastosowania IronOCR?
IronOCR służy do digitalizacji dokumentów drukowanych, automatyzacji wprowadzania danych, przetwarzania faktur oraz tworzenia oprogramowania ułatwiającego dostęp dla użytkowników z dysfunkcją wzroku. Znajduje zastosowanie w różnych branżach, w tym w finansach, służbie zdrowia i edukacji.



