- Verimli tarama için çoklu dil desteği ve çıktı formatları.
- Kolay entegrasyon Python (Pytesseract) ve .NET ekosistemi.
- IronOCR, Tesseract'a ön işleme ve üst düzey API'ler getiriyor.
Karmaşık araçlarla uğraşmadan görüntüleri veya PDF'leri düzenlenebilir metne dönüştürmek veya Windows 11'de görüntülerden metin çıkarmakla ilgileniyorsanız , iyi haber şu ki Tesseract OCR güçlü, ücretsiz ve son derece esnek bir çözümdür . Bu pratik kılavuz, Tesseract OCR'nin ne olduğunu, Windows'a nasıl kurulacağını , komut satırından nasıl doğrulanacağını ve hem Python (Pytesseract aracılığıyla) hem de .NET ile nasıl entegre edileceğini, ayrıca bu ekosistemde yaygın olarak kullanılan bir alternatif olan IronOCR'yi ele almaktadır.
Sadece kurulumu yapıp düğmeye tıklamanın ötesinde, ortamınızı nasıl kuracağınızı, yürütülebilir dosya yolunu nereye ekleyeceğinizi, yaygın Python hatası olan TesseractNotFoundError ile karşılaşırsanız ne yapacağınızı ve uygulamalar içinde birden fazla dilde (İspanyolca, İngilizce, Fransızca, Portekizce ve hatta Matematik gibi paketler) metin işlemeyi öğreneceksiniz. Amaç, komut satırından C# ve belirli kütüphaneleri kullanmaya kadar her şeyi kapsayan , istikrarlı ve üretime hazır bir OCR iş akışına sahip olmanızı sağlamaktır .
Tesseract OCR nedir?
Tesseract, Apache 2.0 lisansı altında yayınlanan açık kaynaklı bir OCR motorudur . 80'lerde Hewlett-Packard'da ortaya çıkmış ve şu anda Google'ın güçlü desteğiyle topluluk tarafından sürdürülmektedir . Misyonu açıktır: bir görüntüdeki (TIFF, PNG, JPEG ve diğerleri) pikselleri analiz ederek karakterleri, kelimeleri ve satırları tespit etmek ve içeriği makine tarafından okunabilir metne dönüştürmek.
Komut satırından serbestçe kullanılabilmesi, otomasyonu ve betik oluşturmayı kolaylaştırır. Ayrıca, çok sayıda dili destekler ve yeni yazı tipleri veya alfabeler için eğitilebilir ; bu da onu belge dijitalleştirme, fatura işleme, arşivleme ve erişilebilirlik uygulamalarında yaygın hale getirir.
Tesseract'ı Windows'a indirin ve yükleyin
Windows'ta en doğrudan yol, önceden derlenmiş bir yükleyici kullanmaktır. Birincil kaynak , imzalı ikili dosyaları ve en son sürümleri bulabileceğiniz GitHub'daki resmi depodur (tesseract-ocr/tesseract).
Mevcut yükleyiciler arasında, tesseract-ocr-w64-setup-5.3.0.20221222.exe (64-bit) gibi paketler sıklıkla göreceksiniz . İndirin ve çalıştırın ; kurulum sihirbazı, yükleyici dili ve dil paketleri de dahil olmak üzere, kurulum adımlarını adım adım size gösterecektir.
Yükleyici dili ve dil verileri
Kurulum sırasında, sihirbaz sizden dilinizi seçmenizi isteyecektir. İngilizce genellikle varsayılan dildir, ancak gerekirse İspanyolca, Fransızca gibi ek dil paketleri veya Matematik gibi özel modüller de ekleyebilirsiniz . Bu seçim, hangi modellerin veri dizinine (tessdata) kopyalanacağını belirler.
Lisans, kullanıcılar ve bileşenler
Tesseract, Apache Lisansı 2.0 altında dağıtılmaktadır , bu nedenle onu esnek bir şekilde kullanabilir ve yeniden dağıtabilirsiniz. Kurulum programı sizden lisansı kabul etmenizi, tek kullanıcı için mi yoksa herkes için mi kuracağınızı seçmenizi ve bileşenleri seçmenizi isteyecektir. ScrollView, eğitim araçları, kısayollar ve dil verileri gibi kullanışlı öğeler varsayılan olarak seçilidir.
Kurulum yolu ve Başlat menüsü klasörü
Sihirbaz, hedef klasörü seçmenize olanak tanıyacak. Bu yolu not edin; ortam değişkeni için buna ihtiyacınız olacak . Daha sonra, kısayolların oluşturulacağı Başlangıç Menüsü klasörüne bir ad verebilirsiniz. İşlem tamamlandığında, Yükle'ye tıklayın ve işlem bittiğinde, kapatmak için Bitir'e tıklayın.
Windows'ta ortam değişkenine Tesseract ekleyin
Tesseract komutunu herhangi bir komut istemi veya PowerShell penceresinden çalıştırmak için, kurulum klasörünü sistem yoluna eklemeniz önerilir . Bu sayede Windows, mutlak yollara ihtiyaç duymadan yürütülebilir dosyayı nerede bulacağını bilecektir.
Başlat menüsündeki arama çubuğuna "ortam değişkenleri" veya "gelişmiş sistem ayarları" yazın. Sistem Özellikleri penceresinde, Gelişmiş sekmesine gidin ve Ortam Değişkenleri'ne tıklayın.
Sistem değişkenleri bölümünde, Yol'u seçin , Düzenle'ye ve ardından Yeni'ye tıklayın. Tesseract'ın kurulu olduğu yolu yapıştırın (örneğin, C:\Program Files\Tesseract-OCR) ve tüm pencerelerde Tamam'ı tıklayarak onaylayın.
Kurulumu konsoldan kontrol edin
Komut İstemi veya PowerShell'i açın ve şunu çalıştırın: tesseract . Her şey yolundaysa, kullanım mesajını, yüklü sürümü ve yardımcı program tarafından desteklenen seçeneklerin listesini göreceksiniz. Bu test, yolun doğru olduğunu ve ikili dosyanın çalıştığını doğrular.
Tesseract'ı macOS'a yükleyin
macOS'ta, yardımcı programı paket yöneticilerinden yükleyebilirsiniz. Homebrew kullanıyorsanız, `brew install tesseract` komutunu çalıştırın . MacPorts kullanıyorsanız, eşdeğer komut `sudo port install tesseract` şeklindedir . Her iki yöntem de yürütülebilir dosyayı indirir ve Terminal'den kullanım için kaydeder.
Tesseract ve Pytesseract arasındaki farklar
Kavramları birbirinden ayırmak önemlidir: Tesseract, optik karakter tanıma (OCR) motorudur , yani tanıma işlemini gerçekleştiren ikili dosyadır. Pytesseract ise bu motoru çağıran ve çıktıyı komut dosyalarınız için biçimlendiren bir Python sarmalayıcısıdır . Python ile çalışacaksanız, sisteminizde Tesseract'ın ve ortamınızda Pytesseract'ın kurulu olması gerekir.
Python ile temel kullanım ve TesseractNotFoundError'a çözüm
Python'a yeni başlayanlar için en yaygın hatalardan biri TesseractNotFoundError'dur . Bu hata, Pytesseract'ın motorun çalıştırılabilir dosyasını bulamaması durumunda ortaya çıkar; genellikle bunun nedeni dosyanın PATH'te olmaması veya betikte yolunun yapılandırılmamış olmasıdır.
Windows'ta bunu önlemek için, yürütülebilir dosyayı işaret ederek kodunuzda yolu açıkça belirtebilirsiniz. Pytesseract ile minimal bir örnek :
import pytesseract
from PIL import Image
# Ajusta esta ruta a tu instalación real en Windows
pytesseract.pytesseract.tesseract_cmd = r'C:\\Program Files\\Tesseract-OCR\\tesseract.exe'
texto = pytesseract.image_to_string(Image.open('mi_imagen.png'), lang='spa')
print(texto)
Ayrıca, ihtiyacınız olan dil paketinin (örneğin, İspanyolca için spa ) mevcut olduğundan emin olun. Değilse, traineddata'yı doğru tessdata dizinine yükleyin. Bu , Python ile çalışmaya başlarken karşılaşılan çoğu sorunu çözmelidir .
Çok Dilli OCR: Kavramlar ve Uygulama
Çok dilli dokümantasyon içeren projelerde (faturalar, sözleşmeler veya tarihi kayıtlar), Tesseract, heterojen metinlerle uğraşırken tespit performansını artırmak için dilleri birleştirmenize olanak tanır . Bunun için gerekli olan, tessdata klasöründe uygun .traineddata dosyalarının bulunmasıdır.
Örneğin, İngilizce, İspanyolca ve Fransızca gibi farklı dillerin bir arada bulunduğu içeriklerde, motorun birden fazla alfabe ve kalıbı aynı anda dikkate almasını sağlayabilirsiniz . Bu durum, .NET'teki IronOCR gibi üst düzey kütüphaneler için de geçerlidir.
Visual Studio'da bir proje oluşturun ve Tesseract.NET'i kullanın
Microsoft ortamında çalışıyorsanız, Visual Studio'yu açın ve bir Konsol Uygulaması (veya tercih ettiğiniz şablonu) oluşturun. Projeye bir ad verin, .NET sürümünü seçin ve çözüm oluşturulduktan sonra NuGet ile paketleri yönetebilirsiniz.
Tesseract'ı bilgisayarınıza kurun (açıklandığı gibi) ve NuGet Paket Yöneticisi'ni kullanarak Tesseract veya Tesseract.NET paketini projenize ekleyin . Bu, C#'tan motorla etkileşim kurmak için gerekli sarmalayıcıyı ekler.
Birden fazla dil içeren bir görüntüyü okumanın bir örneği, tessdata'nın yolunu ve dil listesini belirterek şu şekilde olabilir :
using System;
using System.Drawing;
using Tesseract;
class Program
{
static void Main()
{
// Ruta a los archivos de datos de idioma (.traineddata)
string tessDataPath = @"./tessdata";
// Imagen a procesar
string imagePath = @"ruta_a_tu_imagen.png";
using (var img = Pix.LoadFromFile(imagePath))
using (var engine = new TesseractEngine(tessDataPath, "eng+spa+fra", EngineMode.Default))
using (var page = engine.Process(img))
{
string text = page.GetText();
Console.WriteLine("Recognized Text:");
Console.WriteLine(text);
}
}
}
Tessdata klasörünün, belirttiğiniz her dil için .traineddata dosyalarını içerdiğinden emin olun . Test için yaygın bir set eng+spa+fra'dır, ancak gerektiğinde genişletebilirsiniz.
IronOCR: Tesseract tabanlı .NET kitaplığı
.NET ekosisteminde, Tesseract tabanlı ancak yüksek seviyeli bir API, kapsamlı dokümantasyon ve ön işleme yardımcı programları sunan, üretkenliğe yönelik bir seçenek olan IronOCR bulunmaktadır. Bu, Visual Studio'da paket tarayıcısı kullanılarak NuGet'ten yüklenir.
Görüntüden metin okumak için temel kullanımı oldukça basittir. Basit bir örnek :
using IronOcr;
var ocr = new IronTesseract();
string texto = ocr.Read(@"test-files/redacted-employmentapp.png").Text;
Console.WriteLine(texto);
Giriş üzerinde daha fazla kontrol sahibi olmak isterseniz (birden fazla resim, ayarlar vb.), bir OcrInput oluşturup bunu motora iletebilirsiniz. Örnek olarak, `using` kalıbını kullanarak şu şekilde gösterebilirsiniz :
using IronOcr;
var Ocr = new IronTesseract();
using (var Input = new OcrInput())
{
Input.AddImage("test-files/redacted-employmentapp.png");
var Result = Ocr.Read(Input);
Console.WriteLine(Result.Text);
}
En önemli avantajlarından biri, IronOCR'ın 120'den fazla dili desteklemesi , otomatik algılama özelliğini entegre etmesi ve görüntü temizleme, gürültü azaltma ve yapaylık düzeltme yardımcı programları eklemesidir; bu da pratikte zorlu belgelerde doğruluğu artırır.
IronOCR'ı NuGet ve dil paketleriyle yükleyin
Çözümünüze eklemek için Visual Studio'yu açın ve Araçlar > NuGet Paket Yöneticisi > Çözüm için Paketleri Yönet yolunu izleyin. "IronOCR" araması yapın ve ana paketi seçin . Ek dillerle çalışmayı planlıyorsanız, gerekli dil paketlerini de yükleyin.
Çok dilli projelerde, İngilizce'nin genellikle varsayılan olarak mevcut olduğunu, ancak İspanyolca veya Fransızca için ilgili paketleri eklemeniz gerektiğini unutmayın . Bu, motorun Dil özelliğini yapılandırırken size zaman kazandıracaktır.
IronOCR (C#) ile Çoklu Dil Okuma
Aşağıdaki örnek, üç dili birleştirerek bir görüntüyü nasıl işleyebileceğinizi göstermektedir. Bu, hangi dilin hangi belgede baskın olduğundan emin olmadığınız durumlarda doğal bir yapılandırmadır:
using IronOcr;
class Program
{
static void Main(string[] args)
{
var Ocr = new IronTesseract();
Ocr.Language = OcrLanguage.English + OcrLanguage.Spanish + OcrLanguage.French;
var inputFile = @"ruta\\a\\tu\\imagen.png";
using (var input = new OcrInput(inputFile))
{
var result = Ocr.Read(input);
Console.WriteLine("Text:");
Console.WriteLine(result.Text);
}
}
}
Basit API'sinin yanı sıra, IronOCR, genellikle düzensiz aydınlatmaya sahip taranmış belgeler veya fotoğraflarla daha fazla başarı sağlayan görüntü ön işleme (eğim düzeltme, ikili hale getirme, kenar temizleme) özelliklerini içermesiyle de öne çıkıyor.
IronOCR'nin "saf" Tesseract'a kıyasla avantajları ve değerlendirmeleri
Tesseract ücretsiz ve son derece esnek olsa da, IronOCR dokümantasyon, örnekler ve kurumsal kullanıma hazır özellikleriyle daha basit bir .NET deneyimi sunuyor . Kurumsal kaynaklar, ideal koşullar altında yaklaşık %99,8 tespit doğruluğunun yanı sıra çoklu iş parçacığı desteği ve aktif bakım hizmeti sağladığını belirtiyor.
Entegrasyon açısından da daha kullanıcı dostudur (minimal kurulum, örnek projeler ve tutarlı API'ler), aynı belge içinde karmaşık ve çok dilli destek de dahil olmak üzere 120'den fazla dili destekler. Öte yandan, IronOCR tescilli bir yazılımdır ve ömür boyu lisans ve 7/24 müşteri desteği seçenekleriyle ücretlidir.
OCR doğruluğunu artırmak için en iyi uygulamalar
Motor güçlü olsa da, sonuçlar büyük ölçüde görüntü kalitesine bağlıdır. Yüksek çözünürlükler kullanmaya, gürültü ve bozulmaları önlemeye , belgeyi doğru şekilde hizalamaya ve kontrastı iyileştirmeye çalışın. Fotoğraflarla çalışıyorsanız, OCR çalıştırmadan önce aydınlatmaya dikkat edin ve eğimleri düzeltin.
"Saf" Tesseract ile iyi sonuçlar elde etmek için görüntüleri normalleştirmek veya ön filtreler uygulamak gerekebilir. IronOCR gibi araçlar, bu ön işlemenin büyük bir kısmını otomatikleştirerek , zorlu senaryolarda temiz metin elde etmeyi kolaylaştırır.
Üretebileceğiniz çıktılar ve biçimler
Tesseract, düz metne ek olarak HTML/hOCR çıktısı veya seçilebilir metin içeren PDF'ler de üretebilir . Bu, belgeler içindeki metin parçacıklarını indeksleme, arama ve vurgulama veya arama özelliğinin önemli olduğu dijital arşivleme iş akışlarına entegre etme olanağı sağlar.
Tesseract, düz metne ek olarak, seçilebilir metin içeren HTML/hOCR veya PDF formatında çıktı üretebilir; bu da PDF'leri Word'e dönüştürmeyi ve düzenlemeye devam etmeyi kolaylaştırır.
Özel entegrasyonlarda, sonucu işleyebilir , yazım hatalarını düzeltebilir veya varlıkları zenginleştirmek için doğal dil işleme (NLP) modelleri uygulayabilir, şekilleri normalleştirebilir ve içeriği veritabanları veya analitik araçlar için hazırlayabilirsiniz.
Windows'ta Rehberli Kurulum: Sihirbazın Önemli Noktaları
Kurulum sihirbazının hızlı bir kontrol listesi şöyledir: yükleyici dilini seçin, Apache 2.0 lisansını kabul edin, kurulumun sizin için mi yoksa tüm kullanıcılar için mi olduğuna karar verin ve önerilen bileşenleri (ScrollView, eğitim araçları, kısayollar ve dil verileri) etkin bırakın.
Hedef klasörü seçin (yol dosyasına kopyalamayı unutmayın), gerekirse Başlangıç Menüsü klasörüne bir ad verin ve Yükle'ye tıklayın. İşlem tamamlandığında, her şeyin bilgisayarınızda doğru çalıştığından emin olmak için konsolda "tesseract" komutuyla doğrulama yapın .
Önceden derlenmiş paketler ve dil seçimiyle kurulum
GitHub'dan indirdiğinizde, farklı mimariler için çeşitli yükleyiciler ve derlemeler göreceksiniz. Sisteminiz destekliyorsa 64 bit sürümünü seçin . Kurulum sihirbazı, belirli dilleri seçmenize olanak tanır; daha sonra aramak zorunda kalmamak için kullanacağınız dilleri (İspanyolca, Portekizce, Fransızca, Matematik vb.) yüklemeniz iyi bir fikirdir .
Daha sonra başka dillere genişletmeniz gerekirse, bu dillerin .traineddata dosyalarını tessdata klasörüne ekleyebilirsiniz. Modülerlik, motorun güçlü yönlerinden biridir ve farklı alanlara uyum sağlamasına olanak tanır.
Genel olarak bayt ve teknoloji dünyası hakkında tutkulu bir yazar. Bilgilerimi yazarak paylaşmayı seviyorum ve bu blogda da bunu yapacağım; size gadget'lar, yazılım, donanım, teknolojik trendler ve daha fazlasıyla ilgili en ilginç şeyleri göstereceğim. Amacım dijital dünyada basit ve eğlenceli bir şekilde gezinmenize yardımcı olmaktır.