Link to this sectionYOLOX ve YOLOv10#
Gerçek zamanlı bilgisayarlı görü modellerinin evrimi, önemli mimari sıçramalarla karakterize edilmiştir. Bu yolculuktaki iki kritik dönüm noktası YOLOX ve YOLOv10'dur. 2021'de piyasaya sürülen YOLOX, oldukça etkili bir çapasız (anchor-free) tasarım sunarak akademik araştırmalar ile endüstriyel uygulamalar arasındaki boşluğu başarıyla kapatmıştır. Üç yıl sonra YOLOv10, son işleme sırasında Non-Maximum Suppression (NMS) ihtiyacını ortadan kaldırarak verimlilik ve hız sınırlarını zorlamış ve bu alanda devrim yaratmış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 algılama projen için en doğru aracı seçmene yardımcı olacak içgörüler sunar.
Link to this sectionModel 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
Dokümanlar: https://github.com/Megvii-BaseDetection/YOLOX/tree/main/docs
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
Dokümanlar: https://docs.ultralytics.com/models/yolov10/
YOLOv10 hakkında daha fazla bilgi edin
Link to this sectionMimari Yenilikler#
YOLOX ve YOLOv10 arasındaki temel farklar, sınırlayıcı kutu (bounding box) tahminlerini ve son işlemeyi nasıl ele aldıklarında yatar.
Link to this sectionYOLOX: Çapasız (Anchor-Free) Tasarımın Öncüsü#
YOLOX, YOLO ailesini çapasız bir mimariye taşıyarak büyük ses getirdi. Önceden tanımlanmış çapa kutularına (anchor boxes) güvenmek yerine bir nesnenin merkezini tahmin ederek, YOLOX özel veri kümeleri için gereken tasarım parametrelerinin ve buluşsal ayarlamaların sayısını önemli ölçüde azalttı. Ayrıca, sınıflandırma ve regresyon görevlerini ayrı yollara ayıran ayrıştırılmış bir başlık (decoupled head) tanıttı. Bu yaklaşım, bir nesnenin ne olduğunun tanımlanması ile nerede olduğunun belirlenmesi arasındaki çatışmayı çözerek yakınsama hızında ve kesinlikte gözle görülür bir artış sağladı.
Link to this sectionYOLOv10: NMS-Free Devrimi#
YOLOX, algılama başlığını basitleştirmiş olsa da gereksiz sınırlayıcı kutu tahminlerini filtrelemek için hala NMS'e güveniyordu. YOLOv10 bu temel darboğazı ele aldı. Eğitim sırasında tutarlı ikili atamalar kullanarak YOLOv10, yerel uçtan uca algılama elde eder. Eğitim sırasında zengin denetleyici sinyaller sağlamak için çoktan çoğa (one-to-many) bir başlık kullanırken, çıkarım sırasında nihai tahminleri doğrudan çıktı vermek için bire bir (one-to-one) bir başlık kullanır. Bu bütünsel verimlilik-doğruluk odaklı tasarım, NMS'i tamamen ortadan kaldırarak gömülü çiplerdeki çıkarım gecikmesini önemli ölçüde azaltır.
Non-Maximum Suppression, NPU'lar (Neural Processing Units) üzerinde hızlandırılması genellikle karmaşık bir işlemdir. YOLOv10, bunu kaldırarak tüm model grafiğinin özel donanım üzerinde sorunsuz bir şekilde çalışmasını sağlar ve OpenVINO ve TensorRT gibi optimizasyon çerçeveleriyle uyumluluğu önemli ölçüde artırır.
Link to this sectionPerformans Metrikleri ve Karşılaştırma#
Modelleri üretim için değerlendirirken, doğruluk ile hesaplama yükünü dengelemek kritiktir. Aşağıdaki tablo, YOLOX ve YOLOv10'un çeşitli ölçekleri arasındaki takasları göstermektedir.
| Model | boyut (piksel) | mAPval 50-95 | Hız CPU ONNX (ms) | Hız T4 TensorRT10 (ms) | parametreler (M) | FLOPs (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 |
Link to this sectionVerileri Analiz Etme#
Metrikler, YOLOv10'un nesiller arası sıçramasını açıkça göstermektedir. Örneğin, YOLOv10-S, 46.7%'lik bir mean Average Precision değerine ulaşırken, YOLOX-m 46.9%'a ulaşır; ancak bunu parametrelerin üçte birinden daha azını (7.2M'ye karşılık 25.3M) ve önemli ölçüde daha az FLOP kullanarak yapar. Dahası, üst düzey YOLOv10-X modeli mAP değerini 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.
Link to this sectionUltralytics Ekosistemi Avantajı#
YOLOX sağlam bir açık kaynak araştırma uygulaması olarak kalsa da, YOLOv10'a geçmek Ultralytics tarafından sağlanan bakımlı 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 sağlar.
Geliştiriciler çerçevenin bellek gereksinimlerinden büyük ölçüde yararlanır; Ultralytics modellerini eğitmek genellikle RT-DETR gibi ağır Transformer tabanlı alternatiflerden çok daha az CUDA belleği tüketir. Bu verimli eğitim alanı, tüketici sınıfı donanımlarda daha büyük yığın boyutlarına izin vererek veri toplamadan model dağıtımına kadar geçen süreyi hızlandırır. Ayrıca çerçeve, kullanıcıların minimum kod değişikliğiyle nesne algılama, örnek bölümleme ve poz tahmini arasında sorunsuz bir şekilde geçiş yapmasına olanak tanıyan benzersiz bir çok yönlülük sunar.
Link to this sectionEğitim ve Çıkarım Örneği#
Birleşik API, fikirleri doğrulamayı inanılmaz derecede hızlı hale getirir. Aşağıdaki kod parçası, PyTorch altyapısını kullanarak bir YOLOv10 modelini ne kadar kolay eğitebileceğini ve dağıtabileceğini gösterir:
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", quantize=16)Dahili dışa aktarma rutinlerinden yararlanarak, modelleri TensorRT veya ONNX gibi formatlara dönüştürmek, karmaşık derleme engellerini tamamen aşarak sadece tek bir satır kod gerektirir.
Link to this sectionİ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ına ve belirli alan gereksinimlerine bağlıdır.
Link to this sectionGerçek Zamanlı Video Analitiği#
Otonom sürüş veya gerçek zamanlı trafik izleme gibi ultra düşük gecikme süresi gerektiren uygulamalar için YOLOv10 üstün tercihtir. Uçtan uca NMS-free tasarımı, değişken son işleme gecikmesinin tolere edilemediği güvenlik sistemleri için kritik olan deterministik yürütme sürelerini garanti eder. Modeller, NVIDIA Jetson serisi gibi cihazlarda kolayca yüksek kare hızlarına ulaşır.
Link to this sectionAkademik Temeller ve Uç Mikrodenetleyiciler#
YOLOX, araştırmacıların etiket atama stratejilerini denemek için temiz, ayrıştırılmış bir başlık temeli istediği akademik ortamlarda hala değerini korumaktadır. Ayrıca, son derece küçük YOLOX-Nano (1 milyon parametrenin altında), donanım standart evrişim işlemlerini desteklediği sürece belleğin kilobayt cinsinden ölçüldüğü son derece kısıtlı uç mikrodenetleyicilere sığdırılabilir.
Link to this sectionNihai Standart: Ultralytics YOLO26#
YOLOv10, NMS'i kaldırarak büyük bir sıçrama yapmış olsa da, bilgisayarlı görü alanı hızla ilerlemektedir. Bugün sınıfının en iyisi performansı uygulamayı hedefleyen geliştiriciler için YOLO26 platformunu keşfetmeni şiddetle öneririz.
Görüntü AI'daki en son standart olarak piyasaya sürülen YOLO26, öncüllerinin temel fikirlerini alır ve onları güçlendirir. Algılama, bölümleme, poz ve yönlendirilmiş sınırlayıcı kutuları yerel olarak destekleyerek nihai performans dengesini sunar.
İşte YOLO26'nın modern bilgisayarlı görü hatları için önerilen seçenek olmasının nedenleri:
- Uçtan Uca NMS-Free Tasarım: YOLOv10'un atılımlarını temel alan YOLO26, yerel olarak uçtan ucadır ve son işleme darboğazları olmaksızın daha hızlı, deterministik çıkarım sürelerini garanti eder.
- 43% Daha Hızlı CPU Çıkarımı: Uç bilişim için özel olarak optimize edilmiştir ve mobil işlemcilerde ve harici GPU'su olmayan cihazlarda olağanüstü performans sağlar.
- MuSGD Optimizer: Büyük Dil Modeli eğitiminden (özellikle Moonshot AI'ın Kimi K2'sinden) esinlenen YOLO26, inanılmaz derecede kararlı eğitim ve hızlı yakınsama için SGD ve Muon hibritini kullanır.
- ProgLoss + STAL: Bu gelişmiş kayıp fonksiyonları, hava görüntüleri ve drone navigasyonu gibi zorlu alanlar için kritik olan küçük nesne tanımada kayda değer iyileştirmeler sağlar.
- DFL Kaldırma: Distribution Focal Loss'u kaldırarak YOLO26, uç ve düşük güçlü cihazlara sorunsuz dışa aktarım için model grafiğini basitleştirir.
- Göreve Özel İyileştirmeler: Poz tahmini için Residual Log-Likelihood Estimation (RLE) veya OBB için özel açı kaybı kullanıyor olsan da, YOLO26 her büyük görü görevi için hassas bir şekilde ayarlanmıştır.
Hatlarını mevcut en verimli eğitim ve dağıtım araçlarıyla yükseltmeye hazır geliştiriciler için Ultralytics Platforma geçmek ve YOLO26'dan yararlanmak, yapay zekanın en ileri noktasında kalmanı 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 modellerini de inceleyebilirler.