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 burcu.kir@kocaeli.edu.tr 2 Bilgisayar Mühendisliği Bölümü Sakarya Üniversitesi coz@sakarya.edu.tr 3 Bilgisayar Mühendisliği Bölümü Sakarya Üniversitesi agulbag@sakarya.edu.tr 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