|
|
||
|---|---|---|
| .. | ||
| lab | ||
| README.md | ||
README.md
Nesne Tespiti
Şimdiye kadar ele aldığımız görüntü sınıflandırma modelleri, bir görüntü alır ve MNIST probleminde 'sayı' sınıfı gibi kategorik bir sonuç üretir. Ancak birçok durumda, bir resmin nesneleri tasvir ettiğini bilmekle yetinmek istemiyoruz - bu nesnelerin kesin konumunu belirleyebilme yeteneğine sahip olmak istiyoruz. İşte bu, nesne tespitinin tam anlamıdır.
Ön-derse Quiz
YOLO v2 web sitesi kaynaklı görüntü
Nesne Tespiti için Naif Bir Yaklaşım
Bir resimde bir kediyi bulmak istediğimizi varsayalım, nesne tespiti için çok naif bir yaklaşım aşağıdaki gibi olacaktır:
- Resmi bir dizi kareye böl
- Her bir kare üzerinde görüntü sınıflandırması yap.
- Yeterince yüksek aktivasyon sonucu veren kareler, söz konusu nesneyi içeriyor olarak kabul edilebilir.
Alıştırma Defteri kaynağından görüntü
Ancak bu yaklaşım, algoritmanın nesnenin sınırlayıcı kutusunu oldukça belirsiz bir şekilde yerleştirmesine olanak tanıdığı için ideal değildir. Daha kesin bir konum için, sınırlayıcı kutuların koordinatlarını tahmin etmek üzere bir tür regresyon uygulamamız gerekiyor - ve bunun için belirli veri setlerine ihtiyacımız var.
Nesne Tespiti için Regresyon
Bu blog yazısı, şekil tespiti için 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 Ortak Nesneler. 80 sınıf, sınırlayıcı kutular ve segmentasyon maskeleri
Nesne Tespiti Metrikleri
Kesim Üzerine Birlik
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 çıkarılan sınırlayıcı kutu konumunun doğruluğunu ölçmemiz gerekiyor. İkincisi için, iki kutunun (veya iki rastgele alanın) ne kadar örtüştüğünü ölçen Kesim Üzerine Birlik (IoU) adı verilen bir ölçüm kullanıyoruz.
Bu mükemmel IoU blog yazısının 2. Şeması
Fikir basit - iki şekil arasındaki kesişim alanını, bu şekillerin birleşim alanına bölüyoruz. İki özdeş alan için, IoU 1 olurken, tamamen ayrı alanlar için 0 olur. Aksi takdirde, 0 ile 1 arasında değişecektir. Genellikle, IoU'nun belirli bir değerin üzerinde olduğu sınırlayıcı kutuları dikkate alıyoruz.
Ortalama Doğruluk
Verilen bir nesne sınıfı C'nin ne kadar iyi tanındığını ölçmek istiyoruz. Bunu ölçmek için, Ortalama Doğruluk metriklerini kullanıyoruz, bu da aşağıdaki gibi hesaplanır:
- Doğruluk eşiğine (0 ile 1 arasında) bağlı olarak doğruluk değerlerini gösteren Doğruluk-Hatırlama eğrisini dikkate al.
- Eşeğe bağlı olarak, görüntüde daha fazla veya daha az nesne tespit edeceğiz ve farklı doğruluk ve hatırlama değerleri elde edeceğiz.
- Eğri şu şekilde görünecek:
NeuroWorkshop kaynağından görüntü
Verilen bir sınıf C için ortalama Doğruluk, bu eğrinin altındaki alandır. Daha kesin olarak, Hatırlama ekseni genellikle 10 parçaya bölünür ve Doğruluk tüm bu noktalar üzerinde ortalanır:
AP = {1\over11}\sum_{i=0}^{10}\mbox{Doğruluk}(\mbox{Hatırlama}={i\over10})
AP ve IoU
Sadece IoU'nun belirli bir değerin üzerinde olduğu tespitleri dikkate alacağız. Örneğin, PASCAL VOC veri setinde genellikle \mbox{IoU Eşiği} = 0.5 varsayılırken, COCO'da AP farklı \mbox{IoU Eşiği} değerleri için ölçülmektedir.
Ortalama Ortalama Doğruluk - mAP
Nesne Tespiti için ana metrik Ortalama Ortalama Doğruluk veya mAP olarak adlandırılır. Bu, Tüm nesne sınıfları üzerinden ortalama alınmış Ortalama Doğruluk değeridir ve bazen de \mbox{IoU Eşiği} üzerinden ortalama alınır. mAP hesaplama süreci daha ayrıntılı olarak bu blog yazısında ve burada kod örnekleri ile açıklanmaktadır.
Farklı Nesne Tespiti Yaklaşımları
Nesne tespiti algoritmalarının iki geniş sınıfı vardır:
- Bölge Teklif Ağları (R-CNN, Fast R-CNN, Faster R-CNN). Ana fikir, İlgi Alanları (ROI) üretmek ve bunlar üzerinde maksimum aktivasyon aramak için CNN çalıştırmaktır. Bu, naif yaklaşıma biraz benziyor, tek fark, ROI'lerin daha akıllı bir şekilde üretilmesidir. Bu tür yöntemlerin en büyük dezavantajlarından biri, görüntü üzerinde CNN sınıflandırıcısının birçok geçişini gerektirdiği için yavaş olmalarıdır.
- 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 tasarlıyoruz.
R-CNN: Bölge Tabanlı CNN
R-CNN, ROI bölgelerinin hiyerarşik yapısını oluşturmak için Seçici Arama kullanır, bu bölgeler daha sonra CNN özellik çıkarıcıları ve SVM sınıflandırıcıları üzerinden geçirilerek nesne sınıfı belirlenir ve sınırlayıcı kutu koordinatlarını belirlemek için doğrusal regresyon uygulanır. Resmi Makale
van de Sande et al. ICCV’11 kaynağından görüntü
Bu blog kaynağından görüntü
F-RCNN - Hızlı R-CNN
Bu yaklaşım R-CNN ile benzerdir, ancak bölgeler, konvolüsyon katmanları uygulandıktan sonra tanımlanır.
Resim Resmi Makale, arXiv, 2015
Daha Hızlı R-CNN
Bu yaklaşımın ana fikri, ROI'leri tahmin etmek için bir sinir ağı kullanmaktır - bu, Bölge Teklif Ağı olarak adlandırılır. Makale, 2016
Resim resmi makaleden
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 aşağıdaki gibidir:
- Özellikler ResNet-101 kullanılarak çıkarılır.
- Özellikler Pozisyon-Duyarlı Skor Haritası tarafından işlenir.
Csınıflarındaki her nesnek\times kbölgeye ayrılır ve nesnelerin 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 oy alan nesne sınıfı seçilir.
Resim resmi makaleden
YOLO - Bir Kez Bakarsınız
YOLO, gerçek zamanlı bir tek geçiş algoritmasıdır. Ana fikir aşağıdaki gibidir:
- Görüntü
S\times Sbölgelere bölünür. - Her bölge için, CNN
nolası nesneyi, sınırlayıcı kutu koordinatlarını ve güven = olasılık * IoU'yu tahmin eder.
Resmi makale kaynağından görüntü
Diğer Algoritmalar
- RetinaNet: resmi makale
- Torchvision'da PyTorch Uygulaması
- Keras Uygulaması
- Keras Örneklerinde RetinaNet ile Nesne Tespiti
- SSD (Tek Atış Dedektörü): resmi makale
✍️ Alıştırmalar: Nesne Tespiti
Aşağıdaki not defterinde öğreniminize devam edin:
Sonuç
Bu derste, nesne tespitinin gerçekleştirilebileceği çeşitli yolları hızlı bir şekilde keşfettiniz!
🚀 Zorluk
Bu makaleleri ve not defterlerini okuyun, YOLO hakkında bilgi edinin ve kendiniz deneyin.
- YOLO'yu tanımlayan 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ı sınav
Gözden Geçirme & Kendi Kendine Çalışma
- Nikhil Sardana tarafından Nesne Tespiti
- Nesne tespit algoritmalarının iyi bir karşılaştırması
- Nesne Tespiti için Derin Öğrenme Algoritmalarının Gözden Geçirilmesi
- Temel Nesne Tespit Algoritmalarına Adım Adım Giriş
- Nesne Tespiti için Python'da Daha Hızlı R-CNN Uygulaması
Görev: Nesne Tespiti
Açıklama:
Bu belge, makine tabanlı yapay zeka çeviri hizmetleri kullanılarak çevrilmiştir. Doğruluk için çaba göstersek de, otomatik çevirilerin hatalar veya yanlışlıklar içerebileceğini lütfen unutmayın. Orijinal belge, kendi dilinde otoriter kaynak olarak kabul edilmelidir. Kritik bilgiler için profesyonel insan çevirisi önerilmektedir. Bu çevirinin kullanılması sonucunda ortaya çıkan yanlış anlamalar veya yanlış yorumlamalardan sorumlu değiliz.









