İçeriğe geç

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.

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

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:

  1. 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.
  2. Neck: The neck is designed to aggregate features from different scales and passes them to the head. It includes PAN (Path Aggregation Network) layers for effective multi-scale feature fusion.
  3. 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.
  4. 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

  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ış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.
  3. 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

  1. 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.
  2. 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.
  3. Sıralama Kılavuzlu Blok Tasarımı: Blok tasarımını içsel kademe fazlalığına göre uyarlayarak optimum parametre kullanımını sağlar.

Doğruluk Geliştirmeleri

  1. Büyük Çekirdekli Evrişim: Özellik çıkarma kapasitesini artırmak için alıcı alanı genişletir.
  2. 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

YOLOv10 ile SOTA nesne dedektörlerinin karşılaştırılması

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 parametreye 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 Paramlar (M) FLOP'lar (G) APval (%) Gecikme Süresi (ms) Gecikme (İleri) (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

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

YOLOv10'u özel bir veri kümesi üzerinde 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

The YOLOv10 models series offers a range of models, each optimized for high-performance Object Detection. These models cater to varying computational needs and accuracy requirements, making them versatile for a wide array of applications.

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

Exporting YOLOv10

Due to the new operations introduced with YOLOv10, not all export formats provided by Ultralytics are currently supported. The following table outlines which formats have been successfully converted using Ultralytics for YOLOv10. Feel free to open a pull request if you're able to provide a contribution change for adding export support of additional formats for YOLOv10.

Export Format Supported
TorchScript
ONNX
OpenVINO
TensorRT
CoreML
TF SavedModel
TF GraphDef
TF Lite
TF Kenar TPU
TF.js
PaddlePaddle
NCNN

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:

@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.



Created 2024-05-25, Updated 2024-06-24
Authors: RizwanMunawar (3), Burhan-Q (1), glenn-jocher (3)

Yorumlar