C# Tesseract 5 için Özel Yazı Tipi Eğitimi Nasıl Yapılır

Tesseract 5 ile C# dilinde Özel Bir Font Nasıl Eğitilir

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

Varsayılan Tesseract İngilizce modeli, birçok gerçek dünya girdilerini yanlış okur: hastane el yazısı başvuru formları, eski kitap sayısallaştırmaları, bir oyun stüdyosunun özel dekoratif yazı tipi veya bir genel OCR motorunun hiç görmediği sektör spesifik semboller. Çözüm, Tesseract'ı tam olarak bu yazı tipiyle kendiniz eğitmek ve IronOCR'nin çalıştığı her yere gönderebileceğiniz tek bir .traineddata artefaktı oluşturmaktır.

Bu kılavuz, C#'da Tesseract 5 özel yazı tipi eğitiminin baştan sona nasıl yapıldığını anlatır: WSL2 Ubuntu araç zincirini kurun, .box ve .tif eğitim dosyalarını .ttf veya .otf'dan .ttf veya @@-CODE-559--@@'a işleyin, temel eng.traineddata'ye karşı tesstrain ile .traineddata modelini oluşturun, ardından sonucu IronOCR'ye yükleyin. Eğitim tamamlandıktan sonra, dosya Windows, macOS, Linux ve Docker üzerinde taşınabilirdir.

Hızlı Başlangıç: Eğitilmiş Font Dosyanızı C#'te Kullanın

UseCustomTesseractLanguageFile öğesini eğitilmiş .traineddata dosyanıza yönlendirerek IronOCR'yi yapılandırın, ardından stok dil paketinde olduğu gibi herhangi bir görüntü üzerinde Read öğesini çağırın.

  1. IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçacığını kopyalayın ve çalıştırın.

    using IronOcr;
    
    var ocr = new IronTesseract();
    ocr.UseCustomTesseractLanguageFile("path/to/YourCustomFont.traineddata");
    string text = ocr.Read(new OcrInput("image-with-special-font.png")).Text;
  3. Canlı ortamınızda test için dağıtım yapın

    Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın

    arrow pointer

Eğitim Ortamını Nasıl Kurarım?

IronOCR'u Nasıl Yüklerim?

IronOCR'u NuGet 'ten yükleyin:

Install-Package IronOcr

DLL paketi, NuGet kullanamıyorsanız manuel bir alternatiftir. Altyapı motoru için, Tesseract 5 özellik kılavuzu ve özel dil referansına bakın.

WSL2 ve Ubuntu'yu Nasıl Yükler ve Kurarım?

WSL2 ve Ubuntu Kurma eğitimine bakın.

Lütfen dikkate alınÖzel yazı tipi eğitimi Linux gerektirir.

WSL2 yeterlidir: eğitim tamamlandığında, ortaya çıkan .traineddata dosyası Windows, macOS, Linux veya Docker'da IronOCR uygulamanızla birlikte gönderilir. Yerleşim ayrıntıları için Linux yerleşim kılavuzuna bakın.

Ubuntu'ya Tesseract 5 Nasıl Yüklerim?

Tesseract 5'i kurmak için bu komutları kullanın:

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

tesseract-ocr paketi, tanıma işlemini yürüten motordur; libtesseract-dev, tesstrain'in bir model oluşturmak için ihtiyaç duyduğu başlıkları ortaya çıkarır. Eğitilmiş dosyanız kullanımda olduğunda, Tesseract yapılandırma kılavuzu, çalışma zamanı ayarı ile ilgilidir.

Fontu Eğitime Nasıl Hazırlarım?

Hangi Fontu İndirmeliyim?

Bu eğitimde .ttf veya .otf biçiminde AMGDT yazı tipi kullanılmaktadır.

Eğitim amacıyla kırmızı kutuyla vurgulanan indirilmiş AMGDT Regular.ttf yazı tipi dosyasını gösteren Windows Dosya Gezgini

Eğitim için bir font seçerken:

  • Varsayılan İngilizce modelin zaten yanlış okuduğu fontları seçin. Zaten tanınan bir fontu eğitmek zaman kaybıdır.
  • .traineddata uygulamanızla birlikte gönderilecekse, yazı tipinin lisansının yeniden dağıtımına izin verdiğini doğrulayın.
  • Dekoratif, el yazısı ve sektöre özel fontlar (tıbbi, hukuk, kartografik) eğitimden en fazla doğruluğu kazanır.
  • Eğitim örneklerini, üretimde gerçekten ne göreceğinden eşleştirin, çözünürlük ve aydınlatma dahil.

Disk Sürücüsünü Nasıl Montajlarım?

Çalışma alanınız olarak D: sürücüsünü montajlayın:

cd /
cd /mnt/d
cd /
cd /mnt/d
SHELL

WSL2, her Windows sürücüsünü /mnt/ altında montajlar, böylece Windows üzerinde dosyaları düzenleyebilir ve aynı oturumda bunlara karşı eğitim komutları çalıştırabilirsiniz.

Font Dosyasını Ubuntu Font Klasörüne Nasıl Kopyalarım?

Tesseract fontunuzdaki örnek metni sunar ve eğitim görüntüleri oluşturur, bu yüzden fontun sadece Windows'ta değil, Linux tarafında kurulmuş olması gerekiyor. Font dosyasını hem Ubuntu font dizinlerine: /usr/share/fonts ve /usr/local/share/fonts kopyalayın. En basit yol, Windows'tan Ubuntu dosya sistemine göz atmak için Dosya Gezgini'nin adres çubuğuna \wsl$ yazmak, ardından .ttf öğesini sürüklemektir.

Windows File Explorer showing \\wsl$ network path for accessing Ubuntu filesystem from Windows

İşte font kopyası Ubuntu font dizininde yer aldığında nasıl göründüğünü görebilirsiniz:

AMGDT font file being copied into the Ubuntu fonts folder and recognized by the system

Hedef Klasör Erişimi Engellendi Hatası Alırsam Ne Yaparım?

Dosya Gezgini kopyalamayı reddederse, bunun yerine bir root shell'den çalıştırın:

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
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

Eğitim Depolarını GitHub'dan Nasıl Klonlarım?

Eğitim hattı üç depoya bağlıdır. Önce öğretici sarmalayıcıyı klonlayın, ardından içinde iki üst veri Tesseract deposunu ve çıktı klasörünü oluşturun:

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
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, her eğitim adımını (metin üretimi, resim işleme, eğitim çifti oluşturma) yönlendiren Python komut dosyalarını ve yapılandırma dosyalarını paketler.
  • tesstrain, gerçek eğitimi yürüten Makefile'ı içerir.
  • Tesseract, özel eğitim için başlangıç modeli olarak kullanılan stok .traineddata dosyalarını içeren tessdata klasörünü içerir.
  • tesstrain/data, oluşturulan .box dosyaları (karakter sınırlayıcı kutuları), .tif görüntüleri ve ara LSTM kontrol noktalarının depolandığı yerdir.

İşte klon dizisinin terminalde nasıl görünmesi gerektiği:

Terminal running the four git clone commands and creating the tesstrain data folder

Özel olanla birlikte birden fazla dil paketiyle çalışmak için uluslararası diller kılavuzumuzna bakın.

Eğitim Dosyalarını Nasıl Oluştururum?

split_training_text.py Komut Dosyasını Nasıl Çalıştırırım?

Tesseract_tutorial klasöründen çalıştırın:

python split_training_text.py
python split_training_text.py
SHELL

Komut dosyası, her eğitim örneği için bir .box / .tif çifti oluşturur ve bunları veri klasörüne yazar.

İşte eğitim çiftlerini oluştururken komut dosyasının çalışmasının nasıl görünmesi gerektiği:

Terminal running split_training_text.py and generating .box and .tif files in the data folder

Fontconfig Uyarısını Nasıl Düzeltirim?

Terminal, eksik Apex yazı tipi ve boş yazı tipi dizini hataları hakkında fontconfig uyarılarını gösteriyor

Fontconfig uyarısı: "/tmp/fonts.conf, satır 4: boş font dizini adı yoksayılmış" uyarısı alırsanız, fontconfig font dizinlerini çözümlenemiyor. tesseract_tutorial/fonts.conf'yi düzenleyerek düzeltin:

<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>

<dir>~/.fonts</dir>
<dir>/usr/share/fonts</dir>
<dir>/usr/local/share/fonts</dir>
<dir prefix="xdg">fonts</dir>

<dir>~/.fonts</dir>
XML

/etc/fonts dizinine kopyalayın:

cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
SHELL

Ardından split_training_text.py öğesini aynı yola yönlendirin:

fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
PYTHON

Kaç Eğitim Dosyası Oluşturmalıyım?

Varsayılan olarak, script 100 eğitim çifti oluşturur. split_training_text.py'nin üst kısmındaki sayıyı değiştirin:

Eğitim verisi boyutunu sınırlamak için count=100 ayarını yapan ve satır dizisini dilimleyen Python kodu

Boyutlandırma kılavuzu:

  • 100-500 numune, hattın uçtan uca çalıştığını doğrulamak için yeterlidir.
  • 1000-5000 numune, üretim doğruluğu için çalışma aralığıdır.
  • Eğitim metni, yazı tipinizin tanıması gereken her karakteri, ideal olarak birkaç kez içermelidir.
  • Daha fazla numune, daha fazla eğitim süresi demektir; doğruluk hedefinizi vuran en küçük sayıyı seçin.

eng.traineddata Dosyasını Nereden İndirebilirim?

eng.traineddata dosyasını tessdata_best deposundan indirin ve Tesseract_tutorial/tesseract/tessdata klasörüne yerleştirin.

Temel model, eğiticiye dilbilimsel bağlam verir (hangi karakter dizilerinin mantıklı kelimeler oluşturduğunu), bu nedenle doğruluk, sıfırdan eğitimden çok daha iyidir. Eğitim metninizle aynı dilde bir temel model seçin. özel OCR dil paketleri sorun giderme kılavuzuna bakınız.

Özel Yazı Tipi Eğitimi Verilerini Nasıl Oluşturabilirim?

tesstrain klasöründen çalıştırın:

TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
TESSDATA_PREFIX=../tesseract/tessdata make training MODEL_NAME=AMGDT START_MODEL=eng TESSDATA=../tesseract/tessdata MAX_ITERATIONS=100
SHELL
  • MODEL_NAME, özel yazı tipinizin adıdır (çıkış dosyası adı için kullanılır).
  • START_MODEL, yukarıda indirdiğiniz temel .traineddata dosyasıdır.
  • MAX_ITERATIONS, eğitim çalışmasını sınırlandırır; daha yüksek değerler genellikle hata oranını azaltır.

Eğer Makefile İle 'Veri Okuma Başarısız Oldu' Hatasını Alırsam Ne Yapmalıyım?

"Veriler okunamadı" hatalarını gidermek için Makefile'ı yamalayın:

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

Yama, Makefile'ı gerçek çıkış dizinine yönlendirir, böylece sözlük dosyalarını bulabilir.

'Unicharset Betiğini Yükleme Başarısız Oldu' Hatasını Nasıl Düzeltirim?

langdata_lstm'den Latin.unicharset dosyasını indirin ve tesstrain/data/langdata klasörüne yerleştirin.

.unicharset dosyası, eğitmenin hangi karakterleri verebileceğini tanımlar. Yazı tipinizdeki her karakteri kapsayan dosyayı kullanın; örneğin, Kiril yazı tipleri için Cyrillic.unicharset veya Devanagari için Devanagari.unicharset.

tesstrain .traineddata dosyasını oluştururken başarılı bir eğitim çalışması şöyle görünmelidir:

tesstrain build pipeline running through training iterations and emitting the AMGDT.traineddata file

Eğitim Verileri Dosyamın Doğruluğunu Nasıl Doğrulayabilirim?

1000 .box ve .tif dosyası ve 3000 eğitim yinelemesi ile, çıktı AMGDT.traineddata yaklaşık %5,77'lik bir eğitim hata oranına (BCER) ulaşır.

2194-2298 yinelemeleri arasında BCER'nin %6,388'den %5,771'e yükseldiğini gösteren Tesseract eğitim günlüğü

IronOCR ile eğitilmiş modeli test etmek için, UseCustomTesseractLanguageFile dosyasını işaret edin ve örnek bir görüntüyü okuyun:

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}%");
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}%");
Imports IronOcr

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

' Preprocess so the model sees clean glyphs
Using input As New OcrInput()
    input.LoadImage("test-image-with-amgdt-font.png")
    input.EnhanceResolution(300)
    input.DeNoise()

    ' Confidence reflects training quality
    Dim result = ocr.Read(input)
    Console.WriteLine($"Text: {result.Text}")
    Console.WriteLine($"Confidence: {result.Confidence}%")
End Using
$vbLabelText   $csharpLabel

Confidence özelliği, belge başına puandır; temiz girdilerde bile düşük kalırsa en yaygın nedenler çok az eğitim numunesi veya betikle uyuşmayan bir temel modeldir. .traineddata onaylandıktan sonra, herhangi bir özel dil dosyasını yüklemenin genel iş akışı için özel dil kılavuzumuza bakın.

Özel Yazı Tipi Eğitimi İçin Ana Bilgiler Nelerdir?

Özel bir yazı tipini eğitmek tek seferlik bir kurulumdur: hedef yazı tipinizden .box / .tif çiftleri oluşturun, tesstrain ile bir .traineddata modeli oluşturun, ardından bunu UseCustomTesseractLanguageFile aracılığıyla yükleyin. Buradan, IronOCR, görüntüleri yeni modelle tam olarak İngilizce standart modelle okuduğu şekilde okur.

IronOCR'u özel bir Tesseract modeliyle kullanmanın temel avantajları:

  • Standart Tesseract öğelerini yeniden kullanır: tesstrain ile oluşturabileceğiniz herhangi bir .traineddata dosyası, dönüştürmeye gerek kalmadan IronOCR'da çalışır.
  • Çapraz platform çıktısı: Eğitim Linux (veya WSL2) gerektirir, ancak eğitilmiş dosya uygulamanızla birlikte Windows, macOS, Linux ve Docker'a gönderilir.
  • API'nin geri kalanıyla tak çalıştır: özel yazı tiplerini birden çok ikincil dille, görüntü kalitesi düzeltmesiyle ve DPI ayarlarıyla birleştirin tanıma yolunu değiştirmeden.
  • Ayarlanabilir doğruluk: hata oranı eğitim numuneleri zamanına iterasyonları işlevidir. Her iki düğme de görünür durumdadır (komut dosyasının örnek sayısı Plus MAX_ITERATIONS), böylece Tesseract'tan çıkmadan eğitim süresi ile BCER arasındaki dengeyi ayarlayabilirsiniz.

Daha büyük boru hatları için, eğitilmiş modelinizin birçok belge boyunca uygulanması sırasında ilerleme takibi ve asenkron işlem değerlendirin.

Sıkça Sorulan Sorular

C#'ta özel eğitilmiş yazı tipi dosyasını nasıl kullanırım?

Özel eğitilmiş Tesseract yazı tipi dosyanızı IronOCR'de birkaç satır kodla kullanabilirsiniz. Basitçe bir IronTesseract örneği oluşturun, UseCustomTesseractLanguageFile() ile .traineddata dosyanızın yolunu verin ve ardından görüntülerinizdeki özel yazı tipini içeren metni çıkarmak için Read() yöntemini kullanın.

OCR için özel yazı tiplerini eğitmek için hangi gereksinimler vardır?

Özel yazı tipi eğitimi, bir Linux ortamı gerektirir (Windows kullanıcıları için WSL2 ile Ubuntu önerilir), geliştirici kütüphaneleri ile kurulu Tesseract 5 ve eğitmek istediğiniz yazı tipi dosyası (ya .ttf ya da .otf formatı). Linux içinde oluşturulan .traineddata dosyaları, tüm platformlarda IronOCR ile sorunsuz çalışır.

Neden standart OCR yerine özel yazı tiplerini eğitmeliyim?

Özel yazı tiplerinin eğitimi, özellikle dekoratif veya standart Tesseract modellerinden önemli ölçüde farklı özel yazı tipleri için OCR doğruluğunu artırır. IronOCR, daha sonra bu eğitilmiş yazı tipi dosyalarını kullanarak, standart OCR modelleriyle okunması zor olabilecek bu özel yazı tiplerini içeren metni doğru bir şekilde tanıyabilir.

Özel eğitilmiş yazı tiplerini farklı platformlarda kullanabilir miyim?

Evet, eğitim süreci Linux gerektirirken, elde edilen .traineddata dosyaları, IronOCR ile tüm platformlarda sorunsuz çalışır. Bu, bir kez Linux üzerinde eğitim yapıp, eğitim verisi dosyasını Windows, macOS veya Linux dağıtımlarında kullanabileceğiniz anlamına gelir.

Başlamadan önce önerilen kurulum yöntemi nedir?

Hızlı bir kurulum için IronOCR DLL'sini doğrudan indirebilir veya NuGet Paket Yöneticisi aracılığıyla yükleyebilirsiniz. NuGet, bağımlılıkları otomatik olarak yönetir ve güncellemeleri daha kolay hale getirir. IronOCR, Tesseract 5 özellikleri ve özel dil uygulamaları için kapsamlı destek sunar.

IronOCR birden fazla dili destekliyor mu?

IronOCR, birden çok dili destekler ve farklı dillerde metin tanımaya ihtiyaç duyan global uygulamalar için çok yönlü bir araçtır.

IronOCR mevcut uygulamalara entegre edilebilir mi?

IronOCR, C# kullanarak mevcut uygulamalara kolayca entegre edecek şekilde tasarlanmıştır, bu sayede geliştiriciler, yazılımlarına minimal çabayla OCR işlevselliği ekleyebilir.

IronOCR'yi belge yönetimi için kullanmanın faydaları nelerdir?

IronOCR'yi belge yönetimi için kullanmak, taranmış belgeleri aranabilir ve düzenlenebilir metne dönüştürerek iş akışını hızlandırır, manuel veri giriş ihtiyacını azaltır ve belge erişilebilirliğini artırır.

IronOCR veri doğruluğunu nasıl artırabilir?

IronOCR, gelişmiş tanıma algoritmaları ve görüntü düzeltme özellikleriyle veri doğruluğunu artırır, böylece metin çıkarım sürecinin hem güvenilir hem de kesin olmasını sağlar.

IronOCR için ücretsiz bir deneme mevcut mu?

Evet, Iron Software, IronOCR'nin özelliklerini ve yeteneklerini, bir satın alma kararı vermeden önce test edebilmek için ücretsiz bir deneme sunar.

Kannaopat Udonpant
Yazılım Mühendisi
Yazılım Mühendisi olmadan önce, Kannapat, Japonya'daki Hokkaido Üniversitesi'nde Çevresel Kaynaklar alanında bir doktora tamamladı. Derecesini takip ederken, Biyoproduksiyon Mühendisliği Bölümünün bir parçası olan Araç Robotik Laboratuvarı'nın bir üyesi oldu. 2022'de C# becerilerini kullanarak Iron Software'in mühendislik ...
Daha Fazla Oku
Gözden Geçiren
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluğu Ekibi
Jeff, .NET ve Visual Studio ekipleri için bir Baş Program Yöneticisidir. .NET Conf sanal konferans serisinin baş yapımcısıdır ve haftada iki kez canlı yayınlanan 'Fritz and Friends' adlı bir akış programı sunar; burada izleyicilerle birlikte teknoloji konuşur ve kod yazar. Jeff, en büyük Microsoft geliştirici etkinlikleri için atölyeler, sunumlar ve içerik planları yazar, Microsoft Build, Microsoft Ignite, .NET Conf ve Microsoft MVP Summit gibi etkinliklerde yer alır.
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,896,332 | Sürüm: 2026.5 just released
Still Scrolling Icon

Hâlâ Kaydırıyor Musunuz?

Hızlıca kanıt ister misiniz? PM > Install-Package IronOcr
örnek çalıştır görüntünüzün aranabilir metin haline gelmesini izleyin.