⭕Bölge Tabanlı (Region-Based) CNN'ler
Last updated
Last updated
Aşağıdaki temellere dayanır:
Çok sayıda bölge seçmek
Ve sonra bunları selective search yaparak 2000’e düşürmek
Her bölgeye 'bölge adayı' region proposal denir
Her bölgeden convolutional özellikleri çıkarmak
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:
Tüm görüntüyü CNN'ye besliyoruz
CNN bir feature map oluşturur
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 🙄
Sonra, bölgeleri sabit bir boyuta yeniden boyutlandırıyoruz (ROI pooling katmanını kullanarak)
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:
Tüm görüntüyü CNN'ye besliyoruz
CNN bir feature map oluşturur
Feature map üzerine RPN uygularız
RPN, nesne adaylarını, aday puanları objectness ile birlikte döndürür.
Selective search sorunu giderildi 🎉
Sonra, bölgeleri sabit bir boyuta yeniden boyutlandırıyoruz (ROI pooling katmanını kullanarak)
Son olarak, bölgeleri fully connected katmana besleriz (sınıflandırılmak üzere)
RPN, CNN'den feature map alır
Map üzerine 3*3'lük pencere kullanır
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:
Anchor'un bir nesne olma olasılığını
(objenin hangi sınıfa ait olduğunu dikkate almaz)
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ş (?)