Ultralytics YOLOv5
Genel Bakış
YOLOv5u, nesne algılama metodolojilerinde bir gelişmeyi temsil eder. Ultralytics tarafından geliştirilen YOLOv5 modelinin temel mimarisinden kaynaklanan YOLOv5u, daha önce YOLOv8 modellerinde tanıtılan ankraj içermeyen, nesnelliksiz bölünmüş başlığı entegre eder. Bu uyarlama, modelin mimarisini iyileştirerek nesne algılama görevlerinde gelişmiş bir doğruluk-hız dengesine yol açar. Ampirik sonuçlar ve türetilmiş özellikleri göz önüne alındığında, YOLOv5u hem araştırma hem de pratik uygulamalarda sağlam çözümler arayanlar için verimli bir alternatif sunar.
Temel Özellikler
-
Çapa İçermeyen Bölünmüş Ultralytics Başlığı: Geleneksel nesne algılama modelleri, nesne konumlarını tahmin etmek için önceden tanımlanmış çapa kutularına güvenir. Ancak, YOLOv5u bu yaklaşımı modernize eder. Çapa içermeyen bölünmüş bir Ultralytics başlığı benimseyerek, daha esnek ve uyarlanabilir bir algılama mekanizması sağlar ve sonuç olarak çeşitli senaryolarda performansı artırır.
-
Optimize Edilmiş Doğruluk-Hız Dengesi: Hız ve doğruluk genellikle zıt yönlerde ilerler. Ancak YOLOv5u bu dengeye meydan okuyor. Doğruluktan ödün vermeden gerçek zamanlı algılamalar sağlayarak kalibre edilmiş bir denge sunar. Bu özellik, otonom araçlar, robotik ve gerçek zamanlı video analitiği gibi hızlı yanıt gerektiren uygulamalar için özellikle değerlidir.
-
Çeşitli Önceden Eğitilmiş Modeller: Farklı görevlerin farklı araç setleri gerektirdiğini anlayan YOLOv5u, çok sayıda önceden eğitilmiş model sunar. Çıkarım, Doğrulama veya Eğitime odaklanıyor olsanız da, sizi bekleyen özel olarak hazırlanmış bir model var. Bu çeşitlilik, yalnızca herkese uyan tek bir çözüm kullanmadığınızdan, benzersiz zorluğunuz için özel olarak ince ayar yapılmış bir model kullandığınızdan emin olmanızı sağlar.
Desteklenen Görevler ve Modlar
Çeşitli önceden eğitilmiş ağırlıklara sahip YOLOv5u modelleri, Nesne Algılama görevlerinde mükemmeldir. Geliştirmeden dağıtıma kadar çeşitli uygulamalar için uygun hale getiren kapsamlı bir mod aralığını desteklerler.
Model Türü | Önceden Eğitilmiş Ağırlıklar | Görev | Çıkarım | Doğrulama | Eğitim | Dışa aktar |
---|---|---|---|---|---|---|
YOLOv5u | yolov5nu , yolov5su , yolov5mu , yolov5lu , yolov5xu , yolov5n6u , yolov5s6u , yolov5m6u , yolov5l6u , yolov5x6u |
Nesne Algılama | ✅ | ✅ | ✅ | ✅ |
Bu tablo, YOLOv5u model varyantlarına ilişkin ayrıntılı bir genel bakış sunarak, nesne algılama görevlerindeki uygulanabilirliğini ve Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma gibi çeşitli çalışma modları için desteğini vurgulamaktadır. Bu kapsamlı destek, kullanıcıların YOLOv5u modellerinin yeteneklerinden çok çeşitli nesne algılama senaryolarında tam olarak yararlanabilmelerini sağlar.
Performans Metrikleri
Performans
COCO üzerinde eğitilmiş ve 80 adet önceden eğitilmiş sınıfı içeren bu modellerle ilgili kullanım örnekleri için Algılama Belgelerine bakın.
Model | YAML | boyut (piksel) |
mAPval 50-95 |
Hız CPU ONNX (ms) |
Hız A100 TensorRT (ms) |
parametreler (M) |
FLOP'lar (B) |
---|---|---|---|---|---|---|---|
yolov5nu.pt | yolov5n.yaml | 640 | 34.3 | 73.6 | 1.06 | 2.6 | 7.7 |
yolov5su.pt | yolov5s.yaml | 640 | 43.0 | 120.7 | 1.27 | 9.1 | 24.0 |
yolov5mu.pt | yolov5m.yaml | 640 | 49.0 | 233.9 | 1.86 | 25.1 | 64.2 |
yolov5lu.pt | yolov5l.yaml | 640 | 52.2 | 408.4 | 2.50 | 53.2 | 135.0 |
yolov5xu.pt | yolov5x.yaml | 640 | 53.2 | 763.2 | 3.81 | 97.2 | 246.4 |
yolov5n6u.pt | yolov5n6.yaml | 1280 | 42.1 | 211.0 | 1.83 | 4.3 | 7.8 |
yolov5s6u.pt | yolov5s6.yaml | 1280 | 48.6 | 422.6 | 2.34 | 15.3 | 24.6 |
yolov5m6u.pt | yolov5m6.yaml | 1280 | 53.6 | 810.9 | 4.36 | 41.2 | 65.7 |
yolov5l6u.pt | yolov5l6.yaml | 1280 | 55.7 | 1470.9 | 5.47 | 86.1 | 137.4 |
yolov5x6u.pt | yolov5x6.yaml | 1280 | 56.8 | 2436.5 | 8.98 | 155.4 | 250.7 |
Kullanım Örnekleri
Bu örnek, basit YOLOv5 eğitimi ve çıkarım örnekleri sunar. Bunlar ve diğer modlar hakkında tam dokümantasyon için Tahmin, Eğitim, Değerlendirme ve Dışa Aktarma doküman sayfalarına bakın.
Örnek
PyTorch önceden eğitilmiş *.pt
modellerin yanı sıra yapılandırma *.yaml
dosyaları YOLO()
python'da bir model örneği oluşturmak için sınıfa geçirilebilir:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Run inference with the YOLOv5n model on the 'bus.jpg' image
results = model("path/to/bus.jpg")
Modelleri doğrudan çalıştırmak için CLI komutları mevcuttur:
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640
# Load a COCO-pretrained YOLOv5n model and run inference on the 'bus.jpg' image
yolo predict model=yolov5n.pt source=path/to/bus.jpg
Alıntılar ve Teşekkürler
Ultralytics YOLOv5 Yayını
Ultralytics, modellerin hızla gelişen yapısı nedeniyle YOLOv5 için resmi bir araştırma makalesi yayınlamadı. Statik dokümantasyon üretmek yerine, teknolojiyi geliştirmeye ve kullanımını kolaylaştırmaya odaklanıyoruz. YOLO mimarisi, özellikleri ve kullanımı hakkında en güncel bilgiler için lütfen GitHub depomuza ve belgelerimize bakın.
Araştırmanızda YOLOv5 veya YOLOv5u kullanıyorsanız, lütfen Ultralytics YOLOv5 deposuna aşağıdaki gibi atıfta bulunun:
@software{yolov5,
title = {Ultralytics YOLOv5},
author = {Glenn Jocher},
year = {2020},
version = {7.0},
license = {AGPL-3.0},
url = {https://github.com/ultralytics/yolov5},
doi = {10.5281/zenodo.3908559},
orcid = {0000-0001-5950-6979}
}
Lütfen YOLOv5 modellerinin AGPL-3.0 ve Enterprise lisansları altında sağlandığını unutmayın.
SSS
Ultralytics YOLOv5u nedir ve YOLOv5'ten farkı nedir?
Ultralytics YOLOv5u, gerçek zamanlı nesne algılama görevleri için doğruluk-hız dengesini artıran ankrajsız, nesnesiz bölünmüş başlığı entegre eden YOLOv5'in gelişmiş bir sürümüdür. Geleneksel YOLOv5'ten farklı olarak, YOLOv5u, çeşitli senaryolarda daha esnek ve uyarlanabilir hale getiren ankrajsız bir algılama mekanizması benimser. Özellikleri hakkında daha ayrıntılı bilgi için YOLOv5 Genel Bakış'a başvurabilirsiniz.
Ankrajsız Ultralytics başlığı, YOLOv5u'da nesne algılama performansını nasıl artırır?
YOLOv5u'daki ankrajsız Ultralytics başlığı, önceden tanımlanmış ankraj kutularına olan bağımlılığı ortadan kaldırarak nesne algılama performansını artırır. Bu, çeşitli nesne boyutlarını ve şekillerini daha yüksek verimlilikle işleyebilen daha esnek ve uyarlanabilir bir algılama mekanizmasıyla sonuçlanır. Bu geliştirme, doğruluk ve hız arasında dengeli bir ödünleşime doğrudan katkıda bulunarak YOLOv5u'yu gerçek zamanlı uygulamalar için uygun hale getirir. Mimarisi hakkında daha fazla bilgiyi Temel Özellikler bölümünde bulabilirsiniz.
Önceden eğitilmiş YOLOv5u modellerini farklı görevler ve modlar için kullanabilir miyim?
Evet, Nesne Algılama gibi çeşitli görevler için önceden eğitilmiş YOLOv5u modellerini kullanabilirsiniz. Bu modeller, Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma dahil olmak üzere birden çok modu destekler. Bu esneklik, kullanıcıların YOLOv5u modellerinin yeteneklerinden farklı operasyonel gereksinimler genelinde yararlanmalarını sağlar. Ayrıntılı bir genel bakış için, Desteklenen Görevler ve Modlar bölümünü inceleyin.
YOLOv5u modellerinin performans metrikleri farklı platformlarda nasıl karşılaştırılır?
YOLOv5u modellerinin performans metrikleri, kullanılan platforma ve donanıma bağlı olarak değişir. Örneğin, YOLOv5nu modeli, CPU (ONNX) üzerinde 73.6 ms ve A100 TensorRT üzerinde 1.06 ms hızla COCO veri kümesinde 34.3 mAP elde eder. Farklı YOLOv5u modelleri için ayrıntılı performans metrikleri, çeşitli cihazlar arasında kapsamlı bir karşılaştırma sağlayan Performans Metrikleri bölümünde bulunabilir.
Ultralytics Python API'sini kullanarak bir YOLOv5u modelini nasıl eğitebilirim?
Önceden eğitilmiş bir modeli yükleyerek ve veri kümenizle eğitim komutunu çalıştırarak bir YOLOv5u modeli eğitebilirsiniz. İşte hızlı bir örnek:
Örnek
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv5n model
model = YOLO("yolov5n.pt")
# Display model information (optional)
model.info()
# Train the model on the COCO8 example dataset for 100 epochs
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
# Load a COCO-pretrained YOLOv5n model and train it on the COCO8 example dataset for 100 epochs
yolo train model=yolov5n.pt data=coco8.yaml epochs=100 imgsz=640
Daha ayrıntılı talimatlar için Kullanım Örnekleri bölümünü ziyaret edin.