TÜRKÇE EL YAZISI TANIMA SİSTEMİ

Bu bildiride, Türkçe el yazısı için bir tanıma sistemi önerildi. Tasarlanan sistemde el yazısı tanıma sistemlerindeki aşamaların çoğu kullanıldı. Bunlar, dokümanın taranması, görüntünün ikili seviyeye indirgenmesi, görüntüdeki gürültünün temizlenmesi, satırların ayıklanması, kelimelerin ayıklanması, karakterlerin ayrıştırılması, tanınması ve kelimenin doğrulanması aşamalarıdır. Tanıma sistemi büyük harf ve küçük harfleri ayrı ayrı tanıyacak şekilde tasarlandı.172 kişiden, 29 adet büyük harf ve küçük harf olmak üzere toplam 9976 karakter örneği alınarak veri tabanı oluşturuldu. Satırların ayrıştırılması aşamasında yatay doğrultudaki histogram bilgisinden yararlanıldı. Karakterlerin ayrıştırılması aşamasında, dikey doğrultudaki histogram bilgisi kullanıldı. Karakter tanıma aşamasında korelasyon yöntemi kullanıldı ve K-en yakın komşuluk sınıflama yöntemi ile sistem kuvvetlendirildi. Doğrulama aşamasında sınırlı sayıda kelime içeren bir sözlük kullanıldı. Bu sözlük kullanımı ile anlamsız harf gruplarının seçilmesi engellendi ve yanlış tanınan kelimelerin düzeltilmesi sağlandı. Önerilen sistem, el yazısı metin örnekleri ile test edildi ve yüksek başarı oranı elde edildi.

1. GİRİŞ

El yazısı tanıma sistemleri genel olarak iki grupta incelenmektedir. Bunlar; çevrimiçi ve çevrimdışı uygulamalardır. Çevrimiçi yazı tanıma sistemleri, dijital tabletler üzerine yazılan yazıları okumak için tasarlanır. Bu tipteki sistemler çevrimdışı sistemlerde kullanılamayan, kalem basıncı, yazı yazma hızı, yazı yönü gibi bilgileri de kullanabilirler. Çevrimdışı sistemler ise yazının taranmış görüntüsü üzerinde işlem yaparlar.

El yazısı tanıma konusunda çok sayıda çalışma yapıldı[1]. Türkçe el yazısı tanıma konusunda ise yapılan çalışma sayısı sınırlıdır. Bunlardan bazıları; Berrin Yanıkoğlu ve arkadaşlarının önerdiği Türkçe el yazısı tanıma sistemi [2], Ayhan Erdem ve arkadaşlarının önerdiği yapay sinir ağları ile el yazısı karakter tanıma sistemi [3] ve Esra Vural ve arkadaşlarının önerdiği çevrimiçi yazı tanıma sistemidir [4]. Bunlardan başka, makine baskısı Türkçe yazı tanıma alanında yapılmış çalışmalar da mevcuttur [5-6].

Bu bildiride, Türkçe el yazısı için bir tanıma sistemi önerildi. Bu sistem yazı görüntüsü üzerinde işlem yapmaktadır ve görüntü üzerindeki gürültülerin temizlenmesi, satırların ayrıştırılması, kelimelerin ayrıştırılması, karakterlerin ayrıştırılması, karakterlerin tanınması ve son işleme aşamalarından oluşmaktadır. Karakter tanıma aşamasında korelasyon yöntemi kullanıldı ve K-en yakın komşuluk sınıflama yöntemi ile tanıma oranı arttırıldı. Son işleme aşamasında sınırlı sayıda kelime içeren bir sözlük kullanıldığı için anlamsız harf gruplarının seçilmesi engellendi ve yanlış tanınan kelimeler düzeltildi.

2. VERİ TABANININ OLUŞTURULMASI

Bu çalışmada tasarlanan karakter tanıma sisteminde kullanılan veritabanı, text dosyası tabanlıdır. Küçük harf ve büyük harf olmak üzere iki ayrı text dosyası oluşturuldu. Bu dosyalar, toplanan el yazısı karakter örneklerinin, sırasıyla, ikili koda dönüştürülerek kaydedilmesiyle oluşturuldu. Bu dosyanın yapısı şöyledir: bir karakter iki satırda ifade edilmektedir. Birinci satıra karakterin ascii kodu, ardından gelen satıra, karakterin ikili kod karşılığı yazıldı. Bundan sonra, her bir karakter için aynı işlemler devam edildi. Bütün karakterlerin önce ascii kodları ve ardından ikili kod karşılıkları kaydedildikten sonra veri tabanı dosyası oluşturulmuş oldu. Örneğin “a” karakter görüntüsünün ikili kod karşılığı “010111011101010001010001011010” ve “b” karakter görüntüsünün ikili kod karşılığı “010010010010010101100101101010” olduğu farz edilirse, “a” ve “b” nin ascii kodları sırasıyla 97 ve 98 olduğu bilindiğine göre bu karakterler text dosyasına;

97
010111011101010001010001011010
98
010010010010010101100101101010

şeklinde kaydedilecektir.

3. KARAKTER GÖRÜNTÜSÜNÜN İKİLİ KODA DÖNÜŞTÜRÜLMESİ

Karakter tanıma işlemi korelasyon yöntemi ile yapıldığı için karakterlerin standart bir biçime dönüştürülmesi gerekir. Çünkü korelasyon yönteminde bire bir karşılaştırma durumu söz konusudur. Yani aday karakterin ikili kod karşılığı, veritabanında daha önce kaydedilen karakterlerin ikili kodları ile karşılaştırılır ve bu şekilde en çok benzerlik değerine sahip karakter seçilir.

İkili koda dönüştürme işlemi şöyle yapılır: Karakter görüntüsü, birbirine eşit 15 yatay ve 15 dikey dilime bölünür ve ızgaralı bir hale gelir. Görüntü ızgarasında 225 alan meydana gelir. Her bir alan sırasıyla taranır. İçinde siyah piksel bulunduran alan 1, hiç siyah piksel bulundurmayan alan ise 0 ile ifade edilir. Bütün alanlara uygulandıktan sonra, görüntü 225 karakter uzunluğunda 0 ve 1’lerden oluşan bir ifadeye dönüştürülür. Bu işlem ile bütün el yazısı karakter görüntüleri standart bir şekilde ifade edildi ve boyut normalizasyonuna gerek kalmadı.

Şekil 1. Karakter görüntüsünün ikili koda dönüştürülmesi

4. KORELASYON YÖNTEMİ

Karakter tanıma yöntemlerinden birisi olan korelasyon optik şablon eşleme işlemidir. Korelasyon, karakter tanıma literatüründe sıkça kullanılan bir terimdir. Korelasyon en basit anlamda iki ikili desen arasındaki Hamming uzaklığının belirlenmesi olarak açıklanabilir.

X={ ,…, ,…, } ve X'={,…, ,…, } vektör değerleri için= { -1, eğer ≠ 0, eğer = }olsun. Bu durumda X ve X' arasındaki Hamming uzaklığı ’ye eşittir. Kısacası bu uzaklık ikili değişimler sayısını ifade etmektedir. Yani iki karakter görüntüsü karşılaştırılır ve Hamming uzaklığı bulunur. İki karakter arasındaki farklılık büyüdükçe Hamming değeri küçülür [7].

Bu bildiride önerilen çalışmada ise Hamming uzaklığı yerine benzeme değeri kullanıldı. Benzeme değeri, karşılaştırılan ikili kodlardaki eşleşen bit sayısıdır. Her bir eşleşen bit için benzeme değeri bir artar. Mesela ikinci bölümde anlatılan “a” ve “b” karakter görüntülerinin ikili kodları karşılaştırılırsa, eşleşen bitlerde benzeme değeri 1 arttığından dolayı, “a” ve “b” nin aralarındaki benzeme değeri 18 hesaplanır.

Karakter tanıma işlemine tabi tutulan aday karakterin ikili kodu, veri tabanında bulunan bütün kayıtlarla karşılaştırılır ve en çok benzeme değerini aldığı karakter belirlenir ve bu sınıfa dahil olduğu kabul edilir. Bu şekilde karakter tanıma işlemi yapılır.

Bu şekilde yapılan karakter tanıma işlemlerinde yanlış sonuçlar olabilmektedir. Mesela en çok benzeme değerini veren sınıf doğru sınıf olmayabilir. Bu nedenle karakter tanıma işlemi K-en yakın komşuluk sınıflama yöntemi ile kuvvetlendirildi. Bu yöntem beşinci bölümde ayrıntılı bir şekilde anlatıldı.

5. K-EN YAKIN KOMŞULUK

K-en yakın komşuluk, sınıflama yöntemlerinden birisidir. Buradaki K, 1'den büyük ve genelde tek olarak seçilen bir tam sayıdır. Dördüncü bölümde anlatıldığı gibi korelasyon yönteminde en çok benzeme değerini veren sınıf seçilmişti. K-en yakın komşuluk yönteminde ise, sadece bir tane en büyük benzeme değerine değil, K tane en büyük benzeme değerine bakılarak sonuca ulaşılır. Böylece ulaşılan sonucun daha sağlıklı olmasını sağlanır. Biraz daha açıklarsak; diyelim ki K değerimiz 5 olsun. Elimizde test verisi olarak “c” olduğunu farz edelim. En büyük benzeme değerlerine sahip olan örnekler de aşağıdaki şekilde olsun.

Sıra Veritabanındaki Örnek Benzeme Değeri
1 e 198
2 c 189
3 c 187
4 c 185
5 e 169

Tablo 1. Örnek tablo

Tablo 1. incelendiğinde, test örneği olan “c” nin, veritabanında bulunan “e” lerden birisine çok benzediği, ama bununla birlikte veritabanında bulunan

üç adet “c” ye de oldukça benzediği söylenebilir. Eğer böyle bir durumda sadece korelasyon yöntemi kullanılsaydı tanıma algoritması, test örneğinin “e” olduğunu kabul edecekti.


K-en yakın komşuluk yöntemi kullanıldığında ise veritabanında bulunan ve test verisine (“c”) en çok benzeyen 5 örnekten üçünün “c”, diğer ikisinin “e” olması sonucunda, sayıca daha çok olan üç örneğin benzerliğinin daha kuvvetli olduğu farz edilir ve test verisinin “c” olduğu kabul edilir. Eğer tablodaki “e” lerin sayısı “c” lerin sayısından çok olsaydı o zaman da sonuç “e” olurdu. Yani K-en yakın komşuluk yönteminde K adet en benzer sonuç içinde, en çok sayıda eleman bulunduran sınıf seçilmektedir [8].

Bu çalışmada en uygun K’yı bulmak için testler yapıldı. Bu testler sonucunda küçük harfler için K 3, büyük harfler için ise K 5 seçildi. Test sonuçları Şekil 2’de görülmektedir.

a) Küçük Harfler

b) Büyük Harfler

Şekil 2. K değerlerine göre tanıma oranları

En uygun K değerleri ile yapılan sınıflandırma işlemlerindeki tanıma oranları ayrıntılı bir şekilde Tablo 2 ve Tablo 3’te gösterilmektedir.

6. EL YAZISI ÖRNEKLERİNİN

TOPLANMASI VE TARANMASI

Yazı tanıma işleminde kullanılmak üzere farklı kişilerden el yazısı metin örnekleri alındı. Yazı örnekleri A4 tipindeki kağıtlara yazıldı ve tarayıcı ile 300 dpi çözünürlüğünde tarandı. Görüntü, tarama esnasında otomatik olarak ikili seviyeye indirgendi. Görüntü üzerindeki gürültüler temizlendi. Sayfa görüntüleri tanıma sistemine girdi olarak verildi.

Tablo 2. Küçük harflerdeki tanıma oranları. K=3

 

Tablo 3. Büyük harflerdeki tanıma oranları. K=5

7. SATIRLARIN VE KELİMELERİN

AYRIŞTIRILMASI

 

İkili seviyeye indirgenen ve gürültüleri temizlenen görüntünün yatay doğrultudaki histogram grafiği çıkartılır (Şekil 3.). Histogram çıkartıldıktan sonra, (1) formülüne göre dikey doğrultuda bir eşik seviyesi belirlenir. Bu eşik seviyesinin altında kalan vadilerin orta noktasından yatay doğrultuda kesim yapılır. Bu kesimler satırları birbirinden ayıran kesimlerdir. Bazen, histogramda oluşan çok küçük vadilerden dolayı, fazla sayıda satır hesaplanabilir veya kelimeler kesime uğrayabilir. Bu problemi çözmek için Min Boşluk Değeri belirlenir (2). Bu değer, minimum vadi genişliğidir. Bu değerin altındaki boşluklar işleme alınmaz.

Satır ayrıştırma işlemi için;

Eşik Değeri = Görüntü Genişliği / 900 (1)

Min Boşluk Değeri = Görüntü Yüksekliği/1000 (2)

Satırlar birbirinden ayrıştırıldıktan sonra her bir satır üzerinde kelime ayrıştırma işlemi yapılır. Önce (3) formülüne göre bir eşik değeri belirlenir. Bu değer, iki kelime arasındaki muhtemel boşluk değeridir. Sonra satır görüntüsü üzerinde yatay doğrultuda, her bir piksel kolonu taranır. Eşik değerinden daha büyük genişliğe sahip boşluk kolonu bulunduğunda, bu boşluğun iki kelime arasındaki boşluk olduğu kabul edilir ve kesim yapılır. Bu kesimler kelimeleri birbirinden ayıran kesimlerdir. İşlem sonunda görüntüdeki bütün kelimeler saptanır.

Kelime ayrıştırma işlemi için;

Eşik Değeri =Görüntü Genişliği / 90 (3)

Kelimeler saptandıktan sonra, her bir kelime çerçevelenir (Şekil 4.). Kelime görüntüleri, kelime tanıma algoritmasına gönderilerek tanıma işlemi yapılır. Tanıma sisteminin ürettiği sonuç Şekil 5’te görülmektedir.

Şekil 3. Satırların bulunması

Şekil 4. Kelimelerin çerçevelenmesi

Şekil 5. Yazı tanıma sisteminin ürettiği sonuç

 

8. KARAKTERLERİN

AYRIŞTIRILMASI

 

Kelime görüntüsünün dikey doğrultudaki histogram grafiği çıkartılır [9]. Yatay doğrultuda bir eşik seviyesi belirlenir. Bu aşamada eşik seviyesi 5 seçildi. Bu seviyenin altında kalan vadilerin orta noktalarından dikey doğrultuda kesim yapılır. Bu kesimler karakterleri birbirinden ayıran kesimlerdir.

 

9. KELİMENİN TANINMASI VE

SON İŞLEME

 

Karakterler ayrıştırıldıktan sonra, her bir karakter çerçevelenir ve tanıma algoritmasına sunulur. Sonuçlar alınır ve kelime sonucu üretilir. Üretilen kelime, son işleme aşamasında, sözlük kullanımı ile doğrulanır. Kelimede yanlış tanınan karakterler varsa bunlar sözlük yardımı ile düzeltilir. Örneğin Şekil 6’da gösterilen kelime görüntüsü, “eğitima” olarak tanınırsa sözlük kullanımı ile “eğitime” olarak

düzeltilir. Bu çalışmada, tanıma sistemine sunulan bütün kelimeler sözlüğe eklendi.

Şekil 6. Harflerin ayrıştırılması

 

9. SONUÇ

 

Bu çalışmada önerilen el yazısı tanıma sistemine toplam 151 kelime içeren küçük harf veya büyük harflerden oluşan metinler ayrı ayrı sunuldu ve tanıma sistemi %100 başarı oranı ile tanıma işlemini gerçekleştirdi. Önerilen sistem ayrık yazılan kelimeler üzerinde işlem yaptığı için, bağlı veya birleşik yazılan kelimeler bu çalışmanın dışındadır. Kullanılan sözlükteki kelime sayısı sınırlıdır ve sadece sisteme sunulan kelimeleri içerir. Bu sözlükteki kelime sayısı artırılarak son işleme aşaması geliştirilebilir. Bununla beraber sözlükteki kelime sayısı arttıkça sistemin kullanacağı zaman da artacaktır. Önerilen sistem, ayrık yazılan Türkçe el yazılarının dijital ortamlara aktarılması gerektiği durumlarda kullanılabilir. İlerideki çalışmada, birleşik yazılan Türkçe el yazılarının tanınması için bir sistem tasarlanacaktır.

 

 

10. KAYNAKÇA

 

[1] Andrew W. Senior, Anthony J. Robinson, “ An

Off-Line Cursive Handwriting Recognition System”, IEEE transactions on pattern analysis and machine intelligence, vol. 20, no. 3, march 1998

 

[2] Yanıkoğlu B., Kholmatov A. 'Turkish

handwritten text recognition: A case of Agglutinative Languages", Proceedings of SPIE, January 2003

[3] O. Ayhan ERDEM ve Emre UZUN “Yapay

sinir ağları ile Türkçe times new roman, arial ve el yazısı karakterleri tanıma”, Gazi Üniv. Müh. Mim. Fak. Der. Cilt 20, No 1, 13-19, 2005

[4] Esra Vural, Hakan Erdoğan, Kemal Oflazer Berrin Yanıkoğlu, “Türkçe İçin Tablet PC Ortamında Çevrimiçi Yazı Tanıma Sistemi”, IEEE, 2004

[5] M. Oğuzhan Külekçi, “Turkish machine print character recognition by artificial neural networks” , 2002

[6] Sait Ulaş Korkmaz, G. Kırçiçeği, Y. Akıncı,

Volkan Atalay, “ A Character Recognizer for Turkish Language “, Proceedings of the Seventh International Conference on Document Analysis and Recognition (ICDAR 2003)

[7] Nabiyev, V. V., Yapay Zeka, Seçkin Yayınevi,

Ankara, 2003

[8] P. J. Grother, G.T. Candela ve J.L. Blue, “Fast

Implementations of Nearest Neighbor Classifiers”, Pattern Recognition, 30 (1997), 459--465.

[9] Z hixin Shi ve Venu Gov1ndaraju

“ Segmentation and recognition of connected handwritten numeral strings”, Pattern Recognition, Vol. 30, No. 9, pp. 1501 1504. 1997


MURAT ŞEKERCİ
Bilgisayar Mühendisi

$ = 1.1875 YTL    € = 1.7538YTL
Fiyat Listesini Görmek İçin Tıklayınız ...