Derin öğrenme yöntemleri ile yüz görüntülerinden yaş kestirimi
Age estimation from facial images using deep neural networks
Yazar: YUSUF ÇAĞRI DAŞKIN
Danışman: DOÇ. DR. FÜSUN BALIK ŞANLI
Yıldız Teknik Üniversitesi / Fen Bilimleri Enstitüsü / Harita Mühendisliği Ana Bilim Dalı / Uzaktan Algılama ve Coğrafi Bilgi Sistemleri Bilim Dalı
Derece: Yüksek Lisans, 2019
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control ; Bilim ve Teknoloji = Science and Technology ; Jeodezi ve Fotogrametri = Geodesy and Photogrammetry
Dizin: Sayısal görüntü analizi = Digital image analysis ; Sayısal görüntü işleme = Digital image processing ; Yüz görüntüsü = Face image

Özet:
Yapay zekâ çalışmalarında kaydedilen ilerlemeler ses, görüntü ve yazı işleme konularında başarılı sonuçlar elde edilebilmesine olanak sağlamıştır. Yapay sinir ağlarının son hali olan derin yapay sinir ağları görüntü işlemede robot görmesi, görüntü etiketleme, görüntü analiz etme ve sınıflandırma konularında kullanılmaya başlamıştır. Askeri amaçlar ve güvenlik konularında görüntü ve video işleme tekniklerinde doğru kurgulanmış derin yapay sinir ağları mimarileri ile desteklenen sistemlerde doğruluk ve güvenilirliğin arttığı gözlenmiştir.
Bu çalışmada, yaş kestirimi için 0 – 79 yaş aralığındaki insanlara ait yüz görüntülerinden oluşan bir veri seti ile derin yapay sinir ağı eğitilerek değişkenlere göre üç farklı durumda doğruluk analizi yapılmış ve her bir durumda sonuç doğruluğun ne yönde etkilendiği gösterilmiştir. 
Birinci durumda yapay sinir ağının eğitilmesi sırasında uygulanan tekrarlamaların sayısının artmasının doğruluğa etkisi gözlemlenmiştir. Bunun için sinir ağının eğitimi sırasında geçen her 1000 tekrarda ağın çıktısı kaydedilmiş, farklı tekrar sayılarına tekabül eden çıktılarla yaş sınıflandırma testleri yapılmıştır.
İkinci durumda yapay sinir ağının eğitilmesi için kullanılan görüntülerin çözünürlüklerinin sonuç doğruluğu nasıl etkilediği gözlemlenmiştir. Bunun için sinir ağı aynı görüntülerin sırayla 80x80, 120x120 ve 224x224 boyutlarındaki kopyalarıyla aynı tekrarlama sayısı baz alınarak 3 kere eğitilmiştir. Her bir eğitimin çıktısı yaş sınıflandırma testine tabi tutularak doğruluklar karşılaştırılmıştır.
Üçüncü durumda eğitimin yaşlara göre yapılması ile yaş gruplarına göre yapılması senaryolarının sınıflandırma doğruluğunu nasıl etkilediği gözlemlenmiştir. Bunun için veri seti önce 0 – 79 yaş aralığını kapsayacak şekilde 80 sınıfa ayrılmış ve bu sınıflara göre eğitim yapılmışır. Daha sonra aynı veri seti yaş grupları oluşturacak sınıflandırılmış ve bu sınıflara göre aynı tekrarlama sayısı ile eğitim yapılmıştır. Her iki durumdaki eğitim çıktısı yaş sınıflandırma testine tabi tutularak doğruluklar karşılaştırılmıştır.
Eğitim ve sınıflandırma testi işlemlerinin gerçekleştirilebilmesi için Python kodlama dili ile Tensorflow çatısı kullanılarak iki program geliştirilmiştir. Eğitimler GoogLeNet \cite{1} yapay sinir ağı modeli kullanılarak yapılmıştır.  Yapay sinir ağı eğitim işlemleri Nvidia GTX 1080 ekran kartı üzerinde gerçekleştirilmiştir. Yapay sinir ağının eğitilmesi için IMDB – WIKI yüz veri seti kullanılmıştır. Bu veri seti, kişilerin doğum tarihleri ve fotoğrafların çekildikleri yıllarla etiketlenmiş yüz görüntülerinden oluşmaktadır. Bu etiketlere göre görüntülerin tasnif edilebilmesi için C\# dili ile yardımcı bir program geliştirilmiştir.

Abstract:
Recent improvements in artificial intelligence studies have enabled people to get successful results in audio, image and text processing. Deep artificial neural networks, which is the latest form of artificial neural networks, are used in all image processing, robot vision, image labeling, image analysis and image classification. It is observed that the accuracy and the reliability are enhanced in systems supported by deep artificial neural network architectures that have been correctly designed for image and video processing techniques in military purposes and security issues.
In this study, a data set consisting of facial images of people aged between 0 and 79 years for age estimation was studied by using deep artificial neural network and accuracy analysis were performed in three different situations. In each case the accuracy of the results was shown.
In the first case, the effect of increasing the number of iterations applied during the training of the artificial neural network has been observed. For this, the output of the network was recorded every 1000 epochs during the training of the neural network, and the age classification tests were performed with the outputs corresponding to the different number of iterations.
In the second case, it was observed how the pixel resolutions of the images used for the training of the neural network affect the accuracy of the results. For this purpose, the neural network was trained 3 times based on the same number of iterations with 80x80, 120x120 and 224x224 copies of the images respectively. The output of each training was subjected to age classification test and the accuracy was compared.
In the third case, it has been observed how the classification accuracy is affected according to age and age groups scenarios. To do this, first the data set was divided into 80 classes to cover the age range of 0 - 79 and was trained according to these classes. Then, the same data set was classified to form age groups and training was performed with the same number of repetitions. In both cases, the training output was subjected to age classification test and the accuracy was compared.
Two programs have been developed using the Tensorflow framework with Python coding language to perform training and classification tests. Trainings were made using GoogLeNet \cite{1} artificial neural network model. Artificial neural network training was performed on the Nvidia GTX 1080 graphics card. IMDB - WIKI facial data set was used to train artificial neural network. This data set is composed of images of the people at varying ages and each image labeled with birth dates and the years when the photographs were taken. According to these labels, an auxiliary program has been developed with C\# language in order to classify the images.