Nesne Tespit Algoritmalarının Gelişimi (Mask R-CNN) — 2

Dilara Özdemir
3 min readAug 12, 2021

Bu yazıyı okumadan önce, nesne tespit algoritmalarını temelden anlayabilmek için bir önceki yazıma göz atmanızı tavsiye ederim. Keyifli okumalar dilerim 🏄

📝 NOT: Bu yazıyı, Mask R-CNN’in akademik makalesini baz alarak oluşturdum. Akademik makaleye aşağıdan ulaşabilirsiniz.

🏮 Maske Bölge Tabanlı Evrişimli Sinir Ağı (Mask R-CNN — Mask Region Based Convolutional Neural Networks)

Faster R-CNN’de her aday nesne için iki çıkış vardır: bir sınıf etiketi (class label) ve bir sınırlayıcı kutu adresi (bounding box offset). Mask R-CNN’de ise bu çıkışlara ek olarak bir de nesne maskesini çıkaran bir dal eklenir. Ancak bu maske çıktısı, sınıf ve kutu çıktılarından oldukça farklıdır. Ek olarak Fast R-CNN ve Faster R-CNN’den bir farkı da Mask R-CNN’de pikselden piksele hizalama yöntemi kullanılmaktadır.

Mask R-CNN incelemesi yaparken Faster R-CNN’in iki aşamadan oluştuğunu hatırlamamız gerekmektedir. Bölge Teklif Ağı olarak adlandırılan ilk aşama, aday sınırlayıcı kutuları önermektedir. Aslında Fast R-CNN olan ikinci aşama ise her bir aday kutucuktan RoI Havuzlaması (Region of Interest — RoI Pooling) yapar. Bu şekilde özellikleri (features) çıkararak sınıflandırma ve sınırlayıcı kutu regresyonu gerçekleştirir. Kısaca söylemek gerekirse Mask R-CNN, Faster R-CNN’in sahip olduğu bu iki aşamalı prosedürü benimser. Mask R-CNN, ikinci aşamada sınıf ve kutucuk adresi çıktılarına paralel olarak bir de her RoI için ikili bir maske çıktısı verir.

Şekil 1. Mask R-CNN mimarisi ile diğer nesne tespit mimarilerinin karşılaştırılması.

🏷️ Maskelerin Oluşturulma

Eğitim anında, örneklenen her bir RoI’de çoklu görev kaybı L = Lcls (sınıflandırma kaybı — classification loss)+ Lbox (sınırlayıcı kutu kaybı — bounding-box loss) + Lmask olarak tanımlanır. Maske dalı, her bir K sınıfı için birer tane olacak şekilde, mxm çözünürlüklü K ikili maskelerini kodlayan her RoI için Km² boyutlu bir çıktıya sahiptir. Bu çıktıda piksel başına sigmoid fonksiyonu uygulanır ve Lmask, ortalama ikili çapraz entropi kaybı olarak tanımlanır. Buradaki Lmask tanımı; ağın, her sınıf için maskeler üretmesini sağlar. Özel sınıflandırma dalı, kullanılan sınıf etiketini tahmin ederek çıktı maskesini seçer. Bu işlem, maske ve sınıf tahminini birbirinden ayırır. Bu kısımda yaygın uygulamalara göre piksel başına bir softmax ve çok terimli bir çapraz entropi kaybı kullanan anlamsal segmentasyona FCN’lerin (Fully Connected Layer) uygulanması farklılık gösterir. Farklılığı ortaya koymasaydı eğer sınıflar ve maskelerde bir rekabet oluşacaktı. Sonuç olarak, bu farklılığın iyi bir örnek segmentasyon sonucu alabilmek için anahtar niteliğinde olduğunu söyleyebiliriz.

🏷️ Maskelerin Gösterimi

Bir maske, bir girdi nesnesinin uzamsal düzenini kodlar (yani burada maske, nesnenin boyutunu kaplar). Maske tahmini için tam bağlı katmanları kullanan önceki yöntemlerden farklı olarak, tam evrişimli katman daha az parametre gerektirir. Maske tahmininde önemli bir rol oynayan RoIAlign (İlgi Bölgesi Hizalama) katmanı da burada geliştirilmiştir.

🏷️ İlgi Bölgesi Hizalama (RoIAlign — Region of Interest Align)

RoIPool, her bir RoI’den küçük bir özellik haritası çıkarmak için kullanılan bir yöntemdir. İlk olarak RoIPool, özellik haritasına göre RoI’i nicelleştirir (miktarını belirtir). Bu nicelleştirilmiş RoI daha sonra uzamsal kutulara bölünür. Son olarak her bir kutunun kapsadığı özellikler toplanır (Bu işlem genellikle Maksimum Havuzlama ile yapılır). Nicellendirme kutulara bölünürken gerçekleştirilir. Bu işlem gerçekleştirilirken, RoI ve çıkarılan özellikler arasında yanlış hizalamalar yapılabilir. Hizalama yanlışlıkları sınıflandırmayı etkilemez fakat maskeleri tahmin etmede olumsuz bir etkiye sahiptir. Sonuç olarak RoIAlign katmanı, RoIPool’un bu olumsuzluklarını ortadan kaldırır ve çıkarılan özellikleri girdiyle uygun bir şekilde hizalar.

❓❓ Ağ Çalışması Yapılırken Bilinmesi Gerekenler

◾️ Omurga Ağı Nedir?

Omurga ağı, mimariye kararlılık kazandırmaya yardımcı olan bir ağ yapısının temel bölümüdür. Omurga ağının amacı, ağın çeşitli bileşenlerini etkileşim halinde tutmaktır. Omurga yaklaşımı, mimarinin üstlendiği görevleri yönetmek ve verileri paylaşmak amacıyla birkaç sinir ağını birbirine bağlarken aynı zamanda omurgaya bağlı olan ağların birbirinden bağımsız çalışmasına olanak sağlar.

📝 NOT: Mask R-CNN mimarisinde omurga ağı olarak ResNet kullanılmıştır ve bu ağın sürümleri üzerinde çalışmalar yapılarak doğruluk karşılaştırılması yapılmıştır.

Şekil 2. Farklı omurga ağları ile doğruluk metriklerinin karşılaştırılması. Kaynak: K. He, G. Gkioxari, P. Dollar, and R. B. Girshick, “Mask ´ R-CNN,” CoRR, vol. abs/1703.06870, 2017. [Online]. Available: http://arxiv.org/abs/1703.06870.

◾️ COCO Veri Kümesi Nedir?

MS COCO, büyük bir ölçeğe sahip bir nesne tespit, segmentasyon ve resim yazısı veri kümesidir. Veri kümesinin akademik yayınına aşağıdan ulaşabilirsiniz.

📝 NOT: Mask R-CNN deneyleri yapılırken MS COCO veri kümesi kullanılmıştır.

--

--