Bir Bilgisayar Mühendisi İçin Programlama Dili, Öğrendiklerini Sınadığı, Deneyler Yaptığı Bir Labaratuardır. Ve Mühendisler Deneylerini, Kestiremedikleri Sonuçları Gözlemlemek İçin Değil, Öngördükleri Sonuçları Doğrulamak İçin Yaparlar...
Yapay Sinir Ağları
 
Üye Girişi
E-mail:

Şifre:



 
Blog Arama Motoru
 
Son Güncellenenler
 
Sosyal Ağlarda Paylaş
 
  YSA İle Karakter Tanıma
   Yapay sinir ağlarının kullanım alanlarından biri de optik karakter tanımlama(Optical Character Recognition) işlemi. Bunun yöntemini anlatmadan önce artık YSA ile ilgili bir sorunumuz olmadığını varsayıyorum.

   Bu konuda karşılaşacağımız ilk problem karakterleri YSAya nasıl göstereceğimiz. YSA sadece bit girişi ve çıkışı kabul eder. Bu sorunu çözmek için sık kullanılan matris yöntemini kullanmamız uygun olacaktır. İçinde karakterimizi çizdiğimiz resmimizi matrisin elemanları olacak olan parçalara ayırmamız lazım. Parça sayısının çok fazla önemi yok, ben 8x6 matris tercih ediyorum. Çünkü büyük karakterlerin boyları enlerinden daha uzun. Resmi parçalara ayırdıktan sonra her bir parça içerisinde tam ortada temsilci pixel diye nitelendirebileceğimiz bir pixel seçip bu pixelin değerini okuyoruz. Eğer pixel siyahsa giriş değeri 1 beyazsa giriş değeri 0 olacak. Bu işlemi tüm parçalar bitinceye kadar yapıp her bir değeri giriş dizimize atıyoruz. Böylece elimizde 48 elemanlı bir giriş dizisi oldu.

   YSAyı eğitebilmek için bir de çıkış dizisi gerekiyor. Nasıl ki her karakterin giriş dizisi farklıysa, çıkış dizisi de farklı olmalı ve sadece 1-0 lardan oluşmalı. Çıkış dizisi olarak her karakterin ascii değerine karşılık gelmek üzere 8 bitlik bir dizi seçilebilir. Ya da karakter sayısı kadar çıkış elemanı içeren bir dizi de işimizi görür. Bu ikinci yöntemde belirtilmek istenen karakterin sırasındaki elemana 1, diğerlerine 0 değeri atanır. Böylece her karakter için farklı bir çıkış dizisi elde edilebilir. Üstelik YSA her bir çıkış nöronundan 0 ile 1 arasında değer döndüreceğinden, bu değeri 100 ile çarparak %lik sonuç elde edebiliriz. Böylece YSAnın çalışma yöntemini ve eğitildikçe %de meydana gelecek artışı daha iyi gözlemleyebiliriz.

   Bu işlemleri tamamladıktan sonra YSAmızı binlerce kez eğitmemiz lazım. Herşey bittiğinde elimizde ezberlemiş değil öğrenmiş bir program olacak.

Yapay sinir ağı ile karakter tanıma

   Yukarda ekran görüntüsü bulunan visual basic ile yazdığım örnek programda, YSAyı sadece arial fontunun tek tip harfleri ile eğittim ve elle farklı iki A harfi çizerek bunları tanımasını istedim. Program 29 harf arasından bu iki A harfini tanımayı başardı. Değişen şey %lik değer. Çizdiğim harf ile arial fontunun harfi arasındaki benzerlik ne kadar fazla ise yüzdelik değer de o kadar büyük oldu.

   Görüldüğü üzere YSA öğrendiği bilgileri genelleştirir. Kendisine verilen veriler, eğitim esnasında verilen verilerden farklı olsa bile bu farklılıklara uyum sağlayabilir. Bu algoritma ile ilk karşılaştığımda "Veriyi veritabanına kaydederim, ne farkedecek?" diye sormuştum, işte cevap bu...
 
Okunma Sayısı: 933
Yayınlanma Tarihi: Blogun eski sürümü ile yazılmış, tarih kaydı bulunmuyor...
Anahtar Kelimeler: visual, basic, optik, karakter, tanımlama, el, yazısı, yapay, sinir ağı
Yorumlar ( 4 )
Ali SÜRÜCÜ
#1

14/12/2009, 09:59

Merhaba;
bu konu ile alakalı bir projem var. Herhangi bir dilde geliştirebilirim. Bu konuda yardımcı olabilirmisiniz?

İyi çalışmalar.
Hüseyin Atasoy
#2

18/12/2009, 19:00

Projenizde takıldığınız bir yer olursa elimden geleni yaparım.
nlsen
#3

25/03/2010, 13:03

çok güzel anlatmışsınız. benimde matlabda böyle bir proje yapmam gerekiyor. yardımcı olabilirseniz çok sevinirim.mailinizi bekliyorum.
koder
#4

29/04/2010, 23:27

Merhaba hocam
Ben de ysa ile karakter tanıma projesi yapıyorum da görüntü işleme kısmnı bitirdim ancak ysa kısmında takıldım Projenizi göndermeniz mümkün mü acaba? çok teşekkürler..
Yorum/Görüş Bildir
Yorumları html kodu veya özel karakter kullanmadan, yazım kurallarına
dikkat ederek ve düzgün bir Türkçe kullanarak yazalım...
 
    Atasoy Blog v3.0 © 2009-2010 Hüseyin Atasoy | Tema Tasarımı: Hüseyin Atasoy
AtasoyWeb 1 yaşında, bu tema benden ona doğum günü hediyesi :)    
Programlama Günlüğü > Yapay Sinir Ağları > YSA İle Karakter Tanıma
Menü