İçeriğe geç

YOLOv5 ve EfficientDet: Gerçek Zamanlı Nesne Algılama Mimarilerini Değerlendirme

Yeni bir bilgisayar görüşü projesine başlarken, doğru sinir ağı mimarisini seçmek vereceğiniz en önemli kararlardan biridir. Bu kılavuz, Ultralytics YOLOv5 ve Google'ın EfficientDet modelleri arasında derinlemesine teknik bir karşılaştırma sunar. Mimarilerini, performans metriklerini ve eğitim ekosistemlerini analiz ederek, geliştiricilerin ve araştırmacıların belirli dağıtım ortamları için en iyi nesne algılama modelini belirlemelerine yardımcı olmayı amaçlıyoruz.

EfficientDet, bileşik ölçekleme ve özellik birleştirme konularında yeni kavramlar sunarken, YOLOv5, inanılmaz derecede sezgisel PyTorch uygulaması, basitleştirilmiş kullanıcı deneyimi ve hız ile doğruluk arasında eşsiz bir denge ile yüksek performanslı yapay zekaya erişimi demokratikleştirerek sektöre devrim niteliğinde bir yenilik getirdi.

Ultralytics YOLOv5: Erişilebilirlik için Endüstri Standardı

2020 yazında piyasaya sürülen YOLOv5, YOLO soyunda önemli bir değişime işaret etti. C tabanlı Darknet çerçevesinden yerel PyTorch'a geçiş yaparak, modelleri hızla oluşturmak, eğitmek ve dağıtmak isteyen geliştiriciler için tercih edilen mimari haline geldi.

Mimari Yenilikler

YOLOv5, sorunsuz bir makine öğrenimi yaşam döngüsüne öncelik veren son derece optimize edilmiş mimarisiyle öne çıkar. Değiştirilmiş bir CSPDarknet53 backbone'unu, bir Yol Birleştirme Ağı (PANet) boynu ile birlikte kullanır, bu da birden fazla uzamsal ölçekte özellik yayılımını önemli ölçüde iyileştirir.

Temel gelişmeler şunları içerir:

  • Mozaik Veri Artırma: Bu eğitim tekniği, dört farklı eğitim görüntüsünü tek bir mozaikte birleştirir. Bu, modeli karmaşık uzamsal bağlamlarda nesneleri tanımlamayı öğrenmeye zorlar ve küçük hedefleri detect etme yeteneğini önemli ölçüde artırır.
  • Otomatik Öğrenen Anchor Kutuları: Eğitim başlamadan önce, YOLOv5 özel eğitim verilerinizi analiz eder ve k-means kümeleme kullanarak optimal 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 önemli ölçüde daha düşük bir bellek ayak izi sürdürür, bu da tüketici sınıfı donanımlarda sorunsuz çalışmasına olanak tanır.

YOLOv5 hakkında daha fazla bilgi edinin.

EfficientDet: Ölçeklenebilir Nesne Algılama

2019 yılında Google Research tarafından tanıtılan EfficientDet, ölçeklenebilir nesne detect ediciler ailesi sunmayı amaçladı. EfficientNet görüntü sınıflandırma backbone üzerine inşa edilmiştir ve yeni bir özellik birleştirme mekanizması sunar.

Mimari Yenilikler

EfficientDet'in temel önermesi, ölçeklendirme ve özellik toplama konusundaki sistematik yaklaşımında yatmaktadır:

  • BiFPN (Çift Yönlü Özellik Piramit 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 sunarak hızlı ve kolay çok ölçekli özellik birleştirmeyi sağlar.
  • Bileşik Ölçeklendirme: EfficientDet, tüm backbone, özellik ağı ve kutu/sınıf tahmin ağları için çözünürlüğü, derinliği ve genişliği birlikte ölçeklendirir, bu da hafif D0'dan devasa D7'ye kadar modellerle sonuçlanır.

EfficientDet hakkında daha fazla bilgi edinin

Çerçeve Farklılıkları

EfficientDet, TensorFlow ekosistemine ve AutoML kütüphanelerine büyük ölçüde güvenirken, YOLOv5, PyTorch içinde doğal olarak çalışır ve birçok geliştiricinin daha sezgisel, pythonic ve hata ayıklanabilir bulduğu bir iş akışı sunar.

Performans ve Metrik Karşılaştırması

Bu modelleri karşılaştırırken, COCO veri seti gibi standart kıyaslamalarda performanslarını değerlendirmek çok önemlidir. Aşağıdaki tablo, boyut, hesaplama gereksinimi (FLOPs) ve çıkarım hızı arasındaki dengeyi vurgulamaktadır.

Modelboyut
(piksel)
mAPval
50-95
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametreler
(M)
FLOP'lar
(B)
YOLOv5n64028.073.61.122.67.7
YOLOv5s64037.4120.71.929.124.0
YOLOv5m64045.4233.94.0325.164.2
YOLOv5l64049.0408.46.6153.2135.0
YOLOv5x64050.7763.211.8997.2246.4
EfficientDet-d064034.610.23.923.92.54
EfficientDet-d164040.513.57.316.66.1
EfficientDet-d264043.017.710.928.111.0
EfficientDet-d364047.528.019.5912.024.9
EfficientDet-d464049.742.833.5520.755.2
EfficientDet-d564051.572.567.8633.7130.0
EfficientDet-d664052.692.889.2951.9226.0
EfficientDet-d764053.7122.0128.0751.9325.0

Dengeli Analiz

YOLOv5, dağıtım esnekliği ve ham donanım hızlandırma uyumluluğu ile öne çıkar. T4 GPU'daki son derece hızlı TensorRT hızlarına dikkat edin. Bu, YOLOv5'i yüksek verimli video analizi ve gerçek zamanlı çıkarım boru hatları için inanılmaz derecede uygun hale getirir. Ayrıca, Ultralytics ekosistemi, ONNX, CoreML ve TensorRT gibi formatlara dışa aktarmayı tek satırlık bir komut haline getirir.

EfficientDet, mükemmel parametre verimliliği sunar. Belirli bir parametre sayısı için genellikle yüksek bir ortalama Hassasiyet (mAP) elde eder. Ancak, bu teorik verimlilik, BiFPN katmanının karmaşık yönlendirmesi nedeniyle kenar GPU'larda her zaman daha hızlı gerçek zamanlı çıkarım sürelerine dönüşmez; bu durum, hesaplama yoğunluğundan ziyade bellek bant genişliği sınırlı olabilir.

Ekosistem ve Kullanım Kolaylığı

Bir Ultralytics modeli seçmenin belirleyici avantajı, çevreleyen ekosistemde yatmaktadır. YOLOv5, yoğun bir şekilde bakımı yapılan, aktif olarak geliştirilen ve büyük topluluk desteğine sahip bir depounun parçasıdır.

Ultralytics Platformu'nun tanıtılmasıyla, kullanıcılar veri toplamadan dağıtıma sorunsuz bir şekilde geçiş yapabilirler. Bu platform, kutudan çıktığı haliyle otomatik açıklama, bulut eğitimi ve model izlemeyi destekler. Buna karşılık, EfficientDet'i eğitmek genellikle eski TensorFlow nesne detect etme API'lerinin karmaşıklıklarında gezinmeyi gerektirir, bu da hızlı prototipleme için dik bir öğrenme eğrisi sunabilir.

Ayrıca, YOLOv5'in çok yönlülüğü sınırlayıcı kutuların ötesine uzanır. Sürekli güncellemeler sayesinde, Ultralytics çerçevesi doğal olarak instance segmentasyonunu ve görüntü sınıflandırmasını destekler, birden fazla bilgisayar görüşü görevi için birleşik bir API sağlar.

İdeal Kullanım Senaryoları

  • YOLOv5'i şu durumlarda seçin: Hızlı prototipleme, sorunsuz bir eğitim deneyimi ve yüksek düzeyde optimize edilmiş kenar dağıtımı gerektiğinde. Düşük gecikmenin kritik olduğu dronlar, perakende analizi ve mobil uygulamalar için idealdir.
  • EfficientDet'i şu durumlarda seçin: Kesinlikle bir Google Cloud/TensorFlow AutoML ortamında çalışıyorsanız ve katı gerçek zamanlı gecikme kısıtlamaları olmaksızın parametre başına maksimum doğruluk gerekiyorsa.

Yeni Nesil: YOLO26'yı Benimsemek

YOLOv5 güvenilir bir iş atı olmaya devam etse de, bilgisayar görüşü alanı ilerlemiştir. 2026'da mutlak en son teknolojiyi arayan geliştiriciler için, YOLO26, Ultralytics serisinin yeni zirvesini temsil etmektedir.

Önceki sürümlerinin (YOLOv8 ve YOLO11 gibi) mirası üzerine inşa edilen YOLO26, çığır açan yenilikler sunar:

  • Uçtan Uca NMS-Serbest Tasarım: YOLO26, Non-Maximum Suppression (NMS) son işlemine olan ihtiyacı doğal olarak ortadan kaldırır. Bu, gecikme varyansını önemli ölçüde azaltır ve dağıtım mimarisini basitleştirir.
  • CPU Çıkarımında %43'e Kadar Daha Hızlı: Kenar yapay zekası için yoğun bir şekilde optimize edilmiş olan bu teknoloji, düşük güçlü kenar cihazlarına ve özel GPU'ları olmayan standart CPU'lara eşi benzeri görülmemiş hızlar getirir.
  • MuSGD Optimize Edici: Büyük Dil Modeli (LLM) eğitim tekniklerinden esinlenilen SGD ve Muon'un bu hibriti, son derece kararlı eğitim ve hızlı yakınsama sağlar.
  • Gelişmiş Kayıp Fonksiyonları: ProgLoss ve STAL'ın entegrasyonu, küçük hedeflerin tanınmasını önemli ölçüde iyileştirir; bu da yüksek irtifa drone görüntüleri ve robotik için hayati öneme sahiptir.
  • DFL Kaldırma: Distribution Focal Loss'un kaldırılmasıyla, model dışa aktarma süreci kolaylaştırılır ve çeşitli donanım hızlandırıcılarındaki uyumluluk daha da artırılır.

Ultralytics ekosistemi içindeki diğer yeni mimarileri keşfetmek isteyen kullanıcılar, ayrıca YOLOv10 veya RT-DETR gibi modelleri karşılaştırabilirler.

Geçiş Kolaydır

Ultralytics Python API, geriye ve ileriye dönük uyumluluk için tasarlanmıştır. YOLOv5'ten YOLO26'ya yükseltme, kodunuzdaki model ağırlık dizesini değiştirmek kadar basittir!

Kod Örneği: Eğitim ve Çıkarım

Ultralytics ekosisteminin benzersiz kullanım kolaylığını göstermek için, modern bir YOLO modeli kullanarak nasıl eğitim yapabileceğinizi ve çıkarım çalıştırabileceğinizi burada bulabilirsiniz. Bu kod %100 çalıştırılabilir ve veri kümesi indirme, eğitim döngüleri ve doğrulama işlemlerini otomatik olarak yönetir.

from ultralytics import YOLO

# Load a modern model (Swap 'yolov5s.pt' for 'yolo26n.pt' to test the newest architecture!)
model = YOLO("yolov5s.pt")

# Train the model on the COCO8 example dataset for 20 epochs
results = model.train(data="coco8.yaml", epochs=20, imgsz=640)

# Run inference on an image from the web
inference_results = model("https://ultralytics.com/images/bus.jpg")

# Display the image with bounding boxes
inference_results[0].show()

Kullanıcı deneyimine öncelik vererek, sağlam bir ekosistem sürdürerek ve YOLO26 gibi güncellemelerle mümkün olanın sınırlarını sürekli zorlayarak, Ultralytics geliştiricilerin gerçek dünya görsel zeka zorluklarını çözmek için her zaman en iyi araçlara sahip olmasını sağlar.


Yorumlar