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

Windows Geliştiricileri için Tesseract 5'te C# Özel Yazı Tipi Eğitimi

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

Tesseract 5'te özel yazı tipi eğitimi, belirli yazı tipleri için OCR doğruluğunu artırır. Bu süreç, motorun yazı tipi özelliklerini öğreten eğitim verileri oluşturur. Oluşan .traineddata dosyası, dekoratif veya özel fontları doğru şekilde tanımak için IronOCR ile çalışır.

Hızlı Başlangıç: .traineddata Yazı Tipi Dosyanızı C# içinde Kullanma

Özel eğitilmiş Tesseract yazı tipi dosyanızı IronOCR içinde sadece birkaç satırla kullanın. Özel veya dekoratif yazı tiplerinde doğru OCR için mükemmel.

  1. NuGet Paket Yöneticisi ile https://www.nuget.org/packages/IronOcr yükleyin

    PM > Install-Package IronOcr
  2. Bu kod parçasını kopyalayıp çalıştırın.

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

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

    arrow pointer

IronOcr'un En Son Sürümünü Nasıl İndiririm?

Hangi Kurulum Yöntemini Kullanmalıyım?

IronOcr DLL dosyasını doğrudan makinenize indirin.

Bunun Yerine Neden NuGet Kullanmalısınız?

Alternatif olarak, NuGet üzerinden şu komutla kurabilirsiniz:

Install-Package IronOcr

IronOCR, Tesseract 5 özellikleri ve özel dil uygulamaları için kapsamlı destek sağlar ve bu da onu özel OCR gereksinimleri için ideal kılar.


WSL2 ve Ubuntu Nasıl Kurulur ve Ayarlanır?

WSL2 ve Ubuntu kurulumu konusundaki eğiticiye başvurun.

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

Eğitim Linux gerektirir, ancak oluşan .traineddata dosyaları tüm platformlarda sorunsuz çalışır. Ayrıntılı Linux kurulum talimatları için, Linux dağıtım kılavuzumuza bakın.

Ubuntu'ya Tesseract 5 Nasıl Kurulur?

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

Bu paketler, eğitim için gerekli olan çekirdek Tesseract OCR motorunu ve geliştirme kütüphanelerini sağlar. Gelişmiş Tesseract yapılandırma seçenekleri için, detaylı yapılandırma kılavuzumuza başvurun.

Eğitim için Hangi Yazı Tipini İndirmeliyim?

Bu öğretici AMGDT yazı tipini kullanır. Yazı tipi dosyası ya .ttf ya da .otf olabilir. Windows Dosya Gezgini'nde kırmızı kutuda işaretlenmiş AMGDT Regular.ttf font dosyasını eğitmek için indirildiğini gösteriyor

Eğitim için yazı tiplerini seçerken:

  • Standart Tesseract modellerinden önemli ölçüde farklı yazı tiplerini seçin
  • Yazı tipinin lisanslamasını doğru yapın
  • Dekoratif, el yazısı veya özel endüstri yazı tiplerini düşünün
  • Uygulamanızın üretimde karşılaştığı yazı tipleri ile test yapın

Özel Yazı Tipi Eğitimi İçin Disk Sürücüsünü Nasıl Montelerim?

Çalışma alanınız olarak Drive D:'i bağlamak için bu komutları kullanın:

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

Bu, dosyalarınızı Windows sürücülerinde saklayarak Ubuntu'nun WSL2 ortamıyla doğrudan çalışmanıza olanak tanır.

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

Font dosyasını şu Ubuntu dizinlerine kopyalayın: /usr/share/fonts ve /usr/local/share/fonts.

Dosya gezgininin adres çubuğuna \\wsl$ yazarak Ubuntu'daki dosyalara erişin.

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

Hedef Klasör Erişimi Reddedildi Ne Yapmalıyım?

Erişimi reddedildi hatalarını alırsanız, dosyaları kopyalamak için komut satırını kullanı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

Yazı tipi kurulumu eğitim süreci için hayati önem taşır. Sistem, eğitim görüntüleri üretirken yazı tipini oluşturmak için erişim gerektirir.

GitHub'dan tesseract_tutorial nasıl klonlanırım?

tesseract_tutorial deposunu bu komutu kullanarak klonlayın:

git clone https://github.com/astutejoe/tesseract_tutorial.git
git clone https://github.com/astutejoe/tesseract_tutorial.git
SHELL

Bu depo, eğitim süreci için gerekli Python komut dosyalarını ve yapılandırma dosyalarını içerir. Komut dosyaları yazı tipi eğitimindeki birçok manuel adımı otomatikleştirir.

GitHub'dan tesstrain ve tesseract nasıl klonlanır?

tesseract_tutorial dizinine gidin, ardından tesstrain ve tesseract depolarını klonlayın:

git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
git clone https://github.com/tesseract-ocr/tesstrain
git clone https://github.com/tesseract-ocr/tesseract
SHELL
  • tesstrain, .traineddata dosyasını oluşturmak için kullanılan Makefile dosyasını içerir
  • tesseract, özel font eğitimi sırasında referans olarak kullanılan orijinal .traineddata dosyalarının bulunduğu tessdata klasörünü içerir

Birden fazla dil paketi ve özel eğitim verileri ile çalışmak hakkında daha fazla bilgi için, uluslararası diller kılavuzumuza bakın.

Çıktıları Saklamak İçin "data" Klasörünü Nasıl Oluştururum?

tesseract_tutorial/tesstrain içinde bir veri klasörü oluşturun:

mkdir tesseract_tutorial/tesstrain/data
mkdir tesseract_tutorial/tesstrain/data
SHELL

Bu klasör, oluşturulan tüm eğitim dosyalarını, .box, .tif ve ara eğitim eserleri dahil olmak üzere saklar.

split_training_text.py nasıl çalıştırırım?

tesseract_tutorial klasörüne dönün ve bu komutu çalıştırın:

python split_training_text.py
python split_training_text.py
SHELL

split_training_text.py çalıştırdıktan sonra veri klasöründe .box ve .tif dosyalarını oluşturur.

Fontconfig Uyarılarını Nasıl Düzeltebilirim?

Terminal, eksik Apex fontuna dair fontconfig uyarılarını ve boş font dizini hatalarını gösteriyor Eğer Fontconfig warning: "/tmp/fonts.conf, line 4: empty font directory name ignored" uyarısı görürseniz, bu eksik font dizinlerini belirtir. Bunu tesseract_tutorial/fonts.conf dosyasını düzenleyip ekleme yaparak 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

Bunu /etc/fonts ile kopyalayın:

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

Ayrıca split_training_text.py'i güncelleyin:

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

Kaç Eğitim Dosyası Üretmeliyim?

Mevcut yapılandırma 100 eğitim dosyası üretir. Bunu split_training_text.py içinde değiştirebilirsiniz.

Python kodunda count=100 ayarlanıyor ve eğitim veri boyutunu sınırlamak için lines dizisi dilimleniyor

Üretim kalitesinde eğitim için:

  • Test etmek için 100-500 numune ile başlayın
  • Daha iyi doğruluk için 1000-5000 numune kullanın
  • Gereken tüm karakterleri kapsayan çeşitli metin örnekleri dahil edin
  • Eğitim süresini doğruluk gereksinimleri ile dengeleyin

eng.traineddata nereden indiririm?

eng.traineddata'u bu depodan indirip tesseract_tutorial/tesseract/tessdata içine yerleştirin.

Temel model, doğruluk oranını iyileştiren dilbilimsel bağlam sağlar. Hedef dilinizi karşılayan bir temel model seçin. Özel dil paketi sorunlarıyla ilgili sorun gidermek için, özel OCR dil paketleri kılavuzumuzu danışın.

Kendi özel font .traineddata nasıl oluştururum?

tesstrain klasörüne gidin ve WSL2'de bu komutu kullanı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 sizin özel font adınızdır
  • START_MODEL, orijinal .traineddata referansıdır
  • MAX_ITERATIONS, iterasyon sayısını belirtir (daha fazla iterasyon doğruluğu artırır)

Makefile'de "Veriler Okunamadı" Hatasını Nasıl Çözerim?

Bu hatayı çözmek için, Makefile'ı düzenleyin:

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

Bu düzenleme, Makefile'ın dosyaları doğru çıktı dizini yapısında aramasını sağlar.

"Unicharset Betiği Yüklenemedi" Hatasını Nasıl Düzeltirim?

Latin.unicharset'i tesstrain/data/langdata klasörüne ekleyin. Latin.unicharset'i buradan bulun.

Unicharset dosyası, diliniz veya betiminiz için karakter setini tanımlar. Yazı tipinizin karakter kapsama alanı ile eşleştiğinden emin olun.

Oluşturulan .traineddata'in doğruluğunu nasıl doğrularım?

1000 .box ve .tif dosyası ve 3000 eğitim iterasyonuyla, çıktı AMGDT.traineddata yaklaşık olarak %5.77 oranında minimum eğitim hata oranı (BCER) sağlar.

Tesseract eğitim günlüğü, BCER gelişimini 2194-2298 iterasyonları arasında %6.388'den %5.771'e gösteriyor

Eğitilen modelinizi IronOCR ile test etmek için:

using IronOcr;

// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();

// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");

// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");

// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();

// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
using IronOcr;

// Initialize IronOCR with custom trained data
var ocr = new IronTesseract();

// Load your custom trained font
ocr.UseCustomTesseractLanguageFile(@"path\to\AMGDT.traineddata");

// Configure for optimal results
ocr.Configuration.BlackListCharacters = "";
ocr.Configuration.WhiteListCharacters = "";
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd;

// Process an image with your custom font
using var input = new OcrInput();
input.LoadImage("test-image-with-amgdt-font.png");

// Optional: Apply filters if needed
input.EnhanceResolution(300);
input.DeNoise();

// Perform OCR
var result = ocr.Read(input);
Console.WriteLine($"Recognized Text: {result.Text}");
Console.WriteLine($"Confidence: {result.Confidence}%");
Imports IronOcr

' Initialize IronOCR with custom trained data
Dim ocr As New IronTesseract()

' Load your custom trained font
ocr.UseCustomTesseractLanguageFile("path\to\AMGDT.traineddata")

' Configure for optimal results
ocr.Configuration.BlackListCharacters = ""
ocr.Configuration.WhiteListCharacters = ""
ocr.Configuration.PageSegmentationMode = TesseractPageSegmentationMode.AutoOsd

' Process an image with your custom font
Using input As New OcrInput()
    input.LoadImage("test-image-with-amgdt-font.png")

    ' Optional: Apply filters if needed
    input.EnhanceResolution(300)
    input.DeNoise()

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

Üretim uygulamalarında özel yazı tiplerinin uygulanması için, özel dil dosyalarının kullanımı hakkında kılavuzumuzu inceleyin.

Daha fazla okuma ve referans için, eğiticiye bakın: YouTube Videosu

Sıkça Sorulan Sorular

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

Özel eğitilmiş Tesseract yazı tipi dosyanızı IronOCR ile sadece birkaç satır kod kullanarak kullanabilirsiniz. Basitçe bir IronTesseract örneği oluşturun, .traineddata dosyanızın yolunu kullanarak UseCustomTesseractLanguageFile() yöntemini çağırın ve ardından Read() yöntemini kullanarak özel yazı tipinizi içeren görüntülerde OCR gerçekleştirin.

OCR için özel yazı tiplerini eğitmenin gereksinimleri nelerdir?

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

Standart OCR yerine neden özel yazı tiplerini eğitmeliyim?

Özel yazı tiplerini eğitmek, özellikle dekoratif veya standart Tesseract modellerinden önemli ölçüde farklı özel yazı tiplerinde OCR doğruluğunu artırır. IronOCR, bu eğitilmiş yazı tipi dosyalarını, standart OCR modelleriyle okunması zor olan bu benzersiz yazı tiplerini içeren görüntülerde metni doğru bir şekilde tanımak için kullanabilir.

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

Evet, eğitim süreci Linux gerektirse de, oluşturulan .traineddata dosyaları tüm platformlarda IronOCR ile sorunsuz çalışır. Bu, bir kez Linux'ta eğitilerek Windows, macOS veya Linux dağıtımlarında eğitilmiş veri dosyasını kullanabileceğiniz anlamına gelir.

Başlamak için hangi yükleme yöntemi önerilir?

Hızlı kurulum için IronOCR DLL'sini doğrudan indirebilir veya NuGet Paket Yöneticisi üzerinden yükleyebilirsiniz. NuGet, bağımlılıkları otomatik olarak yönettiği ve güncellemeleri kolaylaştırdığı için önerilir. IronOCR, Tesseract 5 özellikleri ve özel dil uygulamaları için kapsamlı destek sağlar.

Kannaopat Udonpant
Yazılım Mühendisi
Yazılım Mühendisi olmadan önce, Kannapat Japonya'daki Hokkaido Üniversitesi'nden Çevresel Kaynaklar alanında doktora yaptı. Derecesini tamamlarken, Biyoprodüksiyon Mühendisliği Bölümü'nün bir parçası olan Taşıt Robotik Laboratuvarı'na da üye oldu. 2022'de, Iron Software mühendislik ekibine katılmak iç...
Daha Fazlasını Oku
İnceleyen
Jeff Fritz
Jeffrey T. Fritz
Baş Program Yöneticisi - .NET Topluluk Ekibi
Jeff, aynı zamanda .NET ve Visual Studio ekipleri için Baş Program Yöneticisi'dir. Microsoft geliştirici etkinlikleri (Microsoft Build, Microsoft Ignite, .NET Conf, Microsoft MVP Summit) için atölye çalışmaları, sunumlar yazar ve içerik planlar ve haftada iki kez yayınlanan 'Fritz ve Arkadaşları' canlı yayınının ev sahibidir.
Başlamaya Hazır mısınız?
Nuget İndirmeler 5,585,834 | Sürüm: 2026.4 just released
Still Scrolling Icon

Hala Kaydiriyor musunuz?

Hızlı bir kanit mi istiyorsunuz? PM > Install-Package IronOcr
örnekleri çalıştır resminizin aranabilir metne donuşünü izleyin.