top of page
Yazarın fotoğrafıBenbesat- ••

Python ile Tesseract OCR Kullanımı


tesseract


Optik karakter tanıma (OCR), metinleri görüntülerden tanımlamak için kullanılan bir teknoloji olup, Python dilinde Tesseract kütüphanesiyle kolayca uygulanabilir. Tesseract, açık kaynaklı bir OCR motorudur ve çeşitli dillerde metinleri algılamak için kullanılabilir. Bu yazıda, Tesseract'ı Python ile nasıl kullanabileceğinizi adım adım öğreneceksiniz.


Matematiksel ve Yazılımsal Temeller

OCR, karmaşık matematiksel ve yazılımsal süreçlere dayanmaktadır. Tesseract gibi OCR motorları, aşağıdaki temel alanları kullanarak metin tanıma işlemi gerçekleştirir:

  1. Görüntü İşleme: Görüntü işleme, bir görüntünün analiz edilmesi ve işlenmesi sürecidir. Tesseract, görüntüleri işlemek için çeşitli teknikler kullanır:

    • Görüntü Dönüşümleri: Resimlerin boyutlandırılması, döndürülmesi ve kesilmesi gibi işlemler yapılır. Bu, karakterlerin daha iyi algılanmasına yardımcı olur.

    • Gürültü Giderme: Görüntülerdeki gürültüyü azaltmak için filtreleme teknikleri (örneğin, Gauss filtresi) kullanılır. Bu, algılama doğruluğunu artırır.

      Gaussian Filtering
      Gauss Filtresi
    • Kenarlara Dayalı Algılama: Kenar algılama algoritmaları (örneğin, Canny kenar algılama) ile karakterlerin belirgin kenarları tanımlanır. Bu, karakterlerin ayrımını kolaylaştırır.

      Canny edge Detector
      Canny Kenarlara Dayalı Algılama
  2. Karakter Tanıma Algoritmaları: Tesseract, makine öğrenimi ve derin öğrenme tekniklerini kullanarak karakterleri tanır. Bu algoritmalar, genellikle aşağıdaki yöntemleri içerir:


    Tesseract Python
    Örnek Tesseract ile görselden metin algılama
    • Öznitelik Çıkarma: Her karakterin belirli özellikleri (boyut, kalınlık, açılar) çıkarılır. Bu özellikler, karakter tanıma için kullanılır.

    • Destek Vektör Makineleri (SVM): Geleneksel yöntemlerden biri olan SVM, verileri farklı sınıflara ayırmak için kullanılır. Tesseract, karakterleri tanımak için SVM tabanlı sınıflandırma algoritmalarını kullanır.


    • Vektör Makineleri (SVM)
      SVM Örnek Görüntü
    • Derin Öğrenme: Tesseract 4 ve sonrası sürümleri, Convolutional Neural Networks (CNN) gibi derin öğrenme yöntemlerini kullanarak daha yüksek doğruluk sağlar. CNN, görüntü işleme için özel olarak tasarlanmış bir yapay zeka modelidir.

  3. Dil Modelleme: OCR sistemleri, dil bilgisi ve kelime sıklığı gibi dil özelliklerini göz önünde bulundurarak metinlerin daha doğru bir şekilde tanınmasını sağlar. Bu, yanlış tanımaların azaltılmasına yardımcı olur.

    • N-gram Modelleri: Belirli bir dildeki kelimelerin sıklığını analiz eder ve kelime dizilerini tahmin etmek için kullanılır. Örneğin, Türkçe’de "merhaba" kelimesinin öncesinde "iyi" kelimesinin gelme olasılığı yüksektir.


Gereksinimler


Python ile Tesseract kullanımında öncelikle bazı kütüphaneleri yüklemeniz gerekmektedir. Aşağıdaki komutları kullanarak gerekli kütüphaneleri yükleyin:

pip install pytesseract opencv-python

Tesseract Kurulumu

Tesseract motorunu kullanmak için bilgisayarınıza yüklemeniz ve doğru yolu belirtmeniz gerekir. Tesseract'ı bu bağlantıdan indirip kurabilirsiniz. Kurulumdan sonra, tesseract.exe dosyasının yolunu belirtmelisiniz. Örneğin:

pytesseract.pytesseract.tesseract_cmd = r'C:\Users\Besat\Desktop\PHYTON\Python_Masaustu\otomatik_algilanlar\tesaract\tesseract.exe'

Kod Örneği

Aşağıdaki kod parçası, belirtilen bir resimdeki metni algılamak ve dökmek için basit bir Python uygulamasıdır:

import cv2
import pytesseract
import os
# Tesseract OCR'ı yüklemek için, tesseract'ın yolunu belirtin
# ve tesseract.exe dosyasının yolunu PATH değişkenine ekleyin

pytesseract.pytesseract.tesseract_cmd = r'C:\Users\Besat\Desktop\PHYTON\Python_Masaustu\otomatik_algilanlar\tesaract\tesseract.exe'

def metni_algila_ve_donustur(image_path):
    # Resmi yükle
    image = cv2.imread(image_path)
    # Metni algıla ve dönüştür

    detected_text = pytesseract.image_to_string(image, lang='tur')

    # Algılanan metni ekrana yazdır
    print("Algılanan Metin:")
    print(detected_text)

if __name__ == "__main__":

    # Algılanacak resmin yolunu belirtin
    resim_yolu = 'a.png'
    # Algıla ve dönüştür
    metni_algila_ve_donustur(resim_yolu)

SONUÇ:


tesseract
Sağ kısımda görsel ve sol kısımda algılanan metin

Açıklamalar

  1. Gerekli Kütüphanelerin İçe Aktarılması: cv2 (OpenCV) ve pytesseract kütüphanelerini içe aktarıyoruz. OpenCV, resim işleme işlemleri için kullanılırken, Tesseract OCR metin algılama için kullanılır.

  2. Tesseract Yolu: pytesseract.pytesseract.tesseract_cmd satırı, Tesseract uygulamasının bilgisayarınızdaki yolunu belirtir. Bu yol, Tesseract'ın çalışabilmesi için gereklidir.

  3. metni_algila_ve_donustur Fonksiyonu: Bu fonksiyon, belirtilen resim dosyasını yükler ve içindeki metni algılayarak konsola yazdırır. image_to_string fonksiyonu ile resmi analiz ederiz.

  4. Ana Program: Program, bir resim dosyasının yolunu belirterek metni_algila_ve_donustur fonksiyonunu çağırır. Böylece, belirttiğiniz resim dosyasındaki metin algılanır ve ekrana yazdırılır.


Sonuç (Python ile Tesseract kullanımı)

Bu basit Python uygulaması, Tesseract kullanarak görüntülerden metinleri algılamanıza olanak tanır. Gelişmiş OCR işlemleri yapmak için bu temel yapı üzerinde özelleştirmeler yapabilirsiniz. Bu, belgelerin dijitalleştirilmesi, veri analizi ve daha fazlası için son derece faydalı bir araçtır.


Kaynak:


Yardımcı Kaynak:


Comments


bottom of page