A’dan Z’ye SSD (Single Shot Multibox Detector) Modeli

Bu yazıda, SSD MultiBox nesne algılama tekniğini A’dan Z’ye tüm açıklamaları ile birlikte öğreneceğiz. SSD modeli, RCNN hatta Faster R-CNN mimarisine göre çok daha hızlı çalıştığı için kimi zaman nesne tespiti söz konusu olduğunda kullanılmaktadır.

Liu ve arkadaşları tarafından 2016 senesinde ortaya konulan bu model, arka plan bilgisini kullanarak nesneyi algılamaktadır [2]. Single Shot Multibox Detector yani Tek Atış Çoklu Kutu Algılama (SSD) ilehızlı ve kolay modelleme yapılacaktır. Peki ya tek atış derken neden bahsediliyor olabilir? Adından da anlayacağınız üzere tek seferde nesne algılama imkanını bize sunmaktadır.

Doğru bilgiler vermek adına birçok doküman, video kayıtlarını harmanladım ve sizlere işin tüm alfabesini anlatmaya başlıyorum. RCNN ağlarda öncelikli olarak nesne olması muhtemel bölgeler belirleniyordu ve daha sonra Fully Connected katmanlar ile bu bölgeler sınıflandırılıyordu. RCNN ağı ile nesne tespiti 2 ayrı aşamada gerçekleştirilirken SSD bu işlemleri tek adımda uygulamaktadır.

İlk adım olarak SSD mimarisini yakından inceleyelim. Görüntü biraz ufak geliyorsa yakınlaştırarak konvolüsyon katmanlarının içeriklerini ve boyutlarını görebilirsiniz.

Mimariye her zamanki gibi girdi olarak bir görüntü verilmektedir. Daha sonra bu görüntü konvolüsyonel sinir ağlarından geçirilmektedir. Dikkat ettiyseniz konvolüsyonel sinir ağlarının boyutları farklıdır. Bu şekilde modelde farklı özellik haritaları (feature maps) çıkarılmaktadır. Bu durum istenilen bir durumdur. Özellik haritalarında 3x3lük evrişimsel filtre kullanılarak belirli miktarda sınırlayıcı dikdörtgen elde edilmektedir.

Ek Açıklamalar

Oluşturulmuş bu dikdörtgenler aktivasyon haritasında olduğu için farklı boyutlardaki nesneleri algılamada son derece iyi seviyededir. İlk verdiğim görselde girdi olarak 300×300’lük bir görüntü gönderilmiştir. Dikkat edecek olursanız ilerledikçe görüntü boyutları düşürülmüştür. En son gerçekleşen konvolüsyonel sinir modelinde ise boyut 1 olana kadar düşürülmüştür. Eğitim sürecinde belirlenen sınırlar ile test sonucunda gerçekleşen tahminler arasında karşılaştırma yapılmaktadır. Bu tahminler arasında en iyiyi bulmak için %50 methodu kullanılmaktadır. %50′ den büyük olan sonuç seçilmektedir. Tıpkı lojistik regresyonda var olan durum gibi düşünebilirsiniz.

Örneğin, görüntü boyutları Conv8_2’de 10×10×512 boyutundadır. 3×3 konvolüsyonel işlemi uygulandığında ve 4 sınırlayıcı kutu kullanılarak her sınırlayıcı kutu için (classes + 4) çıkışlara sahip olacaktır. Böylece, Conv8_2’de çıkış 10×10×4×(c+4) ‘ dir. Nesne algılama için 10 nesne sınıfı ve ek olarak bir arka plan sınıfı olduğunu varsayalım. Böylelikle çıktı 10×10×4×(11+4)=6000 olacaktır. Sınırlayıcı kutular ise 10×10×4 = 400 sayısına ulaşacaktır. Girdi olarak aldığı görüntüyü büyükçe bir tensör çıktısı olarak sonlandırıyor. Araştırdığım bir videoda bu bölge seçimleri ile ilgili şöyle açıklayıcı bir yorum dinlemiştim:

Her bölge için farklı işlemler yapmak yerine bütün tahminleri tek seferde CNN ağında gerçekleştirmekteyiz.

Yukarıdaki görselde solda görülen görüntü orijinal iken sağ tarafta yer alan bölgedeki her hücrede 4 sınırlayıcı kutu tahmini yapılmaktadır [3]. Burada görülen grid yapıları içerisinde sınırlayıcı dikdörtgenler bulunmaktadır. Bu şekilde nesnenin yer aldığı gerçek bölgenin tahmini yapılmaya çalışılmaktadır.

Results

Araştırdığım dokümanlarda yukarıda verdiğim örnek ile kaşılaştım. Gerçekten SSD mimarisini anlamak adına muazzam bir kaynak olduğu için sizler ile de paylaşmak istedim. Bakın dikkat ettiyseniz görselde olması muhtemel nesnelere bir yüzdelik atamış. Örneğin arabaya %50 sonucunu vermiş. Ancak %50′ nin üzerindeki ihtimaller daha yüksel ihtimal olacağı için kazanmış olacaktır. Yani bu görselde bir insan ve bir bisiklet olma ihtimali araba olmasından daha yüksek ihtimallidir. SSD yapısını anlamış olmanızı diliyorum. Bir sonraki yazımda ise SSD modelinin kodlanmasını göstereceğim. Esen kalmanız dileğiyle ✨

 

REFERANSLAR

  1. Bilgisayar Görüşü ile Yüz ve Nesne Tanıma | R-CNN, SSD, GANs, Udemy.
  2. Dive to Deep Learning, 13.7. Single Shot Multibox Detection (SSD), https://d2l.ai/chapter_computer-vision/ssd.html.
  3. https://jonathan-hui.medium.com/ssd-object-detection-single-shot-multibox-detector-for-real-time-processing-9bd8deac0e06.
  4. https://towardsdatascience.com/review-ssd-single-shot-detector-object-detection-851a94607d11.
  5. https://towardsdatascience.com/understanding-ssd-multibox-real-time-object-detection-in-deep-learning-495ef744fab.
  6. Single-Shot Bidirectional Pyramid Networks for High-Quality Object Detection, https://www.groundai.com/project/single-shot-bidirectional-pyramid-networks-for-high-quality-object-detection/1.

Relationship Between Human Brain and CNN

Hello, we all know that the image classification process of convolutional neural networks is influenced by the working principle of neural networks in the human brain. Let’s examine the relationship between them.

CONVOLUTIONAL NEURAL NETWORKS

       Convolutional Neural Networks are deep learning architecture that is widely used in computer vision studies such as image classification, localization, object perception. Convolutional neural networks are the field of study associated with machine learning to analyzing visual imagery. CNN choose unique features from pictures to distinguish the given figure. This process also happening in our brains unconsciously.

Biological Inspiration of Convolutional Neural Network (CNN)

Mapping of human visual system and CNN

Research in Sensor Processing (1960’s and 1970’s)

These works are prime Dr. Hubel and Dr. Wiesel worked on the area of Sensory Processing. In which, they inserted a micro-electrode into the primary visual cortex of an partially anesthetized cat so that she can’t move and shown the images of line at different angles to the cat.

Through the micro-electrode they found that some neurons fired very rapidly by watching the lines at specific angles, while other neurons responded best to the lines at different angles. Some of these neurons responded to light and dark patterns differently, while other neurons responded to detect motion in the certain direction.

Where is visual cortex located in humans brain?

 


                                                                                     Figure 1: Functional areas for the human brain

 

Visual Cortex is the part of the Cerebral Cortex of the Brain that processes the visual information. Visual nerves from the eyes runs straight to the primary visual cortex. Based on the structural and the functional characteristics it is divided into different areas, as shown in the following picture:

 

Figure 2: Different areas of visual cortex

 

 Visual cortex: Functions

The visual information is passed from one cortical area to another and each cortical area is more specialized than the last one. The neurons in the specific field only respond to the specific actions.

Some of them with their functions are as follows:

  1. Primary visual cortex or V1: It preserves spatial location of visual information i.e. orientation of edges and lines. It is the first one to receive the signals form what eyes have captured.
  2. Secondary visual cortex or V2: It receives strong feed-forward connections from V1 and sends strong connections to V3, V4 and V5. It also sends strong feedback network to V1. Its function is to collects spatial frequency, size, color and shape of the object.
  3. Third visual cortex or V3: It receives inputs from V2. It helps in processing global motion and gives complete visual representation.

      4. V4: It also receives inputs from V2. It recognizes simple geometric shapes and also forms recognition of object. It is not tuned for complex objects              as Human Faces.

  1. Middle temporal (MT)visual area or V5: It is used to detect speed and direction of moving visual object i.e. motion perception. It also detects motion of complex visual features. It receives direct connections from V1.
  2. Dorsomedial (DM) area or V6: used to detect wide field and self-motion stimulation. Like V5 it also receives direct connections from V1. It has extremely sharp selection of the orientation of visual contours.

Structure of Convolutional Neural Networks

CNN processes the image with various layers.

Layers Of CNN

Input Layer: In this layer, data is transmitted raw to the network.

Convolutional Layer: Used for detecting features.

Non-Linearity Layer: Introduction to nonlinearity to the system

Pooling (Down sampling) Layer: Decrease count of weights and check the conformation

Flattening Layer: Prepare the data for classical neural network

Fully Connected Layer: Standard Neural Network used in classification

                  Figure 3: CovNet Diagram

As a result, CNN imitates the work of the visual cortex in our brain. If we look the plane picture, we can define the plane by separating the features such as two wings, engines, windows. CNN does the same thing but previously they detect low-level properties such as curves and edges and create them up to more abstract concepts. Don’t you think it’s great? Hope to see you in our next blog.

 

REFERENCES

  1. http://scipy.github.io/old-wiki/pages/Cookbook/Matplotlib/HintonDiagrams
  2. https://medium.com/@tuncerergin/convolutional-neural-network-convnet-yada-cnn-nedir-nasil-calisir-97a0f5d34cad
  3. https://medium.com/@gopalkalpande/biological-inspiration-of-convolutional-neural-network-cnn-9419668898ac
  4. Kuş, Zeki.”Mikrokanonikal Optimizasyon Algoritması ile Konvolüsyonel Sinir Ağlarında Hiper Parametrelerin Optimize Edilmesi”Fatih Sultan Mehmet University,2019 (pp. 16-21)

 

 

CNN (Evrişimsel Sinir Ağları) ve Cilt Kanseri Tanısı

Yapay zeka teknolojileri hızla ilerlemekte .Bu ilerleme sayesinde sağlık alanı da birçok yönden gelişim ve değişim süreci içine girmiş durumda. Bu yazımızdaysa yapay zeka destekli bir teknoloji sayesinde cilt kanseri tanısı nasıl konulur ve başarı oranı nedir bunu inceleyeceğiz.