İçeriğe geç

YOLOv8 - YOLOv5: Gerçek Zamanlı Nesne Algılamanın Evrimi

Bilgisayarlı görü dünyasının hızlı temposunda, YOLO (You Only Look Once) kadar güçlü yankı uyandıran birkaç isim vardır. Ultralytics tarafından geliştirilen YOLOv5 ve YOLOv8, nesne algılama tarihinde önemli anları temsil etmektedir. YOLOv5, 2020'de piyasaya sürüldüğünde kullanım kolaylığı ve hızıyla endüstri standardını belirlerken, YOLOv8, doğruluğun ve mimari esnekliğin sınırlarını daha da zorlamak için 2023'te piyasaya sürüldü.

Bu kapsamlı karşılaştırma, bu iki güçlü modelin teknik farklılıklarını, mimari evrimlerini ve performans metriklerini incelemektedir. İster eski sistemleri koruyor ister son teknoloji ürünü yapay zeka çözümleri geliştiriyor olun, bilinçli dağıtım kararları almak için bu sürümler arasındaki nüansları anlamak çok önemlidir.

Mimari Evrim

YOLOv5'ten YOLOv8'e geçiş, yerleşik anchor tabanlı yöntemlerden modern, anchor içermeyen bir yaklaşıma geçişle tasarım felsefesinde önemli bir değişimi işaret etmektedir. Bu evrim, model eğitimi ve genelleme konularındaki yaygın zorlukları ele almaktadır.

YOLOv5: Anchor Tabanlı Standart

YOLOv5, ankraj tabanlı algılama şeması kullanır. Bu, modelin belirli veri kümesine göre uyarlanmış önceden tanımlanmış "ankraj kutularından" ofsetleri tahmin ettiği anlamına gelir. Oldukça etkili olmasına rağmen, bu yaklaşım genellikle özel veri kümeleri için optimum ankraj boyutlarını hesaplamayı gerektirir; bu işlem "otomatik ankraj" olarak bilinir.

  • Backbone: Görüntüleri alt örneklemek için bir Focus katmanı (daha önceki sürümlerde) veya bir kök katmanı (daha sonraki sürümlerde) ile bir CSPDarknet53 backbone kullanır.
  • Neck: Özellik kaynaştırması için bir PANet (Yol Toplama Ağı) içerir.
  • Head: Sınıflandırma ve lokalizasyon görevlerinin, son çıktı katmanlarına kadar özellikleri paylaştığı eşlenmiş head yapısı.

YOLOv8: Ankrajsız Yenilikçi

YOLOv8, manuel anchor kutusu tanımlarına olan ihtiyacı ortadan kaldıran bir anchor-free algılama başlığı sunar. Bu, eğitim hattını basitleştirir ve çeşitli şekil ve en boy oranlarına sahip nesneler üzerindeki performansı artırır.

  • C2f Modülü: YOLOv5'te bulunan C3 modülünün yerini alır. C2f (iki evrişimli Çapraz Aşamalı Kısmi Darboğaz) modülü, hafif bir ayak izini korurken gradyan akışını ve özellik çıkarma yeteneklerini geliştirmek için tasarlanmıştır.
  • Ayrıştırılmış Kafa (Decoupled Head): YOLOv5'ten farklı olarak YOLOv8, nesnellik, sınıflandırma ve regresyon görevlerini ayrı dallara ayırır. Bu, her dalın kendi özel görevine odaklanmasını sağlayarak daha yüksek doğruluğa ve daha hızlı yakınsamaya yol açar.
  • Kayıp Fonksiyonları: YOLOv8, görevle uyumlu bir atayıcı ve dağıtım odaklı kaybı kullanır ve eğitim sırasında pozitif ve negatif örneklerin nasıl ele alındığını daha da iyileştirir.

YOLO11: En Son Nesil

YOLOv8, YOLOv5'e göre önemli iyileştirmeler sunsa da, Ultralytics yenilik yapmaya devam ediyor. Yakın zamanda piyasaya sürülen YOLO11, daha da yüksek verimlilik ve doğruluk sunar. Yeni projeler için, uygulamanızın en son mimari gelişmelerden yararlanmasını sağlamak için YOLO11'i keşfetmeniz şiddetle tavsiye edilir.

Performans Analizi

Performansı karşılaştırırken, hem doğruluğa (mAP) hem de çıkarım hızına bakmak önemlidir. Aşağıdaki tablo, YOLOv8'in benzer boyuttaki YOLOv5 muadillerine kıyasla COCO veri kümesinde sürekli olarak daha yüksek Ortalama Hassasiyet (mAP) elde ettiğini, genellikle karşılaştırılabilir veya daha iyi çıkarım hızlarıyla gösteriyor.

Modelboyut
(piksel)
mAPval
50-95
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametreler
(M)
FLOP'lar
(B)
YOLOv8n64037.380.41.473.28.7
YOLOv8s64044.9128.42.6611.228.6
YOLOv8m64050.2234.75.8625.978.9
YOLOv8l64052.9375.29.0643.7165.2
YOLOv8x64053.9479.114.3768.2257.8
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

Temel Çıkarımlar

  1. Doğruluk Sıçraması: YOLOv8n (Nano), YOLOv5n'ye (28.0) kıyasla mAP'de (37.3) büyük bir sıçrama elde ederek en küçük v8 modelini daha büyük YOLOv5s kadar doğru hale getirir.
  2. Hesaplama Verimliliği: YOLOv8 modelleri bazı varyantlarda biraz daha yüksek FLOPs'ye sahip olsa da, bu denge orantısız olarak daha yüksek doğruluk sağlar ve hesaplama yatırımında daha iyi bir getiri sağlar.
  3. Çıkarım Hızı: YOLOv5, özellikle eski donanımlarda veya tamamen CPU tabanlı uç cihazlarda son derece hızlıdır. Ancak, YOLOv8, modern GPU'lar ve TensorRT gibi hızlandırıcılar için optimize edilmiştir ve hız farkını önemli ölçüde daraltır.

Ultralytics YOLOv8: Çoklu Görev Güç Merkezi

Yazarlar: Glenn Jocher, Ayush Chaurasia ve Jing Qiu
Kuruluş:Ultralytics
Tarih: 2023-01-10
Belgeler:https://docs.ultralytics.com/models/yolov8/
GitHub:https://github.com/ultralytics/ultralytics

YOLOv8, bilgisayarla görü için çok yönlü, hepsi bir arada bir çözüm olacak şekilde tasarlanmıştır. Örnek segmentasyonu, poz tahmini, sınıflandırma ve yönlendirilmiş sınırlayıcı kutu (obb) tespiti dahil olmak üzere basit nesne tespitinin ötesinde çok çeşitli görevleri doğal olarak destekler.

Güçlü Yönler

  • Son Teknoloji Doğruluğu: COCO ve Roboflow 100 gibi standart kıyaslamalarda üstün algılama performansı sunar.
  • Birleşik Çerçeve: Temelinde ultralytics Eğitim için kusursuz bir deneyim sağlayan Python paketi, doğrulama, ve dağıtım.
  • Geliştirici Dostu: API inanılmaz derecede sezgiseldir. Görevler arasında geçiş yapmak (yani, detect'den segment'e) genellikle CLI veya python kodunda sadece tek bir argümanı değiştirmeyi gerektirir.
  • Eğitim Verimliliği: "Akıllı" veri kümesi artırma ve otomatik hiperparametre ayarlama gibi özellikler, veriden dağıtılan modele giden yolu kolaylaştırır.

Zayıflıklar

  • Kaynak Kullanımı: Daha büyük varyantlar (L ve X), v5 seleflerine kıyasla eğitim sırasında daha fazla kaynak yoğun olabilir ve GPU'larda daha fazla VRAM gerektirebilir.

YOLOv8 hakkında daha fazla bilgi edinin

Ultralytics YOLOv5: Miras Standardı

Yazar: Glenn Jocher
Kuruluş:Ultralytics
Tarih: 2020-06-26
Belgeler:https://docs.ultralytics.com/models/yolov5/
GitHub:https://github.com/ultralytics/yolov5

YOLOv5, yapay zekanın erişilebilirliğinde devrim yarattı. PyTorch'tan yararlanarak, sınırlı derin öğrenme deneyimine sahip geliştiricilerin özel nesne dedektörlerini eğitmesini mümkün kıldı. Ekosistemi, binlerce eğitim, entegrasyon ve gerçek dünya dağıtımı ile geniştir.

Güçlü Yönler

  • Kanıtlanmış Kararlılık: Üretim ortamlarında yıllarca süren aktif kullanım, YOLOv5'i mevcut en kararlı ve güvenilir vizyon modellerinden biri haline getirdi.
  • Geniş Dağıtım Desteği: ONNX, CoreML ve TFLite dahil olmak üzere dışa aktarma formatları için kapsamlı destek, onu cep telefonlarından Raspberry Pi'ye kadar çeşitli donanım hedefleri için ideal kılar.
  • Topluluk Ekosistemi: Büyük bir topluluk, neredeyse tüm uç durumlar veya hatalara yönelik çözümlerin forumlarda ve GitHub sorunlarında kolayca bulunabilmesini sağlar.

Zayıflıklar

  • Daha Düşük Doğruluk Tavanı: 2020'den kalma bir model olarak, doğruluk metrikleri v8 ve YOLO11 gibi daha yeni mimarilerin gerisinde kalıyor.
  • Ankraj Yönetimi: Benzersiz veya oldukça değişken veri kümelerine sahip kullanıcılar için bir sürtünme noktası olabilecek ankraj kutusu hesaplaması gerektirir.

YOLOv5 hakkında daha fazla bilgi edinin

Kod Entegrasyonu ve Kullanım Kolaylığı

Ultralytics modellerinin ayırt edici özelliklerinden biri, paylaşılan, kolaylaştırılmış API'dir. Doğruluğu için YOLOv8'i veya eski desteği için YOLOv5'i seçmeniz fark etmeksizin, ultralytics paketi iş akışını birleştirir. Bu, giriş engelini önemli ölçüde azaltır ve kolay denemelere olanak tanır.

Sadece birkaç satır Python kodu ile eğitim, doğrulama ve tahmin yapabilirsiniz.

from ultralytics import YOLO

# Load a YOLOv8 model (recommended for new projects)
model_v8 = YOLO("yolov8n.pt")

# Train the model on the COCO8 dataset
results_v8 = model_v8.train(data="coco8.yaml", epochs=100, imgsz=640)

# Run inference on an image
model_v8.predict("https://ultralytics.com/images/bus.jpg", save=True)


# Load a YOLOv5 model (automatically handled by the same package)
model_v5 = YOLO("yolov5su.pt")  # 'u' suffix indicates updated v5 model structure

# The same API works for training and inference
results_v5 = model_v5.train(data="coco8.yaml", epochs=100, imgsz=640)

Birleşik Ekosistemin Faydaları

Birleşik Ultralytics ekosistemini kullanarak, kodsuz model eğitimi ve görselleştirme için Ultralytics HUB gibi güçlü araçlara erişirsiniz. Bu platform, veri kümesi yönetimini ve iş birliğini basitleştirerek ekiplerin altyapıyı yönetmek yerine sorunları çözmeye odaklanmasını sağlar.

Kullanım Durumu Önerileri

YOLOv8 ve YOLOv5 arasında seçim yapmak, özel proje gereksinimlerinize, donanım kısıtlamalarınıza ve geliştirme hedeflerinize bağlıdır.

Ne Zaman YOLOv8 Seçmeli

  • Yeni Projeler: Sıfırdan başlıyorsanız, YOLOv8 (veya daha yeni YOLO11) açık ara kazanan. Üstün doğruluğu, uygulamanızın rekabetçi ve sağlam kalmasını sağlar.
  • Karmaşık Görevler: Poz tahmini veya segmentasyon gerektiren uygulamalar için, YOLOv8'in yerel çoklu görev desteği vazgeçilmezdir.
  • Yüksek Hassasiyet İhtiyaçları: Tıbbi görüntüleme veya kusur tespiti gibi alanlarda, YOLOv8'in iyileştirilmiş mAP değeri yanlış negatifleri önemli ölçüde azaltabilir.

Ne Zaman YOLOv5 Seçmeli

  • Eski Bakım: İyi performans gösteren YOLOv5 üzerine kurulu mevcut bir üretim hattınız varsa, geçiş yapmak hemen gerekli olmayabilir.
  • Aşırı Uç Kısıtlamalar: Her milisaniyenin gecikme süresinin önemli olduğu ve doğruluğun ikincil olduğu son derece düşük güçlü cihazlar için, daha hafif YOLOv5 Nano varyantları belirli eski CPU'larda ham verimde hala hafif bir avantaja sahip olabilir.
  • Eğitim Uyumluluğu: Orijinal YOLOv5 depo yapısına büyük ölçüde dayanan belirli bir eski eğitim veya kursu takip ediyorsanız.

Sonuç

Hem YOLOv5 hem de YOLOv8, Ultralytics'in yapay zekayı erişilebilir, hızlı ve doğru hale getirme taahhüdünü örneklendiriyor. YOLOv5, nesne algılamayı demokratikleştirdi, büyük bir topluluk oluşturdu ve kullanılabilirlik için standardı belirledi. YOLOv8, bu temeli geliştirerek, en son teknoloji performansı ve çok yönlülük sunan mimari yenilikler sunuyor.

Kullanıcıların büyük çoğunluğu için YOLOv8 veya daha da gelişmiş YOLO11 önerilen seçimdir. Tüm makine öğrenimi yaşam döngüsünü basitleştiren modern, özellik açısından zengin bir yazılım ekosistemi tarafından desteklenen en iyi hız ve doğruluk dengesini sunar.

Daha fazla keşfetmek için, dağıtım hakkında ayrıntılı talimatlar için Kılavuzlarımıza göz atın veya vizyon yapay zekasının geleceğine katkıda bulunmak için Ultralytics GitHub'ı ziyaret edin.


Yorumlar