← Projeler

OpenCV ile fındık yüzeyinde kusur segmentasyonu

MVTec Hazelnut görüntülerinde çatlak, delik, baskı ve kesik için Otsu, Canny, Top-Hat ve morfoloji tabanlı analiz.

Rol
Geliştirme ekibi üyesi · iki kişilik proje
Kurum
Kocaeli Üniversitesi
Dönem
2025
Teknolojiler
Python · OpenCV · NumPy · scikit-image · Matplotlib
Delikli fındığın orijinal görüntüsü, Otsu nesne maskesi, kusur maskesi ve işaretlenmiş sonuç.

Problem

Fındığın doğal yüzey çizgisiyle gerçek bir çatlağı ayırmak, yalnızca koyu pikselleri seçmekten daha zor. Bu çalışmada yüzey kusurlarını farklı görsel özelliklerine göre ele aldık: çatlakta kenar sürekliliği, delikte koyu merkez, baskıda parlaklık farkı, kesikte kontur bozulması. İki kişilik ekiple MVTec AD Hazelnut üzerinde dört ayrı OpenCV pipeline’ı geliştirdik.

Bu sürümde kullanıcı kusur türünü seçiyor; program seçilen türe ait görüntü işleme akışını çalıştırıyor. Bilinmeyen kusur türünü otomatik sınıflandıran bir model değil.

Nesne maskesi ve algoritmalar

Otsu threshold ile fındık arka plandan ayrılıyor. Morfolojik closing/opening ve en büyük bağlı bileşen seçimi maskeyi temizliyor. Kontur doldurma ve erozyonla iç ROI oluşturularak kenar kaynaklı yanlış adaylar azaltılıyor.

  • Crack: bilateral filter, Canny kenarları ve morfolojik closing.
  • Hole: koyu merkez eşiği ile Top-Hat çıktısının birleştirilmesi.
  • Print: Gaussian blur, Top-Hat, yoğunluk istatistikleri ve bağlı bileşen alan filtresi.
  • Cut: dolu/orijinal maske farkı ile morfolojik gradient.
Çatlak fındık için orijinal görüntü, nesne maskesi, Canny tabanlı kusur maskesi ve sonuç
Çatlak fındık için orijinal görüntü, nesne maskesi, Canny tabanlı kusur maskesi ve sonuç

Kusur maskesindeki alan 200 pikseli aştığında görüntü kusurlu olarak işaretleniyor. Eşikler ve kernel boyutları merkezi config.py dosyasında; segmentasyon, tespit ve görselleştirme ayrı modüllerde tutuluyor.

Top-Hat ve yoğunluk eşiği, fındığın üzerindeki parlak baskı alanlarını işaretliyor.
Baskı: parlaklık farkını ayırmak Top-Hat ve yoğunluk eşiği, fındığın üzerindeki parlak baskı alanlarını işaretliyor.

Değerlendirme ve sınırlar

Rapor çatlak, delik, baskı ve kesik örnekleri için nitel sonuçlar sunuyor. Ancak bağımsız bir IoU/Dice veya precision/recall benchmark’ı yok. Ana akışta good seçeneği doğrudan boş maske üretiyor; bu yüzden bu seçenekten yanlış pozitif oranı çıkarılamaz.

Tür seçimini kaldıran ortak bir tespit hattı kurmak ve bütün görüntüleri ground-truth maskeleriyle değerlendirmek sonraki adım. Sabit eşikler, düşük kontrast ve farklı aydınlatmada ayrıca sınanmalı.

Maske farkı ve morfolojik gradient, yüzey dokusundan çok nesnenin konturundaki bozulmayı inceliyor.
Kesik: nesnenin şekline bakmak Maske farkı ve morfolojik gradient, yüzey dokusundan çok nesnenin konturundaki bozulmayı inceliyor.

Sonuç

Dört kusur türü için orijinal görüntü, nesne maskesi, kusur maskesi ve overlay çıktıları üretildi. Proje, klasik segmentasyon ve morfolojik işlemlerin hangi görsel özellikleri yakaladığını ara adımlarla göstermeye odaklanıyor.