Plastik Üzerinde Klips Kontrolü

Aracın iç dizaynında kullanılmak üzere üretilen parçaların kontrolü yapılmak isteniyor. Bu siyah parçalar üzerinde yine siyah renkli klipsler takılıyor. Ancak bu klipslerin takılmaması problemine karşı, kameralı kontrol sistemi kurulacak.

Siyah üzerinde siyah kontrolü zor olsa da, parçaya göre uygun bir kabin, aydınlatma ve tek kameralı bir sistem tasarladık. Parçanın birden fazla modeli var ve kullanıcı tarafından kontrolü yapılacak ürün program üzerinden seçtiriliyor.

Ardından konulan parça üzerindeki klipslerin kontrolü yapılıyor. Yazılım, parçanın yönü farklı gelse bile doğru çalışacak edecek şekilde ayarlandı. Farklı ürünler geldiğinde ise tabi ki uyarı veriliyor.

Parça kontrolleri “NOK” ise program kendini kilitliyor ve “bakım” şifresini bilen birinin gelip programı şifre ile açması gerekiyor.

Aşağıdan ekran görüntülerini görebilirsiniz..

Klips kontrolü

Klips kontrolü - hatalı parça

Klips kontrolü - hatalı parça

Delik-Perçin Boyutlarının ve Birbirleri Arasındaki Mesafelerin Kontrolü

Otomotiv sektöründe hizmet veren bir firmada bakır malzeme üzerindeki delik ve perçinlerin bulunup,boyutlarının ve birbirleri arasındaki mesafelerin kontrol edilmesi amaçlı bir sistem devreye aldık.

Geliştirdiğimiz arayüz sayesinde program farklı modellere uyarlanabiliyor. Modelin tanıtılması için operatör tarafından ürünün ölçümleri yapıldıktan sonra gerçek değerleri girilerek kaydedilmelidir. Tanıtılan modeldeki piksel-milimetre oranı kullanılarak ölçüm sonucunda bulunan piksel değerleri milimetre cinsinden ifade edilmektedir.

Deliğin bulunması :

var_threshold (ImageReduced, Region, 75, 75, 0.2, 2, 'dark')
closing_circle(Region, RegionClosing, 2.5)
opening_circle(RegionClosing, RegionOpening, 7)
connection(RegionOpening, ConnectedRegions)
select_shape_std(ConnectedRegions, SelectedRegions, 'max_area', 70)
smallest_circle (SelectedRegions, Row, Column, Radius)
gen_circle(Circle, Row, Column, Radius)
set_color(WinHandle, 'blue')
disp_region(Circle, WinHandle)

Perçinin bulunması :

var_threshold (ImageClosing, Region, 20, 20, 0.3, 3, 'light')
connection (Region, ConnectedRegions)
closing_rectangle1 (ConnectedRegions, RegionClosing, 10, 50)
opening_rectangle1 (RegionClosing, RegionOpening, 4, 120)
connection (RegionOpening, ConnectedRegions1)
select_shape (ConnectedRegions1, SelectedRegions, ['area', 'height'], 'and', [1000, 180], [2800, 290])
count_obj (SelectedRegions, Number)
if (Number = 2)
    union1 (SelectedRegions, RegionUnion)
    smallest_rectangle1 (RegionUnion, Row1, Column1, Row2, Column2)
    gen_rectangle1 (Rectangle1, Row1, Column1, Row2, Column2)
    w := Column2 - Column1
    h := Row2 - Row1
    area_center(Rectangle1, Area5, Row5, Column5)
    set_color(WinHandle, 'blue')
    disp_region(Rectangle1, WinHandle)
endif

Delik çapı,perçin eni-boyu,merkezlerinin satır-sütun değerleri kullanılarak mesafeler bulunuyor. OK-NOK durumlarını gösteren örnek program görüntüleri :

Sağlam Yaprak Seçimi (Kameralı Yaprak Kontrolü)

Yaprakların sağlam ya da hatalı olup olmadığının ayıklanmasında istenenler

  • Yırtıklık kontrolü
  • Delik kontrolü
  • Kırıklık Kontrolü
  • Yabancı maddelerin ayrıştırılması
  • Renk kontrolü

gibi kontrollerdir.

bu kontrollerin gerçekleştirilmesinde, her birinde farklı yaklaşım söz konusu olabilir.  İyi bir görüntü işleme algoritması ile bu kontroller yapılabilir. Kullandığımız yöntemlerden biri, yaprağın sol tarafı ile sağ tarafı arasındaki simetrinin aranmasıydı.

Yaprağın sol ve sağ tarafının bulunması :

Basit Yöntem

  1. Yaprak seçilir (thresholding)
  2. Dönme açısı belirlenir (orientation_region)
  3. yatayla sıfır derece yapacak şekilde döndürülür (rotate_image)
  4. En küçük dörtgenle sınırlandırılır (smallest_rectangle1)
  5. Dörtgen yatay olarak tam ortadan ikiye bölünür.

Elde edilen 2 region dan, üstte olan yaprağın sol kısmı, allta olan sağ kısmını verir.

Bu yöntemin dezavantajı, yaprağın sol ve sağ tarafı tam simetrik değilse (genelde de olmaz) tam ortadan bölünmüş dörtgen, yaprağı tam ortadan ikiye bölmüş olmaz.

Gelişmiş Yöntem :

  1. Yaprak Seçilir (thresholding)
  2. skeleton komutu ile yaprağın ortadan geçen çizgisi yakalanır
  3. junctions_skeleton komutu ile yaprağın başlangıç ve bitiş noktasının koordinatları çıkartılır
  4. gen_region_points komutu ile, skeleton da çıkan noktaların üst tarafı yaprağın sol tarafını, alt tarafı ise sağ tarafını verecek şekilde 2 region elde edilir.

Sonuçta, burada işi yapan asıl fonksiyon skeleton dur. skeleton fonksiyonunun yaprak resmine uyarlanmış hali, neredeyse yaprağın ortasından geçen damar ile aynı yolu izlemektedir.

Projenin tamamında, kameralı yaprak ayrıştırması (kameralı yaprak kontrolü) ile hızlı bir şekilde yaprakların sağlam olup olmadığı algılanabilmektedir.