YOLOv4: Yüksek Hızlı ve Hassas Nesne Algılama
2020 yılında Alexey Bochkovskiy tarafından https://github.com/AlexeyAB/darknet adresinde yayınlanan, en son teknoloji ürünü ve gerçek zamanlı bir nesne algılayıcı olan YOLOv4 için hazırlanan Ultralytics dokümantasyon sayfasına hoş geldin. YOLOv4, hız ve doğruluk arasında en uygun dengeyi sağlayacak şekilde tasarlanmıştır ve bu da onu pek çok uygulama için mükemmel bir seçenek haline getirir.
YOLOv4 mimari şeması. Optimum gerçek zamanlı nesne algılama için backbone (omurga), neck (boyun) ve head (baş) bileşenleri ile bunların birbirine bağlı katmanları dahil olmak üzere YOLOv4'ün karmaşık ağ tasarımını sergiler.
Giriş
YOLOv4, You Only Look Once version 4'ün kısaltmasıdır. YOLOv3 gibi önceki YOLO sürümlerinin ve diğer nesne algılama modellerinin sınırlamalarını ele almak için geliştirilmiş gerçek zamanlı bir nesne algılama modelidir. Diğer evrişimli sinir ağı (CNN) tabanlı nesne algılayıcıların aksine, YOLOv4 sadece öneri sistemleri için değil, aynı zamanda bağımsız süreç yönetimi ve insan girdisinin azaltılması için de uygulanabilir. Geleneksel grafik işlem birimleri (GPU) üzerindeki çalışması, uygun bir fiyata kitlesel kullanıma olanak tanır ve eğitim için yalnızca bir adet GPU gerektirirken geleneksel bir GPU üzerinde gerçek zamanlı çalışacak şekilde tasarlanmıştır.
Mimari
YOLOv4, performansını optimize etmek için birlikte çalışan birçok yenilikçi özellikten yararlanır. Bunlar arasında Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP), Cross mini-Batch Normalization (CmBN), Self-adversarial-training (SAT), Mish-activation, Mosaic veri artırma, DropBlock düzenlileştirme ve CIoU kaybı bulunur. Bu özellikler, en son teknoloji sonuçlarını elde etmek için birleştirilmiştir.
Tipik bir nesne algılayıcı; giriş, backbone, neck ve head dahil olmak üzere birkaç bölümden oluşur. YOLOv4'ün backbone'u ImageNet üzerinde önceden eğitilmiştir ve nesnelerin sınıflarını ve sınırlayıcı kutularını tahmin etmek için kullanılır. Backbone; VGG, ResNet, ResNeXt veya DenseNet dahil olmak üzere birçok modelden olabilir. Algılayıcının neck kısmı, farklı aşamalardan öznitelik haritalarını toplamak için kullanılır ve genellikle birkaç aşağıdan yukarıya ve yukarıdan aşağıya yol içerir. Head kısmı ise nihai nesne algılamalarını ve sınıflandırmalarını yapmak için kullanılan kısımdır.
Ücretsiz İpuçları Torbası (Bag of Freebies)
YOLOv4 ayrıca, çıkarım maliyetini artırmadan eğitim sırasında modelin doğruluğunu artıran teknikler olan "bag of freebies" (ücretsiz ipuçları torbası) yöntemlerini kullanır. Veri artırma, modelin sağlamlığını artırmak için giriş görüntülerinin değişkenliğini artıran, nesne algılamada kullanılan yaygın bir bag of freebies tekniğidir. Bazı veri artırma örnekleri arasında fotometrik bozulmalar (bir görüntünün parlaklığını, kontrastını, tonunu, doygunluğunu ve gürültüsünü ayarlama) ve geometrik bozulmalar (rastgele ölçeklendirme, kırpma, çevirme ve döndürme ekleme) bulunur. Bu teknikler, modelin farklı görüntü türlerine daha iyi genelleme yapmasına yardımcı olur.
Özellikler ve Performans
YOLOv4, nesne algılamada optimum hız ve doğruluk için tasarlanmıştır. YOLOv4'ün mimarisi, backbone olarak CSPDarknet53, neck olarak PANet ve algılama başlığı olarak YOLOv3'ü içerir. Bu tasarım, YOLOv4'ün etkileyici bir hızda nesne algılama yapmasını sağlayarak gerçek zamanlı uygulamalar için uygun hale getirir. YOLOv4 ayrıca COCO gibi nesne algılama kıyaslamalarında en son teknoloji sonuçlarına ulaşarak doğruluk konusunda da mükemmeldir.
YOLOv5 ve YOLOv7 gibi YOLO ailesindeki diğer modellerle karşılaştırıldığında, YOLOv4 hız ve doğruluk dengesinde güçlü bir konumunu korur. Daha yeni modeller belirli avantajlar sunabilse de, YOLOv4'ün mimari yenilikleri onu gerçek zamanlı performans gerektiren birçok uygulama için hala geçerli kılmaktadır.
Kullanım Örnekleri
YOLOv4 is a Darknet-based model and is not natively supported by the Ultralytics Python package: there are no yolov4.pt pretrained weights published on ultralytics/assets and no ultralytics/cfg/models/v4/ YAMLs. This page is kept as an architectural reference. Users interested in running YOLOv4 should refer directly to the YOLOv4 GitHub repository for installation and usage instructions.
YOLOv4'ü kullanmak için izleyebileceğin tipik adımlara kısa bir genel bakış şöyledir:
-
YOLOv4 GitHub deposunu ziyaret et: https://github.com/AlexeyAB/darknet.
-
Kurulum için README dosyasında verilen talimatları izle. Bu genellikle depoyu klonlamayı, gerekli bağımlılıkları yüklemeyi ve gerekli ortam değişkenlerini ayarlamayı içerir.
-
Kurulum tamamlandığında, depoda sağlanan kullanım talimatlarına göre modeli eğitebilir ve kullanabilirsin. Bu genellikle veri setini hazırlamayı, model parametrelerini yapılandırmayı, modeli eğitmeyi ve ardından eğitilmiş modeli nesne algılama yapmak için kullanmayı içerir.
Lütfen belirli adımların, özel kullanım durumuna ve YOLOv4 deposunun mevcut durumuna bağlı olarak değişebileceğini unutma. Bu nedenle, doğrudan YOLOv4 GitHub deposunda sağlanan talimatlara başvurman şiddetle önerilir.
Ultralytics çerçevesi içinde eğitim ve çıkarım için YOLO11 veya YOLO26 bölümüne bak.
Sonuç
YOLOv4, hız ve doğruluk arasında bir denge kuran güçlü ve verimli bir nesne algılama modelidir. Eğitim sırasında benzersiz özellikler ve bag of freebies tekniklerini kullanması, gerçek zamanlı nesne algılama görevlerinde mükemmel performans göstermesini sağlar. YOLOv4, geleneksel bir GPU'su olan herkes tarafından eğitilebilir ve kullanılabilir; bu da onu gözetim sistemleri, otonom araçlar ve endüstriyel otomasyon dahil olmak üzere çok çeşitli uygulamalar için erişilebilir ve pratik hale getirir.
Projelerinde nesne algılamayı uygulamak isteyenler için YOLOv4, özellikle gerçek zamanlı performans bir öncelik olduğunda güçlü bir aday olmaya devam ediyor. Ultralytics şu anda YOLO11 ve YOLO26 gibi daha yeni YOLO sürümlerini desteklemeye odaklansa da, YOLOv4'te tanıtılan mimari yenilikler bu sonraki modellerin geliştirilmesini etkilemiştir.
Alıntılar ve Teşekkür
Gerçek zamanlı nesne algılama alanındaki önemli katkılarından dolayı YOLOv4 yazarlarına teşekkür ederiz:
@misc{bochkovskiy2020yolov4,
title={YOLOv4: Optimal Speed and Accuracy of Object Detection},
author={Alexey Bochkovskiy and Chien-Yao Wang and Hong-Yuan Mark Liao},
year={2020},
eprint={2004.10934},
archivePrefix={arXiv},
primaryClass={cs.CV}
}Orijinal YOLOv4 makalesi arXiv üzerinde bulunabilir. Yazarlar çalışmalarını herkese açık hale getirmişlerdir ve kod tabanına GitHub üzerinden erişilebilir. Alanı ilerletme ve çalışmalarını daha geniş bir topluluk için erişilebilir kılma çabalarını takdir ediyoruz.
SSS
YOLOv4 nedir ve nesne algılama için neden kullanmalıyım?
"You Only Look Once version 4" anlamına gelen YOLOv4, 2020 yılında Alexey Bochkovskiy tarafından geliştirilen en son teknoloji ürünü gerçek zamanlı bir nesne algılama modelidir. Hız ve doğruluk arasında en uygun dengeyi sağlar ve bu da onu gerçek zamanlı uygulamalar için son derece uygun hale getirir. YOLOv4'ün mimarisi; Weighted-Residual-Connections (WRC), Cross-Stage-Partial-connections (CSP) ve Self-adversarial-training (SAT) gibi birçok yenilikçi özelliği içerir. Geleneksel GPU'larda verimli bir şekilde çalışan yüksek performanslı bir model arıyorsan, YOLOv4 mükemmel bir seçimdir.
YOLOv4'ün mimarisi performansını nasıl artırır?
YOLOv4'ün mimarisi birkaç temel bileşeni içerir: backbone, neck ve head. VGG, ResNet veya CSPDarknet53 gibi modeller olabilen backbone, sınıfları ve sınırlayıcı kutuları tahmin etmek için önceden eğitilmiştir. PANet'i kullanan neck, kapsamlı veri çıkarımı için farklı aşamalardan gelen öznitelik haritalarını birbirine bağlar. Son olarak, YOLOv3'ün yapılandırmalarını kullanan head, nihai nesne algılamalarını yapar. YOLOv4 ayrıca mozaik veri artırma ve DropBlock düzenlileştirme gibi "bag of freebies" tekniklerini kullanarak hızını ve doğruluğunu daha da optimize eder.
YOLOv4 bağlamında "bag of freebies" nedir?
"Bag of freebies", çıkarım maliyetini artırmadan YOLOv4'ün eğitim doğruluğunu artıran yöntemleri ifade eder. Bu teknikler; fotometrik bozulmalar (parlaklık, kontrast vb. ayarı) ve geometrik bozulmalar (ölçekleme, kırpma, çevirme, döndürme) gibi çeşitli veri artırma biçimlerini içerir. Giriş görüntülerinin değişkenliğini artırarak, bu artırmalar YOLOv4'ün farklı görüntü türlerine daha iyi genelleme yapmasına yardımcı olur ve böylece gerçek zamanlı performansından ödün vermeden sağlamlığını ve doğruluğunu artırır.
YOLOv4 neden geleneksel GPU'larda gerçek zamanlı nesne algılama için uygun kabul edilir?
YOLOv4, hem hız hem de doğruluğu optimize edecek şekilde tasarlanmıştır ve bu da onu hızlı ve güvenilir performans gerektiren gerçek zamanlı nesne algılama görevleri için ideal kılar. Geleneksel GPU'larda verimli bir şekilde çalışır ve hem eğitim hem de çıkarım için yalnızca bir GPU'ya ihtiyaç duyar. Bu, onu öneri sistemlerinden bağımsız süreç yönetimine kadar çeşitli uygulamalar için erişilebilir ve pratik hale getirir; böylece kapsamlı donanım kurulumlarına olan ihtiyacı azaltır ve gerçek zamanlı nesne algılama için uygun maliyetli bir çözüm sunar.
Ultralytics şu anda desteklemiyorsa YOLOv4 ile nasıl başlayabilirim?
YOLOv4'e başlamak için resmi YOLOv4 GitHub deposunu ziyaret etmelisin. README dosyasında verilen kurulum talimatlarını izle; bunlar genellikle depoyu klonlamayı, bağımlılıkları yüklemeyi ve ortam değişkenlerini ayarlamayı içerir. Kurulduktan sonra, veri setini hazırlayarak, model parametrelerini yapılandırarak ve sağlanan kullanım talimatlarını izleyerek modeli eğitebilirsin. Ultralytics şu anda YOLOv4'ü desteklemediğinden, en güncel ve ayrıntılı rehberlik için doğrudan YOLOv4 GitHub'a başvurman önerilir.