iOS’da Tesseract ile OCR Uygulaması

Semih Aslan
3 min readAug 8, 2019

--

Herkese merhaba,

Bu yazımda sizlerle iOS ortamında Optik Karakter Tanımlama (OCR) uygulamasını nasıl yaparız bundan bahsedeceğim.

Öncelikle OCR nedir bir bakalım;

OCR (Optical Character Recognition — Optik Karakter Tanıma), taranmış kağıt evraklar, PDF dosyalar veya dijital kamerayla çekilen resimler gibi belge türlerinin düzenlenebilir ve aranabilir verilere dönüştürülmesine olanak sağlayan bir teknolojidir. OCR, resimlerdeki harfleri seçip ayırarak harflerden kelimeleri ve kelimelerden de cümleleri oluşturur.

Peki Tesseract nedir;

Tesseract, çeşitli işletim sistemleri için geliştirilen optik karakter tanıma yazılımıdır. İlk olarak 1985–1995 yılları arasında Hewlett-Packard tarafından kapalı kaynak bir yazılım olarak geliştirilmiştir. 2005 yılındaysa Hewlett Packard ve UNLV tarafından özgür yazılım olarak yayınlanmıştır. Pek çok dille birlikte kullanılabilir ve Türkçe desteği çok iyidir. Hızlı ve ücretsizdir. Tesseract piyasada mevcut en doğru özgür yazılım OCR motorlarından biri olarak kabul edilir.

Şimdi bunu iOS uygulamamızda nasıl kullanacağımıza geçelim.

Öncelikle buradan algılamak istediğimiz dil dosyasını seçelim ve indirelim. Ben İngilizce bir resmi metne dönüştürmek istediğim için aşağıdaki dosyayı indiriyorum.

eng.traineddata

Daha sonra kolayca ulaşabileceğimiz bir dizinde tessdata adlı bir klasör açalım .traineddata uzantılı dosyayı içine atalım.

tessdata klasörü

Şimdi XCode ortamında bir proje oluşturalım ve terminal üzerinden dizine erişip pod.init diyelim.

Terminal > cd “ProjeAdı” > pod.init

Daha sonra pod dosyamızı editör ile açarak aşağıdaki satırı ekleyelim.

pod ‘TesseractOCRiOS’

pod ‘TesseractOCRiOS’

Podfile düzenlemesini yaptıktan sonra kaydedip Terminal’e geri dönelim pod install diyerek işlemi tamamlayalım.

XCode üzerindeki projemizi açarak tessdata klasörünü sol tarafa sürükleyelim ve Finish diyelim.

tessdata klasörü kopyalama

Ve son olarak okutmak istediğimiz resmi Assets klasörüne atalım. Ben aşağıdaki gibi bir resim seçtim. Adına da test_image dedim.

test_image

Şimdi kodlamaya başlayabiliriz! ViewController.swift üzerinde

import TesseractOCR

diyerek kütüphanemizi içeri alıyoruz ve aşağıdaki G8TesseractDelegate extension’unu ekliyoruz.

G8TesseractDelegate

Ardından viewDidLoad methodumuza aşağıdaki kodları yazıyoruz. Tesseract’ı delegate ettikten sonra test_image ile recognize işlemini başlatıyoruz.

viewDidLoad()

Şimdi projemizi çalıştıralım. Siz dilerseniz galeri veya kameradan image yakalayabilirsiniz. Ben özetlemek istedim.

print(tesseract.recognizedText!)

print ve ta-daa!!

İşte karşımızda resmin text’e çevrilmiş hali. Henüz denemedim fakat white-filter özelliği ile spesifik karakter tanımlamaları atayabilirsiniz. Örneğin bir fiş fotoğrafını okuyarak $ işareti sayesinde tutarı alabilirsiniz.

Umarım bu yazı size yardımcı olabilmiştir. Hoşçakalın!

--

--