Altbilgi içeriğine atla
OCR ARAçLARı

Easyocr vs Tesseract (OCR Özellikleri Karşılaştırması)

Optik Karakter Tanıma (OCR), taranmış kağıt belgeleri, PDF dosyaları veya kamera tarafından yakalanmış yüksek çözünürlüklü görüntüleri yazılabilir ve aranabilir verilere dönüştüren teknolojidir. Çıkartılan metin özelliklerinin ve morfolojik işlemlerin tanınması, OCR'nin veri girişini otomatik hale getirmesini sağlar, bu da bilgi işleme sürecini hızlandırır ve daha doğru hale getirir.

OCR, belgeleri tarar, harfleri, sayıları veya sembolleri tanır ve makine tarafından okunabilir bir formata çevirir. Kullanım alanları arasında kitap dijitalleştirme, form işleme, belge iş akışı otomasyonu ve görme engelli kişilere erişim iyileştirmesi bulunur. Derin öğrenme ve AI'nın gelişimiyle, OCR motorları karmaşık formatları, çok dilli belgeleri ve hatta düşük kaliteli görüntüleri tanımada çok doğru hale geldi.

EasyOCR, Tesseract OCR, Keras-OCR ve IronOCR gibi popüler OCR araçları ve kütüphaneleri, bu özelliği modern uygulamalara entegre etmek için yaygın olarak kullanılmaktadır.

EasyOCR

EasyOCR, görüntülerden metin çıkarmayı basit ve verimli hale getirmeyi amaçlayan açık kaynaklı bir Python kütüphanesidir. Derin öğrenme tekniklerini kullanır ve Latin, Çince, Arapça gibi 80'den fazla dili destekler. API'si o kadar basittir ki, herkes çok fazla kurulum yapmadan uygulamalarına kolayca OCR tahmin işlevselliğini entegre edebilir. EasyOCR Tesseract ile basit belge dijitalleştirme, plaka tanıma veya bir resimden metin çıkarma işlemleri yapılabilir.

EasyOCR, özellikle çok satırlı metinler ve düşük kaliteli görüntülerle güçlü metin tanıma yetenekleri ile tanınır. Bu nedenle, yalnızca birkaç bağımlılık ile güvenilir gerçek dünya kullanım durumları için uygundur. Modern donanımda GPU'ya ihtiyaç duymadan verimli çalışır ve geliştiriciler için esnek OCR yeteneklerine ihtiyaç duyanlar için oldukça çekicidir.

EasyOCR'nin Özellikleri

EasyOCR'yi kapsamlı ve güçlü bir OCR aracı yapan birkaç özellik vardır:

  • 80'den Fazla Dili Tanıma: EasyOCR, Çince, Japonca, Korece, Arapça, Latin tabanlı diller ve karmaşık kelimeler ve diller dahil daha birçok dili okuyabilir.

  • Gelişmiş derin öğrenme tabanlı tanıma : Gürültülü veya bozuk metin düzenleri ve görüntülerde yüksek performans ve hassasiyetle gelişmiş derin öğrenme tekniklerini destekler.

  • Basit API: Bu kullanımı kolay API, kullanıcıların daha fazla yapılandırma olmaksızın bir uygulama içinde hızlı bir şekilde OCR yeteneklerine sahip olmasını sağlar.

  • Çok Satırlı Metin Algılama: Belgeler, kitaplar veya çok satırlı işaretler için kullanışlı olan boş çizgiler de dahil birden çok satırlık metni tanır.

  • Hafif : CPU'da iyi çalışır ve performansı artırmak için bir GPU'yu kullanabilir, yine de basit donanımla çalışabilir bir çözüm sunar.

  • Görüntü ön işleme : Gürültülü veya düşük çözünürlüklü görüntülerden OCR çıktılarını temizlemek için temel görüntü ön işleme araçları mevcuttur.

  • Esnek Dağıtım : Çeşitli platformlarda çalışır ve Python uygulamalarına nispeten basit bir şekilde gömülebilmesini sağlar.

Kurulum

EasyOCR, Python'un paket yöneticisi pip kullanılarak kurulabilir. Önce tüm bağımlılıkların yerine getirildiğinden emin olun. Temel bağımlılıklar, PyTorch kütüphanelerini içerir: torch ve torchvision. Bunlar, EasyOCR ile birlikte kurulabilir.

EasyOCR Kurulumu: Bir terminal veya komut satırı açın ve şu komutu girin:

pip install easyocr
pip install easyocr
SHELL

Henüz Kurulu değilse PyTorch Kurulumu (EasyOCR tarafından gereklidir): EasyOCR, PyTorch üzerinde çalışır. Ortamınıza otomatik olarak kurulmamışsa, resmi PyTorch kurulum kılavuzunu takip edin.

Kurulum tamamlandığında, EasyOCR'yi metin çıkarma görevleri için kullanmaya hazırsınız.

EasyOCR Kullanarak OCR Görüntüleme

Aşağıda, EasyOCR kullanarak bir görüntüde OCR işlemi yapmanın Python kodu örnek olarak verilmektedir.

import easyocr
import matplotlib.pyplot as plt
import cv2

# Initialize the EasyOCR reader with the English language specified
reader = easyocr.Reader(['en'])  # Specify the languages (e.g., 'en' for English)

# Load the image
image_path = 'sample_image.png'  # Path to the image
image = cv2.imread(image_path)

# Perform OCR on the image
result = reader.readtext(image_path)

# Print detected text and its bounding boxes
for (bbox, text, prob) in result:
    print(f"Detected Text: {text} (Confidence: {prob:.4f})")

# Optionally, display the image with bounding boxes around the detected text
for (bbox, text, prob) in result:
    # Unpack the bounding box
    top_left, top_right, bottom_right, bottom_left = bbox
    top_left = tuple(map(int, top_left))
    bottom_right = tuple(map(int, bottom_right))

    # Draw a rectangle around the text
    cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)

# Convert the image to RGB (since OpenCV loads images in BGR by default)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# Display the image with bounding boxes
plt.imshow(image_rgb)
plt.axis('off')
plt.show()
import easyocr
import matplotlib.pyplot as plt
import cv2

# Initialize the EasyOCR reader with the English language specified
reader = easyocr.Reader(['en'])  # Specify the languages (e.g., 'en' for English)

# Load the image
image_path = 'sample_image.png'  # Path to the image
image = cv2.imread(image_path)

# Perform OCR on the image
result = reader.readtext(image_path)

# Print detected text and its bounding boxes
for (bbox, text, prob) in result:
    print(f"Detected Text: {text} (Confidence: {prob:.4f})")

# Optionally, display the image with bounding boxes around the detected text
for (bbox, text, prob) in result:
    # Unpack the bounding box
    top_left, top_right, bottom_right, bottom_left = bbox
    top_left = tuple(map(int, top_left))
    bottom_right = tuple(map(int, bottom_right))

    # Draw a rectangle around the text
    cv2.rectangle(image, top_left, bottom_right, (0, 255, 0), 2)

# Convert the image to RGB (since OpenCV loads images in BGR by default)
image_rgb = cv2.cvtColor(image, cv2.COLOR_BGR2RGB)

# Display the image with bounding boxes
plt.imshow(image_rgb)
plt.axis('off')
plt.show()
PYTHON

Aşağıdaki resim, yukarıdaki koddan üretilen çıktıdır.

EasyOCR vs Tesseract (OCR Özellikleri Karşılaştırması): Şekil 3 - EasyOCR Çıkışı

Tesseract

Tesseract, birçok hiperparametre seçeneği ile özelleştirme destekleyen en popüler açık kaynaklı optik karakter tanıma motorlarından biridir. Tesseract, Python uygulamalarında pytesseract kullanılarak erişilebilir. Tesseract'ın gelişimi Hewlett-Packard tarafından başlatılmış ve daha sonra Google tarafından geliştirilmiştir. Her biri 100'den fazla dilde metin çıkartma yeteneğine sahip çok yönlü bir motordur. Python sarıcı, pytesseract ile Tesseract ile sorunsuz etkileşimi sağlar.

EasyOCR vs Tesseract (OCR Özellikleri Karşılaştırması): Şekil 4 - Tesseract

Tesseract, makine tarafından basılmış metni algılama ve çıkarma yeteneği ile tanınır. Birden fazla dil tanıma yetenekleri sunar, yeni yazı tiplerinin eğitimini destekler ve metin düzen analizi gerçekleştirir. Tesseract, belgeleri dijitalleştirme, fiş tarama, veri girişini otomatikleştirme ve aranabilir PDF'ler sağlama işlemlerinde yaygın olarak kullanılmaktadır. Python'da, Tesseract, OCR ile ilgili görevler üzerinde çalışan geliştiriciler için güçlü bir kombinasyon oluşturur.

Tesseract OCR'nin Özellikleri

Pytesseract'ın dikkate değer özellikleri şunlardır:

  • Çok dilli destek: Tesseract, 100'den fazla dili okuyabilir ve pytesseract, Python betikleri içinde kolay çok dilli OCR desteği sunar. Aynı zamanda, ek özel yazı tipleri ve diller için eğitim yapmaya olanak tanır, kapasitesini genişletir.

  • Görüntüden metne dönüşüm: Pytesseract, PNG, JPEG, BMP, GIF ve TIFF gibi çeşitli görüntü formatlarından metin içeriği çıkarır, farklı kaynaklardan OCR gerçekleştirme olanağı sağlar.

  • PDF'den aranabilir PDF'ye dönüşüm: Tesseract, bir PDF dosyası içindeki metni okur ve bunu aranabilir bir formata dönüştürür, kullanıcıların taranmış belgelerin içeriğini indekslemesine olanak tanır.

  • Karmaşık metin düzen tanıma: Çok sütunlu belgeler ve tablolar dahil olmak üzere karmaşık düzenleri okuyabilir ve standarda uygun olmayan formatlardan metin çıkarımını daha doğru bir şekilde gerçekleştirir.

  • Özel yapılandırma: Pytesseract üzerinden kullanıcılar, doğru tanıma modlarını veya resim özniteliklerini kullanarak Tesseract yapılandırma parametrelerini geçirerek OCR performansını ince ayar ile optimize edebilir.

  • Basit API: Pytesseract'daki basit API, geliştiricilerin Python projelerine interaktif olmayan OCR eklemelerini ve minimal kodla etkileşimde bulunmalarını kolaylaştırır.

Bu kütüphane, OCR doğruluğunu artırmak için görüntü ön işleme için OpenCV, PIL (Python Görüntü Kütüphanesi) veya NumPy gibi diğer kütüphanelerle iyi çalışır.

Kurulum

Tesseract'ı kurduktan sonra, pytesseract paketini pip kullanarak yükleyin:

pip install pytesseract
pip install pytesseract
SHELL

EasyOCR vs Tesseract (OCR Özellikleri Karşılaştırması): Şekil 5 - pytesseract

pytesseract Kullanarak OCR Görüntüleme

İşte, pytesseract kullanarak bir görüntüde OCR işlemi yapmanın Python kodu örneği:

import pytesseract
from PIL import Image

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'

# Open the image and perform OCR
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)

# Print the extracted text
print(text)
import pytesseract
from PIL import Image

# Set the path to the Tesseract executable
pytesseract.pytesseract.tesseract_cmd = r'<full_path_to_your_tesseract_executable>'

# Open the image and perform OCR
image = Image.open('sample_image.png')
text = pytesseract.image_to_string(image)

# Print the extracted text
print(text)
PYTHON

Yukarıdaki koddan üretilen çıktı aşağıda verilmiştir.

EasyOCR vs Tesseract (OCR Özellikleri Karşılaştırması): Şekil 6 - Tesseract Çıkışı

IronOCR

IronOCR, .NET geliştiricilerinin görüntüler, PDF'ler ve diğer belge formatlarından verimli bir şekilde metin çıkarmak için IronOCR'yi kullanmalarına olanak tanıyan güçlü bir Optik Karakter Tanıma kütüphanesidir. Gelişmiş algoritmalar, karmaşık düzenler veya çok dilli çevrelerde bile yüksek doğruluk sağlar ve JPEG, PNG, GIF ve TIFF formatlarını destekler. Kütüphane, görüntü çözünürlüğü veya metin yönelimi gibi parametrelerle OCR motoru sürecinin ince ayar yapılarak optimize edilmesini sağlayan yapılandırılabilir ayarlar sunar.

Görüntü ön işleme özelliği, daha iyi kalite giriş görüntülerinin daha yüksek tanıma doğruluğu sağlamasını ve çıktıda belgeleri aranabilir PDF dönüşümüne olanak tanır, bilgiye daha kolay erişim sağlar. Web uygulamalarına sorunsuz entegrasyonu ile IronOCR, çeşitli alanlarda güvenilir metin çıkarımı ve belge dijitalleştirme çözümlerini uygulamak isteyen geliştiriciler için sağlam bir seçenektir.

IronOCR'nin Özellikleri

  • Yüksek Doğruluk: Gelişmiş algoritmalar kullanarak, belgenin karmaşıklığına veya yazı tipinin kullanımına bakılmaksızın yüksek doğruluk seviyeleri sağlar.

  • Birkaç Format Desteği: Uygulamalarda esneklik sağlamak için, PDF'lerin yanı sıra JPEG, PNG, GIF ve TIFF gibi görüntü formatlarını kabul eder.

  • Çok Dilli Tanıma: Çeşitlendirilmiş dilsel bağlamlarda da doğru sonuçlar veren çok dilli OCR destekler.

  • Metin Düzeni Koruma: Ekstrakte edilen metni formatlı yapısını koruyarak orijinal belge düzenini korur.

  • Yapılandırılabilir OCR: Görüntü çözünürlüğü, metin yönelimi gibi konfigüre edilebilir parametreler sunar ve geliştiricilere belirli görüntüler için OCR performansını optimize etme olanağı tanır.

  • Görüntü Ön İşleme: Gürültü azaltma, kontrast ayarlama ve yeniden boyutlandırma gibi görüntü iyileştirme araçlarını içerir, OCR doğruluğunu artırır.

  • Aranabilir PDF Dönüşümü: Taranmış görüntüleri ve belgeleri doğrudan aranabilir PDF'lere dönüştürür, verilerin etkin yönetimini ve geri çağrılmasını kolaylaştırır.

  • Kolay Entegrasyon: Kullanıcılara kolayca OCR yeteneği ekleme imkanı sağlayarak .NET uygulamalarına doğrudan entegrasyon olanağı verir.

  • Toplu İşleme: Büyük hacimli verileri yönetmede yararlı olan aynı anda birden fazla görüntü veya belgenin işlenmesini destekler.

Kurulum

IronOCR'yi kurmak için Visual Studio'da NuGet Paket Yöneticisini açın, yeni bir proje başlatın, "IronOCR" arayın, en son sürümü seçin ve Yükle'ye tıklayın.

EasyOCR vs Tesseract (OCR Özellikleri Karşılaştırması): Şekil 7 - Fransızca dil paketini yükleme

IronOCR Kullanarak Örnek Kod

Aşağıdaki C# kodu, IronOCR kullanarak OCR işleme yapmayı gösterir.

using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add languages to the OCR engine
        Ocr.Language = OcrLanguage.English;

        // Define the path to the input image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            var result = Ocr.Read(input);

            // Display the extracted text
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
using IronOcr;

class Program
{
    static void Main(string[] args)
    {
        // Initialize IronTesseract engine
        var Ocr = new IronTesseract();

        // Add languages to the OCR engine
        Ocr.Language = OcrLanguage.English;

        // Define the path to the input image
        var inputFile = @"path\to\your\image.png";

        // Read the image and perform OCR
        using (var input = new OcrInput(inputFile))
        {
            var result = Ocr.Read(input);

            // Display the extracted text
            Console.WriteLine("Text:");
            Console.WriteLine(result.Text);
        }
    }
}
Imports IronOcr

Friend Class Program
	Shared Sub Main(ByVal args() As String)
		' Initialize IronTesseract engine
		Dim Ocr = New IronTesseract()

		' Add languages to the OCR engine
		Ocr.Language = OcrLanguage.English

		' Define the path to the input image
		Dim inputFile = "path\to\your\image.png"

		' Read the image and perform OCR
		Using input = New OcrInput(inputFile)
			Dim result = Ocr.Read(input)

			' Display the extracted text
			Console.WriteLine("Text:")
			Console.WriteLine(result.Text)
		End Using
	End Sub
End Class
$vbLabelText   $csharpLabel

Kıyaslayıcı Değerlendirme

Yüksek Doğruluk

IronOCR, Tesseract veya EasyOCR ile karşılaştırıldığında karmaşık düzenler, gürültülü görüntüler ve düşük çözünürlüklü metinlerdeki doğruluğu ile öne çıkıyor. Gürültü azaltma ve kontrast ayarları gibi yerleşik görüntü ön işleme araçları, gerçek dünya uygulamalarında yüksek doğruluğa ulaşılmasına katkı sağlar.

Çok Formatlı ve Düzen Koruma

IronOCR, çeşitli görüntü formatlarını, PDF dosyalarını ve çok sütunlu düzenleri işlerken orijinal belge yapısını ve formatını koruma konusunda mükemmel. Düzen koruma konusunun çok önemli olduğu projeler için uygundur.

Ek araçlara veya kütüphanelere ihtiyaç duymadan görüntüleri ve taranmış belgeleri doğrudan tam aranabilir PDF'lere dönüştürme yeteneği, Tesseract ve EasyOCR'e karşı bir avantaj sağlar.

IronOCR Gelişmiş Ön İşleme Sağlar

Kötü kalite görüntüler bile IronOCR'nin gelişmiş ön işleme özelliklerini kullanarak yüksek OCR doğruluğuna ulaşabilir, bu da OpenCV gibi ek kütüphanelere olan ihtiyacı azaltır ve metin çıkarma için kapsamlı bir çözüm sunar.

Yükseltilebilirlik ve Performans

Yüksek hız, kaynak açısından verimli OCR için optimize edilmiş IronOCR, büyük belge işleme görevleri için ölçeklenebilirliği destekler, bu özellik kurumsal uygulamalar için önceliklidir.

Destek ve Güncellemeler

Ticari desteği ile IronOCR, düzenli güncellemeler, hata düzeltmeleri ve özel yardım alır, bu da Tesseract ve EasyOCR gibi açık kaynaklı seçeneklerin aksine uzun vadeli güvenilirlik ve OCR'deki en son gelişmeleri sunar.

Sonuç

Önemli OCR kütüphaneleri arasında, IronOCR üstün doğruluk, kolay entegrasyon, ön işleme yetenekleri ve aranabilir PDF'lerin oluşturulması ile öne çıkmaktadır. Karmaşık düzenleri ve gürültülü görüntüleri belgelerin yapısını koruyarak ustalıkla ele alır, kutudan çıktığı gibi birkaç dili destekler. Bu özellikler, Tesseract ve EasyOCR gibi açık kaynaklı çözümlerden daha tercih edilebilir kılmaktadır.

Hem .NET hem de Python ile sorunsuz entegrasyon sağlayan IronOCR, çeşitli projelerde yüksek kaliteli OCR arayan geliştiriciler için kapsamlı bir paket olarak hizmet verir. Övgüye değer performansı, ölçeklenebilirliği ve ticari desteği göz önüne alındığında, IronOCR, küçük ve büyük ölçekli belge dijitalleştirme girişimleri için iyi bir seçimdir, güvenilir ve verimli metin tanıma sağlar.

IronOCR ve işlevleri hakkında daha fazla bilgi edinmek için belgeler sayfasını ziyaret edebilirsiniz. Iron Software ürünleri hakkında daha fazla ayrıntı için kütüphane suite sayfasına göz atın.

Curtis Chau
Teknik Yazar

Curtis Chau, Bilgisayar Bilimleri alanında Lisans Derecesine (Carleton Üniversitesi) sahip ve Node.js, TypeScript, JavaScript ve React konularında uzmanlaşmış ön uç geliştirmeyle ilgileniyor. Sezgisel ve estetik açıdan hoş kullanıcı arayüzleri oluşturma tutkunu, Curtis modern çerçevelerle çalışmayı ve iyi yapı...

Daha Fazla Oku

Iron Destek Ekibi

Haftada 5 gün, 24 saat çevrimiçiyiz.
Sohbet
E-posta
Beni Ara