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.
| 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 |
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 |
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 |
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 |
- 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
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
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
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
Modellerin 30 epoch boyunca öğrenme süreçlerini gösteren grafikler:
Modellerin sınıflandırma performansını gösteren matrisler:
Yüzdelik değerlerle gösterilmiş matrisler:
Precision ve Recall dengesini gösteren F1 skorları:
Confidence threshold değişiminde precision performansı:
Confidence threshold değişiminde recall performansı:
Precision ve Recall arasındaki ilişki:
Veri setindeki etiket dağılımları:
Her modelin validation set üzerindeki tahmin performansı:
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ı
Her model klasöründe şu görsel sonuçlar bulunmaktadır:
YOLOv9c Klasörü: yolov9_tumor_model/
results.png- Eğitim metrikleri grafiğiconfusion_matrix.png- Karışıklık matrisiconfusion_matrix_normalized.png- Normalize edilmiş karışıklık matrisiBoxF1_curve.png- F1 skor eğrisiBoxPR_curve.png- Precision-Recall eğrisiBoxP_curve.png- Precision eğrisiBoxR_curve.png- Recall eğrisilabels.jpg- Etiket dağılımıval_batch0_pred.jpg- Tahmin örneklerival_batch1_pred.jpg- Tahmin örneklerival_batch2_pred.jpg- Tahmin örnekleriresults.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ı
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ı)
pip install ultralyticsfrom 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ı.")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ı.")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ı.")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!
| 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
| 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
YOLOv9c - Medikal teşhis için en yüksek doğruluk kritik
YOLO11n - Hız ve doğruluk dengesi en iyi
YOLOv10n - Hızlı ön eleme için en uygun
- 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
- Epoch: 30
- Görüntü Boyutu: 640×640
- Optimizer: AdamW (otomatik)
- Öğrenme Oranı: Cosine annealing schedule
- Veri Artırma: Ultralytics varsayılan augmentations
- Minimum: 8GB RAM, CPU (yavaş)
- Önerilen: 16GB RAM, NVIDIA GPU (GTX 1660 veya üstü)
- Colab: Ücretsiz T4 GPU (tüm modeller için yeterli)
Batuhan Simsar
Sorular veya işbirliği için: GitHub
Bu proje eğitim ve araştırma amaçlıdır.
- 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!





























