YOLOX ve YOLOv10: Anchor-Free ve NMS-Free Gerçek Zamanlı Nesne detect etme Karşılaştırması
Gerçek zamanlı bilgisayar görüşü modellerinin evrimi, önemli mimari sıçramalarla damgasını vurmuştur. Bu yolculuktaki iki önemli dönüm noktası YOLOX ve YOLOv10'dur. 2021'de piyasaya sürülen YOLOX, oldukça etkili bir anchor-free tasarım sunarak akademik araştırma ile endüstriyel uygulama arasındaki boşluğu başarıyla kapatmıştır. Üç yıl sonra, YOLOv10, işlem sonrası sırasında NMS ihtiyacını ortadan kaldırarak alanı devrim niteliğinde değiştirmiş, verimlilik ve hız sınırlarını zorlamıştır.
Bu kapsamlı teknik karşılaştırma, her iki modelin mimarilerini, performans metriklerini ve ideal kullanım durumlarını inceleyerek, bir sonraki nesne detect etme projeniz için doğru aracı seçmenize yardımcı olacak bilgiler sunmaktadır.
Model Kökenleri ve Meta Verileri
Bu modellerin kökenlerini anlamak, mimari seçimleri ve hedeflenen dağıtım ortamları için bağlam sağlar.
YOLOX Detayları
Yazarlar: Zheng Ge, Songtao Liu, Feng Wang, Zeming Li ve Jian Sun
Kuruluş: Megvii
Tarih: 2021-07-18
Arxiv: https://arxiv.org/abs/2107.08430
GitHub: https://github.com/Megvii-BaseDetection/YOLOX
Belgeler: https://yolox.readthedocs.io/en/latest/
YOLOX hakkında daha fazla bilgi edinin
YOLOv10 Detayları
Yazarlar: Ao Wang, Hui Chen, Lihao Liu, Kai Chen, Zijia Lin, Jungong Han ve Guiguang Ding
Kuruluş: Tsinghua University
Tarih: 2024-05-23
Arxiv: https://arxiv.org/abs/2405.14458
GitHub: https://github.com/THU-MIG/yolov10
Belgeler: https://docs.ultralytics.com/models/yolov10/
YOLOv10 hakkında daha fazla bilgi edinin.
Mimari Yenilikler
YOLOX ve YOLOv10 arasındaki temel farklar, sınırlayıcı kutu tahminlerini ve işlem sonrası süreçleri nasıl ele aldıklarında yatmaktadır.
YOLOX: Anchor-Free Tasarımda Öncülük
YOLOX, YOLO ailesini anchor-free mimariye geçirerek büyük yankı uyandırdı. Önceden tanımlanmış anchor kutularına güvenmek yerine bir nesnenin merkezini tahmin ederek, YOLOX özel veri kümeleri için gereken tasarım parametrelerinin ve sezgisel ayarlamaların sayısını önemli ölçüde azalttı. Ayrıca, sınıflandırma ve regresyon görevlerini ayrı yollara ayıran ayrık bir başlık tanıttı. Bu yaklaşım, bir nesnenin ne olduğunu belirleme ile nerede olduğunu belirleme arasındaki çelişkiyi çözerek yakınsama hızı ve hassasiyetinde gözle görülür bir artışa yol açtı.
YOLOv10: NMS'siz Devrim
YOLOX, detect etme başlığını basitleştirmiş olsa da, gereksiz sınırlayıcı kutu tahminlerini filtrelemek için hala NMS'ye güveniyordu. YOLOv10 bu temel darboğazı ele aldı. Eğitim sırasında tutarlı ikili atamalar kullanarak, YOLOv10 yerel uçtan uca detect etme başarır. Zengin denetleyici sinyalleri sağlamak için eğitim sırasında bire çoklu bir başlık kullanırken, çıkarım sırasında nihai tahminleri doğrudan çıkarmak için bire bir başlık kullanır. Bu bütünsel verimlilik-doğruluk odaklı tasarım, NMS'yi tamamen ortadan kaldırarak gömülü çiplerde çıkarım gecikmesini önemli ölçüde azaltır.
NMS'nin Kaldırılmasının Etkisi
NMS, Nöral İşlem Birimlerinde (NPU'lar) hızlandırılması genellikle karmaşık bir işlemdir. Bunu kaldırarak, YOLOv10 tüm model grafiğinin özel donanımlarda sorunsuz bir şekilde yürütülmesine olanak tanır, bu da OpenVINO ve TensorRT gibi optimizasyon çerçeveleriyle uyumluluğu önemli ölçüde artırır.
Performans Metrikleri ve Karşılaştırma
Üretim için modelleri değerlendirirken, doğruluk ile hesaplama yükünü dengelemek kritik öneme sahiptir. Aşağıdaki tablo, YOLOX ve YOLOv10'un çeşitli ölçekleri arasındaki dengeyi göstermektedir.
| Model | boyut (piksel) | mAPval 50-95 | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametreler (M) | FLOP'lar (B) |
|---|---|---|---|---|---|---|
| YOLOXnano | 416 | 25.8 | - | - | 0.91 | 1.08 |
| YOLOXtiny | 416 | 32.8 | - | - | 5.06 | 6.45 |
| YOLOXs | 640 | 40.5 | - | 2.56 | 9.0 | 26.8 |
| YOLOXm | 640 | 46.9 | - | 5.43 | 25.3 | 73.8 |
| YOLOXl | 640 | 49.7 | - | 9.04 | 54.2 | 155.6 |
| YOLOXx | 640 | 51.1 | - | 16.1 | 99.1 | 281.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 |
Verileri Analiz Etme
Metrikler, YOLOv10'un nesiller arası sıçramasını açıkça göstermektedir. Örneğin, YOLOv10-S, YOLOX-m'nin %46,9'una kıyasla %46,7'lik bir ortalama hassasiyet (mAP) elde eder, ancak bunu parametrelerin üçte birinden daha azını (7,2M'ye karşı 25,3M) ve önemli ölçüde daha az FLOP kullanarak yapar. Ayrıca, en üst düzey YOLOv10-X modeli mAP'yi %54,4'e çıkararak, zorlu doğruluk görevleri için oldukça rekabetçi hale gelirken, eski YOLOX-x mimarisinden daha hızlı kalır.
Ultralytics Ekosisteminin Avantajı
YOLOX sağlam bir açık kaynak araştırma uygulaması olmaya devam ederken, YOLOv10'u benimsemek Ultralytics tarafından sağlanan iyi yönetilen ekosisteme anında erişim sağlar. Ultralytics destekli bir model seçmek, basit bir API ve kapsamlı dokümantasyon ile karakterize edilen sorunsuz bir kullanıcı deneyimi sunar.
Geliştiriciler, çerçevenin bellek gereksinimlerinden büyük ölçüde faydalanır; Ultralytics modellerini eğitmek, RT-DETR gibi ağır transformatör tabanlı alternatiflerden çok daha az CUDA belleği tüketir. Bu verimli eğitim ayak izi, tüketici sınıfı donanımlarda daha büyük yığın boyutlarına olanak tanıyarak veri toplama ile model dağıtımı arasındaki süreyi hızlandırır. Ayrıca, çerçeve eşsiz çok yönlülük sunar ve kullanıcıların minimum kod değişikliğiyle object detection, instance segmentation ve pose estimation arasında sorunsuz geçiş yapmasına olanak tanır.
Eğitim ve Çıkarım Örneği
Birleşik API, fikirleri doğrulamayı inanılmaz derecede hızlı hale getirir. Aşağıdaki kod parçacığı, PyTorch arka ucunu kullanarak bir YOLOv10 modelini ne kadar kolay eğitebileceğinizi ve dağıtabileceğinizi göstermektedir:
from ultralytics import YOLO
# Load a pre-trained YOLOv10 nano model
model = YOLO("yolov10n.pt")
# Train the model on the COCO8 dataset
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference on a sample image
predictions = model.predict("https://ultralytics.com/images/bus.jpg")
# Export the model for edge deployment
model.export(format="engine", half=True)
Yerleşik dışa aktarma rutinlerinden yararlanarak, modelleri TensorRT veya ONNX gibi formatlara dönüştürmek yalnızca tek bir kod satırı gerektirir ve karmaşık derleme engellerini tamamen ortadan kaldırır.
İdeal Kullanım Durumları ve Dağıtım Senaryoları
Bu mimariler arasında seçim yapmak büyük ölçüde donanım kısıtlamalarınıza ve belirli alan gereksinimlerinize bağlıdır.
Gerçek Zamanlı Video Analizi
Otonom sürüş veya gerçek zamanlı trafik izleme gibi ultra düşük gecikme süresi gerektiren uygulamalar için YOLOv10 üstün bir seçimdir. Uçtan uca NMS içermeyen tasarımı, değişken işlem sonrası gecikmenin tolere edilemediği güvenlik sistemleri için kritik olan deterministik yürütme süreleri sağlar. Modeller, NVIDIA Jetson serisi gibi cihazlarda kolayca yüksek kare hızlarına ulaşır.
Akademik Temeller ve Uç Mikrodenetleyiciler
YOLOX, araştırmacıların etiket atama stratejileriyle denemeler yapmak için temiz, ayrık başlı bir temel aradığı akademik ortamlarda hala değerini korumaktadır. Ayrıca, donanımın standart evrişim işlemlerini desteklemesi koşuluyla, son derece küçük YOLOX-Nano (1 milyon parametrenin altında), belleğin kilobayt cinsinden ölçüldüğü oldukça kısıtlı kenar mikrodenetleyicilere sığdırılabilir.
Nihai Standart: Ultralytics YOLO26
YOLOv10, NMS'yi kaldırarak büyük bir sıçrama yaparken, bilgisayar görüşü alanı hızla ilerlemektedir. Bugün mutlak en iyi performansı uygulamayı hedefleyen geliştiriciler için YOLO26'yı keşfetmelerini şiddetle tavsiye ediyoruz.
Vizyon yapay zekasında en son standart olarak piyasaya sürülen YOLO26, öncüllerinin temel fikirlerini alır ve onları süper şarj eder. detect, segment, pose ve yönlendirilmiş sınırlayıcı kutuları doğal olarak destekleyerek nihai performans dengesini sunar.
İşte YOLO26'nın modern bilgisayar görüşü işlem hatları için neden önerilen seçim olduğu:
- Uçtan Uca NMS İçermeyen Tasarım: YOLOv10'un çığır açan yenilikleri üzerine inşa edilen YOLO26, doğal olarak uçtan ucadır ve işlem sonrası darboğazlar olmadan daha hızlı, deterministik çıkarım süreleri garanti eder.
- %43'e Kadar Daha Hızlı CPU Çıkarımı: Özellikle kenar bilişim için optimize edilmiştir, mobil işlemcilerde ve ayrık GPU'ları olmayan cihazlarda olağanüstü performans sağlar.
- MuSGD Optimize Edici: Büyük Dil Modeli eğitiminden (özellikle Moonshot AI'nin Kimi K2'sinden) esinlenilen YOLO26, inanılmaz derecede kararlı eğitim ve hızlı yakınsama için SGD ve Muon'un bir hibritini kullanır.
- ProgLoss + STAL: Bu gelişmiş kayıp fonksiyonları, hava görüntüleme ve drone navigasyonu gibi zorlu alanlar için kritik olan küçük nesne tanımada önemli iyileştirmeler sağlar.
- DFL Kaldırma: Distribution Focal Loss'u kaldırarak, YOLO26 model grafiğini kenar ve düşük güçlü cihazlara sorunsuz dışa aktarım için basitleştirir.
- Göreve Özel İyileştirmeler: İster pose estimation için Residual Log-Likelihood Estimation (RLE) kullanıyor olun, ister OBB için özel açı kaybı kullanıyor olun, YOLO26 her büyük vizyon görevi için ince ayar yapılmıştır.
İşlem hatlarını mevcut en verimli eğitim ve dağıtım araçlarıyla yükseltmeye hazır geliştiriciler için, Ultralytics Platformu'na geçiş ve YOLO26'dan yararlanmak, yapay zekanın en ileri noktasında kalmanızı garanti eder. Daha eski ancak kararlı mimarilerle ilgilenen kullanıcılar, kapsamlı topluluk desteği ve kanıtlanmış sağlamlık için YOLO11 veya YOLOv8'i de inceleyebilirler.