|
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
|