YOLOv8 - YOLOv7: Kapsamlı Bir Teknik Karşılaştırma
Bilgisayar görüşü alanı, gerçek zamanlı nesne tespitinde nelerin mümkün olduğunu zorlayan yeni mimarilerle sürekli gelişmektedir. Bu derinlemesine incelemede, iki oldukça etkili modeli karşılaştırıyoruz: Ultralytics YOLOv8 ve YOLOv7. Her iki model de geliştirici topluluğunu ve akademik araştırmayı önemli ölçüde etkilemiş, karmaşık görsel görevleri çözmek için benzersiz yaklaşımlar sunmuştur.
Bu iki model arasındaki yapısal ve metodolojik farklılıkları anlamak, dağıtım hatlarını optimize etmek isteyen makine öğrenimi mühendisleri için çok önemlidir. YOLOv7, ham verim için özel olarak tasarlanmış güçlü bir "bag-of-freebies" yaklaşımı sunarken, Ultralytics YOLOv8, yüksek doğruluğu düşük bellek tüketimi ve çok görevli çok yönlülük ile dengeleyen bütünsel, kullanımı kolay bir ekosistem oluşturmaya odaklanmıştır.
Ultralytics YOLOv8: Çok Yönlü Ekosistem Standardı
Ultralytics tarafından 2023'ün başlarında piyasaya sürülen YOLOv8, önceki sürümlerinden önemli bir mimari farklılık sunmaktadır. Yalnızca gerçek zamanlı bir nesne dedektöründen daha fazlası olmak üzere sıfırdan tasarlandı; kutudan çıktığı haliyle geniş bir yelpazede görüş görevlerini yerine getirebilen birleşik bir çerçevedir.
- Yazarlar: Glenn Jocher, Ayush Chaurasia ve Jing Qiu
- Kuruluş:Ultralytics
- Tarih: 2023-01-10
- GitHub:ultralytics/ultralytics
- Belgeler:YOLOv8 Belgeleri
Mimari Yenilikler
YOLOv8, yenilikçi bir anchor-free algılama başlığı tanıttı. Bu, özel veri setinizin belirli dağılımına göre çapa kutularını manuel olarak yapılandırma ihtiyacını ortadan kaldırarak eğitim sürecini temelden basitleştirir. Bu tasarım tercihi, modeli oldukça sağlam kılar ve farklı ortamlarda genelleştirmeyi kolaylaştırır.
Ek olarak, mimari, C2f modülünü (iki evrişimli Çapraz Aşamalı Kısmi darboğaz) içerir; bu, gradyan akışını iyileştiren ve sinir ağının hesaplama maliyetini önemli ölçüde artırmadan daha zengin özellik temsilleri öğrenmesini sağlayan yapısal bir yükseltmedir. Bu, modeli PyTorch gibi standart derin öğrenme çerçeveleri aracılığıyla çıkarım yaparken oldukça verimli hale getirir.
YOLOv8 hakkında daha fazla bilgi edinin.
Bellek Verimliliği
Ultralytics YOLO modelleri, en yüksek eğitim verimliliği için tasarlanmıştır. Genellikle, transformatör tabanlı mimarilere veya daha ağır CNN'lere kıyasla eğitim sırasında önemli ölçüde daha az CUDA belleği gerektirirler. Bu, tüketici sınıfı donanımlarda daha büyük yığın boyutlarıyla eğitim yapmanıza olanak tanıyarak geliştirme döngünüzü hızlandırır.
YOLOv7: "Ücretsiz Avantajlar Paketi" Yaklaşımı
YOLOv7, 2022 ortalarında tanıtıldı ve akademik çevrelerde hızla popüler bir temel model haline geldi. Üst düzey GPU'larda gerçek zamanlı nesne algılamanın sınırlarını zorlamak için mimari yeniden parametrelendirme ve gradyan yolu optimizasyonuna yoğun bir şekilde odaklandı.
- Yazarlar: Chien-Yao Wang, Alexey Bochkovskiy ve Hong-Yuan Mark Liao
- Kuruluş: Institute of Information Science, Academia Sinica, Taiwan
- Tarih: 2022-07-06
- Arxiv:2207.02696
- GitHub:WongKinYiu/yolov7
Mimari Yenilikler
YOLOv7, modelin sürekli olarak daha çeşitli özellikler öğrenmesini sağlayan Genişletilmiş Verimli Katman Birleştirme Ağı (E-ELAN) kullanır. Çapa tabanlı bir paradigmaya büyük ölçüde dayanır ve çıkarım maliyetini artırmadan doğruluğu artıran bir dizi optimizasyon yöntemi olan eğitilebilir bir "bag-of-freebies" sunar.
YOLOv7, MS COCO veri seti gibi standart akademik kıyaslamalarda mükemmel performans gösterse de, mimarisi sunucu sınıfı hızlandırıcılar için yoğun bir şekilde optimize edilmiştir. Bu modelleri uç cihazlara aktarmak ve dağıtmak, daha modern, kolaylaştırılmış çerçevelere kıyasla bazen daha fazla manuel yapılandırma gerektirebilir.
YOLOv7 hakkında daha fazla bilgi edinin.
Detaylı Performans Karşılaştırması
Bu modelleri değerlendirirken, hız, doğruluk ve model boyutu arasındaki denge temel husustur. Aşağıdaki tablo, her iki modelin metriklerini vurgulamaktadır.
| Model | boyut (piksel) | mAPval 50-95 | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametreler (M) | FLOP'lar (B) |
|---|---|---|---|---|---|---|
| YOLOv8n | 640 | 37.3 | 80.4 | 1.47 | 3.2 | 8.7 |
| YOLOv8s | 640 | 44.9 | 128.4 | 2.66 | 11.2 | 28.6 |
| YOLOv8m | 640 | 50.2 | 234.7 | 5.86 | 25.9 | 78.9 |
| YOLOv8l | 640 | 52.9 | 375.2 | 9.06 | 43.7 | 165.2 |
| YOLOv8x | 640 | 53.9 | 479.1 | 14.37 | 68.2 | 257.8 |
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
Verilerde görüldüğü gibi, YOLOv8x en yüksek mutlak doğruluğu (53.9 mAP) elde ederken, nano varyantı (YOLOv8n) olağanüstü çıkarım hızları ve inanılmaz derecede hafif bir ayak izi sunar. Bu çeşitlilik, YOLOv8'i kısıtlı donanım ortamlarına çok daha uyarlanabilir hale getirir.
Ultralytics Avantajı: Kullanım Kolaylığı ve Ekosistem
YOLOv7 güçlü ham algılama metrikleri sunsa da, Ultralytics YOLOv8, geliştirici deneyimi, ekosistem entegrasyonu ve çoklu görev yetenekleri açısından onu önemli ölçüde geride bırakır.
Rakipsiz Çok Yönlülük
YOLOv7, diğer görevler için deneysel dalları olan, öncelikli olarak bir algılama modelidir. Buna karşılık, YOLOv8 yerel olarak Nesne Algılama, Örnek Segmentasyonu, Görüntü Sınıflandırma, Poz Tahmini ve Yönlendirilmiş Sınırlayıcı Kutuları (OBB) destekler. Bu birleşik yaklaşım, bir ekibin tek bir API öğrenip bunu tamamen farklı proje gereksinimleri genelinde dağıtabileceği anlamına gelir.
Kolaylaştırılmış Dağıtım ve Entegrasyonlar
Bir modeli üretim için dışa aktarmak genellikle bir darboğaz olabilir. Ultralytics paketi, geliştiricilerin tek bir Python kodu satırıyla ONNX, TensorRT ve CoreML gibi formatlara dışa aktarım yapmasına olanak tanır. Bu, karmaşık çapa tabanlı grafikleri dışa aktarırken bazen karşılaşılan operatör destek sorunlarını önler.
Ayrıca, YOLOv8 MLOps araçlarıyla sorunsuz bir şekilde entegre olur. İster Weights & Biases ile deneyleri takip ediyor olun, ister Hugging Face Spaces üzerinde dağıtımları test ediyor olun, Ultralytics ekosistemi tüm ağır işleri üstlenir.
Kod Örneği: YOLOv8 Eğitimi ve Dışa Aktarımı
Aşağıdaki kod, Ultralytics Python API'sinin basitliğini göstermektedir. Bir modeli başlatmaktan, eğitmeye ve uç dağıtım için dışa aktarmaya kadar on satırdan daha az kodla geçiş yapabilirsiniz.
from ultralytics import YOLO
# Load a pretrained YOLOv8 nano model for fast inference
model = YOLO("yolov8n.pt")
# Train the model on the COCO8 dataset
# The API handles data loading, augmentation, and logging automatically
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a test image
predictions = model("https://ultralytics.com/images/bus.jpg")
# Export the trained model to ONNX format for deployment
model.export(format="onnx")
Dağıtım Esnekliği
Şunu kullanarak model.export() işlevi, yüksek performanslı çıkarım motorlarına anında bir köprü sağlar ve YOLOv8'i mobil uygulamalara, gömülü sistemlere veya yüksek verimli bulut sunucularına kolayca entegre etmenize olanak tanır.
Gerçek Dünya Kullanım Durumları
İki model arasındaki mimari farklılıklar, ideal dağıtım senaryolarını belirler.
YOLOv8 Ne Zaman Seçilmeli:
- Uç Yapay Zeka ve IoT Cihazları: Ultra hızlı Nano ve Small modellerinin mevcudiyeti, YOLOv8'i akıllı kameralar veya dronlar gibi sınırlı işlem gücüne sahip donanımlar için mükemmel kılar.
- Çoklu Görev Projeleri: Eğer hattınız insan eklemlerini takip etmeyi (Poz Tahmini) ve aynı anda engelleri haritalandırmayı (Segmentasyon) gerektiriyorsa, YOLOv8 bunu yerel olarak halleder.
- Hızlı Prototiplemeden Üretime: Kapsamlı Ultralytics belgeleri ve sorunsuz Python API'si, ekiplerin ürünleri daha hızlı pazara sunmasını sağlar.
YOLOv7 Ne Zaman Düşünülmeli:
- Akademik Kıyaslama: Yeniden parametrelendirme tekniklerinin etkilerini inceleyen araştırmacılar, Papers With Code üzerindeki popülaritesinden de anlaşıldığı üzere, YOLOv7'yi genellikle standart bir temel model olarak kullanırlar.
- Eski Sunucu İş Akışları: Mevcut, yoğun hesaplama gerektiren bir iş akışı zaten YOLOv7'nin belirli çapa çıktıları etrafında sıkı bir şekilde optimize edilmişse, kısa vadede bunu sürdürmek pratik olabilir.
Geleceğe Bakış: Yeni Nesil
YOLOv8 çok yönlü bir güç merkezi olmaya devam etse de, yapay zeka alanı hızla ilerlemektedir. Yeni projelere başlayan ekipler için, Ultralytics ürün yelpazesindeki en son gelişmeleri keşfetmelerini şiddetle tavsiye ederiz.
En yeni nesil, YOLO26, mevcut görüş yapay zekasının zirvesini temsil etmektedir. Daha basit ve daha hızlı dağıtım için Non-Maximum Suppression (NMS) son işlemeyi ortadan kaldıran Uçtan Uca NMS-Free Tasarım özelliğine sahiptir. Distribution Focal Loss (DFL) kaldırılması ve LLM'den ilham alan MuSGD Optimizer tanıtılmasıyla YOLO26, daha kararlı eğitim ve %43'e kadar daha hızlı CPU çıkarımı sunar. Gelişmiş ProgLoss + STAL kayıp fonksiyonları, küçük nesne tanımayı önemli ölçüde iyileştirerek, modern uç bilişim ve hava görüntüleme için nihai seçenek haline getirir.
Eski sistemlerden geçiş yapan kullanıcılar için, yüksek kapasiteli YOLO11 ve klasik YOLOv5 de birleşik Ultralytics ekosistemi içinde tam olarak desteklenmeye devam etmektedir; bu da donanım kısıtlamalarınız ne olursa olsun, dağıtıma hazır, optimize edilmiş, yüksek performanslı bir modelin mevcut olmasını sağlar.