Jak korzystać z Custom Language z Tesseract w C

This article was translated from English: Does it need improvement?
Translated
View the article in English

IronOCR umożliwia OCR dla niestandardowych języków, specjalistycznych skryptów lub szyfrów poprzez ładowanie plików Tesseract .traineddata za pomocą metody UseCustomTesseractLanguageFile, co pozwala na wyodrębnianie tekstu z dowolnego niestandardowego modelu językowego.

Szybki start: Załaduj niestandardowy język dla OCR

  1. Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr
  2. 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);
  3. Wdrożenie do testowania w środowisku produkcyjnym

    Rozpocznij używanie IronOCR w swoim projekcie już dziś z darmową wersją próbną

    arrow pointer
  1. Zainstaluj IronOcr za pomocą menedżera pakietów NuGet
  2. Załaduj swój niestandardowy plik .traineddata za pomocą UseCustomTesseractLanguageFile
  3. Utwórz OcrInput i załaduj swój dokument
  4. Wywołaj Read(), aby wyodrębnić tekst w wybranym języku
  5. Zapisz lub przetwórz wyciągnięty 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. Dane te 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. W niniejszym przewodniku pokazano, jak załadować i używać niestandardowego pliku .traineddata w programie IronOCR.


Jak wdrożyć niestandardowe OCR językowe za pomocą Tesseract?

Aby użyć niestandardowego języka w Tesseract, najpierw załaduj 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 plik PDF zawierający akapity w niestandardowym języku przy użyciu 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 danych wejściowych. 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.

W naszym przykładzie użyjemy tego niestandardowego języka .traindata.

Jakość i kompleksowość twojego materiału treningowego bezpośrednio wpływa na dokładność OCR. Podczas przygotowywania niestandardowych danych szkoleniowych dotyczących języka:

  1. Pokrycie znaków: Upewnij się, że twój materiał szkoleniowy zawiera wszystkie znaki i symbole
  2. Wariacje pisma: Uwzględnij wiele stylów czcionki, jeśli twoje dokumenty różnią się typografią
  3. Jakość obrazu: Szkol z obrazami podobnymi do tych, które będziesz przetwarzać w produkcji
  4. Wzorce kontekstu: Uwzględnij powszechne 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
$vbLabelText   $csharpLabel

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?

Wynik działania OCR Tesseract przedstawiający wyodrębniony tekst dotyczący funkcji gry Apex Legends w interfejsie terminala

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 treningowych: Lepsze dane szkoleniowe dają lepsze wyniki
  • Spójność dokumentów: Dokumenty pasujące do danych treningowych działają najlepiej
  • 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 sprawdzaj, czy 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ługo trwające operacje OCR
  • Rozważ wdrożenie czasów zakończenia dla przetwarzania 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:

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 językami lub skryptami?

IronOCR umożliwia OCR dla niestandardowych językow poprzez zaladowanie plikow Tesseract .traineddata za pomoca metody UseCustomTesseractLanguageFile. Pozwala to na wyciagniecie tekstu z dowolnego modelu języka niestandardowego, w tym specjalistycznych skryptow, tekstow historycznych lub szyfrow.

Jaki format pliku jest potrzebny do rozpoznania języka niestandardowego?

IronOCR wymaga pliku .traineddata zawierajacego dane szkoleniowe dla twojego niestandardowego języka. Ten plik jest zaladowywany za pomoca metody UseCustomTesseractLanguageFile i zawiera wszystkie niezbedne informacje dla Tesseract, aby rozpoznac unikalne znaki twojego języka niestandardowego.

Czy moge uzyc kilku niestandardowych językow w jednej operacji OCR?

Tak, IronOCR obsługuje rozpoznawanie kilku językow. Mozesz zaladowac kilka plikow językow niestandardowych lub polaczyc jezyki niestandardowe z dowolnym z 125 językow 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, języki 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 językow w mojej aplikacji C#?

Aby zaimplementowac OCR dla niestandardowych językow 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.

Czy IronOCR obsługuje wiele języków?

IronOCR obsługuje wiele języków, co czyni go wszechstronnym narzędziem dla globalnych aplikacji wymagających rozpoznawania tekstu w różnych językach.

Czy IronOCR można zintegrować z istniejącymi aplikacjami?

IronOCR jest zaprojektowany do łatwej integracji z istniejącymi aplikacjami używając C#, co pozwala programistom dodać funkcjonalność OCR do swojego oprogramowania z minimalnym wysiłkiem.

Jakie są korzyści z używania IronOCR do zarządzania dokumentami?

Używanie IronOCR do zarządzania dokumentami upraszcza przepływ pracy przez konwertowanie zeskanowanych dokumentów na przeszukiwalny i edytowalny tekst, redukując konieczność ręcznego wprowadzania danych i poprawiając dostępność dokumentów.

Jak IronOCR może poprawić dokładność danych?

IronOCR poprawia dokładność danych dzięki swoim zaawansowanym algorytmom rozpoznawania i funkcjom korekcji obrazów, zapewniając, że proces ekstrakcji tekstu jest zarówno niezawodny, jak i precyzyjny.

Czy dostępna jest bezpłatna wersja próbna IronOCR?

Tak, Iron Software oferuje bezpłatną wersję próbną IronOCR, umożliwiając użytkownikom przetestowanie jego funkcji i możliwości przed podjęciem decyzji o zakupie.

Curtis Chau
Autor tekstów technicznych

Curtis Chau posiada tytuł licencjata z informatyki (Uniwersytet Carleton) i specjalizuje się w front-endowym rozwoju, z ekspertką w Node.js, TypeScript, JavaScript i React. Pasjonuje się tworzeniem intuicyjnych i estetycznie przyjemnych interfejsów użytkownika, Curtis cieszy się pracą z nowoczesnymi frameworkami i tworzeniem dobrze zorganizowanych, atrakcyjnych wizualnie podrę...

Czytaj więcej
Gotowy, aby rozpocząć?
Nuget Pliki do pobrania 5,896,332 | Wersja: 2026.5 just released
Still Scrolling Icon

Wciąż przewijasz?

Czy chcesz szybko dowodu? PM > Install-Package IronOcr
uruchom próbkę obserwuj, jak twój obraz staje się tekstem z możliwością wyszukiwania.