Tesseract ile Yazı Karakteri Tanıma (Python)

İbrahim İrdem
3 min readOct 28, 2018

--

Yukarıda “Nasıl Yaparız ?” yazılı bir resim görüyorsunuz ve resmin üzerindeki yazıyı okumakta hiç bir sıkıntı yaşamıyoruz. Gel gelelim ki bilgisayarımıza bu resmi tanıttığımızda 418x122px boyutlarında her bir pixeli için farklı renkler içerebilen bir kod yığını şeklinde görüyor.

Bizler gibi bu resmin içindeki yazıyı bilgisayarlarımızın da tanıması olayına Optik Karakter Tanıma (OCR) deniyor.

Optik Karakter Tanıma (Optical Character Recognition) ya da kısaca OCR bilgisayar ortamında bulunmayan yazılı dokümanların özel tarayıcılar veya normal olarak taranmış resimlerin FineReader ve Tesseract gibi bazı özel programlar aracılığıyla bilgisayar ortamına düzenlenebilecek sayısal halde aktarılmasıdır. (Wikipedia)

Tesseract, çeşitli işletim sistemleri için geliştirilen özgür bir optik karakter tanıma (OCR) motorudur. (Wikipedia)

Google tarafından sponsor olunarak geliştirilen açık kaynak bir proje olarak hayatını sürdürüyor.

Fazla uzatmadan Tesseract’ın kurulumuna ve Python ile kullanımına bakalım.

Kurulum

Tesseract’ı bilgisayarınıza yüklemek için buradan bilgisayar sisteminize göre uygun paketi indirin. (32 bit veya 64bit için)

Daha kolay yüklememiz için oluşturulan bu kurulum paketinde “Additional language data (download)” altından Türkçe paketini mutlaka seçin.

Yükleme işleminizi tamamladıktan sonra Python içerisinde bu sistemi kullanmak için pytesseract isimli modülü kurmamız gerekiyor. Bunun için komut satırımıza

pip install pytesseract

diyerek pytesseract modülünü yüklüyoruz. Bu paketi kurulumunu yaparken yanında Pillow kütüphanesini de kurduğunu göreceksiniz. Eğer kurmadıysa onu da

pip install Pillow

diyerek kuruyoruz.

Kullanım

Pytesseract modülü bilgisayarımızda yüklü olan Tesseract programının bulunduğu dizine bağlanıp çalıştığı için bazı durumlarda programın yüklü olduğu bu dizini bulamıyor ve hatalara neden oluyor. Biz bunların önüne geçmek için pytesseract modülüne yüklediğimiz yerin yolunu bulup bunu kodumuzda belirtelim.

Burada 4. satırda Tesseract OCR’yi yüklediğiniz konumu yazacaksınız. Bu yüzden sizde değişkenlik gösterebilir.

Küçük bir örnek uygulama yapalım.

Aşağıda verdiğimiz deneme.jpg resmindeki yazıları tanıyacak bir basit program yapalım.

deneme.jpg

Not: deneme.jpg isimli resim ve kodlarımızın bulunduğu deneme.py dosyası aynı dosyada bulunmalıdır.

deneme.jpg isimli resmimizdeki metinde Türkçe karakterler bulunmaktadır. Kodumuz içerisinde bu karakterleri doğru tanıması için image_to_string fonksiyonu içerisinde mutlaka lang="tur" parametresi ile metnimizin Türkçe olduğunu belirtmemiz gerekiyor.

Yukarıdaki kodu çalıştırdığımızda deneme.jpg isimli resimdeki metni tespit edip ekrana bastıracaktır.

Görüldüğü gibi resimdeki metini temiz bir arka planda kusursuz bir biçimde bulabiliyor.

Şimdilik Python ile giriş yaptığımız bu Optik Karakter tanıma programı Tesseract ile ilgili bir örnek uygulama yaptığımız zaman bu gönderinin altında paylaşılacaktır.

--

--