SlideShare a Scribd company logo
1 of 30
Download to read offline
T.C.
GEBZE TEKNİK ÜNİVERSİTESİ
Bilgisayar Mühendisliği Bölümü
YAPAY SİNİR AĞI TABANLI
KARAKTER TANIMA
Büşra ERKAN
Danışman
Yrd. Doç. Dr. Burcu YILMAZ
Ocak, 2017
Gebze, KOCAELİ
ii
ii
i
T.C.
GEBZE TEKNİK ÜNİVERSİTESİ
Bilgisayar Mühendisliği Bölümü
YAPAY SİNİR AĞI TABANLI
KARAKTER TANIMA
Büşra ERKAN
Danışman
Yrd. Doç. Dr. Burcu YILMAZ
Ocak, 2017
Gebze, KOCAELİ
iv
v
Bu çalışma / /20 tarihinde aşağıdaki jüri tarafından Bilgisayar Mühendisliği
Bölümünde Lisans Bitirme Projesi olarak kabul edilmiştir.
Bitirme Projesi Jürisi
Danışman Adı Yrd. Doç. Dr. Burcu YILMAZ
Üniversite Gebze Teknik Üniversitesi
Fakülte Mühendislik Fakültesi
Jüri Adı Doç. Dr. Mehmet GÖKTÜRK
Üniversite Gebze Teknik Üniversitesi
Fakülte Mühendislik Fakültesi
Jüri Adı Doç. Dr. Erchan APTOULA
Üniversite Gebze Teknik Üniversitesi
Fakülte Mühendislik Fakültesi
vi
ÖNSÖZ
Bitirme çalışmam sırasında engin bilgisiyle bana her zaman yol gösteren Sayın Yard.
Doç. Dr. Burcu YILMAZ hocama ve bu çalışmayı destekleyen Gebze Teknik
Üniversitesi’ne içten teşekkürlerimi sunarım.
Ayrıca eğitimim süresince bana her konuda destek veren aileme ve bana hayatlarıyla
örnek olan tüm hocalarıma saygı ve sevgilerimi sunarım.
Ocak, 2017 Büşra ERKAN
vi
i
İÇİNDEKİLER
ÖNSÖZ..................................................................................................VI
İÇİNDEKİLER ..................................................................................VII
KISALTMA LİSTESİ........................................................................... X
ÖZET.....................................................................................................XI
SUMMARY.........................................................................................XII
1. GİRİŞ ..................................................................................................1
2. PROJE TANIMI.................................................................................2
2.1. PROJENİN BAŞLATILMA NEDEN VE AMAÇLARI............................. 2
2.2. LITERATÜR ARAŞTIRMASI..................................................................... 3
2.3. PROJE GEREKSINIMLERI ....................................................................... 3
2.3.1. Fonksiyonel Gereksinimler .................................................................... 3
2.3.2 Fonksiyonel Olmayan Gereksinimler.................................................... 3
2.3.3. Sistemin Genel Özellikleri...................................................................... 4
2.4. BAŞARI KRITERLERI................................................................................ 4
3. PROJE PLANLAMASI.....................................................................4
3.1. SISTEM MIMARISI ..................................................................................... 4
3.1.1. UML Diyagramları ................................................................................. 5
3.1.1.1 Kullanım Durum Diyagramı ................................................................. 5
3.2. İŞ PLANI ........................................................................................................ 5
4. YÖNTEM............................................................................................5
4.1. YAPAY SİNİR AĞI MODELI....................................................................... 6
4.1.1. İleri Beslemeli Yapay Sinir Ağı .............................................................. 6
4.3. GÖRÜNTÜ İŞLEME..................................................................................... 8
4.3. ÖZELLIK ÇIKARIMI.................................................................................. 8
4.4. ÖĞRENME ALGORITMASI ...................................................................... 8
4.4.1. Geri Yayılım Algoritması........................................................................ 8
vi
ii
5. DENEYLER...................................................................................... 11
5. SONUÇ..............................................................................................15
ix
ŞEKİL LİSTESİ
ŞEKİL 2.1 Projenin Genel Çalışma Şeması………………………………….….….2
ŞEKİL 3.1.1.1.1 Sistemin Kullanım Durum Diyagramı………………………..…...5
ŞEKİL 4.1.1 İleri Beslemeli Yapay Sinir Ağı Modeli…………………………..…...7
ŞEKİL 4.3.1 Ağı Beslemek İçin Kullanılan Girdi Örneği…………………….…..…8
ŞEKİL 5.1. Eğitim için kullanılan örnek görüntü…………………………….…….12
ŞEKİL 5.2. Eğitim için kullanılan örnek görüntü…………………………………..12
ŞEKİL 5.3. Başarılı sonuç örneği…………………………………………………..13
ŞEKİL 5.4. Başarılı sonuç örneği……………………………………………….….13
ŞEKİL 5.5. Başarısız sonuç örneği………………………………………………....14
ŞEKİL 5.5. Karışıklık Matrisi………………………………………………….......15
x
KISALTMA LİSTESİ
YSA : Yapay Sinir Ağı
SVM : Destek Vektör Makinesi
HOG : Yönlü Gradientlerin Histogramı
G.T.Ü : Gebze Teknik Üniversitesi
xi
ÖZET
Bu rapor G.T.Ü. Bilgisayar Mühendiliği Bölümü 4. sınıfında hazırlanan Lisans
Bitirme Projesi olarak geliştirilen yapay sinir ağı implementasyonu ve yapay sinir
ağı tabanlı karakter tanıma uygulaması içeren sistemin tanımı, içeriği, başlatılma
nedenleri, amaçları ve sonuçlarını içermektedir.
Gerçek dünya görüntüleri üzerinde metin bulma ve tanıma problemi son zamanlarda
üzerinde çokça çalışılmış bir bilgisayarlı görme problemidir [1]. Bu çalışmalara
örnek olarak Google Sokak Görünümü uygulaması benzeri uygulamalar verilebilir.
Sistem, yapay sinir ağı yapısının java programlama dili ile implement edilmesi ve
yapay sinir ağı tabanlı karakter tanıma uygulamasını gerçeklemektedir. Karakter
tanıma problemi günümüzde farklı yöntemlerle çözülmüş bir problemdir. Yapay
sinir ağı çok sayıda problemin çözümünde başarılı sonuçlar vermiştir. Bu proje
kapsamında yapay sinir ağının, karakter tanıma işlemini yapacağı bir sistem
tasarlanmıştır.
xi
i
SUMMARY
The problem of finding and recognizing text on real-world images is a computer
vision problem that has been worked on lately.
The system implements feed forward artificial neural network in java programming
language and recognizes character using artificial neural networks. Character
recognition problem is a problem solved by different methods today. Artificial
neural networks have been successful in solving many problems. Artificial neural
network based character recognition was applied in this project.
By means of the developed software, the training of the artificial neural network
according to the inputs provided and a test action can be performed.
1
1. GİRİŞ
Yapay sinir ağları, insan beyninin özelliklerinden olan öğrenme yolu ile yeni bilgiler
türetebilme, yeni bilgiler oluşturabilme ve keşfedebilme gibi yetenekleri herhangi
bir yardım almadan otomatik olarak gerçekleştirmek amacı ile geliştirilen bilgisayar
sistemleridir [2]. Yapay sinir ağları, olayların örneklerine bakmakta onlardan ilgili
olaya hakkında genellemeler yapmakta, bilgiler toplamakta ve daha sonra hiç
görmediği örnekler ile karışılışınca öğrendiği bilgileri kullanarak o örnekler
hakkında karar verebilmektedir.
Yapay sinir ağı modeli geliştirilmiş ve sayısız uygulama ortaya çıkmıştır. Bu
çalışmalar aslında insan beyninin nasıl çalıştığı ve öğrenme olayını nasıl
gerçekleştirdiğini merak etme sonucunda ortaya çıkmıştır. Yapılan çalışmalar ile
bilgisayarların öğrenebildikleri ve başarılı sonuçlar ürettikleri görülmektedir [3].
Karakter tanıma, uzun yıllar boyunca üzerinde çokça çalışma yapılmış bir araştırma
alanıdır. Karakter tanımanın amacı, insanoğlunun okuma özelliğini, insana göre çok
daha hızlı çalışan bilgisayara taklit ettirmek olarak belirtilebilir [4]. Bu projede
karakter tanıma probleminin özelleşmiş bir formu gerçekleştirilecektir.
2
2. PROJE TANIMI
Günümüzde tablet, telefon ya da herhangi bir arayüz üzerine yazılan karakterlerin,
bilgisayar tarafından tanınması ve sınıflandırılması oldukça kullanılan uygulamalar
arasında yer almaktadır [5]. Bu proje, ingilizce karakterlerin olduğu bir veri seti
üzerinde çalışan bir karakter tanıma sisteminin tasarım ve implementasyonunu
gerçekleştirilmesini içerir. Karakterlerinin tanımlanması için yapay sinir ağları
kullanılacaktır. Yapay sinir ağı için hazır bir araç kullanılmayacak, yapay sinir ağı
implementasyonu java programlama dili kullanılarak yapılacaktır.
Şekil 2.1 Projenin Genel Çalışma Şeması
2.1. PROJENİN BAŞLATILMA NEDEN VE AMAÇLARI
Bu proje yapay sinir ağlarının karakter tanıma problemi üzerinde çalışmasını
gerçekleştirmek üzere tasarlanmıştır. Projenin başlatılmasındaki iki temel neden
aşağıdaki gibidir:
 Yapay sinir ağları algoritmalarından bir tanesinin implementasyonunu
yapmak.
3
 Karakter tanıma problemini yapay sinir ağı kullanılarak çözülmesini
sağlamak.
2.2. LİTERATÜR ARAŞTIRMASI
Yapılan literatür araştırması sonucunda, çeşitli görüntüler üzerinde metin bulma ve
tanıma problemini çözmek amacıyla bir çok çalışma yapıldığı gözlemlenmiştir.
Yapılan çalışmalarda ileri beslemeli sinir ağı modelinin benzer çalışmalarda
kullanılmış ve başarılı sonuçlar vermiş olması göz önünde bulundurularak ağ
modeli olarak ileri yönlü bilgi akışı sağlayan bu model tercih edilmiştir. Ağın
eğitimi aşamasında ileri beslemeli ağlar ile birlikte yüksek başarı sağladığı görülen
geri yayılım algoritması kullanılmıştır.
2.3. PROJE GEREKSİNİMLERİ
Proje gereksinimlerini fonksiyonel gereksinimler ve fonksiyonel olmayan
gereksinimler diye iki başlık altında ifade etmek daha doğru olacaktır.
Bu kısımda fonksiyonel gereksinimler sistemin iç yapısına ait detaylara yer
verirken, fonksiyonel olmayan gereksinimler, performans, kullanım kolaylığı gibi
kullanılabilirlik ile alakalı gereksinimlere yer vermektedir.
2.3.1. Fonksiyonel Gereksinimler
Fonksiyonel gereksinimler şu şekildedir;
 İleri beslemeli geri yayılımlı yapay sinir ağının implement edilmesi
 Sinir ağının eğitilmesi
 Arayüzden alınan görüntünün yapay sinir ağına verilerek tanınması
 Tahminin kullanıcı arayüzüne sunulması
2.3.2 Fonksiyonel Olmayan Gereksinimler
Fonksiyonel olmayan gereksinimler şu şekildedir;
 Sistemin kullanıcı dostu bir arayüze sahip olmalıdır.
 Geliştirilebilir, yeni karakterler eklemeye açık bir tasarıma sahip olmalıdır.
4
2.3.3. Sistemin Genel Özellikleri
 Sistem gerçek zamanlı olarak çalışmalıdır.
 Sistem 32/64 bit bilgisayarlarda çalışabilmelidir.
2.4. BAŞARI KRİTERLERİ
Proje bitiminin hangi ölçülerde başarılı olduğunun değerlendirilebilmesi için
oldukça önemli olan başarı ölçütümüz bu başlık altında belirtilecektir. Bunlar;
 Karakterin tanınma süresi 1 saniyeden az olmalıdır.
 Karakterin tanınma başarısı en az %75 olmalıdır.
 En az 300x300 piksellik bir alan üzerine yazılmış tüm karakterler için
çalışmalıdır.
3. PROJE PLANLAMASI
3.1. SİSTEM MİMARİSİ
Bitirme projesi kapsamında geliştirilen bu sistemde, java programlama dili
kullanarak bir masaüstü uygulaması geliştirilecektir. Kullanıcıdan alınan girdi
aşağıdaki adımlar takip edilerek işlenir.
1. Arayüz üzerinden program girdisi alınır.
2. Görüntü üzerinde özellik çıkarımı yapılır.
3. Elde edilen veri ağa girdi olarak verilir.
4. Ağın çıktısı arayüz üzerinden kullanıcıya sunulur.
5
3.1.1. UML Diyagramları
3.1.1.1 Kullanım Durum Diyagramı
Şekil 3.1.1.1.1 Sistemin Kullanım Durum Diyagramı
3.2. İŞ PLANI
Bu projenin iş planı 5 bölümden oluşmaktadır. Bunlar;
 Literatür araştırması
 Veri seti oluşturulması
 Yapay sinir ağı implementasyonunun yapılması
 Arayüz tasarımı
 Test
4. YÖNTEM
Karakter tanıma görüntüler üzerindeki karakterlerin ya da metin bilgilerinin
okunarak işlenmesi olduğundan bu işlem için çeşitli görüntülerin veya metinlerin
bilgisayar tarafından işlenebilecek sayısal veriler haline dönüştürülmesi
gerekmektedir. Sayısal verilerin anlamlandırılması için görüntü işlemenin temel
6
adımlarından bu sayısal verilerin filtrelenmesi gerekmektedir. Bu problemin temel
adımları görüntü işleme, özellik çıkarma ve sınıflandırmadır.
4.1. YAPAY SİNİR AĞI MODELİ
4.1.1. İleri Beslemeli Yapay Sinir Ağı
Belirsiz, gürültülü ve eksik bilgilerin işlenmesinde yapay sinir ağları başarıyla
kullanılmaktadır [6]. Ysa'lar, ağırlıklandırılmış şekilde birbirlerine bağlanmış birçok
işlem biriminden (nöronlar) oluşan matematiksel sistemlerdir. İşlem birimi, transfer
fonksiyonu olarak anılan bir denklemdir. Bu işlem birimi, diğer nöronlardan
sinyalleri alır; bunları birleştirir, dönüştürür ve sayısal bir sonuç ortaya çıkartır.
Genelde, işlem birimleri kabaca gerçek nöronlara karşılık gelirler ve bir ağ içinde
birbirlerine bağlanırlar; bu yapı da sinir ağlarını oluşturmaktadır.
Çok katmanlı bir ileri besleme ağı Şekil 4.1.1’de verilmiştir.
Giriş Katmanı
Bu katmandaki işlem elemanları, dışardan bilgileri alarak bir sonraki katman olan
ara katmanlara transfer ederler. Giriş katmanındaki nöron sayısı bir sınıflandırma
çalışması için sınıf sayısı kadar olmalıdır [7].
Ara Katman (Gizli Katman)
Giriş katmanından gelen bilgiler islenerek çıkış katmanına gönderilirler. Ara katman
sayısı ağdan ağa değişebilir. Bazı yapay sinir ağlarında ara katman bulunmadığı gibi
bazı yapay sinir ağlarında ise birden fazla ara katman bulunmaktadır. Ara
katmanlardaki nöron sayıları giriş ve çıkış sayısından bağımsızdır. Birden fazla ara
katman olan ağlarda ara katmanların kendi aralarındaki nöron sayıları da farklı
olabilir. Ara katmanların ve bu katmanlardaki nöronların sayısının artması
hesaplama karmaşıklığını ve süresini arttırmasına rağmen yapay sinir ağının daha
karmaşık problemlerin çözümünde de kullanılabilmesini sağlar.
7
Çıkış Katmanı
Çıkış katmandaki işlem elemanları ara katmandan gelen bilgileri işleyerek ağın girdi
katmanından sunulan girdi seti için üretilmesi gereken çıktıyı üreten katmandır ve
üretilen çıktı dışarıya gönderilir. Geri beslemeli ağlarda bu katmanda üretilen çıktı
kullanılarak ağın yeni ağırlık değerleri hesaplanır.
Şekil 4.1.1 İleri Beslemeli Yapay Sinir Ağı Modeli
Bu projede yapay sinir ağının ileri beslemeli modeli ve öğrenme için geri yayılım
algoritması kullanılmıştır. İleri beslemeli YSA’da tek yönlü bilgi akışı vardır.
Hücreler katmanlar şeklinde düzenlenir ve bir katmandaki hücrelerin çıkışları bir
sonraki katmana ağırlıklar üzerinden giriş olarak verilir. Giriş katmanı, dış
ortamlardan aldığı bilgileri hiçbir değişikliğe uğratmadan orta (gizli) katmandaki
hücrelere iletir. Bilgi, orta ve çıkış katmanında işlenerek ağ çıkışı belirlenir. Bu
yapısı ile ileri beslemeli ağlar doğrusal olmayan statik bir işlevi gerçekleştirir.
8
4.3. GÖRÜNTÜ İŞLEME
Görüntü işleme, nesnenin görüntüsünü işleyerek istenilen özelliklerin çıkarılmasına
zemin hazırlanması aşamasıdır [8]. Görüntü işleme ile veriler amaca uygun bir hale
getirilir. Sistemde, alınan görüntüler öncelikle ölçeklendirilerek belirli ölçülere
getirilmektedir. Ölçeklendirilen görüntüler siyah-beyaz görüntülere çevrildikten
sonra, Gauss filtresi kullanılarak gürültüleri giderilmektedir.
4.3. ÖZELLİK ÇIKARIMI
İlk olarak görüntüler siyah-beyaz görüntüye çevrilir. Bu sayede görüntü binary
formata dönüştürülmüş olur. Gauss filtresi kullanılarak gürültülerden arındırılan
görüntülerin sınır değerleri bulunarak kırpılır. Kırpılan görüntü belirlenen bir boyuta
getirilir. Bu işlem sırasında her bir kutucuğun değerini belirlemek için ikinci bir
threshold yapılır [9]. Böylece elimizde ağ için uygun bir giriş elde edilmiş olur. Ağı
beslemekte kullanılan örnek girdi Şekil 4.3.1’de görülmektedir.
Şekil 4.3.1 Ağı Beslemek İçin Kullanılan Girdi Örneği
4.4. ÖĞRENME ALGORİTMASI
4.4.1. Geri Yayılım Algoritması
Öğrenme süreci, istenen amaca ulaşmak için YSA ağırlıklarının yenilenmesini
sağlayan öğrenme algoritmalarını gerçekleştirir [10]. En çok bilinen geriye yayılım
öğrenme algoritması, ileri beslemeli YSA’ların eğitiminde etkin olarak
kullanılmaktadır. Yapay sinir ağı için öğrenme işlemi, ağırlıkların en iyi değerinin
bulunmasıdır. Yapay sinir ağlarında bilgi, ağdaki sinirlerin bağlantılarının
9
ağırlıklarında tutulur. Bu nedenle ağırlıkların nasıl belirleneceği önemlidir. Bilgi
tüm ağda saklandığı için bir düğümün sahip olduğu ağırlık değeri tek başına bir şey
ifade etmez. Tüm ağdaki ağırlıklar optimal değerler almalıdır. Bu ağırlıklara
ulaşılabilmesi için yapılan isleme “ağın eğitilmesi” denir. Buna göre bir ağın
eğitilebilir olabilmesi için ağırlık değerlerinin belirli bir kural dahilinde dinamik
olarak değiştirilebilir olması gerekmektedir [11].
Bir model ağı eğitmekteki amaç, bir giriş setine karşılık olarak özel bir fonksiyonel
karakteristiği elde edebilmek için çıkışlar oluşturmak üzere ağırlıkları ayarlamaktır.
Eğitmenin tam olabilmesi için her bir giriş vektörüne karşılık istenen çıkış
vektörünü gösteren bir hedef çıkış vektörü olmalıdır. Bu giriş ve hedef çıkışı
vektörleri bir eğitim çifti oluşturur. Eğitilmiş bir ağdaki hedef çıktı ile ağ çıktısı eşit
olmalıdır. Eşitlik olmadığı durumda, aralarındaki fark hatadır. Bu hatanın mümkün
olduğunca azaltılması amacı ile ağ ağırlık parametrelerini yenileme işlemi geriye
yayılım olarak tanımlanır.
Hata :
Çıkış ile gizli katman arasındaki ağırlıkların yenilenmesi;
formülleri ile gerçekleştirilir. Burada, n iterasyon sayısı, η öğrenme katsayısı, α
momentum katsayısıdır. Gizli katman ile giriş katmanı arasındaki ağırlıkların
yenilenmesi ise;
10
formülleri ile gerçekleştirilir. Bu basamaklar ağdaki toplam hatanın istenen belli bir
sınır değerinin altına düşünceye kadar tekrar edilir. Bu hata limiti elde edildiğinde
ise “ağ yapılacak işi öğrendi” denilir. Ağ bir kere öğretildiği zaman elde edilen
ağırlık değerleri saptanır ve bu ağırlık değerleri ağın ihtiyacı durumunda tekrar
kullanılır. Ağ daha sonraki uygulamalarda öğrenilen bu ağırlıkları kullanacaktır
(Richard, 1987; Abulafya, 1995).
Bu çalışmada öğrenme kuralı olarak genişletilmiş delta kuralı ve öğrenme stratejisi
olarak da eğiticili öğrenme kullanılmıştır.
Genişletilmiş delta kuralına göre öğrenme aşağıdaki aşamalarda gerçekleşir.
1- Ağın yapısı belirlenir.
• Giriş (nöron) sayısı
• Çıkış (nöron) sayısı
• Gizli katman sayısı ve gizli katmandaki nöron sayıları
2- Ağın başlangıç parametreleri belirlenir.
• Başlangıç ağırlıkları
• Öğrenme katsayısı
• Momentum katsayısı
3- Giriş ve çıkış verileri ağın değerlendirebileceği şekilde düzenlenir. (normalize
edilir).
4- İleri beslemeli ağ yapısına göre ağ çıktıları hesaplanır.
11
5- Ağ çıktısı ile gerçek çıktı arasındaki hata bulunur.
6- Hata minimum ise ağ problemi öğrendi. Öğrenmeyi durdur.
7- Hata minimum değilse; geriye yayılım ağ yapısına göre hatayı minimize edecek
şekilde ağırlıklar hesaplanır.
8- Adım 3’e gidilerek işleme devam edilir.
5. DENEYLER
Bu kısımda projenin başlangıcından şuan gelinen noktaya kadar uygulanan
yöntemlerin sonuçları birbirleriyle karşılaştırılarak gösterilecektir. Deneyler i5-
M460 CPU ve 4 GB Ram donanımına sahip dizüstü bilgisayarda
gerçekleştirilmiştir.
Öncelikle çok bilinen bir veri seti olan iris veri seti üzerinde yapay sinir ağı test
edilerek implementasyonu yapılmıştır. Yapay sinir ağı modeli olarak, ileri
beslemeli geri yayılımlı model seçilmiştir. İleri beslemeli yapay sinir ağında bilgi
akışı tek yönlü olarak ileri doğru gerçekleştirilmiştir.
Karakter tanıma işlevini yerine getirebilmek için öncelikle İngilizce karakterleri
içeren bir veri seti oluşturulmuştur. Veri seti oluşturulurken her karakter için yeterli
sayıda ve yeterli nitelikte olan görüntüler seçilmiştir. Veri seti literatürdeki benzer
projelerin veri setlerinden alınan görüntüler ile tarafımdan oluşturulmuş görüntülerin
birleştirilmesi ile oluşturulmuştur. Kullanılan görüntüler test sırasında alınacak
görüntülerle benzemesi açısından beyaz bir zemin üzerine siyah kalem ile çizilmiş
olanlardan seçilmiş ve oluşturulmuştur. Test ve eğitim aşamasında kullanılan
görüntülerin benzer olması sistemin başarısını artırmada önemli bir etken olduğu
gözlenmiştir. Bu durum tüm makine öğrenmesi yöntemleri için geçerli bir
durumdur. Veri setinin probleme uygun ve fazla sayıda örnek içermesi çalışmaların
başarısını arttırmada önemli bir etkiye sahiptir.
Verilerin işlenmesi aşamasında öncelikle görüntüler ölçeklendirilmeden işleme
yapılmıştır. Fakat bu işlemlerin uzun zaman almasından dolayı iyileştirme amaçlı
12
olarak görüntülerin ölçeklendirilmesi yöntemine başvurulmuştur. Böylece her
görüntünün boyutu azalmış ve işlenme süresi de buna bağlı olarak kısalmıştır.
Şekil 5.1. Eğitim için kullanılan örnek görüntü
Şekil 5.2. Eğitim için kullanılan örnek görüntü
Yapay sinir ağının başarısını arttırmak için uygun başlangıç parametreleri deneme
yanılma yöntemiyle her değişiklik sonrası tekrar bulunarak güncellenmiştir.
Sistemin başarılı çıktı örnekleri aşağıdaki gibidir.
13
Şekil 5.3. Başarılı sonuç örneği
Şekil 5.4. Başarılı sonuç örneği
14
Yapılan testler sırasında, her karakter için başarı oranının aynı olmadığı
gözlemlenmiştir. Veri seti içinde benzeri bulunan harflerde başarı daha düşük
olmaktadır. Şekil 5.5’te P harfinin F harfi olarak yanlış tanıması görülmektedir.
Şekil 5.5. Başarısız sonuç örneği
Manuel olarak 300 görüntü üzerinde yapılan testlerde sistemin tanıma başarısı 42
yanlış cevap ile %86 olarak ölçülmüştür. Sistem tanıma işlemi için 1 saniyeden kısa
bir zamanda sonuç üretebilmektedir. Bu çalışmada kullanılan veri setinin
doğruluğunu sınamak için Weka kullanılmış ve başarısı %82.08 olarak ölçülmüştür.
Yapay sinir ağının başarısı ise %78.49 olarak belirlenmiştir.
15
Şekil 5.6. Karışıklık Matrisi
Aynı veri seti üzerinde Destek vektör makineleri (SVM) kullanılarak başarı
ölçümleri yapılmıştır. Bu deney sırasında Opencv kütüphanesinin fonksiyonları
kullanılmıştır. Opencv kütüphanesinin fonksiyonu kullanıldığı için bu yöntemde
daha başarılı sonuçlar elde edilmiştir. K çapraz doğrulama yöntemi ile aynı veri
setinin başarısı %94.77 olarak ölçülmüştür. Benzer çalışmalarda da destek vektör
makinelerinin yapay sinir ağlarından daha doğru sonuçlar verdiği görülmüştür.
Fakat farklı problemlerde yapay sinir ağları daha doğru sonuç verebilmektedir. Bu
durum probleme ve görüntülerden özellik çıkarım yöntemine göre farklılık
gösterebilmektedir.
5. SONUÇ
Bu raporda projenin ana fonksiyonu olan karakter tanıma ve yapay sinir ağ
modelinin nasıl implement edildiği, oluşturulan ağın geri yayılım algoritması
kullanılarak nasıl eğitildiği ve nasıl test edildiği genel hatlarıyla açıklanmıştır.
16
Yapay sinir ağları genelleme yeteneğine sahip olması, hatalara karşı toleranslı
olması ve esneklikleri sayesinde eksik verilerle bile doğru çalışma yeteneğine sahip
bir yöntemdir [12]. Bu sebeple, karakter tanıma gibi çalışmalarında yapay sinir ağı
sıkça kullanılan bir yöntem olmuştur. Projede ileri beslemeli yapay sinir ağının
seçilmesinin nedeni yapılmış olan literatür araştırmasında benzer projelerde
kullanılmış ve başarılı sonuçlar almış olmasıdır. Ağın eğitimi için ileri beslemeli
ağlar ile beraber kullanıldığında başarılı sonuçlar veren geri yayılım algoritması
kullanılmıştır. Yapılan çalışmalar k çapraz doğrulama yöntemi ile doğruluğu
sınanarak yürütülmüştür. K çapraz doğrulama yöntemi için weka yazılımı
kullanılmıştır. Veri seti için %82.08, yapay sinir ağı için %78.49 oranında başarılı
sonuçlar alınmıştır.
Sistemin daha yüksek başarı ile çalışabilmesi için özellik çıkarımında daha başarılı
olan yöntemler kullanılabilir. Yönlü gradientlerin histogramı olarak bilinen HOG bu
yöntemlerden biridir. HOG benzer çalışmalarda yapay sinir ağları ve diğer
yöntemlerle beraber kullanıldığında başarılı sonuçlar verebilmektedir. Veri setinin
arttırılması da sistemin daha yüksek bir başarıya ulaşmasını sağlayacaktır. Daha
büyük ve çeşitli görüntülerden oluşan bir veri seti daha iyi bir öğrenme
sağlayacaktır. Bu sayede sistemin test aşamasındaki başarısı da artmış olacaktır.
17
KAYNAKLAR
[1] Chen, Xiangrong, and Alan L. Yuille. "Detecting and reading text in natural
scenes." Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings
of the 2004 IEEE Computer Society Conference on. Vol. 2. IEEE, 2004.
[2] Jain, Anil K., Jianchang Mao, and K. Moidin Mohiuddin. "Artificial neural
networks: A tutorial." IEEE computer 29.3 (1996): 31-44
[3] Patil, Vijay, and Sanjay Shimpi. "Handwritten English character recognition
using neural network." Elixir Comp. Sci. & Engg 41 (2011): 5587-5591.
[4] Sharma, Ankit, and Dipti R. Chaudhary. "Character recognition using neural
network." International Journal of Engineering Trends and Technology (IJETT)-
Volume4 (2013): 662-667.
[5] Aydın, Musa, and Enes Çelik. "Yapay Sinir Ağları ile Assamese Karakter
Tanıma." Signal Processing and Communications Applications Conference, 2013.
[6] ERDEM, O. Ayhan, and U. Z. U. N. Emre. "YAPAY SİNİR AĞLARI İLE
TÜRKÇE TIMES NEW ROMAN, ARIAL VE ELYAZISI KARAKTERLERİ
TANIMA." Gazi Üniversitesi Mühendislik-Mimarlık Fakültesi Dergisi 20.1 (2005).
[7] Yapay Sinir Ağları (YSA) Nedir?, Yapay Sinir Ağları (Artificial Neural
Network), http://kod5.org/.
[8] Sharma, Ankit, and Dipti R. Chaudhary. "Character recognition using neural
network." International Journal of Engineering Trends and Technology (IJETT)-
Volume4 (2013): 662-667.
[9] Patil, V. V., Rajharsh Vishnu Sanap, and Rohini Babanrao Kharate. "Optical
character recognition using artificial neural network." Int. J. Eng. Res. General
Sci 3.1 (2015).
18
[10] Arnold, Rókus, and Póth Miklós. "Character recognition using neural
networks." Computational Intelligence and Informatics (CINTI), 2010 11th
International Symposium on. IEEE, 2010.
[11] Prasad, Kauleshwar, and Shubham Agrawal. "CHARACTER RECOGNITION
USING NEURAL NETWORK." Int. J. Adv. Engg. Res. Studies/IV/II/Jan.-
March 90 (2015): 92.
[12] Ergezer, Halit, Mehmet Dikmen, and Erkan Özdemir. "Yapay sinir ağları ve
tanıma sistemleri." PiVOLKA 2.6 (2003): 14-17.

More Related Content

Viewers also liked

Russian Checkers Game Project
Russian Checkers Game ProjectRussian Checkers Game Project
Russian Checkers Game ProjectNicat Suleymanov
 
Python Image Kütüphanesi
Python Image KütüphanesiPython Image Kütüphanesi
Python Image KütüphanesiCaglar Dursun
 
Python Programlama Dili Eğitimi
Python Programlama Dili EğitimiPython Programlama Dili Eğitimi
Python Programlama Dili EğitimiEnes Ateş
 
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAKYÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAKRecep Holat
 
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...SELENGCN
 
Python İle Ağ Programlama
Python İle Ağ ProgramlamaPython İle Ağ Programlama
Python İle Ağ ProgramlamaOguzhan Coskun
 
Özgür Yazılımlarla Görüntü İşleme
Özgür Yazılımlarla Görüntü İşlemeÖzgür Yazılımlarla Görüntü İşleme
Özgür Yazılımlarla Görüntü İşlemeEnes Ateş
 
GDG Ankara - Women Tech Makers Etkinliği
GDG Ankara - Women Tech Makers EtkinliğiGDG Ankara - Women Tech Makers Etkinliği
GDG Ankara - Women Tech Makers Etkinliğiİbrahim KIVANÇ
 
2020 Yılında SEO: Yapay Zeka ve Makine Öğrenme Dünyasında SEO'nun Geleceği
2020 Yılında SEO: Yapay Zeka ve Makine Öğrenme Dünyasında SEO'nun Geleceği2020 Yılında SEO: Yapay Zeka ve Makine Öğrenme Dünyasında SEO'nun Geleceği
2020 Yılında SEO: Yapay Zeka ve Makine Öğrenme Dünyasında SEO'nun GeleceğiYiğit Konur
 
Mantıksal programlama
Mantıksal programlamaMantıksal programlama
Mantıksal programlamaBetul Kesimal
 
Mantıksal programlama
Mantıksal programlama Mantıksal programlama
Mantıksal programlama Betul Kesimal
 
BT Günlüğü Kasım - Aralık 2016
BT Günlüğü Kasım - Aralık 2016 BT Günlüğü Kasım - Aralık 2016
BT Günlüğü Kasım - Aralık 2016 Eylül Medya
 
Multıple intelligences theory kopya
Multıple intelligences theory   kopyaMultıple intelligences theory   kopya
Multıple intelligences theory kopyaihsan
 
Yapay Sinir Aglari
Yapay Sinir AglariYapay Sinir Aglari
Yapay Sinir Aglariahmetkakici
 

Viewers also liked (20)

Fann tool kılavuzu
Fann tool kılavuzuFann tool kılavuzu
Fann tool kılavuzu
 
Russian Checkers Game Project
Russian Checkers Game ProjectRussian Checkers Game Project
Russian Checkers Game Project
 
Python Image Kütüphanesi
Python Image KütüphanesiPython Image Kütüphanesi
Python Image Kütüphanesi
 
Python Programlama Dili Eğitimi
Python Programlama Dili EğitimiPython Programlama Dili Eğitimi
Python Programlama Dili Eğitimi
 
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAKYÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
YÜZ BULMA VE TANIMA SİSTEMLERİ KULLANARAK
 
Pratik caffe
Pratik caffePratik caffe
Pratik caffe
 
Ysa Uygulamasi
Ysa UygulamasiYsa Uygulamasi
Ysa Uygulamasi
 
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
YAPAY ZEKÂ VE DUYGUSAL ZEKÂ KULLANIM FARKLILIKLARININ İNCELENMESİ: TEKNOLOJİK...
 
Python İle Ağ Programlama
Python İle Ağ ProgramlamaPython İle Ağ Programlama
Python İle Ağ Programlama
 
Ysa dönem ödevi̇
Ysa dönem ödevi̇Ysa dönem ödevi̇
Ysa dönem ödevi̇
 
Özgür Yazılımlarla Görüntü İşleme
Özgür Yazılımlarla Görüntü İşlemeÖzgür Yazılımlarla Görüntü İşleme
Özgür Yazılımlarla Görüntü İşleme
 
GDG Ankara - Women Tech Makers Etkinliği
GDG Ankara - Women Tech Makers EtkinliğiGDG Ankara - Women Tech Makers Etkinliği
GDG Ankara - Women Tech Makers Etkinliği
 
2020 Yılında SEO: Yapay Zeka ve Makine Öğrenme Dünyasında SEO'nun Geleceği
2020 Yılında SEO: Yapay Zeka ve Makine Öğrenme Dünyasında SEO'nun Geleceği2020 Yılında SEO: Yapay Zeka ve Makine Öğrenme Dünyasında SEO'nun Geleceği
2020 Yılında SEO: Yapay Zeka ve Makine Öğrenme Dünyasında SEO'nun Geleceği
 
Mantıksal programlama
Mantıksal programlamaMantıksal programlama
Mantıksal programlama
 
Yapay sinir agları
Yapay sinir aglarıYapay sinir agları
Yapay sinir agları
 
Mantıksal programlama
Mantıksal programlama Mantıksal programlama
Mantıksal programlama
 
BT Günlüğü Kasım - Aralık 2016
BT Günlüğü Kasım - Aralık 2016 BT Günlüğü Kasım - Aralık 2016
BT Günlüğü Kasım - Aralık 2016
 
Yapay Sinir Ağları
Yapay Sinir AğlarıYapay Sinir Ağları
Yapay Sinir Ağları
 
Multıple intelligences theory kopya
Multıple intelligences theory   kopyaMultıple intelligences theory   kopya
Multıple intelligences theory kopya
 
Yapay Sinir Aglari
Yapay Sinir AglariYapay Sinir Aglari
Yapay Sinir Aglari
 

Similar to Yapay Sinir Ağı Geliştirmesi ve Karakter Tanıma

DDoS Benzetimi Projesi Raporu
DDoS Benzetimi Projesi RaporuDDoS Benzetimi Projesi Raporu
DDoS Benzetimi Projesi RaporuOğuzcan Pamuk
 
tacalan_proje_rapor_v4
tacalan_proje_rapor_v4tacalan_proje_rapor_v4
tacalan_proje_rapor_v4Ozan Taçalan
 
Nesne tabanlı programlama 1
Nesne tabanlı programlama 1Nesne tabanlı programlama 1
Nesne tabanlı programlama 1Erol Dizdar
 
FATİH PROJESİ: Kapak
FATİH PROJESİ: KapakFATİH PROJESİ: Kapak
FATİH PROJESİ: KapakErol Dizdar
 
Nesne tabanlı programlama 5
Nesne tabanlı programlama 5Nesne tabanlı programlama 5
Nesne tabanlı programlama 5Erol Dizdar
 
Derin Öğrenme (Deep Learning) Nedir?
Derin Öğrenme (Deep Learning) Nedir?Derin Öğrenme (Deep Learning) Nedir?
Derin Öğrenme (Deep Learning) Nedir?eburhan
 
e-kütüphane projesi
e-kütüphane projesie-kütüphane projesi
e-kütüphane projesicgoze
 
Alcak cozunurluklu-fotograflarin-goruntulenmesi-ve-bunlarin-optimizasyonu-ile...
Alcak cozunurluklu-fotograflarin-goruntulenmesi-ve-bunlarin-optimizasyonu-ile...Alcak cozunurluklu-fotograflarin-goruntulenmesi-ve-bunlarin-optimizasyonu-ile...
Alcak cozunurluklu-fotograflarin-goruntulenmesi-ve-bunlarin-optimizasyonu-ile...Yiğit Üncü
 
Hıza duyarlı kasis tez
Hıza duyarlı kasis tezHıza duyarlı kasis tez
Hıza duyarlı kasis tezgokhan1985
 
Implementation.pptx
Implementation.pptxImplementation.pptx
Implementation.pptxglkabakc
 
Internet programcılığı 5
Internet programcılığı 5Internet programcılığı 5
Internet programcılığı 5Erol Dizdar
 
Analist Eğitimi - Tüm Bölümler - [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler - [535 Slides]Erol Bozkurt
 
Yazilim Gelistirme Yöntemleri
Yazilim Gelistirme YöntemleriYazilim Gelistirme Yöntemleri
Yazilim Gelistirme Yöntemlerim_korkmaz
 
Sistem güvenliği
Sistem güvenliğiSistem güvenliği
Sistem güvenliğiOnur Şaner
 
Işletim sistemi kurulumu
Işletim sistemi kurulumuIşletim sistemi kurulumu
Işletim sistemi kurulumuErol Dizdar
 

Similar to Yapay Sinir Ağı Geliştirmesi ve Karakter Tanıma (20)

DDoS Benzetimi Projesi Raporu
DDoS Benzetimi Projesi RaporuDDoS Benzetimi Projesi Raporu
DDoS Benzetimi Projesi Raporu
 
tacalan_proje_rapor_v4
tacalan_proje_rapor_v4tacalan_proje_rapor_v4
tacalan_proje_rapor_v4
 
Nesne tabanlı programlama 1
Nesne tabanlı programlama 1Nesne tabanlı programlama 1
Nesne tabanlı programlama 1
 
H01
H01H01
H01
 
ders_1
ders_1ders_1
ders_1
 
FATİH PROJESİ: Kapak
FATİH PROJESİ: KapakFATİH PROJESİ: Kapak
FATİH PROJESİ: Kapak
 
Nesne tabanlı programlama 5
Nesne tabanlı programlama 5Nesne tabanlı programlama 5
Nesne tabanlı programlama 5
 
ders bilgi
ders bilgiders bilgi
ders bilgi
 
Derin Öğrenme (Deep Learning) Nedir?
Derin Öğrenme (Deep Learning) Nedir?Derin Öğrenme (Deep Learning) Nedir?
Derin Öğrenme (Deep Learning) Nedir?
 
e-kütüphane projesi
e-kütüphane projesie-kütüphane projesi
e-kütüphane projesi
 
Alcak cozunurluklu-fotograflarin-goruntulenmesi-ve-bunlarin-optimizasyonu-ile...
Alcak cozunurluklu-fotograflarin-goruntulenmesi-ve-bunlarin-optimizasyonu-ile...Alcak cozunurluklu-fotograflarin-goruntulenmesi-ve-bunlarin-optimizasyonu-ile...
Alcak cozunurluklu-fotograflarin-goruntulenmesi-ve-bunlarin-optimizasyonu-ile...
 
Hıza duyarlı kasis tez
Hıza duyarlı kasis tezHıza duyarlı kasis tez
Hıza duyarlı kasis tez
 
Implementation.pptx
Implementation.pptxImplementation.pptx
Implementation.pptx
 
Internet programcılığı 5
Internet programcılığı 5Internet programcılığı 5
Internet programcılığı 5
 
Ağ temelleri
Ağ temelleriAğ temelleri
Ağ temelleri
 
Analist Eğitimi - Tüm Bölümler - [535 Slides]
Analist Eğitimi - Tüm Bölümler -  [535 Slides]Analist Eğitimi - Tüm Bölümler -  [535 Slides]
Analist Eğitimi - Tüm Bölümler - [535 Slides]
 
Yazilim Gelistirme Yöntemleri
Yazilim Gelistirme YöntemleriYazilim Gelistirme Yöntemleri
Yazilim Gelistirme Yöntemleri
 
Sistem güvenliği
Sistem güvenliğiSistem güvenliği
Sistem güvenliği
 
Işletim sistemi kurulumu
Işletim sistemi kurulumuIşletim sistemi kurulumu
Işletim sistemi kurulumu
 
Sunu1
Sunu1Sunu1
Sunu1
 

Yapay Sinir Ağı Geliştirmesi ve Karakter Tanıma

  • 1. T.C. GEBZE TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü YAPAY SİNİR AĞI TABANLI KARAKTER TANIMA Büşra ERKAN Danışman Yrd. Doç. Dr. Burcu YILMAZ Ocak, 2017 Gebze, KOCAELİ
  • 2. ii
  • 3. ii i T.C. GEBZE TEKNİK ÜNİVERSİTESİ Bilgisayar Mühendisliği Bölümü YAPAY SİNİR AĞI TABANLI KARAKTER TANIMA Büşra ERKAN Danışman Yrd. Doç. Dr. Burcu YILMAZ Ocak, 2017 Gebze, KOCAELİ
  • 4. iv
  • 5. v Bu çalışma / /20 tarihinde aşağıdaki jüri tarafından Bilgisayar Mühendisliği Bölümünde Lisans Bitirme Projesi olarak kabul edilmiştir. Bitirme Projesi Jürisi Danışman Adı Yrd. Doç. Dr. Burcu YILMAZ Üniversite Gebze Teknik Üniversitesi Fakülte Mühendislik Fakültesi Jüri Adı Doç. Dr. Mehmet GÖKTÜRK Üniversite Gebze Teknik Üniversitesi Fakülte Mühendislik Fakültesi Jüri Adı Doç. Dr. Erchan APTOULA Üniversite Gebze Teknik Üniversitesi Fakülte Mühendislik Fakültesi
  • 6. vi ÖNSÖZ Bitirme çalışmam sırasında engin bilgisiyle bana her zaman yol gösteren Sayın Yard. Doç. Dr. Burcu YILMAZ hocama ve bu çalışmayı destekleyen Gebze Teknik Üniversitesi’ne içten teşekkürlerimi sunarım. Ayrıca eğitimim süresince bana her konuda destek veren aileme ve bana hayatlarıyla örnek olan tüm hocalarıma saygı ve sevgilerimi sunarım. Ocak, 2017 Büşra ERKAN
  • 7. vi i İÇİNDEKİLER ÖNSÖZ..................................................................................................VI İÇİNDEKİLER ..................................................................................VII KISALTMA LİSTESİ........................................................................... X ÖZET.....................................................................................................XI SUMMARY.........................................................................................XII 1. GİRİŞ ..................................................................................................1 2. PROJE TANIMI.................................................................................2 2.1. PROJENİN BAŞLATILMA NEDEN VE AMAÇLARI............................. 2 2.2. LITERATÜR ARAŞTIRMASI..................................................................... 3 2.3. PROJE GEREKSINIMLERI ....................................................................... 3 2.3.1. Fonksiyonel Gereksinimler .................................................................... 3 2.3.2 Fonksiyonel Olmayan Gereksinimler.................................................... 3 2.3.3. Sistemin Genel Özellikleri...................................................................... 4 2.4. BAŞARI KRITERLERI................................................................................ 4 3. PROJE PLANLAMASI.....................................................................4 3.1. SISTEM MIMARISI ..................................................................................... 4 3.1.1. UML Diyagramları ................................................................................. 5 3.1.1.1 Kullanım Durum Diyagramı ................................................................. 5 3.2. İŞ PLANI ........................................................................................................ 5 4. YÖNTEM............................................................................................5 4.1. YAPAY SİNİR AĞI MODELI....................................................................... 6 4.1.1. İleri Beslemeli Yapay Sinir Ağı .............................................................. 6 4.3. GÖRÜNTÜ İŞLEME..................................................................................... 8 4.3. ÖZELLIK ÇIKARIMI.................................................................................. 8 4.4. ÖĞRENME ALGORITMASI ...................................................................... 8 4.4.1. Geri Yayılım Algoritması........................................................................ 8
  • 8. vi ii 5. DENEYLER...................................................................................... 11 5. SONUÇ..............................................................................................15
  • 9. ix ŞEKİL LİSTESİ ŞEKİL 2.1 Projenin Genel Çalışma Şeması………………………………….….….2 ŞEKİL 3.1.1.1.1 Sistemin Kullanım Durum Diyagramı………………………..…...5 ŞEKİL 4.1.1 İleri Beslemeli Yapay Sinir Ağı Modeli…………………………..…...7 ŞEKİL 4.3.1 Ağı Beslemek İçin Kullanılan Girdi Örneği…………………….…..…8 ŞEKİL 5.1. Eğitim için kullanılan örnek görüntü…………………………….…….12 ŞEKİL 5.2. Eğitim için kullanılan örnek görüntü…………………………………..12 ŞEKİL 5.3. Başarılı sonuç örneği…………………………………………………..13 ŞEKİL 5.4. Başarılı sonuç örneği……………………………………………….….13 ŞEKİL 5.5. Başarısız sonuç örneği………………………………………………....14 ŞEKİL 5.5. Karışıklık Matrisi………………………………………………….......15
  • 10. x KISALTMA LİSTESİ YSA : Yapay Sinir Ağı SVM : Destek Vektör Makinesi HOG : Yönlü Gradientlerin Histogramı G.T.Ü : Gebze Teknik Üniversitesi
  • 11. xi ÖZET Bu rapor G.T.Ü. Bilgisayar Mühendiliği Bölümü 4. sınıfında hazırlanan Lisans Bitirme Projesi olarak geliştirilen yapay sinir ağı implementasyonu ve yapay sinir ağı tabanlı karakter tanıma uygulaması içeren sistemin tanımı, içeriği, başlatılma nedenleri, amaçları ve sonuçlarını içermektedir. Gerçek dünya görüntüleri üzerinde metin bulma ve tanıma problemi son zamanlarda üzerinde çokça çalışılmış bir bilgisayarlı görme problemidir [1]. Bu çalışmalara örnek olarak Google Sokak Görünümü uygulaması benzeri uygulamalar verilebilir. Sistem, yapay sinir ağı yapısının java programlama dili ile implement edilmesi ve yapay sinir ağı tabanlı karakter tanıma uygulamasını gerçeklemektedir. Karakter tanıma problemi günümüzde farklı yöntemlerle çözülmüş bir problemdir. Yapay sinir ağı çok sayıda problemin çözümünde başarılı sonuçlar vermiştir. Bu proje kapsamında yapay sinir ağının, karakter tanıma işlemini yapacağı bir sistem tasarlanmıştır.
  • 12. xi i SUMMARY The problem of finding and recognizing text on real-world images is a computer vision problem that has been worked on lately. The system implements feed forward artificial neural network in java programming language and recognizes character using artificial neural networks. Character recognition problem is a problem solved by different methods today. Artificial neural networks have been successful in solving many problems. Artificial neural network based character recognition was applied in this project. By means of the developed software, the training of the artificial neural network according to the inputs provided and a test action can be performed.
  • 13. 1 1. GİRİŞ Yapay sinir ağları, insan beyninin özelliklerinden olan öğrenme yolu ile yeni bilgiler türetebilme, yeni bilgiler oluşturabilme ve keşfedebilme gibi yetenekleri herhangi bir yardım almadan otomatik olarak gerçekleştirmek amacı ile geliştirilen bilgisayar sistemleridir [2]. Yapay sinir ağları, olayların örneklerine bakmakta onlardan ilgili olaya hakkında genellemeler yapmakta, bilgiler toplamakta ve daha sonra hiç görmediği örnekler ile karışılışınca öğrendiği bilgileri kullanarak o örnekler hakkında karar verebilmektedir. Yapay sinir ağı modeli geliştirilmiş ve sayısız uygulama ortaya çıkmıştır. Bu çalışmalar aslında insan beyninin nasıl çalıştığı ve öğrenme olayını nasıl gerçekleştirdiğini merak etme sonucunda ortaya çıkmıştır. Yapılan çalışmalar ile bilgisayarların öğrenebildikleri ve başarılı sonuçlar ürettikleri görülmektedir [3]. Karakter tanıma, uzun yıllar boyunca üzerinde çokça çalışma yapılmış bir araştırma alanıdır. Karakter tanımanın amacı, insanoğlunun okuma özelliğini, insana göre çok daha hızlı çalışan bilgisayara taklit ettirmek olarak belirtilebilir [4]. Bu projede karakter tanıma probleminin özelleşmiş bir formu gerçekleştirilecektir.
  • 14. 2 2. PROJE TANIMI Günümüzde tablet, telefon ya da herhangi bir arayüz üzerine yazılan karakterlerin, bilgisayar tarafından tanınması ve sınıflandırılması oldukça kullanılan uygulamalar arasında yer almaktadır [5]. Bu proje, ingilizce karakterlerin olduğu bir veri seti üzerinde çalışan bir karakter tanıma sisteminin tasarım ve implementasyonunu gerçekleştirilmesini içerir. Karakterlerinin tanımlanması için yapay sinir ağları kullanılacaktır. Yapay sinir ağı için hazır bir araç kullanılmayacak, yapay sinir ağı implementasyonu java programlama dili kullanılarak yapılacaktır. Şekil 2.1 Projenin Genel Çalışma Şeması 2.1. PROJENİN BAŞLATILMA NEDEN VE AMAÇLARI Bu proje yapay sinir ağlarının karakter tanıma problemi üzerinde çalışmasını gerçekleştirmek üzere tasarlanmıştır. Projenin başlatılmasındaki iki temel neden aşağıdaki gibidir:  Yapay sinir ağları algoritmalarından bir tanesinin implementasyonunu yapmak.
  • 15. 3  Karakter tanıma problemini yapay sinir ağı kullanılarak çözülmesini sağlamak. 2.2. LİTERATÜR ARAŞTIRMASI Yapılan literatür araştırması sonucunda, çeşitli görüntüler üzerinde metin bulma ve tanıma problemini çözmek amacıyla bir çok çalışma yapıldığı gözlemlenmiştir. Yapılan çalışmalarda ileri beslemeli sinir ağı modelinin benzer çalışmalarda kullanılmış ve başarılı sonuçlar vermiş olması göz önünde bulundurularak ağ modeli olarak ileri yönlü bilgi akışı sağlayan bu model tercih edilmiştir. Ağın eğitimi aşamasında ileri beslemeli ağlar ile birlikte yüksek başarı sağladığı görülen geri yayılım algoritması kullanılmıştır. 2.3. PROJE GEREKSİNİMLERİ Proje gereksinimlerini fonksiyonel gereksinimler ve fonksiyonel olmayan gereksinimler diye iki başlık altında ifade etmek daha doğru olacaktır. Bu kısımda fonksiyonel gereksinimler sistemin iç yapısına ait detaylara yer verirken, fonksiyonel olmayan gereksinimler, performans, kullanım kolaylığı gibi kullanılabilirlik ile alakalı gereksinimlere yer vermektedir. 2.3.1. Fonksiyonel Gereksinimler Fonksiyonel gereksinimler şu şekildedir;  İleri beslemeli geri yayılımlı yapay sinir ağının implement edilmesi  Sinir ağının eğitilmesi  Arayüzden alınan görüntünün yapay sinir ağına verilerek tanınması  Tahminin kullanıcı arayüzüne sunulması 2.3.2 Fonksiyonel Olmayan Gereksinimler Fonksiyonel olmayan gereksinimler şu şekildedir;  Sistemin kullanıcı dostu bir arayüze sahip olmalıdır.  Geliştirilebilir, yeni karakterler eklemeye açık bir tasarıma sahip olmalıdır.
  • 16. 4 2.3.3. Sistemin Genel Özellikleri  Sistem gerçek zamanlı olarak çalışmalıdır.  Sistem 32/64 bit bilgisayarlarda çalışabilmelidir. 2.4. BAŞARI KRİTERLERİ Proje bitiminin hangi ölçülerde başarılı olduğunun değerlendirilebilmesi için oldukça önemli olan başarı ölçütümüz bu başlık altında belirtilecektir. Bunlar;  Karakterin tanınma süresi 1 saniyeden az olmalıdır.  Karakterin tanınma başarısı en az %75 olmalıdır.  En az 300x300 piksellik bir alan üzerine yazılmış tüm karakterler için çalışmalıdır. 3. PROJE PLANLAMASI 3.1. SİSTEM MİMARİSİ Bitirme projesi kapsamında geliştirilen bu sistemde, java programlama dili kullanarak bir masaüstü uygulaması geliştirilecektir. Kullanıcıdan alınan girdi aşağıdaki adımlar takip edilerek işlenir. 1. Arayüz üzerinden program girdisi alınır. 2. Görüntü üzerinde özellik çıkarımı yapılır. 3. Elde edilen veri ağa girdi olarak verilir. 4. Ağın çıktısı arayüz üzerinden kullanıcıya sunulur.
  • 17. 5 3.1.1. UML Diyagramları 3.1.1.1 Kullanım Durum Diyagramı Şekil 3.1.1.1.1 Sistemin Kullanım Durum Diyagramı 3.2. İŞ PLANI Bu projenin iş planı 5 bölümden oluşmaktadır. Bunlar;  Literatür araştırması  Veri seti oluşturulması  Yapay sinir ağı implementasyonunun yapılması  Arayüz tasarımı  Test 4. YÖNTEM Karakter tanıma görüntüler üzerindeki karakterlerin ya da metin bilgilerinin okunarak işlenmesi olduğundan bu işlem için çeşitli görüntülerin veya metinlerin bilgisayar tarafından işlenebilecek sayısal veriler haline dönüştürülmesi gerekmektedir. Sayısal verilerin anlamlandırılması için görüntü işlemenin temel
  • 18. 6 adımlarından bu sayısal verilerin filtrelenmesi gerekmektedir. Bu problemin temel adımları görüntü işleme, özellik çıkarma ve sınıflandırmadır. 4.1. YAPAY SİNİR AĞI MODELİ 4.1.1. İleri Beslemeli Yapay Sinir Ağı Belirsiz, gürültülü ve eksik bilgilerin işlenmesinde yapay sinir ağları başarıyla kullanılmaktadır [6]. Ysa'lar, ağırlıklandırılmış şekilde birbirlerine bağlanmış birçok işlem biriminden (nöronlar) oluşan matematiksel sistemlerdir. İşlem birimi, transfer fonksiyonu olarak anılan bir denklemdir. Bu işlem birimi, diğer nöronlardan sinyalleri alır; bunları birleştirir, dönüştürür ve sayısal bir sonuç ortaya çıkartır. Genelde, işlem birimleri kabaca gerçek nöronlara karşılık gelirler ve bir ağ içinde birbirlerine bağlanırlar; bu yapı da sinir ağlarını oluşturmaktadır. Çok katmanlı bir ileri besleme ağı Şekil 4.1.1’de verilmiştir. Giriş Katmanı Bu katmandaki işlem elemanları, dışardan bilgileri alarak bir sonraki katman olan ara katmanlara transfer ederler. Giriş katmanındaki nöron sayısı bir sınıflandırma çalışması için sınıf sayısı kadar olmalıdır [7]. Ara Katman (Gizli Katman) Giriş katmanından gelen bilgiler islenerek çıkış katmanına gönderilirler. Ara katman sayısı ağdan ağa değişebilir. Bazı yapay sinir ağlarında ara katman bulunmadığı gibi bazı yapay sinir ağlarında ise birden fazla ara katman bulunmaktadır. Ara katmanlardaki nöron sayıları giriş ve çıkış sayısından bağımsızdır. Birden fazla ara katman olan ağlarda ara katmanların kendi aralarındaki nöron sayıları da farklı olabilir. Ara katmanların ve bu katmanlardaki nöronların sayısının artması hesaplama karmaşıklığını ve süresini arttırmasına rağmen yapay sinir ağının daha karmaşık problemlerin çözümünde de kullanılabilmesini sağlar.
  • 19. 7 Çıkış Katmanı Çıkış katmandaki işlem elemanları ara katmandan gelen bilgileri işleyerek ağın girdi katmanından sunulan girdi seti için üretilmesi gereken çıktıyı üreten katmandır ve üretilen çıktı dışarıya gönderilir. Geri beslemeli ağlarda bu katmanda üretilen çıktı kullanılarak ağın yeni ağırlık değerleri hesaplanır. Şekil 4.1.1 İleri Beslemeli Yapay Sinir Ağı Modeli Bu projede yapay sinir ağının ileri beslemeli modeli ve öğrenme için geri yayılım algoritması kullanılmıştır. İleri beslemeli YSA’da tek yönlü bilgi akışı vardır. Hücreler katmanlar şeklinde düzenlenir ve bir katmandaki hücrelerin çıkışları bir sonraki katmana ağırlıklar üzerinden giriş olarak verilir. Giriş katmanı, dış ortamlardan aldığı bilgileri hiçbir değişikliğe uğratmadan orta (gizli) katmandaki hücrelere iletir. Bilgi, orta ve çıkış katmanında işlenerek ağ çıkışı belirlenir. Bu yapısı ile ileri beslemeli ağlar doğrusal olmayan statik bir işlevi gerçekleştirir.
  • 20. 8 4.3. GÖRÜNTÜ İŞLEME Görüntü işleme, nesnenin görüntüsünü işleyerek istenilen özelliklerin çıkarılmasına zemin hazırlanması aşamasıdır [8]. Görüntü işleme ile veriler amaca uygun bir hale getirilir. Sistemde, alınan görüntüler öncelikle ölçeklendirilerek belirli ölçülere getirilmektedir. Ölçeklendirilen görüntüler siyah-beyaz görüntülere çevrildikten sonra, Gauss filtresi kullanılarak gürültüleri giderilmektedir. 4.3. ÖZELLİK ÇIKARIMI İlk olarak görüntüler siyah-beyaz görüntüye çevrilir. Bu sayede görüntü binary formata dönüştürülmüş olur. Gauss filtresi kullanılarak gürültülerden arındırılan görüntülerin sınır değerleri bulunarak kırpılır. Kırpılan görüntü belirlenen bir boyuta getirilir. Bu işlem sırasında her bir kutucuğun değerini belirlemek için ikinci bir threshold yapılır [9]. Böylece elimizde ağ için uygun bir giriş elde edilmiş olur. Ağı beslemekte kullanılan örnek girdi Şekil 4.3.1’de görülmektedir. Şekil 4.3.1 Ağı Beslemek İçin Kullanılan Girdi Örneği 4.4. ÖĞRENME ALGORİTMASI 4.4.1. Geri Yayılım Algoritması Öğrenme süreci, istenen amaca ulaşmak için YSA ağırlıklarının yenilenmesini sağlayan öğrenme algoritmalarını gerçekleştirir [10]. En çok bilinen geriye yayılım öğrenme algoritması, ileri beslemeli YSA’ların eğitiminde etkin olarak kullanılmaktadır. Yapay sinir ağı için öğrenme işlemi, ağırlıkların en iyi değerinin bulunmasıdır. Yapay sinir ağlarında bilgi, ağdaki sinirlerin bağlantılarının
  • 21. 9 ağırlıklarında tutulur. Bu nedenle ağırlıkların nasıl belirleneceği önemlidir. Bilgi tüm ağda saklandığı için bir düğümün sahip olduğu ağırlık değeri tek başına bir şey ifade etmez. Tüm ağdaki ağırlıklar optimal değerler almalıdır. Bu ağırlıklara ulaşılabilmesi için yapılan isleme “ağın eğitilmesi” denir. Buna göre bir ağın eğitilebilir olabilmesi için ağırlık değerlerinin belirli bir kural dahilinde dinamik olarak değiştirilebilir olması gerekmektedir [11]. Bir model ağı eğitmekteki amaç, bir giriş setine karşılık olarak özel bir fonksiyonel karakteristiği elde edebilmek için çıkışlar oluşturmak üzere ağırlıkları ayarlamaktır. Eğitmenin tam olabilmesi için her bir giriş vektörüne karşılık istenen çıkış vektörünü gösteren bir hedef çıkış vektörü olmalıdır. Bu giriş ve hedef çıkışı vektörleri bir eğitim çifti oluşturur. Eğitilmiş bir ağdaki hedef çıktı ile ağ çıktısı eşit olmalıdır. Eşitlik olmadığı durumda, aralarındaki fark hatadır. Bu hatanın mümkün olduğunca azaltılması amacı ile ağ ağırlık parametrelerini yenileme işlemi geriye yayılım olarak tanımlanır. Hata : Çıkış ile gizli katman arasındaki ağırlıkların yenilenmesi; formülleri ile gerçekleştirilir. Burada, n iterasyon sayısı, η öğrenme katsayısı, α momentum katsayısıdır. Gizli katman ile giriş katmanı arasındaki ağırlıkların yenilenmesi ise;
  • 22. 10 formülleri ile gerçekleştirilir. Bu basamaklar ağdaki toplam hatanın istenen belli bir sınır değerinin altına düşünceye kadar tekrar edilir. Bu hata limiti elde edildiğinde ise “ağ yapılacak işi öğrendi” denilir. Ağ bir kere öğretildiği zaman elde edilen ağırlık değerleri saptanır ve bu ağırlık değerleri ağın ihtiyacı durumunda tekrar kullanılır. Ağ daha sonraki uygulamalarda öğrenilen bu ağırlıkları kullanacaktır (Richard, 1987; Abulafya, 1995). Bu çalışmada öğrenme kuralı olarak genişletilmiş delta kuralı ve öğrenme stratejisi olarak da eğiticili öğrenme kullanılmıştır. Genişletilmiş delta kuralına göre öğrenme aşağıdaki aşamalarda gerçekleşir. 1- Ağın yapısı belirlenir. • Giriş (nöron) sayısı • Çıkış (nöron) sayısı • Gizli katman sayısı ve gizli katmandaki nöron sayıları 2- Ağın başlangıç parametreleri belirlenir. • Başlangıç ağırlıkları • Öğrenme katsayısı • Momentum katsayısı 3- Giriş ve çıkış verileri ağın değerlendirebileceği şekilde düzenlenir. (normalize edilir). 4- İleri beslemeli ağ yapısına göre ağ çıktıları hesaplanır.
  • 23. 11 5- Ağ çıktısı ile gerçek çıktı arasındaki hata bulunur. 6- Hata minimum ise ağ problemi öğrendi. Öğrenmeyi durdur. 7- Hata minimum değilse; geriye yayılım ağ yapısına göre hatayı minimize edecek şekilde ağırlıklar hesaplanır. 8- Adım 3’e gidilerek işleme devam edilir. 5. DENEYLER Bu kısımda projenin başlangıcından şuan gelinen noktaya kadar uygulanan yöntemlerin sonuçları birbirleriyle karşılaştırılarak gösterilecektir. Deneyler i5- M460 CPU ve 4 GB Ram donanımına sahip dizüstü bilgisayarda gerçekleştirilmiştir. Öncelikle çok bilinen bir veri seti olan iris veri seti üzerinde yapay sinir ağı test edilerek implementasyonu yapılmıştır. Yapay sinir ağı modeli olarak, ileri beslemeli geri yayılımlı model seçilmiştir. İleri beslemeli yapay sinir ağında bilgi akışı tek yönlü olarak ileri doğru gerçekleştirilmiştir. Karakter tanıma işlevini yerine getirebilmek için öncelikle İngilizce karakterleri içeren bir veri seti oluşturulmuştur. Veri seti oluşturulurken her karakter için yeterli sayıda ve yeterli nitelikte olan görüntüler seçilmiştir. Veri seti literatürdeki benzer projelerin veri setlerinden alınan görüntüler ile tarafımdan oluşturulmuş görüntülerin birleştirilmesi ile oluşturulmuştur. Kullanılan görüntüler test sırasında alınacak görüntülerle benzemesi açısından beyaz bir zemin üzerine siyah kalem ile çizilmiş olanlardan seçilmiş ve oluşturulmuştur. Test ve eğitim aşamasında kullanılan görüntülerin benzer olması sistemin başarısını artırmada önemli bir etken olduğu gözlenmiştir. Bu durum tüm makine öğrenmesi yöntemleri için geçerli bir durumdur. Veri setinin probleme uygun ve fazla sayıda örnek içermesi çalışmaların başarısını arttırmada önemli bir etkiye sahiptir. Verilerin işlenmesi aşamasında öncelikle görüntüler ölçeklendirilmeden işleme yapılmıştır. Fakat bu işlemlerin uzun zaman almasından dolayı iyileştirme amaçlı
  • 24. 12 olarak görüntülerin ölçeklendirilmesi yöntemine başvurulmuştur. Böylece her görüntünün boyutu azalmış ve işlenme süresi de buna bağlı olarak kısalmıştır. Şekil 5.1. Eğitim için kullanılan örnek görüntü Şekil 5.2. Eğitim için kullanılan örnek görüntü Yapay sinir ağının başarısını arttırmak için uygun başlangıç parametreleri deneme yanılma yöntemiyle her değişiklik sonrası tekrar bulunarak güncellenmiştir. Sistemin başarılı çıktı örnekleri aşağıdaki gibidir.
  • 25. 13 Şekil 5.3. Başarılı sonuç örneği Şekil 5.4. Başarılı sonuç örneği
  • 26. 14 Yapılan testler sırasında, her karakter için başarı oranının aynı olmadığı gözlemlenmiştir. Veri seti içinde benzeri bulunan harflerde başarı daha düşük olmaktadır. Şekil 5.5’te P harfinin F harfi olarak yanlış tanıması görülmektedir. Şekil 5.5. Başarısız sonuç örneği Manuel olarak 300 görüntü üzerinde yapılan testlerde sistemin tanıma başarısı 42 yanlış cevap ile %86 olarak ölçülmüştür. Sistem tanıma işlemi için 1 saniyeden kısa bir zamanda sonuç üretebilmektedir. Bu çalışmada kullanılan veri setinin doğruluğunu sınamak için Weka kullanılmış ve başarısı %82.08 olarak ölçülmüştür. Yapay sinir ağının başarısı ise %78.49 olarak belirlenmiştir.
  • 27. 15 Şekil 5.6. Karışıklık Matrisi Aynı veri seti üzerinde Destek vektör makineleri (SVM) kullanılarak başarı ölçümleri yapılmıştır. Bu deney sırasında Opencv kütüphanesinin fonksiyonları kullanılmıştır. Opencv kütüphanesinin fonksiyonu kullanıldığı için bu yöntemde daha başarılı sonuçlar elde edilmiştir. K çapraz doğrulama yöntemi ile aynı veri setinin başarısı %94.77 olarak ölçülmüştür. Benzer çalışmalarda da destek vektör makinelerinin yapay sinir ağlarından daha doğru sonuçlar verdiği görülmüştür. Fakat farklı problemlerde yapay sinir ağları daha doğru sonuç verebilmektedir. Bu durum probleme ve görüntülerden özellik çıkarım yöntemine göre farklılık gösterebilmektedir. 5. SONUÇ Bu raporda projenin ana fonksiyonu olan karakter tanıma ve yapay sinir ağ modelinin nasıl implement edildiği, oluşturulan ağın geri yayılım algoritması kullanılarak nasıl eğitildiği ve nasıl test edildiği genel hatlarıyla açıklanmıştır.
  • 28. 16 Yapay sinir ağları genelleme yeteneğine sahip olması, hatalara karşı toleranslı olması ve esneklikleri sayesinde eksik verilerle bile doğru çalışma yeteneğine sahip bir yöntemdir [12]. Bu sebeple, karakter tanıma gibi çalışmalarında yapay sinir ağı sıkça kullanılan bir yöntem olmuştur. Projede ileri beslemeli yapay sinir ağının seçilmesinin nedeni yapılmış olan literatür araştırmasında benzer projelerde kullanılmış ve başarılı sonuçlar almış olmasıdır. Ağın eğitimi için ileri beslemeli ağlar ile beraber kullanıldığında başarılı sonuçlar veren geri yayılım algoritması kullanılmıştır. Yapılan çalışmalar k çapraz doğrulama yöntemi ile doğruluğu sınanarak yürütülmüştür. K çapraz doğrulama yöntemi için weka yazılımı kullanılmıştır. Veri seti için %82.08, yapay sinir ağı için %78.49 oranında başarılı sonuçlar alınmıştır. Sistemin daha yüksek başarı ile çalışabilmesi için özellik çıkarımında daha başarılı olan yöntemler kullanılabilir. Yönlü gradientlerin histogramı olarak bilinen HOG bu yöntemlerden biridir. HOG benzer çalışmalarda yapay sinir ağları ve diğer yöntemlerle beraber kullanıldığında başarılı sonuçlar verebilmektedir. Veri setinin arttırılması da sistemin daha yüksek bir başarıya ulaşmasını sağlayacaktır. Daha büyük ve çeşitli görüntülerden oluşan bir veri seti daha iyi bir öğrenme sağlayacaktır. Bu sayede sistemin test aşamasındaki başarısı da artmış olacaktır.
  • 29. 17 KAYNAKLAR [1] Chen, Xiangrong, and Alan L. Yuille. "Detecting and reading text in natural scenes." Computer Vision and Pattern Recognition, 2004. CVPR 2004. Proceedings of the 2004 IEEE Computer Society Conference on. Vol. 2. IEEE, 2004. [2] Jain, Anil K., Jianchang Mao, and K. Moidin Mohiuddin. "Artificial neural networks: A tutorial." IEEE computer 29.3 (1996): 31-44 [3] Patil, Vijay, and Sanjay Shimpi. "Handwritten English character recognition using neural network." Elixir Comp. Sci. & Engg 41 (2011): 5587-5591. [4] Sharma, Ankit, and Dipti R. Chaudhary. "Character recognition using neural network." International Journal of Engineering Trends and Technology (IJETT)- Volume4 (2013): 662-667. [5] Aydın, Musa, and Enes Çelik. "Yapay Sinir Ağları ile Assamese Karakter Tanıma." Signal Processing and Communications Applications Conference, 2013. [6] ERDEM, O. Ayhan, and U. Z. U. N. Emre. "YAPAY SİNİR AĞLARI İLE TÜRKÇE TIMES NEW ROMAN, ARIAL VE ELYAZISI KARAKTERLERİ TANIMA." Gazi Üniversitesi Mühendislik-Mimarlık Fakültesi Dergisi 20.1 (2005). [7] Yapay Sinir Ağları (YSA) Nedir?, Yapay Sinir Ağları (Artificial Neural Network), http://kod5.org/. [8] Sharma, Ankit, and Dipti R. Chaudhary. "Character recognition using neural network." International Journal of Engineering Trends and Technology (IJETT)- Volume4 (2013): 662-667. [9] Patil, V. V., Rajharsh Vishnu Sanap, and Rohini Babanrao Kharate. "Optical character recognition using artificial neural network." Int. J. Eng. Res. General Sci 3.1 (2015).
  • 30. 18 [10] Arnold, Rókus, and Póth Miklós. "Character recognition using neural networks." Computational Intelligence and Informatics (CINTI), 2010 11th International Symposium on. IEEE, 2010. [11] Prasad, Kauleshwar, and Shubham Agrawal. "CHARACTER RECOGNITION USING NEURAL NETWORK." Int. J. Adv. Engg. Res. Studies/IV/II/Jan.- March 90 (2015): 92. [12] Ergezer, Halit, Mehmet Dikmen, and Erkan Özdemir. "Yapay sinir ağları ve tanıma sistemleri." PiVOLKA 2.6 (2003): 14-17.