İçeriğe geç

YOLOv10: Gerçek Zamanlı Uçtan Uca Nesne Algılama

Tsinghua Üniversitesi'ndeki araştırmacılar tarafından UltralyticsPython paketi üzerine inşa edilen YOLOv10, önceki YOLO sürümlerinde bulunan hem işlem sonrası hem de model mimarisi eksikliklerini ele alarak gerçek zamanlı nesne tespitine yeni bir yaklaşım getiriyor. Non-maximum suppression'ı (NMS) ortadan kaldırarak ve çeşitli model bileşenlerini optimize ederek, YOLOv10 önemli ölçüde azaltılmış hesaplama yükü ile son teknoloji performansı elde ediyor. Kapsamlı deneyler, birden fazla model ölçeğinde üstün doğruluk-gecikme dengesini göstermektedir.

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



İzle: Ultralytics kullanarak YOLOv10'u SKU-110k Veri Seti Üzerinde Nasıl Eğitirsiniz | Perakende Veri Seti

Genel Bakış

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

Mimari

YOLOv10'un mimarisi, önceki YOLO modellerinin güçlü yönleri üzerine inşa edilirken çeşitli temel yenilikler sunmaktadır. Model mimarisi aşağıdaki bileşenlerden oluşur:

  1. Backbone: Özellik çıkarımından sorumlu olan YOLOv10'daki backbone, gradyan akışını iyileştirmek ve hesaplama yedekliliğini azaltmak için CSPNet'in (Çapraz Aşamalı Kısmi Ağ) geliştirilmiş bir sürümünü kullanır.
  2. Boyun (Neck): Boyun, farklı ölçeklerden özellikleri toplamak ve bunları başlığa (head) geçirmek için tasarlanmıştır. Etkili çok ölçekli özellik kaynaştırması için PAN (Yol Toplama Ağı) katmanlarını içerir.
  3. Bire Çok Başlık (One-to-Many Head): Zengin denetleyici sinyalleri sağlamak ve öğrenme doğruluğunu artırmak için eğitim sırasında nesne başına birden çok tahmin üretir.
  4. Bire Bir Başlık: Çıkarım sırasında nesne başına tek bir en iyi tahmin oluşturarak NMS ihtiyacını ortadan kaldırır, böylece gecikmeyi azaltır ve verimliliği artırır.

Temel Özellikler

  1. NMS'siz Eğitim: NMS ihtiyacını ortadan kaldırmak için tutarlı ikili atamalar kullanır ve çıkarım gecikmesini azaltır.
  2. Bütünsel Model Tasarımı: Hafif sınıflandırma başlıkları, uzamsal-kanal ayrışık alt örnekleme ve sıra güdümlü blok tasarımı dahil olmak üzere, hem verimlilik hem de doğruluk perspektiflerinden çeşitli bileşenlerin kapsamlı optimizasyonu.
  3. Gelişmiş Model Yetenekleri: Önemli bir hesaplama maliyeti olmadan performansı artırmak için geniş çekirdekli evrişimler 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: Aşırı kaynak kısıtlamalı ortamlar için nano versiyon.
  • YOLOv10s: Hız ve doğruluğu dengeleyen küçük versiyon.
  • YOLOv10m: Genel amaçlı kullanım için orta boyutlu versiyon.
  • YOLOv10b: Daha yüksek doğruluk için artırılmış genişliğe sahip dengeli versiyon.
  • YOLOv10l: Artan hesaplama kaynakları pahasına daha yüksek doğruluk için büyük versiyon.
  • YOLOv10x: 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 modellerinden daha iyi performans gösterir. Örneğin, YOLOv10s, COCO veri kümesinde benzer AP ile RT-DETR-R18'den 1,8 kat daha hızlıdır ve YOLOv10b, aynı performansta YOLOv9-C'den %46 daha az gecikme ve %25 daha az parametreye sahiptir.

Performans

T4 GPU'da TensorRT FP16 ile ölçülen gecikme.

ModelGiriş BoyutuAPvalFLOP'lar (G)Gecikme (ms)
YOLOv10n64038.56.71.84
YOLOv10s64046.321.62.49
YOLOv10m64051.159.14.74
YOLOv10b64052.592.05.74
YOLOv10l64053.2120.37.28
YOLOv10x64054.4160.410.70

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 stratejilerini birleştiren ikili etiket atamaları kullanır. Tutarlı eşleştirme metriği, çıkarım sırasında tahminlerin kalitesini artırarak her iki strateji arasındaki denetimi hizalar.

Bütünsel Verimlilik-Doğruluk Odaklı Model Tasarımı

Verimlilik Artışları

  1. Hafif Sınıflandırma Başlığı: Derinlemesine ayrılabilir evrişimler kullanarak sınıflandırma başlığının hesaplama yükünü azaltır.
  2. Uzamsal-Kanal Ayrıştırılmış Alt Örnekleme: Bilgi kaybını ve hesaplama maliyetini en aza indirmek için uzamsal azaltma ve kanal modülasyonunu ayırır.
  3. Sıra Kılavuzlu Blok Tasarımı: Evre yedekliliğine bağlı olarak blok tasarımını uyarlar ve optimum parametre kullanımını sağlar.

Doğruluk Geliştirmeleri

  1. Geniş Çekirdekli Evrişim: Özellik çıkarma yeteneğini geliştirmek için alıcı alanını genişletir.
  2. Kısmi Kendine Dikkat (PSA): Minimum ek yük ile küresel temsil öğrenimini iyileştirmek için kendine dikkat modüllerini içerir.

Deneyler ve Sonuçlar

YOLOv10, COCO gibi standart kıyaslama testlerinde kapsamlı bir şekilde test edilmiş ve üstün performans ve verimlilik göstermiştir. Model, farklı varyantlarda son teknoloji sonuçlar elde ederek, önceki sürümlere ve diğer çağdaş dedektörlere kıyasla gecikme süresi ve doğrulukta önemli iyileştirmeler sergilemektedir.

Karşılaştırmalar

SOTA nesne dedektörleri ile YOLOv10 karşılaştırması

Diğer son teknoloji dedektörlerle karşılaştırıldığında:

  • YOLOv10s / x, benzer doğrulukla RT-DETR-R18 / R101'den 1.8× / 1.3× 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 parametre ile YOLOv8l / x'den 0.3 AP / 0.5 AP daha iyi performans gösterir

Performans

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

ModelParametreler
(M)
FLOP'lar
(G)
mAPval
50-95
Gecikme
(ms)
Gecikme-ileri
(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

Kullanım Örnekleri

YOLOv10 ile yeni görüntüleri tahmin etmek için:

Örnek

from ultralytics import YOLO

# Load a pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")

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

# Display the results
results[0].show()
# Load a COCO-pretrained YOLOv10n model and run inference on the 'bus.jpg' image
yolo detect predict model=yolov10n.pt source=path/to/bus.jpg

Özel bir veri kümesinde YOLOv10'u 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)
# Build a YOLOv10n model from scratch and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov10n.yaml data=coco8.yaml epochs=100 imgsz=640

# Build a YOLOv10n model from scratch and run inference on the 'bus.jpg' image
yolo predict model=yolov10n.yaml source=path/to/bus.jpg

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, çeşitli hesaplama ihtiyaçlarına ve doğruluk gereksinimlerine hitap ederek, onları çok çeşitli uygulamalar için çok yönlü hale getirir.

ModelDosya adlarıGörevlerÇıkarımDoğrulamaEğitimDışa aktar
YOLOv10yolov10n.pt yolov10s.pt yolov10m.pt yolov10l.pt yolov10x.ptNesne Algılama

YOLOv10'u Dışa Aktarma

YOLOv10 ile tanıtılan yeni işlemler nedeniyle, Ultralytics tarafından sağlanan tüm dışa aktarma biçimleri şu anda desteklenmemektedir. Aşağıdaki tabloda, Ultralytics kullanılarak YOLOv10 için başarıyla dönüştürülen biçimler özetlenmektedir. YOLOv10 için ek biçimlerin dışa aktarma desteği eklemek üzere bir katkı değişikliği sağlama olanağınız varsa, lütfen bir çekme isteği açmaktan çekinmeyin.

Dışa Aktarma BiçimiDışa Aktarma DesteğiDışa Aktarılan Model ÇıkarımıNotlar
TorchScriptStandart PyTorch model formatı.
ONNXDağıtım için yaygın olarak desteklenir.
OpenVINOIntel donanımı için optimize edilmiştir.
TensorRTNVIDIA GPU'lar için optimize edilmiştir.
CoreMLApple cihazlarıyla 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; daha az küresel destek.
NCNNKatman torch.topk mevcut değil veya kayıtlı değil

Sonuç

YOLOv10, önceki YOLO sürümlerinin eksikliklerini gidererek ve yenilikçi tasarım stratejilerini bir araya getirerek gerçek zamanlı nesne algılamada yeni bir standart belirler. Düşük hesaplama maliyetiyle yüksek doğruluk sağlama yeteneği, onu üretim, perakende ve otonom araçlar dahil olmak üzere çok çeşitli gerçek dünya uygulamaları için ideal bir seçim haline getirir.

Alıntılar ve Teşekkürler

Tsinghua Üniversitesi'nden YOLOv10 yazarlarına, Ultralytics çerçevesine yaptıkları kapsamlı araştırma ve önemli katkılardan dolayı teşekkür etmek isteriz:

@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 Üniversitesi ekibi tarafından hazırlanan YOLOv10 araştırma makalesine ve GitHub deposuna bakın.

SSS

YOLOv10 nedir ve önceki YOLO versiyonlarından farkı nedir?

Tsinghua Üniversitesi'ndeki araştırmacılar tarafından geliştirilen YOLOv10, gerçek zamanlı nesne tespitine çeşitli önemli yenilikler getiriyor. Eğitim sırasında tutarlı çift atamalar kullanarak ve azaltılmış hesaplama yükü ile üstün performans için optimize edilmiş model bileşenleri kullanarak non-maximum suppression (NMS) ihtiyacını ortadan kaldırır. Mimarisi ve temel özellikleri hakkında daha fazla bilgi için YOLOv10 genel bakış bölümüne bakın.

YOLOv10 kullanarak çı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) kullanabilirsiniz. Aşağıda YOLOv10 kullanarak yeni görüntüleri tahmin etme örnekleri verilmiştir:

Örnek

from ultralytics import YOLO

# Load the pre-trained YOLOv10n model
model = YOLO("yolov10n.pt")
results = model("image.jpg")
results[0].show()
yolo detect predict model=yolov10n.pt source=path/to/image.jpg

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:

  • YOLOv10n: Aşırı kaynak kısıtlamalı 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 varyant, farklı hesaplama ihtiyaçları ve doğruluk gereksinimleri için tasarlanmıştır ve 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ır?

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, her nesnenin tek bir en iyi tahmini almasını sağlayan çıkarım için bire bir başlık içerir. Ayrıntılı bir 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 formatlarını destekler. Ancak, 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ılı bilgi 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 modellerinden daha iyi performans gösterir. Örneğin, YOLOv10s, COCO veri kümesinde benzer bir AP ile RT-DETR-R18'den 1,8 kat daha hızlıdır. YOLOv10b, aynı performansta YOLOv9-C'den %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.



📅 1 yıl önce oluşturuldu ✏️ 25 gün önce güncellendi
glenn-jocherRizwanMunawarleonnilY-T-GLaughing-qMatthewNoyceUltralyticsAssistanthasanghaffari93zhixuweiabirami-vinaBurhan-Q

Yorumlar