Ana SayfaBilgisayar MühendisliğiMask R-CNN: Bir Nesne Tanıma Algoritması

Mask R-CNN: Bir Nesne Tanıma Algoritması

Mask R-CNN bir nesne tanıma algoritmasıdır. 2018 yılında Kaiming He ve arkadaşları tarafından piyasaya sürülmüştür. R-CNN ailesinin dördüncü üyesidir. Mask R-CNN, Faster R-CNN algoritmasının var olan mimarisi ile sınırlayıcı kutu (bounding box) çizmesine ek olarak bir nesnenin maskesini tahmin etmek amacıyla Faster R-CNN mimarisine bir dal eklenmiş halidir. Mask R-CNN konusunu incelemeden önce bu mimariyi anlatırken kullanacağım bazı kavramların ne olduğuna bakalım. Peki bu kavramlar nelerdir?

mask r-cnn

  • Nesne Algılama (Object Detection)
  • Görüntü Segmentasyonu (Image Segmentation)
  • Semantic Segmentasyon (Semantic Segmentation)
  • Instance Segmentasyon (Instance Segmentation)

Nesne Algılama (Object Detection):

Nesne algılama, bir videodaki veya bir görüntüdeki nesneleri veya nesnelerin konumlarını tanımlayan bir çeşit bilgisayarlı görü tekniğidir.

Görüntü Segmentasyonu (Image Segmentation):

Görüntü segmentasyonu her piksel için, belirli özellikleri paylaşan piksellere aynı etiketin tanımlanması işlemidir. Buradaki amaç bir görüntüyü parçalara ayırarak basitleştirmek, anlaşılır olmasını sağlamaktır. Aşağıda dönüşümlü olarak giriş görüntüsünün temel gerçeği gösteren örnek görüntü segmentasyonunu net bir şekilde görebilirsiniz. Görüntü segmentasyonunun semantic segmentasyon ve instance segmentasyon olmak üzere iki grubu vardır.

görüntü segmentasyonu

Semantic Segmentasyon:

Tüm pikseller için nesnenin sınıfını tanımlayan segmentasyondur. Bir görüntüdeki aynı sınıfa ait nesnelerin hepsini bir olarak tanımlar. Örneğin aşağıda beş kişiden oluşan bir insan sınıfı var. Semantic segmentasyon insanlar arasında ayrım yapmadan hepsini bir kabul eder.

Instance Segmentasyon (Instance Segmentation):

Her bir nesneye ait tüm pikseller için bir sınıf tanımlar. Bir görüntüde aynı sınıfa ait birden fazla nesne için ayrı ayrı tanımlama yapar. Semantic segmentasyona göre daha detaylı bir tanımlama söz konusudur. Aşağıdaki görselde de görüldüğü gibi beş kişilik insan grubu ayrı ayrı etiketlenmiştir.

instance segmentasyon

Mask R-CNN’de daha detaylı bir kullanım olanağı sağladığı için instance segmentasyon tercih edilmiştir.

Faster R-CNN’de her bir nesne adayı için sınıf etiketi ve sınırlayıcı kutu (bounding box) çizimi olmak üzere iki adet çıktı varken Mask R-CNN’de bu iki çıktıya ek olarak nesnenin maskesini çıktı olarak veren üçüncü bir dal eklenmiştir. Ek maskenin çıktısı sınıfa ve box offset kavramından farklıdır, nesnenin uzaysal düzenine bağlıdır. Mask R-CNN algoritmasının yazımızın başından beri Faster R-CNN algoritmasını kapsadığını söylemiştim. Faster-RCNN’de temel olarak iki yapı vardır. Bunlar: RPN ve RoI Pooling katmanlarıdır.

Mask R-CNN’de de bu iki yapı vardır. RPN katmanı Faster R-CNN algoritması ile eşdeğerlik gösterirken RoI Pooling katmanı biraz farklılık göstermektedir. Bu fark, Mask R-CNN’nin her bir RoI katmanından aynı zamanda ikili (binary) yapıda bir maske çıkarmasından kaynaklanmaktadır. Maske bir girdi nesnesinin uzaysal düzenini kodlar. Bu kodlamayı yaparken sınıf etiketinden ve box offset kavramından bağımsız olduğunu belirtmiştim. Maskenin uzaysal düzenin çıkarılması işini yapmak için RoIAlign kullanır. Peki RoIAlign nedir?

İlginizi çekebilir: Piksel ve Çözünürlük Nedir

RoIAlign, standart bir şekilde özellik haritası (feature map) çıkaran RoIPooling katmanı yerine Mask R-CNN’de yer alan yapıdır.

Şimdi de Mask R-CNN algoritmasının mimarisine hep birlikte bakalım.

nesne tanıma algoritması

Kaplumbağa görseli Mask R-CNN mimarisine girdiğinde öncelikle bir hazırlık aşamasından geçer. Buradaki hazırlık VGG 16 ile yapılır, amaç RPN katmanı için görseli hazırlamaktır. VGG 16 yerine istediğiniz bir CNN mimarisini kullanabilirsiniz ,buradaki tercih size aittir. VGG katmanından çıkan görsel RPN katmanına girer. RPN katmanında öncelikle 3*3’lük bir kernele (filtreye) maruz kalır. Buradan çıkan görsel için iki adım vardır. Biri sınıflandırma (classifier) katmanıdır. Burada amaç nesnenin varlığını tespit etmektir.

Nesnenin varlığı tespit edilirse 1 doğruluk değerini alarak görsel RPN içindeki regresyon katmanına geçiş yapar. Regresyon katmanında nesnenin etrafına sınırlayıcı kutu (bounding box) çizilir. Bir sonraki adım RoIAlign katmanına geçiştir. Burada max pooling kullanılarak RPN katmanından gelen farklı boyutlardaki alanlar ve direk VGG katmanından gelen özellik haritalarının (feature maps) boyutlarının aynı olması sağlanır. Buraya kadar olan işlemler Faster R-CNN ile eşdeğerdir. RoIAlign katmanında ek olarak her bir nesneye uzaysal düzenine göre maske uygulanır. Bu işlem sonucunda üç çıktı gözlenir.

  • Birinci çıktı softmax classifier‘dır. Nesnenin görselde nerede yer aldığı belirlenir.
  • İkinci çıktı regresyondur. RPN katmanının içinde gerçekleşen olay gibi bu kısımdaki amaç da sınırlayıcı kutu (bounding box) çizmektir.
  • Üçüncü çıktı ise maskedir. Nesnenin uzaysal düzenine göre boyama yapılarak nesneler taranır.

Kısaca Mask R-CNN mimarisi nesne algılama ve görüntüyü bölgelere ayırma (object detection + image segmantation) olmak üzere iki kısımdan oluşur.

Ece Akdağlı
Ece Akdağlı
Eskişehir Osmangazi Üniversitesi elektrik elektronik mühendisliği 2. sınıf öğrencisiyim.
Subscribe
Bildir
guest
0 Yorum
Inline Feedbacks
Tüm yorumları göster
Arıcılık Malzemeleri

Yeni Yazılar

Mühendislik Maaşları

Bunları Gördünüz mü?