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:
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.
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.
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:
Ö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.
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.
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Ç:
Açıklamalar
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.
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.
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.
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