YOLOv3 ve YOLOv3u#
Genel Bakış#
Bu belgede, birbiriyle yakından ilişkili üç nesne algılama modeline, yani YOLOv3, YOLOv3-Ultralytics ve YOLOv3u modellerine genel bir bakış sunulmaktadır.
-
YOLOv3: Bu, Yalnızca Bir Kez Bak (YOLO) nesne algılama algoritmasının üçüncü sürümüdür. İlk olarak Joseph Redmon tarafından geliştirilen YOLOv3, çok ölçekli tahminler ve üç farklı algılama çekirdeği boyutu gibi özellikleri kullanıma sunarak önceki sürümlerini geliştirmiştir.
-
YOLOv3-Ultralytics: Bu, ultralytics/yolov3 deposunda sürdürülen YOLOv3'ün Ultralytics PyTorch uygulamasıdır. Orijinal çıpa tabanlı mimariyi korurken daha fazla ön eğitilmiş model ve daha kolay özelleştirme ekler.
-
YOLOv3u: Bu, YOLOv8 modellerinde kullanılan ankorsuz ve nesne olasılığı içermeyen ayrık başlığı barındıran, YOLOv3-Ultralytics'in güncellenmiş sürümüdür. YOLOv3u, YOLOv3 ile aynı omurga ve boyun mimarisini korur, ancak YOLOv8'den güncellenmiş algılama başlığını kullanır.

Temel Özellikler#
-
YOLOv3: Algılama için üç farklı algılama çekirdeği boyutundan yararlanarak üç farklı ölçeğin kullanılmasını sağlamıştır: 13x13, 26x26 ve 52x52. Bu, farklı boyutlardaki nesneler için algılama doğruluğunu önemli ölçüde artırmıştır. Ayrıca YOLOv3, her sınırlayıcı kutu için çok etiketli tahminler ve daha iyi bir özellik çıkarıcı ağ gibi özellikler eklemiştir.
-
YOLOv3u: Bu güncellenmiş model, YOLOv8'deki ankorsuz ve nesne olasılığı içermeyen ayrık başlığı barındırır. Önceden tanımlanmış anchor kutularına ve nesne olasılığı skorlarına duyulan ihtiyacı ortadan kaldıran bu algılama başlığı tasarımı, modelin farklı boyut ve şekillerdeki nesneleri algılama yeteneğini geliştirebilir. Bu da YOLOv3u'yu nesne algılama görevlerinde daha dayanıklı ve doğru hâle getirir.
Desteklenen Görevler ve Modlar#
YOLOv3, özellikle nesne algılama görevleri için tasarlanmıştır. Ultralytics, YOLOv3'ün üç varyantını destekler: yolov3u, yolov3-tinyu ve yolov3-sppu. Adındaki u, bu modellerin, anchor tabanlı olan özgün mimarilerinin aksine YOLOv8'in ankorsuz başlığını kullandığını belirtir. Bu modeller, doğruluk ve hız arasında denge kurarak çeşitli gerçek dünya senaryolarındaki etkinlikleriyle tanınır. Her varyant, çeşitli uygulamalar için uygun olmalarını sağlayan özgün özellikler ve optimizasyonlar sunar.
Her üç model de kapsamlı bir mod kümesini destekleyerek çeşitli model dağıtımı ve geliştirme aşamalarında esneklik sağlar. Bu modlar arasında Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma yer alır ve kullanıcılara etkili nesne algılama için eksiksiz bir araç seti sunar.
| Model Türü | Önceden Eğitilmiş Ağırlıklar | Desteklenen Görevler | Eğitim | Doğrulama | Çıkarım | Dışa aktarma |
|---|---|---|---|---|---|---|
| YOLOv3(u) | yolov3u.pt | Nesne Tespiti | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-Tiny(u) | yolov3-tinyu.pt | Nesne Tespiti | ✅ | ✅ | ✅ | ✅ |
| YOLOv3-SPP(u) | yolov3-sppu.pt | Nesne Tespiti | ✅ | ✅ | ✅ | ✅ |
Bu tablo, her YOLOv3 varyantının yeteneklerine genel bir bakış sunarak nesne algılama iş akışlarındaki çeşitli görevler ve çalışma modları için esnekliklerini ve uygunluklarını vurgular.
Kullanım Örnekleri#
Bu örnekte basit YOLOv3 eğitim ve çıkarım örnekleri sunulmaktadır. Bu ve diğer modlar hakkında eksiksiz belgeler için Predict, Train, Val ve Export belge sayfalarına bakabilirsin.
PyTorch önceden eğitilmiş *.pt modelleri ile yapılandırma *.yaml dosyaları, Python'da bir model örneği oluşturmak için YOLO() sınıfına aktarılabilir:
from ultralytics import YOLO
# Load a COCO-pretrained YOLOv3u model
model = YOLO("yolov3u.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 YOLOv3u model on the 'bus.jpg' image
results = model("path/to/bus.jpg")Atıflar ve Teşekkürler#
Araştırmanda YOLOv3 kullanıyorsan lütfen özgün YOLO makalelerine ve Ultralytics YOLOv3 deposuna atıfta bulun:
@article{redmon2018yolov3,
title={YOLOv3: An Incremental Improvement},
author={Redmon, Joseph and Farhadi, Ali},
journal={arXiv preprint arXiv:1804.02767},
year={2018}
}Özgün YOLOv3'ü geliştirdikleri için Joseph Redmon ve Ali Farhadi'ye teşekkür ederiz.
SSS#
YOLO, hız ve doğruluk arasındaki dengesiyle bilinen, Joseph Redmon tarafından geliştirilen YOLO (You Only Look Once) nesne algılama algoritmasının üçüncü sürümüdür ve algılama işlemleri için üç farklı ölçekten (13x13, 26x26 ve 52x52) yararlanır. YOLOv3-Ultralytics, daha fazla önceden eğitilmiş model için destek ekleyen ve model özelleştirmesini kolaylaştıran, Ultralytics tarafından uyarlanmış YOLOv3 sürümüdür. YOLOv3u, YOLOv8'deki anchor-free ve objectness-free ayrık başlığı entegre eden, YOLOv3-Ultralytics'in yükseltilmiş bir çeşididir; bu sayede çeşitli nesne boyutları için algılama sağlamlığını ve doğruluğunu artırır. Varyantlar hakkında daha fazla bilgi için YOLOv3 serisine başvur.
Ultralytics ile YOLOv3 modeli eğitmek oldukça kolaydır. Modeli Python veya CLI kullanarak eğitebilirsin:
Örnekfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Train the model on the COCO8 example dataset for 100 epochs results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Daha kapsamlı eğitim seçenekleri ve yönergeler için Train modu belgelerimizi ziyaret edebilirsin.
YOLOv3u, YOLOv8 modellerinde kullanılan ankorsuz ve nesne olasılığı içermeyen ayrık başlığı entegre ederek YOLOv3 ve YOLOv3-Ultralytics'i geliştirir. Bu yükseltme, önceden tanımlanmış anchor kutularına ve nesne olasılığı skorlarına duyulan ihtiyacı ortadan kaldırarak farklı boyut ve şekillerdeki nesneleri daha hassas biçimde algılama yeteneğini artırır. Bu, YOLOv3u'yu karmaşık ve çeşitli nesne algılama görevleri için daha iyi bir seçenek hâline getirir. Daha fazla bilgi için Temel Özellikler bölümüne bakabilirsin.
YOLOv3 modelleriyle Python betikleri veya CLI komutları kullanarak çıkarım gerçekleştirebilirsin:
Örnekfrom ultralytics import YOLO # Load a COCO-pretrained YOLOv3u model model = YOLO("yolov3u.pt") # Run inference with the YOLOv3u model on the 'bus.jpg' image results = model("path/to/bus.jpg")YOLO modellerini çalıştırma hakkında daha fazla bilgi için Çıkarım modu belgelerine bakabilirsin.
YOLOv3, YOLOv3-Tiny ve YOLOv3-SPP öncelikle nesne algılama görevlerini destekler. Bu modeller, Çıkarım, Doğrulama, Eğitim ve Dışa Aktarma gibi model dağıtımı ve geliştirmenin çeşitli aşamalarında kullanılabilir. Desteklenen görevlerin kapsamlı listesi ve daha ayrıntılı bilgiler için Nesne Algılama görevleri belgelerimizi ziyaret edebilirsin.
Araştırmanda YOLOv3 kullanıyorsan lütfen özgün YOLO makalelerine ve Ultralytics YOLOv3 deposuna atıfta bulun. Örnek BibTeX atfı:
Alıntı@article{redmon2018yolov3, title={YOLOv3: An Incremental Improvement}, author={Redmon, Joseph and Farhadi, Ali}, journal={arXiv preprint arXiv:1804.02767}, year={2018} }Atıf ayrıntıları için Atıflar ve Teşekkürler bölümüne bakabilirsin.