yapay sinir ağlarında negative correlation learning metodunu

advertisement
YAPAY SİNİR AĞLARINDA NEGATİVE CORRELATİON LEARNİNG
METODUNU
KULLANARAK OPTİK KARAKTER TANIMA
Burcu KIR1, Cemil ÖZ2, Ali GÜLBAĞ3
1
Bilgisayar Mühendisliği
Bölümü
Kocaeli Üniversitesi
[email protected]
2
Bilgisayar Mühendisliği
Bölümü
Sakarya Üniversitesi
[email protected]
3
Bilgisayar Mühendisliği
Bölümü
Sakarya Üniversitesi
[email protected]
bazı olası insan hatalarını azaltma ve hızlı bilgi bulmayı
mümkün kılma gibi avantajları da vardır.
ÖZET
Bu çalışmada, yapay sinir ağları kullanılarak Optik Karakter
Tanıma (OCR) gerçekleştirilmiştir. Yapay sinir ağları
eğitiminde negative correlation learning(NCL)
metodu
kullanılmıştır. Negative correlation learning; Yapay sinir
ağlarını bireysel olarak eğitmek yerine, onların grup halinde
eğitilmesi işlemini içeren bir eğitim tekniğidir. Farklı bireysel
sinir ağlarının birlikte tek bir ağ şeklinde eğitilmesi işlemi,
eğitim sırasında farklı parçaların aynı anda eğitilmesinden
dolayı hem öğrenmenin daha iyi olmasını, hem de aynı anda
tüm ağ eğitildiği için eğitim süresinin kısalmasını sağlar. Bu
çalışmada cep telefonu ile çekilen kelime resmi görüntü işleme
teknikleri ile işlenerek karakterlerine ayrılmış ve özellikleri
belirlenmiştir. Harf resimleri bir matrise dönüştürülerek
yapay sinir ağı eğitim seti kullanılarak sırası ile tanınır.
Harfler tanındıktan sonra sonra negative correlation
learning(NCL) metodu ile eğitilmiş YSA Ağ topluluğu ile
sınıflandırılarak yazıya dönüştürülmektedir. Sistem başarı ile
çalışmaktadır.
Anahtar kelimeler: yapay sinir ağları, negative correlation
learning, optik karakter tanıma
1.GİRİŞ
Optik Karakter Tanıma (OCR); elle ya da elektronik olarak
yazılmış görüntüler üzerindeki karakterlerin ya da metin
bilgilerinin okunarak ASCII koduna dönüştürülmesi işlemidir.
İlk bilgisayar destekli, 23 harfi tanıyabilen OCR sistemi
GİSMO, 1950’de David Shepard tarafından Amerika’da
geliştirilmiştir. 1950’li yılların ortasından başlayıp günümüze
kadar donanım cihazı ve yazılım paketi olarak ticari OCR
sistemleri geliştirilmeye devam etmektedir. OCR üzerine
yapılan çalışmalar oldukça fazladır[1,2]. OCR ile ilgili
çalışmalar günümüzde de devam etmektedir. Karmaşık
zeminlerde ve çevre koşulların da, video çerçeveleri
üzerindeki yazıların tanınması vb konularda çalışmalar devam
etmektedir. Basılı ve el yazılarının bilgisayar ortamına
dönüştürülmesini hızlandırması OCR’ı bilgisayar bilimcileri,
mühendisler ve farklı disiplinlerdeki pek çok kişinin ilgisini
çeken bir konu haline getirmiştir. Bu tarz yetenekleri
sayesinde OCR, insan-bilgisayar etkileşimi, örüntü tanıma,
görüntü işleme, metin-konuşma çevrimi, dil işleme, metin
madenciliği, yapay zekâ gibi pek çok bilgisayar uygulama
alanına yayılmıştır. Ayrıca, OCR ile donatılmış bilgisayar
sistemlerinin hızlı veri girişi ve metin işlemeyi izin verme,
1999 yılında, Gorski ve arkadaşları, Fransa, İngiltere veya
Amerika’da düzenlenen el yazısı veya basılı çekleri
işlemek için bir çek tanıma sistemi [3]. Ni ise 2007
yılında, Amerikan posta servislerindeki adresleri sıralamak
için posta kodlarını okuyan çok katmanlı geri-beslemeli
yapay sinir ağı kullanan bir OCR sistemi geliştirdi [4].
Mani ve Srinivasan 1997 yılında yapay sinir ağlarını
kullanan bir OCR sistemi önerdi [5]. Ahmed 1994 yılında,
daha sonra Alshebeili ve arkadaşları ise 1997 yılında Arap
alfabesini tanıyan bir OCR sistemi geliştirdi [6]. Leung ve
daha sonra Zhang ve arkadaşları 2002 yılında, el yazısı
Çin karakterlerini tanıyan çalışmalar geliştirdi [7,8]. Inoue
ve arkadaşları 1998 yılında matematiksel formüller içeren
Japonca dokümanlara ait taranmış sayfa görüntüsündeki
Japonca metinleri ve matematiksel formülleri ayrı ayrı
tanıyan bir OCR sistemi [9]. Singh ve arkadaşları YSA
yardımı ile Devanagari (Hint) alfabesini tanıyan bir optik
karakter tanıma sistemi geliştirdi [10].
Son yıllarda, mobil telefon ve diğer cihazların
kameralarından alınan görüntülerdeki kelime ve metinleri
okuyan ve farklı dillerde çevirilerini yapan çalışmalar
bulunmaktadır. Koga ve arkadaşları mobil bir cihaz
kullanılarak resmi çekilmiş Japonca karakterleri tanıyan
bir OCR sistemi geliştirdi [11]. Park ve Kwon, masaüstü
OCR
sistemlerinin
mobil
platformlar
üzerinde
çalışabilecek gömülü versiyonunu geliştirdi [12].
Rodriguez ve arkadaşları afiş ve tabelalardaki cep telefonu
kamerası kullanılarak çekilmiş JPEG formatındaki
resimlerindeki metinleri İngilizceden İspanyolcaya çeviren
bir mobil uygulama geliştirdi [13].
Yapay sinir ağı modellemesi son yıllarda oldukça
geliştirilmiş ve birçok alanda da kullanılmaya
başlanmıştır. Günümüzde karşılaşılan problemler büyüyüp
karmaşık bir hal aldıkça yapay sinir ağlarının kullanım
alanları da artmıştı. Birçok bağımsız yapay sinir ağı eğitim
modeli vardır. Bu modellerin en büyük dezavantajı,
birbirinden bağımsız eğitilen bireysel ağların eğitim
sırasında ya da sonrasında farklı sonuçlardan kaynaklanan
birbirleriyle olan bağlantı kopukluğuna ve istenilen sonuca
ulaşılmamasına yol açmasıdır[14].
Bireysel yapay sinir ağlarındaki bağlantı kopukluğunu
engellemek için giriş ve çıkış arasındaki hataların
minimize edilmesi kısmi bir sonuca ulaşmamızı
105 sağlayabilir. Rosen Algoritması[15]; kısaca farklı giriş ve
çıkışın birbiriyle bağlantılı hatalarını çözüp optimumhale
getiren bir algoritmadır. Bu yöntem belirli bir kazanç sağlasa
bile birbirleriyle bağlantılı olmayan hataların eğitilmesine
yardımcı olmaz.
Birden fazla bireysel ağın gruplandırılarak eğitilmesi sıranda
geri-beslemeli bir ağ yapısı kullanılır. Bunun nedeni giriş ve
çıkışlar arasında bir bağlantı kurmak ve girişi etkileyen bir
durumun direkt olarak çıkışı etkilemesini sağlamaktır. Bu
durum yeni girişleri değiştirdiği için öğrenmenin daha başarılı
olması
beklenmektedir.
NCL
öğrenmesinde
hata
fonksiyonlarını hesaplarken ceza fonksiyonlarını da işleme
katmak NCL’ nin hata tahminlerinin artmasını sağlar. Bu da
çıkış fonksiyonunun çeşitlenmesine ve her bir ağın işleme
alacak olduğu yeni girişleri değiştirip belirginleştirmesine yol
açar[16].
Giriş
Dökümanı
Segmentasyon
Optik Tarayıcı
Ön işleme
Ölçekleme
Özellik
çıkarma
Bu çalışmada Yapay sinir ağına dayalı bir tanıma işlemi
gerçekleştirilmiştir. Karakter tanıma işleminin net ve düzgün
olması için alt sistemlerin çalışma sırası (resmin alınması,
önişlemler, resmin satırlara ve sütunlarına ayrıştırılması,
özellik çıkarımı ve karakter tanıma[1]) oldukça önemlidir.
Burada bahsedilen önişlemler; Metnin ya da resmin
gürültüsünün temizlenmesi, boyut farklılıklarının giderilmesi,
karakterlerin inceltilerek iskeletinin ortaya çıkarılması ve
karakterlerin ayrıştırılması gibi işlemlerdir.[2]. Karakter
tanıma işlemi üç bireysel YSA lı NCL modeli kullanılarak
gerçekleştirilmiştir. NCL metodu ile eğitilmiş YSA Ağ
topluluğu ile OCR işlemi daha başarılıdır.
Tanıma &
Karar
Renk dönüşümü
Gürültü azaltma,
vs.
Sınıflandırma,
eşleştirme,
karşılaştırma, vs.
Veri tabanı
Şekil 1: OCR sisteminin genel yapısı
Fotograf ve taranmış dokümanlar genellikle
RGB renkli resimlerdir. RGB değerlerinin kullanılması,
görüntü analizi açısından karmaşıklığın artmasına neden
olmaktadır. Bu nedenle renkli resimden gri seviyeye
transfer karmaşıklık sorunlarının çözümü ve bir
standartlaşma olarak karşımıza çıkmaktadır. Resim gri
renk formatına dönüştükten sonra yazının zeminden
ayrılması için eşikleme yapılması gerekir. böylece yazının
arka planı çıkarılabilir. Elde edilen ikili görüntüde bir
takım gürültüler olması tanıma kalitesini düşürmektedir.
Bu olumsuzluğu gidermek için filtreleme ve gürültü
azaltıcı algoritmalar uygulanır. Resim üzerindeki satırların
bulunması için yatay projeksiyon gerçekleştirilir böylece
resim satırları içeren küçük resimlere dönüşür. Daha sonra
dikey projeksiyon yapılarak karakterler bölünür. Elde
edilen karakterler. Farklı boyutlarda olabileceğinden
dolayı sınıflandırma algoritmasında kullanımı problem
teşkil
ettiğinden
ölçeklendirme
yapılır.OCR
uygulamalarında, özellik çıkartma önemlidir ve her birinin
kendine özgü güçlü ve zayıf yanları bulunan farklı
teknikler mevcuttur. Karakterleri doğru bir şekilde hangi
sınıfa ait olduğunu belirleyebilen özellikleri çıkartmak en
uygun olan yöntemdir. Karakterler doğru parçalarından
oluştuğuna göre, karakterleri tanımak için pek çok farklı
özellik çıkartılabilir. Son adımda karakter görüntüsüne ait
özellik vektörleri YSA, HMM vb sınıflandırma
algoritmaları ile sınıflandırır.
2. OCR SİSTEMİN GENEL YAPISI
Optik Karakter Tanıma işlemi, basılı belgelerin okunarak
bilgisayar metinlerine dönüştürülmesi işlemidir. Şekil 1’de
tipik bir OCR sisteminin genel yapısı gösterilmektedir. Optik
bir cihaz aracılığı ile taranan basılı veya el yazısı dokümana
ait karakterler kümesi sayısal görüntüye dönüştürülür.
Karakter şekillerinin karmaşıklığı, gürültü, kelime haznesinin
kapsamı, sayısallaştırılmış karakterin çözünürlüğüne etki eden
matris boyutu, karakter tanımanın hız ve doğruluğunu
etkileyen faktörler arasındadır. Basılı veya el yazısı verilerin
bulunduğu bölgeyi belirleyerek başlayan tipik bir OCR
sistemindeki sonraki işlem adımları sırasıyla segmentasyon,
ön işleme, özellik çıkartma ve karakter tanımadır.
3. NEGATİVE CORRELATİON
LEARNİNG
106
Grup halinde yapay sinir ağlarının eğitimi iki aşamada
gerçekleşmektedir. Öncelikle her bir ağın birbirinden
bağımsız ama birbirine paralel olarak aynı anda eğitimi
gerçekleştirilir, daha sonra da her birinden elde edilen
çıkışların birbirlerine bağlantılı hale getirilip optimum bir
çıkış elde edilir. NCL birbirinden farklı bireysel ağların,
farklı parçalarını ya da yönlerini değişik verilerle eğiterek
tüm ağı eğitmektir. Bu öğrenmenin amacı tüm sistemin
eğitimini daha verimli yapmaktır[17].NCL de yapay sinir
ağı geri yayılım algoritması kullanarak paralel olarak
4. NEGATİVE CORRELATİON LEARNİNG İLE
KARAKTER TANIMA
birden fazla bireysel ağı aynı anda eğitme işlemi yapar. Her
bireysel ağ kendi hata fonksiyonlarını kullanır ve hatalarını
hesaplar. Ayrıca en sonunda tüm bireysel ağların hataları
ilişkilendirilir[18]. NCL de ayrıca çıkıştan elde edilen sonuç
yeni eğitim verilerinin oluşması için kullanılır.
Bölüm 2 de detaylı birşekilde verildiği şekliyle taranmış
metinler önce gri formata çevrilmiş ve gürültüleri
azaltılmıştır. Elde edilen gri resime otomatik eşikleme
yapılarak ikili resim elde edilmekte ve önce yatay
projeksiyon ile satırlar, daha sonrada dikey projeksiyonla
karakterler ayrıştırıldıktan sonara 12*12 olacak şekilde
karakter matrisleri elde edilmiştir. Bu matristeki bilgiler
yapay sinir ağı eğitimi ve testi için dosyalanmıştır. Her bir
bireysel ağ giriş katmanı 144 tane veri girişe,144 gizli
katman nörona ve çıkış katmanında da 9 tane çıkışa sahip
olmaktadır.
Çıkış katmanında 9 tane çıkışımızın
olmasının sebebi ise her bir harf şekline karşılık gelen
ASCII kodlarını üretecek şekilde tasarlanmasıdır. Her bir
bireysel ağın ağırlıkları birbirinden farklı ve rastgele
verilmiştir. Ayrıca öğrenme katsayıları da birbirinden
bağımsız ve farklı verilmiştir.
Bu çalışmada eğitim verilerimiz; taranan bir metnin
karakterlerinin OCR yöntemiyle ayrıştırılması ile elde
edilmiştir. Eğitim datamızın D={(x(1),d(1)),…,(x(N),d(N))}
olduğunu düşünelim.
, d skaler bir büyüklük ve N
eğitim setinin boyutu. Bu bölüm çıkışı, sinir ağların
çıktılarının ortalamasını veren basit bir topluluğu formüle
eder:
(1)
M topluluktaki bireysel sinir ağların sayısı,
n.
eğitimdeki i. ağın çıktısı,
, n. eğitimdeki topluluğun
çıktısıdır. Böylece tüm ağlar aynı anda eğitilir ve aynı D
eğitim setiyle etkileştirilmiş olur. i ağı için hata fonksiyonu
, NCL’ de
(2)
ile tanımlanır.
, n. eğitimdeki i ağının hata fonksiyonu.
Denklem 2’ deki ilk kısım i ağının deneysel risk fonksiyonu,
2. kısım
ilişkilendirilmiş hata fonksiyonu hesaplamaktadır.
Amaç her ağın hatasını azaltarak tüm topluluğa yaymaktır[19].
Formül 2 de yazılmış olan hata fonksiyonu, tüm bireysel
ağların her birine ait hata fonksiyonu içindeki, hata
terimleriyle etkileşimli olmasını sağlamaktadır. Her i ağı
ve
arasındaki farkı azaltmak yerine
sadece
ile
arasındaki farkı da azaltıyor. λ parametresinin
Hata
aralığında kullanılması hatanın kuvvetini belirler.
fonksiyonu
;
Şekil 2: Karakterlerin Matrisel Gösterimi
(3)
üç tane bireysel yapay sinir ağı kullanılarak karakter
tanıma işlemi gerçekleştirilmiştir. Kullanılan yapay sinir
ağı modeli şekilde verilmişitr.
(n)’nin türevi;
YSA1
GİRİŞLER
(4)
YSA2
ÇIKIŞ
MODÜLÜ
YSA3
Ağdaki ağırlıkların güncellenmesi işlemlerinde standart geriye
yayılım algoritması kullanılmıştır. Denklem 4’ te her bir
bireysel ağda ağırlıkların,her eğitim aşamasından sonra
güncellenme işlemi gerçekleşmiştir.
Şekil 3: Grup Halinde Olan Yapay Sinir Ağı Modeli
107
Şekil 3’de görüldüğü gibi çalışmada 3 tane bağımsız yapay
sinir ağı gruplandırılmıştır. Ağların gruplandırılması için en az
iki ağın bir araya gelmesi yeterlidir. Verilen kararların daha
rahat ortak bir karara dönüştürülmesi için 3 adet yapay sinir
ağının kullanılması önerilmiştir ancak böyle bir zorunluluk
yoktur[20]. Bazı durumlarda ağa sunulan bir örnek bir ağ
tarafından tanınmaz iken diğer ağ tarafından tanınmaktadır.
Üçüncü bir ağın kararı bu durumda önemli olmaktadır. Bu
ağın kararı hangi ağa yakın ise o zaman tüm ağın kararı o
yönde olacaktır.
eğitimdeki i. ağın çıktısını,
ise n. eğitimdeki tüm
topluluğun çıktısını ifade eder.
Tüm ağdaki toplam hata (E) bulunduktan sonra geri
beslemeli öğrenme yöntemi (backprobagation yöntemi) ile
minimize edilen hata tüm ağa yayılır. Böylece aynı anda
paralel olarak tüm ağda öğrenmenin ilk aşaması
gerçekleşmiş olur. Öğrenme tamamlanıncaya kadar her bir
ağdaki ağırlıklar geri yayılım yönteminden elde edilen
sonuçlara göre yenilenir(update edilir). Şekilde modelin
işleyiş akışı verilmiştir.
Her bir bireysel ağa, A harfinin şekli giriş olarak
uygulandığında, her birindeki 9 çıkışlı ağ yapısında 65
decimal sayısına karşılık gelen binary sayıyı (001000001)
üretecektir. Bu şekilde Her bir bireysel ağ eğitimi
gerçekleştirir.
Giriş
Veri setini
işleme al
Üç sinir ağını
da aynı giriş
setine göre
eğit
Sıradaki karakteri
ağa uygula ve her
bir ağdan ağ çıkışı
üret
Tüm ağın
çıkışlarından tek
bir çıkış üret
Ağın çıkışında ürettiği
sonucu karşılık geldiği
ASCII kodla
karşılaştır ve sonuçları
yeniden tüm sisteme
yay.
Son karaktere
kadar
KR
Sonuçları göster
Bitir
Şekil 5: Resimden Alınan Karakterlerin Sinir Ağına
Sunumu Ve Karakterin Tanınması Şeması
5. SONUÇ VE DEĞERLENDİRME
Bu çalışmada, üç bireysel yapay sinir ağı gruplandırılarak
mobil cihazlar için karakter tanıma işlemi yapılmıştır.
Sinir ağları eğitilirken her biri için farklı ağırlık değerleri
uygulanmıştır. İstenilen karakter tanıma işlemi dört farklı
alt birimden oluşmaktadır. Bunlar, önişlemler, özellik
çıkarma, veri setinin oluşması ve sınıflandırma
işlemleridir. Mobil cihazlardaki kameraların özelliklerinin
kısıtlı olmasından dolayı süper çözünürlük yöntemi ile
görüntülerin iyileştirilmesi ile sınıflandırma başarısı
artırılabilir iken ağ çıkışının ASCII kod olmasıda başarı
oranını düşürmektedir. Çıkışların her bir çıkış tanınacak
bir karakteri temsil edecek şekilde yapılması ve eşik
değeri uygulanması başarıyı artıracaktır.
Şekil 4: Yapay Sinir Ağının Hedeflenen Çıkış Değerleri
İlk eğitim gerçekleştirildikten sonra her bir bireysel ağın
çıkışındaki hata(Ei) tespit edilir. Ayrıca tüm sistemin
çıkışındaki toplam hata (E ) belirlenir ve minimize edilir.
Toplam hatanın elde edilmesi için tüm bireysel ağın
çıkışlarının
birbirleriyle
bağlantılı
hale
getirilmesi
gerekmektedir. Bunun için ilişkilendirilmiş hata fonksiyonu
(penalty function) bulunur.
şeklinde
ilişkilendirilmiş hata fonksiyonu bulunur. Buradaki
n.
108
[19] Yong Liu, Xin Yaoand Tetsuya Higuchi,
“Evolutionary Ensemble with Negative Correlation
Learning”, IEEE(November 2000)
[20] Helvacı, Ö., “Santrifüj Pompalarda Yapay Sinir Ağı
Uygulamaları”, Yüksek Lisans Tezi, Eskişehir
Osmangazi Üniversitesi, Fen Bilimleri Enstitüsü,
Eskişehir, (2007)
6. REFERANSLAR
[1] Mikael Laine,Olli S. Nevalainen “A Standalone OCR
System For Mobile Cameraphones”, IEEE(2006)
[2] Jaehwa Park, Young-Bin Kwon, “An embedded OCR: A
Practical Case Study of Code Porting for a Mobile
Platform”, IEEE(2009)
[3] Gorski, N., Anisimov, V. , Augustin, E., Baret, O., Price,
D., Simon, J.C. (1999). “A2iA Check Reader: A Family
of Bank Check Recognition Systems”, Proc. 5th Int.
Conf. Document Analysis and Recognition, pp.523-526.
[4] Ni, D.X. (May 2007). Application of Neural Networks to
Character Recognition, Proceedings of Students/Faculty
Research Day.
[5] Mani, N., Srinivasan, B. (October 1997). “Application of
Artificial Neural Network Model for Optical Character
Recognition”, IEEE International Conference, pp.12-15.
[6] Ahmed, O. A.-W. (June 1994). Application of Artificial
Neural Networks to Optical Character Recognition,
Master’s Thesis, King Fahd University Of Petroleum &
Minerals, Saudi Arabia.
[7] Leung, C.H. (1997). Feature Selection in the Recognition
of Handwritten Chinese Characters, Engng Applic. Artif.
Intell., v.10, n.5, pp.495-502.
[8] Zhang, L.X., Zhao, Y.N., Wang, J.X. (November 2002).
“Feature Selection In Recognition Of Handwritten
Chinese Characters”, Proceedings of the 1st International
Conference on Machine Laming and Cybernetics.
[9] Inoue, K., Miyazaki, R., Suzuki, M. (1998) “Optical
Recognition of Printed Mathematical Documents”,
Proceedings of the 3th Asian Technology Conference in
Mathematics, Springer-Verlag, pp. 280–289.
[10] Singh, R., Yadav, C.S., Verma, P., Yadav, V. (JanuaryJune 2010). Optical Character Recognition (OCR) for
Printed Devnagari Script Using Artificial Neural
Network, International Journal of Computer Science &
Communication,v.1, n.1, pp.91-95.
[11] Koga, M., Mine, R., Kameyama, T., Takahashi, T. (2005)
Camera-based Kanji OCR for Mobile-phones: Practical
Issues, Proceedings of the 2005 Eight International
Conference on Document Analysis and Recognition,
ICDAR’05.
[12] Park, J., Kwon, Y.-B. (2009). An Embedded OCR: A
Practical Case Study of Code Porting for a Mobile
Platform, Chinese Conference on Pattern Recognition,
CCPR ’09.[12]
[13] Rodríguez, A., Kim, S., Kim, J.H., B.- Fernández, Y.
(2009). “English to Spanish Translation of Signboard
Images from Mobile Phone Camera”,
IEEE
SOUTHEASTCON '09
[14] Yong Liu, “Simultaneous Trainin of Negatively
Correlated Neural Networks in an Ensemble” ,
IEEE(1999)
[15] J.V Salcedo, M. Martinez, J.M. Herreroand C. Ramos,
“Computer implementation of Rosen Algorithm:
Application to control engineering”, Department of
System Engineering and Control, Spain
[16] Zeke S. H. Chanand Nik Kasabov “Neural Network
Ensembles
via
Negative-Correlation
Learning”,
IEEE(November 2005)
[17] Xin Yao and Yong Liu, ”Evolving Neural Network
Ensembles by Minimization of Mutual Information”,
IEEE
[18] Yong Liu, Xin Yao, Qiangfu Zhaoand Tetsuya Higuchi
“An experimental Comparison of Ensemble Learning
Method on Decision Boundaries”, IEEE(2000)
109
Download