Yazılım Geliştiricisi

Modern web teknolojileri ile yaratıcı çözümler geliştiriyorum

Buğra Özdemir - Profil Fotoğrafı

Hakkımda

Yazılım Geliştiricisi

Modern web teknolojileri konusunda tutkulu bir geliştiriciyim. Frontend'den backend'e, mobil uygulamalardan web servislerine kadar geniş bir yelpazede projeler geliştiriyorum. Her kod satırında kullanıcı deneyimini ön planda tutarak, performanslı ve ölçeklenebilir çözümler üretiyorum. GitHub'da aktif olarak projeler geliştiriyor ve açık kaynak topluluğuna katkıda bulunuyorum.

JavaScript/TypeScript
React/Next.js
Node.js/Express
Python/Django
SQL/NoSQL
Buğra Özdemir - Profil Fotoğrafı

Deneyim

IT Personeli

C2B Bilişim Hizmetleri ve Danışmanlık Ticaret Anonim Şirketi Stajyer
Tem 2024 - Ağu 2024 · 2 ay

Bu pozisyonda, şirketin teknik destek süreçlerinde aktif rol aldım ve kullanıcıların karşılaştığı BT (Bilgi Teknolojileri) sorunlarına hızlı ve etkili çözümler ürettim. Sistem kurulumu, yazılım güncellemeleri, ağ bağlantısı sorunları ve donanım problemlerinin çözümü konularında deneyim kazandım. Kullanıcı eğitimleri ve dokümantasyon süreçlerinde de aktif rol aldım.

Teknik Destek

Eğitim

09.2023 - 06.2025
Ön Lisans

Bilgisayar Programcılığı

Haliç Üniversitesi

İstanbul, Türkiye

GPA: 3.69/4.00
09.2018 - 06.2022
Lise

Anadolu Lisesi

Mehmet Niyazi Altuğ Anadolu Lisesi

İstanbul, Türkiye

Ortalama: 80/100

Projeler

E-Ticaret Sitesi

E-Ticaret Sitesi

React, Node.js, MongoDB

Fitness Uygulaması

Fitness Uygulaması

React Native, Firebase

API Geliştirme

REST API

Express.js, PostgreSQL

Task Yönetim Sistemi

Task Yönetim Sistemi

MERN Stack

Dashboard

Analytics Dashboard

Vue.js, D3.js

Ulaşım Uygulaması

Ulaşım Uygulaması

Flutter, Google Maps API

Blog Yazılarım

Yapay zeka ve veri bilimi alanındaki deneyimlerimi paylaştığım Medium yazılarım

AI Article

Yapay Zeka 2 gün önce

ChatGPT ile Geliştirici Verimliliğini Artırma

Modern yazılım geliştirme süreçlerinde yapay zeka araçlarının kullanımı ve ChatGPT'nin geliştiricilere sağladığı faydalar...

1.2K 45 12
Medium'da Oku

Data Science

Veri Bilimi 1 hafta önce

Python ile Veri Analizi: Pandas Kullanımı

Pandas kütüphanesi kullanarak büyük veri setlerini analiz etme ve görselleştirme teknikleri...

856 32 8
Medium'da Oku

Machine Learning

Makine Öğrenmesi 2 hafta önce

Scikit-learn ile Sınıflandırma Modelleri

Scikit-learn kullanarak farklı sınıflandırma algoritmalarını karşılaştırma ve model performansını değerlendirme...

1.5K 67 15
Medium'da Oku

Tutorial

Tutorial 3 hafta önce

TensorFlow 2.0 ile Derin Öğrenme

TensorFlow 2.0 kullanarak neural network modelleri oluşturma ve eğitme adım adım rehber...

2.1K 89 23
Medium'da Oku

Neural Networks

Yapay Zeka 1 ay önce

CNN ile Görüntü Sınıflandırma

Convolutional Neural Networks kullanarak görüntü sınıflandırma modelleri geliştirme ve optimizasyon...

1.8K 76 18
Medium'da Oku

Big Data

Veri Bilimi 1 ay önce

Apache Spark ile Büyük Veri İşleme

Apache Spark kullanarak büyük veri setlerini işleme ve analiz etme teknikleri...

1.3K 54 11
Medium'da Oku

Araştırma Projesi

CNN Tabanlı Türkçe Duygu Durum Analizi

CNN Tabanlı Derin Öğrenme Yaklaşımıyla Görüntü ve Kamera Girdileri Üzerinden Yüz İfadesi Tanıma

Yazar: Buğra Özdemir Tarih: 2025 Kategori: Bilgisayarlı Görüntü İşleme

ÖZET

Günümüzde psikoloji, sağlık, eğitim ve eğlence gibi birçok alanda duygu tanıma sistemlerine duyulan ihtiyaç giderek artmakta ve bu alandaki teknolojik gelişmeler önemli bir çalışma alanı oluşturmaktadır. Bu çalışma, insan-bilgisayar etkileşimlerinde bireylerin duygu durumlarının gerçek zamanlı olarak tespit edilmesini amaçlayan bir derin öğrenme sisteminin geliştirilmesini konu almaktadır.

Çalışmada, AffectNet, CK+48, FER2013, RAF-DB ve araştırmacılar tarafından oluşturulan MyFER-7 veri setlerinden yararlanıldı. Tüm veri setleri tutarlı bir eğitim süreci için "merged_dataset" adı altında birleştirilmiş ve veriler yedi temel duygu kategorisine (mutlu, üzgün, kızgın, korkmuş, şaşkın, iğrenmiş, nötr) göre yeniden düzenlendi. Görüntü işleme aşamasında yüz bölgeleri Haar Cascade yöntemi ile tespit edilerek 48x48 piksel boyutlarına indirilmiş ve gri tonlamalı hale getirilmiştir. Bu işlemler sonucunda yaklaşık 86.000 görüntüden oluşan bir veri seti elde edilmiştir.

Model eğitimi sıfırdan oluşturulan ve üç konvolüsyonel blok içeren bir CNN mimarisi ile gerçekleştirilmiştir. Her blokta sırasıyla Conv2D, Batch Normalization, MaxPooling ve Dropout katmanları yer almakta; ağın son kısmında ise Flatten katmanı, 1024 nöronlu yoğun (dense) katman ve softmax çıkış katmanı ile sınıflandırma işlemi gerçekleştirilmiştir. Aşırı öğrenmeyi önlemek amacıyla Batch Normalization, Dropout, veri artırımı, EarlyStopping ve ModelCheckpoint gibi ileri seviye yöntemler kullanılmıştır. Eğitim sonunda model %61,26 doğruluk oranı elde etmiştir. Ayrıca geliştirilen grafiksel kullanıcı arayüzü ile hem yüklenen görüntülerden hem de gerçek zamanlı kamera verisinden duygu analizi yapılabilmektedir. Bu sistem, kullanıcı dostu bir platform üzerinden gerçek zamanlı analiz gerçekleştirme imkânı sunarak insan-bilgisayar etkileşimini daha doğal ve etkili hale getirmeyi hedeflemektedir.

Anahtar sözcükler: Yüz İfadesi Tanıma, Derin Öğrenme, Convolutional Neural Network, Gerçek Zamanlı Görüntü İşleme

ABSTRACT

In today's world, the need for emotion recognition systems is growing rapidly across various fields such as psychology, healthcare, education, and entertainment. Technological advancements in this area have made it a significant subject of study. This research focuses on developing a deep learning-based system for real-time detection of individuals' emotional states during human-computer interactions.

The study utilized several datasets created by researchers, including AffectNet, CK+48, FER2013, RAF-DB, and MyFER-7. These datasets were combined under the name "merged_dataset" to ensure a consistent training process. The data were reorganized according to seven basic emotion categories: happy, sad, angry, scared, frightened, confused, disgusted, and neutral. During the image processing stage, facial regions were detected using the Haar Cascade method, resized to 48x48 pixels, and converted to grayscale. As a result, a dataset of approximately 86,000 images was created.

Model training was carried out using a CNN architecture built from scratch, consisting of three convolutional blocks. Each block includes Conv2D, Batch Normalization, MaxPooling, and Dropout layers. The classification is performed using a Flatten layer, followed by a dense layer with 1024 neurons, and a softmax output layer. To prevent overfitting, advanced techniques such as Batch Normalization, Dropout, data augmentation, EarlyStopping, and ModelCheckpoint were employed. The final model achieved an accuracy of 61.26%. Additionally, a graphical user interface was developed, enabling sentiment analysis from both uploaded images and real-time camera input. This system aims to enhance human-computer interaction by offering real-time emotion analysis in a user-friendly environment.

Keywords: Facial Expression Recognition, Deep Learning, Convolutional Neural Network, Real-Time Image Processing

1. GİRİŞ

Son yıllarda, insan yüz ifadelerinden duygu tanıma ve insan-bilgisayar etkileşimlerinin değerlendirilmesi öne çıkan araştırma konuları haline gelmiştir. Özellikle psikoloji, sağlık, eğlence ve eğitim alanlarında bu konuda çeşitli çalışmalar yapılmıştır. Ancak bireylerin duygu durumlarını doğru ve gerçek zamanlı olarak ölçmek hem psikolojik hem de teknolojik zorluklar sunmaktadır.

Bu çalışmanın amacı, bu etkileşimleri keşfetmek ve duygu durumlarının gerçek zamanlı değerlendirilmesini sağlamaktır. Geçmişte ve devam eden çok sayıda çalışma duygu tanıma ve insan-bilgisayar etkileşimi konularını ele almıştır. MIT Media Lab'da Affective Computing'in kurucusu olan Picard, bilgisayarların insan duygularını tanıma ve bunlara yanıt verme yeteneğini geliştirme konusunda öncü çalışmalar yaparak affective computing'in temellerini atmıştır [2]. Bu alandaki araştırmalar çok disiplinli bir yapıya sahiptir.

Eğitim alanında örneğin, bir çalışma [1] öğretmen-öğrenci etkileşimlerini geliştirmek için çoklu fizyolojik sinyallerin kombinasyonunu kullanarak sağlam bir duygu tanıma sistemi geliştirmeyi amaçlamıştır. Bu çalışma, duygu tanıma teknolojilerinin eğitimsel insan-bilgisayar etkileşim sistemlerine entegrasyonunu önermektedir. Duygu tanıma sistemleri, bireylerin zihinsel durumlarını objektif olarak izleme kapasiteleri nedeniyle psikoloji alanında da önemli araçlar haline gelmiştir.

2. MATERYAL VE YÖNTEM

2.1. Medya ve Kütüphaneler

CNN modeli kullanılarak yapılan duygu analizi çalışmaları, Ryzen 7 4800H 2.9GHz işlemcili, 4GB NVIDIA GeForce GTX 1650 ekran kartlı, 16GB RAM'li ve Windows 11 işletim sistemi çalıştıran bir dizüstü bilgisayarda gerçekleştirilmiştir. Program Python 3.12 kullanılarak geliştirilmiş ve geliştirme sırasında os, shutil, re ve collections.deque gibi standart kütüphaneler kullanılmıştır.

Derin öğrenme ve model eğitimi için TensorFlow Keras bileşenleri kullanılmıştır. Model performansının değerlendirilmesi Scikit-learn kütüphanesinden confusion_matrix ve ConfusionMatrixDisplay kullanılarak gerçekleştirilmiştir. Veri görselleştirme ve arayüz entegrasyonu için matplotlib.pyplot ve FigureCanvasTkAgg kullanılmıştır. Sayısal işlemler NumPy ile yapılırken, görüntü işleme için OpenCV (cv2), MediaPipe ve Pillow (Image, ImageTk) kullanılmıştır.

2.2. Kullanılan Veri Setleri

2.2.1. CK+48

CK+48, orijinal Extended Cohn-Kanade (CK+) veri setinden türetilen statik yüz ifadelerinin bir alt kümesidir. CK+ veri seti başlangıçta video sekansları olarak yakalanan yüz ifadelerini içerirken, CK+48 versiyonu her sekansın sadece son karesini - duygusal ifadenin en belirgin olduğu kareyi - çıkarır. Bu açıdan CK+48, özellikle görüntü tabanlı duygu sınıflandırma modellerinin eğitimi için uygun olan basitleştirilmiş ve dengeli bir yapı sunar.

2.2.2. RAF-DB

Real-world Affective Faces Database (RAF-DB), gerçek dünya sosyal medya platformlarından toplanan özenle etiketlenmiş yüz görüntülerinden oluşan yaygın olarak kullanılan bir yüz ifadesi tanıma veri setidir. Geniş yaş grupları, etnik kökenler, yüz pozları ve aydınlatma koşullarını temsil edecek şekilde tasarlanan RAF-DB, özellikle derin öğrenme tabanlı duygu tanıma araştırmalarını desteklemek için geliştirilmiştir.

2.2.3. FER-2013

Facial Expression Recognition 2013 (FER-2013) veri seti, Kaggle'da düzenlenen "Challenges in Representation Learning" yarışması için orijinal olarak geliştirilmiş büyük ölçekli bir benchmark veri setidir. Yüz görüntüleri internetten toplanmış ve 48×48 piksel standart çözünürlükte gri tonlamalı formata önceden işlenmiştir.

2.2.4. AffectNET

Bu çalışmada kullanılan veriler, yüz ifadesi tanıma için yaygın olarak benimsenen AffectNet veri setinin geliştirilmiş bir versiyonu olan AffectNet+'dan türetilmiştir. Geleneksel veri setlerinin her yüz görüntüsüne tek bir duygu kategorisi atamasının aksine, AffectNet+ çoklu duygu kategorileri arasında olasılık dağılımları atayan yumuşak etiketleme yaklaşımını kullanır.

2.2.5. MyFER-7

Bu çalışmada, literatürde mevcut olan veri setlerine ek olarak, araştırmanın uygulamalı yönünü güçlendirmek için benzersiz bir yüz ifadesi veri seti oluşturulmuştur. Veri toplama süreci toplam 27 gönüllü katılımcıyı içermiştir. Tüm katılımcılardan onam formları alınmış ve veri toplama prosedürleri etik kurallar ve kişisel veri koruma düzenlemelerine uygun olarak yürütülmüştür.

2.3. Veri Setlerinin Birleştirilmesi ve Standardizasyonu

Yüz ifadesi tanıma (FER) görevi için çeşitli veri setlerini entegre ederek birleştirilmiş bir veri seti oluşturmak için bir Python scripti geliştirilmiştir. Script, farklı kaynaklardan görüntüleri toplar ve bunları standart bir klasör yapısına yerleştirir, böylece eğitim sırasında kullanılan veri setinin tutarlılığını sağlar.

2.4. Veri Artırımı ve CNN Mimarileri

Yüz ifadesi tanıma görevi için tasarlanmış derin öğrenme tabanlı bir Convolutional Neural Network (CNN) modeli detaylı olarak açıklanmıştır. Amaç, gri tonlamalı 48x48 yüz görüntülerinden bireylerin ruh hallerini doğru bir şekilde sınıflandırmaktır, bunun için model mimarisi ve veri ön işleme titizlikle tasarlanmıştır.

2.5. Kullanıcı Arayüzü

Bu projede geliştirilen GUI, zengin bir etkileşim aracı özelliği taşır ve hem gerçek zamanlı kamera beslemeleri hem de kullanıcı tarafından yüklenen statik görüntüler için derin öğrenme tabanlı yüz ifadesi tanıma modeli sağlar. Arayüz, kullanıcı dostu bir deneyim sunmak için Tkinter kütüphanesi kullanılarak uygulanmıştır.

3. SONUÇLAR VE TARTIŞMA

3.1. Genel Performans

Model 50 epoch boyunca eğitilmiş ve EarlyStopping mekanizması sayesinde en iyi validation loss'un gözlemlendiği 45. epoch'ta eğitim durdurulmuştur. Final durumda training accuracy %59.35, validation accuracy %61.26 olarak elde edilmiştir. Training ve validation accuracy eğrileri 30-40 epoch'lar arasında yakın kalmış, bu da aşırı öğrenmenin minimum seviyede tutulduğunu göstermektedir.

3.2. Parametreler

Eğitim süreci sırasında kullanılan ana ayarlar ve modelimizin mimari tasarımı Tablo VI'da özetlenmiştir. Eğitim 64 batch size ve toplam 50 epoch ile başlatılmıştır. Optimizasyon için varsayılan 0.001 learning rate ile Adam algoritması seçilmiştir. Çok sınıflı sınıflandırma için uygun olan Categorical Crossentropy loss function olarak kullanılmıştır.

3.3. Eğitim/Doğrulama

CNN tabanlı mimari kullanılarak oluşturulan model 50 epoch boyunca eğitilmiştir. 50. epoch'un sonunda, training verilerinde %57.75, validation verilerinde %60.50 doğruluk elde etmiştir. Eğitim süreci boyunca doğruluk sürekli artarken loss sürekli azalmıştır. En yüksek validation performansı 47. epoch'ta elde edilmiş, model burada en iyi sonuçlarını %59.35 training accuracy ve %61.26 validation accuracy ile elde etmiştir.

3.4. Confusion Matrix

Şekil 2'de sunulan confusion matrix, modelin yedi duygu sınıfı genelinde sınıf bazında recall performansını ortaya koymaktadır. "Happy" sınıfı %28.3 ile en yüksek recall oranını elde ederken, "Disgust" ve "Fear" sınıfları sadece %2.7 ve %7.9 oranında doğru tanınmıştır. Özellikle "Fear" örneklerinin %28.5'i ve "Disgust" örneklerinin %27.5'i "Happy" olarak yanlış sınıflandırılmıştır.

3.5. Sınıf Bazında Performans Metrikleri

Tablo 8'de gösterildiği gibi, model "Happy" sınıfı için en iyi sonuçları elde etmiş, %83.2 precision, %90.8 recall ve %86.8 F₁-score değerlerine ulaşmıştır. "Sad" sınıfı da %64.0 precision ve %51.2 recall ile nispeten dengeli performans göstermiştir. "Disgust" ve "Fear" sınıfları çok düşük precision (%47.4 ve %52.1) ve recall (%28.3 ve %42.7) değerleri göstermiş, bu da sırasıyla %35.6 ve %47.0 F₁-score'larına neden olmuştur.

3.6. Gerçek Zamanlı Performans

Model'in gerçek zamanlı uygulamalardaki performansı da değerlendirilmiştir. Ortalama ≥15 FPS (saniyedeki kare sayısı) ve 60-80 ms kare başına gecikme ile hem canlı yayın hem de statik görüntü yüklemelerinde akıcı bir kullanıcı deneyimi elde edilmiştir. Tkinter tabanlı GUI üzerinde yapılan testler, kullanıcı algılanan gecikmenin minimal olduğunu göstermiş, bu da modelimizin hem çevrimiçi hem de çevrimdışı senaryolarda pratik kullanımını desteklemektedir.

SONUÇLAR

Bu çalışmada, farklı kaynaklardan elde edilen veri setlerinin birleştirilmesiyle oluşturulan yedi sınıflı veri seti üzerinde sıfırdan geliştirilen üç bloklu Convolutional Neural Network (CNN) mimarisi kullanılarak yüz ifadesi tanıma gerçekleştirilmiştir. Eğitim sırasında uygulanan veri artırımı, normalizasyon ve erken durdurma gibi teknikler sayesinde aşırı öğrenme önlenmiş ve %61.26 doğruluk oranı elde edilmiştir. Gerçek zamanlı çalışabilen grafiksel kullanıcı arayüzü aracılığıyla hem statik görüntülerde hem de canlı kamera girdilerinde duygu tanıma başarıyla uygulanmıştır.

Model'in belirli duygular için düşük ayırt edici gücü, sınıf dengesizliği ve ifade çeşitliliği ile ilgili sınırlamaları göstermektedir. Gelecek çalışmalar, modelin performansını daha da artırmak için daha derin mimariler, transfer learning yaklaşımları ve çok modlu verilerin dahil edilmesi üzerine odaklanacaktır.

KAYNAKLAR

  1. R. W. Picard, "Affective Computing," Cambridge, MA: MIT Press, 1997.
  2. X. Zhao, J. Ma, J. Zhao, and Y. Lu, "A systematic review on affective computing: Emotion models, databases, and recent advances," arXiv preprint arXiv:2203.06935, Mar. 2022.
  3. W. Wu, E. Zuo, W. Zhang, and X. Meng, "Multi-physiological signal fusion for objective emotion recognition in educational human–computer interaction," Frontiers in Public Health, vol. 12, Nov. 2024.
  4. G. Pei, H. Li, Y. Lu, Y. Wang, S. Hua, and T. Li, "Affective computing: Recent advances, challenges, and future directions," Intelligent Computing, vol. 3, Art. no. 0076, 2024.
  5. C. Dewi, L. S. Gunawan, S. G. Hastoko, and H. J. Christanto, "Real-Time Facial Expression Recognition: Advances, Challenges and Future Directions," Vietnam Journal of Computer Science, vol. 11, no. 2, pp. 167–193, Dec. 2023.
  6. P. Lucey, J. F. Cohn, T. Kanade, J. Saragih, Z. Ambadar, and I. Matthews, "The Extended Cohn-Kanade Dataset (CK+): A complete dataset for action unit and emotion-specified expression," in Proc. IEEE Comput. Soc. Conf. Comput. Vis. Pattern Recognit. Workshops (CVPRW), San Francisco, CA, USA, Jun. 2010.
  7. S. Li and W. Deng, "Reliable crowdsourcing and deep locality-preserving learning for expression recognition in the wild," in Proc. IEEE Conf. Comput. Vis. Pattern Recognit. (CVPR), Long Beach, CA, USA, Jun. 2019, pp. 2852–2861.
  8. Shuvoalok, "RAF-DB Dataset," Kaggle, 2022.
  9. I. J. Goodfellow, D. Erhan, P. L. Carrier, A. Courville, M. Mirza, B. Hamner, et al., "Challenges in representation learning: A report on three machine learning contests," Neural Networks, vol. 64, pp. 59–63, 2015.
  10. M. Sambare, "FER-2013 Facial Expression Recognition Dataset," Kaggle, 2022.
  11. A. Pourramezan Fard, M. M. Hosseini, T. D. Sweeny, and M. H. Mahoor, "AffectNet+: A database for enhancing facial expression recognition with soft-labels," arXiv preprint arXiv:2410.22506, Oct. 2024.

Sertifikalarım

Yapay zeka, veri bilimi ve yazılım geliştirme alanlarında aldığım sertifikalar

Deep Learning Specialization

Coursera - Andrew Ng

2024 Sertifikayı Gör

Python for Data Science

IBM - Coursera

2023 Sertifikayı Gör

Machine Learning

Stanford University - Coursera

2023 Sertifikayı Gör

SQL for Data Science

University of California - Coursera

2023 Sertifikayı Gör

AWS Machine Learning

Amazon Web Services

2023 Sertifikayı Gör

Google Data Analytics

Google - Coursera

2022 Sertifikayı Gör