Skip to content

Latest commit

 

History

History
179 lines (101 loc) · 10.9 KB

File metadata and controls

179 lines (101 loc) · 10.9 KB

Nesne Tespiti

Bugüne kadar ele aldığımız görüntü sınıflandırma modelleri, bir görüntüyü alıp MNIST problemindeki 'sayı' sınıfı gibi kategorik bir sonuç üretiyordu. Ancak, birçok durumda bir resmin nesneleri tasvir ettiğini bilmek yeterli değildir - nesnelerin tam konumlarını belirlemek isteriz. İşte nesne tespiti tam olarak bu noktada devreye girer.

Nesne Tespiti

Görsel YOLO v2 web sitesi üzerinden alınmıştır.

Nesne Tespiti için Naif Bir Yaklaşım

Bir resimde bir kediyi bulmak istediğimizi varsayalım, nesne tespiti için çok basit bir yaklaşım şu şekilde olabilir:

  1. Resmi bir dizi kareye ayırın.
  2. Her bir karede görüntü sınıflandırma işlemi gerçekleştirin.
  3. Yeterince yüksek aktivasyon veren kareler, ilgili nesneyi içeriyor olarak kabul edilebilir.

Naif Nesne Tespiti

Görsel Egzersiz Defteri üzerinden alınmıştır.

Ancak, bu yaklaşım ideal olmaktan uzaktır çünkü algoritmanın nesnenin sınır kutusunu çok hassas bir şekilde belirlemesine izin vermez. Daha hassas bir konum belirlemek için, sınır kutularının koordinatlarını tahmin etmek üzere bir tür regresyon çalıştırmamız gerekir - ve bunun için özel veri setlerine ihtiyaç duyarız.

Nesne Tespiti için Regresyon

Bu blog yazısı, şekilleri tespit etme konusunda harika bir giriş sunuyor.

Nesne Tespiti için Veri Setleri

Bu görev için aşağıdaki veri setleriyle karşılaşabilirsiniz:

  • PASCAL VOC - 20 sınıf
  • COCO - Bağlamdaki Yaygın Nesneler. 80 sınıf, sınır kutuları ve segmentasyon maskeleri

COCO

Nesne Tespiti Metrikleri

Kesişim Bölü Birleşim (IoU)

Görüntü sınıflandırma için algoritmanın ne kadar iyi performans gösterdiğini ölçmek kolaydır, ancak nesne tespiti için hem sınıfın doğruluğunu hem de tahmin edilen sınır kutusu konumunun hassasiyetini ölçmemiz gerekir. İkincisi için, Kesişim Bölü Birleşim (IoU) adı verilen bir ölçüm kullanırız, bu iki kutunun (veya iki rastgele alanın) ne kadar iyi örtüştüğünü ölçer.

IoU

Bu harika IoU blog yazısından alınan Şekil 2.

Fikir basittir - iki şeklin kesişim alanını birleşim alanına böleriz. İki özdeş alan için IoU 1 olurken, tamamen ayrık alanlar için 0 olur. Diğer durumlarda 0 ile 1 arasında değişir. Genellikle IoU belirli bir değerin üzerinde olan sınır kutularını dikkate alırız.

Ortalama Hassasiyet (Average Precision)

Bir nesne sınıfı $C$'nin ne kadar iyi tanındığını ölçmek istediğimizi varsayalım. Bunu ölçmek için Ortalama Hassasiyet metriğini kullanırız, bu şu şekilde hesaplanır:

  1. Hassasiyet-Tekrar Çağırma eğrisi, algılama eşik değerine (0'dan 1'e kadar) bağlı olarak doğruluğu gösterir.
  2. Eşik değerine bağlı olarak, görüntüde daha fazla veya daha az nesne algılanır ve farklı hassasiyet ve tekrar çağırma değerleri elde edilir.
  3. Eğri şu şekilde görünür:

Görsel NeuroWorkshop üzerinden alınmıştır.

Belirli bir sınıf $C$ için Ortalama Hassasiyet, bu eğrinin altındaki alandır. Daha spesifik olarak, Tekrar Çağırma ekseni genellikle 10 parçaya bölünür ve Hassasiyet bu noktaların tümü üzerinde ortalanır:

$$ AP = {1\over11}\sum_{i=0}^{10}\mbox{Precision}(\mbox{Recall}={i\over10}) $$

AP ve IoU

Sadece IoU belirli bir değerin üzerinde olan algılamaları dikkate alacağız. Örneğin, PASCAL VOC veri setinde genellikle $\mbox{IoU Threshold} = 0.5$ varsayılırken, COCO'da AP farklı $\mbox{IoU Threshold}$ değerleri için ölçülür.

Görsel NeuroWorkshop üzerinden alınmıştır.

Ortalama Ortalama Hassasiyet - mAP

Nesne Tespiti için ana metrik Ortalama Ortalama Hassasiyet veya mAP olarak adlandırılır. Bu, tüm nesne sınıfları ve bazen de $\mbox{IoU Threshold}$ üzerinde ortalanmış Ortalama Hassasiyet değeridir. mAP hesaplama süreci daha ayrıntılı olarak bu blog yazısında) ve ayrıca kod örnekleriyle burada açıklanmıştır.

Farklı Nesne Tespiti Yaklaşımları

Nesne tespiti algoritmaları iki geniş sınıfa ayrılır:

  • Bölge Öneri Ağları (R-CNN, Fast R-CNN, Faster R-CNN). Ana fikir, İlgi Alanları (ROI) oluşturmak ve maksimum aktivasyonu aramak için CNN çalıştırmaktır. Bu, naif yaklaşıma biraz benzer, ancak ROI'ler daha akıllıca oluşturulur. Bu tür yöntemlerin en büyük dezavantajlarından biri, yavaş olmalarıdır çünkü görüntü üzerinde CNN sınıflandırıcısının birçok geçişine ihtiyaç duyarız.
  • Tek geçiş (YOLO, SSD, RetinaNet) yöntemleri. Bu mimarilerde, ağ hem sınıfları hem de ROI'leri tek bir geçişte tahmin edecek şekilde tasarlanır.

R-CNN: Bölge Tabanlı CNN

R-CNN, ROI bölgelerinin hiyerarşik yapısını oluşturmak için Selective Search kullanır. Bu bölgeler daha sonra CNN özellik çıkarıcıları ve SVM sınıflandırıcıları aracılığıyla nesne sınıfını belirlemek ve sınır kutusu koordinatlarını belirlemek için doğrusal regresyon ile işlenir. Resmi Makale

RCNN

Görsel van de Sande ve ark. ICCV’11'dan alınmıştır.

RCNN-1

Görseller bu blogdan alınmıştır.

F-RCNN - Hızlı R-CNN

Bu yaklaşım R-CNN'e benzer, ancak bölgeler konvolüsyon katmanları uygulandıktan sonra tanımlanır.

FRCNN

Görsel Resmi Makale, arXiv, 2015 üzerinden alınmıştır.

Daha Hızlı R-CNN

Bu yaklaşımın ana fikri, ROI'leri tahmin etmek için sinir ağı kullanmaktır - Bölge Öneri Ağı olarak adlandırılır. Makale, 2016

FasterRCNN

Görsel Resmi Makale üzerinden alınmıştır.

R-FCN: Bölge Tabanlı Tam Konvolüsyonel Ağ

Bu algoritma, Daha Hızlı R-CNN'den bile daha hızlıdır. Ana fikir şu şekildedir:

  1. Özellikler ResNet-101 kullanılarak çıkarılır.
  2. Özellikler Pozisyon-Duyarlı Skor Haritası tarafından işlenir. $C$ sınıflarından her bir nesne $k\times k$ bölgelere ayrılır ve nesne parçalarını tahmin etmek için eğitim yapılır.
  3. $k\times k$ bölgelerden her bir parça için tüm ağlar nesne sınıfları için oy kullanır ve maksimum oyu alan nesne sınıfı seçilir.

r-fcn image

Görsel Resmi Makale üzerinden alınmıştır.

YOLO - Sadece Bir Kez Bak

YOLO, gerçek zamanlı tek geçişli bir algoritmadır. Ana fikir şu şekildedir:

  • Görüntü $S\times S$ bölgelere ayrılır.
  • Her bölge için CNN, $n$ olası nesneleri, sınır kutusu koordinatlarını ve güven = olasılık * IoU tahmin eder.

YOLO

Görsel Resmi Makale üzerinden alınmıştır.

Diğer Algoritmalar

✍️ Egzersizler: Nesne Tespiti

Öğreniminize aşağıdaki defterde devam edin:

ObjectDetection.ipynb

Sonuç

Bu derste, nesne tespitinin çeşitli yollarını hızlı bir şekilde gözden geçirdiniz!

🚀 Meydan Okuma

Bu makaleleri ve defterleri YOLO hakkında okuyun ve kendiniz deneyin:

Gözden Geçirme ve Kendi Kendine Çalışma