YOLO (You Only Look Once), bilgisayarla görme alanında kullanılan ve nesne algılama (object detection) işlemini gerçekleştiren bir derin öğrenme algoritmasıdır. 2016 yılında Joseph Redmon ve arkadaşları tarafından geliştirilen YOLO, bir görüntü üzerinde bulunan nesneleri tek bir aşamada algılayıp sınıflandırmasıyla bilinir. Bu yaklaşım, geleneksel nesne algılama yöntemlerinden farklı olarak görüntüleri birden fazla adımda işlemeye gerek kalmadan, hızlı ve verimli bir şekilde işler.
YOLO’nun temel prensibi, görüntüyü bir grid’e bölmek ve her bir grid hücresinde nesne olup olmadığını tespit etmektir. Eğer bir nesne algılanırsa, bu nesnenin sınıfı ve konum bilgileri (bounding box) belirlenir. Bu işlemler tek bir ileri besleme (forward pass) sırasında gerçekleştiği için, YOLO diğer yöntemlere kıyasla oldukça hızlı çalışır. Bu hız, YOLO’yu gerçek zamanlı uygulamalar için ideal bir seçim haline getirir.
YOLO’nun sağladığı hızın yanı sıra, yüksek doğruluk oranı da dikkate değer. Algoritmanın bu iki önemli özelliği, özellikle otonom araçlar, güvenlik sistemleri ve artırılmış gerçeklik (AR) gibi uygulamalarda geniş kullanım alanı bulmasını sağlamıştır. YOLO’nun çeşitli versiyonları geliştirilmiş olup, her yeni sürümde hem hız hem de doğruluk açısından iyileştirmeler yapılmıştır.
Sonuç olarak, YOLO, nesne algılama işlemlerinde yüksek performans sunan, hızlı ve güvenilir bir algoritma olarak öne çıkmakta ve bilgisayarla görme projelerinde yaygın olarak kullanılmaktadır.
YOLO Ne İşe Yarar?
YOLO Sürümleri
YOLO (You Only Look Once) algoritması, ilk olarak 2016 yılında Joseph Redmon ve arkadaşları tarafından geliştirilmiştir. Zamanla, YOLO’nun farklı versiyonları geliştirilmiş ve her sürümde çeşitli iyileştirmeler yapılmıştır. Bu sürümler, nesne algılama işlemlerini daha hızlı ve daha doğru hale getirmeyi amaçlamaktadır. İşte YOLO’nun ana sürümleri ve her bir sürümün özellikleri:
1. YOLOv1 (2016)
İlk sürüm olan YOLOv1, nesne algılamayı tek bir adımda gerçekleştirerek, görüntüyü grid’lere böler ve her grid hücresinde birden fazla nesne olup olmadığını kontrol eder. YOLOv1, diğer nesne algılama algoritmalarına kıyasla çok daha hızlıydı ancak küçük nesneler üzerinde düşük doğruluk oranı gösterdi. Ayrıca, sınırlı sayıda nesneyi algılayabiliyordu.
2. YOLOv2 (2016)
YOLOv2, “YOLO9000” adıyla da bilinir ve YOLOv1’e göre önemli iyileştirmeler sunar. Bu sürümde, daha küçük nesneleri algılayabilmek için daha yüksek çözünürlüklü girdiler kullanılır. YOLOv2, aynı zamanda Anchor Boxes (Çapalar Kutusu) kullanarak nesne konumlarının daha iyi belirlenmesini sağlar. Bu sürüm, hem hız hem de doğruluk açısından büyük bir gelişme kaydetmiştir ve yaklaşık 9000 farklı sınıfı algılayabilmektedir.
3. YOLOv3 (2018)
YOLOv3, çoklu ölçekli tahminler sunarak, farklı boyutlardaki nesneleri daha iyi algılayabilen bir modeldir. YOLOv3, bir görüntüyü üç farklı ölçekte işler ve her bir ölçekte nesne tahmini yapar. Bu, hem küçük hem de büyük nesnelerin daha doğru algılanmasını sağlar. YOLOv3, Darknet-53 adlı yeni bir mimari kullanarak daha derin ve daha güçlü bir model sunar, ancak önceki sürümlere göre biraz daha yavaştır.
4. YOLOv4 (2020)
YOLOv4, hız ve doğruluk arasında daha iyi bir denge kurarak, önceki sürümlerin performansını artırmayı hedefler. YOLOv4, verimli ve ölçeklenebilir bir model sunarak, çeşitli uygulamalarda yüksek performans gösterir. Bu sürümde, bag of freebies (BoF) ve bag of specials (BoS) adı verilen tekniklerle model performansı artırılmıştır. YOLOv4, ayrıca CSPDarknet53 mimarisi kullanarak daha yüksek doğruluk oranları elde etmiştir.
5. YOLOv5 (2020)
YOLOv5, YOLO ailesinin resmi bir sürümü olmasa da, büyük bir topluluk tarafından geliştirilmiş ve popüler hale gelmiştir. YOLOv5, Python ve PyTorch tabanlıdır ve önceki sürümlere kıyasla daha kullanıcı dostu ve esnek bir yapı sunar. YOLOv5, özellikle eğitim sürecinde kolaylık sağlar ve çeşitli model boyutları (small, medium, large, extra-large) sunarak farklı uygulamalar için optimize edilmiştir.
6. YOLOv6 (2022)
YOLOv6, YOLO’nun resmi bir sürümü olmayıp, ancak ileri düzeyde optimizasyonlar sunar. Bu sürümde, özellikle endüstriyel uygulamalar için tasarlanmış daha küçük ve daha verimli bir model sunulur. YOLOv6, çeşitli optimizasyon teknikleri kullanarak hem hız hem de doğruluk açısından ileri düzey performans sunar.
7. YOLOv7 (2022)
YOLOv7, YOLO serisinin en son sürümlerinden biri olup, daha hızlı ve daha doğru nesne algılama yetenekleri sunar. YOLOv7, optimize edilmiş bir yapı sunarak, özellikle gerçek zamanlı uygulamalar için ideal hale getirilmiştir. YOLOv7, karmaşık nesne algılama görevlerinde yüksek performans gösterir ve önceki sürümlere kıyasla daha verimli bir modeldir.
8. YOLOv8 (2023)
YOLOv8, YOLO serisinin en güncel sürümüdür ve önceki sürümlerdeki tüm gelişmeleri bir araya getirir. Bu sürüm, en yüksek doğruluk ve hız için optimize edilmiştir ve hem endüstriyel uygulamalarda hem de araştırma projelerinde yaygın olarak kullanılmaktadır. YOLOv8, çok daha esnek bir yapıya sahip olup, farklı boyutlardaki modellerle çeşitli uygulama senaryolarına kolayca uyum sağlar.
9. YOLO-NAS (2023)
YOLO-NAS, Neural Architecture Search (NAS) teknolojisiyle optimize edilmiş bir YOLO sürümüdür. Bu sürüm, otomatik olarak en uygun ağ mimarisini bulmak için NAS yöntemini kullanır. YOLO-NAS, özellikle nesne algılama görevlerinde hız ve doğruluk açısından en iyi performansı sunmak için tasarlanmıştır. YOLO-NAS, çeşitli uygulamalar için optimize edilmiş bir yapı sunarak esnek ve güçlü bir nesne algılama çözümü sunar.