CoolFace
Apppublic

zeynepozten/casting-defect-detection

sourceHugging Faceupdated 6mo agoView on Hugging Face
0likes
App README

Casting Defect Detection - Döküm Hata Tespiti

Bu proje, endüstriyel döküm parçalarındaki yüzey hatalarını Deep Learning yöntemleri kullanarak otomatik olarak tespit etmeyi amaçlayan bir bilgisayarlı görü çalışmasıdır.

1. Proje Konusu

Seçilme Gerekçesi

İmalat sanayisinde döküm süreci, karmaşık geometrilere sahip parçaların üretimi için temel bir yöntemdir. Ancak döküm sonrasında yüzeyde kabarma, çatlak veya delik gibi hatalar meydana gelebilmektedir. Geleneksel olarak bu hatalar uzman personel tarafından gözle kontrol edilir. Gözle kontrol; yavaş olması, kişiden kişiye değişebilen sübjektif yargılar içermesi ve yüksek hacimli üretim hatlarında yorgunluğa bağlı hata payının artması nedeniyle verimsizdir. Bu projenin temel motivasyonu, kalite kontrol sürecini objektif, hızlı ve hatasız bir şekilde dijitalleştirmektir.

İlgili Alandaki Uygulamalar

Literatürde döküm hatası tespiti için geçmişte kenar belirleme (Edge Detection), Histogram-of-Oriented Gradients (HOG) ve Local Binary Patterns (LBP) gibi geleneksel görüntü işleme yöntemleri kullanılmıştır. Ancak bu yöntemler, parça üzerindeki aydınlatma değişiklikleri ve karmaşık yüzey dokularına karşı hassastır. Son yıllarda Evrişimli Sinir Ağları (CNN), endüstriyel denetim süreçlerinde insan gözünden daha yüksek doğruluk oranlarına ulaşmıştır.

Alanın Önemi

Otomotiv, havacılık ve enerji gibi kritik sektörlerde kullanılan döküm parçaların hatasız olması, nihai ürünün güvenliği için hayati önem taşır. Hatalı bir parçanın üretim hattından kaçarak son kullanıcıya ulaşması, maliyetli geri çağırma süreçlerine ve telafisi olmayan güvenlik risklerine yol açabilir.


2. Veri Setinin Belirlenmesi

Projede kullanılan veri seti, Kaggle platformu üzerinden temin edilmiş olup, gerçek bir döküm fabrikasından alınan parça görsellerini içermektedir. kagglehub kütüphanesi kullanılarak API üzerinden çekilmiş ve işlenmiştir.

  • Yapı: Veri seti eğitim (train) ve test (test) olarak iki ana bölümden oluşmaktadır.
  • Sınıflandırma: İkili sınıflandırma (Binary Classification) yapılmıştır:
  • def_front: Hatalı olduğu tespit edilen yüzey görüntüleri.
  • ok_front: Herhangi bir kusur barındırmayan sağlam yüzey görüntüleri.
  • Görüntü Özellikleri: Tüm görüntüler RGB formatında olup, model eğitimi sırasında standardizasyon için 224x224 (VGG16 için) ve 300x300 piksel boyutlarına getirilmiştir.
  • Normalizasyon: Piksel değerleri [0, 1] aralığına normalize edilerek modelin daha hızlı yakınsaması sağlanmıştır.

3. Yöntem ve Seçim Gerekçesi

Bu çalışmada iki farklı yaklaşım geliştirilmiş ve karşılaştırılmıştır:

A. Özel Tasarlanmış CNN Modeli - Custom CNN

Veri setine özgü öznitelikleri yakalamak amacıyla katmanları tasarlanmış bir modeldir. Daha hafif olması ve spesifik döküm dokularına odaklanabilmesi amaçlanmıştır.

B. VGG16 Transfer Learning - Seçilen Model

Oxford Visual Geometry Group tarafından geliştirilen VGG16 mimarisi kullanılmıştır. VGG16, ImageNet üzerindeki milyonlarca görselle eğitilmiş zengin bir öznitelik kütüphanesine sahiptir. Bu projedeki gibi nispeten küçük veri setlerinde, modelin baştan eğitilmesi yerine bu hazır bilgilerin kullanılması (Transfer Learning), çok daha yüksek doğruluk ve genelleme yeteneği sağlamıştır.

Transfer Learning Stratejisi

Bu projede Feature Extraction yöntemi kullanılmıştır:

  1. 1.Base Model (Temel Model): ImageNet ağırlıklarıyla önceden eğitilmiş VGG16 modeli yüklenir
  2. 2.Katmanların Dondurulması: VGG16'nın orijinal 14.7M+ parametresi dondurularak bu ağırlıklar korunur
  3. 3.Yeni Sınıflandırıcı Katmanlar: Döküm hata tespitine özel yeni katmanlar eklenir
Model Mimarisi
Layer (type)                 Output Shape              Param #   
=================================================================
vgg16 (Functional)           (None, 7, 7, 512)         14,714,688 (Frozen)
-----------------------------------------------------------------
GlobalAveragePooling2D       (None, 512)               0         
-----------------------------------------------------------------
Dense (512 units, ReLU)      (None, 512)               262,656   
BatchNormalization           (None, 512)               2,048     
Dropout (0.5)                (None, 512)               0         
-----------------------------------------------------------------
Dense (256 units, ReLU)      (None, 256)               131,328   
BatchNormalization           (None, 256)               1,024     
Dropout (0.5)                (None, 256)               0         
-----------------------------------------------------------------
Dense (1 unit, Sigmoid)      (None, 1)                 257       
=================================================================
Total params: 15,112,001
Trainable params: 395,777
Non-trainable params: 14,716,224
Katman Açıklamaları:
KatmanAçıklama
VGG16 BaseImageNet'ten öğrenilen genel görsel öznitelikler (kenarlar, dokular, şekiller)
GlobalAveragePooling2D7x7x512 boyutlu öznitelik haritasını 512 boyutlu vektöre indirger
Dense (512)Döküm hatalarına özgü üst düzey öznitelik öğrenimi
BatchNormalizationEğitim kararlılığını artırır ve hızlandırır
Dropout (0.5)Overfitting'i önlemek için rastgele nöron devre dışı bırakma
Dense (256)Özniteliklerin daha da soyutlanması
Dense (1, Sigmoid)İkili sınıflandırma çıkışı (Hatalı/Hatasız)
Eğitim Konfigürasyonu
  • Optimizer: Adam (learning_rate=0.0001)
  • Loss Function: Binary Crossentropy
  • Metrics: Accuracy, Precision, Recall
  • Callbacks: EarlyStopping, ReduceLROnPlateau, ModelCheckpoint
  • Epochs: 50 (Early stopping ile optimize edilmiş)
  • Batch Size: 32

VGG16 Transfer Learning Model Performansı

VGG16 transfer learning modeli performans metrikleri:

  • %98.60 doğruluk oranı
  • %96.32 precision
  • %100 recall
  • %98.13 F1 Score

Uygulamayı Çalıştırma

Arayüze ulaşmak için:

  • Canlı Link: https://huggingface.co/spaces/zeynepo/casting-defect-detection
  • Yerel Çalıştırma: python app.py