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 kendiniz eğitmek ve her yerde çalıştırabileceğiniz tek bir .traineddata eseri üretmektir.

Bu kılavuz, C#'ta baştan sona özel Tesseract 5 font eğitimi gerçekleştirir: WSL2 Ubuntu araç zincirini kurun, .box ve .tif eğitim dosyalarınızı .ttf veya .otf dosyalarından oluşturun, bir taban eng.traineddata tabanına karşı tesstrain ile .traineddata modelini oluşturun, ardından sonucu IronOCR'de 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

IronOCR yapılandırmak için UseCustomTesseractLanguageFile 'i eğitilmiş .traineddata dosyasına yönlendirin ve ardından herhangi bir görüntü üzerindeki Read işlevini, standart dil paketinde yaptığınız gibi kullanı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ıktan sonra, elde edilen .traineddata dosyası IronOCR uygulamanızla beraber Windows, macOS, Linux veya Docker'da dağıtılır. 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ımayı çalıştıran motordur; libtesseract-dev, bir model oluşturmak için tesstrain'in ihtiyaç duyduğu başlıkları açar. 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 öğreticide, AMGDT fontu .ttf veya .otf formatında kullanılır.

Windows Dosya Gezgini, indirilen AMGDT Regular.ttf font dosyasını kırmızı kutuda vurgulayarak eğitim için gösteriyor

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.
  • Eğer .traineddata uygulamanızla dağıtılacaksa, fontun lisansının yeniden dağıtıma izin verdiğini onaylayı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/<letter> 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, File Explorer'ın adres çubuğuna \wsl$ yazarak Ubuntu dosya sistemini Windows'tan göz atmak ve ardından .ttf 'ı sürüklemektir.

Windows'tan Ubuntu dosya sistemine erişmek için \\wsl$ ağ yolunu gösteren Windows Dosya Gezgini

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

AMGDT yazı tipi dosyasının Ubuntu yazı tipleri klasörüne kopyalanması ve sistem tarafından tanınması

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, üretilen .box dosyalarının (karakter sınırlama kutuları), .tif görüntülerinin ve ara LSTM kontrol noktalarının yer aldığı yerdir.

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

Dört git clone komutunu çalıştıran ve tesstrain data klasörünü oluşturan terminal

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

split_training_text.py'yi çalıştıran ve data klasöründe .box ve .tif dosyaları oluşturan terminal

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

Dizin fontconfig hataları gösteren terminal ekranı, eksik Apex font ve boş font dizini hataları

Fontconfig uyarısı: "/tmp/fonts.co/nf, satır 4: boş font dizini adı yoksayılmış" uyarısı alırsanız, fontconfig font dizinlerini çözümlenemiyor. Bunu tesseract_tutorial/fonts.co/nf dosyasını 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.co/nf /etc/fonts
cp fonts.co/nf /etc/fonts
SHELL

Sonra split_training_text.py 'ı 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 'un üst kısmındaki sayıyı değiştirin:

Python kodu count=100 ayarlayarak lines dizisini kestirip eğitim verisi boyutunu sınırlıyor

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?

tessdata_best deposundan eng.traineddata dosyasını indirin ve Tesseract_tutorial/tesseract/tessdata içine 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 baz .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ğiticinin hangi karakterleri yaymasına izin verildiğini tanımlar. Fontunuzdaki her karakteri kapsayan dosyayı kullanın, örneğin Kiril alfabeleri için Cyrillic.unicharset veya Devanagari için Devanagari.unicharset.

Başarılı bir eğitim işleminin, tesstrain'in .traineddata dosyasını üretirken nasıl görünmesi gerektiği:

Eğitim yinelemeleri boyunca çalışan ve AMGDT.traineddata dosyasını üreten tesstrain derleme hattı

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

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

Tesseract eğitim günlüğü, BCER'nin 2194-2298 iterasyonlarında %6,388'den %5,771'e iyileştiğini gösteriyor

IronOCR ile eğitilen modeli test etmek için UseCustomTesseractLanguageFile 'yi dosyaya yönlendirin ve örnek bir görüntü okuyun:

:path=/static-assets/ocr/content-code-examples/how-to/ocr-custom-font-training-13.cs
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. Sizin .traineddata doğrulandığında, özel dil kılavuzumuza giderek herhangi bir özel dil dosyasını yükleme genel iş akışımızı görün.

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

Özel bir font eğitimi bir kerelik bir işlemdir: hedef fontunuzdan .box / .tif çiftleri oluşturun, tesstrain ile bir .traineddata modeli oluşturun, ardından UseCustomTesseractLanguageFile ile 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 eserlerini yeniden kullanır: tesstrain ile oluşturabileceğiniz herhangi bir .traineddata dosyası, IronOCR'de dönüşüm yapmadan ç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 (komut dosyasının örnek sayısı artı MAX_ITERATIONS) açığa çıkmaktadır, böylece Tesseract'a bağımlı kalmadan 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 6,136,090 | Sürüm: 2026.7 yeni yayınlandı
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.