YOLOv5 ile EfficientDet#
Yeni bir bilgisayarlı görü projesine başlarken doğru sinir ağı mimarisini seçmek, vereceğin en önemli kararlardan biridir. Bu kılavuz, Ultralytics YOLOv5 ile Google'ın EfficientDet modelini teknik açıdan derinlemesine karşılaştırıyor. Mimarilerini, performans ölçütlerini ve eğitim ekosistemlerini inceleyerek geliştiricilerin ve araştırmacıların kendi dağıtım ortamlarına en uygun nesne algılama modelini belirlemesine yardımcı olmayı amaçlıyoruz.
EfficientDet, bileşik ölçeklendirme ve özellik birleştirme alanlarında yeni fikirler ortaya koyarken YOLOv5, son derece sezgisel PyTorch uygulaması, akıcı kullanıcı deneyimi ve eşsiz hız-doğruluk dengesiyle yüksek performanslı yapay zekâyı herkes için erişilebilir hâle getirerek sektörde devrim yarattı.
Ultralytics YOLOv5: Erişilebilirlikte Sektör Standardı#
2020 yazında yayımlanan YOLOv5, YOLO ailesinde önemli bir dönüm noktası oldu. C tabanlı Darknet çerçevesinden yerel PyTorch'a geçerek modelleri hızla oluşturmak, eğitmek ve dağıtmak isteyen geliştiricilerin ilk tercihi hâline geldi.
- Yazar: Glenn Jocher
- Kuruluş: Ultralytics
- Tarih: 2020-06-26
- GitHub: https://github.com/ultralytics/yolov5
- Belgeler: https://docs.ultralytics.com/models/yolov5
Mimari Yenilikler#
YOLOv5, sorunsuz bir makine öğrenimi yaşam döngüsüne öncelik veren, yüksek düzeyde optimize edilmiş mimarisiyle öne çıkar. Değiştirilmiş bir CSPDarknet53 omurgasını Path Aggregation Network (PANet) boyun yapısıyla birlikte kullanır; bu da birden fazla uzamsal ölçekte özellik yayılımını büyük ölçüde iyileştirir.
Öne çıkan gelişmeler:
- Mozaik Veri Artırımı: Bu eğitim tekniği, birbirinden farklı dört eğitim görüntüsünü tek bir mozaikte birleştirir. Böylece model karmaşık uzamsal bağlamlarda nesneleri tanımayı öğrenir ve küçük hedefleri algılama yeteneği önemli ölçüde artar.
- Anchor Kutularının Otomatik Öğrenilmesi: Eğitim başlamadan önce YOLOv5, özel eğitim verilerini analiz eder ve k-means kümelemesiyle en uygun anchor kutusu boyutlarını otomatik olarak hesaplar.
- Bellek Verimliliği: Ağır Transformer tabanlı modellere kıyasla YOLOv5, hem eğitim hem de çıkarım sırasında çok daha az bellek kullanır ve tüketici sınıfı donanımlarda sorunsuz çalışabilir.
EfficientDet: Ölçeklenebilir Nesne Algılama#
2019'da Google Research tarafından tanıtılan EfficientDet, ölçeklenebilir nesne algılayıcılarından oluşan bir aile sunmayı amaçladı. EfficientNet görüntü sınıflandırma omurgasını temel alır ve yeni bir özellik birleştirme mekanizması sunar.
- Yazarlar: Mingxing Tan, Ruoming Pang ve Quoc V. Le
- Kuruluş: Google
- Tarih: 2019-11-20
- Arxiv: https://arxiv.org/abs/1911.09070
- GitHub: https://github.com/google/automl/tree/master/efficientdet
- Belgeler: https://github.com/google/automl/tree/master/efficientdet#readme
Mimari Yenilikler#
EfficientDet'in temel iddiası, ölçeklendirme ve özellik toplama konusundaki sistematik yaklaşımına dayanır:
- BiFPN (Çift Yönlü Özellik Piramidi Ağı): Bilgiyi yalnızca yukarıdan aşağıya aktaran geleneksel FPN'lerin aksine BiFPN, farklı girdi özelliklerinin önemini öğrenmek için öğrenilebilir ağırlıklar ekleyerek hızlı ve kolay çok ölçekli özellik birleştirmesi sağlar.
- Bileşik Ölçeklendirme: EfficientDet; tüm omurga, özellik ağı ve kutu/sınıf tahmin ağlarının çözünürlüğünü, derinliğini ve genişliğini birlikte ölçeklendirerek hafif D0'dan devasa D7'ye kadar modeller sunar.
EfficientDet hakkında daha fazla bilgi edin
EfficientDet büyük ölçüde TensorFlow ekosistemine ve AutoML kitaplıklarına dayanırken YOLOv5, doğrudan PyTorch içinde çalışır ve birçok geliştiricinin daha sezgisel, Python'a özgü ve hata ayıklaması kolay bulduğu bir iş akışı sunar.
Performans ve Metrik Karşılaştırması#
Bu modelleri karşılaştırırken COCO veri kümesi gibi standart kıyaslamalardaki performanslarını değerlendirmek kritik önem taşır. Aşağıdaki tablo; boyut, hesaplama gereksinimi (FLOPs) ve çıkarım hızı arasındaki ödünleşimleri gösteriyor.
| Model | boyut (piksel) | mAPval 50-95 | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametre (M) | FLOPs (B) |
|---|---|---|---|---|---|---|
| YOLOv5n | 640 | 28.0 | - | 1.12 | 1.9 | 4.5 |
| YOLOv5s | 640 | 37.4 | - | 1.92 | 7.2 | 16.5 |
| YOLOv5m | 640 | 45.4 | - | 4.03 | 21.2 | 49.0 |
| YOLOv5l | 640 | 49.0 | - | 6.61 | 46.5 | 109.1 |
| YOLOv5x | 640 | 50.7 | - | 11.89 | 86.7 | 205.7 |
| EfficientDet-d0 | 640 | 34.6 | 10.2 | 3.92 | 3.9 | 2.54 |
| EfficientDet-d1 | 640 | 40.5 | 13.5 | 7.31 | 6.6 | 6.1 |
| EfficientDet-d2 | 640 | 43.0 | 17.7 | 10.92 | 8.1 | 11.0 |
| EfficientDet-d3 | 640 | 47.5 | 28.0 | 19.59 | 12.0 | 24.9 |
| EfficientDet-d4 | 640 | 49.7 | 42.8 | 33.55 | 20.7 | 55.2 |
| EfficientDet-d5 | 640 | 51.5 | 72.5 | 67.86 | 33.7 | 130.0 |
| EfficientDet-d6 | 640 | 52.6 | 92.8 | 89.29 | 51.9 | 226.0 |
| EfficientDet-d7 | 640 | 53.7 | 122.0 | 128.07 | 51.9 | 325.0 |
Dengeli Değerlendirme#
YOLOv5, dağıtım esnekliği ve ham donanım hızlandırma uyumluluğuyla öne çıkar. T4 GPU'daki olağanüstü TensorRT hızlarına dikkat et. Bu özellik, YOLOv5'i yüksek işlem hacimli video analitiği ve gerçek zamanlı çıkarım hatları için son derece uygun kılar. Ayrıca Ultralytics ekosistemi, ONNX, CoreML ve TensorRT gibi biçimlere tek satırlık bir komutla aktarım yapmayı sağlar.
EfficientDet, parametre verimliliği açısından mükemmeldir. Belirli bir parametre sayısında genellikle yüksek bir ortalama kesinlik (mAP) elde eder. Ancak BiFPN katmanının karmaşık yönlendirmesi bellek bant genişliğini hesaplama gücünden daha fazla sınırlayabildiğinden, bu kuramsal verimlilik uç GPU'larda her zaman daha kısa gerçek çıkarım sürelerine dönüşmez.
Ekosistem ve Kullanım Kolaylığı#
Ultralytics modelini seçmenin belirleyici avantajı, çevresindeki ekosistemdir. YOLOv5, kapsamlı topluluk desteğine sahip, bakımı düzenli yapılan ve etkin biçimde geliştirilen bir deponun parçasıdır.
Ultralytics Platform ile kullanıcılar veri toplamadan dağıtıma sorunsuzca geçebilir. Platform; otomatik etiketleme, bulutta eğitim ve model izleme özelliklerini kullanıma hazır biçimde sunar. Buna karşılık EfficientDet eğitimi, hızlı prototipleme için öğrenme eğrisi dik olabilen eski TensorFlow nesne algılama API'lerinin karmaşıklıklarıyla uğraşmayı gerektirebilir.
Ayrıca YOLOv5'in çok yönlülüğü sınırlayıcı kutuların ötesine geçer. Ultralytics çerçevesi, sürekli güncellemelerle örnek segmentasyonunu ve görüntü sınıflandırmasını yerel olarak destekleyerek birden fazla bilgisayarlı görü görevi için ortak bir API sunar.
İdeal Kullanım Alanları#
- Şu durumlarda YOLOv5'i seç: Hızlı prototiplemeye, sorunsuz bir eğitim deneyimine ve uç cihazlarda yüksek düzeyde optimize edilmiş dağıtıma ihtiyacın varsa. Düşük gecikmenin kritik olduğu drone'lar, perakende analitiği ve mobil uygulamalar için idealdir.
- Şu durumlarda EfficientDet'i seç: Yalnızca Google Cloud/TensorFlow AutoML ortamında çalışıyorsan ve gerçek zamanlı gecikme konusunda katı kısıtların olmadan parametre başına en yüksek doğruluğu istiyorsan.
Yeni Nesil: YOLO26'ya Geçiş#
YOLOv5 güvenilir bir iş gücü olmaya devam etse de bilgisayarlı görü alanı ilerledi. 2026'da son teknolojiye ulaşmak isteyen geliştiriciler için YOLO26, Ultralytics ürün ailesinin yeni zirvesini temsil ediyor.
Önceki modellerinin mirasını sürdüren YOLO26, YOLOv8 ve YOLO11 gibi modellerin üzerine çığır açan yenilikler ekliyor:
- Uçtan Uca, NMS İçermeyen Tasarım: YOLO26'nın isteğe bağlı bire bir başlığı (
nms=False), Non-Maximum Suppression son işlemesine duyulan ihtiyacı ortadan kaldırır. Bu, gecikme değişkenliğini önemli ölçüde azaltır ve dağıtım mimarisini sadeleştirir. - %43'e Kadar Daha Hızlı CPU Çıkarımı: Uç yapay zekâ için kapsamlı biçimde optimize edilen model, özel GPU'ları olmayan düşük güçlü uç cihazlarda ve standart CPU'larda benzeri görülmemiş hızlar sunar.
- MuSGD Optimizer: Büyük Dil Modeli (LLM) eğitim tekniklerinden esinlenen SGD ve Muon birleşimi, son derece kararlı eğitim ve hızlı yakınsama sağlar.
- Gelişmiş Kayıp İşlevleri: ProgLoss ve STAL'ın bir araya getirilmesi, yüksek irtifa drone görüntüleri ve robotik için hayati önem taşıyan küçük hedeflerin tanınmasını büyük ölçüde iyileştirir.
- DFL'nin Kaldırılması: Distribution Focal Loss'un kaldırılması, model dışa aktarma sürecini kolaylaştırır ve farklı donanım hızlandırıcılarıyla uyumluluğu daha da artırır.
Ultralytics ekosistemindeki diğer yeni mimarileri incelemek isteyen kullanıcılar YOLOv10 veya RT-DETR gibi modelleri de karşılaştırabilir.
Ultralytics Python API'si geriye ve ileriye dönük uyumluluk için tasarlanmıştır. YOLOv5'ten YOLO26'ya geçmek, kodundaki model ağırlığı dizesini değiştirmek kadar basittir!
Kod Örneği: Eğitim ve Çıkarım#
Ultralytics ekosisteminin eşsiz kullanım kolaylığını göstermek için modern bir YOLO modeliyle nasıl eğitim ve çıkarım yapabileceğini aşağıda bulabilirsin. Bu kod tamamen çalıştırılabilir; veri kümesi indirmeyi, eğitim döngülerini ve doğrulamayı otomatik olarak yönetir.
from ultralytics import YOLO
# Modern bir model yükle (En yeni mimariyi denemek için 'yolov5su.pt' yerine 'yolo26n.pt' kullan!)
model = YOLO("yolov5su.pt") # YOLOv5u: ultralytics paketi için anchorsız YOLOv5 ağırlıkları
# Modeli COCO8 örnek veri kümesinde 20 epoch boyunca eğit
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)
# Web'deki bir görüntü üzerinde çıkarım çalıştır
inference_results = model("https://ultralytics.com/images/bus.jpg")
# Sınırlayıcı kutuları içeren görüntüyü göster
inference_results[0].show()Ultralytics; kullanıcı deneyimine öncelik vererek, güçlü bir ekosistemi sürdürerek ve YOLO26 gibi güncellemelerle mümkün olanın sınırlarını sürekli zorlayarak geliştiricilerin gerçek dünyadaki görsel zekâ sorunlarını çözmek için her zaman en iyi araçlara sahip olmasını sağlar.