Oto-kodlayıcı mimarisi kullanarak mermer yüzey anomali tespiti
Marble surface anomaly detection using autoencoder architecture
Yazar: MUHAMMAD YAHYA ABDULLAH
Danışman: PROF. DR. CEMİL ÖZ
Sakarya Üniversitesi / Fen Bilimleri Enstitüsü / Bilgisayar ve Bilişim Mühendisliği Ana Bilim Dalı
Derece: Yüksek Lisans, 2024
Konu: Bilgisayar Mühendisliği Bilimleri-Bilgisayar ve Kontrol = Computer Engineering and Computer Science and Control

Özet:
Mermer, yer kabuğundaki yüksek basınç ve ısı nedeniyle yapısal ve kimyasal dönüşümler geçiren kireçtaşından oluşan bir tür metamorfik kayadır. Mermer pürüzsüz bir dokuya sahiptir ve genellikle güzel desenler veya damarlar içerir. Taş, geldiği kayanın içerdiği minerallere bağlı olarak genellikle beyaz, gri, pembe ve yeşil gibi çeşitli renklerde olur. Mermer, sanat, mimari ve dekorasyon alanlarında oldukça değerli olmasını sağlayan benzersiz bir estetik ve zarafete sahiptir. Zeminler, duvarlar, heykeller, masalar ve tezgahlar dahil olmak üzere çeşitli uygulamalar için yaygın olarak kullanılmaktadır. Nispeten yüksek sertliği, aşınmaya karşı dirençli ve dayanıklı olmasını sağlar.
Çeşitli uygulamalarda ve endüstrilerde kullanımı her yıl ilerledikçe, mermer kullanıcılarının sayısı, çeşitli bölgelerdeki eğilimlere ve ekonomik koşullara ve özel projelerle ilgili talebe bağlı olarak dalgalanmaya devam edecektir. Birçok tüketici mermeri güzel desenleri ve uzun ömürlü dayanıklılığı için satın aldığından, mermer fabrikalarındaki yüzey hatalarının izlenmesi ve mermerin kalitesinin korunması, tüketici güvenini artırmak için çok önemlidir. Ayrıca hatalı üretimden kaynaklanan sorunların erken önlenmesi, aksi takdirde oluşabilecek maddi kayıpların da önüne geçmektedir. Bu nedenle imalat sanayinde yüzey hatalarının tespit edilmesi çok önemlidir.
Geleneksel yüzey hatası denetimi genellikle insanların görsel denetimini veya mikroskop gibi basit ekipmanların kullanımını içerir. Üretim bağlamında, çizikler, çatlaklar veya yüzey düzgünsüzlüğü gibi kusurları tespit etmek için operatörler tarafından manuel denetim hala yaygın olarak kullanılmaktadır. Bu yöntemler etkili olabilmekle birlikte, zaman alıcı olma eğilimindedir, operatör uzmanlığına bağlıdır ve tutarlı bir doğruluk düzeyi sağlamayabilir.
Otomatik kontrol sistemleri, yüzey kusurları denetiminin verimliliğini ve doğruluğunu artırmada ilerici bir çözüm haline gelmektedir. Otomatik kontrol sistemleri görüntü tanıma, yapay zeka ve makine görüşü gibi teknolojileri entegre ederek yüzey kusurlarını yüksek doğrulukla otomatik olarak tespit edebilir ve sınıflandırabilir. Bu da insan faktörüne olan bağımlılığı azaltır ve üretim ortamlarında verimliliği artırır.
Daha önceki bazı çalışmalarda, Sonuç Ağırlıklandırma tabanlı Resnet Özellik Piramidi Ağı (SA-ROPA), Evrişimsel Sinir Ağı (CNN), Üretken Adversial Ağ (GAN), Segmentasyon tabanlı derin öğrenme yüzey kusurlarının tespitinde (malzeme veya diğer görevler) uygulanmıştır. Bu araştırmada, bir tür yapay sinir ağı Autoencoders mimarisi, Keras kütüphaneleri ve Python programlama dili kullanarak mermer yüzeylerindeki anormallikleri tespit etmeyi amaçlayan bir algoritma oluşturduk. 
Otomatik kodlayıcı, veri temsilini otomatik olarak öğrenen bir sinir ağı türüdür ve bu bağlamda normal verileri yüksek doğrulukla yeniden yapılandırmak için kullanılır. Model çok sayıda normal veri örneği gördüğünde, iyi bir yeniden yapılandırma üretebilir. Ayrıca otoenkoder modeli, modelin verileri ne kadar iyi yeniden yapılandırdığını ölçmek için bir kayıp fonksiyonu da kullanır. Model anormal verilerle karşılaştığında, kayıp fonksiyonu olağandışı verilerin yeniden yapılandırılmasındaki zorluk nedeniyle artma eğilimindedir. Daha sonra kayıp fonksiyonunun değeri kullanılarak bir eşik değeri belirlenebilir. Önceden tanımlanmış eşik değerini aşan bir kayıp değerine sahip veriler anormallik olarak kabul edilebilir. Bu, otomatik kodlayıcının normal verilere karşılık gelmeyen örüntüleri otomatik olarak tespit etmesini sağlar. 
Bu çalışmada iyi sonuçlar elde etmek için aynı veri kümesini kullanarak ancak farklı otoenkoder mimarisi modelleriyle ve farklı eşik değerleri alarak birkaç deneme yaptık. ilk modelde, kodlayıcı bölümünde MaxPooling2D kullanarak dört evrişim katmanı ve dört havuzlama katmanı ve ayrıca kod çözücü bölümünde UpSampling2D kullanarak dört evrişim katmanı ve dört havuzlama katmanı içeren bir otoenkoder mimarisi oluşturduk. Daha sonra oluşturulan modeli eğitmek için eğitim verisi olarak 300 görüntü verisi ve doğrulama verisi olarak 50 görüntü verisi sağlıyoruz. Ayrıca optimizer olarak Adam, 50 adet bacth boyutu ve kayıp fonksiyonu 'mean_squared_error' şeklinde hiper parametreler de kullanılmaktadır. daha sonra eğitilen model ile yeniden yapılandırma hatasının ortalama değerini ve giriş verilerinin standart sapma değerini bulmak için bir fonksiyon yapılır ve iki değer toplanır ve daha sonra anormallikleri tespit etmede bir parametre olarak eşik olarak kullanılır.
Daha sonra ikinci model için kodlayıcı bölümünde MaxPooling2D fonksiyonunu kullanarak üç konvolüsyon katmanı ve üç havuzlama katmanı içeren bir otoenkoder mimarisi oluşturduk ve ayrıca kod çözücü bölümünde UpSampling2D fonksiyonunu kullanarak üç konvolüsyon katmanı ve üç havuzlama katmanı oluşturduk. Bundan sonra, eğitilen model ile anormallikleri tespit etmek için daha önce oluşturulan fonksiyonu parametre olarak kullanarak eşik değerini arıyoruz. Daha sonra üçüncü deneyde, ikinci deneydeki aynı modeli kullandık, yani kodlayıcı bölümünde üç konvolüsyon katmanı ve üç havuzlama katmanı ve kod çözücü katmanı için üç konvolüsyon katmanı ve üç havuzlama katmanı yaptık. Ancak bu deneyde eşik değerini doğrudan eğitilmiş modelin ortalama yeniden yapılandırma hata değerinden aldık ve anormallikleri tespit etmede bir parametre olarak kullandık.
Parametreler elde edildikten sonra, veri kümesi sağlayıcı web sitelerinden birinden elde edilen "mermer yüzey anomali tespiti" veri kümesi kullanılarak mermer yüzeyindeki anomalileri tespit etmek için bir fonksiyon oluşturulmuştur. Elli adet normal mermer yüzey görüntüsü ve elli adet kusurlu (noktalar, eklemler, çatlaklar) mermer yüzey görüntüsü anormallik tespit fonksiyonunu test etmek için kullanılmıştır. İlk deney için doğruluk sonucu %74, ikinci deney için doğruluk sonucu %84 ve son olarak üçüncü deneyde sonuç %88'dir.
Bu çalışmanın sonuçları arasında bu yöntemin anormallikleri tespit etmedeki etkinliği, otoenkoder mimarisinin diğer yöntemlere kıyasla avantajları ve bu bulguların çeşitli alanlardaki potansiyel pratik uygulamaları yer almaktadır. Otomatik kodlayıcının verileri yeniden yapılandırma yeteneğinden yararlanılarak, yeniden yapılandırılan sonuçlar orijinal verilerle karşılaştırılarak anormallik tespiti gerçekleştirilebilir. Bu yaklaşımın temel avantajı, sınıf etiketlerine ihtiyaç duymadan anormallik tespiti sorununu ele alma kabiliyetinde yatmaktadır.

Abstract:
Marble is a type of metamorphic rock composed of limestone that has undergone structural and chemical transformations due to high pressure and heat in the earth's crust. Marble has a smooth texture and often contains beautiful patterns or veins. The stone usually comes in a variety of colors, such as white, gray, pink and green, depending on the minerals contained in the rock it comes from. 
Marble has a unique aesthetic and elegance that makes it highly valued in art, architecture and decoration. It is widely used for a variety of applications, including floors, walls, sculptures, tables and countertops. Its relatively high hardness makes it wear resistant and durable.
As its use in various applications and industries advances each year, the number of marble users will continue to fluctuate depending on trends and economic conditions in various regions and demand for special projects. 
As many consumers buy marble for its beautiful patterns and long-lasting durability, monitoring surface defects in marble factories and maintaining the quality of the marble is crucial to increase consumer confidence. 
In addition, early prevention of problems caused by faulty production prevents financial losses that might otherwise occur. Therefore, it is very important to detect surface defects in the manufacturing industry.
Traditional surface defect inspection usually involves visual inspection by humans or the use of simple equipment such as microscopes. In a manufacturing context, manual inspection by operators to detect defects such as scratches, cracks or surface unevenness is still widely used. While these methods can be effective, they tend to be time-consuming, depend on operator expertise and may not provide a consistent level of accuracy.
Automated inspection systems are becoming a progressive solution to improve the efficiency and accuracy of surface defect inspection. By integrating technologies such as image recognition, artificial intelligence and machine vision, automated inspection systems can automatically detect and classify surface defects with high accuracy. This reduces reliance on the human factor and increases efficiency in production environments.
An autoencoder is a type of neural network that automatically learns the data representation and in this context is used to reconstruct normal data with high accuracy. When the model sees a large number of normal data samples, it can produce a good reconstruction. The autoencoder model also uses a loss function to measure how well the model reconstructs the data. 
When the model encounters abnormal data, the loss function tends to increase due to the difficulty in reconstructing unusual data. A threshold value can then be set using the value of the loss function. Data with a loss value that exceeds the predefined threshold value can be considered anomalous. This allows the autoencoder to automatically detect patterns that do not correspond to normal data.
To get good results in this study we conducted several trials using the same dataset but with different autoencoder architecture models and taking different threshold values. in the first model we created an autoencoder architecture with four convolution layers and four pooling layers using MaxPooling2D in the encoder section and also four convolution layers and four pooling layers using UpSampling2D in the decoder section. 
Then we provide 300 image data as training data and 50 image data as validation data to train the model that has been created. In addition, hyper parameters are also used in the form of Adam as an optimizer, 50 number of batch sizes and the loss function 'mean_squared_error'. then with the model that has been trained, a function is made to find the average value of the reconstruction error and the standard deviation value of the input data and the two values are summed up and then used as a threshold as a parameter in detecting anomalies.
Then for the second model we created an autoencoder architecture with three convolution layers and three pooling layers using the MaxPooling2D function in the encoder section and also in the decoder section we created three convolution layers and three pooling layers using the UpSampling2D function. After that, with the model that has been trained, we look for the threshold value using the previously created function as a parameter to detect anomalies. 
Then in the third experiment we used the same model in the second experiment, namely three convolution layers and three pooling layers in the encoder section as well as for the decoder layer made three convolution layers and three pooling layers. But in this experiment we took the threshold value directly from the average reconstruction error value of the trained model and used it as a parameter in detecting anomalies.
After the parameters are obtained, a function is created to detect anomalies on the marble surface using the "marble surface anomaly detection" dataset obtained from one of the dataset provider websites. Fifty images of normal marble surfaces and fifty images of marble surfaces with defects (points, joints, cracks) were used to test the anomaly detection function. For the first experiment, the accuracy result is 74%, for the second experiment, the accuracy result is 84% and finally in the third experiment, the result is 88%.
The conclusions of this study include the effectiveness of this method in detecting anomalies, the advantages of the autoencoder architecture compared to other methods, and the potential practical applications of these findings in various fields. By utilizing the ability of the autoencoder to reconstruct data, anomaly detection can be performed by comparing the reconstructed results with the original data. The main advantage of this approach lies in its ability to address the problem of anomaly detection without the need for class labels.