|
|
||
|---|---|---|
| .. | ||
| lab | ||
| ObjectDetection.ipynb | ||
| README.md | ||
README.md
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ç üretmiştir. 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.
Ders Öncesi Test
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 oldukça basit bir yaklaşım şu şekilde olabilir:
- Resmi bir dizi kareye bölmek.
- Her bir karede görüntü sınıflandırması çalıştırmak.
- Yeterince yüksek aktivasyon veren karelerin, ilgili nesneyi içerdiği kabul edilebilir.
Görsel Egzersiz Not 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 - bunun için de özel veri setlerine ihtiyaç duyarız.
Nesne Tespiti için Regresyon
Bu blog yazısı, şekilleri tespit etmeye dair harika bir giriş sunmaktadır.
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ğlamda Yaygın Nesneler. 80 sınıf, sınır kutuları ve segmentasyon maskeleri
Nesne Tespiti Metrikleri
Kesişim Bölü Birleşim (Intersection over Union)
Görüntü sınıflandırması 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 hakkında bu mükemmel blog yazısından alınan Şekil 2.
Fikir basittir - iki şekil arasındaki 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 olacaktır. 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:
- 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.
- 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.
- 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 kesin 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 kabul edilirken, 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
Görsel van de Sande ve ark. ICCV’11'dan alınmıştır.
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.
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
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:
- Özellikler ResNet-101 kullanılarak çıkarılır.
- Özellikler Konum-Duyarlı Skor Haritası tarafından işlenir.
Csınıflarından her bir nesnek\times kbölgelere bölünür ve nesne parçalarını tahmin etmek için eğitim yapılır. k\times kbö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.
Görsel Resmi Makale üzerinden alınmıştır.
YOLO - Sadece Bir Kez Bak
YOLO, gerçek zamanlı bir tek geçiş algoritmasıdır. Ana fikir şu şekildedir:
- Görüntü
S\times Sbölgelere ayrılır. - Her bölge için CNN,
nolası nesneleri, sınır kutusu koordinatlarını ve güven = olasılık * IoU tahmin eder.
Görsel Resmi Makale üzerinden alınmıştır.
Diğer Algoritmalar
- RetinaNet: Resmi Makale
- SSD (Tek Atış Dedektörü): Resmi Makale
✍️ Egzersizler: Nesne Tespiti
Öğreniminize aşağıdaki not defterinde devam edin:
Sonuç
Bu derste, nesne tespitinin çeşitli yollarını kapsayan hızlı bir tur yaptınız!
🚀 Meydan Okuma
YOLO ile ilgili bu makaleleri ve not defterlerini okuyun ve kendiniz deneyin:
- YOLO'yu açıklayan iyi bir blog yazısı
- Resmi site
- Yolo: Keras uygulaması, adım adım not defteri
- Yolo v2: Keras uygulaması, adım adım not defteri
Ders Sonrası Test
İnceleme ve Kendi Kendine Çalışma
- Nesne Tespiti - Nikhil Sardana
- Nesne tespiti algoritmalarının iyi bir karşılaştırması
- Nesne Tespiti için Derin Öğrenme Algoritmalarının İncelemesi
- Temel Nesne Tespiti Algoritmalarına Adım Adım Giriş
- Python'da Nesne Tespiti için Daha Hızlı R-CNN Uygulaması
Ödev: Nesne Tespiti
Feragatname:
Bu belge, AI çeviri hizmeti Co-op Translator kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hata veya yanlışlık içerebileceğini lütfen unutmayın. Belgenin orijinal dili, yetkili kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilir. Bu çevirinin kullanımından kaynaklanan yanlış anlamalar veya yanlış yorumlamalar için sorumluluk kabul etmiyoruz.









