YOLOv7'ye karşı YOLOv10: Mimari Evrim ve Performans Analizi
YOLO (You Only Look Once) ailesinin evrimi, çıkarım hızı ve algılama doğruluğu arasındaki sonsuz ödünleşmeyi dengeleyen, bilgisayar görüşü gelişmelerinin büyüleyici bir zaman çizelgesini temsil etmektedir. Bu karşılaştırma, iki önemli kilometre taşına odaklanmaktadır: 2022'de yeni ölçütler belirleyen sağlam bir model olan YOLOv7 ve NMS'siz eğitimle bir paradigma değişikliği getiren 2024 sürümü olan YOLOv10.
Her iki model de nesne algılama için mükemmel seçimler olsa da, farklı mimari felsefelere hitap ederler. YOLOv7, eğitilebilir "bedava hediyeler" ve gradyan yolu optimizasyonunun sınırlarını zorlarken, YOLOv10 gerçek zamanlı uçtan uca verimlilik elde etmek için işlem sonrası darboğazları ortadan kaldırmaya odaklanır.
YOLOv7: Gradyan Yolunu Optimize Etme
Temmuz 2022'de piyasaya sürülen YOLOv7, çıkarım maliyetlerini artırmadan eğitim sürecini optimize etmeye odaklanan önemli mimari değişiklikler sunmuştur. COCO veri kümesindeki yüksek doğruluğu nedeniyle genel amaçlı bilgisayar görüşü görevleri için hızla favori haline gelmiştir.
Yazarlar: Chien-Yao Wang, Alexey Bochkovskiy ve Hong-Yuan Mark Liao
Kuruluş: Institute of Information Science, Academia Sinica, Tayvan
Tarih: 2022-07-06
ArXiv:YOLOv7: Eğitilebilir bedava hediyeler çantası, gerçek zamanlı nesne dedektörleri için yeni birState-of-the-art oluşturuyor
GitHub:WongKinYiu/yolov7
Temel Mimari Özellikler
YOLOv7, Genişletilmiş Verimli Katman Toplama Ağı (E-ELAN)'nı tanıttı. Bu mimari, en kısa ve en uzun gradyan yollarını kontrol ederek modelin daha çeşitli özellikler öğrenmesini sağlar ve ağın eğitim sırasında etkili bir şekilde yakınsamasını sağlar.
Ek olarak, YOLOv7 yoğun bir şekilde "Bedava Hediyeler" kullanır; bu, çıkarım maliyetini artırmadan eğitim sırasında doğruluğu artıran yöntemlerdir. Bunlar, karmaşık bir eğitim yapısının öğrenilen performansı korurken gecikmeyi azaltan, akıcı bir çıkarım yapısına basitleştirildiği modelin yeniden parametrelendirilmesini içerir.
YOLOv7 hakkında daha fazla bilgi edinin
YOLOv10: NMS'nin Sonu
Tsinghua Üniversitesi'nden araştırmacılar tarafından Mayıs 2024'te yayınlanan YOLOv10, nesne tespitinde uzun süredir devam eden bir darboğazı ele alıyor: Non-Maximum Suppression (NMS). Geleneksel YOLO modelleri, tek bir nesne için birden fazla sınırlayıcı kutu tahmin eder ve yinelenenleri filtrelemek için NMS'ye güvenir. Bu işlem sonrası adımı, sahnedeki nesne sayısına bağlı olarak değişen bir gecikme ekler.
Yazarlar: Ao Wang, Hui Chen, Lihao Liu, ve diğerleri
Kuruluş: Tsinghua Üniversitesi
Tarih: 2024-05-23
ArXiv:YOLOv10: Gerçek Zamanlı Uçtan Uca Nesne Tespiti
GitHub:THU-MIG/yolov10
Temel Mimari Özellikler
YOLOv10, bir Tutarlı İkili Atama stratejisi sunar. Model, eğitim sırasında hem bire çok başlık (zengin denetim için) hem de bire bir başlık (uçtan uca tahmin için) kullanır. Çıkarım sırasında, NMS ihtiyacını tamamen ortadan kaldırarak yalnızca bire bir başlık kullanılır. Bu, öngörülebilir, düşük gecikmeli çıkarımla sonuçlanır ve bu da onu işlem süresinin sabit olması gereken uç yapay zeka uygulamaları için oldukça uygun hale getirir.
YOLOv10 hakkında daha fazla bilgi edinin
Teknik Karşılaştırma: Mimari ve Performans
Bu modeller arasındaki temel ayrım, çıkarım verimliliğine yaklaşımlarında yatmaktadır. YOLOv7, özellikleri verimli bir şekilde çıkarmak için oldukça optimize edilmiş bir backbone'a (E-ELAN) güvenir, ancak yine de geleneksel post-işleme gerektirir. YOLOv10, benzer doğruluk seviyeleri için daha düşük gecikme süresi elde ederek, post-işleme adımlarını kaldırmak için temel tespit başlığını değiştirir.
Performans Metrikleri
Aşağıdaki tabloda gösterildiği gibi, YOLOv10 üstün verimlilik gösterir. Örneğin, YOLOv10b, önemli ölçüde daha az parametre (24,4M'ye karşı 36,9M) ve kayan nokta işlemi (FLOP) kullanırken YOLOv7l'den (%51,4) daha yüksek bir mAP (%52,7) elde eder.
Gecikmeyi Anlama
"Hız" metrikleri, YOLOv10'un NMS'siz tasarımının etkisini vurgular. YOLOv10, NMS adımını kaldırarak çıkarım sırasında hesaplama yükünü azaltır; bu, özellikle son işlemlemenin aksi takdirde bir darboğaz haline gelebileceği TensorRT gibi donanım hızlandırıcılarında faydalıdır.
| Model | boyut (piksel) | mAPval 50-95 | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametreler (M) | FLOP'lar (B) |
|---|---|---|---|---|---|---|
| YOLOv7l | 640 | 51.4 | - | 6.84 | 36.9 | 104.7 |
| YOLOv7x | 640 | 53.1 | - | 11.57 | 71.3 | 189.9 |
| YOLOv10n | 640 | 39.5 | - | 1.56 | 2.3 | 6.7 |
| YOLOv10s | 640 | 46.7 | - | 2.66 | 7.2 | 21.6 |
| YOLOv10m | 640 | 51.3 | - | 5.48 | 15.4 | 59.1 |
| YOLOv10b | 640 | 52.7 | - | 6.54 | 24.4 | 92.0 |
| YOLOv10l | 640 | 53.3 | - | 8.33 | 29.5 | 120.3 |
| YOLOv10x | 640 | 54.4 | - | 12.2 | 56.9 | 160.4 |
Güçlü ve Zayıf Yönler
YOLOv7'nin Güçlü Yönleri:
- Kanıtlanmış Sağlamlık: 2022'den beri çeşitli akademik ve endüstriyel ortamlarda kapsamlı bir şekilde test edilmiştir.
- Yüksek Çözünürlük Desteği: Belirli W6/E6 varyantları aracılığıyla daha yüksek çözünürlüklü girdilerde (örneğin, 1280 piksel) mükemmel performans.
- Topluluk Kaynakları: Yaşı nedeniyle çok sayıda eğitim ve üçüncü taraf uygulama bulunmaktadır.
YOLOv7 Zayıflıkları:
- Karmaşıklık: Yeniden parametrelendirme ve yardımcı başlık yapısı, eğitim hattını modern Ultralytics modellerine kıyasla karmaşıklaştırabilir.
- NMS Bağımlılığı: Çıkarım hızı, kısmen NMS nedeniyle sahne yoğunluğuna bağlıdır.
YOLOv10'un Güçlü Yönleri:
- En Düşük Gecikme Süresi: NMS'siz mimari, gerçek zamanlı çıkarım için ideal olan son derece hızlı çıkarıma olanak tanır.
- Verimlilik: Daha az parametre ve daha düşük bellek kullanımıyla son teknoloji doğruluğu elde eder.
- Dağıtım Kolaylığı: NMS adımının kaldırılması, ONNX ve TensorRT gibi formatlara aktarım sürecini basitleştirir.
YOLOv10 Zayıflıkları:
- Görev Özgüllüğü: Öncelikli olarak nesne algılamaya odaklanırken, Ultralytics ekosistemindeki diğer modeller (YOLO11 gibi) birleşik bir çerçevede yerel olarak segmentasyonu, poz tahminini ve OBB'yi destekler.
İdeal Kullanım Senaryoları
YOLOv7 ve YOLOv10 arasındaki seçim genellikle dağıtım ortamının özel kısıtlamalarına bağlıdır.
- Şu durumlarda YOLOv7 kullanın: Halihazırda v7 mimarisini entegre eden eski bir proje üzerinde çalışıyorsanız veya çıkarım hızının ham kesinliğe ikincil olduğu büyük görüntülerde küçük nesne algılama için belirli yüksek çözünürlüklü varyantlara (YOLOv7-w6 gibi) ihtiyacınız varsa.
- Şu durumlarda YOLOv10 kullanın: Kaynak kısıtlı uç cihazlara (Raspberry Pi, Jetson Nano, cep telefonları) dağıtım yapıyorsanız veya otonom sürüş veya yüksek hızlı robotik gibi uygulamalar için mutlak minimum gecikme süresi gerekiyorsa. Daha düşük bellek ayak izi, bulut ortamlarında çalıştırmayı da ucuzlatır.
Ultralytics'in Avantajı
YOLOv7 veya YOLOv10'u seçmek fark etmeksizin, bunları Ultralytics Python API'si aracılığıyla kullanmak, ham depo kodunu kullanmaya kıyasla önemli avantajlar sağlar. Ultralytics, bu modelleri kullanım kolaylığı, eğitim verimliliği ve çok yönlülüğe öncelik veren birleşik bir ekosisteme entegre etmiştir.
Kolaylaştırılmış Kullanıcı Deneyimi
Karmaşık derin öğrenme modellerini eğitmek geçmişte karmaşık yapılandırma dosyalarının ve bağımlılıkların yönetilmesini gerektiriyordu. Ultralytics çerçevesi bu süreci standartlaştırır. Geliştiriciler, veri yükleyicilerini veya doğrulama komut dosyalarını yeniden yazmadan, tek bir dize argümanını değiştirerek mimariler arasında (örneğin, YOLOv10n'den YOLOv10s'ye veya hatta YOLO11'e) geçiş yapabilir.
Kod Örneği
Aşağıdaki örnek, Ultralytics paketini kullanarak bu modellerle nasıl yükleme yapılacağını ve tahminlerde bulunulacağını göstermektedir. API'nin temel model mimarisinden bağımsız olarak nasıl tutarlı kaldığına dikkat edin.
from ultralytics import YOLO
# Load a pre-trained YOLOv10 model (NMS-free)
model_v10 = YOLO("yolov10n.pt")
# Load a pre-trained YOLOv7 model
model_v7 = YOLO("yolov7.pt")
# Run inference on an image
# The API handles underlying differences automatically
results_v10 = model_v10("https://ultralytics.com/images/bus.jpg")
results_v7 = model_v7("https://ultralytics.com/images/bus.jpg")
# Print results
for result in results_v10:
result.show() # Display predictions
Ekosistem ve Geleceğe Hazırlık
YOLOv7 ve YOLOv10 güçlü olsa da, Ultralytics ekosistemi sürekli olarak gelişmektedir. En son YOLO11 modeli, hem v7'den (özellik toplama) hem de v10'dan (verimlilik) öğrenilen dersleri temel alır.
- İyi Yönetilen: Sık güncellemeler, PyTorch, CUDA ve dışa aktarım formatlarının (CoreML, ONNX, TensorRT) en son sürümleriyle uyumluluğu sağlar.
- Bellek Verimliliği: Ultralytics modelleri, birçok Transformatör tabanlı alternatife (RT-DETR gibi) kıyasla tüketici donanımında daha büyük yığın boyutlarına olanak tanıyarak eğitim sırasında GPU VRAM kullanımını en aza indirecek şekilde tasarlanmıştır.
- Eğitim Verimliliği: Önceden ayarlanmış hiperparametreler ve "akıllı" veri kümesi taraması ile eğitim yakınsaması genellikle daha hızlıdır ve bu da işlem maliyetlerinden tasarruf sağlar.
Bugün yeni projelere başlayan geliştiriciler için, YOLO10'da görülen hızın ve öncüllerin sağlam özellik çıkarımının iyileştirilmiş bir dengesini ve ayrıca örnek segmentasyonu ve poz tahmini gibi basit detect ötesindeki görevler için yerel desteği sunduğundan YOLO11'i keşfetmeniz şiddetle tavsiye edilir.
Diğer Modelleri İnceleyin
Daha fazla karşılaştırma veya farklı mimarilerle ilgileniyorsanız, şu kaynakları inceleyebilirsiniz:
- YOLO11 - YOLOv8'e Karşı - En son teknoloji modellerini karşılaştırın.
- RT-DETR - YOLOv10 Karşılaştırması - Transformer tabanlı tespit ve CNN tabanlı verimlilik.
- YOLOv9 - YOLOv10 Karşılaştırması - Programlanabilir Gradyan Bilgisi (PGI) ve NMS'siz tasarımları inceleme.