YOLOv8 ve YOLOv7#
Bilgisayarlı görü alanı sürekli evriliyor ve yeni mimariler, gerçek zamanlı nesne algılamada mümkün olanın sınırlarını zorluyor. Bu derinlemesine incelemede, oldukça etkili iki modeli karşılaştırıyoruz: Ultralytics YOLOv8 ve YOLOv7. Her iki model de geliştirici topluluğunu ve akademik araştırmaları önemli ölçüde etkiledi ve karmaşık görsel görevleri çözmek için benzersiz yaklaşımlar sundu.
Bu iki model arasındaki yapısal ve yöntemsel farkları anlamak, dağıtım hatlarını optimize etmek isteyen makine öğrenimi mühendisleri için çok önemlidir. YOLOv7, ham iş hacmine göre uyarlanmış güçlü bir "bag-of-freebies" yaklaşımı getirirken, Ultralytics YOLOv8 yüksek doğruluk ile düşük bellek tüketimi ve çoklu görev çok yönlülüğünü dengeleyen bütünsel, kullanımı kolay bir ekosistem yaratmaya odaklandı.
Ultralytics YOLOv8: Çok Yönlü Ekosistem Standardı#
Ultralytics tarafından 2023'ün başlarında piyasaya sürülen YOLOv8, seleflerinden büyük bir mimari geçişi temsil ediyor. Sadece gerçek zamanlı bir nesne algılayıcıdan fazlası olacak şekilde sıfırdan tasarlandı; çok çeşitli görü görevlerini kutudan çıktığı gibi halledebilen birleşik bir çerçevedir.
- Yazarlar: Glenn Jocher, Ayush Chaurasia ve Jing Qiu
- Kuruluş: Ultralytics
- Tarih: 2023-01-10
- GitHub: ultralytics/ultralytics
- Dokümantasyon: YOLOv8 Documentation
Mimari Yenilikler#
YOLOv8, yenilikçi bir çapasız (anchor-free) algılama başlığı getirdi. Bu, özel veri setinin 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 seçimi, modeli oldukça sağlam ve farklı ortamlarda genelleştirilmesi daha kolay hale getirir.
Ayrıca mimari, gradyan akışını iyileştiren ve hesaplama maliyetini büyük ölçüde artırmadan sinir ağının daha zengin özellik temsilleri öğrenmesini sağlayan yapısal bir yükseltme olan C2f modülünü (iki evrişimli Cross-Stage Partial darboğazı) barındırır. Bu, PyTorch gibi standart derin öğrenme çerçeveleri aracılığıyla çıkarım çalıştırırken modeli son derece verimli hale getirir.
YOLOv8 hakkında daha fazla bilgi edinin
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ı sağlayarak geliştirme döngünü hızlandırır.
YOLOv7: "Bag-of-Freebies" Yaklaşımı#
YOLOv7, 2022'nin ortalarında tanıtıldı ve hızla akademik çevrelerde popüler bir temel haline geldi. Yüksek kaliteli GPU'larda gerçek zamanlı nesne algılamanın sınırlarını zorlamak için mimari yeniden parametrelendirmeye ve gradyan yolu optimizasyonuna yoğun bir şekilde odaklandı.
- Yazarlar: Chien-Yao Wang, Alexey Bochkovskiy ve Hong-Yuan Mark Liao
- Kuruluş: Bilgi Bilimleri Enstitüsü, Academia Sinica, Tayvan
- Tarih: 2022-07-06
- Arxiv: 2207.02696
- GitHub: WongKinYiu/yolov7
Mimari Yenilikler#
YOLOv7, modelin daha çeşitli özellikleri sürekli olarak öğrenmesini sağlayan bir Genişletilmiş Verimli Katman Toplama 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 iyileştiren bir dizi optimizasyon yöntemi olan eğitilebilir bir "bag-of-freebies" sunar.
YOLOv7, MS COCO dataset gibi standart akademik kıyaslamalarda mükemmel performans elde ederken, mimarisi sunucu sınıfı hızlandırıcılar için yoğun bir şekilde optimize edilmiştir. Bu modelleri dışarı aktarmak ve uç cihazlara dağıtmak, daha modern ve sadeleştirilmiş çerçevelere kıyasla bazen daha fazla manuel yapılandırma gerektirebilir.
YOLOv7 hakkında daha fazla bilgi edinin
Ayrıntılı Performans Karşılaştırması#
Bu modelleri değerlendirirken, hız, doğruluk ve model boyutu arasındaki ödünleşim birincil husustur. Aşağıdaki tablo her iki modelin metriklerini vurgular.
| Model | boyut (piksel) | mAPval 50-95 | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametreler (M) | FLOPs (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 sağlar. Bu çeşitlilik, YOLOv8'i kısıtlı donanım ortamlarına çok daha uyumlu hale getirir.
Ultralytics Avantajı: Kullanım Kolaylığı ve Ekosistem#
YOLOv7 güçlü ham algılama metrikleri sağlasa da, Ultralytics YOLOv8 geliştirici deneyimi, ekosistem entegrasyonu ve çoklu görev yetenekleri açısından ondan önemli ölçüde üstündür.
Benzersiz Çok Yönlülük#
YOLOv7 öncelikle diğer görevler için deneysel dallara sahip bir algılama modelidir. Buna karşılık YOLOv8, Object Detection, Instance Segmentation, Image Classification, Pose Estimation ve Oriented Bounding Boxes (OBB) özelliklerini yerel olarak destekler. Bu birleştirilmiş yaklaşım, bir ekibin tek bir API öğrenip bunu tamamen farklı proje gereksinimleri genelinde dağıtabileceği anlamına gelir.
Akıcı Dağıtım ve Entegrasyonlar#
Üretim için bir modeli dışarı aktarmak sıklıkla bir darboğaz olabilir. Ultralytics paketi, geliştiricilerin tek bir satır Python koduyla ONNX, TensorRT ve CoreML gibi formatlara aktarım yapmasını sağlar. Bu, karmaşık çapa tabanlı grafları dışarı aktarırken bazen karşılaşılan operatör desteği sorunlarını önler.
Ayrıca YOLOv8, MLOps araçlarıyla sorunsuz bir şekilde bütünleşir. Deneyleri Weights & Biases ile takip ediyor veya 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österir. Bir modeli başlatmaktan eğitmeye ve uç dağıtım için dışa aktarmaya on satırın altında kodla geçebilirsin.
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")model.export() fonksiyonunu kullanmak, yüksek performanslı çıkarım motorlarına anında bir köprü sağlayarak YOLOv8'i mobil uygulamalara, gömülü sistemlere veya yüksek aktarım hızına sahip bulut sunucularına kolayca entegre etmene 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ç YZ ve IoT Cihazları: Ultra hızlı Nano ve Small modellerinin kullanılabilirliği, YOLOv8'i akıllı kameralar veya dronlar gibi sınırlı hesaplama gücüne sahip donanımlar için mükemmel hale getirir.
- Çoklu Görev Projeleri: Hattın, engelleri haritalarken (Segmentasyon) insan eklemlerini takip etmeyi (Pose Estimation) gerektiriyorsa, YOLOv8 bunu yerel olarak halleder.
- Hızlı Proototiplemeden Üretime: Kapsamlı Ultralytics documentation ve sürtünmesiz Python API, ekiplerin ürünleri pazara daha hızlı 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ülaritesinin de yansıttığı üzere, genellikle YOLOv7'yi standart bir taban çizgi olarak kullanır.
- Eski Sunucu Hatları: Mevcut ağır hesaplamalı bir hat halihazırda YOLOv7'nin belirli çapa çıktıları etrafında kesin bir şekilde optimize edilmişse, onu sürdürmek kısa vadede pratik olabilir.
Geleceğe Bakış: Yeni Nesil#
YOLOv8 çok yönlü bir güç merkezi olmaya devam etse de, YZ ortamı hızla hareket ediyor. Yeni projelere başlayan ekipler için Ultralytics serisindeki en son gelişmeleri keşfetmeni şiddetle tavsiye ederiz.
En yeni nesil olan YOLO26, günümüzün yapay zeka görüşünün zirvesini temsil eder. Daha basit ve hızlı dağıtım için Non-Maximum Suppression son işlemeyi ortadan kaldıran bir End-to-End NMS-Free Design içerir. Dağılım Odak Kaybı'nın (DFL) kaldırılması ve LLM esinli MuSGD Optimizer özelliğinin sunulmasıyla YOLOv8, daha kararlı eğitim ve %43'e varan daha hızlı CPU çıkarımı sunar. Gelişmiş ProgLoss + STAL kayıp fonksiyonları küçük nesne tanımayı büyük ölçüde iyileştirerek burayı modern uç bilgi işlem ve hava görüntüleri için nihai seçim haline getirir.
Eski sistemlerden geçiş yapan kullanıcılar için son derece yetenekli YOLO11 ile klasik YOLOv5 de birleştirilmiş Ultralytics ekosistemi içinde tamamen desteklenmeye devam eder; böylece donanım kısıtlamaların ne olursa olsun dağıtılmaya hazır, sadeleştirilmiş ve yüksek performanslı bir model bulunur.