Meet YOLO26: next-gen vision AI.

Link to this sectionYOLOv10: Gerçek Zamanlı Uçtan Uca Nesne Algılama#

YOLOv10, released in May 2024 and built on the Ultralytics Python package by researchers at Tsinghua University, introduces a new approach to real-time object detection, addressing both the post-processing and model architecture deficiencies found in previous YOLO versions. By eliminating non-maximum suppression (NMS) and optimizing various model components, YOLOv10 achieved excellent performance with significantly reduced computational overhead at its time of release. Its NMS-free end-to-end design pioneered an approach that has been further developed in YOLO26.

YOLOv10 NMS içermeyen eğitim için tutarlı ikili atama



Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset

Link to this sectionGenel Bakış#

Gerçek zamanlı nesne algılama, görüntülerdeki nesne kategorilerini ve konumlarını düşük gecikme süresiyle doğru bir şekilde tahmin etmeyi amaçlar. YOLO serisi, performans ve verimlilik arasındaki dengesi sayesinde bu araştırmaların ön saflarında yer almıştır. Ancak, NMS'ye olan bağımlılık ve mimari verimsizlikler optimum performansı engellemiştir. YOLOv10, NMS'siz eğitim için tutarlı ikili atamalar ve bütünsel bir verimlilik-doğruluk odaklı model tasarım stratejisi sunarak bu sorunları çözmektedir.

Link to this sectionMimari#

YOLOv10'un mimarisi, önceki YOLO modellerinin güçlü yönleri üzerine inşa edilirken birkaç önemli yeniliği beraberinde getiriyor. Model mimarisi şu bileşenlerden oluşur:

  1. Backbone: Özellik çıkarımından sorumlu olan YOLOv10 backbone yapısı, gradyan akışını iyileştirmek ve hesaplama fazlalığını azaltmak için CSPNet'in (Cross Stage Partial Network) geliştirilmiş bir sürümünü kullanır.
  2. Neck: Farklı ölçeklerden özellikleri toplayıp head kısmına iletmek üzere tasarlanmıştır. Etkili çok ölçekli özellik füzyonu için PAN (Path Aggregation Network) katmanlarını içerir.
  3. One-to-Many Head: Eğitim sırasında nesne başına birden fazla tahmin üreterek zengin denetim sinyalleri sağlar ve öğrenme doğruluğunu artırır.
  4. One-to-One Head: Çıkarım sırasında nesne başına tek bir en iyi tahmin üreterek NMS ihtiyacını ortadan kaldırır, böylece gecikmeyi azaltır ve verimliliği artırır.

Link to this sectionTemel Özellikler#

  1. NMS-Free Training: NMS ihtiyacını ortadan kaldırmak için tutarlı ikili atamalar kullanır ve çıkarım gecikmesini düşürür.
  2. Bütünsel Model Tasarımı: Hafif sınıflandırma başlıkları, uzamsal-kanal ayrıştırılmış aşağı örnekleme ve sıralama kılavuzlu blok tasarımı dahil olmak üzere, çeşitli bileşenlerin hem verimlilik hem de doğruluk açısından kapsamlı bir şekilde optimize edilmesidir.
  3. Gelişmiş Model Yetenekleri: Performansı önemli bir hesaplama maliyeti olmadan artırmak için büyük çekirdekli konvolüsyonları ve kısmi öz-dikkat modüllerini birleştirir.

Link to this sectionModel Varyantları#

YOLOv10, farklı uygulama ihtiyaçlarını karşılamak için çeşitli model ölçeklerinde gelir:

  • YOLOv10n: Son derece kısıtlı kaynaklara sahip ortamlar için Nano sürüm.
  • YOLOv10s: Hız ve doğruluğu dengeleyen Small sürüm.
  • YOLOv10m: Genel amaçlı kullanım için Medium sürüm.
  • YOLOv10b: Daha yüksek doğruluk için artırılmış genişliğe sahip dengeli sürüm.
  • YOLOv10l: Artan hesaplama kaynakları pahasına daha yüksek doğruluk sağlayan Large sürüm.
  • YOLOv10x: Maksimum doğruluk ve performans için Extra-large sürüm.

Link to this sectionPerformans#

YOLOv10, doğruluk ve verimlilik açısından önceki YOLO sürümlerinden ve diğer güncel modellerden daha iyi performans gösterir. Örneğin YOLOv10s, COCO veri setinde benzer bir AP ile RT-DETR-R18 modelinden 1.8 kat daha hızlıdır ve YOLOv10b, aynı performansla YOLOv9-C modelinden %46 daha düşük gecikmeye ve %25 daha az parametreye sahiptir.

Performans

Gecikme, T4 GPU üzerinde TensorRT FP16 ile ölçülmüştür.

ModelGiriş BoyutuAPvalFLOPs (G)Gecikme (ms)
[YOLOv10n][1]64038.56.71.84
[YOLOv10s][2]64046.321.62.49
[YOLOv10m][3]64051.159.14.74
[YOLOv10b][4]64052.592.05.74
[YOLOv10l][5]64053.2120.37.28
[YOLOv10x][6]64054.4160.410.70

Link to this sectionMetodoloji#

Link to this sectionNMS'siz Eğitim için Tutarlı İkili Atamalar#

YOLOv10, zengin denetim ve verimli uçtan uca dağıtım sağlamak için eğitim sırasında bire-çok ve bire-bir stratejilerini birleştiren ikili etiket atamaları kullanır. Tutarlı eşleştirme metriği, her iki strateji arasındaki denetimi hizalar ve çıkarım sırasında tahminlerin kalitesini artırır.

Link to this sectionBütünsel Verimlilik-Doğruluk Odaklı Model Tasarımı#

Link to this sectionVerimlilik İyileştirmeleri#

  1. Hafif Sınıflandırma Başlığı: Derinliksel ayrılabilir konvolüsyonlar kullanarak sınıflandırma başlığının hesaplama yükünü azaltır.
  2. Uzamsal-Kanal Ayrıştırılmış Aşağı Örnekleme: Bilgi kaybını ve hesaplama maliyetini en aza indirmek için uzamsal indirgeme ve kanal modülasyonunu ayırır.
  3. Sıralama Kılavuzlu Blok Tasarımı: Blok tasarımını içsel aşama yedekliliğine göre uyarlayarak optimum parametre kullanımını sağlar.

Link to this sectionDoğruluk İyileştirmeleri#

  1. Büyük Çekirdekli Konvolüsyon: Özellik çıkarma yeteneğini geliştirmek için alıcı alanı genişletir.
  2. Kısmi Öz-Dikkat (PSA): Minimum yükle küresel temsil öğrenimini iyileştirmek için öz-dikkat modüllerini bünyesine katar.

Link to this sectionDeneyler ve Sonuçlar#

YOLOv10, COCO gibi standart kıyaslamalarda kapsamlı bir şekilde test edilmiş ve üstün performans ve verimlilik sergilemiştir. Model, önceki sürümlere ve diğer çağdaş dedektörlere kıyasla gecikme ve doğrulukta önemli iyileştirmeler sergileyerek farklı varyantlarda en ileri düzey sonuçlara ulaşmıştır.

Link to this sectionKarşılaştırmalar#

YOLOv10'un SOTA nesne dedektörleriyle karşılaştırması

Diğer güncel dedektörlerle karşılaştırıldığında:

  • YOLOv10s / x, benzer doğrulukla RT-DETR-R18 / R101'den 1.8 kat / 1.3 kat daha hızlıdır
  • YOLOv10b, aynı doğrulukta YOLOv9-C'den %25 daha az parametreye ve %46 daha düşük gecikmeye sahiptir
  • YOLOv10l / x, 1.8 kat / 2.3 kat daha az parametre ile YOLOv8l / x modellerinden 0.3 AP / 0.5 AP daha iyi performans gösterir
Performans

İşte YOLOv10 varyantlarının diğer güncel modellerle ayrıntılı bir karşılaştırması:

ModelParametreler
(M)
FLOPs
(G)
mAPval
50-95
Gecikme
(ms)
İleri Gecikme
(ms)
YOLOv6-3.0-N4.711.437.02.691.76
Gold-YOLO-N5.612.139.62.921.82
YOLOv8n3.28.737.36.161.77
YOLOv10n2.36.739.51.841.79
YOLOv6-3.0-S18.545.344.33.422.35
Gold-YOLO-S21.546.045.43.822.73
YOLOv8s11.228.644.97.072.33
YOLOv10s7.221.646.82.492.39
RT-DETR-R1820.060.046.54.584.49
YOLOv6-3.0-M34.985.849.15.634.56
Gold-YOLO-M41.387.549.86.385.45
YOLOv8m25.978.950.69.505.09
YOLOv10m15.459.151.34.744.63
YOLOv6-3.0-L59.6150.751.89.027.90
Gold-YOLO-L75.1151.751.810.659.78
YOLOv8l43.7165.252.912.398.06
RT-DETR-R5042.0136.053.19.209.07
YOLOv10l24.4120.353.47.287.21
YOLOv8x68.2257.853.916.8612.83
RT-DETR-R10176.0259.054.313.7113.58
YOLOv10x29.5160.454.410.7010.60

Params ve FLOPs değerleri, model.fuse() ile Conv ve BatchNorm katmanlarını birleştiren ve yardımcı bire-çok tespit başlığını kaldıran fuse edilmiş model içindir. Önceden eğitilmiş kontrol noktaları tam eğitim mimarisini korur ve daha yüksek sayılar gösterebilir.

Link to this sectionKullanım Örnekleri#

YOLOv10 ile yeni görüntüleri tahmin etmek için. Modeller ayrıca Ultralytics Platform üzerinden bulut GPU'larında eğitilebilir:

Örnek
from ultralytics import YOLO

# Load a pretrained YOLOv10n model
model = YOLO("yolov10n.pt")

# Perform object detection on an image
results = model("image.jpg")

# Display the results
results[0].show()

YOLOv10'u özel bir veri setinde eğitmek için:

Örnek
from ultralytics import YOLO

# Load YOLOv10n model from scratch
model = YOLO("yolov10n.yaml")

# Train the model
model.train(data="coco8.yaml", epochs=100, imgsz=640)

Link to this sectionDesteklenen Görevler ve Modlar#

YOLOv10 model serisi, her biri yüksek performanslı Nesne Tespiti için optimize edilmiş bir dizi model sunar. Bu modeller, değişen hesaplama ihtiyaçlarını ve doğruluk gereksinimlerini karşılayarak çok çeşitli uygulamalar için çok yönlü olmalarını sağlar.

ModelDosya AdlarıGörevlerÇıkarımDoğrulamaEğitimDışa Aktar (Export)
YOLOv10yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.ptNesne Tespiti

Link to this sectionYOLOv10'u Dışa Aktarma#

YOLOv10 ile tanıtılan yeni işlemler nedeniyle, Ultralytics tarafından sağlanan tüm dışa aktarma formatları şu anda desteklenmemektedir. Aşağıdaki tablo, YOLOv10 için Ultralytics kullanılarak hangi formatların başarıyla dönüştürüldüğünü göstermektedir. YOLOv10 için ek formatların dışa aktarma desteğini eklemek adına katkı değişikliği sağlamak istersen bir pull request açmaktan çekinme.

Dışa Aktarma FormatıDışa Aktarma DesteğiDışa Aktarılan Model ÇıkarımıNotlar
TorchScriptStandart PyTorch model formatı.
ONNXDağıtım için geniş çapta desteklenir.
OpenVINOIntel donanımı için optimize edilmiştir.
TensorRTNVIDIA GPU'lar için optimize edilmiştir.
CoreMLApple cihazları ile sınırlıdır.
TF SavedModelTensorFlow'un standart model formatı.
TF GraphDefEski TensorFlow formatı.
TF LiteMobil ve gömülü sistemler için optimize edilmiştir.
TF Edge TPUGoogle'ın Edge TPU cihazlarına özeldir.
TF.jsTarayıcı kullanımı için JavaScript ortamı.
PaddlePaddleÇin'de popüler; küresel destek daha az.
NCNNtorch.topk katmanı mevcut değil veya kayıtlı değil

Link to this sectionSonuç#

YOLOv10, önceki YOLO sürümlerinin eksikliklerini gidererek ve yenilikçi tasarım stratejilerini birleştirerek piyasaya sürüldüğünde gerçek zamanlı nesne tespitinde yeni bir standart belirledi. NMS içermeyen yaklaşımı, YOLO ailesinde uçtan uca nesne tespitine öncülük etti. Gelişmiş performans ve NMS içermeyen çıkarıma sahip en son Ultralytics modeli için YOLO26 konusuna bak.

Link to this sectionAlıntılar ve Teşekkür#

Tsinghua University'den YOLOv10 yazarlarına, kapsamlı araştırmaları ve Ultralytics çerçevesine yaptıkları önemli katkılardan dolayı teşekkür ederiz:

Alıntı
@article{THU-MIGyolov10,
  title={YOLOv10: Real-Time End-to-End Object Detection},
  author={Ao Wang, Hui Chen, Lihao Liu, et al.},
  journal={arXiv preprint arXiv:2405.14458},
  year={2024},
  institution={Tsinghua University},
  license = {AGPL-3.0}
}

Ayrıntılı uygulama, mimari yenilikler ve deneysel sonuçlar için lütfen Tsinghua University ekibinin YOLOv10 araştırma makalesine ve GitHub deposuna başvur.

Link to this sectionSSS#

Link to this sectionYOLOv10 nedir ve önceki YOLO sürümlerinden farkı nedir?#

Tsinghua University araştırmacıları tarafından geliştirilen YOLOv10, gerçek zamanlı nesne tespitine birçok önemli yenilik getiriyor. Eğitim sırasında tutarlı ikili atamalar ve azaltılmış hesaplama yüküyle üstün performans için optimize edilmiş model bileşenleri kullanarak, NMS (non-maximum suppression) ihtiyacını ortadan kaldırır. Mimarisi ve temel özellikleri hakkında daha fazla ayrıntı için YOLOv10 genel bakış bölümüne göz at.

Link to this sectionYOLOv10 ile çıkarım çalıştırmaya nasıl başlayabilirim?#

Kolay çıkarım için Ultralytics YOLO Python kütüphanesini veya komut satırı arayüzünü (CLI) kullanabilirsin. Aşağıda YOLOv10 kullanarak yeni görüntüleri tahmin etme örnekleri bulunmaktadır:

Örnek
from ultralytics import YOLO

# Load the pretrained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()

Daha fazla kullanım örneği için Kullanım Örnekleri bölümümüzü ziyaret et.

Link to this sectionYOLOv10 hangi model çeşitlerini sunuyor ve kullanım durumları nelerdir?#

YOLOv10, farklı kullanım durumlarına hitap etmek için çeşitli model çeşitleri sunar:

  • YOLOv10n: Son derece kaynak kısıtlı ortamlar için uygundur
  • YOLOv10s: Hız ve doğruluğu dengeler
  • YOLOv10m: Genel amaçlı kullanım
  • YOLOv10b: Artırılmış genişlik ile daha yüksek doğruluk
  • YOLOv10l: Hesaplama kaynakları pahasına yüksek doğruluk
  • YOLOv10x: Maksimum doğruluk ve performans

Her bir çeşit farklı hesaplama ihtiyaçları ve doğruluk gereksinimleri için tasarlanmıştır, bu da onları çeşitli uygulamalar için çok yönlü kılar. Daha fazla bilgi için Model Çeşitleri bölümünü keşfet.

Link to this sectionYOLOv10'daki NMS içermeyen yaklaşım performansı nasıl artırır?#

YOLOv10, eğitim için tutarlı ikili atamalar kullanarak çıkarım sırasında NMS ihtiyacını ortadan kaldırır. Bu yaklaşım, çıkarım gecikmesini azaltır ve tahmin verimliliğini artırır. Mimari ayrıca, her nesnenin tek bir en iyi tahmin almasını sağlayan birebir (one-to-one) bir başlık içerir. Ayrıntılı açıklama için NMS-Free Eğitim İçin Tutarlı İkili Atamalar bölümüne bak.

Link to this sectionYOLOv10 modelleri için dışa aktarma seçeneklerini nerede bulabilirim?#

YOLOv10; TorchScript, ONNX, OpenVINO ve TensorRT dahil olmak üzere çeşitli dışa aktarma formatlarını destekler. Ancak, yeni işlemleri nedeniyle Ultralytics tarafından sağlanan tüm dışa aktarma formatları YOLOv10 için şu anda desteklenmemektedir. Desteklenen formatlar ve dışa aktarma talimatları hakkında ayrıntılar için YOLOv10'u Dışa Aktarma bölümünü ziyaret et.

Link to this sectionYOLOv10 modellerinin performans kıyaslamaları nelerdir?#

YOLOv10, hem doğruluk hem de verimlilik açısından önceki YOLO sürümlerinden ve diğer son teknoloji modellerden daha iyi performans gösterir. Örneğin, YOLOv10s, COCO veri setinde benzer bir AP ile RT-DETR-R18'den 1,8 kat daha hızlıdır. YOLOv10b, aynı performansla YOLOv9-C'ye göre %46 daha az gecikme ve %25 daha az parametre gösterir. Ayrıntılı kıyaslamalar Karşılaştırmalar bölümünde bulunabilir.

Yorumlar