Nesne algılama, bir sinir ağının bir görüntüdeki öğeleri öngördüğü ve bunların etrafına sınırlayıcı kutular çizdiği bir tür görüntü kategorizasyonudur. Bir görüntüdeki önceden belirlenmiş bir sınıf kümesine uyan şeyleri algılamak ve yerelleştirmek, nesne algılama olarak adlandırılır.
Nesne algılama (nesne tanıma olarak da bilinir), algılama, tanımlama ve yerelleştirme gibi görevler gerçek dünya bağlamlarında geniş uygulama alanı bulduğundan, Bilgisayarla Görmenin özellikle önemli bir alt alanıdır.
YOLO yaklaşımı bu görevleri yapmanıza yardımcı olabilir. Bu yazıda, YOLO'nun ne olduğu, nasıl çalıştığı, farklı varyasyonları ve daha fazlası dahil olmak üzere daha yakından inceleyeceğiz.
Peki, YOLO nedir?
YOLO, fotoğraflarda gerçek zamanlı nesne tanımlama ve tanıma yöntemidir. Sadece Bir Kez Bakın'ın kısaltmasıdır. Redmond et al. yaklaşımı ilk olarak 2015 yılında Bilgisayarla Görme ve Örüntü Tanıma (CVPR) üzerine IEEE/CVF Konferansında yayınlanan bir makalede önerdi.
Gazeteye OpenCV Halkın Seçimi Ödülü verildi. Sınıflandırıcıları algılama yapmak için yeniden kullanan önceki nesne tanımlama yöntemlerinden farklı olarak, YOLO uçtan uca bir sinir ağı Bu, sınırlayıcı kutuları ve sınıf olasılıklarını aynı anda tahmin eder.
YOLO, nesne tanıma için temelde yeni bir yaklaşım benimseyerek, önceki gerçek zamanlı nesne algılama yöntemlerinden kolayca daha iyi performans gösteren, son teknoloji ürünü sonuçlar üretir.
YOLO'da çalışıyor
YOLO yöntemi, resmi, her biri eşit boyutlu SxS boyutlu sektöre sahip N ızgaraya böler. Bu N ızgaralarının her biri, içerdiği nesneyi algılamak ve bulmaktan sorumludur.
Bu ızgaralar, sırayla, hücre koordinatlarına göre B sınırlayıcı kutu koordinatlarını ve ayrıca öğe adı ve nesnenin hücrede bulunma olasılığını tahmin eder. Aynı öğeyi çeşitli sınırlayıcı kutu tahminleriyle tahmin eden birçok hücre nedeniyle, bu teknik hesaplamayı önemli ölçüde azaltır çünkü hem algılama hem de tanıma resimdeki hücreler tarafından işlenir.
Ancak, çok sayıda yinelenen tahmin üretir. Bu sorunu çözmek için YOLO, Maksimal Olmayan Bastırma kullanır. YOLO, Maksimal Olmayan Bastırmada daha düşük olasılık puanlarına sahip tüm sınırlayıcı kutuları bastırır.
YOLO bunu, her seçenekle bağlantılı olasılık puanlarını inceleyerek ve en yüksek puana sahip olanı seçerek yapar. Mevcut yüksek olasılıklı sınırlayıcı kutu ile Birlik üzerinde en büyük Kesişmeye sahip sınırlayıcı kutular daha sonra bastırılır.
Bu işleme, sınırlayıcı kutular tamamlanana kadar devam edilir.
YOLO'nun farklı varyasyonları
En yaygın YOLO sürümlerinden bazılarına bakacağız. Başlayalım.
1. YOLOv1
İlk YOLO versiyonu 2015 yılında “Yalnızca Bir Kez Bakarsınız: Birleşik, Gerçek Zamanlı Nesne Algılama” Joseph Redmon, Santosh Divvala, Ross Girshick ve Ali Farhadi tarafından.
Hızı, doğruluğu ve öğrenme yeteneği nedeniyle YOLO, nesne tanımlama alanına hızla hakim oldu ve en yaygın kullanılan algoritma haline geldi. Yazarlar, nesne algılamayı bir sınıflandırma sorunu olarak ele almaktan ziyade, coğrafi olarak ayrılmış sınırlayıcı kutular ve ilişkili sınıf olasılıkları ile bir regresyon sorunu olarak ele aldılar ve tek bir çözüm kullanarak çözdüler. sinir ağı.
YOLOv1, fotoğrafları gerçek zamanlı olarak saniyede 45 kare hızında işlerken, daha küçük bir varyant olan Fast YOLO, saniyede 155 kare hızında işliyor ve yine de diğer gerçek zamanlı dedektörlerin iki kat haritasını elde ediyor.
2. YOLOv2
Bir yıl sonra, 2016'da Joseph Redmon ve Ali Farhadi, YOLOv2'yi (YOLO9000 olarak da bilinir) “YOLO9000: Daha İyi, Daha Hızlı, Daha Güçlü".
Modelin gerçek zamanlı olarak çalışırken 9000 farklı öğe kategorisini bile tahmin etme kapasitesi, ona 9000 adını kazandırdı. Yeni model sürümü yalnızca nesne algılama ve sınıflandırma veri kümeleri üzerinde eş zamanlı olarak eğitilmekle kalmadı, aynı zamanda Darknet-19'u yeni temel olarak aldı. modeli.
YOLOv2 de büyük bir başarı olduğu ve hızla bir sonraki son teknoloji nesne tanıma modeli olduğu için, diğer mühendisler algoritmayı denemeye ve kendi benzersiz YOLO sürümlerini üretmeye başladılar. Bazıları makalenin çeşitli noktalarında tartışılacaktır.
3. YOLOv3
Kağıtta "YOLOv3: Artımlı Bir İyileştirme” Joseph Redmon ve Ali Farhadi, 2018 yılında algoritmanın yeni bir versiyonunu yayınladı. Darknet-53 mimarisi üzerine inşa edildi. YOLOv3'teki softmax aktivasyon mekanizmasının yerini bağımsız lojistik sınıflandırıcılar aldı.
Eğitim sırasında ikili çapraz entropi kaybı kullanıldı. Darknet-19 geliştirildi ve şimdi 53 kıvrımlı katmana sahip olan Darknet-53 olarak yeniden adlandırıldı. Bunun yanı sıra, tahminler üç farklı ölçekte yapıldı ve bu da YOLOv3'ün küçük şeyleri tahmin etmedeki doğruluğunu artırmasına yardımcı oldu.
YOLOv3, Joseph Redmon'un son YOLO versiyonuydu, çünkü çalışmalarının dünya üzerinde zararlı bir etkisi olmasını önlemek için başka YOLO iyileştirmeleri üzerinde (hatta bilgisayar görme alanında) çalışmamayı tercih etti. Şimdi çoğunlukla benzersiz nesne algılama mimarileri oluşturmak için bir başlangıç noktası olarak kullanılmaktadır.
4.Yolov4
Alexey Bochkovskiy, Chien-Yao Wang ve Hong-Yuan Mark Liao “YOLOv4: Optimum Hız ve Nesne Algılama DoğruluğuYOLO algoritmasının dördüncü yinelemesi olan Nisan 2020'de.
Ağırlıklı Artık Bağlantılar, Aşamalar Arası Kısmi Bağlantılar, çapraz mini toplu normalleştirme, kendi kendine çekişmeli eğitim, mish aktivasyonu, bırakma bloğu ve CIoU kaybının tümü SPDarknet53 mimarisinin bir parçası olarak tanıtıldı.
YOLOv4, YOLO ailesinin soyundandır, ancak ayrı bilim adamları tarafından geliştirilmiştir (Joseph Redmon ve Ali Farhadi değil). SPDarknet53 omurgası, uzamsal piramit havuzu, boyun olarak PANet yol toplama ve YOLOv3 kafası, mimarisini oluşturur.
Sonuç olarak, YOLOv3 ile karşılaştırıldığında, YOLOv4, %10 daha yüksek Ortalama Hassasiyet ve %12 daha iyi Saniye Başına Kare Sayısı metriklerine ulaşır.
5. YOLOv5
YOLOv5 COCO veri setinde önceden eğitilmiş YOLO modeline dayalı bir dizi nesne tanımlama modeli ve algoritması içeren açık kaynaklı bir projedir.
YOLOv5, bileşik ölçekli nesne tanımlama modellerinden oluşan bir koleksiyondur TTA, model montajı, hiperparametre geliştirme ve ONNX, CoreML ve TFLite'a aktarma için kolay yeteneklerle COCO veri kümesi üzerinde eğitildi. YOLOv5 herhangi bir benzersiz yaklaşım uygulamadığı veya geliştirmediği için resmi belge yayınlanamadı. Bu sadece YOLOv3'ün PyTorch uzantısıdır.
Ultranytics, sponsorluğu altında “yeni YOLO” versiyonunu tanıtmak için bu senaryoyu kullandı. Erişilebilir önceden eğitilmiş beş model de bulunduğundan, YOLOv5 ana sayfası oldukça basittir ve YOLOv5 modellerinin eğitimi ve kullanımı hakkında bir dizi ders ve öneriyle birlikte profesyonelce yapılandırılmış ve yazılmıştır.
YOLO sınırlamaları
YOLO çözmek için en büyük teknik gibi görünse de nesne algılama sorunlar, bir takım sakıncaları vardır. Her ızgara yalnızca bir öğeyi tanımlayabildiğinden, YOLO, gruplar halinde oluşan resimlerdeki küçük şeyleri algılamakta ve ayırmakta zorluk çekmektedir. Karınca sürüsü gibi sürü halindeki küçük şeyleri YOLO'nun tanımlaması ve yerini belirlemesi zordur.
Fast RCNN gibi önemli ölçüde daha yavaş nesne tanımlama yöntemleriyle karşılaştırıldığında, YOLO benzer şekilde daha az doğrulukla karakterize edilir.
YOLOv5'i kullanmaya başlayın
Bir YOLOv5'i çalışırken görmekle ilgileniyorsanız, şuraya göz atın: resmi GitHub ve PyTorch'ta YOLOv5.
Sonuç
YOLOv5'in ilk sürümü son derece hızlı, performanslı ve kullanımı kolaydır. YOLOv5, YOLO ailesine herhangi bir yeni model mimarisi eklemese de, nesne dedektörleri için son teknolojiyi geliştiren yeni bir PyTorch eğitim ve dağıtım çerçevesi sağlar.
Ayrıca, YOLOv5 son derece kullanıcı dostudur ve ısmarlama nesneler üzerinde kullanıma hazır olarak "kutudan çıkar" gelir.
Yorum bırak