⭕
Bölge Tabanlı (Region-Based) CNN'ler
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
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


- 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.
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. 😢
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)


Bölge adayları Fast R-CNN algoritmasında hala darboğazlar oluşturuyor ve performansı etkiliyor.
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)

- 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

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ş (?) |


Last modified 3yr ago