Tez No İndirme Tez Künye Durumu
637211
Deep learning based dynamic turkish sign language recognition with leap motion / Derin öğrenme tabanlı leap motıon ile dinamik türk işaret dili tanıma
Yazar:BURÇAK DEMİRCİOĞLU KAM
Danışman: DOÇ. DR. HATİCE KÖSE
Yer Bilgisi: İstanbul Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar Mühendisliği Ana Bilim Dalı / Bilgisayar Mühendisliği Bilim Dalı
Konu:Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control
Dizin:Derin öğrenme = Deep learning ; Makine öğrenmesi yöntemleri = Machine learning methods
Onaylandı
Yüksek Lisans
İngilizce
2020
93 s.
Toplumumuzda, sağır ya da işitme problemi yaşayan kişiler günlük yaşamlarında özellikle işaret dili bilinmeyen ortamlarda çevreleriyle iletişim zorluğu yaşayabilmektedir. Bu tez kapsamında geliştirilen ve küçük boyuttaki bir sensor ve işlemci gücü olan bilgisayar, tablet ve/veya telefon gibi bir alet yardımıyla çalışan iletişim sistemi ile bu problemin çözülmesi hedef olarak belirlenmiştir. Bu hedefi gerçekleştirmek için bu projede verimli bir tanıma sisteminin derin öğrenme metotları kullanılarak geliştirilmesi amaçlanmıştır. Gerekli olan veri seti oluşturulduktan sonra, derin öğrenme yöntemleri kullanılarak işaret dili tanıma yapılmıştır. Bu proje 2 farklı bölüme ayrılabilir. İlk bölümde data toplama ve hazırlama yapılmış, ikinci bölümde ise geleneksel makine öğrenmesi sınıflandırıcıları ve derin öğrenme modellerinin oluşturulup hazırlanan veri seti kullanılarak bu modeller ve sınıflandırıcılar üzerinde deneyler yapılmıştır. İlk bölümde veri toplama işlemi için bir uygulama geliştirilmiştir. Veri toplama işlemi için Leap Motion Controller cihazı sensor olarak seçilmiş ve uygulama bu cihaz ile çalışacak şekilde tasarlanmıştır. Geliştirme yapılırken uygulamanın özellikle kolay kullanılabilir ve anlaşılabilir olmasına ve aynı zamanda da veri toplama işlemini büyük oranda hızlandırmasına önem verilmiştir. Aynı zamanda bu çalışmadan önce benzer bir uygulamanın yapılmamış olmasından dolayı bu çalışma literatürde var olan bir boşluğu da doldurmuştur. Uygulama Windows Forms uygulaması olarak .NET çatısı ile C# programlama dili kullanılarak oluşturulmuştur. Uygulamayı geliştirirken Leap Motion'ın resmi olarak C# programlama dili için yayınladığı kütüphanelerin yanı sıra kamera görüntüsü alıp görüntüleyebilmek için Windows Media Player kütüphaneleri ve Accord.Net çatısında bulunan kütüphaneler kullanılmıştır. Geliştirilen uygulamanın veri seti oluşturma aşamasını daha efektif ve kolay hale getiren birçok artı noktası bulunmaktadır. Bu noktalar şu şekilde özetlenebilir; kullanım kolaylığı, otomatik etiketleme, referans işaret videosu içerme ve cihaz durum kontrolü. Uygulamanın kullanım akışı şu şekildedir; kullanıcı Leap Motion Controller cihazını bilgisayarına bağlar ve .exe uzantılı dosya ile uygulamayı başlatır, uygulamanın ara yüzünde bulunan işaret listesinden veri üretmek istediği işareti seçer, seçilen işaretin referans videosunu izler ve hazır olduğunda başlatma butonuna basar. Uygulama sensor cihazının ve cihaz sürücüsünün durumunu kontrol eder ve kullanıcıya rapor eder, kullanıcı bilgisayarın donanımında bulunan kamera aracılığıyla alınan görüntüyü gösteren bölümden kendini görüntüler ve hareketi doğru yapıp yapmadığını kontrol eder. Uygulama kullanıcının iki elini de sensöre göstermesini bekler, kullanıcı iki elini birden sensöre gösterdiğinde uygulama geri sayımı ve bu geri sayım bittiğinde görüntü ve veri kaydını başlatır. Kullanıcı seçmiş olduğu işareti videoda gösterildiği şekilde ve Leap Motion Controller sensörünün sınırları dışına taşmadan yapar ve durdurma butonuna basar. Uygulama kayıt işlemini durdurur ve toplanan veriler ile oluşturduğu dosyaları oluşturma zamanı bilgisi ve kullanıcının işlemin başında listeden seçmiş olduğu işaretin ismini kullanarak etiketleyip, yerel klasöre kaydeder. Aynı zamanda bu uygulamanın tasarımı yapılırken, kullanım alanının mümkün olduğunca geniş olabilmesi için büyük önem gösterilmiştir. Bu amaç doğrultusunda kullanıcının işaret seçimini yaptığı liste statik olarak veya kod aracılığı ile değil referans videoların bulunduğu klasörün içeriği kullanılarak oluşturulmaktadır. Yani bu uygulama başka bir araştırma için kullanılmak istendiğinde, bu yeni araştırma için belirlenen el işaretlerinin uygulama aracılığı ile doğru bir şekilde toplanabilmesi ve etiketlenebilmesi için, araştırmacının gerekli yeni referans videoları bahsedilen klasöre eklemesi yeterli olacaktır. Uygulamanın yeni amaca uygun çalışabilmesi için herhangi başka bir güncellemeye, özellikle uygulama kodunda yapılacak herhangi bir değişikliğe gerek yoktur. Bu proje için veri kümesi olarak Türk İşaret Dilinden 12 dinamik ve iki eli birden içeren kelime işaretleri seçilmiştir. Veri toplama uygulaması geliştirildikten sonra deneylerde girdi olarak kullanılmak üzere birden çok işaretçi tarafından, farklı ortamlarda, işaret başına toplamda 200 adet örnek toplanmıştır. Toplanan bu örnekler ile toplamda 2400 örnek içeren ve işaretler arasında eşit bir dağılıma sahip olan bir veri kümesi oluşturulmuştur. Bu veri kümesi oluşturulduktan sonra öğrenme modelleri tarafından daha iyi kullanılabilirliğini sağlamak amacıyla bazı ön işlemlerden geçirilip veri eğitim işlemi için hazırlanmıştır. Veri kümesindeki örneklerin her biri yüksek miktarda nümerik veri içermektedir. Bu nümerik veriler örnek dosyasına 178 kolon ve veri kaydına göre değişkenlik gösteren satır sayısında kaydedilmiştir. Her bir kolon örneklenen işaretten alınan bir özelliği içermekte her bir satır ise anlık zaman çerçevesini içermektedir. Yani her zaman çerçevesi dahilinde sensörden alınan 178 tane özellik kaydedilmiştir. Her örneğe göre zaman çerçevesi sayısı, her kullanıcının kaydı başlatması ve bitirmesi arasındaki geçen süre farklılık göstereceği için değişkendir. Ancak bu durum verinin işlenmemiş hali ile öğrenme modellerine verilmesine engel olmaktadır çünkü modele verilen örneklerin boyutlarının eşit olması gerekmektedir. Yapılan ön işlemlerden bir kısmı örneklerin hepsinin boyutunu eşitleyerek bu sorunu gidermekte, kalan kısmı ise alınan verinin ve etiketlerin modeller tarafından anlaşılabilir hale getirilmesini sağlayan standart işlemlerden oluşmaktadır. Projenin ikinci bölümünde 6 farklı geleneksel makine öğrenmesi sınıflandırıcısı: Gauss Naif Bayes (Gaussian Naïve Bayes), Destek Vektor Makinesi (Support Vector Machine), K-En Yakın Komşu (K-Nearest Neighbour), Rassal Orman (Random Forest), Doğrusal Ayrımcılık Analizi (Linear Discriminant Analysis) ve Çok Katmanlı Algılayıcılar (Multilayer Perceptron); ve 3 farklı derin öğrenme modeli: Evrişimsel Sinir Ağları (Convolutional Neural Networks-CNN), Tekrarlayan Yapay Sinir Ağları (Recurrent Neural Networks-RNN) ve Uzun Kısa Vadeli Hafıza Ağları (Long Short-Term Memory-LSTM) yaratılmış ve yüksek tanıma başarısına ulaşabilmek için bu sınıflandırıcılar ve modeller üzerinde deneyler yapılmıştır. Bu sınıflandırıcılar ve modeller literatürde benzer araştırmalar değerlendirilerek, aynı zamanda tanınmak istenen verinin yapısı düşünülerek seçilmiştir. Örnek başına düşen veri miktarı oldukça fazla ve karmaşık olduğu için sezgisel yöntemler yerine öğrenmeye dayalı yöntemlerin kullanılması kararlaştırılmıştır. Derin öğrenme yöntemleri arasından seçim yapılırken; Evrişimsel Sinir Ağları'nın seçilmesinin nedeni bu tip sinir ağlarında resim verilerinin daha başarılı sonuç vermesinin göz önünde bulundurulması ve bu projedeki verinin 2 boyutlu oluşu nedeniyle yapısal olarak tek renkli bir resim verisine benzetilmesi, Tekrarlayan Yapay Sinir Ağları'nın seçilmesinin nedeni ise projedeki verinin zamansal bilgi içermesi ve bu derin öğrenme yönteminin zamansal boyutta değerlendirme yapabilme yeteneğinin yüksek olmasıdır. Uzun Kısa Vadeli Hafıza Ağları'nın seçilme nedeni ise zamansal verinin boyutunun büyük olmasıdır. Bahsedilen yöntemler ışığında modeller Python programlama dili ve açık kaynak kodlu bir derin öğrenme kütüphanesi olan Pytorch çatısı sınıflandırıcılar ise sklearn kütüphanesi kullanılarak oluşturulmuştur. Öğrenme ve tanıma işleminin başarıdan ödün vermeyerek mümkün olduğunca hızlı tutulabilmesi için modeller olabildiğince basit mimariler kullanılarak tasarlanmış ve kullanıma sunulmuş, Microsoft Azure: Bulut Bilişim Hizmetleri üzerinde yaratılmış olan ve grafik işlemci birimleri (Graphics Processing Unit-GPU) içeren sanal bir makine (Virtual Machine) üzerinde yürütülmüştür. Sistemin performansını yükseltmek için oluşturulan modeller üzerinde farklı hiper parametre kombinasyonları farklı kayıp ve iyileştirici fonksiyonlar ile birlikte denenmiştir. Kayıp fonksiyonu olarak Cross Entropy fonksiyonu iyileştirici olarak Stochastic Gradient Decent ve Adam fonksiyonları ile birlikte kullanılmıştır. İyileştirici fonksiyonların farklı kombinasyonları denenen parametreleri öğrenme oranı ve momentumdur. Deneyler üç bölüm halinde yapılmıştır. İlk olarak geleneksel makine öğrenmesi metotları üzerinde hiper parametreler değiştirilerek farklı eğitimler yapılmış ve sınıflandırıcılar optimize edilmiştir. Bu metotlar arasında en iyi sonucu veren optimize edilen LDA sınıflandırıcısı olmuştur. Bu sınıflandırıcı ile %99.9 eğitim, %98.2 doğrulama ve %95 test doğruluk oranlarına erişilmiştir. Deneylerin ikinci bölümünde derin öğrenme metotları üzerinde deneyler yapılmış ve yine hiper parametreler değiştirilerek modeller optimize edilmiştir. Sonuç olarak bu modeller arasında en başarılı olan CNN modeli olmuştur. Bu model ile %100 eğitim, %97.7 doğrulama ve %96.7 test doğruluk oranlarına ulaşılmıştır. Deneylerin son bölümü olarak toplanmış olan veri kümesi karıştırılarak 5 farklı eğitim-test kümesi oluşturulmuştur. Oluşturulan 5 farklı veri kümesi üzerinde derin öğrenme modelleri ve LDA sınıflandırıcısı 5 kez yürütülmüş ve ortalama sonuçlar hesaplanmıştır. Ulaşılan en iyi sonuçlar; LDA sınıflandırıcısı ile %98.8, CNN modeli ile %98.8, RNN modeli ile %88.3, LSTM modeli ile %85.0 test doğruluk oranıdır. Ulaşılan genel ortalama sonuçlar ise LDA sınıflandırıcısı ile %97.4, CNN modeli ile %96.9, RNN modeli ile %82.8, LSTM modeli ile %79.2 test doğruluk oranıdır. Elde edilen sonuçlar göz önüne alındığında çalışmanın amacı ve kullanılan veri kümesi için en iyi metotların LDA ve CNN olduğu görülmüştür. Son bir değerlendirme olarak bu iki metodun test doğruluk oranlarının birbirine oldukça yakın olması nedeniyle hata matrisleri analiz edilmiştir. İşaretlerin bireysel sonuçları göz önüne alındığında CNN modelinde doğru işaret tahminlerinin daha homojen olması dolayısıyla CNN metodunun LDA'den daha başarılı olduğu görülmüştür. Aynı zamanda bu projenin devamı niteliğinde, geliştirilmiş olan model kullanılarak gerçek zamanlı tanımanın yapılabileceği bir uygulamanın geliştirilmesi kararlaştırılmış ve planlanmıştır.
Communication with the society is a challenging issue for deaf and hard-of-hearing people. This project aims to fulfill the need of a robust, usable and cost efficient communication system by using minimal resources such as compact sensor devices in combination with a mobile computational device, like a laptop, tablet or even a mobile phone. The purpose of this thesis is to develop an efficient gesture/sign recognition system using the power of machine learning and deep learning approaches, to achieve this goal. Therefore in this project, sign language recognition is achieved by adopting various traditional machine learning and deep learning techniques after the desired dataset is created. The project can be explained in 2 consecutive steps as; the data collection and processing step and design/implementation and evaluation of these machine learning classifiers and deep learning models with the collected data. Leap Motion Controller device which is a compact and cost efficient sensor for the hand gesture recognition is used in this project as the sensory hardware to collect the data. For the first step, a data collection tool is developed for LMC, to make the data collection process more efficient, easy and fast. Also with this tool a need in the literature is fulfilled, since there is no similar tool developed for the Leap Motion device. The tool introduces many benefits for the users who are creating the data samples for the dataset. These benefits can be summarized as; ease of use, automatic labeling, including reference sign video and device status checking. With these benefits in mind, the workflow of the application is as following user connects the Leap Motion Controller to her/his computer, starts the tool via the .exe file, chooses a sign from the list provided in the interface, watches the reference video of the sign, pushes the start button, tool checks the device and driver connection and informs the user about their status, user sees herself/himself in the webcam viewer, tool waits for the user to show her/his hands to the sensor, user shows both hands to the sensor, tool starts a countdown and starts recording when the countdown ends, user simulates the sign and pushes stop button, tool stops the recording and saves the collected data files into a local folder which are timestamped and labeled with the information from the sign list member that the user selected at the beginning of the process. Also this application designed as highly configurable as possible to make it usable as broadly as possible. For this purpose the sign selection list is constructed from the folder that includes all the reference videos, which means if, for any other research purposes, another set of hand sign samples are desired to be collected, the researcher just needs to change the videos in the reference video folder, no any other change is necessary to make the tool configured to satisfy the new purposes, especially any code change is not required. For the dataset, 12 dynamic 2 handed word signs are chosen from the Turkish Sign Language (TID). These signs are selected based on the results of our previous studies, which involve the recognition of static hand gestures in TID. The chosen signs include one of these static hand gestures, applied in dynamic hand motion patterns. After the tool is created, for the experiment purposes, total of 200 samples per sign are collected from multiple signers under various different environmental conditions. With these collected samples, a dataset is created with a total of 2400 samples which are evenly distributed across the signs. After dataset is created some preprocessing steps are applied to data to make it more convenient and efficient for the learning modals. For the recognition step, six different traditional machine learning classifiers as Gaussian Naïve Bayes, Support Vector Machine, K-Nearest Neighbour, Random Forest, Linear Discriminant Analysis and Multilayer Perceptron classifiers and 3 different deep learning models which are Convolutional Neural Networks, Basic Recurrent Neural Networks and Long Short-Term Memory Neural Networks are created and tested. While the experiments are conducted, various different hyperparameters are used with different loss and optimizer functions to increase the accuracy of the system. As the loss function, Cross Entropy Loss is used with Stochastic Gradient Decent and Adam optimizer functions. The experiments are done in three parts. First, the traditional machine learning methods are experimented on with multiple varying hyperparameters. The most successful method is found as the optimized LDA classifier with 99.9% train, 98.2% validation and 95% test accuracy. As the second part of the experiments, deep learning models are experimented on with again multiple varying hyperparameters. All three models are optimized by the analysis of multiple runs and as the result CNN became the most successful approach among them with 100% training, 97.7% validation and 96.7% test accuracy. For the last part of the experiments, 5 different train-test set pairs are created with shuffling the collected dataset and all the deep learning methods together with LDA are run with these pairs for 5 times to get the average results. As the final best results; 98.8% test accuracy is reached with the optimized LDA classifier and CNN model while the best accuracy remained at 88.3% for the RNN and 85.0% for the LSTM models. Also the overall average results became like 97.4% for LDA, 96.9% for CNN, 82.8% for RNN and 79.2% for LSTM as the test accuracies. From these results it is concluded that for the purpose of the study and the used dataset, it is seen that the most successful approaches are the LDA and CNN. As the last evaluation because the test accuracies of these two approaches are pretty close to each other, the confusion matrices of these two approaches are analyzed and it is seen that CNN's sign individual results are better than LDA by having more homogeneously distributed right predictions over all the signs.