Plastik parçalar üzerindeki yüzüklerin kontrolü

Otomotiv sektöründe hizmet veren bir firma için yüzük kontrol sistemini devreye aldık. Sistemde 3 farklı ürün bulunmaktadır. Her bir üründe yüzüğün takılacağı yerler ve renkler farklılık göstermektedir. Bu ürünler modellenerek kontrol edilmesi istenen ürünlerin doğru veya hatalı olarak ayrıştırılması sağlanmıştır.

Operatör tarafından kullanıcı girişi yapılabilen, kontrol edilecek modelin listeden seçilebileceği ve sistemin çalıştırılması veya durdurulması gibi işlemleri içeren bir arayüz tasarlanmıştır.

Sistem, konveyör sistemi üzerinde bölmelere ayrılmış bir bandın ilerlerken mekanik sensör yardımıyla adım adım durdurulması, fotoğraf çekilmesi, bu fotoğrafın bilgisayar üzerindeki yazılım ile işlenerek ürünlerin doğru veya hatalı olarak tespit edilmesi, bu bilgilerin ekranda gösterilmesi ve farklı kovalara atılması işlemlerinden oluşmaktadır.

Kontrol edilecek ürünler farklı pozisyonlarda geleceği için bu ürünlerin ve yüzüklerin aranacağı bölgelerin modellenen ürünlere göre döndürülmesi gerekmektedir. Bu işlemi sağlayan HALCON kodu:

// Kontrol edilecek ürünün fotoğrafının okunması
read_image (Image, 'C:/Projects/M1_175740.bmp')
// Matching(Eşleştirme) için kullanılacak modelin okunması
read_shape_model ('C:/Projects/P1-N.shm', ModelId)
//  Matching(Eşleştirme) işlemi
find_shape_model (Image, ModelId, rad(0), rad(360), 0.5, 1, 0.5,['least_squares','max_deformation 2'], [7,1],0.75,ModelRow, ModelColumn, ModelAngle,ModelScore)
    if (ModelScore > 0.75)
        get_shape_model_contours (ModelContours, ModelId, 1)
        hom_mat2d_identity (HomMat)
        hom_mat2d_rotate (HomMat, ModelAngle, 0, 0, HomMat)
        hom_mat2d_translate (HomMat, ModelRow, ModelColumn, HomMat)
        affine_trans_contour_xld (ModelContours, TransContours, HomMat)
        gen_rectangle1 (ModelRegion, 396.643, 361.944, 816.643, 1134.52)
        area_center (ModelRegion, ModelRegionArea, RectificationRow, RectificationCol)
        hom_mat2d_identity (Rectification)
        hom_mat2d_translate (Rectification, RectificationRow-ModelRow, RectificationCol-ModelColumn, Rectification)
        // Ürünün döndürülmesi
        hom_mat2d_rotate (Rectification, -ModelAngle, RectificationRow, RectificationCol,Rectification)
        affine_trans_image (Image, RectifiedImage, Rectification, 'constant', 'false')
    endif

Doğru ve hatalı olarak tespit edilen ürünlerin ekran görüntüleri :

Sigorta Kutusu Renk ve Röle Kontrolü

Bursa İnegöl’de, Otomotiv Elektrik Sanayi sektöründe faaliyet gösteren Murat Ticaret kameralı kontrol uygulamaları için bizimle çalışmaya karar verdi.

Murat Ticaret için yapılan çalışmada istenenler

  • Üretilen sigorta kutuları ve bu kutuların üzerine yerleştirilmiş çok sayıda sigortanın, renklerine bakılarak  doğru yere doğru sigortanın takılmış olmasının kontrolü
  • Sigorta kutusu üzerinde yer alan rölelerin, doğru röle olup olmadığının kontrolü
  • Kutu üzerindeki Flaşör devresinin doğru devre olup olmadığının kontrolü

Mavis tarafından yapılan kontroller

  • Renk Analizi yapılarak sigortaların doğru yerde olup olmadığının kontrolü
  • Rölelerin üzerindeki şekil ve yazıların tanınarak doğru röle kullanılıp kullanılmadığının kontrolü
  • Flaşör üzerindeki yazının ve rengin ayırt edilerek doğru malzeme kullanılıp kullanılmadığının kontrolü

VYP Sigorta Analiz Ekranı

Projenin Zorlukları :

  • Çok sayıda sigorta kutusu ve üzerinde çok farklı kombinasyonlarda yerleşmiş sigorta kutularının tanıtılması
  • Birbirine çok yakın renklerin ayırt edilebilmesi (Sarı, Turuncu, Portakal, Kahverengi ya da açık yeşil, mavi gibi renkler)
  • Röleler ve Flaşörlerin üzerindeki devre şeması farklılıklarından yola çıkarak doğru ürünü seçebilme

Mavis Teknolojisi

Mavis olarak bu projede ilk kez kullandığı 2 yeni teknolojiyi kullandık. Bunlardan ilki, son kullanıcı için oldukça kolaylık sağlayacak, akıllı öğretim sistemi olarak adlandırabileceğimiz, “Şahit Numuneden Öğren” seçeneğidir.

Akıllı Öğrenim Sistemi

Geliştirilen bu yeni özellik ile kullanıcı (operatör) doğru parçayı kamera kontrol ünitesine koyar ve “Şahit Numuneden Öğren” seçeneğini seçer. Program tüm kutu üzerindeki sigorta, röle, flaşör yerleşim yerlerine, renk değerlerine bakar ve bunları ürün kodu ile eşleştirerek kaydeder. Yine değiştirilebilir bir benzeşim yüzdesi ile sistemin hassasiyeti belirtilmek suretiyle, daha sonra kontrol edilen tüm ürünlerin, şahit numuneye benzeşim oranı çıkartılır. Herhangi bir hata varsa, ürün ret olarak ayrılır. Ürün sağlam ise, barkod etiketi üretilir ve paketlenmek üzere ilgili istasyona yönlendirilir.

Bu projede kullandığımız diğer yenilik, sistemin renk ayırdetme yüzdesini artırmak adına geliştirilen yazılım iyileştirmesidir. Yeni yapılan bu geliştirmeye göre, alınan renkli fotoğraf

  1. RGB değerlerine (3 kanal) ayrılır. (decompose3)
  2. Her bir kanaldaki (R, G ve B) değerlerinin, şahit numunedeki RGB değerleri ile en fazla %20 kadar sapmış olması beklenir. (Bu %20 rakamı değişkendir)
  3. RGB ile sadece belirgin renklerin değişimi yakalanabilmektedir. Sarı, turuncu, altın rengi gibi birbirine yakın renkleri algılamak için trans_from_rgb fonksiyonu ile renklerin hue, saturation, volume değerlerine inilir. Yine şahit numunden en fazla ile %20 sapma beklenir.
  4. Bazı renklerde hue, saturation değerleri de işe yaramayabilir. Bu durumda trans_from_rgb fonksiyonu sırasıyla yuv, cielab, i1i2i3 metodolojisi ile yeniden çalıştırılır. Yine her bir sonuç değerinin şahit numuneye yakın olması beklenir.
  5. Herşeye rağmen, bazı çok yakın değerleri (mavi, açık yeşil) yakalamakta zorluk yaşanıyorsa, bu durumda, sigorta üzerindeki text (yazı – amperaj değeri) de işin içine katılır.

Sonuçta her halükarda doğru sonucu veren hızlı ve güvenli bir yapı geliştirilmiş olur.