Simulated Annealing Algorithm

Hello everyone, the word optimized is a word that we encounter very often in everyday life. As you know, the word optimization is the case where an event, problem, or situation chooses the best possible possibilities within a situation 📈. The Simulated Annealing method, which helps to find the best result by obtaining the results of the problem at different times in order to find a general minimum point by moving towards the value that is good from these results and testing multiple solutions, is also an optimization problem solution method [1].

🔎About the Simulated Annealing Algorithm

The simulated annealing method is a popular metaheuristic local search method used to address discrete and to a lesser extent continuous optimization problem. The main feature of simulated annealing is that it provides a means of evading the local optimality by allowing hill climbing movements (movements that worsen the purpose function value) with the hope of finding a global optimum [2].

The reason why the algorithm is called annealing is since the blacksmith’s heat treatment to a certain degree while beating the iron is based on the iron’s desired consistency. The problem is addressed with the same logic as in this example, and the heating process is passed with the degree of annealing, and then it is assumed that it reaches the desired point. (Local Objective Function)  

The function that gives the probability of acceptance of motion leading to an elevation up to Δ in the objective function is called the acceptance function [4].

Probability formula

When the temperature is high, there will be a very high probability of acceptance of movements that may cause an increase in goal function, and this probability will decrease as the temperature decreases. For this reason, it is necessary to start the search with a sufficiently high temperature value [4]. I have determined the initial temperature value to be used in the project I’ m working on as T= 100000 🌡️. In the algorithm, the search process is continued by trying a certain number of movements at each temperature value while the temperature is gradually reduced [4].

Flow Chart of The Algorithm 🖋

Working Principle of Algorithm 📲

The most important operation in the running logic of the simulated algorithm is that the temperature must be cooled over time. Because if the initial temperature does not decrease over time, the energy will remain consistently high and the search of  the energy levels are compared in each solution until the cooling process is performed in the algorithm. In the calculation of Energy Exchange, the current configuration difference is utilized from a possible configuration as pos’ [5].

Calculation of Energy Exchange [5]

A calculation probability is then presented for calculating the position to be accepted, as seen in Figure 4. The equation is simplified by ignoring the Boltzmann constant k. In this way, it is possible to calculate the new candidate solution.

Probability calculation of new candidate solution [5]

            In these cases, the temperature of T continues to decrease at a certain interval repeating. The data set used in this project is ‘gr137.tsp’. This data set works with the TSP infrastructure and is based on mobile vendor problems. This data set contains information for 666 city problems in the American infrastructure and provides 137 x and Y coordinates in the content size. We will compare the nodes executed in the simulated annealing method by first replacing them with the swap method and try to get the best result 👩🏻‍🏫.

Preview from file ‘gr137.tsp’  with coordinates

  We will calculate the distances of the nodes to be compared in the objective function as follows. Here we take the distance to be calculated as the Euclidean distance 📏.

We will continue to encode in Python, which is a very common language in optimization algorithms. Let’s write together the objective function based on Euclidean distance 👍.

Purpose function distance calculation

Calculation with Swap Method 🧮

As shown in Figure 8, the value denoted by N represents the size of the coordinates. We will assign swap1 and swap2 variables by generating random values in size N. If the two values to be checked are the same as each other, swap2 will re-create the probability to create a new probability value. In this data set, the value expressed by p is equivalent to the Id column. Values ​​are copied with the copy( ) function to prevent any changes. The reason for calculating energy at each stage is because the temperature value in the Simulated Annealing algorithm logic must be heated to a certain value and then cooled to a certain level by a cooling factor called cooling factor. In the case of simulated annealing, there will be an increase in energy due to the mobility of the particles in the heating process and it is desired to check whether they have high energy by making energy calculations in each process ⚡.

Calculation with Swap method

Since this method is used in the algorithm, it can not go to the method of calculating random values so it is very important in terms of time to go to the correct results with the use of other search operators.

Swap exchange method between values

DatasetOptimumBestWorstMeanStandard Deviation
gr137.tsp69853854.7855305691671868.838856972194863.772459811443.9530597090364

The first solution and best solution values in iteration outputs are shown below respectively. We will achieve the first solution and last solution values throughout 10 iterations by aiming to reach the optimum values.

Table of Objective values
Graphization of Objective values

E.g. 5.the results obtained at different times during the calculation to observe the value changes during iteration are shown below. Thus, the logic of the swap process and the energy changes (ΔE) in this process can be seen.

Showing energy values while swaps are in progress

Result values based on calculation in Link 5 and 102

Result values, depending on the calculation in links 113 and 127

🔎 APPLYING THE ALGORITHM 2-OPT OVER S.A.

2-opt algorithm is probably the most basic and widely used algorithm for solving TSP problems [6]. Basically, it can be defined as the deletion of the two edges in the round and the Connecting of the round divided into two parts in a different way to reduce costs. (Gutin ve Punnen, 2002).

✔️ In the swap method of simulated annealing, the two values are controlled by each other and stored according to the probability value. However, since all operations will be done in sequence, it will not be very efficient in terms of runtime.

✔️With the 2-opt algorithm, it is seen that the index values (initial_p) have passed to the 17th node after the 4th node. The 2 opt algorithm enters the circuit by breaking the link between nodes 4 and 5 and creating the link between nodes d and 17. Thus, runtime produces more efficient results.

Connecting different values in tour connection

In the two_opt_python function, the index values in the cities are controlled with 2 increments and change. If there is a change in the path on the Tour, this change is assigned to the tour variable. as a result of the dist( ) function, the Euclidean distance between two cities ( such as 4-17) is calculated and the coordinates in the tour are returned. This ensures improvement on the best solution ⭐

REFERENCES

[1] Sadi Evren Seker, Computer Concepts, “Simulated Annealing”, Retrieved from http://bilgisayarkavramlari.sadievrenseker.com/2009/11/23/simulated-annealing-benzetilmis-tavlama/.

 [2] Darrall Henderson, Sheldon H Jacobson, Alan W. Johnson, The Theory and Practice of Simulated Annealing, April 2006.          

 [3] Orhan Baylan, “WHAT IS HEAT TREATMENT? WHY HEAT TREATMENT IS DONE TO STEEL?”, Retrieved from https://www.metaluzmani.com/isil-islem-nedir-celige-nicin-isil-islem-yapilir/.

 [4] Annealing Simulation Algorithm (Simulated Annealing), BMU-579 Simulation and modeling , Assistant Prof. Dr. Ilhan AYDIN.

[5] Hefei University, Thomas Weise, Metaheuristic Optimization, 7. Simulated Annealing.

[6] Timur KESKINTURK, Baris KIREMITCI, Serap KIREMITCI, 2-opt Algorithm and Effect Of Initial Solution On Algorithm Results, 2016.

Benzetimli Tavlama (Simulated Annealing) Algoritması

BENZETİMLİ TAVLAMA ALGORİTMASI

Herkese merhabalar, optimize kelimesi aslında günlük hayatta çok sık karşımıza çıkan bir kelimedir. Takdir edersiniz ki optimizasyon kelimesi aslında bir olayın, problemin veya bir durumun içerisindeki olasılıklardan mümkün olan en iyiyi seçmesi durumudur 📈.

Genel bir minimum noktası bulmak amacı ile problemin farklı zamanlarındaki sonuçlarını elde ederek bu sonuçlardan iyi olan değere doğru hareket edip birden fazla çözümü test ederek en iyi sonucu bulmaya yardımcı olan yöntem olan Simulated Annealing (Benzetimli Tavlama) yöntemi de bir optimizasyon problemi çözüm yöntemidir [1].

[gdlr_core_space height=”30px”]

🔎Simulated Annealing Algoritması Hakkında

Benzetimli tavlama (Simulated Annealing) yöntemi, ayrık ve daha az ölçüdeki sürekli optimizasyon problemlerini ele almak için kullanılan popüler bir metasezgisel yerel arama yöntemidir.

Benzetimli tavlama algoritmasının temel özelliği, küresel bir optimum bulma umudu ile tepe tırmanma hareketlerine (amaç fonksiyon değerini kötüleştiren hareketlere) izin vererek yerel optimumdan kaçma aracı sağlamasıdır [2].

Algoritmaya tavlama ismi verilmesinin sebebi, demircilerin demiri döverken belirli bir dereceye kadar ısıl işlemden geçirmesi sonucu demirin istenilen kıvama gelmesini esas almasından kaynaklanmaktadır. Aynı mantık ile bir problem ele alınarak tavlama derecesi ile ısıtma sürecinden geçiriliyor ve ardından istenilen noktaya geldiğinde sonuca ulaştığı kabul ediliyor. (Local Objective Function)  

Demirin ısıl işlemden geçirilerek tavlanması [3]

[gdlr_core_space height=”30px”]

Amaç fonksiyonunda Δ kadar bir yükselmeye yol açan hareketin kabul edilme olasılığını veren fonksiyon kabul (accept) fonksiyonu olarak adlandırılır [4].

Olasılık formülü

[gdlr_core_space height=”30px”]

Sıcaklık yüksek olduğunda, amaç fonksiyonunda artışa neden olabilecek hareketlerin kabul edilme olasılığı çok yüksek olacak, sıcaklık düştükçe bu olasılık da azalacaktır. Bu sebeple, aramaya yeteri kadar yüksek bir sıcaklık değeri ile başlamak gereklidir [4]. Ben çalıştığım projede kullanılacak başlangıç sıcaklık değerini T= 100000 olarak belirledim 🌡️.

Algoritmada, sıcaklık yavaş yavaş azaltılırken her sıcaklık değerinde belli sayıda hareket deneyerek arama işlemi sürdürülmektedir [4].

[gdlr_core_space height=”30px”]

Algoritmanın Akış Şeması 🖋️

Benzetimli Tavlama Algoritması Akış Diyagramı

[gdlr_core_space height=”30px”]

Algoritmanın Çalışma Prensibi 🔨

Benzetimli algoritmanın çalışma mantığında en önemli işlem, sıcaklığın zamanla soğutulması gerektiğidir. Çünkü başlangıç sıcaklığı zamanla azalmazsa enerji sürekli yüksek kalacak ve yüksek orandaki entropi ile tüm ağacın aranması sağlanacaktır, bu istenmeyen bir durumdur.

Algoritmada soğuma işlemi gerçekleştirilene kadar her çözümde enerji seviyeleri karşılaştırılır. Enerji değişimi hesaplanmasında pos’ olarak olası bir yapılandırmadan mevcut yapılandırma farkından faydalanılır [5].

Enerji değişimi hesaplanması [5]

Daha sonra kabul edilecek pozisyonun hesaplanması için Şekil 4’ de görüldüğü gibi bir hesaplama olasılığı sunulmuştur. Boltzmann sabiti olan k değeri göz ardı edilerek denklem sadeleştirilmiştir. Bu sayede yeni aday çözümün hesaplanmasına imkân sunulmuştur.

Yeni aday çözümün olasılık hesabı [5]

[gdlr_core_space height=”30px”]

Bu durumlarda T sıcaklığı ise yinelenen belirli bir aralıkta sıcaklığını azaltmaya devam etmektedir. Bu projede kullanılan veri seti ‘gr137.tsp’ olarak seçilmiştir.

Bu veri seti TSP alt yapısı ile çalışmakta ve gezgin satıcı problemlerini baz almaktadır. Bu veri seti Amerika alt yapısındaki 666 tane şehir problemi için bilgi içermekte ve içerik boyutunda 137 tane X ve Y koordinatları verilmektedir.

Benzetimli tavlama yönteminde çalıştırılan düğümleri öncelikle swap yöntemi ile değiştirerek karşılaştıracağız ve en iyi sonucu elde etmeye çalışacağız 👩🏻‍🏫

Koordinatların yer aldığı “gr137.tsp” dosyasından ön izleme

[gdlr_core_space height=”30px”]

Amaç fonksiyonu olarak gösterilen Objective Function ’da karşılaştırılacak düğümlerin mesafelerini aşağıdaki gibi hesaplayacağız. Burada hesaplanacak mesafeyi ise öklid mesafesi olarak alacağız 📏

Optimizasyon algoritmalarında çok sık kullanılan bir dil olan Python dilinde kodlamaya devam edeceğiz. Haydi birlikte amaç fonksiyonunu öklid mesafesi baz alarak yazalım 👍

[gdlr_core_space height=”30px”]

Amaç fonksiyonu mesafe hesaplanması

Swap Yöntemi ile Hesaplama 🧮

Şekil 8’ de görüldüğü üzere N ile gösterilen değer koordinatların boyutunu ifade etmektedir. N boyutunda rastgele değerler üreterek swap1 ve swap2 değişkenlerine atayacağız. 

Kontrol edilecek iki değer birbiri ile aynı ise yeni olasılık değeri oluşturmak üzere swap2 olasılığı yeniden değer oluşturacak demektir. Bu veri setinde p ile ifade edilen değer bir bakıma Id sütununa denk gelmektedir. 

Üzerinde değişiklik yapılmaması için copy( ) fonksiyonu ile değerler kopyalanmaktadır. Her aşamada enerji hesaplaması yapılmasının sebebi, Simulated Annealing algoritma mantığındaki sıcaklık ( temperature ) değerinin belirli bir değere kadar ısıtılması ve sonra cooling factor denilen soğuma faktörü ile belirli bir seviyeye kadar soğutulması gerektiğinden kaynaklanmaktadır.

Benzetimli tavlama örneğindeki ısınma sürecinde içerisindeki partiküllerin hareketliliğinden dolayı enerji yükselmesi olacaktır ve enerji hesabı her süreçte yapılarak yüksek enerjiye sahip olup olmadığı kontrol edilmek istenmektedir ⚡

[gdlr_core_space height=”30px”]

Swap yöntemi ile hesaplama

Algoritmada kullanılan bu yöntemde sıra ile (order) işlem yapılmakta olduğundan rastgele değerler üzerinde hesaplama yöntemine gidemez böylelikle doğru sonuçlara diğer arama operatörlerinin kullanımı ile gidilmesi zaman açısından da çok önem arz etmektedir.

Değerler arasında swap değişim yöntemi

Veri Seti Optimal En iyi En kötü Ortalama Standart Sapma
gr137.tsp 69853 854.7855305691671 868.838856972194 863.77245981144 3.9530597090364

İterasyon çıktılarındaki ilk çözüm ve elde edilen en iyi çözüm değerleri ise sırasıyla aşağıda gösterilmektedir. Optimum değerleri ulaşmayı hedefleyerek 10 iterasyon boyunca ilk çözüm ve son çözüm değerlerini elde edeceğiz.

Objective değerler tablosu

Objective değerlerin grafikselleştirilmesi

[gdlr_core_space height=”30px”]

Örneğin 5.iterasyon çalıştırılırken değer değişimlerini gözlemlemek amacı ile hesaplama sırasında farklı zamanlarda alınan sonuçlar aşağıda gösterilmiştir. Böylelikle swap işlemi mantığını ve bu süreçteki enerji değişimleri (ΔE) gözle görülebilmektedir.

Swap işlemi devam ederken enerji değerlerinin gösterilmesi

5 ve 102 nolu bağdaki hesaplamaya bağlı result değerleri

113 ve 127 bağındaki hesaplamaya bağlı olarak result değerleri

[gdlr_core_space height=”30px”]

🔎 2-OPT ALGORİTMASININ SA ÜZERİNDE UYGULANMASI

2-opt algoritması, GSP problemlerinin çözümüne yönelik, muhtemelen en temel ve çok geniş kullanım alanına sahip bir algoritmadır [6]. Temel olarak tur içerisindeki iki kenarın silinmesi ve iki parçaya ayrılan turun maliyetleri düşürecek şekilde, farklı olarak bağlanması şeklinde tanımlanabilir (Gutin ve Punnen, 2002).

✔️Benzetimli tavlamanın swap yönteminde iki değer birbiri ile kontrol edilmekte ve olasılık değerine göre hafızaya alınmaktadır. Fakat tüm işlemler sırası ile yapılacağından çalışma zamanı açısından çok verimli olmayacaktır.

✔️2opt algoritması ile örneğin tour olarak adlandırılan indis değerlerinde (initial_p) 4. düğümden sonra 17. düğüme geçiş yapmakta olduğu görülmektedir. 2opt algoritması devreye 4 ve 5. düğümler arasındaki bağı kırıp d ile 17 düğümleri arasındaki bağı oluşturmakta girer. Böylelikle çalışma zamanı daha verimli sonuçlar üretir.      

[gdlr_core_space height=”30px”]

Tour bağlantısındaki farklı değerlerin bağlanması

two_opt_python fonksiyonunda şehirlerdeki indis değerleri 2 artırımlı olarak kontrol edilerek değişimi vermektedir. Tour üzerindeki yolda herhangi bir değişim yaşandıysa bu değişim tour değişkenine atanmaktadır. dist( ) fonksiyonu sonucunda iki şehir arasındaki ( 4-17 gibi) Öklid uzaklığı hesaplatılarak tour içerisindeki koordinatlar döndürülmektedir. Bu sayede en iyi çözüm üzerinde iyileştirme sağlanmaktadır ⭐

REFERANSLAR

[1] Sadi Evren Şeker, Bilgisayar Kavramları, “Simulated Annealing (Benzetilmiş Tavlama)”, http://bilgisayarkavramlari.sadievrenseker.com/2009/11/23/simulated-annealing-benzetilmis-tavlama/ adresinden alınmıştır.

 [2] Darrall Henderson, Sheldon H Jacobson, Alan W. Johnson, The Theory and Practice of Simulated Annealing, April 2006.          

 [3] Orhan Baylan, “ISIL İŞLEM NEDİR? ÇELİĞE NİÇİN ISIL İŞLEM YAPILIR?”, https://www.metaluzmani.com/isil-islem-nedir-celige-nicin-isil-islem-yapilir/ adresinden alınmıştır.     

 [4] Tavlama Benzetimi Algoritması (Simulated Annealing), BMÜ-579 Benzetim ve Modelleme, Yrd. Doç. Dr. İlhan AYDIN.

[5] Hefei University, Thomas Weise, Metaheuristic Optimization, 7. Simulated Annealing.

[6] Timur KESKİNTÜRK, Barış KİREMİTCİ, Serap KİREMİTCİ, 2-OPT Algoritması ve Başlangıç Çözümünün Algoritma Sonuçları Üzerindeki Etkisi, 2016.

MATLAB ile Özellik Çıkarımı (Feature Extraction) Teknikleri

Feature Extraction

Günümüzde bilgisayarlı görü (Computer Vision), görüntü işleme (Image Processing) ve yapay zekâ (AI) projelerinde anlam çıkarma bakımından sıkça kullanılan bir yöntem olan özellik çıkarımı (Feature Extraction), ham veri üzerinde boyut azaltma yöntemine başvurulmasıdır [1]. Bildiğiniz üzere makine öğrenimi son zamanlarda çarpıcı gelişmeler yaşamaktadır. Bu durum makine öğreniminin endüstri, akademi ve popüler kültürden büyük ilgi görmesini sağlamıştır 🏭👩‍🔬. Dünyada ve hatta ülkemizde son zamanlarda sağlık alanında makine öğreniminin ve derin öğrenme modellerin uygulamaya alınmasıyla birlikte akıllı sistemler, birçok hastalığı önceden tespit edebilmekte veya uzman bir kişinin göremediği ayrıntıları gözden kaçırmamaktadır [2]. Tıbbi tedavilerde sıkça rastlanılan MRI görüntüler üzerinde hastalığı tespit edebilecek farklı bölgeler bulunmaktadır ☢️. Bu bölgelerde yoğunlaşmak üzere özellik seçimi ve özellik çıkarımı gerçekleştirilerek elde edilen sonuçlar çeşitli algoritmalara yansıtılarak insanın algıladığı hastalıkları makinenin tespit edilmesi sağlanır.

[gdlr_core_space height=”30px”]

Örnek Beyin MR Görüntüsündeki Lezyon Bölgelerinin Özellik Çıkarımı ile Tespit Edilmesi [3]

[gdlr_core_space height=”30px”]

Daha önce “Görüntü İşleme ile Kemik Yaşı Tespitinde Ön Aşamalar” adlı makalemde bahsettiğim bireylerden alınmış sol el bilek MR görüntüleri üzerinde çalışmaya devam edeceğim. Tabi bu kullanılan görüntüler tamamen kişinin isteğine kalmış, dilerseniz başka bir görüntü veri seti üzerinde de özellik çıkarımı yapmanız mümkündür ✔️. Önemli olan görüntü içerisindeki nesnelerin farkına varabilmemiz ve içerisinde ne gibi feature (özellik) barındırdığını tespit edebilmemiz olacaktır. Şekil 2’ de kısaca anlatmak gerekirse görüntü ön işleme aşamalarını MATLAB ortamında göstermekteyim. Ön işleme aşamaları sırasında görüntüde bulunan önemsiz detayların silinmesi, ışık faktörünün azaltılması ve bazı bölgelerin belirginleşmesi için belirli filtreler kullanılmıştır.

[gdlr_core_space height=”30px”]

MATLAB Ön İşleme Adımları

[gdlr_core_space height=”30px”]

Özellik Çıkarımı İncelenmesi

📌 Özellik çıkarımı bir projedeki performansı olumlu yönden etkilemek amacıyla boyut indirgeme yapılarak detayların elde edilmesidir. Makine öğrenimi, örüntü tanıma ve görüntü işleme alanlarında kullanılan özellik çıkarımı (özellik çıkarımı), girdi olarak verilen ölçülmüş verileri kullanarak türetilmiş değerler (özellikler) oluşturur [3].

📌 Makine öğrenmesindeki bir özellik (feature), gözlemlenen bir verinin bireysel olarak ölçülebilir özelliğidir. Özellikler, bir tahmin veya sınıflandırma yapılabilmesi için makine öğrenme modeline beslenilen girdilerdir [4].


Veri Analizinin Adımları

[gdlr_core_space height=”30px”]

Özellik Çıkarımı Teknikleri

Özellik çıkarımı, mevcut olan verilerden yeni özellikler oluşturarak ve ardından orijinal özellikleri atarak veri kümesindeki özellik sayısını azaltmayı amaçlamaktadır [6]. Bu bilgiler doğrultusunda, MATLAB ortamında görüntülerin renk kanalları öncelikle kontrol edilmiştir. Ardından belirtilen renk kanalına göre RGB ve Gray-Level bilgisi tutularak renk dönüşümleri sağlanmış ve bu sonuçlardan sayısal değerler elde edilecektir. Bu sayısal değerler daha sonra makine öğreniminde kullanılacak olup öncelikle manuel olarak aynı sınıflara ait olup olmadığı kontrol edilecektir.

[gdlr_core_space height=”30px”]

🔎 RGB, HSV, LAB Renk Kanalları ve GLCM Matris İncelenmesi

🔗 RGB Renk Kanalı : RGB en yaygın kullanılan renk alanıdır. Bu renk modelinde her renk kırmızı, yeşil ve mavi ana spektral bileşenleri olarak görür. Bu modelin altyapısında Kartezyen Koordinat Sistemi barınmaktadır. İlgilenilen renk alt uzayı, görüntü işlemede sıkça kullanılan bu küp olarak incelenir [7].

📌RGB renk kanalında çalışırken öncellikle alınan görüntünün RGB renk kanalına uygun olup olmadığını kontrol edelim ve daha sonra Red (Kırmızı), Green (Yeşil) ve Blue (Mavi) kanallarının matris değerlerini değişken olarak tutalım.

Görüntünün R,G ve B Kanallarına Ayrıştırılması

Örnek Red Kanalı Değerlerinin Gösterimi

[gdlr_core_space height=”30px”]

🔗 HSV Renk Kanalı : HSV uzayının ismi, renk tonu, doygunluk ve parlaklık kelimelerinin İngilizce karşılığı olan hue, saturation ve intensity kelimelerinin baş harflerinden gelmektedir. HSV renk uzayı Hue, Saturation ve Value terimleri ile rengi tanımlar. RGB de renklerin karışımı kullanılmasına karşın HSV de renk, doygunluk ve parlaklık değerleri kullanılır. Doygunluk rengin canlılığını belirlerken parlaklık rengin aydınlığını ifade eder.  HSI uzayı, bir renkli görüntüdeki yeğinlik bileşenini renk taşıyan bilgiler olan renk tonu ve doygunluktan ayrıştırır [9].

Görüntünün H,S ve V Özelliklerine Ayrıştırılması

Örnek V Kanalı Değerlerinin Gösterimi

[gdlr_core_space height=”30px”]

🔗 CIE Renk Kanalı: CIE 1931 renk uzayları , elektromanyetik görünür spektrumdaki dalga boylarının dağılımı ile insan renk görüşünde fizyolojik olarak algılanan renkler arasındaki ilk tanımlanmış kantitatif bağlantılardı . Bu renk uzaylarını tanımlayan matematiksel ilişkiler, renk mürekkepleri, ışıklı ekranlar ve dijital kameralar gibi kayıt aygıtlarıyla uğraşırken önemli olan renk yönetimi için gerekli araçlardır [11] . RGB görüntünün CIELAB kanallarına ayrıştırılması için rgb2lab komutu ile dönüşümünün gerçekleştirilmesi gerekir.

Görüntünün C, I ve E Kanallarına Ayrıştırılması

Örnek C Kanalı Değerlerinin Gösterimi

[gdlr_core_space height=”30px”]

🔎 GLCM (Gray-Level Co-Occurrence Matrix) : Gri düzeyde eş oluşum matrisi ile bir dizi doku özelliği çıkarılabilmektedir. Doku filtresi işlevleri, görüntü histogramına dayalı olarak dokunun istatistiksel bir görünümünü sağlar. Bu işlevler bir görüntünün dokusu hakkında yararlı bilgiler sağlayabilir, ancak şekil, yani bir görüntüdeki piksellerin uzaysal ilişkileri hakkında bilgi sağlayamaz [12].

Görüntünün Gri Seviye Eş Oluşum Matrisinin Oluşturulması

🔔 Özellik Vektörünün Oluşturulması: Makine öğreniminde özellik vektörleri, bir nesnenin özellikler olarak adlandırılan sayısal veya sembolik özelliklerini matematiksel, kolayca analiz edilebilir bir şekilde temsil etmek için kullanılır. Makine öğrenimi ve örüntü işlemenin birçok farklı alanı için önemlidir. Makine öğrenimi algoritmaları, algoritmaların işleme ve istatistiksel analiz yapabilmesi için genellikle nesnelerin sayısal bir gösterimini gerektirir. Özellik vektörleri, doğrusal regresyon gibi istatistiksel prosedürlerde kullanılan açıklayıcı değişkenlerin vektörlerinin eşdeğeridir [13].

Oluşan özellik vektörü 1×28 boyutunda değerler içeren bir vektördür.

Özellik Vektörünün Grafikleştirilmesi

Bu şekilde özellik vektörünü elde etmiş olduk. Bir sonraki yazımda görüşmek dileğiyle 🙌🏻

Diğer yazılarıma buradan ulaşabilirsiniz.

REFERANSLAR

[1] Şadi Evren Şeker, “Özellik Çıkarımı (Feature Extraction)”, 1 Aralık 2008, http://bilgisayarkavramlari.sadievrenseker.com/2008/12/01/ozellik-cikarimi-feature-extraction/ adresinden alınmıştır.

[2] M. Mert Tunalı, “MRI Görüntüleri Üzerinden Beyin Tümörü Tespiti Bölüm 1 (U-Net)”, Medium yazısından alınmıştır.

[3] Shahab Aslani, Michael Dayan, Vittorio Murino, Diego Sona, “Deep 2D Encoder-Decoder Convolutional Neural Network for Multiple Sclerosis Lesion Segmentation in Brain MRI”, September 2018, Conference Paper, MICCAI2018 (BrainLes Workshop).
[4] MC.AI, The Computer Vision Pipeline, Part 4: Feature Extraction, October 2019, https://mc.ai/the-computer-vision-pipeline-part-4-feature-extraction/.

[5] Javier Gonzalez-Sanchez, Mustafa Baydoğan, Maria-Elena Chavez-Echeagaray, Winslow Burleson, Affect Measurement: A Roadmap Through Approaches, Technologies, and Data Analysis, December 2017.

[6] Pier Paolo Ippolito, “Feature Extraction Techniques”, Towards Data Science, https://towardsdatascience.com/feature-extraction-techniques-d619b56e31be.

[7] C. Gonzalez, Rafael, E. Woods, Richard, Sayısal Görüntü İşleme, Palme Yayıncılık, (Ankara, 2014).

[8] https://favpng.com/png_view/light-rgb-color-space-rgb-color-model-light-png/BsYUHtec adresinden alınmıştır.

[9] Dr. Öğr. Üyesi Caner Özcan, Karabük Üniversitesi, BLM429 Görüntü İşlemeye Giriş, “Renkli Görüntü İşleme”.

[10] https://tr.pinterest.com/pin/391179917623338540/ adresinden alınmıştır.

[11] From Vikipedi, Özgür Ansiklopedi, “CIE 1931 renk alanı”, 10 Nisan 2020, https://en.wikipedia.org/wiki/CIE_1931_color_space.

[12] Matlab, Image Processing Toolbox User’s Guide, “Using a Gray-Level Co-Occurrence Matrix (GLCM)”, http://matlab.izmiran.ru/help/toolbox/images/enhanc15.html.

[13] Brilliant, “Feature Vector”,  https://brilliant.org/wiki/feature-vector/, April 2020.

Feature extraction techniques with MATLAB

Feature extraction, a method commonly used in computer vision, image processing and artificial intelligence projects, is the application of size reduction on raw data. [1]. As you know, machine learning has been experiencing dramatic developments recently. This has led to great interest in machine learning from industry, academia and popular culture 🏭👩‍🔬. With the introduction of machine learning and deep learning models in the field of Health in the world recently, intelligent systems can detect many diseases in advance or do not overlook details that an expert cannot see [2]. There are different regions that can detect the disease on MRI images that are common in medical treatments ☢️. In order to concentrate in these regions, feature selection and feature extraction are carried out and the results obtained are reflected to various algorithms and the machine is provided to detect diseases detected by human beings.

[gdlr_core_space height=”30px”]
Detection of lesion sites in sample brain MR image by feature inference [3]
[gdlr_core_space height=”30px”]

I’m going to continue to work on left hand wrist MRI images taken from individuals that I mentioned earlier in my article “preliminary stages in bone age determination with image processing”. Of course, the images used are entirely up to the person’s request, if you wish you can also make feature inference on another image data set ✔️. The important thing is that we can recognize the objects in the image and determine what feature it contains. Figure 2 ‘ to briefly explain the image preprocessing stages in the MATLAB environment show. During the pre-processing stages, certain filters were used to erase the trivial details found in the image, reduce the light factor, and clarify certain areas.

[gdlr_core_space height=”30px”]
MATLAB pre-processing steps
[gdlr_core_space height=”30px”]
Examining of Feature Extraction

📌 Feature extraction is the acquisition of details by reducing the size in order to positively affect performance in a project. Attribute inference (feature inference), used in machine learning, pattern recognition, and image processing, creates derived values (properties) using measured data given as input [3].

📌 A feature in machine learning is the individually measurable property of an observed data. Features are inputs fed into the machine learning model to make a prediction or classification [4].

Steps of Data Analysis
[gdlr_core_space height=”30px”]

Feature Extraction Techniques

Feature extraction aims to reduce the number of features in the data set by creating new features from existing data and then discarding the original features [6]. In line with this information, the color channels of the images were first checked in MATLAB. Then, according to the specified color channel RGB and Gray-Level information by keeping color conversions and numerical values will be obtained from these results. These numerical values will then be used in machine learning and will first be manually checked whether they belong to the same classes.

[gdlr_core_space height=”30px”]

🔎 RGB, HSV, LAB Color Spaces and Examining of  GLCM

🔗 RGB Color Space : RGB is the most widely used color space. In this color model, each color acts as the main spectral components of red, green and blue. The Cartesian Coordinate System is in the infrastructure of this model. The color subspace of interest is examined as this cube, which is frequently used in image processing [7].

📌 When working in the RGB color channel, let’s check that the image received with priority is suitable for the RGB color channel, and then let’s keep the Matrix values of the red, green and blue color channels as variables.

Parsing the image into R, G and B channels

Representation of Sample Red Channel Values

[gdlr_core_space height=”30px”]

🔗 HSV Color Space : The name of the HSV space comes from the initials of the words hue, saturation and brightness. HSV color space defines color with the terms Hue, Saturation, and Value. Although a mixture of Colors is used in RGB, HSV uses color, saturation and brightness values. Saturation determines the vitality of the color, while brightness refers to the brightness of the color.  The HSI space separates the nephew component in a color image from the hue and saturation, which are color-bearing information [9].

Parsing the image to H, S and V properties

Example Representation of V Channel Values

[gdlr_core_space height=”30px”]

🔗 CIE Color Space : The CIE 1931 color spaces were the first defined quantitative connections between the distribution of wavelengths in the electromagnetic visible spectrum and physiologically perceived colors in human color vision . The mathematical relationships that define these color spaces are essential tools for Color Management, which are important when dealing with recording devices such as color inks, illuminated displays, and digital cameras [11] . To parse the RGB image into CIELAB channels, the transformation must be performed with the command rgb2lab.

Parsing the image into channels C, I and E

Representation of Sample C Channel Values

[gdlr_core_space height=”30px”]

🔎 GLCM (Gray-Level Co-Occurrence Matrix) : Several tissue features can be extracted with the grey level co-formation Matrix. The texture filter functions provide a statistical view of the texture based on the image histogram. These functions can provide useful information about the texture of an image, but cannot provide information about the shape, that is, the spatial relationships of pixels in an image [12].

Calculation of sample GLCM values [12]

Creation of The Gray Level Co-Formation Matrix In The Image

🔔 Creation of the feature vector: In machine learning, feature vectors are used to represent numerical or symbolic properties of an object, called properties, in a mathematical, easily analyzable way. It is important for many different areas of machine learning and pattern processing. Machine learning algorithms often require a numerical representation of objects so that algorithms can perform processing and statistical analysis. Feature vectors are the equivalent of vectors of explanatory variables used in statistical procedures such as linear regression [13].

The resulting feature vector is a vector with values in size 1×28.

Graphitization of The Feature Vector

In this way we have obtained the feature vector. Hope to see you in my next post 🙌🏻

REFERENCES

[1] Sadi Evren Seker, “Feature Extraction”, December 2008, http://bilgisayarkavramlari.sadievrenseker.com/2008/12/01/ozellik-cikarimi-feature-extraction/.

[2] M. Mert Tunalı, “Brain tumor detection via MRI images Part 1 (U-Net)” taken from Medium.

[3] Shahab Aslani, Michael Dayan, Vittorio Murino, Diego Sona, “Deep 2D Encoder-Decoder Convolutional Neural Network for Multiple Sclerosis Lesion Segmentation in Brain MRI”, September 2018, Conference Paper, MICCAI2018 (BrainLes Workshop).


[4] MC.AI, The Computer Vision Pipeline, Part 4: Feature Extraction, October 2019, https://mc.ai/the-computer-vision-pipeline-part-4-feature-extraction/.

[5] Javier Gonzalez-Sanchez, Mustafa Baydoğan, Maria-Elena Chavez-Echeagaray, Winslow Burleson, Affect Measurement: A Roadmap Through Approaches, Technologies, and Data Analysis, December 2017.

[6] Pier Paolo Ippolito, “Feature Extraction Techniques”, Towards Data Science, https://towardsdatascience.com/feature-extraction-techniques-d619b56e31be.

[7] C. Gonzalez, Rafael, E. Woods, Richard, Digital Image Processing, Palme Publishing, (Ankara, 2014).

[8] Retrieved from https://favpng.com/png_view/light-rgb-color-space-rgb-color-model-light-png/BsYUHtec.

[9] Dr. Lecturer Member of Caner Ozcan, Karabuk University, CME429 Introduction to Image Processing, “Color Image Processing”.

[10] Retrieved from https://tr.pinterest.com/pin/391179917623338540/.

[11] From Wikipedia, The Free Encyclopedia, “CIE 1931 Color Space”, April 2020, https://en.wikipedia.org/wiki/CIE_1931_color_space.

[12] Matlab, Image Processing Toolbox User’s Guide, “Using a Gray-Level Co-Occurrence Matrix (GLCM)”, http://matlab.izmiran.ru/help/toolbox/images/enhanc15.html.

[13] Brilliant, “Feature Vector”,  https://brilliant.org/wiki/feature-vector/, April 2020.