zeynepozten/casting-defect-detection
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:
- Base Model (Temel Model): ImageNet ağırlıklarıyla önceden eğitilmiş VGG16 modeli yüklenir
- Katmanların Dondurulması: VGG16'nın orijinal 14.7M+ parametresi dondurularak bu ağırlıklar korunur
- 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,224Katman Açıklamaları:
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
