YOLOv9 - YOLOv10 Karşılaştırması: Nesne Algılama için Teknik Bir İnceleme
Doğru nesne algılama modelini seçmek, geliştiriciler ve araştırmacılar için kritik bir karardır ve yüksek hassasiyet ihtiyacını gerçek zamanlı çıkarım ve hesaplama kaynaklarının kısıtlamalarıyla dengeler. Bu kılavuz, 2024'te bilgisayar görüşü performansının sınırlarını zorlayan son teknoloji ürünü iki mimari olan YOLOv9 ve YOLOv10 arasında derinlemesine bir teknik karşılaştırma sunmaktadır.
YOLOv9, derin öğrenme bilgi darboğazlarını çözmek için mimari yeniliklere odaklanırken, YOLOv10 minimum gecikme için NMS'siz bir tasarımla bir paradigma değişikliği sunar. Her iki model de Ultralytics Python paketine tamamen entegre edilmiştir ve kullanıcıların bunları birleşik bir ekosistem içinde kolayca eğitmesine, doğrulamasına ve dağıtmasına olanak tanır.
Performans Metrikleri ve Kıyaslamalar
Bu iki model arasındaki performans ödünleşimleri farklıdır. YOLOv9 genellikle ortalama Kesinlik (mAP) konusunda sınırları zorlar, özellikle daha büyük varyantlarıyla, bu da onu doğruluğun çok önemli olduğu senaryolar için uygun hale getirir. Tersine, YOLOv10, çıkarım gecikmesini ve parametre sayılarını önemli ölçüde azaltarak verimlilik için tasarlanmıştır, bu da uç dağıtımı için idealdir.
Aşağıdaki tablo, COCO veri kümesini kullanarak bu farklılıkları göstermektedir. Özellikle, YOLOv10n T4 GPU'larda inanılmaz hızlara ulaşırken, YOLOv9e algılama doğruluğunda baskındır.
| Model | boyut (piksel) | mAPval 50-95 | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametreler (M) | FLOP'lar (B) |
|---|---|---|---|---|---|---|
| YOLOv9t | 640 | 38.3 | - | 2.3 | 2.0 | 7.7 |
| YOLOv9s | 640 | 46.8 | - | 3.54 | 7.1 | 26.4 |
| YOLOv9m | 640 | 51.4 | - | 6.43 | 20.0 | 76.3 |
| YOLOv9c | 640 | 53.0 | - | 7.16 | 25.3 | 102.1 |
| YOLOv9e | 640 | 55.6 | - | 16.77 | 57.3 | 189.0 |
| 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 |
YOLOv9: Bilgi Darboğazını Çözme
Şubat 2024'te piyasaya sürülen YOLOv9, derin sinir ağlarındaki temel bir teorik zorluğu hedeflemektedir: verilerin derin katmanlarda ilerlemesiyle bilgi kaybı. Bu model, ağın doğru nesne algılama için gereken temel özellikleri korumasını sağlamak üzere tasarlanmıştır.
Teknik Detaylar:
- Yazarlar: Chien-Yao Wang, Hong-Yuan Mark Liao
- Kuruluş:Institute of Information Science, Academia Sinica
- Tarih: 2024-02-21
- Arxiv:arXiv:2402.13616
- GitHub:WongKinYiu/yolov9
Mimari: PGI ve GELAN
YOLOv9, iki çığır açan konsept sunar:
- Programlanabilir Gradyan Bilgisi (PGI): Eğitim sırasında bilgi kaybını önleyen yardımcı bir denetim çerçevesi. Ağ ağırlıklarını güncellemek için güvenilir gradyanlar üretilmesini sağlayarak önceki mimarilerde bulunan derin denetim sorunlarını çözer.
- Genelleştirilmiş Verimli Katman Toplama Ağı (GELAN): Parametre verimliliğini en üst düzeye çıkaran yeni bir mimari. GELAN, özelliklerin katmanlar arasında nasıl toplandığını optimize ederek modelin geleneksel tasarımlara kıyasla daha az parametreyle daha yüksek doğruluk elde etmesini sağlar.
Güçlü ve Zayıf Yönler
YOLOv9, doğruluk açısından kritik uygulamalarda mükemmeldir. Ayrıntılı özellik bilgilerini koruma yeteneği, onu küçük nesneleri detect etmek veya karmaşık sahnelerde gezinmek için üstün kılar. Ancak, bu gelişmişlik karmaşıklıkla birlikte gelir. PGI gibi mimari eklemeler öncelikle eğitim içindir, yani çıkarım sırasında kaldırılabilirler, ancak eğitim kaynakları daha yüksek olabilir. Ek olarak, verimli olmasına rağmen, gecikmesi genellikle YOLOv10'un özel verimli tasarımlarından daha yüksektir.
YOLOv9 hakkında daha fazla bilgi edinin
YOLOv10: NMS'siz Algılama Çağı
Tsinghua Üniversitesi'ndeki araştırmacılar tarafından geliştirilen ve Mayıs 2024'te yayınlanan YOLOv10, gerçek zamanlı hıza ve uçtan uca dağıtıma öncelik verir. Tanımlayıcı özelliği, çıkarım gecikmesi için geleneksel olarak bir darboğaz olan bir işlem sonrası adımı olan Non-Maximum Suppression (NMS)'ın ortadan kaldırılmasıdır.
Teknik Detaylar:
- Yazarlar: Ao Wang, Hui Chen, Lihao Liu, ve diğerleri.
- Kuruluş:Tsinghua Üniversitesi
- Tarih: 2024-05-23
- Arxiv:arXiv:2405.14458
- GitHub:THU-MIG/yolov10
Mimari: Tutarlı İkili Atamalar
YOLOv10'un temel yeniliği, eğitim sırasında Tutarlı Çift Atamalar'dır. Model, eğitim sırasında zengin denetim için bire çok atama stratejisi kullanır, ancak çıkarım için bire bir atamaya geçer. Bu mimari, modelin her nesne için optimum sınırlayıcı kutuyu doğrudan tahmin etmesini sağlayarak NMS son işlemeyi gereksiz kılar. Bir Sıra Kılavuzlu Blok Tasarımı ile birleştiğinde, YOLOv10 yedekliliği ve hesaplama yükünü (FLOP'lar) azaltır.
Güçlü ve Zayıf Yönler
YOLOv10'un temel avantajı düşük gecikmedir. NMS'nin kaldırılmasıyla, çıkarım gecikmesi deterministik ve önemli ölçüde daha düşük hale gelir, bu da gerçek zamanlı video işleme için kritiktir. Ayrıca, YOLOv10 modellerinin daha az FLOP ile rekabetçi doğruluk elde ettiği karşılaştırma tablosunda görüldüğü gibi, mükemmel parametre verimliliğine sahiptir. Ultralytics'e entegrasyon bunu hafifletse de, potansiyel bir zayıflık, yerleşik ekosistemlere kıyasla nispeten yeni tanıtımıdır. Ayrıca, tespitiçin oldukça özelleşmiştir, oysa ekosistemdeki diğer modeller daha geniş çoklu görev desteği sunar.
Uçtan Uca Dışa Aktarım
YOLOv10, tasarım gereği NMS'siz olduğu için, ONNX veya TensorRT gibi formatlara aktarılması genellikle daha basittir ve karmaşık son işleme eklentileri gerektirmeden "saf" uçtan uca modeller sunar.
YOLOv10 hakkında daha fazla bilgi edinin
Geliştiriciler için Karşılaştırmalı Analiz
Bu modelleri üretime entegre ederken, ham metriklerin ötesinde çeşitli pratik faktörler devreye girer.
Kullanım Kolaylığı ve Ekosistem
Her iki model de Ultralytics ekosisteminin bir parçası olmaktan büyük ölçüde fayda sağlar. Bu, geliştiricilerin aynı eğitim hatlarını, doğrulama araçlarını ve dağıtım formatlarını kullanarak yalnızca bir model dizesini değiştirerek YOLOv9 ve YOLOv10 arasında geçiş yapabileceği anlamına gelir.
- Eğitim Verimliliği: Ultralytics modelleri genellikle transformatör tabanlı dedektörlerden daha az bellek gerektirir ve bu da standart tüketici GPU'larında eğitime olanak tanır.
- Çok Yönlülük: YOLOv9 ve YOLOv10 algılamaya odaklanmış olsa da, Ultralytics API, çeşitli vizyon yapay zeka projeleri için kapsamlı bir araç seti sunarak YOLO11 ve YOLOv8 gibi modeller aracılığıyla örnek segmentasyonu ve poz tahmini gibi diğer görevleri destekler.
İdeal Kullanım Senaryoları
Ne zaman YOLOv9'u seçmelisiniz:
- Uygulamanız mümkün olan en yüksek doğruluğu gerektiriyor (örneğin, tıbbi görüntüleme, üretimde kusur tespiti).
- Bilgi tutmanın çok önemli olduğu, algılanması zor nesnelerle çalışıyorsunuz.
- Gecikme, kesinliğe kıyasla ikincil bir endişedir.
Ne zaman YOLOv10'u seçmelisiniz:
- Hız kritik öneme sahiptir. Otonom sürüş, robotik navigasyon veya yüksek FPS'li video analizi gibi uygulamalar, NMS'siz tasarımdan yararlanır.
- Uç cihazlarda (NVIDIA Jetson veya Raspberry Pi gibi) dağıtım yaparken CPU/GPU kaynakları sınırlıdır.
- NMS işlemenin getirdiği değişkenlik olmadan deterministik bir çıkarım süresine ihtiyacınız var.
Kod Örneği: Her İki Modelin Çalıştırılması
Birleşik Ultralytics API'si sayesinde, bu modelleri kendi verileriniz üzerinde karşılaştırmak çok kolaydır. Aşağıdaki python kodu, her iki mimariyle de çıkarımı nasıl yükleyip çalıştıracağınızı gösterir.
from ultralytics import YOLO
# Load a pre-trained YOLOv9 model
model_v9 = YOLO("yolov9c.pt")
# Load a pre-trained YOLOv10 model
model_v10 = YOLO("yolov10n.pt")
# Run inference on an image
results_v9 = model_v9("path/to/image.jpg")
results_v10 = model_v10("path/to/image.jpg")
# Print results
print(f"YOLOv9 Detection: {len(results_v9[0].boxes)}")
print(f"YOLOv10 Detection: {len(results_v10[0].boxes)}")
Sonuç
Hem YOLOv9 hem de YOLOv10, bilgisayar görüşünde önemli kilometre taşlarını temsil etmektedir. YOLOv9, özellik tutma ve doğruluk konusunda teorik sınırları zorlayarak, onu araştırma ve hassasiyet gerektiren görevler için bir güç merkezi haline getiriyor. YOLOv10, NMS darboğazını ortadan kaldırarak verimliliği yeniden tanımlıyor ve gerçek zamanlı uygulamalar için kolaylaştırılmış bir çözüm sunuyor.
Birden fazla görevde (segmentasyon ve sınıflandırma dahil) doğruluk, hız ve özellik zenginliğinin mutlak en iyi dengesini arayan kullanıcılar için, YOLO11'i de keşfetmelerini öneririz. Ultralytics'in en son yinelemesi olan YOLO11, seleflerinin en iyi özelliklerini neredeyse tüm yapay görme uygulamaları için uygun, sağlam, kurumsal kullanıma hazır bir pakette bir araya getirir.
Diğer Modelleri İnceleyin
Ultralytics ekosistemi geniştir. Proje gereksinimleriniz farklıysa, bu alternatifleri göz önünde bulundurun:
- YOLO11: Detect, Segmentasyon, Poz, OBB ve Sınıflandırma genelinde üstün performans ve çok yönlülük sunan en son teknoloji ürünü model.
- YOLOv8: Geniş uyumluluğu ve çoklu görev desteği ile bilinen oldukça popüler ve kararlı bir model.
- RT-DETR: Belirli kullanım durumları için YOLO mimarilerine alternatif olarak hizmet veren, NMS'ye ihtiyaç duymadan yüksek doğruluk sunan, dönüştürücü tabanlı bir dedektör.
Ultralytics platformundan yararlanarak, bu model paketinin tamamına erişir ve her zaman iş için doğru araca sahip olmanızı sağlarsınız.