Skip to content

batuhansimsar/TumorProjectWithYolo

Repository files navigation

🧠 YOLO Modelleri ile Beyin Tümörü Tespiti

📋 Proje Hakkında

Bu proje, beyin tümörü tespiti için üç farklı son nesil YOLO modelini karşılaştırıyor:

  • YOLOv9c (Compact) - Gelişmiş mimari ile son nesil model
  • YOLOv10n (Nano) - Ultra hafif ve hızlı
  • YOLO11n (Nano) - Geliştirilmiş doğrulukla en yeni versiyon

Tüm modeller, Ultralytics kütüphanesi kullanılarak brain-tumor veri seti üzerinde 30 epoch boyunca 640x640 görüntü çözünürlüğünde eğitildi.


🎯 Performans Karşılaştırması

Son Sonuçlar (30. Epoch)

Model mAP50 mAP50-95 Precision Recall Parametre Hız
YOLOv9c 0.480 0.364 0.451 0.896 25.3M 14.7ms
YOLOv10n 0.413 0.305 0.390 0.777 2.27M 3.2ms
YOLO11n 0.456 0.333 0.431 0.869 2.62M 4.3ms

📊 Detaylı Sonuçlar

1️⃣ YOLOv10n (Nano) Sonuçları

Model Özeti: 102 katman, 2,265,558 parametre, 6.5 GFLOPs
Hız: 3.2ms inference
Eğitim Süresi: 30 epoch, 10.7 dakika (639.8 saniye)

Class Images Instances Box(P) R mAP50 mAP50-95
all 223 241 0.424 0.775 0.464 0.341
negative 142 154 0.531 0.688 0.554 0.414
positive 81 87 0.317 0.862 0.374 0.268

2️⃣ YOLOv9c (Compact) Sonuçları

Model Özeti: 156 katman, 25,320,790 parametre, 102.3 GFLOPs
Hız: 14.7ms inference
Eğitim Süresi: 30 epoch, 26.9 dakika (1616 saniye)

Class Images Instances Box(P) R mAP50 mAP50-95
all 223 241 0.467 0.834 0.495 0.37
negative 142 154 0.588 0.806 0.617 0.458
positive 81 87 0.346 0.862 0.372 0.281

3️⃣ YOLO11n (Nano) Sonuçları

Model Özeti: 238 katman, 2,616,248 parametre, 0.0 GFLOPs
Hız: 4.3ms inference
Eğitim Süresi: 30 epoch, 9.1 dakika (544.9 saniye)

Class Images Instances Box(P) R mAP50 mAP50-95
all 223 241 0.431 0.869 0.456 0.333
negative 142 154 0.493 0.688 0.531 0.398
positive 81 87 0.361 0.851 0.447 0.325

📈 Metrik Açıklamaları

  • mAP50: IoU eşiği 0.5'te Ortalama Kesinlik (yüksek = daha iyi)
  • mAP50-95: IoU eşikleri 0.5-0.95 arası Ortalama Kesinlik (yüksek = daha iyi)
  • Precision (Box(P)): Doğru pozitif tahminlerin oranı
  • Recall (R): Gerçek pozitiflerin doğru tespit edilme oranı
  • Parametre: Model boyutu (M = milyon)
  • Hız: Bir görüntüyü işleme süresi

🏆 Model Analizi

🥇 YOLOv9c (Compact) - En İyi Genel Performans

Güçlü Yönler:

  • En yüksek mAP50 (0.480) - Tümör tespitinde en başarılı
  • En yüksek mAP50-95 (0.364) - IoU eşiklerinde en yüksek kesinlik
  • En yüksek Recall (0.896) - Tüm tümörlerin %89.6'sını tespit ediyor
  • ✅ Medikal uygulamalar için en güvenilir

Zayıf Yönler:

  • ❌ En büyük model (25.3M parametre)
  • ❌ En yavaş inference (14.7ms)
  • ❌ Daha fazla hesaplama gücü gerektirir

En İyi Kullanım: Doğruluğun kritik olduğu ve hesaplama kaynaklarının bol olduğu klinik uygulamalar


🥈 YOLO11n (Nano) - En İyi Denge

Güçlü Yönler:

  • ✅ İkinci en iyi mAP50 (0.456) ve mAP50-95 (0.333)
  • ✅ Yüksek recall (0.869) - Çoğu tümörü yakalıyor
  • ✅ Hafif model (2.62M parametre)
  • ✅ Hızlı inference (4.3ms)
  • ✅ Hız ve doğruluk arasında en iyi denge

Zayıf Yönler:

  • ⚠️ YOLOv9c'ye göre biraz daha düşük kesinlik
  • ⚠️ YOLOv9c'ye kıyasla daha fazla yanlış pozitif

En İyi Kullanım: Mobil cihazlarda (tablet, telefon) hem hız hem doğruluğun önemli olduğu gerçek zamanlı uygulamalar


🥉 YOLOv10n (Nano) - En Hızlı

Güçlü Yönler:

  • En hızlı inference (3.2ms) - YOLOv9c'den 4.5x hızlı
  • En küçük model (2.27M parametre)
  • ✅ Kaynak kısıtlı cihazlar için mükemmel

Zayıf Yönler:

  • ❌ En düşük mAP50 (0.413) ve mAP50-95 (0.305)
  • ❌ En düşük recall (0.777) - Daha fazla tümör kaçırıyor
  • ❌ En düşük precision (0.390)

En İyi Kullanım: Hızın çok önemli olduğu mobil cihazlarda ön tarama


📊 Görsel Sonuçlar ve Karşılaştırma

📈 Eğitim Grafikleri (Training Curves)

Modellerin 30 epoch boyunca öğrenme süreçlerini gösteren grafikler:

YOLOv9c - Eğitim Grafikleri

YOLOv9c Training Results

YOLOv10n - Eğitim Grafikleri

YOLOv10n Training Results

YOLO11n - Eğitim Grafikleri

YOLO11n Training Results


🎯 Karışıklık Matrisleri (Confusion Matrix)

Modellerin sınıflandırma performansını gösteren matrisler:

YOLOv9c - Karışıklık Matrisi

YOLOv9c Confusion Matrix

YOLOv10n - Karışıklık Matrisi

YOLOv10n Confusion Matrix

YOLO11n - Karışıklık Matrisi

YOLO11n Confusion Matrix


📊 Normalize Edilmiş Karışıklık Matrisleri

Yüzdelik değerlerle gösterilmiş matrisler:

YOLOv9c - Normalize Karışıklık Matrisi

YOLOv9c Normalized Confusion Matrix

YOLOv10n - Normalize Karışıklık Matrisi

YOLOv10n Normalized Confusion Matrix

YOLO11n - Normalize Karışıklık Matrisi

YOLO11n Normalized Confusion Matrix


📉 F1 Skor Eğrileri

Precision ve Recall dengesini gösteren F1 skorları:

YOLOv9c - F1 Eğrisi

YOLOv9c F1 Curve

YOLOv10n - F1 Eğrisi

YOLOv10n F1 Curve

YOLO11n - F1 Eğrisi

YOLO11n F1 Curve


📈 Precision Eğrileri

Confidence threshold değişiminde precision performansı:

YOLOv9c - Precision Eğrisi

YOLOv9c Precision Curve

YOLOv10n - Precision Eğrisi

YOLOv10n Precision Curve

YOLO11n - Precision Eğrisi

YOLO11n Precision Curve


📈 Recall Eğrileri

Confidence threshold değişiminde recall performansı:

YOLOv9c - Recall Eğrisi

YOLOv9c Recall Curve

YOLOv10n - Recall Eğrisi

YOLOv10n Recall Curve

YOLO11n - Recall Eğrisi

YOLO11n Recall Curve


📊 Precision-Recall Eğrileri

Precision ve Recall arasındaki ilişki:

YOLOv9c - PR Eğrisi

YOLOv9c PR Curve

YOLOv10n - PR Eğrisi

YOLOv10n PR Curve

YOLO11n - PR Eğrisi

YOLO11n PR Curve


🏷️ Eğitim Veri Seti Etiketleri

Veri setindeki etiket dağılımları:

YOLOv9c - Label Dağılımı

YOLOv9c Labels

YOLOv10n - Label Dağılımı

YOLOv10n Labels

YOLO11n - Label Dağılımı

YOLO11n Labels


🔍 Test/Validation Tahmin Örnekleri

Her modelin validation set üzerindeki tahmin performansı:

YOLOv9c - Validation Tahminleri (Batch 0)

YOLOv9c Predictions

YOLOv10n - Validation Tahminleri (Batch 0)

YOLOv10n Predictions

YOLO11n - Validation Tahminleri (Batch 0)

YOLO11n Predictions


YOLOv9c - Validation Tahminleri (Batch 1)

YOLOv9c Predictions Batch 1

YOLOv10n - Validation Tahminleri (Batch 1)

YOLOv10n Predictions Batch 1

YOLO11n - Validation Tahminleri (Batch 1)

YOLO11n Predictions Batch 1


📝 Tahmin Örnekleri Açıklaması

Validation tahmin görsellerinde:

  • Mavi kutular (negative): Tümör olmayan bölgeler
  • Cyan/Turkuaz kutular (positive): Tümör tespit edilen bölgeler
  • Confidence skorları: Her tahminin güven seviyesi (0.0 - 1.0 arası)

Modelleri karşılaştırdığınızda:

  • YOLOv9c: Daha yüksek confidence skorları, daha az yanlış pozitif
  • YOLO11n: İyi denge, çoğu tümörü yakalıyor
  • YOLOv10n: Hızlı ama bazen daha düşük confidence skorları

📂 Dosya Konumları

Her model klasöründe şu görsel sonuçlar bulunmaktadır:

YOLOv9c Klasörü: yolov9_tumor_model/

  • results.png - Eğitim metrikleri grafiği
  • confusion_matrix.png - Karışıklık matrisi
  • confusion_matrix_normalized.png - Normalize edilmiş karışıklık matrisi
  • BoxF1_curve.png - F1 skor eğrisi
  • BoxPR_curve.png - Precision-Recall eğrisi
  • BoxP_curve.png - Precision eğrisi
  • BoxR_curve.png - Recall eğrisi
  • labels.jpg - Etiket dağılımı
  • val_batch0_pred.jpg - Tahmin örnekleri
  • val_batch1_pred.jpg - Tahmin örnekleri
  • val_batch2_pred.jpg - Tahmin örnekleri
  • results.csv - Epoch bazlı detaylı metrikler

YOLOv10n Klasörü: yolov10_tumor_model/

  • Yukarıdaki ile aynı dosya yapısı

YOLO11n Klasörü: yolov11_tumor_model/

  • Yukarıdaki ile aynı dosya yapısı

📁 Proje Yapısı

TumorProjectWithYolo/
├── README.md                          # Bu dosya
├── COLAB_GUIDE.md                     # Google Colab kullanım rehberi
├── train_yolov9.py                    # YOLOv9c eğitim scripti
├── train_yolov10.py                   # YOLOv10n eğitim scripti
├── train_yolo11.py                    # YOLO11n eğitim scripti
│
├── yolov9_tumor_model/                # YOLOv9c sonuçları
│   ├── weights/
│   │   ├── best.pt                    # En iyi model ağırlıkları
│   │   └── last.pt                    # Son epoch ağırlıkları
│   ├── results.csv                    # Epoch bazlı metrikler
│   ├── results.png                    # Eğitim grafikleri
│   ├── confusion_matrix.png           # Karışıklık matrisi
│   └── ... (diğer görsel dosyalar)
│
├── yolov10_tumor_model/               # YOLOv10n sonuçları
│   └── ... (yukarıdaki ile aynı yapı)
│
└── yolov11_tumor_model/               # YOLO11n sonuçları
    └── ... (yukarıdaki ile aynı yapı)

🚀 Nasıl Kullanılır?

Gereksinimler

pip install ultralytics

Eğitim Scriptleri

1️⃣ YOLOv9c Eğitimi

from ultralytics import YOLO

# Modeli yükle
model = YOLO('yolov9c.pt')

# Eğitimi başlat
results = model.train(
    data='brain-tumor.yaml',
    epochs=30,
    imgsz=640,
    project='Tumor_Project',
    name='yolov9_tumor_model'
)

print("YOLOv9 ile tümör eğitimi tamamlandı.")

2️⃣ YOLOv10n Eğitimi

from ultralytics import YOLO

model = YOLO('yolov10n.pt')

results = model.train(
    data='brain-tumor.yaml',
    epochs=30,
    imgsz=640,
    project='Tumor_Project',
    name='yolov10_tumor_model'
)

print("YOLOv10 ile tümör eğitimi tamamlandı.")

3️⃣ YOLO11n Eğitimi

from ultralytics import YOLO

model = YOLO('yolo11n.pt')

results = model.train(
    data='brain-tumor.yaml',
    epochs=30,
    imgsz=640,
    project='Tumor_Project',
    name='yolov11_tumor_model'
)

print("YOLOv11 ile tümör eğitimi tamamlandı.")

🔬 Google Colab'da Çalıştırma

Detaylı Colab rehberi için COLAB_GUIDE.md dosyasına bakın.

Hızlı Başlangıç:

!pip install ultralytics
from ultralytics import YOLO

# GPU kontrolü
import torch
print(f"CUDA: {torch.cuda.is_available()}")

# Model eğitimi (örnek: YOLOv9c)
model = YOLO('yolov9c.pt')
results = model.train(
    data='brain-tumor.yaml',
    epochs=30,
    imgsz=640,
    project='Tumor_Project',
    name='yolov9_tumor_model'
)

Önemli: Google Colab'da Runtime → Change runtime type → T4 GPU seçeneğini aktif edin!


📈 Sınıf Bazlı Performans

Pozitif Sınıf (Tümör Var)

Model Precision Recall mAP50
YOLOv9c 0.346 0.862 0.372
YOLO11n 0.361 0.851 0.447
YOLOv10n 0.317 0.862 0.374

Not: YOLO11n, gerçek tümörleri tespit etmede (pozitif sınıf) mükemmel performans gösteriyor

Negatif Sınıf (Tümör Yok)

Model Precision Recall mAP50
YOLOv9c 0.588 0.806 0.617
YOLO11n 0.493 0.688 0.531
YOLOv10n 0.531 0.688 0.554

Not: YOLOv9c, negatif vakaları tespit etmede üstün, yanlış alarmları azaltıyor


💡 Öneriler

Üretim Kullanımı İçin:

YOLOv9c - Medikal teşhis için en yüksek doğruluk kritik

Mobil Uygulamalar İçin:

YOLO11n - Hız ve doğruluk dengesi en iyi

İlk Tarama İçin:

YOLOv10n - Hızlı ön eleme için en uygun


📝 Veri Seti Bilgisi

  • Veri Seti: Brain Tumor Dataset (Ultralytics)
  • Sınıflar: 2 (Positive/Tümör Var, Negative/Tümör Yok)
  • Görüntü Sayısı: 223 toplam
  • Instance Sayısı: 241 toplam
  • Bölünme: Ultralytics tarafından otomatik train/val split

🔧 Teknik Detaylar

Eğitim Konfigürasyonu

  • Epoch: 30
  • Görüntü Boyutu: 640×640
  • Optimizer: AdamW (otomatik)
  • Öğrenme Oranı: Cosine annealing schedule
  • Veri Artırma: Ultralytics varsayılan augmentations

Donanım Gereksinimleri

  • Minimum: 8GB RAM, CPU (yavaş)
  • Önerilen: 16GB RAM, NVIDIA GPU (GTX 1660 veya üstü)
  • Colab: Ücretsiz T4 GPU (tüm modeller için yeterli)

📚 Kaynaklar


👨‍💻 Yazar

Batuhan Simsar

Sorular veya işbirliği için: GitHub


📄 Lisans

Bu proje eğitim ve araştırma amaçlıdır.


🙏 Teşekkürler

  • Ultralytics ekibine YOLO framework için
  • Brain tumor veri setini hazırlayanlara
  • Açık kaynak AI/ML topluluğuna

⭐ Projeyi faydalı bulduysanız, lütfen yıldızlamayı unutmayın!

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages