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 belgeler, PDF dosyaları veya yüksek çözünürlüklü kamera görüntüleri gibi belgeleri yazdırılabilir ve aranabilir verilere dönüştüren teknolojidir. Çıkarılan metin özelliklerinin ve morfolojik işlemlerin tanınması, OCR ile veri girişini otomatikleştirir, bu da bilgi işleme sürecini hızlandırır ve daha doğru hale getirir.

OCR, belgeyi tarar, harfler, rakamlar veya semboller gibi karakterleri tanır ve bunları makine tarafından okunabilir bir formata çevirir. Kullanımları arasında kitap dijitalleştirme, form işleme, belge iş akışı otomasyonu ve görme engelli kişiler için erişilebilirliğin artırılması gibi şeyler bulunur. Derin öğrenme ve yapay zeka gelişimi ile 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 işlevselliği modern uygulamalara entegre etmek için yaygın olarak kullanılı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 teknikleri kullanır ve Latince, Çince, Arapça ve diğer birçok dil dahil olmak üzere 80'den fazla dili destekler. API'si o kadar basittir ki, herkes kolayca uygulamalarına OCR tahmin işlevselliğini entegre edebilir. EasyOCR Tesseract ile basit belge dijitalleştirme, plaka tanıma veya bir resimden metin çıkarma yapılabilir.

EasyOCR, çok satırlı metinler ve düşük kaliteli görüntüler ile tanınan güçlü metin tanıma yetenekleri ile bilinir. Bu nedenle, yalnızca birkaç bağımlılığa dayanarak gerçek dünya kullanım durumları için uygundur. Hafif ve modern donanımda GPU gerektirmeden verimli bir şekilde çalışır, bu da onu esnek OCR yeteneklerine ihtiyaç duyan geliştiriciler için oldukça çekici kılar.

EasyOCR Özellikleri

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

  • 80'den fazla dili tanır: EasyOCR, Çince, Japonca, Korece, Arapça, Latin esaslı diller ve karmaşık kelimeler ve diller de dahil olmak üzere birçok lisanı okuyabilir.

  • Gelişmiş derin öğrenme tabanlı tanıma: Yüksek performans ve hassasiyet ile gelişmiş derin öğrenme tekniklerini destekler, özellikle gürültülü veya bozulmuş metin düzenlerde ve görüntülerde.

  • Basit API: Bu kullanımı kolay API, kullanıcıların uygulama içinde hızla OCR yeteneklerini elde etmelerine olanak tanır, ek yapılandırmalar gerektirmez.

  • Çok satırlı metin algılama: Belgeler, kitaplar veya çok satırlı tabelalar için kullanışlı olan birden fazla satırı tanır.

  • Hafif: CPU üzerinde iyi çalışır ve performansı artırmak için GPU'dan yararlanabilir, ancak temel donanım ile çalışabilir.

  • Görüntü ön işleme: Gürültülü veya düşük çözünürlüklü görüntülerden gelen OCR çıktısı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 gömülmesi nispeten kolaydır.

Kurulum

EasyOCR, Python'un paket yöneticisi pip kullanılarak yüklenebilir. Öncelikle tüm bağımlılıkların karşılandığından emin olun. Temel bağımlılıklar arasında PyTorch kütüphaneleri bulunur: torch ve torchvision. EasyOCR ile birlikte bu bağımlılıklar kurulabilir:

EasyOCR'yi Kur: Bir terminal veya komut satırı açın ve komutu girin:

pip install easyocr
pip install easyocr
SHELL

PyTorch'u kur (EasyOCR tarafından gereklidir): EasyOCR, PyTorch üzerinde çalışır. Eğer ortamınızda otomatik olarak yüklenmediyse, resmi PyTorch kurulum kılavuzunu takip edin.

Yüklendikten sonra, metin çıkarma görevleri için EasyOCR kullanmaya hazır olacaksınız.

EasyOCR Kullanarak OCR Görüntüleme

EasyOCR kullanarak bir görüntüde OCR yapmak için örnek bir Python kodu aşağıda verilmiştir:

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 görüntü, yukarıdaki koddan üretilen çıktıdır.

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

Tesseract

Tesseract, özelleştirme için birçok hiperparametre seçeneği sunan popüler bir açık kaynaklı optik karakter tanıma motorlarından biridir. Python uygulamaları üzerinden pytesseract kullanarak erişilebilir. Tesseract'ın geliştirilmesi Hewlett-Packard tarafından başlatıldı ve daha sonra Google tarafından geliştirildi. 100'den fazla dilde görüntü ve PDF'lerden metin çıkarmak için oldukça esnektir. Python sarmalayıcı pytesseract ile Tesseract ile kesintisiz etkileşim sağlar.

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

Tesseract, makine baskılı metni algılama ve çıkarma becerisi ile tanınır. Çok dilli tanıma yetenekleri sunar, yeni yazı tiplerinde eğitim destekler ve metin düzeni analizi yapar. Tesseract, belgeleri dijitalleştirme, makbuz tarama, veri giriş otomasyonu ve aranabilir PDF'ler sağlama konularında yaygın olarak kullanılır. Python'da, Tesseract, OCR ile ilgili görevlerde çalışan geliştiriciler için güçlü bir kombinasyon oluşturur.

Tesseract OCR Özellikleri

Pytesseract'ın dikkat çekici özellikleri şunlardır:

  • Çok dilli destek: Tesseract, 100'den fazla dili okuyabilir ve pytesseract, Python betikleri içinde kolay çoklu dil desteği sağlar. Ayrıca, ek özel yazı tipleri ve diller için eğitim yapılmasına imkan verir.

  • 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çeriklerini çıkarır, farklı kaynaklarda OCR işlemi sağlar.

  • PDF'den aranabilir PDF'ye dönüşüm: Tesseract, bir PDF dosyasındaki metni okur ve aranabilir formata dönüştürerek taranmış belgelerin içeriklerinin indekslenmesine olanak tanır.

  • Karmaşık metin düzeni tanıma: Karmaşık düzenleri, çok sütunlu belgeleri ve tabloları okur, standart olmayan formatlardan metni daha doğru bir şekilde çıkarır.

  • Özel yapılandırma: Kullanıcılar, pytesseract aracılığıyla özel Tesseract yapılandırma parametrelerini geçerek, OCR performansını uygun tanıma modları veya görüntü nitelikleri ile ince ayar yapabilir.

  • Basit API: Pytesseract'ın basit API'si, geliştiricilerin Python projelerine minimum etkileşim koduyla OCR eklemelerini kolaylaştırır.

Bu kütüphane, OCR doğruluğunu artırmak için görüntü ön işleme amacıyla OpenCV, PIL (Python Imaging Library) veya NumPy gibi diğer kütüphaneler ile uyumlu çalışır.

Kurulum

Tesseract'ı yükledikten sonra pip kullanarak pytesseract paketini 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

Pytesseract kullanarak bir görüntüde OCR yapmak için örnek bir Python kodu aşağıda verilmiştir:

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 Çıktısı

IronOCR

IronOCR, .NET geliştiricilerinin IronOCR ile görüntüler, PDF'ler ve diğer belge formatlarından verimli şekilde metin çıkarmalarını sağlayan güçlü bir Optik Karakter Tanıma kütüphanesidir. Gelişmiş algoritmalar, karmaşık düzenler veya çok dilli ortamlarda bile yüksek doğruluk sağlar, JPEG, PNG, GIF ve TIFF formatlarını destekler. Kütüphane, OCR motoru sürecini, görüntü çözünürlüğü veya metin yönlendirme gibi parametrelerle ince ayar yapma imkanı veren yapılandırılabilir ayarlar sunar.

Görüntü ön işleme özelliği, daha iyi kalitede giriş görüntülerin daha yüksek tanıma doğruluğu sağlamasını ve daha kolay bilgi alımı için aranabilir PDF dönüşümüne olanak tanır. Web uygulamalarına sorunsuz entegrasyonu ile IronOCR, çeşitli alanlarda güvenilir metin çıkarma ve belge dijitalleştirme çözümleri uygulamak isteyen geliştiriciler için güçlü bir seçenektir.

IronOCR Özellikleri

  • Yüksek Doğruluk: Belge karmaşıklığı veya yazı tipi kullanımı fark etmeksizin metin tanımada yüksek doğruluk seviyeleri sağlar.

  • Çoklu Format Desteği: JPEG, PNG, GIF ve TIFF gibi görüntü formatlarının ek olarak PDF'leri kabul eder, uygulamalar arasında çok yönlülük sunar.

  • Çok Dilli Tanıma: Çok dilli OCR destekler, çeşitli dil bağlamlarında doğru sonuçlar verir.

  • Metin Düzeni Koruma: Orijinal belge düzenini korur, çıkarılan metnin biçimlendirilmiş yapısını muhafaza eder.

  • Yapılandırılabilir OCR: Belirli görüntüler için OCR performansını optimize etmek amacıyla, görüntü çözünürlüğü, metin yönlendirme ve daha fazlası gibi yapılandırılabilir parametreler sunar.

  • Görüntü Ön İşleme: Görüntülerin gürültü temizleme, kontrast ayarlama ve boyutlandırma gibi temel araçlarla iyileştirilmesini içerir, OCR doğruluğunu artırır.

  • Aranabilir PDF Dönüşümü: Tar (arşivlenmiş) birimleri ve belgeleri doğrudan aranabilir PDF'lere dönüştürerek etkin veri yönetimi ve alım sağlar.

  • Kolay Entegrasyon: .NET uygulamalarına kolayca OCR işlevselliği eklenmesine olanak tanır.

  • Toplu İşleme: Aynı anda birden fazla görüntü veya belgeyi işleme destekler, büyük veri hacimlerini işlemek için kullanışlıdır.

Kurulum

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

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

IronOCR Kullanarak Örnek Kod

Aşağıdaki C# kodu IronOCR kullanarak OCR işleme işlemini nasıl gerçekleştireceğinizi 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ü metinlerdeki doğruluğu ile öne çıkar. İçerdiği gürültü azaltma ve kontrast ayarlamaları gibi yerleşik görüntü ön işleme araçları, gerçek dünya uygulamalarında yüksek doğrululuğa ulaşmasına katkıda bulunur.

Çok Formatlı ve Düzen Koruma

IronOCR, çeşitli görüntü formatları, PDF dosyaları ve çok sütunlu düzenleri işlerken, orijinal belge yapısını ve formatını koruma konusunda üstünlük sağlar. Düzen korumanın hayati önem taşıdığı projeler için çok uygundur.

Resimleri ve taranmış belgeleri doğrudan, ek araçlara veya kütüphanelere ihtiyaç duymadan tamamıyla aranabilir PDF'lere dönüştürme yeteneği, onu Tesseract ve EasyOCR karşısında üstün kılar.

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

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

Ölçeklenebilirlik ve Performans

Yüksek hızlı, kaynak verimli OCR için optimize edilmiş olan IronOCR, büyük belge işleme görevleri için ölçeklenebilirliği ve kurumsal uygulamalar için önceliklidir.

Destek ve Güncellemeler

Ticari destek ile IronOCR, düzenli güncellemeler, hata düzeltmeleri ve özel yardım ile uzun vadeli güvenilirlik ve OCR'deki en son gelişmeleri sunar, bu açıdan Tesseract ve EasyOCR gibi açık kaynak seçeneklerden farklıdır.

Sonuç

Önemli OCR kütüphaneleri aleminde, IronOCR üstün doğruluğu, entegrasyon kolaylığı, ön işleme yetenekleri ve aranabilir PDF oluşturması ile öne çıkar. Karmaşık düzenleri ve gürültülü görüntüleri belge yapısını koruyarak ustalıkla işler, kutudan çıktığı anda birden çok dil desteği sunar. Bu özellikler, Tesseract ve EasyOCR gibi açık kaynak çözümlerine tercih edilmesini sağlar.

.NET ve Python ile sorunsuz entegrasyonu kapsayan IronOCR, çeşitli projelerde yüksek kaliteli OCR arayışında olan geliştiriciler için kapsamlı bir paket olarak hizmet eder. Övgüye değer performansı, ölçeklenebilirliği ve ticari desteği göz önüne alındığında, IronOCR, geniş çaplı küçük ve büyük ölçekli belge dijitalleştirme girişimleri için uygun olup güvenilir ve verimli metin tanıma sunar.

IronOCR ve işlevleri hakkında daha fazla bilgi edinmek için dokümantasyon sayfasını ziyaret edebilirsiniz. Iron Software ürünleri hakkında daha fazla ayrıntı için kütüphane paketi sayfasına başvurun.

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

Iron Destek Ekibi

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