⭕ Bölge Tabanlı (Region-Based) CNN'ler

🔷 R-CNN (Region Based Convoltional Neural Network)

Aşağıdaki temellere dayanır:

  1. Çok sayıda bölge seçmek

  2. Ve sonra bunları selective search yaparak 2000’e düşürmek

    • Her bölgeye 'bölge adayı' region proposal denir

  3. Her bölgeden convolutional özellikleri çıkarmak

  4. Sonunda herhangi bir obje bulunup bulunmadığını kontrol etme

🤔 Selective Search nedir?

Farklı bölgeleri tanımlamak için bir algoritma, Temelde bir objeyi oluşturan dört bölge vardır: varying scales, colors, textures, and enclosure. Selective search Seçici arama, görüntüdeki bu kalıpları tanımlar ve buna göre çeşitli bölgeler önerir

🙄 Başka bir deyişle: Benzer ölgelerin hiyerarşik gruplamasını sağlamaya ve ona göre farklı bölgeler önermeye dayanan bir algoritmadır

👀 Görselleştirme

🙄 Dezavantajlar

  • Eğitilmesi çok uzun sürer.

  • Gerçek zamanlı -real time- uygulamaları için kullanılmaz.

  • Selective search algoritması fix bir algoritmadır. O yüzden, o aşamada öğrenme gerçekleşmiyor.

    • Bu, kötü bölge adayı oluşturulmasına neden olabilir.

🤔 Neden çok yavaş?

R-CNN'ler çok yavaştır 🐢 sebepler:

  • Selective search'e dayalı olarak her bir görüntü için 2.000 bölge çıkarmak

  • Her görüntü bölgesi için CNN kullanarak özellikleri çıkarmak.

    • Eğer N resmimiz varsa, CNN özelliklerinin sayısı N*2000 olacaktır. 😢

💫 Fast R-CNN (Fast Region Based Convoltional Neural Networks)

Görüntü başına 2.000 kez CNN çalıştırmak yerine, görüntü başına yalnızca bir kez çalıştırabilir ve ilgi alanlarını (Region Of Interest ROI) elde edebiliriz (bazı objeler içeren bölgeler).

Yani, aşağıdaki mantığa dayanır:

  1. Tüm görüntüyü CNN'ye besliyoruz

  2. CNN bir feature map oluşturur

  3. Oluşturulan feature map'i kullanarak ROI'i çıkardık (Region of interests)

    • 2000 bölgenin sorunu çözüldü 🎉

    • Selective search'i hala kullanıyoruz 🙄

  4. Sonra, bölgeleri sabit bir boyuta yeniden boyutlandırıyoruz (ROI pooling katmanını kullanarak)

  5. Son olarak, bölgeleri fully connected katmana besleriz (sınıflandırılmak üzere)

👀 Görselleştirme

🙄 Dezavanatjlar

Bölge adayları Fast R-CNN algoritmasında hala darboğazlar oluşturuyor ve performansı etkiliyor.

➰ Faster R-CNN (Fast Region Based Convoltional Neural Networks)

Faster R-CNN, Selective search sorununu Region Proposal Network (RPN) ile değiştirerek giderir 🤗

Yani, aşağıdaki mantığa dayanır:

  1. Tüm görüntüyü CNN'ye besliyoruz

  2. CNN bir feature map oluşturur

  3. Feature map üzerine RPN uygularız

  4. RPN, nesne adaylarını, aday puanları objectness ile birlikte döndürür.

    • Selective search sorunu giderildi 🎉

  5. Sonra, bölgeleri sabit bir boyuta yeniden boyutlandırıyoruz (ROI pooling katmanını kullanarak)

  6. Son olarak, bölgeleri fully connected katmana besleriz (sınıflandırılmak üzere)

👀 Görselleştirme

👩‍🏫 RPN Nasıl Çalışır?

  1. RPN, CNN'den feature map alır

  2. Map üzerine 3*3'lük pencere kullanır

  3. k tane anchor boxes üretir

    • Kutular farklı şekil ve boyutlardadır

Anchor boxes, görüntü boyunca yerleştirilmiş ve farklı şekil ve boyutlarda sabit boyutta kutularıdır. Her anchor box için, RPN iki şeyi tahmin eder:

  1. Anchor'un bir nesne olma olasılığını

    • (objenin hangi sınıfa ait olduğunu dikkate almaz)

  2. Anchor'ları objeyi daha iyi sığdıracak şekilde ayarlamak için bounding box

👀 Görselleştirme

😵 Kavramları Bir Araya Getirmek İçin

Algoritma

Özet

Sınırlandırma

🔷 R-CNN

Görüntülerden selective search kullanarak 2000 bölge çıkartır

Yüksek hesaplama süresi

💫 Fast R-CNN

Görüntü feature maps çıkarmak için bir kez CNN'e geçirilir ve sonra bölgeler selective search ile çıkarılır

Selective search yavaştır

➰ Faster R-CNN

Selective search yöntemini RPN ile değiştirir

yavaş (?)

🤹‍♀️ Benchmarks

🌞 Yazının Aslı

🔎 Daha Fazla Oku