Jak korzystać z Custom Language z Tesseract w C
IronOCR umożliwia OCR dla niestandardowych języków, specjalistycznych skryptów lub szyfrów, ładując pliki Tesseract .traineddata za pomocą metody UseCustomTesseractLanguageFile, co pozwala na wyodrębnienie tekstu z dowolnego modelu języka niestandardowego.
Szybki start: Załaduj niestandardowy język dla OCR
-
Install IronOCR with NuGet Package Manager
PM > Install-Package IronOcr -
Skopiuj i uruchom ten fragment kodu.
using IronOcr; // Initialize OCR engine var ocr = new IronTesseract(); // Load custom language file ocr.UseCustomTesseractLanguageFile("custom.traineddata"); // Process document using var input = new OcrInput(); input.LoadImage("document.png"); // Extract text var result = ocr.Read(input); Console.WriteLine(result.Text); -
Wdrożenie do testowania w środowisku produkcyjnym
Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną
- Zainstaluj IronOCR za pomocą menedżera pakietów NuGet
- Załaduj swój niestandardowy plik
.traineddataza pomocąUseCustomTesseractLanguageFile - Utwórz
OcrInputi załaduj swój dokument - Wywołaj
Read(), aby wyodrębnić tekst w swoim niestandardowym języku - Zapisz lub przetwórz wyodrębniony tekst
Optyczne rozpoznawanie znaków (OCR) wymaga czasem obsługi niestandardowych języków, specjalistycznych alfabetów lub szyfrów. Aby odczytać obraz wejściowy zawierający niestandardowy język, silnik Tesseract musi otrzymać dane szkoleniowe dla tego konkretnego języka. Te dane są przechowywane w specjalnym pliku .traineddata.
Chociaż złożony proces tworzenia (szkolenia) tego pliku odbywa się przy użyciu własnych narzędzi Tesseract, IronOCR w pełni obsługuje korzystanie z tych niestandardowych plików językowych. Dzięki temu możesz zastosować swój wyszkolony model do rozszyfrowania i odczytania tekstu z dowolnego źródła. Ten przewodnik pokazuje, jak ładować i używać niestandardowego pliku .traineddata z IronOCR.
Jak korzystać z niestandardowych języków w Tesseract
- Pobierz bibliotekę C# do odczytu niestandardowego języka
- Zainicjuj silnik OCR
- Załaduj niestandardowe dane szkoleniowe języka za pomocą
UseCustomTesseractLanguageFile - Załaduj obraz wejściowy za pomocą
LoadImage - Odczytaj i wyodrębnij obraz z niestandardowym wpisem językowym za pomocą
funkcji Read
Jak wdrożyć niestandardowe OCR językowe za pomocą Tesseract?
Aby używać niestandardowego języka z Tesseract, najpierw załaduj swój plik .traineddata, wywołując metodę UseCustomTesseractLanguageFile. Jest to niezbędny krok, ponieważ plik ten zawiera wszystkie dane szkoleniowe, które pozwalają Tesseract rozpoznawać unikalne znaki danego języka.
Obsługa niestandardowych języków w IronOCR wykracza poza standardowe języki. Niezależnie od tego, czy pracujesz ze skryptami historycznymi, językami wymyślonymi czy specjalistycznymi systemami notacji, proces jest taki sam. W przypadku projektów wymagających obsługi wielu języków zapoznaj się z naszym przewodnikiem dotyczącym odczytu wielu języków lub dowiedz się więcej o 125 międzynarodowych językach OCR obsługiwanych od razu po uruchomieniu.
Następnie załaduj dokument źródłowy tak samo, jak w przypadku zwykłej operacji OCR. Ładujemy PDF zawierający akapity w niestandardowym języku za pomocą LoadPdf. IronOCR obsługuje różne formaty wejściowe, w tym obrazy (jpg, png, gif, tiff, bmp) i pliki PDF.
Na koniec, użyj metody Read, aby wyodrębnić tekst z wejścia. Wynik można następnie wydrukować w konsoli lub zapisać w pliku tekstowym w celach referencyjnych.
Jakie dane szkoleniowe są potrzebne dla języków niestandardowych?
Jako dane wejściowe wykorzystamy ten przykładowy plik PDF, który zawiera tekst w naszym niestandardowym języku.
Użyjemy tego niestandardowego języka .traindata do naszego przykładu.
Jakość i kompletność danych szkoleniowych ma bezpośredni wpływ na dokładność OCR. Podczas przygotowywania niestandardowych danych szkoleniowych dotyczących języka:
- Zakres znaków: Upewnij się, że dane szkoleniowe zawierają wszystkie znaki i symbole
- Różnorodność czcionek: Jeśli dokumenty różnią się pod względem typografii, należy uwzględnić wiele stylów czcionek
- Jakość obrazu: Trenuj na obrazach podobnych do tych, które będziesz przetwarzać w środowisku produkcyjnym
- Wzorce kontekstowe: uwzględnij popularne kombinacje słów i frazy
Aby uzyskać informacje na temat zaawansowanych opcji konfiguracyjnych, zapoznaj się z naszym szczegółowym przewodnikiem konfiguracji Tesseract.
Jak załadować i przetworzyć dokumenty w niestandardowym języku?
:path=/static-assets/ocr/content-code-examples/how-to/ocr-custom-language.cs
using IronOcr;
using System;
using System.IO;
var ocrTesseract = new IronTesseract();
// Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata");
using var ocrInput = new OcrInput();
// Load the PDF containing text in the custom language
ocrInput.LoadPdf("custom.pdf");
var ocrResult = ocrTesseract.Read(ocrInput);
// Print text to the console
Console.WriteLine("--- OCR Result ---");
Console.WriteLine(ocrResult.Text);
Console.WriteLine("------------------");
// Pipe text to a .txt file
string outputFilePath = "ocr_output.txt";
File.WriteAllText(outputFilePath, ocrResult.Text);
Console.WriteLine($"\nSuccessfully saved text to {outputFilePath}");
Imports IronOcr
Imports System
Imports System.IO
Dim ocrTesseract As New IronTesseract()
' Load the traineddata file for the custom language
ocrTesseract.UseCustomTesseractLanguageFile("AMGDT.traineddata")
Using ocrInput As New OcrInput()
' Load the PDF containing text in the custom language
ocrInput.LoadPdf("custom.pdf")
Dim ocrResult = ocrTesseract.Read(ocrInput)
' Print text to the console
Console.WriteLine("--- OCR Result ---")
Console.WriteLine(ocrResult.Text)
Console.WriteLine("------------------")
' Pipe text to a .txt file
Dim outputFilePath As String = "ocr_output.txt"
File.WriteAllText(outputFilePath, ocrResult.Text)
Console.WriteLine(vbCrLf & "Successfully saved text to " & outputFilePath)
End Using
Powyższy kod ilustruje podstawowy przebieg pracy w przypadku niestandardowego OCR językowego. W przypadku bardziej złożonych scenariuszy warto rozważyć następujące ulepszenia:
Optymalizacja wydajności: W przypadku dużych dokumentów lub przetwarzania wsadowego należy wdrożyć obsługę wielowątkowości i asynchroniczności w celu poprawy wydajności.
Wstępne przetwarzanie obrazów: Jeśli dokumenty źródłowe mają problemy z jakością, przed przetwarzaniem OCR zastosuj filtry korekcji obrazu. Kreator filtrów pomoże Ci znaleźć optymalne ustawienia przetwarzania wstępnego.
OCR specyficzne dla regionu: W przypadku dokumentów o mieszanej treści należy użyć techniki OCR regionu obrazu, aby skupić się na konkretnych obszarach zawierających wybrany język.
Jakich rezultatów mogę oczekiwać od niestandardowego OCR językowego?
Poniższy wynik przedstawia rezultat działania naszego niestandardowego modelu językowego. Dzięki dostarczeniu prawidłowych danych szkoleniowych IronOCR z powodzeniem rozszyfrował tekst, a wynik jest w prostym języku angielskim. Dodatkowo, oto plik txt wygenerowany przez kod.
Dokładność niestandardowego OCR językowego zależy od kilku czynników:
- Jakość danych szkoleniowych: lepsze dane szkoleniowe dają lepsze wyniki
- Spójność dokumentów: Dokumenty zgodne z danymi szkoleniowymi osiągają najlepsze wyniki
- Rozdzielczość obrazu: Obrazy o wyższym DPI dają dokładniejsze wyniki — zapoznaj się z naszym przewodnikiem dotyczącym ustawień DPI
Najlepsze praktyki dotyczące wdrażania niestandardowych języków
Wdrażając niestandardowe OCR językowe w środowiskach produkcyjnych, należy wziąć pod uwagę następujące najlepsze praktyki:
Obsługa błędów i walidacja: Zawsze zweryfikuj, czy twój plik .traineddata istnieje i jest dostępny, zanim spróbujesz go załadować. Należy wdrożyć odpowiednią obsługę błędów na wypadek, gdyby plik językowy był niekompletny lub uszkodzony.
Optymalizacja wydajności: Niestandardowe modele językowe mogą być większe niż standardowe pakiety językowe. Dla optymalnej wydajności:
- Buforuj załadowany model językowy podczas przetwarzania wielu dokumentów
- Użyj śledzenia postępu, aby monitorować długotrwałe operacje OCR
- Rozważ wprowadzenie limitów czasowych na przetwarzanie dużych dokumentów
Łączenie z językami standardowymi: Jeśli dokumenty zawierają zarówno języki niestandardowe, jak i standardowe, można załadować wiele języków jednocześnie. Jest to szczególnie przydatne w przypadku dokumentów o zróżnicowanej treści.
Testowanie i walidacja: Należy ustanowić strukturę testową w celu sprawdzenia dokładności OCR:
- Utwórz testowy zbiór danych ze znanymi wynikami
- Wykorzystaj wskaźniki pewności wyników do oceny jakości rozpoznawania
- Wdrożenie podświetlania tekstu w postaci obrazów do debugowania wizualnego
Zaawansowane przypadki użycia
Niestandardowe OCR językowe otwiera wiele możliwości:
Ochrona dokumentów historycznych: digitalizacja starożytnych rękopisów lub tekstów napisanych w przestarzałych alfabetach
Specjalistyczne systemy notacji: równania matematyczne, notacja muzyczna lub diagramy techniczne — zapoznaj się z naszym przewodnikiem dotyczącym rozwiązywania problemów z równaniami
Aplikacje bezpieczeństwa: Dekodowanie zastrzeżonych systemów kodowania lub szyfrów
Dostępność: Konwersja specjalistycznych systemów pisma brajlowskiego lub dotykowego na standardowy tekst
W przypadku bardziej zaawansowanych scenariuszy zapoznaj się z naszymi obszernymi przykładami kodu, które pokazują różne możliwości IronOCR z wykorzystaniem Tesseract 5.
Często Zadawane Pytania
Jak przeprowadzic OCR na dokumentach z niestandardowymi jezykami lub skryptami?
IronOCR umozliwia OCR dla niestandardowych jezykow poprzez zaladowanie plikow Tesseract .traineddata za pomoca metody UseCustomTesseractLanguageFile. Pozwala to na wyciagniecie tekstu z dowolnego modelu jezyka niestandardowego, w tym specjalistycznych skryptow, tekstow historycznych lub szyfrow.
Jaki format pliku jest potrzebny do rozpoznania jezyka niestandardowego?
IronOCR wymaga pliku .traineddata zawierajacego dane szkoleniowe dla twojego niestandardowego jezyka. Ten plik jest zaladowywany za pomoca metody UseCustomTesseractLanguageFile i zawiera wszystkie niezbedne informacje dla Tesseract, aby rozpoznac unikalne znaki twojego jezyka niestandardowego.
Czy moge uzyc kilku niestandardowych jezykow w jednej operacji OCR?
Tak, IronOCR obsluguje rozpoznawanie kilku jezykow. Mozesz zaladowac kilka plikow jezykow niestandardowych lub polaczyc jezyki niestandardowe z dowolnym z 125 jezykow miedzynarodowych obslugiwanych domyslnie przez IronOCR.
Jakie typy niestandardowych skryptow moga byc rozpoznane?
IronOCR moze rozpoznawac kazdy niestandardowy skrypt, ktory zostal prawidlowo wyszkolony do pliku .traineddata, w tym skrypty historyczne, jezyki wymyslone, specjalistyczne systemy notacji i szyfry. Elastycznosc rozciaga sie na kazdy system pisma, ktory moze byc wyszkolony przy uzyciu narzedzi Tesseract.
Jak zaimplementowac OCR dla niestandardowych jezykow w mojej aplikacji C#?
Aby zaimplementowac OCR dla niestandardowych jezykow z IronOCR: 1) Zainicjuj instancje IronTesseract, 2) Zaladuj swoj plik .traineddata przy uzyciu UseCustomTesseractLanguageFile, 3) Utworz obiekt OcrInput i zaladuj swoj dokument, 4) Wywolaj metode Read(), aby wyciagnac tekst, 5) Przetworz wyciagniety tekst w razie potrzeby.

