Featured Image

HTC (Hybrid Task Cascade) Network Architecture

As a result of my recent literature research for image segmentation, I have come across very different segmentation architectures. Before this article, I told you about the architecture of Mask R-CNN. Just like this mask R-CNN architecture, the Cascade Mask R-CNN structure has appeared in the literature. I will try to enlighten you about this with the information I have collected from the original academic documents and research I have read.

Cascade is a classic yet powerful architecture that improves performance in a variety of tasks. However, how to enter sample segmentation with steps remains an open question. A simple combination of Cascade R-CNN and Mask R-CNN provides only limited gains. In exploring a more effective approach, it was found that the key to a successful instance segmentation level is to take full advantage of the mutual relationship between detection and partitioning.
Hybrid Task Cascade for Instance Segmentation proposes a new Hybrid Task Cascade (HTC) framework that differs in two important respects:

  1. Instead of cascading these two tasks separately, it connects them together for common multi-stage processing.
  2. It adopts a fully convoluted branch to provide spatial context, which can help distinguish the rigid foreground from the complex background.

The basic idea is to leverage spatial context to improve the flow of information and further improve accuracy by incorporating steps and multitasking at each stage. In particular, a cascading pipeline is designed for progressive purification. At each stage, both bounding box regression and mask prediction are combined in a multi-tasking person.

Innovations ✨

The main innovation of HTC’s architecture is a cascading framework that connects object detection and segmentation, providing better performance. The information flow is also changed through direct branches between the previous and subsequent mask determinants. Architecture also includes a fully convolutional branch that improves spatial context, which can improve performance by better distinguishing samples from scattered backgrounds.
2017 Winner

Hybrid Task Cascade: Sample Segmentation Framework
  • It combines bounding box regression and mask prediction instead of executing in parallel. 
  • It creates a direct way to strengthen the flow of information between mask branches by feeding the mask features from the previous stage to the existing one.
  • It aims to gain more contextual information by fusing it with box and mask branches by adding an additional branch of semantic segmentation. 
  • In general, these changes in the framework architecture effectively improve the flow of information not only between states but also between tasks.

A comparison of the HTC network’s sample determination approaches with the latest technology products in the COCO dataset in Table 1 can be seen. In addition, the Cascade Mask R-CNN described in Chapter 1 is considered a strong basis for the method used in the article. Compared to Mask R-CNN, the naive cascading baseline brings in 3.5% and 1.2% increases in terms of box AP and mask AP. It is noted that this baseline is higher than PANet, the most advanced method of sample segmentation. HTC is making consistent improvements on different backbones that prove its effectiveness. ResNet-50 provides gains of 1.5%, 1.3% and 1.1%, respectively, for ResNet-101 and ResNeXt-101.
📌 Note: Cascade Mask R-CNN extends Cascade R-CNN to instance segmentation by adding a mask header to the cascade [3].

MS COCO METRICS

The image below shows the results of this segmentation in the COCO dataset.
New
In the results section of the article, the advantages of the HTC model they created over other models are mentioned.

We recommend the hybrid task cascade (HTC), a new graded architecture for Instance Segmentation. It intertwines box and mask branches for common multi-stage processing and uses a semantic partitioning branch to provide spatial context. This framework gradually improves mask estimates and combines complementary features at each stage. The proposed method without bells and whistles achieves a 1.5% improvement over a strong cascade Mask R-CNN baseline in the MS COCO dataset. In particular, our overall system reaches 48.6 masks AP in the test-inquiry dataset and 49.0 mask AP in test-dev.

📌 Finally, in order to understand the changes of variables in the table, I leave you a table of MS COCO metrics as a note.

REFERENCES

  1. Kai Chen, Jiangmiao Pang, Jiaqi Wang, Yu Xiong, Xiaoxiao Li, Shuyang Sun, Wansen Feng, Ziwei Liu, Jianping Shi, Wanli Ouyang, Chen Change Loy, Hybrid Task Cascade for Instance Segmentation, April 2019.
  2. Zhaowei Cai and Nuno Vasconcelos, Cascader-cnn:Delving into high quality object detection, In IEEE Conference on Computer Vision and Pattern Recognition, 2018.
  3. https://paperswithcode.com/method/cascade-mask-r-cnn.
  4. https://cocodataset.org/#home
Featured Image

HTC (Hybrid Task Cascade) Ağ Mimarisi

Son günlerde görüntü segmentasyonu için yaptığım literatür araştırması sonucunda çok farklı segmentasyon mimarileri ile karşılaştım. Bu yazımdan önce sizlere Mask R-CNN mimarisinden bahsetmiştim. Tıpkı bu Mask R-CNN mimarisi gibi Cascade Mask R-CNN yapısı da literatürde karşıma çıktı. Okuduğum orijinal akademik dokümanlardan ve araştırmalarımdan topladığım bilgiler ile sizleri bu konuda aydınlatmaya çalışacağım.

Cascade,çeşitli görevlerde performansı artıran klasik ama güçlü bir mimaridir. Bununla birlikte, örnek segmentasyonuna basamaklar ile nasıl girilir açık bir soru olmaya devam etmektedir. Cascade R-CNN ve Mask R-CNN’ in basit bir kombinasyonu sadece sınırlı kazanç sağlar. Daha etkili bir yaklaşımı keşfederken, başarılı bir örnek bölümleme (instance segmentation) kademesinin anahtarının, algılama ve bölümleme arasındaki karşılıklı ilişkiden tam olarak yararlanmak olduğu görülmüştür.
Hybrid Task Cascade for Instance Segmentation adlı çalışmada iki önemli açıdan farklılık gösteren yeni bir Hybrid Task Cascade (HTC) çerçevesi önerilmektedir:

  1. Bu iki görevi ayrı ayrı basamaklı olarak rafine etmek yerine, bunları ortak çok aşamalı işleme için birbirine bağlar.
  2. Uzamsal bağlam sağlamak için tamamen evrişimli bir dal benimser, bu da sert ön planı karmaşık arka plandan ayırt etmeye yardımcı olabilir. 

Temel fikir, her aşamada basamak ve çoklu görev dahil ederek bilgi akışını iyileştirmek ve doğruluğu daha da artırmak için mekansal bağlamdan yararlanmaktır. Özellikle, ilerici arıtma için basamaklı bir boru hattı tasarlanmıştır. Her aşamada, hem sınırlayıcı kutu regresyonu hem de maske tahmini, çok görevli bir insanda birleştirilir.

Yenilikler ✨

HTC mimarisinin ana yeniliği, nesne algılama ve segmentasyonu birbirine bağlayarak daha iyi performans sağlayan basamaklı bir çerçevedir. Bilgi akışı, önceki ve sonraki maske belirleyicileri arasındaki doğrudan dallar aracılığıyla da değiştirilir. Mimari ayrıca, dağınık arka planlardan örnekleri daha iyi ayırt ederek performansı artırabilen mekansal bağlamı geliştiren tamamen konvolüsyonel bir dal içerir.
2017 Winner

Hybrid Task Cascade (Hibrit Görev Basamağı) : Örnek Segmentasyon Çerçevesi
  • Paralel olarak yürütmek yerine sınırlayıcı kutu regresyonunu ve maske tahminini birleştirir. 
  • Önceki aşamadaki maske özelliklerini mevcut olana besleyerek maske dalları arasındaki bilgi akışını güçlendirmek için doğrudan bir yol oluşturur.
  • Ek bir semantik segmentasyon dalı ekleyerek kutu ve maske dalları ile kaynaştırarak daha fazla bağlamsal bilgi edinmeyi amaçlamaktadır. 
  • Genel olarak, çerçeve mimarisindeki bu değişiklikler, yalnızca aşamalar arasında değil, görevler arasında da bilgi akışını etkili bir şekilde geliştirir.


HTC ağının Tablo 1′ deki COCO veri kümesindeki en son teknoloji ürünleri ile örnek belirleme yaklaşımlarının karşılaştırılması görülmektedir. Ayrıca, Bölüm 1’de açıklanan Cascade Mask R-CNN’i makalede kullanılan yöntemin güçlü bir temeli olarak değerlendirilmektedir. Mask R-CNN ile karşılaştırıldığında, naif basamaklı taban çizgisi, box AP ve mask AP açısından %3.5 ve %1.2’lik bir artış getiriyor. Bu taban çizgisinin, en gelişmiş örnek segmentasyon yöntemi olan PANet ‘ den daha yüksek olduğu belirtilmektedir. HTC, etkinliğini kanıtlayan farklı omurgalarda tutarlı iyileştirmeler gerçekleştiriyor. ResNet-50, ResNet-101 ve ResNeXt-101 için sırasıyla %1.5, %1.3 ve %1.1 kazanç sağlar.
📌 NOT: Cascade Mask R-CNN, kademeye bir maske başlığı ekleyerek Cascade R-CNN’yi örnek segmentasyonuna genişletir [3].
Aşağıda görmüş olduğunuz görsel ise COCO veri setindeki bu segmentasyon sonuçlarını göstermektedir.
New
Makalede sonuç bölümünde ise oluşturdukları HTC modelinin diğer modellere göre üstünlüklerinden bahsedilmektedir.

Örnek bölümleme (Instance Segmentation) için yeni bir kademeli mimari olan Hibrit Görev Kademesini (HTC) öneriyoruz. Ortak bir çok aşamalı işleme için kutu ve maske dallarını iç içe geçirir ve uzamsal bağlam sağlamak için anlamsal bir bölümleme dalı kullanır. Bu çerçeve, maske tahminlerini aşamalı olarak iyileştirir ve her aşamada tamamlayıcı özellikleri bir araya getirir. Çanlar ve ıslıklar olmadan önerilen yöntem, MS COCO veri setinde güçlü bir Cascade Mask R-CNN taban çizgisine göre% 1.5 iyileştirme elde eder. Özellikle, genel sistemimiz test-sorgulama veri setinde 48.6 maske AP’ye ve test-dev’de 49.0 maske AP’ye ulaşır.

📌 Son olarak tablodaki değişkenlerin değişimlerini anlamanız adına sizlere MS COCO metriklerinin tablosunu not olarak bırakıyorum.

REFERANSLAR

  1. Kai Chen, Jiangmiao Pang, Jiaqi Wang, Yu Xiong, Xiaoxiao Li, Shuyang Sun, Wansen Feng, Ziwei Liu, Jianping Shi, Wanli Ouyang, Chen Change Loy, Hybrid Task Cascade for Instance Segmentation, April 2019.
  2. Zhaowei Cai and Nuno Vasconcelos, Cascader-cnn:Delving into high quality object detection, In IEEE Conference on Computer Vision and Pattern Recognition, 2018.
  3. https://paperswithcode.com/method/cascade-mask-r-cnn.
  4. https://cocodataset.org/#home
Featured Image

Article Review – Tooth Detection with Mask RCNN

In this article, I will review the article ‘Tooth Detection and Segmentation with Mask R-CNN [1]’ published at the Second International Conference on Artificial Intelligence in Information and communication. This article describes the implementation of automatic tooth detection and segmentation on Mask RCNN’s dental images. The article, it is aimed to identify only females and divide them into segments.

It should be noted that Mask RCNN has a good segmentation effect even in complex and crowded dental structures ⚠️

If you are dealing in this area like me, the things we need to pay attention to first when reviewing an article will be keywords (keywords). The keywords in this article were selected as Mask R-CNN, Object Detection, Semantic Segmentation, and Tooth. We continue to do our research on these keywords.

A one-step network such as the Fully Convolutional Neural Network (FCN), You only Look Once (YOLO) and Single Shot multibox Detector (SSD) are 100-1000 times faster than the region-recommended algorithm [3], [4], [5].

Technical Approaches

❇️ Data Collection

Since there is no public data set, 100 images were collected from the hospital and the data set was trained. Of these images, 80 images are divided into educational data. The remaining 10 images are verification data, while the other 10 images are test data. Images of different distances and lighting and people of different sexes and ages were selected within the project. (Challenge for the network)

❇️ Tag Images Annotation

Labelme is an image tagging tool developed by MIT’s Computer Science and artificial intelligence laboratory (CSAIL) [6]. Provides tools for tagging object edges. When annotating images, multiple polygons will form around the teeth. An example of this utility can be seen in Figure 1. Saves corner coordinates in a JSON file for an image. Since it is a manual operation, there will be a small error when annotating images. However, it does not affect the overall evaluation of the model. Since there is only one category, the tooth part is labeled as 1. The rest that is considered a background is labeled as 0.

❇️ Deep Network Architecture Details

 

Mask RCNN Workflow

                                                           Mask R-CNN Architecture


You can see the Mask R-CNN architecture in the figure above. Mask R-CNN consists of several modules. Mask R-CNN, an extension of Faster-RCNN, includes a branch of convolution networks to perform the sample segmentation task. This branch is a standard convolutional neural network that serves as a feature extractor. In principle, this backbone network can be any network that extracts image features such as ResNet-50 or ResNet-101. In addition, to perform multi-scale detection, a feature pyramid network (FPN) is used in the backbone network. FPN improves the standard feature extraction pyramid by adding a second pyramid that takes the top-level features from the first pyramid and passes them to the lower layers. A deeper ResNet101 + FPN backbone was used in this project.
Step by Step Detection

                                                                   Mask R-CNN Working Structure

🔍 Details Of Architecture

A Roi align method for changing the ROI pool has been proposed. RoIAlign can maintain an approximate spatial position. RPN regression results are usually decimal and require integrals. The boxes obtained by RPN must be joined at the same maximum pooling size before entering the fully connected layer. During the project process, it was reported that the Integral was also needed, allowing RoIAlign to eliminate the integral process and protect the decimals. It is accurate for detection and segmentation. The classification combines the loss values of RoI regression and segmentation. Classification and ROI regression loss are no different from normal object detection networks. The mask loss branch is a convolutional neural network with ROI as the input and output is a small mask of size 28×28.

✅ Results

As the data will be trained at 50 epochs, 20 epochs of the data will be trained to start with, and 30 epochs will be trained to fine-tune all layers. The total loss value is 0.3093, consisting of bounding box loss, class loss, mask loss, and RPN loss. The total loss curve is shown in Figure 4. The final test result is also shown to be (a) the best result and (b) the worst.

                                                                         Total loss curve


The Pixel Accuracy (PA) method is the simplest and most effective method for evaluating results. The best result was 97.4% PA and the worst was 90.1%. Since there are a small number of prosthetic samples in the dental samples found in the project, the accuracy of prosthetic detection was low.
Final Test Sonuçları

              Final test results. (a) best individual result example, (b) worst individual result example 

REFERENCES

  1. Guohua Zhu, Zewen Piao, Suk Chan Kim, Department of Electronics Engineering, Pusan National University, Tooth Detection and Segmentation with Mask R-CNN, ICAIIC 2020.
  2. https://github.com/fcsiba/DentAid.
  3. Shelhamer, E., Long, J., and Darrell, T. Fully convolutional networks for semantic segmentation. IEEE Trans. Pattern Anal. Mach. Intell. 39, 4 (Apr. 2017), 640–651. 1, 2.
  4. Redmon, J., and Farhadi, A. Yolov3: An incremental improvement. arXiv (2018). 1
  5. Liu, W., Anguelov, D., Erhan, D., Szegedy, C., Reed, S., Fu, C.-Y., and Berg, A. C. Ssd: Single shot multibox detector. To appear. 1
  6. B. Russell, A. Torralba, and W. T. Freeman, Labelme, The Open Annotation Tool MIT, Computer Science, and Artificial Intelligence Laboratory [Online]. Available: https://labelme.csail.mit.ed.
  7. Zhiming Cui, Changjian Li, Wenping Wang, The University of Hong Kong, ToothNet: Automatic Tooth Instance Segmentation and Identification from Cone Beam CT Images.
Image Segmentation

Mask R-CNN ile Görüntü Segmentasyonu

Görüntü Segmentasyonu

Son zamanlarda çok sık uğraştığım CNN mimarilerine yenilerini ekleyerek öğrenmeye devam etmekteyim. Daha önceki yazımda görüntü segmentasyonunun ne anlama geldiğini örnekler ile betimlemiştim. Eğer ilgilenirseniz profilimden ulaşabilirsiniz. Görüntü segmentasyonu alanında şöyle açıklayıcı bir yorum okumuştum:

Görüntü segmentasyonu, görüntüdeki her pikseli belirli bir kategoriye ait olarak sınıflandırma işlemidir.

Buradan yola çıkarak amacımızın sınıflandırmaya yönelik yardımcı maskelerin belirlenmesi olduğunu da gözlemleyebiliriz. Daha önceki yazımda sizlere segmentasyon işleminin neden ve nasıl yapıldığını aktarmıştım. Bu konuda daha çok bilgilenmek istiyorsanız eğer yazımı incelemenizi tavsiye ederim. Görüntü işleme ve derin öğrenme alanında yaptığım birçok çalışmada baz aldığım bir site önerisi vereceğim. Umarım benim kadar sizlere de yardımcı olabilir. Takıldığım her noktada

Sınıflandırma gerçekleştirilirken bir girdi (input) görüntüsünün içeriğini analiz etmek için bir dizi etiket tahmin edilmektedir. Ancak segmentasyonda bu tahmin işlemi gerçekleştirilirken aynı nesne olma ihtimali olan pikseller boyanmaktadır. Segmentasyonun anlaşıldığını umut ederek biraz daha teknik yaklaşıyorum ve konunun Mask RCNN kısmına geçiyorum.

Mask R-CNN

Mask-RCNN, mantıksal açıdan Faster-RCNN’ e benzerlik göstermektedir. Peki bu Faster-RCNN tam olarak ne yapmaktadır? Görüntüde bulunan objeleri maskeleyerek bizlere nesne tanıma imkanı sağlamaktadır. Bakın bu maskeleme işlemi çok mühimdir. Mask-RCNN de maskeleme işlemi yapılmaktadır. Ancak şöyle bir durum mevcut, Mask-RCNN yapısı gereği eklenen bölüm için binary değer kullanmaktadır. Yani demek istediğim tanınacak obje için maske kullanılacak ise 1, kullanılmayacak ise 0 değeri çıkarmaktadır.

Semantic segmentation (Anlamsal bölümleme)’ ın amacı, nesne örneklerini ayırt etmeden bir nesnenin her pikselini bilinen kategoriler halinde sınıflandırmaktır. Instance Segmentation ise, tespit edilen her nesnenin sınıflandırıldığı, yerelleştirildiği ve bölümlere ayrıldığı bu iki klasik bilgisayarlı görü görevini (algılama ve anlamsal bölümleme) birleştirir [2]. Burada önereceğim sistemde görüntüler için nesnelerin segmentasyonunda Mask R-CNN kullanmaktadır. Bunun yanı sıra terimleri dikkat ettiyseniz İngilizce kullanıyorum çünkü terimler kalıplaştığı için Türkçe söylendiğinde kulağıma tuhaf geliyor. Siz nasıl isterseniz öyle devam edebilirsiniz.

Faster R-CNN’nin bir uzantısı olarak Mask R-CNN, instance segmentation görevini gerçekleştirmek için evrişimli ağların bir dalını içerir. ResNet101’den özellikleri çıkardıktan sonra, bu özellikler bir feature pyramid network (FPN) oluşturur; burada nihai olarak bağlantılar (anchors) tanımlanır ve ilgili bölgeler (RoI’ler) çıkarılır [3].

Mask R-CNN Çalışma Yapısı

ROI Align modülünden çıkan iki adet evrişim CONV katmanı bulunmaktadır. Bu katmanlar, görüntüdeki maskemizin gerçekte oluşturulduğu yerdir [1]. CONV katmanından daha önce bahsetmiştim. Görüntüde yer alan pikseller teker teker taranıp evrişim işlemi uygulanmaktadır. Şimdi sizlere çok daha önemli bir detay paylaşacağım. Bildiğimiz gibi, Faster R-CNN / Mask R-CNN mimarileri, bir görüntünün potansiyel olarak bir nesne içeren bölgelerini oluşturmak için Bölge Teklif Ağı’ndan (RPN-Region Proposal Network) yararlanır. Bu bölgelerin her biri,“objectness score” yani “nesnelik puanına” ( belirli bir bölgenin potansiyel olarak bir nesne içerme olasılığı) göre sıralanır ve ardından en güvenli ilk N adet nesne bölgesi tutulur [1]. Böylelikle tespit edilecek nesneye daha dikkatli yaklaşmış olmaktayız. Görüntülerde seçilen 300 adet ROI (Region of Interest) bölgesinin her biri, ağın üç paralel şubesinden geçecektir:

  • Etiket tahmini (Label prediction): Nesnenin hangi sınıfa (türe) ait olduğunu belirleyen etiketler tahmin edilir.
  • Sınırlayıcı kutu tahmini (Bounding box prediction): Belirlenen nesne etiketleri sınırlayıcı kutular ile çizilir.
  • Maske tahmini (Mask prediction): Daha sonra alınan etiketler baz alınarak kutuların sınırlarından itibaren nesne boyanarak maskelenir.

Mask R-CNN Kod Dizimi

En sık kullandığım Mask R-CNN Github bağlantısını sizler için linkliyorum. Bu kod üzerinden çalışarak nesneler için segmentasyon işlemini birlikte başarabiliriz. Feature Pyramid Network (FPN) ve ResNet101 ağına dayalı oluşturulmuştur.

Oluşturulmuş bu repository içerisinde adım adım tespit anlatılmaktadır. Adım adım ilerlediğinizde önce anchorların filtrelendiğini daha sonra sınırlayıcı kutuların ve maskelerin oluştuğunu göreceksiniz. Daha önceden eğitilmiş COCO veri seti üzerinde nesne tespiti gerçekleştiriliyor. Eğer sizin kendinize ait bir veri setiniz mevcut ise bu verilerde kullanmanızı tavsiye ederim. Bununla birlikte Tensorflow Object Detection API ile nesnelerinizi tespit edecek modeli oluştumanız da mümkün. Bunun ile ilgili bilgilendirici nitelikte bir yazı daha oluşturmuştum, dilerseniz okuyabilirsiniz.

COCO Nedir?

COCO

 

Yukarıdaki görselde de görüldüğü üzere İngilizce Bağlam İçinde Ortak Nesneler anlamına gelen Common Objects in Context kelimesinin belirli harflerinden oluşmaktadır.

Ne İşe Yarar? [6]

  • Nesne segmentasyonu
  • Bağlam içinde tanıma
  • Superpiksel malzeme segmentasyonu
  • 330.000 görüntü (> 200.000 etiketli)
  • 1,5 milyon nesne örneği
  • 80 nesne kategorisi
  • 91 malzeme kategorisi
  • Resim başına 5 başlık
  • Kilit noktalara (keypoints) sahip 250.000 kişi görüntüsü

Görselde eğitilmiş Coco veri setini ve modülleri kullanabileceğimiz kodlara yer verilmektedir. Referans olarak verdiğim Mask RCNN Github bağlantısı üzerinden bu kodlara erişim sağlayabilirsiniz.

Uploading Libraries

Model Direction 

Gördüğünüz üzere Mask RCNN modülünü dahil ederek modeli yüklemeyi başardık. ResNet101 mimarisinin kullanıldığını belirgin konfigürasyonlardan da anlayabiliriz.

Backbone ResNet101

Ardından COCO veri setinde yer alan sınıfları bu şekilde inceleyebiliriz.

Class Names

Sonuç olarak nesne tespitinde son adıma gelmiş bulunmaktayız. Görüntüde yer alan objeleri yüzde değerleri vererek tanımayı başarmıştır. Umarım anlattıklarım sizler için bir nebze faydalı olabilmiştir. Herkese iyi kodlamalar ve güzel günler dilerim 😇

 

REFERANSLAR

  1. https://www.pyimagesearch.com/2018/11/19/mask-r-cnn-with-opencv/
  2. Gil Jader, Jefferson Fontinele, Marco Ruiz, Kalyf Abdalla, Matheus Pithon, Luciano Oliveira, Intelligent Vision Research Lab, Deep instance segmentation of teeth in panoramic X-ray images, 2018 31st SIBGRAPI Conference on Graphics.
  3. S. Ren, K. He, R. Girshick, and J. Sun, “Faster r-cnn: Towards real-time object detection with region proposal networks,” in Advances in neural information processing systems, 2015, pp. 91–99.
  4. https://en.wikipedia.org/wiki/Image_segmentation.
  5. https://github.com/matterport/Mask_RCNN.
  6. https://cocodataset.org/#home.
  7. https://modelzoo.co/model/mask-r-cnn-keras.