YOLOv10: Gerçek Zamanlı Uçtan Uca Nesne Algılama#
Mayıs 2024'te çıkarılan ve Tsinghua University araştırmacılarının Ultralytics Python package üzerine inşa ettiği YOLOv10, önceki YOLO sürümlerindeki son işlem ve model mimarisi eksikliklerini gidererek gerçek zamanlı nesne tespiti için yeni bir yaklaşım sunar. Baskılayıcı olmayan maksimum bastırmayı (NMS) ortadan kaldırarak ve çeşitli model bileşenlerini optimize ederek, YOLOv10 çıktığı dönemde önemli ölçüde azaltılmış hesaplama yüküyle mükemmel bir performans elde etti. NMS içermeyen uçtan uca tasarımı, YOLO26 içinde daha da geliştirilmiş bir yaklaşımın öncülüğünü yapmıştır.

Watch: How to Train YOLOv10 on SKU-110k Dataset using Ultralytics | Retail Dataset
Genel Bakış#
Gerçek zamanlı nesne tespiti, düşük gecikmeyle görsellerdeki nesne kategorilerini ve konumlarını doğru bir şekilde tahmin etmeyi amaçlar. YOLO serisi, performans ve verimlilik arasındaki denge nedeniyle bu araştırmanın ön saflarında yer almıştır. Bununla birlikte, NMS'ye olan bağımlılık ve mimari verimsizlikler optimum performansı engellemiştir. YOLOv10, NMS'siz eğitim için consistent dual assignments ve bütünsel bir verimlilik-doğruluk odaklı model tasarım stratejisi sunarak bu sorunları çözer.
Mimari#
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:
- Backbone: feature extraction işlemlerinden sorumlu olan YOLOv10 içindeki omurga, gradyan akışını iyileştirmek ve hesaplama yükü tekrarını azaltmak için CSPNet'in (Cross Stage Partial Network) gelişmiş bir sürümünü kullanır.
- 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.
- 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.
- 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.
Temel Özellikler#
- NMS-Free Training: NMS ihtiyacını ortadan kaldırmak için tutarlı ikili atamalar kullanır ve inference latency değerini azaltır.
- 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.
- Enhanced Model Capabilities: Önemli bir hesaplama maliyeti olmaksızın performansı artırmak için büyük çekirdekli convolutions ve kısmi öz-dikkat modülleri içerir.
Model 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.
Performans#
YOLOv10, doğruluk ve verimlilik açısından önceki YOLO sürümlerini ve diğer son teknoloji modelleri geride bırakır. Örneğin YOLOv10s, COCO veri setinde benzer AP ile RT-DETR-R18 modelinden 1.8 kat daha hızlıdır ve YOLOv10b, aynı performansla YOLOv9-C modeline kıyasla %46 daha az gecikmeye ve %25 daha az parametreye sahiptir.
Gecikme, T4 GPU üzerinde TensorRT FP16 ile ölçülmüştür.
| Model | Giriş Boyutu | APval | FLOPs (G) | Gecikme (ms) |
|---|---|---|---|---|
| [YOLOv10n][1] | 640 | 38.5 | 6.7 | 1.84 |
| [YOLOv10s][2] | 640 | 46.3 | 21.6 | 2.49 |
| [YOLOv10m][3] | 640 | 51.1 | 59.1 | 4.74 |
| [YOLOv10b][4] | 640 | 52.5 | 92.0 | 5.74 |
| [YOLOv10l][5] | 640 | 53.2 | 120.3 | 7.28 |
| [YOLOv10x][6] | 640 | 54.4 | 160.4 | 10.70 |
Metodoloji#
NMS'siz Eğitim için Tutarlı İkili Atamalar#
YOLOv10, zengin gözetim ve verimli uçtan uca dağıtım sağlamak için eğitim sırasında çoktan aza ve bire bir stratejileri birleştiren ikili etiket atamaları kullanır. Tutarlı eşleştirme metriği, her iki strateji arasındaki gözetimi hizalayarak inference sırasında tahminlerin kalitesini artırır.
Bütünsel Verimlilik-Accuracy Odaklı Model Tasarımı#
Verimlilik İyileştirmeleri#
- 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.
- 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.
- 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.
Doğruluk İyileştirmeleri#
- Large-Kernel Convolution: Özellik çıkarma yeteneğini geliştirmek için receptive field alanını genişletir.
- Kısmi Öz-Dikkat (PSA): Minimum yükle küresel temsil öğrenimini iyileştirmek için öz-dikkat modüllerini bünyesine katar.
Deneyler ve Sonuçlar#
COCO gibi standart kıyaslama testlerinde kapsamlı bir şekilde test edilen YOLOv10, üstün performans ve verimlilik göstermiştir. Model, farklı varyantlarda en son teknoloji sonuçlarına ulaşarak önceki sürümlere ve diğer çağdaş dedektörlere kıyasla gecikme ve doğrulukta önemli gelişmeler sergilemektedir.
Karşılaştırmalar#

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× / 2.3× daha az parametreyle YOLOv8l / x modellerini 0.3 AP / 0.5 AP oranında geride bırakır
İşte YOLOv10 varyantlarının diğer güncel modellerle ayrıntılı bir karşılaştırması:
| Model | Parametreler (M) | FLOPs (G) | mAPval 50-95 | Gecikme (ms) | İleri Gecikme (ms) |
|---|---|---|---|---|---|
| YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
| Gold-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
| YOLOv8n | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
| YOLOv10n | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
| YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
| Gold-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
| YOLOv8s | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
| YOLOv10s | 7.2 | 21.6 | 46.8 | 2.49 | 2.39 |
| RT-DETR-R18 | 20.0 | 60.0 | 46.5 | 4.58 | 4.49 |
| YOLOv6-3.0-M | 34.9 | 85.8 | 49.1 | 5.63 | 4.56 |
| Gold-YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
| YOLOv8m | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
| YOLOv10m | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
| YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
| Gold-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
| YOLOv8l | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
| RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
| YOLOv10l | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
| YOLOv8x | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
| RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
| YOLOv10x | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Parametreler ve FLOP değerleri, Conv ve BatchNorm katmanlarını birleştiren ve yardımcı bire çok algılama kafasını kaldıran model.fuse() sonrasındaki birleştirilmiş model içindir. Önceden eğitilmiş denetim noktaları tam eğitim mimarisini korur ve daha yüksek sayılar gösterebilir.
Kullanım Örnekleri#
YOLOv10 ile yeni görselleri tahmin etmek için. Modeller ayrıca Ultralytics Platform aracılığıyla bulut GPU'larında eğitilebilir:
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:
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)Desteklenen Görevler ve Modlar#
YOLOv10 model serisi, her biri yüksek performanslı Object Detection için optimize edilmiş bir dizi model sunar. Bu modeller, değişen hesaplama ihtiyaçlarını ve doğruluk gereksinimlerini karşılayarak onları çok geniş bir uygulama yelpazesi için çok yönlü hale getirir.
| Model | Dosya Adları | Görevler | Eğitim | Doğrulama | Çıkarım | Dışa Aktar (Export) |
|---|---|---|---|---|---|---|
| YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt | Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
YOLOv10'u Dışa Aktarma#
YOLOv10 ile sunulan 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 aktarımı desteğini eklemek amacıyla provide a contribution change yapabilecekseniz çekme isteği (pull request) açmaktan çekinme.
| Dışa Aktarma Formatı | Dışa Aktarma Desteği | Dışa Aktarılan Model Çıkarımı | Notlar |
|---|---|---|---|
| TorchScript | ✅ | ✅ | Standart PyTorch model formatı. |
| ONNX | ✅ | ✅ | Dağıtım için geniş çapta desteklenir. |
| OpenVINO | ✅ | ✅ | Intel donanımı için optimize edilmiştir. |
| TensorRT | ✅ | ✅ | NVIDIA GPU'lar için optimize edilmiştir. |
| CoreML | ✅ | ✅ | Apple cihazları ile sınırlıdır. |
| TF SavedModel | ✅ | ✅ | TensorFlow standart model formatı. |
| TF GraphDef | ✅ | ✅ | Eski TensorFlow formatı. |
| LiteRT | ✅ | ✅ | Mobil, gömülü sistemler ve tarayıcı (LiteRT.js) için optimize edilmiştir. |
| TF Edge TPU | ✅ | ✅ | Google'ın Edge TPU cihazlarına özeldir. |
| PaddlePaddle | ❌ | ❌ | Çin'de popüler; küresel destek daha az. |
| NCNN | ✅ | ❌ | Layer torch.topk not exists or registered |
Sonuç#
YOLOv10, önceki YOLO sürümlerinin eksiklerini gidererek ve yenilikçi tasarım stratejilerini bir araya getirerek piyasaya çıktığı anda gerçek zamanlı nesne tespiti konusunda yeni bir standart belirlemiştir. NMS'siz yaklaşımı, YOLO ailesinde uçtan uca nesne tespitinin öncülüğünü yapmıştır. Gelişmiş performans ve NMS'siz çıkarım sunan en son Ultralytics modeli için bkz. YOLO26.
Alıntılar ve Teşekkür#
Kapsamlı araştırmaları ve Ultralytics çatı yazılımına yaptıkları önemli katkılardan dolayı Tsinghua University kaynaklı YOLOv10 yazarlarına teşekkür ederiz:
@inproceedings{wang2024yolov10,
title={YOLOv10: Real-Time End-to-End Object Detection},
author={Wang, Ao and Chen, Hui and Liu, Lihao and Chen, Kai and Lin, Zijia and Han, Jungong and Ding, Guiguang},
booktitle={Advances in Neural Information Processing Systems},
doi = {10.52202/079017-3429},
url = {https://proceedings.neurips.cc/paper_files/paper/2024/file/c34ddd05eb089991f06f3c5dc36836e0-Paper-Conference.pdf},
volume={37},
pages={107984--108011},
year={2024}
}Ayrıntılı uygulama, mimari yenilikler ve deneysel sonuçlar için lütfen Tsinghua University ekibinin hazırladığı YOLOv10 research paper ve GitHub repository sayfalarını incele.
SSS#
YOLOv10 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 birkaç temel yenilik getirir. 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 maksimum olmayan bastırma (NMS) ihtiyacını ortadan kaldırır. Mimarisi ve temel özellikleri hakkında daha fazla ayrıntı için YOLOv10 overview bölümüne göz at.
YOLOv10 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:
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 Usage Examples bölümümüzü ziyaret et.
YOLOv10 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 varyant, 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 Variants bölümünü incele.
YOLOv10'daki NMS içermeyen yaklaşım performansı nasıl artırır?#
YOLOv10, eğitim için tutarlı ikili atamalar kullanarak çıkarım (inference) sırasında maksimum olmayan bastırma (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 tahmini almasını sağlamak için çıkarım amacıyla bire bir başlık (head) içerir. Ayrıntılı bir açıklama için Consistent Dual Assignments for NMS-Free Training bölümüne göz at.
YOLOv10 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. Bununla birlikte, yeni işlemleri nedeniyle Ultralytics tarafından sağlanan tüm dışa aktarma formatları şu anda YOLOv10 için desteklenmemektedir. Desteklenen formatlar ve dışa aktarma talimatları hakkında ayrıntılar için Exporting YOLOv10 bölümünü ziyaret et.
YOLOv10 modellerinin performans kıyaslamaları nelerdir?#
YOLOv10, hem doğruluk hem de verimlilik açısından önceki YOLO sürümlerini ve diğer son teknoloji modelleri geride bırakır. Örneğin YOLOv10s, COCO veri setinde benzer bir AP ile RT-DETR-R18 modelinden 1.8 kat daha hızlıdır. YOLOv10b, aynı performansla YOLOv9-C modeline kıyasla %46 daha az gecikme ve %25 daha az parametre gösterir. Ayrıntılı kıyaslamalar Comparisons bölümünde bulunabilir.