Nesne Tanıma Algoritmaları: R-CNN, Fast R-CNN ve Faster R-CNN Nedir?

Günümüzde belirli algoritmalar sayesinde görme yetisini makinelere kazandırmaya başlayan araştırmacılar bu konuda en büyük yardımı CNN (Convolutional Neural Network) algoritmaları sayesinde başarabilmekte. CNN (Convolutional Neural Networks) Nedir? yazımızda da bahsettiğimiz gibi CNN algoritmaları yüz tanıma, görüntü sınıflandırma ve nesne tespiti gibi birçok alanda kullanılmakta. Fakat bu mükemmel algoritmanın bazı zaafları da bulunmakta. Çok işlevli olan CNN algoritmasının en büyük zaafı bir görselde aynı anda sadece bir obje tespit edebilmesi. Bu nedenle içinde birden fazla sınıfta obje bulunan görsellerde tek başına CNN algoritması pek de doğru bir tercih olmamakta. Görüntü işlemede bu sorunu çözmek için araştırmacılar daha da derin nesne tanıma algoritmaları geliştirdi.



Region Based CNN (R-CNN)

R-CNN mimarisi, görüntülerde bulunan objelere ait sınıfları ve bu objelere ait bounding box’ları (sınırlayıcı kutular) tespit etmek için kullanılır. Çoklu objeye sahip görsellerde kolay bir şekilde CNN çalıştıramadığımızdan R-CNN mimarisi geliştirilmiştir.

R-CNN’de ana fikir iki adımdan oluşmaktadır. İlk olarak selective search (seçici arama) ile görselde obje olmaya aday featurelar belirlenir. Yaklaşık 2000 region (bölge) belirlendikten sonra her biri ayrı ayrı, bir CNN modeline girdirilir ve sınıfları, bounding box’ları tahmin edilir.

Selective Search (Seçici Arama)

Selective search görsellerde yakalanması gereken bölgeleri belirlemek için kullanılan bir metottur. Küçükten büyüğe hiyerarşi mantığı ile çalışan selective search’te ilk olarak ufak bölgeler belirlenir. Ardından birbirine benzer olan iki bölge birleştirilir ve daha büyük yeni bölge ortaya çıkar. Bu işlem tekrarlı olarak devam eder. Her iterasyonda daha büyük bölgeler ortaya çıkar ve görselde bulunan objeler bir nevi kümelendirilir.

selective-search
Selective Search (Seçici Arama)

Selective search ile R-CNN için belirli bölge adayları belirlenir. Bu bölge adayları her biri farklı CNN ağlarına girdi olarak girer. Bu bölge aday çıkarma sürecinin sonunda yaklaşık olarak 2000 adet farklı bölge ortaya çıkar ve bu 2000 bölge için, 2000 CNN ağı kullanılır. CNN ağlarından çıkan öznitelikler kullanılarak SVM modellerinde objenin sınıfı, regresyon modellerinde ise bounding boxları belirlenir.

Non-Max Supression

Verilen görsellerden her ne kadar 2000 adet bölge ortaya çıksa da bunların hepsi kullanılmaz. Doğru bounding box’ları belirlemek için R-CNN, Non-Max Supression kullanılır. Non-Max Supression eldeki bounding boxlardan, Intersection Over Union (IoU) skoru 0.5’ten büyük olanları tutar ve diğerlerini bastırır. Eğer bir obje için birden fazla 0.5’ten büyük bounding box çıkarsa bunlardan en yükseğini alır ve onu kullanır.

Intersection Over Union (IoU)

Intersection Over Union (IoU) için bir nevi bounding box’ların doğruluk değeri diyebiliriz. Verilen bounding box ile gerçek bounding box karşılaştırılır. Bu karşılaştırma sonucunda ortaya IoU değeri çıkar. Matematiksel olarak ise şu şekildedir.

IoU = (y ∩  y̅) / (y U  y̅)

IoU = Tahmin edilen alan ve gerçek alanın kesişimi / Tahmin edilen alan ve gerçek alanın birleşimi



Intersection-over-union

R-CNN Mimarisi

nesne-tanima-algoritmalari-r-cnn-mimarisi

Yaklaşık olarak eğitim süresi: 84 saat

Yaklaşık olarak tahmin süresi: 47 saniye

Fast R-CNN

R-CNN modelinde 2000 farklı aday bölge çıkarılması ve bu 2000 bölge için, 2000 farklı CNN ağı kullanılması eğitim süreci anlamında çok büyük maliyete sebep olmakta. Bunun için Fast R-CNN mimarileri 2000 CNN modelinden kurtulup sadece tek bir model kullanmaktadır.

Fast R-CNN’de odaklanılması gereken en büyük geliştirme R-CNN’de kullanılan CNN, SVM ve Regressor’u kombinlemesidir. Bu kombinleme ile muazzam bir performans üstünlüğü elde etmektedir.

Fast R-CNN Mimarisi

nesne-tanima-algoritmalari-fast-r-cnn

Fast R-CNN’de:

1- Tüm görsel CNN ile işlenir ve feature map’ler (öznitelik haritaları) çıkarılır

2- Her bölge önerisi için gerekli öznitelikler toplanır. Bunlara region proposal feature map denir. Ardından bu haritalar max pooling (maksimum havuzlama) ile belirli boyutlara indirgenir. Bu havuzlama katmanına ise RoI (Region of Interest) pooling layer adı verilir.

3- Ardından bu öznitelik haritaları tek boyutlu vektör haline indirgenir.

4- Bu vektörler sinir ağına sokulur ve softmax ile bölgedeki objeye ait sınıf, bounding box regressor ile de objenin sınırlayıcı kutusu belirlenir.

Yaklaşık olarak eğitim süresi: 8.75 saat



Yaklaşık olarak tahmin süresi: 2.3 saniye

Faster R-CNN

Faster R-CNN maliyet açısından yük olan selective search yerine daha kullanışlı olan Region Proposal Network kullanmaktadır.

Faster R-CNN iki aşamada incelenebilir

  • Region Proposal Network (RPN): İlk aşama olan RPN bölge önermeye yarayan derin, evrişimli bir sinir ağıdır. RPN, girdi olarak herhangi bir boyutta girdiyi alır ve obje skoruna göre bir dizi nesnelere ait olabilecek dikdörtgen teklifi ortaya çıkarır. Bu öneriyi, evrişimli katman tarafından oluşturulan öznitelik haritası üzerinde küçük bir ağı kaydırarak yapar.
  • Fast R-CNN: RPN tarafından üretilen bu hesaplamalar Fast R-CNN mimarisine sokulur ve bir sınıflandırıcı ile objenin sınıfı, regressor ile de bounding box’u tahmin edilir.

Faster R-CNN Mimarisi

nesne-tanima-algoritmalari-faster-r-cnn

Yaklaşık olarak eğitim süresi: 8.75 saat

Yaklaşık olarak tahmin süresi: 0.3 saniye

Genel hatlarıyla kullanılmakta olan nesne tanıma algoritmaları bu şekilde özetlenebilir. Bu mimariler sayesinde çoklu obje tespiti hem yüksek doğruluk oranlarıyla hem de gayet hızlı bir şekilde yapılabilmektedir.

Teknoloji'den geri kalmamak için e-posta listemize abone olun!

Özgür Doğan (Okunuşu: Özgür Do:an) : Teknoloji içerikleri yazmayı ve okumayı seven kişi, kimse, topluluk.


“Nesne Tanıma Algoritmaları: R-CNN, Fast R-CNN ve Faster R-CNN Nedir?” üzerine 2 yorum

  1. görme engelliler için kullanılan bu şekilde teknolojik yenilikler var mı acaba. bu konuda araştırmalarda karşınıza çıkan gelişme varsa paylaşırsanız sevinirim.

    • Açıkçası bu konuyla ilgili araştırmalar hakkında pek bilgim yok ama çalışmalara bakmak için Google Scholar, arXiv.org gibi kaynaklardan faydalanabilirsiniz.

Yorumlar kapalı.