Lisans bitirme projesi olarak hazırlamış olduğum projenin rapor dosyasıdır. Projemde kısaca; ileri beslemeli yapay sinir ağı modelini ve öğrenme işlemini gerçekleştirmek için geri besleme algoritmasını Java programlama dilini kullanarak implement ettim. Oluşturduğum yapay sinir ağını bir arayüz ile birleştirerek harf tanıma yapan bir sistem oluşturdum.
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
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.
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.