Skip to content

Repository files navigation

🏆 SUBU ROBOTEK 2025 - Konuşmacı Tanıma Sistemi

Kemal Hafızoğlu tarafından geliştirilmiş, %100 doğruluk ile yarışmada 1. sıra alan konuşmacı tanıma projesi


🎯 Proje Özeti

SUBU Robotek 2025 Ses ve Görüntü İşleme Yarışması'nda StrongAI takımı, ResNet mimarisi ve agresif veri artırma kullanarak konuşmacı tanıma görevinde mükemmel sonuç elde etmiştir.

╔════════════════════════════════════════════╗
║          ✨ BAŞARI METRİKLERİ ✨           ║
╠════════════════════════════════════════════╣
║  Doğruluk: 100.0% 🎯                      ║
║  Test Örnekleri: 400/400 ✓                ║
║  Tahmin Süresi: 0.09ms (Gerçek Zamanlı)   ║
║  Yarışma Sırası: 1. YER 🏆                ║
╚════════════════════════════════════════════╝

� İstatistikler ve Performans

Test Sonuçları

Metrik Değer Durum
Doğruluk 100.0% ✅ Mükemmel
Precision 1.0 ✅ Mükemmel
Recall 1.0 ✅ Mükemmel
F1-Score 1.0 ✅ Mükemmel
Kayıp (Loss) 0.0003 ✅ Minimal
Test Örnekleri 400 ✅ Tümü Doğru
Yanlış Tahmin 0 ✅ Hiç Yok

Sınıf Bazında Performans

Doğruluk Dağılımı:

Person 1  ████████████████████ 44/44   100%
Person 2  ███████████████████████ 51/51 100%
Person 3  ███████████████████ 43/43    100%
Person 4  ███████████████████████ 50/50 100%
Person 5  ████████████████████ 48/48   100%
Person 6  ████████████████████ 49/49   100%
Person 7  ██████████████████ 41/41     100%
Person 8  ████ 8/8 (az veri) 100%      100%
Person 9  ████████████████████ 47/47   100%
Person10  ██████████ 19/19 100%        100%

Toplam: 400/400 ✓✓✓ PERFECT!

Model İstatistikleri

Model Mimarisi:
├─ Parametre Sayısı: 448,522
├─ Model Boyutu: 1.7 MB
├─ Eğitim Süresi: 3.5 dakika
├─ Tahmin Süresi: 0.09ms/örnek
└─ GPU Bellek: ~450 MB (Batch=32)

Eğitim Metrikleri

Eğitim İstatistikleri:
├─ Epoch Sayısı: 20
├─ Batch Size: 32
├─ Learning Rate: 0.001 (AdamW)
├─ Optimizer: AdamW + OneCycleLR
├─ Mixed Precision: Enabled (FP16+FP32)
├─ Hızlanma: 2x (Mixed Precision)
└─ İlk LR → Max LR → Son LR: Dinamik

🎯 Başarı Grafikleri

Doğruluk Trendleri

Doğruluk (%)
│
100 │                    ╱─────────
    │                ╱╱
 90 │          ╱╱
    │      ╱╱
 80 │  ╱╱
    │╱
 70 │
    └─────────────────────────────
      0  5  10  15  20 (Epoch)
      
Eğitim süreci: Hızlı yakınsama ve istikrar

Kayıp Azalması

Kayıp (Loss)
│
2.0 │ ╲
    │  ╲___
1.5 │      ╲___
    │         ╲___
1.0 │            ╲___
    │               ╲
0.5 │                ╲___
    │                    ╲
0.0 │_____________________╲
    └─────────────────────────────
      0  5  10  15  20 (Epoch)
      
Hızlı düşüş sonra stabilizasyon

Öğrenme Oranı Stratejisi

Öğrenme Oranı (LR)
│     ╱╲
│    ╱  ╲___
│   ╱      ╲___
│  ╱           ╲___
│ ╱                ╲___
└─────────────────────────
  0  5  10  15  20 (Epoch)
  
OneCycleLR: İlk artar, sonra düşer

📈 Veri İşleme Pipeline

SES DOSYASI (.wav)
    ↓ (16 kHz)
MFCC ÇIKARIMI
    ↓ (40 katsayı, 80 Mel filtre)
SPEKTROGRAM (1×40×T)
    ↓
    ├─→ AUGMENTATION (%70 olasılık)
    │   ├─ Time Masking (%50)
    │   ├─ Frequency Masking (%50)
    │   ├─ Gaussian Noise (%30)
    │   └─ Feature Scaling (%30)
    │
    ↓
MODELE BESLEMESİ
    ↓ (ResNet + 3 Residual Block)
TAHMIN ÇIKTI
    ↓ (10 sınıf olasılığı)
KIŞI TAHMINI (Person 1-10)

🧠 Model Mimarisi

INPUT (1×40×T)
    ↓
Conv2d(1→32) + BatchNorm + ReLU
MaxPool(2×2)
    ↓
ResidualBlock(32→64)
MaxPool(2×2)
    ↓
ResidualBlock(64→128)
MaxPool(2×2)
    ↓
ResidualBlock(128→256)
MaxPool(2×2)
    ↓
Global Avg Pooling + Flatten
    ↓
FC(256→512) + BatchNorm + ReLU + Dropout(0.5)
    ↓
FC(512→10) [10 sınıf]
    ↓
Softmax
    ↓
OUTPUT (Olasılıklar)

Toplam Parametre: 448,522

🎨 Veri Artırma Teknikleri

Augmentation Görsel Gösterim:

1. TIME MASKING (Zaman Maskeleme)
   Orijinal:  ███ ███ ███ ███ ███
   Sonrası:   ███ ░░░ ███ ███ ███ ← %10 zaman maskelendi
   
2. FREQUENCY MASKING (Frekans Maskeleme)
   Orijinal:  [█ █ █ █ █]  (5 frekans bandı)
   Sonrası:   [█ ░ █ █ █]  ← %15 frekans maskelendi
   
3. GAUSSIAN NOISE (Gürültü Ekleme)
   Orijinal:  ███ ███ ███
   Sonrası:   ▓▓▓ ▓▓░ ▓▓▓  ← İnce gürültü eklendi (σ=0.05)
   
4. FEATURE SCALING (Ölçekleme)
   Orijinal:  ███ ███ ███
   Sonrası:   ▓▓▓▓ ▓▓▓▓ ▓▓▓▓ ← 0.9x-1.1x ölçeklendi

Sonuç: 1 örnek → 4 çeşitlendirilmiş örnek
       400 örnek → 1600 etkili örnek (4x çoğalma!)

🚀 Proje Dosyaları

📁 /Robotek Latest/
│
├── 📖 BLOG_YAZISI.md              (Ana blog yazısı - 21 KB, 602 satır)
├── 🎨 BLOG_YAZISI.html            (Web versiyonu - 25 KB, 648 satır)
├── 📋 README.md                   (Bu dosya - İstatistikler ve grafikler)
│
├── 💾 train1.py                   (Eğitim kodu - 1456 satır)
├── 🎯 a.py                        (GUI + Tahmin - 957 satır)
├── 📊 test1.py                    (Test metrikleri - 690 satır)
│
├── 🗂️ veriseti/                   (Veri seti - 10 kişi)
│   ├── person1/ ... person10/
│   └── Toplam: 400 ses dosyası
│
└── 📤 robotek_output_1/           (Çıktılar)
    ├── models/                    (Eğitilmiş modeller)
    ├── graphs/                    (Grafikler)
    ├── logs/                      (Log dosyaları)
    └── predictions/               (Tahmin sonuçları)

🎓 Kullanılan Teknoloji

┌──────────────────────────────────┐
│    YAZILIM VE KÜTÜPHANELER       │
├──────────────────────────────────┤
│ Python 3.12.10                   │
│ PyTorch 2.6.0 + CUDA             │
│ Torchaudio 2.6.0 (Ses İşleme)    │
│ LibROSA (MFCC)                   │
│ NumPy, Pandas, Scikit-learn      │
│ PySide6 (GUI)                    │
│ Matplotlib, Seaborn (Grafikler)  │
└──────────────────────────────────┘

🏅 Başarı Faktörleri

TOP 6 FAKTÖRü SIRALAMA:

1️⃣  AGRESIF VERİ ARTIRMA
    Etki: %70 → %100 doğruluk (+30%)
    ├─ 4 orthogonal teknik
    └─ Etkili 4x veri çoğalması

2️⃣  RESNET MİMARİSİ
    Etki: Gradient vanishing çözümü
    ├─ 3 Residual Block
    └─ Skip connections

3️⃣  MODERN EĞİTİM TEKNİĞİ
    Etki: Hızlı ve stabil yakınsama
    ├─ AdamW Optimizer
    ├─ OneCycleLR Scheduler
    └─ Mixed Precision Training

4️⃣  MFCC ÖZELLİĞİ
    Etki: Optimal ses temsili
    ├─ 40 MFCC katsayısı
    └─ 80 Mel filtre

5️⃣  HYPERPARAMETRESİ TUNING
    Etki: Fine-tuning optimizasyonu
    ├─ Batch size: 32
    ├─ Learning rate: 0.001
    └─ Dropout: 0.5

6️⃣  STRATIFIYE VERİ AYRIMI
    Etki: Dengeli train/test seti
    ├─ 90/10 split
    └─ Her sınıftan eşit örnek

� Hızlı Başlangıç

1. Blog Yazısını Oku

cat BLOG_YAZISI.md | less
# veya
nano BLOG_YAZISI.md

2. HTML Versiyonunu Aç

# Tarayıcıda aç
firefox BLOG_YAZISI.html
# veya
open BLOG_YAZISI.html   # Mac

3. Projeyi Çalıştır

# Eğitim
python train1.py

# Tahmin (GUI)
python a.py

# Test
python test1.py

� Proje Sonuçları

╔════════════════════════════════════════════════════════════════╗
║                                                                ║
║         🏆 SUBU ROBOTEK 2025 BAŞARI SONUÇLARI 🏆             ║
║                                                                ║
║  YARISMA: Ses ve Görüntü İşleme Yarışması                    ║
║  KATEGORİ: Konuşmacı Tanıma (Speaker Recognition)            ║
║  TAKIMI: StrongAI                                            ║
║  LİDER: Kemal Hafızoğlu                                      ║
║                                                                ║
║  ╭─────────────────────────────────────────╮                ║
║  │ SIRALAMA: 1. YER (Birinci) 🏆           │                ║
║  │ DOĞRULUK: %100 (Tamamen Mükemmel)       │                ║
║  │ TEST: 400/400 Doğru (Hiç Hata Yok)      │                ║
║  │ TAHMIN: 0.09ms (Gerçek Zamanlı)         │                ║
║  ╰─────────────────────────────────────────╰                ║
║                                                                ║
║  TEKNOLOJI:                                                  ║
║  • ResNet Mimarisi                                          ║
║  • 4 Augmentation Tekniği                                   ║
║  • AdamW + OneCycleLR                                       ║
║  • Mixed Precision Training                                 ║
║  • MFCC Ses Özelliği                                        ║
║                                                                ║
╚════════════════════════════════════════════════════════════════╝

� İletişim

Proje Lideri: Kemal Hafızoğlu
Email: kemal.hafizoğlu@ogr.sakarya.edu.tr
GitHub: github.com/bykemalh
Üniversite: Sakarya Üniversitesi, Bilgisayar Mühendisliği


📚 Referanslar

  1. He, K., et al. (2016) - "Deep Residual Learning for Image Recognition"
  2. Ioffe, S., & Szegedy, C. (2015) - "Batch Normalization"
  3. Smith, L. N. (2019) - "A Disciplined Approach to Neural Network Training"
  4. Davis, S., & Mermelstein, P. (1980) - "MFCC Comparison Study"

© 2025 Kemal Hafızoğlu | StrongAI | SUBU Robotek 2025

"Yapay zeka, sadece bilgisayarların akıllı olması değil, bizim sorunları daha akıllı çözmesidir."

About

No description, website, or topics provided.

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages