IRONSOFTWAREHOME

Jak wytrenować niestandardową czcionkę z Tesseract 5 w C#

Kannaopat Udonpant
Kannapat Udonpant
Updated: 4 czerwca 2026

Domyślny angielski model Tesseract błędnie odczytuje wiele rzeczywistych danych wejściowych: ręczne formularze przyjęć szpitalnych, cyfryzacje starych książek, indywidualnie zaprojektowane dekoracyjne kroje pisma w studiach gry, czy specyficzne symbole dla branż, których ogólny silnik OCR nigdy nie widział. Poprawienie tego polega na samodzielnym trenowaniu Tesseract na dokładnym czcione, tworząc pojedynczy artefakt .traineddata, który można wysyłać wszędzie, gdzie IronOCR działa.

Ten przewodnik przeprowadza przez cały proces treningu czcionki Tesseract 5 w C#: zainstaluj narzędzia WSL2 Ubuntu, wygeneruj pliki treningowe .box i .tif z twoich .ttf lub .otf, zbuduj model .traineddata z tesstrain względem bazowego eng.traineddata, potem załaduj wynik w IronOCR. Po przeszkoleniu plik jest przenośny między Windows, macOS, Linux, i Docker.

Szybki start: Jak użyć wytrenowanego pliku czcionki w C#

Skonfiguruj IronOCR, wskazując na plik UseCustomTesseractLanguageFile, a następnie wywołaj Read na dowolnym obrazie, tak jak byś robił to z podstawowym zestawem językowym.

  1. 1Install IronOCR with NuGet Package Manager

    PM > Install-Package IronOcr

  2. 2Skopiuj i uruchom ten fragment kodu.

    using IronOcr;
    
    var ocr = new IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
    C#
  3. 3Wdrożenie do testowania w środowisku produkcyjnym

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

Jak skonfigurować środowisko treningowe?

Jak zainstalować IronOCR?

Zainstaluj IronOCR przez NuGet:

PM > Install-Package IronOcr

Pakiet DLL jest ręczną alternatywą, jeśli nie możesz użyć NuGet. Dla podstawowego silnika zobacz przewodnik po funkcjach Tesseract 5 oraz opis niestandardowego języka.

Jak zainstalować i skonfigurować WSL2 i Ubuntu?

Zapoznaj się z samouczkiem dotyczącym konfiguracji WSL2 i Ubuntu.

Zwróć uwagę: Szkolenie dotyczące czcionek niestandardowych wymaga systemu Linux.

WSL2 wystarcza: gdy trening jest zakończony, wynikowy plik .traineddata jest rozprowadzany razem z twoją aplikacją IronOCR na Windows, macOS, Linux lub Docker. Dla szczegółów wdrażania zobacz przewodnik wdrażania dla Linux.

Jak zainstalować Tesseract 5 na Ubuntu?

Użyj tych poleceń, aby zainstalować Tesseract 5:

sudo apt install tesseract-ocr
sudo apt install libtesseract-dev
SHELL

Pakiet tesseract-ocr to silnik, który uruchamia rozpoznawanie; libtesseract-dev ujawnia nagłówki, których tesstrain potrzebuje do zbudowania modelu. Gdy Twój przeszkolony plik jest w użyciu, przewodnik konfiguracji Tesseract obejmuje strojenie w czasie wykonywania.

Jak przygotować czcionkę do szkolenia?

Jaką czcionkę powinienem pobrać?

Ten tutorial używa czcionki AMGDT w formacie .ttf lub .otf.

Eksplorator plików Windows pokazujący pobrany plik czcionki AMGDT Regular.ttf zaznaczony na czerwono do szkolenia

Wybierając czcionkę do szkolenia:

  • Wybierz czcionki, które domyślny model angielski błędnie odczytuje. Przeszkolenie czcionki, która jest już rozpoznawana, marnuje czas.
  • Upewnij się, że licencja czcionki pozwala na redystrybucję, jeśli twoja .traineddata będzie dostarczana z aplikacją.
  • Dekoracyjne, ręczne i specyficzne dla branży czcionki (medyczne, prawne, kartograficzne) zyskują najwięcej na szkoleniu.
  • Dopasuj próbki szkoleniowe do tego, co faktycznie zobaczy produkcja, w tym rozdzielczość i oświetlenie.

Jak zamontować dysk?

Zamontuj Dysk D: jako swoją przestrzeń roboczą:

cd /
cd /mnt/d
SHELL

WSL2 montuje każdy dysk Windows pod /mnt/<litera>, więc możesz edytować pliki na Windows i uruchamiać przeciw nim komendy szkoleniowe w tej samej sesji.

Jak skopiować plik czcionki do folderu czcionek Ubuntu?

Tesseract renderuje przykładowy tekst w Twojej czcionce, aby zbudować obrazy szkoleniowe, więc czcionka musi być zainstalowana po stronie Linux, nie tylko na Windows. Skopiuj plik czcionki do obu katalogów czcionek Ubuntu: /usr/share/fonts oraz /usr/local/share/fonts. Najprostszym sposobem jest wpisanie \wsl$ w pasku adresu Eksploratora plików, aby przeglądać system plików Ubuntu z Windows, a następnie przeciągnij przez .ttf.

Eksplorator plików Windows przedstawiający ścieżkę sieciową \wsl$ do uzyskiwania dostępu do systemu plików Ubuntu z poziomu Windows

Oto jak kopia czcionki powinna wyglądać po umieszczeniu w katalogu czcionek Ubuntu:

Plik czcionki AMGDT kopiowany do folderu czcionek Ubuntu i rozpoznawany przez system

Co zrobić, jeśli pojawi się komunikat Brak dostępu do folderu docelowego?

Jeśli Eksplorator plików odrzuci kopiowanie, uruchom je z powłoki root:

cd /
su root
cd /c/Users/Admin/Downloads/'AMGDT Regular'
cp 'AMGDT Regular.ttf' /usr/share/fonts
cp 'AMGDT Regular.ttf' /usr/local/share/fonts
exit
SHELL

Jak sklonować repozytoria szkoleniowe z GitHub?

Przepływ szkoleniowy zależy od trzech repozytoriów. Najpierw sklonuj obudowę tutorialu, następnie dwa główne repozytoria Tesseract wewnątrz niego, a potem stwórz folder wyjściowy:

git clone https://github.com/astutejoe/tesseract_tutorial.git
cd tesseract_tutorial
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
mkdir tesstrain/data
SHELL
  • Tesseract_tutorial zawiera skrypty Python i pliki konfiguracyjne, które kierują każdym krokiem szkolenia (generowanie tekstu, renderowanie obrazów, tworzenie par treningowych).
  • tesstrain zawiera Makefile, który napędza rzeczywiste uruchomienie szkolenia.
  • Tesseract zawiera folder tessdata z podstawowymi plikami .traineddata używanymi jako model wyjściowy do treningu niestandardowego.
  • tesstrain/data to miejsce, gdzie zatrzymują się wygenerowane pliki .box (ramki odwzorowania znaków), obrazy .tif i pośrednie punkty kontrolne LSTM.

Oto jak sekwencja klonowania powinna wyglądać w terminalu:

Terminal uruchamiający cztery polecenia git clone i tworzący folder danych tesstrain

Aby pracować z wieloma pakietami językowymi obok niestandardowego, zobacz nasz przewodnik po międzynarodowych językach.

Jak wygenerować pliki szkoleniowe?

Jak uruchomić skrypt split_training_text.py?

Z folderu Tesseract_tutorial uruchom:

python split_training_text.py
SHELL

Skrypt generuje parę .box / .tif na próbkę treningową i zapisuje je w folderze danych.

Oto jak uruchomienie skryptu powinno wyglądać podczas generowania par szkoleniowych:

Terminal uruchamiający split_training_text.py i generujący pliki .box oraz .tif w folderze data

Jak naprawić ostrzeżenie Fontconfig?

Terminal pokazujący ostrzeżenia fontconfig o brakującej czcionce Apex i błędy pustego katalogu czcionek

Jeśli pojawi się ostrzeżenie Ostrzeżenie fontconfig: '/tmp/fonts.co/nf, wiersz 4: ignorowana pusta nazwa katalogu czcionek', fontconfig nie może rozwiązać katalogów czcionek. Popraw to, edytując tesseract_tutorial/fonts.co/nf:

<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>
<!-- the following element will be removed in the future -->
<dir>~/.fonts</dir>
XML

Skopiuj to do /etc/fonts:

cp fonts.co/nf /etc/fonts
SHELL

Następnie wskaż split_training_text.py na tę samą ścieżkę:

fontconf_dir = '/etc/fonts'
Python

Ile plików szkoleniowych powinienem wygenerować?

Domyślnie skrypt generuje 100 par szkoleniowych. Zmień licznik blisko góry split_training_text.py:

Kod Python ustawiający count=100 i wycinający tablicę linii, aby ograniczyć rozmiar danych treningowych

Wytyczne dotyczące rozmiaru:

  • 100-500 próbek wystarczy, aby potwierdzić, że przepływ działa.
  • 1000-5000 próbek to zakres roboczy dla dokładności produkcyjnej.
  • Tekst szkoleniowy powinien obejmować każdy znak, który twoja czcionka ma rozpoznawać, idealnie kilkukrotnie.
  • Więcej próbek oznacza więcej czasu szkolenia; wybierz najmniejszą liczbę, która osiąga twój cel dokładności.

Skąd pobrać plik eng.traineddata?

Pobierz eng.traineddata z repozytorium tessdata_best i umieść go w Tesseract_tutorial/tesseract/tessdata.

Bazowy model zapewnia trenerowi kontekst językowy (które sekwencje znaków tworzą prawdopodobne słowa), więc dokładność jest znacznie lepsza niż przy treningu od podstaw. Wybierz model bazowy w tym samym języku co twój tekst szkoleniowy. Jeśli napotkasz problemy, zobacz przewodnik dotyczący niestandardowych pakietów języka OCR.

Jak zbudować mój niestandardowy plik wytrenowanych danych czcionki?

Z folderu tesstrain uruchom:

TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
SHELL
  • MODEL_NAME to nazwa twojej niestandardowej czcionki (używana dla nazwy pliku wyjściowego).
  • START_MODEL to bazowy .traineddata, który pobrałeś powyżej.
  • MAX_ITERATIONS ogranicza przebieg szkolenia; wyższe wartości zwykle zmniejszają wskaźnik błędu.

Co zrobić, jeśli w pliku Makefile pojawia się komunikat "Failed to Read Data"?

Aby rozwiązać błędy 'Failed to read data', załaduj plik Makefile:

WORDLIST_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-word-dawg
NUMBERS_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-number-dawg
PUNC_FILE := $(OUTPUT_DIR2)/$(MODEL_NAME).lstm-punc-dawg
Text

Poprawka wskazuje na rzeczywisty katalog wyjściowy, aby Makefile mógł zlokalizować pliki słownika.

Jak naprawić błąd "Failed to Load Script Unicharset"?

Pobierz Latin.unicharset z langdata_lstm i umieść go w tesstrain/data/langdata.

Plik .unicharset definiuje, które znaki trener może emitować. Użyj pliku, który obejmuje każdy znak w twojej czcionce, na przykład Cyrillic.unicharset dla czcionek cyrylicznych lub Devanagari.unicharset dla Dewanagari.

Oto, jak powinien wyglądać udany przebieg treningu, gdy tesstrain produkuje plik .traineddata:

Potok kompilacji tesstrain przechodzący przez iteracje treningowe i generujący plik AMGDT.traineddata

Jak zweryfikować dokładność mojego pliku wytrenowanych danych?

Z 1000 plikami .box i .tif oraz 3000 iteracjami treningowymi, wyjściowy AMGDT.traineddata osiąga wskaźnik błędów treningowych (BCER) około 5,77%.

Dziennik szkolenia Tesseract pokazujący poprawę BCER z 6,388% do 5,771% w iteracjach 2194-2298

Aby przetestować wytrenowany model z IronOCR, wskaż UseCustomTesseractLanguageFile na plik i przeczytaj przykładowy obraz:

using IronOcr;

// Load the trained model; AutoOsd handles orientation
var ocr = new IronTesseract();
ocr.UseCustomTesseractLanguageFile("path/to/AMGDT.traineddata");
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Preprocess so the model sees clean glyphs
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");
input.EnhanceResolution(300);
input.DeNoise();

// Confidence reflects training quality
var result = ocr.Read(input);
Console.WriteLine($"Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");

Właściwość Confidence to wynik na dokument; jeśli pozostaje niski nawet na czystych danych wejściowych, najczęstsze przyczyny to zbyt mała liczba próbek szkoleniowych lub model bazowy, który nie pasuje do skryptu. Po zweryfikowaniu twojego .traineddata, zobacz nasz przewodnik niestandardowy język dla ogólnego przepływu pracy ładowania dowolnego pliku niestandardowej językowej.

Jakie są kluczowe wnioski z treningu niestandardowej czcionki?

Trenowanie czcionki niestandardowej to jednorazowa konfiguracja: generuj pary .box / .tif z docelowej czcionki, zbuduj model .traineddata z tesstrain, a następnie załaduj go przez UseCustomTesseractLanguageFile. Od tego momentu IronOCR czyta obrazy z nowym modelem dokładnie tak, jak czyta standardowe angielskie.

Kluczowe zalety korzystania z IronOCR z niestandardowym modelem Tesseract:

  • Wykorzystuje standardowe artefakty Tesseract: dowolny plik .traineddata, który możesz zbudować za pomocą tesstrain, działa w IronOCR bez konwersji.
  • Wyjście na różnych platformach: szkolenie wymaga Linux (lub WSL2), ale przeszkolony plik jest dostarczany z aplikacją na Windows, macOS, Linux, i Docker.
  • Bezproblemowo z resztą API: połącz niestandardowe czcionki z wieloma językami pomocniczymi, poprawą jakości obrazu i dostrajaniem DPI bez zmiany ścieżki rozpoznawania.
  • Regulowana dokładność: wskaźnik błędu to funkcja prób szkoleniowych pomnożona przez iteracje. Oba pokrętła są ujawnione (liczba próbek skryptu plus MAX_ITERATIONS), abyś mógł dostosować kompromis pomiędzy czasem treningu a BCER, nie opuszczając Tesseract.

Dla większych przepływów roboczych, rozważ śledzenie postępu i przetwarzanie asynchroniczne, stosując przeszkolony model w wielu dokumentach.

Często Zadawane Pytania

Jak używać pliku niestandardowo przeszkolonej czcionki w C#?

Możesz używać swojego pliku czcionki Tesseract przeszkolonego niestandardowo w IronOCR za pomocą kilku linijek kodu. Po prostu stwórz instancję IronTesseract, wywołaj UseCustomTesseractLanguageFile() ze ścieżką do swojego pliku .traineddata, a następnie użyj metody Read(), aby wykonać OCR na obrazach zawierających twoją specjalną czcionkę.

Jakie są wymagania dla trenowania niestandardowych czcionek dla OCR?

Trenowanie niestandardowych czcionek wymaga środowiska Linux (WSL2 z Ubuntu jest zalecane dla użytkowników Windows), zainstalowanego Tesseract 5 wraz z bibliotekami deweloperskimi oraz pliku czcionki, którą chcesz trenować (w formacie .ttf lub .otf). Wynikowe pliki .traineddata stworzone w Linuxie działają bezproblemowo z IronOCR na wszystkich platformach.

Dlaczego warto trenować niestandardowe czcionki zamiast używać standardowego OCR?

Trenowanie niestandardowych czcionek poprawia dokładność OCR dla specyficznych czcionek, szczególnie dekoracyjnych lub specjalnych, które znacznie różnią się od standardowych modeli Tesseract. IronOCR może wtedy używać tych przeszkolonych plików czcionek, aby dokładnie rozpoznawać tekst na obrazach zawierających te unikalne czcionki, które w przeciwnym razie byłyby trudne do odczytania z użyciem standardowych modeli OCR.

Czy mogę używać niestandardowo przeszkolonych czcionek na różnych platformach?

Tak, mimo że proces trenowania wymaga Linuxa, wynikowe pliki .traineddata działają bezproblemowo na wszystkich platformach z IronOCR. To oznacza, że można trenować raz na Linuxie i używać przeszkolonego pliku danych na Windows, macOS czy wdrożeniach Linuxowych.

Jaka metoda instalacji jest zalecana na początek?

Dla szybkiej konfiguracji możesz pobrać plik DLL IronOCR bezpośrednio lub zainstalować przez Menedżer Pakietów NuGet. Zalecane jest użycie NuGet, ponieważ automatycznie zarządza zależnościami i ułatwia aktualizacje. IronOCR zapewnia kompleksowe wsparcie dla funkcji Tesseract 5 i niestandardowych implementacji językowych.

Can I deploy my custom-trained Tesseract model on multiple platforms?

Yes, once trained on a Linux environment, the `.traineddata` file is portable and can be used in applications running on Windows, macOS, Linux, and Docker.

What accuracy can I expect from a custom-trained font model in IronOCR?

The accuracy depends on training samples and iterations during the training process. More samples and iterations generally enhance accuracy, and IronOCR provides confidence scores to evaluate the model.

How can I troubleshoot 'Failed to Read Data' errors during training?

This error can often be resolved by patching the Makefile to correctly point it toward the output directory for dictionary files.

What is the role of the `eng.traineddata` file in custom font training?

`eng.traineddata` serves as the base language model providing linguistic context, which improves the accuracy of the custom-trained font over models built entirely from scratch.

What should I do if I encounter permission issues copying font files during setup?

If you receive a 'Destination Folder Access Denied' message, perform the file copy operation from a root shell in the terminal to ensure proper permissions.

Gotowy, aby rozpocząć?

Nuget Downloads 6,236,385Wersja:2026.9właśnie wydany

Odbierz swój BEZPŁATNY

30-dniowy klucz próbny natychmiast.

bullet_checkedNie wymaga karty kredytowej ani tworzenia konta
test_punktorówTestuj w produkcji
bez znaków wodnych
kalendarz_punktorów30 dni w pełni
funkcjonalny produkt
wsparcie_punktorów24/5 wsparcie techniczne
w trakcie okresu próbnego
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta
Biblioteka C# NuGet dla plików PDF
Zainstaluj za pomocą NuGet

Wersja: 2026.9

PM > Install-Package IronOcr
nuget.org/packages/IronOcr/
  1. W Eksploratorze Rozwiązań, kliknij prawym przyciskiem Myszy na Odwołania, Zarządzaj pakietami NuGet
  2. Wybierz Przeglądaj i szukaj „IronOCR”
  3. Wybierz pakiet i zainstaluj
DLL PDF dla C#
Pobierz DLL

Wersja: 2026.9

lub pobierz Instalator Windows tutaj.

  1. Pobierz i rozpakuj IronOCR do lokalizacji, takiej jak ~/Libs w katalogu Solution
  2. W Eksploratorze rozwiązań Visual Studio kliknij prawym przyciskiem myszy Odwołania. Wybierz Przeglądaj, „IronOCR.dll”

Licencje od 749 USD

Key in blue circle

Uzyskaj natychmiast swój darmowy 30-dniowy Klucz Testowy.

Your trial license will be sent to your email address

Brak ograniczeń. 100% dostępności. Bez karty kredytowej.

bullet_checkedNie wymaga karty kredytowej ani tworzenia kontaBrak ograniczeń. 100% dostępności. Bez karty kredytowej.
  • Logo Aetna
  • Logo NASA
  • Logo GE
  • Logo Porsche
  • Logo USDA
  • Logo Qatar
Join Millions of Engineers who’ve tried IronPDF
Otrzymaj swoją Konsultację Bez Zobowiązań
Wypełnij poniższy formularz lub wyślij e-mail na sales@ironsoftware.com
Twoje dane zawsze będą utrzymywane w tajemnicy.
Zaufane przez miliony inżynierów na całym świecie
Logotypy klientów Iron Software
Otrzymaj swój darmowy Klucz Próbny na 30 dni natychmiast.
Nie wymaga karty kredytowej ani tworzenia konta