Tesseract 5 ile C# dilinde Özel Bir Font Nasıl Eğitilir
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.
-
IronOCR aşağıdaki NuGet Paket Yöneticisi ile yükleyin
PM > Install-Package IronOcr -
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; -
Canlı ortamınızda test için dağıtım yapın
Ücretsiz deneme ile bugün projenizde IronOCR kullanmaya başlayın
Asgari İş Akışı (5 adım)
- Özel eğitimli fontlarla okumak için IronOCR'u NuGet üzerinden indirin
- WSL2 Ubuntu üzerine Tesseract 5'i yükleyin ve
tesstraineğitim depolarını klonlayın - Hedef fontunuz için
split_training_text.pyile eğitim dosyaları oluşturun - Özel
.traineddatadosyanızıtesstrainve bir temel dil modeli kullanarak oluşturun - IronOCR'de
UseCustomTesseractLanguageFileile eğitilmiş dosyayı yükleyin veRead'ı çağırın
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.
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
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 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.
.traineddatauygulamanı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
WSL2, her Windows sürücüsünü /mnt/
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.

İşte font kopyası Ubuntu font dizininde yer aldığında nasıl göründüğünü görebilirsiniz:
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
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
- 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
.traineddatadosyalarını içeren tessdata klasörünü içerir. - tesstrain/data, oluşturulan
.boxdosyaları (karakter sınırlayıcı kutuları),.tifgörüntüleri ve ara LSTM kontrol noktalarının depolandığı yerdir.
İşte klon dizisinin terminalde nasıl görünmesi gerektiği:
Ö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
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:
Fontconfig Uyarısını Nasıl Düzeltirim?

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>
/etc/fonts dizinine kopyalayın:
cp fonts.conf /etc/fonts
cp fonts.conf /etc/fonts
Ardından split_training_text.py öğesini aynı yola yönlendirin:
fontconf_dir = '/etc/fonts'
fontconf_dir = '/etc/fonts'
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:

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
- MODEL_NAME, özel yazı tipinizin adıdır (çıkış dosyası adı için kullanılır).
- START_MODEL, yukarıda indirdiğiniz temel
.traineddatadosyası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:
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.

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
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
.traineddatadosyası, 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.

