YOLOv10: Gerçek Zamanlı Uçtan Uca Nesne Algılama
YOLOv10, şu temeller üzerine inşa edilmiştir UltralyticsPython Tsinghua Üniversitesi'ndeki araştırmacılar tarafından geliştirilen paket, gerçek zamanlı nesne tespitine yeni bir yaklaşım getirerek önceki YOLO sürümlerinde bulunan hem işlem sonrası hem de model mimarisi eksikliklerini gideriyor. Maksimum olmayan bastırmayı (NMS) ortadan kaldırarak ve çeşitli model bileşenlerini optimize ederek, YOLOv10 önemli ölçüde azaltılmış hesaplama ek yükü ile en son teknolojiye sahip performansa ulaşır. Kapsamlı deneyler, çoklu model ölçeklerinde üstün doğruluk-gecikme ödünleşimlerini göstermektedir.
İzle: Ultralytics | Perakende Veri Kümesi kullanılarak SKU-110k Veri Kümesi üzerinde YOLOv10 Nasıl Eğitilir
Genel Bakış
Gerçek zamanlı nesne tespiti, görüntülerdeki nesne kategorilerini ve konumlarını düşük gecikme süresiyle doğru bir şekilde tahmin etmeyi amaçlamaktadır. YOLO serisi, performans ve verimlilik arasındaki dengesi nedeniyle bu araştırmanın ön saflarında yer almıştır. Ancak, NMS'ye olan bağımlılık ve mimari yetersizlikler 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ı ele almaktadır.
Mimarlık
YOLOv10'un mimarisi, önceki YOLO modellerinin güçlü yönlerini temel alırken birkaç önemli yeniliği de beraberinde getirmektedir. Model mimarisi aşağıdaki bileşenlerden oluşmaktadır:
- Omurga: Özellik çıkarma işleminden sorumlu olan YOLOv10'daki omurga, gradyan akışını iyileştirmek ve hesaplama fazlalığını azaltmak için CSPNet'in (Cross Stage Partial Network) geliştirilmiş bir versiyonunu kullanır.
- Boyun: Boyun, farklı ölçeklerdeki özellikleri toplamak ve bunları başa iletmek için tasarlanmıştır. Etkili çok ölçekli özellik füzyonu için PAN (Path Aggregation Network) katmanları içerir.
- Birden Çok Kafaya: Zengin denetleyici sinyaller sağlamak ve öğrenme doğruluğunu artırmak için eğitim sırasında nesne başına birden çok tahmin üretir.
- Bire Bir Kafa: NMS ihtiyacını ortadan kaldırmak için çıkarım sırasında nesne başına tek bir en iyi tahmin üretir, böylece gecikmeyi azaltır ve verimliliği artırır.
Temel Özellikler
- NMS'siz Eğitim: NMS ihtiyacını ortadan kaldırmak için tutarlı ikili atamaları kullanır ve çıkarım gecikmesini azaltır.
- Bütünsel Model Tasarımı: Hafif sınıflandırma başlıkları, uzamsal kanal ayrıştırmalı aşağı örnekleme ve sıralama kılavuzlu blok tasarımı dahil olmak üzere çeşitli bileşenlerin hem verimlilik hem de doğruluk perspektiflerinden kapsamlı optimizasyonu.
- Geliştirilmiş Model Yetenekleri: Önemli bir hesaplama maliyeti olmadan performansı artırmak için büyük çekirdekli konvolüsyonlar 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:
- YOLOv10-N: Son derece kısıtlı kaynaklara sahip ortamlar için nano versiyon.
- YOLOv10-S: Hız ve doğruluğu dengeleyen küçük versiyon.
- YOLOv10-M: Genel amaçlı kullanım için orta versiyon.
- YOLOv10-B: Daha yüksek doğruluk için genişliği artırılmış dengeli versiyon.
- YOLOv10-L: Artan hesaplama kaynakları pahasına daha yüksek doğruluk için büyük versiyon.
- YOLOv10-X: Maksimum doğruluk ve performans için ekstra büyük versiyon.
Performans
YOLOv10, doğruluk ve verimlilik açısından önceki YOLO sürümlerinden ve diğer son teknoloji modellerden daha iyi performans göstermektedir. Örneğin, YOLOv10-S, COCO veri setinde benzer AP ile RT-DETR-R18'den 1,8 kat daha hızlıdır ve YOLOv10-B, aynı performansla YOLOv9-C'den %46 daha az gecikmeye ve %25 daha az parametreye sahiptir.
Model | Giriş Boyutu | APval | FLOP'lar (G) | Gecikme Süresi (ms) |
---|---|---|---|---|
YOLOv10-N | 640 | 38.5 | 6.7 | 1.84 |
YOLOv10-S | 640 | 46.3 | 21.6 | 2.49 |
YOLOv10-M | 640 | 51.1 | 59.1 | 4.74 |
YOLOv10-B | 640 | 52.5 | 92.0 | 5.74 |
YOLOv10-L | 640 | 53.2 | 120.3 | 7.28 |
YOLOv10-X | 640 | 54.4 | 160.4 | 10.70 |
T4 GPU üzerinde TensorRT FP16 ile ölçülen gecikme süresi.
Metodoloji
NMS'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 stratejileri birleştirerek ikili etiket atamaları kullanır. Tutarlı eşleştirme metriği, her iki strateji arasındaki denetimi hizalayarak çıkarım sırasında tahminlerin kalitesini artırır.
Bütünsel Verimlilik-Doğruluk Odaklı Model Tasarımı
Verimlilik İyileştirmeleri
- Hafif Sınıflandırma Kafası: Derinlik bazlı ayrılabilir konvolüsyonlar kullanarak sınıflandırma kafasının hesaplama yükünü azaltır.
- Uzamsal-Kanal Ayrıştırmalı Aşağı örnekleme: Bilgi kaybını ve hesaplama maliyetini en aza indirmek için uzamsal azaltma ve kanal modülasyonunu ayırır.
- Sıralama Kılavuzlu Blok Tasarımı: Blok tasarımını içsel aşama fazlalığına göre uyarlayarak optimum parametre kullanımını sağlar.
Doğruluk Geliştirmeleri
- Büyük Çekirdekli Evrişim: Özellik çıkarma kapasitesini artırmak için alıcı alanı genişletir.
- Kısmi Öz Dikkat (PSA): Minimum ek yük ile küresel temsil öğrenimini iyileştirmek için öz dikkat modüllerini içerir.
Deneyler ve Sonuçlar
YOLOv10, COCO gibi standart ölçütler üzerinde kapsamlı bir şekilde test edilmiş ve üstün performans ve verimlilik göstermiştir. Model, farklı varyantlarda son teknoloji ürünü sonuçlar elde ederek ö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 son teknoloji dedektörlerle karşılaştırıldığında:
- YOLOv10-S / X, benzer doğrulukla RT-DETR-R18 / R101'den 1,8 × / 1,3 × daha hızlıdır
- YOLOv10-B, aynı doğrulukta YOLOv9-C'ye göre %25 daha az parametre ve %46 daha düşük gecikme süresine sahiptir
- YOLOv10-L / X, 1,8 × / 2,3 × daha az parametre ile YOLOv8-L / X'den 0,3 AP / 0,5 AP daha iyi performans gösterir
İşte YOLOv10 varyantlarının diğer son teknoloji modellerle ayrıntılı bir karşılaştırması:
Model | Params (M) |
FLOP'lar (G) |
mAPval 50-95 |
Gecikme (ms) |
Gecikme-ileri (ms) |
---|---|---|---|---|---|
YOLOv6-3.0-N | 4.7 | 11.4 | 37.0 | 2.69 | 1.76 |
Altın-YOLO-N | 5.6 | 12.1 | 39.6 | 2.92 | 1.82 |
YOLOv8-N | 3.2 | 8.7 | 37.3 | 6.16 | 1.77 |
YOLOv10-N | 2.3 | 6.7 | 39.5 | 1.84 | 1.79 |
YOLOv6-3.0-S | 18.5 | 45.3 | 44.3 | 3.42 | 2.35 |
Altın-YOLO-S | 21.5 | 46.0 | 45.4 | 3.82 | 2.73 |
YOLOv8-S | 11.2 | 28.6 | 44.9 | 7.07 | 2.33 |
YOLOv10-S | 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 |
Altın-YOLO-M | 41.3 | 87.5 | 49.8 | 6.38 | 5.45 |
YOLOv8-M | 25.9 | 78.9 | 50.6 | 9.50 | 5.09 |
YOLOv10-M | 15.4 | 59.1 | 51.3 | 4.74 | 4.63 |
YOLOv6-3.0-L | 59.6 | 150.7 | 51.8 | 9.02 | 7.90 |
Altın-YOLO-L | 75.1 | 151.7 | 51.8 | 10.65 | 9.78 |
YOLOv8-L | 43.7 | 165.2 | 52.9 | 12.39 | 8.06 |
RT-DETR-R50 | 42.0 | 136.0 | 53.1 | 9.20 | 9.07 |
YOLOv10-L | 24.4 | 120.3 | 53.4 | 7.28 | 7.21 |
YOLOv8-X | 68.2 | 257.8 | 53.9 | 16.86 | 12.83 |
RT-DETR-R101 | 76.0 | 259.0 | 54.3 | 13.71 | 13.58 |
YOLOv10-X | 29.5 | 160.4 | 54.4 | 10.70 | 10.60 |
Kullanım Örnekleri
YOLOv10 ile yeni görüntüleri tahmin etmek için:
Örnek
YOLOv10'u özel bir veri kümesi üzerinde eğitmek için:
Örnek
Desteklenen Görevler ve Modlar
YOLOv10 model serisi, her biri yüksek performanslı Nesne Algılama için optimize edilmiş bir dizi model sunar. Bu modeller, farklı hesaplama ihtiyaçları ve doğruluk gereksinimlerini karşılayarak onları çok çeşitli uygulamalar için çok yönlü hale getirir.
Model | Dosya adları | Görevler | Çıkarım | Doğrulama | Eğitim | İhracat |
---|---|---|---|---|---|---|
YOLOv10 | yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.pt |
Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
YOLOv10'u Dışa Aktarma
YOLOv10 ile getirilen yeni işlemler nedeniyle, Ultralytics tarafından sağlanan tüm dışa aktarma biçimleri ş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ü özetlemektedir. YOLOv10 için ek formatların dışa aktarım desteğini eklemek için bir katkı değişikliği sağlayabiliyorsanız, bir çekme isteği açmaktan çekinmeyin.
Dışa Aktarma Formatı | İhracat Desteği | Dışa Aktarılan Model Çıkarsaması | Notlar |
---|---|---|---|
TorchScript | ✅ | ✅ | Standart PyTorch model formatı. |
ONNX | ✅ | ✅ | Dağıtım için yaygın olarak desteklenir. |
OpenVINO | ✅ | ✅ | Intel donanımı için optimize edilmiştir. |
TensorRT | ✅ | ✅ | NVIDIA GPU'lar için optimize edilmiştir. |
CoreML | ✅ | ✅ | Apple cihazlarıyla sınırlıdır. |
TF SavedModel | ✅ | ✅ | TensorFlow'in standart model formatına uygundur. |
TF GraphDef | ✅ | ✅ | Eski TensorFlow formatı. |
TF Lite | ✅ | ✅ | Mobil ve gömülü cihazlar için optimize edilmiştir. |
TF Kenar TPU | ✅ | ✅ | Google's Edge TPU cihazlarına özgüdür. |
TF.js | ✅ | ✅ | Tarayıcı kullanımı için JavaScript ortamı. |
PaddlePaddle | ❌ | ❌ | Çin'de popüler; küresel destek daha az. |
NCNN | ✅ | ❌ | Katman torch.topk mevcut veya kayıtlı değil |
Sonuç
YOLOv10, önceki YOLO sürümlerinin eksikliklerini gidererek ve yenilikçi tasarım stratejilerini dahil ederek gerçek zamanlı nesne algılamada yeni bir standart belirliyor. Düşük hesaplama maliyeti ile yüksek doğruluk sunma yeteneği, onu çok çeşitli gerçek dünya uygulamaları için ideal bir seçim haline getirmektedir.
Atıflar ve Teşekkür
Tsinghua Üniversitesi 'nden YOLOv10 yazarlarına kapsamlı araştırmaları ve bu çalışmaya yaptıkları önemli katkılar için teşekkür ederiz. Ultralytics çerçeve:
Ayrıntılı uygulama, mimari yenilikler ve deneysel sonuçlar için lütfen Tsinghua Üniversitesi ekibi tarafından hazırlanan YOLOv10 araştırma makalesine ve GitHub deposuna bakın.
SSS
YOLOv10 nedir ve önceki YOLO sürümlerinden farkı nedir?
Tsinghua Üniversitesi'ndeki araştırmacılar tarafından geliştirilen YOLOv10, gerçek zamanlı nesne tespitine birkaç önemli yenilik getirmektedir. Eğitim sırasında tutarlı ikili atamalar ve azaltılmış hesaplama ek yükü ile ü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'a genel bakış bölümüne göz atın.
YOLOv10 kullanarak çıkarım yapmaya nasıl başlayabilirim?
Kolay çıkarım için Ultralytics YOLO Python kütüphanesini veya komut satırı arayüzünü (CLI) kullanabilirsiniz. Aşağıda YOLOv10 kullanılarak yeni görüntülerin tahmin edilmesine ilişkin örnekler yer almaktadır:
Örnek
Daha fazla kullanım örneği için Kullanım Örnekleri bölümümüzü ziyaret edin.
YOLOv10 hangi model varyantlarını sunuyor ve bunların kullanım alanları nelerdir?
YOLOv10, farklı kullanım durumlarına hitap etmek için çeşitli model varyantları sunar:
- YOLOv10-N: Kaynakların son derece kısıtlı olduğu ortamlar için uygundur
- YOLOv10-S: Hız ve doğruluğu dengeler
- YOLOv10-M: Genel amaçlı kullanım
- YOLOv10-B: Artırılmış genişlik ile daha yüksek hassasiyet
- YOLOv10-L: Hesaplama kaynakları pahasına yüksek doğruluk
- YOLOv10-X: Maksimum doğruluk ve performans
Her 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ü hale getirir. Daha fazla bilgi için Model Varyantları bölümünü inceleyin.
YOLOv10'daki NMS'siz yaklaşım performansı nasıl artırıyor?
YOLOv10, eğitim için tutarlı ikili atamalar kullanarak çıkarım 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 çıkarım için bire bir kafa içerir ve her nesnenin tek bir en iyi tahmin almasını sağlar. Ayrıntılı açıklama için NMS'siz Eğitim için Tutarlı İkili Atamalar bölümüne bakın.
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 biçimlerini destekler. Ancak, Ultralytics tarafından sağlanan tüm dışa aktarma biçimleri, yeni işlemleri nedeniyle şu anda YOLOv10 için desteklenmemektedir. Desteklenen biçimlerle ilgili ayrıntılar ve dışa aktarma talimatları için YOLOv10 'u Dışa Aktarma bölümünü ziyaret edin.
YOLOv10 modelleri için 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östermektedir. Örneğin, YOLOv10-S, COCO veri setinde benzer bir AP ile RT-DETR-R18'den 1,8 kat daha hızlıdır. YOLOv10-B, aynı performansa sahip YOLOv9-C'ye göre %46 daha az gecikme ve %25 daha az parametre göstermektedir. Ayrıntılı kıyaslamalar Karşılaştırmalar bölümünde bulunabilir.