Ankara Üniversitesi
Nallıhan Meslek Yüksekokulu
Fare hareketlerini tanıma
NB P23 4 ÖR ÜNT Ü T ANIMA ÖĞR . GÖR . DR . UFUK T ANYE R I
Fare hareketlerini tanıma
Bu dersimiz codeproject’de yer alan örnek bir diğer örüntü tanıma uygulamasını inceleme üzerinedir. Uygulamanın kaynak kodlarına ve diğer dosyalarına açık ders sisteminden erişebilirsiniz.
https://www.codeproject.com/Articles/1591/Mouse-gestures-recognition
Bu uygulama, eğitim için çok katmanlı bir algılayıcı ve standart geri yayılma algoritması
üzerinedir. Sonuç olarak, bir fare yolunun bir kosinüs ve sinüs vektörüne dönüştürülmesi işlemi
gerçekleştirilmektedir.
Uygulamanın ekran görüntüsü
Yapay sinir ağı yazılımı nedir?
«Yapay Sinir ağı yazılımı, deneyimsel bilgi elde etmek, saklamak ve kullanmak üzere geliştirlen bir yazılımdır.» Konuyla ilgili birkaç site:
- FAQ of comp.ai.neural-nets - Generation 5
- "
Neural Computing: Theory and Practice" 1989 Philip D. Wasserman
(Rusça)
Uygulama
Fare hareketlerine dönelim. Bazı araştırmalardan sonra eğitim için çok katmanlı bir algılayıcı ve standart geri yayılma algoritması seçtim. Asıl sorun sinir ağı için bir girdi verilerinin
gösterilmesiydi. Bulduğum en iyi sonuç, bir fare yolunun bir kosinüs ve sinüs vektörüne dönüştürülmesiydi.
Örneğin:
path {170:82 172:83 175:85 177:86 ...}
transformed into
vector {0.45 0.55 0.45 0.71 ... 0.89 0.83 0.89 0.71 ...}
Tanıma algoritması
1. fare yolunu kaydet
2. temel noktalara giden yolu düzleştirme 3. noktaları açıların vektörüne dönüştürmek 4. sinüs ve kosinüsleri hesapla
5. değerleri (kosinüsler ve sinüsler) ağın girişlerine geçirme 6. çıkış ağı vektörüne softmax fonksiyonunu uygula
7. bir kazanan bul ve doğrula
Yapay sinir ağı mimarisi
1. giriş katmanları: 32 sinaps 2. gizli katman: 32 nöron
3. çıkış katmanı: 29 akson (her hareket için bir tane) 4. tamamen bağlı katmanlar
5. transfer fonksiyonu: log-sigmoid
6. artımlı eğitim algoritması, standart geri yayılma yöntemi
7. momentum, değişken öğrenme oranı (yavaş yavaş azalır)
8. giriş gürültüsü
Eğitim aşaması
Tanıma yeteneğini test etmeden önce ağı eğitmelisiniz (veya eğitilmiş ağın bir dosya görüntüsünü yükleyebilirsiniz). Eğitim
sürecinin parametrelerini özelleştirebilirsiniz:
maksimum döngü sayısı, momentum değeri, öğrenme oranı, ortalama kare hatasının
minimum değeri (diğer bir deyişle "hedef hatası"). Koşullardan herhangi birine
ulaşıldıktan sonra eğitim süreci duracaktır:
maksimum döngü sayısı veya hedef hata.
Egzersiz işlemi sırasında bir hatanın grafiğini, mevcut bir hareketi (gürültülü) ve 2B ağ
sunumunu takip edebilirsiniz.
Test etme aşaması
Eğitimli bir ağınız olur olmaz test edebilirsiniz.
Örüntüleri (veya hepsini test edin), bir hız değerini ve bir gürültü seviyesini seçin.
Ayrıca, minimum gürültü ve minimum hız ayarlayarak hareketlerin ideal sunumunu
öğrenebilirsiniz.
Tanıma aşaması
Fare hareketlerini tanımak için fareyi hareket ettirirken sağ fare düğmesine basmanız gerekir.
Örneğin "sol" hareketi tanımak için, sağ fare
düğmesine basın ve bir fareyi sola hareket ettirin. Bir sinir ağı hareketi tanıyabiliyorsa, kazananın adını, olasılığını ve ideal sunumunu göreceksiniz.
GestureApp'ın ücretsiz doğası gereği fare yolunun en az 16 noktaya sahip olması gerekir.
Not: Yön çok önemlidir.
Ağ, hareketleri tanıyacak şekilde eğitilmiştir, ancak 2D görüntüleri değil. Bu nedenle, "daire" hareketini bin farklı şekilde çizebilirsiniz, ancak tek geçerli yol:
fare düğmesine basın ve bir fareyi sağa ve aşağı hareket ettirin vb.