YOLO (You Only Look Once) Versiyonları ve Özellikleri Nelerdir?

Kaan Uğurluoğlu
4 min readJul 15, 2021

--

Görüntü sınıflandırma , evrişimli sinir ağlarının oldukça kullanışlı bir çeşididir . Basit görüntü sınıflandırmasının yanı sıra, nesne algılamanın en ilginçlerinden biri olduğu bilgisayarla görmede birçok büyüleyici sorun vardır . Sistemlerin bilgisayarla görme, LIDAR ve diğer teknolojileri bir araya getirerek tüm katılımcılarıyla yolun çok boyutlu bir temsilini oluşturduğu sürücüsüz arabalarla yaygın olarak ilişkilendirilir. Nesne algılama ayrıca video gözetiminde, özellikle terör saldırılarını önlemek, genel istatistikler için insanları saymak veya alışveriş merkezlerindeki yürüyüş yollarıyla müşteri deneyimini analiz etmek oldukça yaygın olarak kullanılır

YOLO konvolüsyonel sinir ağları kullanarak nesne tespiti yapan bir algoritmadır. Açılımı ‘’You Only Look Once’’ demektir. Türkçesi “Yalnızca Bir Kez Bak” tır. Ayrıca YOLO, en çok tercih edilen nesne takip algoritmalarındandır. Bunun en büyük sebebi diğer algoritmalara oranla daha hızlı işlem yapmasıdır. Şimdi YOLO’nun çalışma mantığını kavrayalım ve ardından versiyonlarını karşılaştıralım.

YOLO’nun Çalışma Prensibi

CNN(ConvNet) algoritması görüntü ve videolar üzerinde nesneleri algılamak için kullanılan bir algoritmadır. YOLO’nun çalışma mantığı da CNN algoritmasına dayanmaktadır.

YOLO algoritması görüntüler üzerinde tespit ettiği nesnelerin çevresini bounding box ile çevreler. YOLO kendisine girdi olarak verilen görüntüyü NxN’lik ızgaralara böler. Her ızgara kendi içerisinde nesne olup olmadığını ve nesne var olduğunu düşünüyorsa merkez noktasının kendi alanında olup olmadığını düşünür. Ardından nesnenin merkez noktasına sahip olduğuna karar veren ızgara o nesnenin sınıfını, yüksekliğini ve genişliğini bulup o nesnenin çevresine bounding box çizilir.

Birden fazla ızgara, nesnenin kendi içerisinde olduğunu düşünebilir. Bu durumda ekranda gereksiz bounding box’lar oluşur. Bütün bounding boxların güven skoru vardır. Bu durumu engellemek için Non-Maximum Suppression algoritması kullanılır. Kısaca Non-max Suppression algoritması görüntü üzerinde tespit edilen nesneler için çizilen bounding boxlardan güven değeri en yüksek olanı ekrana çizer.

YOLO algoritmasını anlamak için gerçekte neyin tahmin edildiğini belirlemek gerekir. Sonuç olarak, bir nesnenin sınıfını ve nesne konumunu belirten sınırlayıcı kutuyu tahmin etmeyi amaçlıyoruz. Her sınırlayıcı kutu dört tanımlayıcı kullanılarak tanımlanabilir:

  1. sınırlayıcı kutunun merkezi ( b x b y )
  2. genişliği ( b w )
  3. yüksekliği ( b s )
  4. c değeri , bir nesnenin sınıfına karşılık gelir (örneğin: araba, trafik ışıkları, vb.).

Yukarıda bahsettiğimiz gibi, YOLO algoritması ile çalışırken, görüntümüzde potansiyel olarak bir nesne içerebilecek ilginç bölgeler aramıyoruz.

Bunun yerine, tipik olarak 19 × 19 ızgara kullanarak görüntülerimizi hücrelere bölüyoruz. Her hücre, 5 sınırlayıcı kutuyu tahmin etmekten sorumludur (bu hücrede birden fazla nesne olması durumunda). Bu nedenle, bir görüntü için çok sayıda 1805 sınırlayıcı kutuya ulaşıyoruz.

Bu hücrelerin ve sınırlayıcı kutuların çoğu bir nesne içermeyecektir. Bu nedenle, maksimum olmayan bastırma adı verilen bir işlemde, düşük nesne olasılığına sahip kutuları ve en yüksek paylaşılan alana sahip sınırlayıcı kutuları kaldırmaya yarayan p c değerini tahmin ediyoruz .

YOLO v1:

ImageNet-1000 veri seti üzerinde eğitilmiş Darknet çerçevesini kullanır. Daha önceden geliştirilmiş olan nesne algılama algoritmalarından en büyük avantajı tek bir CNN modeli kullanarak tüm işlemleri gerçekleştirebilmesidir. YOLO’ dan önceki modeller gerçek zamanlı bir algılama hızına sahip değildi, YOLO v1 ile bu sorunda çözülmüş oldu.

YOLO v2:

Bu versiyonun önemli iyileştirmeleri daha iyi, daha hızlı ve daha gelişmiş olup, aynı zamanda bir nesne olan Faster R-CNN’yi karşılamak için daha gelişmiştir. Görüntü girişi [1] ve SSD’den (Tekli Çekim Çoklu Kutu Detektörü) nesneleri tanımlamak için bir Bölge Öneri Ağı kullanan algılama algoritması.

YOLO v3:

Önceki sürüm, şimdi YOLO v3 olarak adlandırılan kademeli bir iyileştirme için geliştirildi. Bir süredir birçok nesne algılama algoritması olduğu için artık rekabet, nesnelerin ne kadar doğru ve hızlı algılandığıyla ilgili. YOLO v3, nesneleri doğru bir şekilde ve sınıflandırarak gerçek zamanlı olarak nesne tespiti için ihtiyacımız olan her şeye sahiptir. Yazarlar bunu artımlı bir gelişme olarak adlandırdılar.

YOLO v4:

Bu sürüm 2020 yılında geliştirilmiştir. FPS hızının %12 arttırılması ve çıktı süresi çok fazla arttırılmadan nesne tespitinin artması YOLO v4'ün en önemli özellikleridir.

YOLO v5:

v4 sürümünden sadece iki ay sonra piyasaya sürülmüştür. YOLO v3'ün PyTorch uygulamasını geliştirmesiyle tanınan Glenn Jocher tarafından geliştirilmiştir. Diğer tüm önceki sürümlerden farklıdır çünkü darknet ağı yerine bir PyTorch uygulaması olarak geliştirilmiştir. En önemli gelişmeler; mozaik veri büyütme ve otomatik öğrenme sınırlayıcısının geliştirilmesidir.

Bir sonraki yazıda görüşmek üzere…

--

--

No responses yet