İçeriğe geç

YOLOv10 - YOLOX Karşılaştırması: Teknik Bir Karşılaştırma

Bilgisayar görüşü alanındaki hızlı gelişmelerde, doğru nesne algılama modelini seçmek performans, verimlilik ve dağıtım kolaylığı arasında denge kurmak için çok önemlidir. Bu teknik karşılaştırma, Tsinghua Üniversitesi'nden en son gerçek zamanlı uçtan uca detectör olan YOLOv10 ile Megvii'den oldukça beğenilen ankrajsız bir model olan YOLOX arasındaki farklılıkları incelemektedir.

YOLOX 2021'de ankrajsız detect mekanizmalarıyla ilgili önemli yenilikler sunarken, YOLOv10, NMS'siz çıkarım ve Ultralytics ekosistemiyle daha sıkı entegrasyon sunarak 2024'ün en son noktasını temsil ediyor.

YOLOv10: Gerçek Zamanlı Uçtan Uca Algılama

YOLOv10, işlem sonrası verimliliği ve model mimarisi arasındaki boşluğu kapatmayı amaçlar. NMS'siz eğitim için tutarlı bir ikili atama stratejisi sunarak, çıkarım sırasında Non-Maximum Suppression (NMS) ihtiyacını ortadan kaldırır ve gecikmeyi önemli ölçüde azaltır.

Teknik Detaylar:

Mimari ve Güçlü Yönler

YOLOv10, önceki YOLO nesillerinin güçlü yönleri üzerine inşa edilir, ancak mimariyi hem verimlilik hem de doğruluk için optimize eder. Hafif sınıflandırma başlıkları ve uzamsal-kanal ayrışık alt örnekleme içeren bütünsel bir model tasarımı kullanır.

  • NMS'siz Çıkarım: NMS'nin kaldırılması, gerçek zamanlı çıkarım uygulamaları için oyun değiştiricidir ve uç cihazlarda öngörülebilir gecikme ve daha düşük CPU yükü sağlar.
  • Verimlilik-Doğruluk Dengesi: YOLOv10, önceki modellere ve rakiplerine kıyasla daha düşük parametre sayıları ve FLOP'larla son teknoloji performansı elde eder.
  • Ultralytics Entegrasyonu: Tamamen tarafından desteklendiği için ultralytics paketi, kullanıcıların birleşik bir python API, gibi formatlara sorunsuz dışa aktarım TensorRT ve OpenVINO, ve kapsamlı dokümantasyon.

Ekosistem Avantajı

YOLOv10'un Ultralytics ekosistemine entegrasyonu, otomatik etiketleme, bulut eğitimi gibi gelişmiş özelliklere ve destek için güçlü bir topluluğa anında erişim sağlar.

Zayıflıklar

  • Daha Yeni Mimari: 2024 sürümü olarak, üçüncü taraf eğitimlerinin ekosistemi hızla büyüyor, ancak henüz eski eski modellerin hacmine ulaşamayabilir.

YOLOv10 hakkında daha fazla bilgi edinin

YOLOX: Bağlantısız Öncü

2021'de yayınlanan YOLOX, YOLOv4 ve YOLOv5'in ankraj tabanlı yaklaşımlarından ayrılarak ankrajsız bir mekanizmaya ve ayrıştırılmış başlıklara geçti. Etiket ataması için SimOTA'yı (Basitleştirilmiş Optimal Taşıma Ataması) kullanır ve bu, dinamik etiket atama stratejilerinde önemli bir adımdı.

Teknik Detaylar:

Mimari ve Güçlü Yönler

YOLOX, temiz anchor'suz tasarımı nedeniyle araştırma topluluğunda güçlü bir temel olmaya devam ediyor.

  • Çapa Olmayan Mekanizma: YOLOX, önceden tanımlanmış çapa kutularını kaldırarak tasarım karmaşıklığını ve ayarlanması gereken hiperparametre sayısını azaltır.
  • Ayrıştırılmış Kafa (Decoupled Head): Sınıflandırma ve yerelleştirme görevlerinin ayrılması, eski birleşik kafalı tasarımlara göre yakınsama hızını ve doğruluğunu artırdı.
  • Güçlü Temel: Algılama başlıkları ve atama stratejileri üzerine yapılan akademik araştırmalar için güvenilir bir ölçüt görevi görür.

Zayıflıklar

  • Çıkarım Hızı: Zamanı için verimli olmasına rağmen, YOLOX genellikle ham çıkarım hızı açısından YOLOv10 ve YOLO11 gibi daha yeni modellerin gerisinde kalır, özellikle NMS süresi hesaba katıldığında.
  • Parçalı İş Akışı: Ultralytics modellerinden farklı olarak, YOLOX genellikle kendi özel kod tabanını ve ortam kurulumunu gerektirir ve modern frameworklerde bulunan eğitim, doğrulama ve dağıtım için birleşik arayüzden yoksundur.
  • Kaynak Yoğunluğu: Modern ve verimli mimarilere kıyasla benzer doğruluk seviyeleri için daha yüksek FLOP'lar ve parametre sayıları gerektirir.

YOLOX hakkında daha fazla bilgi edinin

Performans Analizi

Aşağıdaki karşılaştırma, bu modelleri ayıran üç yılda verimlilik ve doğrulukta kaydedilen önemli gelişmeleri vurgulamaktadır. Metrikler, COCO veri kümesindeki model boyutuna (parametreler), hesaplama maliyetine (FLOPs) ve doğruluğa (mAP) odaklanmaktadır.

Modelboyut
(piksel)
mAPval
50-95
Hız
CPU ONNX
(ms)
Hız
T4 TensorRT10
(ms)
parametreler
(M)
FLOP'lar
(B)
YOLOv10n64039.5-1.562.36.7
YOLOv10s64046.7-2.667.221.6
YOLOv10m64051.3-5.4815.459.1
YOLOv10b64052.7-6.5424.492.0
YOLOv10l64053.3-8.3329.5120.3
YOLOv10x64054.4-12.256.9160.4
YOLOXnano41625.8--0.911.08
YOLOXtiny41632.8--5.066.45
YOLOXs64040.5-2.569.026.8
YOLOXm64046.9-5.4325.373.8
YOLOXl64049.7-9.0454.2155.6
YOLOXx64051.1-16.199.1281.9

Kritik Gözlemler

  1. Doğruluk - Boyut Karşılaştırması: YOLOv10, daha az parametreyle sürekli olarak daha yüksek mAP sunar. Örneğin, YOLOv10s, yalnızca 7.2M parametreyle 46.7 mAP elde ederken, YOLOXs, 9.0M parametreyle 40.5 mAP elde eder. Bu, YOLOv10'un üstün mimari verimliliğini gösterir.
  2. Hesaplama Verimliliği: YOLOv10 modelleri için FLOPs sayısı önemli ölçüde daha düşüktür. YOLOv10x, YOLOXx'in devasa 281.9B FLOPs'sine kıyasla 160.4B FLOPs'de çalışırken, doğrulukta (54.4'e karşı 51.1 mAP) hala daha iyi performans gösteriyor.
  3. Çıkarım Hızı: NMS'nin kaldırılması ve optimize edilmiş mimari, YOLOv10'un daha düşük gecikme süresi elde etmesini sağlar. T4 TensorRT kıyaslamaları, YOLOv10x'in 12,2 ms'de çalıştığını ve YOLOXx'in 16,1 ms'dekinden önemli ölçüde daha hızlı olduğunu gösteriyor.

İdeal Kullanım Senaryoları

YOLOv10: Modern Standart

YOLOv10, özellikle aşağıdakileri gerektiren çoğu yeni geliştirme projesi için tercih edilen seçimdir:

  • Uç Yapay Zeka Dağıtımı: Düşük bellek ayak izi ve yüksek verimliliği, Raspberry Pi veya NVIDIA Jetson gibi cihazlar için mükemmel kılar.
  • Gerçek Zamanlı Uygulamalar: Otonom sürüş, robotik ve video analizleri gibi anında geri bildirim gerektiren sistemler, NMS'siz düşük gecikmeden yararlanır.
  • Hızlı Geliştirme: Ultralytics ekosistemi hızlı olanağı sağlar veri kümesi yönetimi, eğitim ve dağıtım yoluyla ultralytics paketi.

YOLOX: Miras ve Araştırma

YOLOX şunlar için hala önemlidir:

  • Akademik Araştırma: Ankrajsız detektörlerin evrimini veya SimOTA gibi belirli etiket atama stratejilerini inceleyen araştırmacılar, genellikle YOLOX'u temel olarak kullanır.
  • Eski Sistemler: Zaten YOLOX için optimize edilmiş mevcut üretim işlem hatları, yükseltme maliyetlerinin performans kazanımlarından daha ağır bastığı durumlarda onu kullanmaya devam edebilir.

YOLOv10 'u Ultralytics ile Kullanma

YOLOv10'un en önemli avantajlarından biri kullanım kolaylığıdır. Ultralytics Python API'si, önceden eğitilmiş ağırlıkları yüklemeden özel veriler üzerinde eğitime kadar tüm iş akışını basitleştirir.

Aşağıda, tahminlerin nasıl yürütüleceğine ve bir YOLOv10 modelinin nasıl eğitileceğine dair bir örnek verilmiştir:

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

# Run inference on an image
results = model.predict("path/to/image.jpg")

# Train the model on a custom dataset (COCO format)
model.train(data="coco8.yaml", epochs=100, imgsz=640)

Eğitim Verimliliği

Ultralytics YOLO modelleri, eski mimarilere veya transformatör tabanlı modellere göre genellikle daha az CUDA belleği gerektiren eğitim verimliliği ile bilinir. Bu, standart tüketici GPU'larında daha büyük kümelerin eğitilmesine olanak tanır.

Sonuç

YOLOX ankrajsız algılamanın popülerleşmesinde önemli bir rol oynarken, YOLOv10 bilgisayarla görme teknolojisinde bir sonraki sıçramayı temsil ediyor. NMS'siz mimarisi, üstün doğruluk-hesaplama oranı ve sağlam Ultralytics ekosistemine sorunsuz entegrasyonu ile YOLOv10, hem geliştiriciler hem de araştırmacılar için cazip bir paket sunuyor.

En son object detection teknolojisini dağıtmak isteyenler için YOLOv10, gerekli hız ve hassasiyeti sağlar. Poz tahmini veya yönlendirilmiş sınırlayıcı kutular gibi daha geniş yeteneklerle ilgilenen geliştiriciler, çok yönlü YOLO11'i veya yaygın olarak benimsenen YOLOv8'i de düşünebilir.


Yorumlar