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 :

Fabric/Leather Mesh and Pattern Identification Application for Car Seats

Automotive companies today offer users a wider range of choices. Specially with “Build your own car” option, user can change almost every detail in his/her car. Despite the this great convenience for customers, it brings lots of difficulties for manufacturers. In “Just In Time” production model, manufacturer must produce each model with “correct” details for “correct” user. This means, manufacturer must check every part in production line just after part is assembled.

BMW's build your own car site for US

We installed our HALCON based “Fabric Mesh and Pattern Identification Vision System” for one of the leading company of the world’s automotive supplier industry. The Company produces car seats, cockpits, internal door panels, sound systems, front- and back-end bumpers and exhaust systems. Our system is checking car seat’s size, model, fabric/leather color, pattern, texture and mesh and detecting original artikel number. If detected artikel number is different than the expected number, system is stopping production line and raising an alert signal/message.

Fabric patterns and colors has lots of variationVision system must distinguish more than hundreds of fabrics/leathers with lots of color and pattern combination. Furthermore, new models (fabrics/leathers/colors/patterns…) must be teach to the system easily. Sometimes patterns can be very close to each other so finding differences isn’t so easy even checking by eye. At first, we used HALCON 10 and Fast Fourier Transforms to detect textures. The algorithms run fine but the problem was in teaching methodology. Sometimes we have to write “special” codes for “special” products. But for end user (operator) we have to find easier way to define new models.

Some fabric patterns to distinguishFor our 2. version, we turned our matching algorithms (usually FFT and RFT) to HALCON 11’s sample based matching technology. By this newly technology not only we reduced our thousands of lines of codes to tens (!!!) but also teaching new models became very easily for end user.

HDevelop code redesigned by Yaqi Zeng (MVTec support team) is look like below.

dev_update_off ( )
dev_close_window ( )
list_image_files ('.', 'default', [], ImageFiles)
read_image (Image, ImageFiles[0])
dev_open_window_fit_image (Image, 0, 0, -1, -1, WindowHandle)
set_display_font (3600, 16, 'mono', 'true', 'false')
dev_set_draw ('margin')
dev_set_line_width (3)
dev_set_color ('yellow')
*
* I. Creation of identifier
create_sample_identifier ('add_texture_info', 'true', SampleIdentifier)
* II. Adding Information for preparation
for Index := 0 to |ImageFiles|-1 by 1
    read_image (Image, ImageFiles[Index])
    tuple_split (ImageFiles[Index], '/', Substrings)
    tuple_split (Substrings[|Substrings|-1], '.', Substrings1)
    FileName := Substrings1[0]
    dev_display (Image)
    disp_message(WindowHandle, 'Image ' + FileName + ' added for preparation of training', 'image', 12, 12, 'blue', 'true')
    add_sample_identifier_preparation_data (Image, SampleIdentifier, Index, [], [], ObjectSampleIdx)
    set_sample_identifier_object_info (SampleIdentifier, Index, 'preparation_object_name', FileName)
    disp_continue_message (WindowHandle, 'black', 'true')
    stop ()
endfor
*
* III. Preparation and training
*      use the preparation data to train the identifier
dev_clear_window ()
disp_message (WindowHandle, ['Prepare and train the sample identifier','(this might take some seconds)'], 'window', 12, 12, 'black', 'true')
prepare_sample_identifier (SampleIdentifier, 'true', [], [])
train_sample_identifier (SampleIdentifier, [], [])
disp_continue_message (WindowHandle, 'black', 'true')
stop ()
*
* IV. Applying
*     on randomly selected run-time image
RandomIndices := sort_index(rand(|ImageFiles|))
for Index := 0 to |ImageFiles|-1 by 1
    IndexR := RandomIndices[Index]
    read_image (Image, ImageFiles[IndexR])
    dev_display (Image)
    apply_sample_identifier (Image, SampleIdentifier, 1, 0, [], [], ObjectIdx, Rating)
    get_sample_identifier_object_info (SampleIdentifier, ObjectIdx, 'training_object_name', ResultObjectName)
    disp_message(WindowHandle, 'Identified as: '+ ResultObjectName, 'window',12, 12, 'green', 'true')
    stop()
endfor
*
* V. Clean-up
clear_sample_identifier (SampleIdentifier)

Source code and related images can be download by clicking this link.

Kale Oto Radyatör’de Yırtık, Patlak, Kesik vb. Kontrolleri

Kale Oto Radyatör’ün Gebze Çayırova’daki fabrikasındaki sistemimizi devreye aldık. Radyatörler kalıptan çıktıktan sonra parçada yırtık ve patlak benzeri durumlar kontrol ediliyor.

Radyatör üzerinde kontrol edilen nokta olan kenar kısmında, küçük büyük yırtıklar oluşabiliyor.

Genelde yukarıdaki gibi büyük patlaklar oluşuyor ancak sistemin çok küçükleri bile yakalayabilmesi açısından ancak elimizle hatalı parça oluşturabildik ve bunu da sistemin kontrolünden geçirdik. Aşağıdaki resimde görüldüğü gibi yazılımımız bunu da doğru bir şekilde hatalı parça olarak gördü. Buradaki patlak 1-1,5 mm civarındadır ve bu da müşterimizin istediği limitlerin çok altındadır.

E-Kart’da Kart Üzerinde Barkod ve Pin-Puk Numaralarının Kontrolü

Banka kartları, Gsm kartları vb. çeşitli kartların üretimini yapan Eczacıbaşı E-Kart Elektronik Kart Sistemleri A.Ş. firmasındaki projemizi devreye aldık. Kart üzerinde yapılması istenen kontroller:

  • Barkod’ların okunması
  • Barkod’ların sıralı şekilde devam etmesi kontrolü
  • Pin ve Puk numaralarının yazdığı alanın kapalı olması kontrolü.

Kart, kamera önüne geldiğinde kontrollere başlanır ve herhangi bir kontrol hatalı ise makine durdurulur. OK durumunda üretim devam eder.

Barkod Kontrolü:
Kart üzerinde barkodun yeri kullanıcı tarafından önceden girilmiştir. Kontrol esnasında barkod okunur ve hafızaya alınır. Bir sonraki kart geldiğinde okunan yeni barkodun numarası hafızadaki numara ile kontrol edilerek sırasının doğruluğu tespit edilir.

Kullanıcı Artan yada Azalan şekilde sırayı belirtebilir, barkodun Tipini seçebilir ve barkodda bulunan Son-Ek’in varlığını belirtebilir. Aynı şekilde 2. barkod kontrolü de eklenebilir.

 
Pin-Puk Numaralarının Kontrolü (scratch-off kontrolü):
Pin ve Puk numalarının üzeri scratch ile düzgün şekilde kapatılması gerekiyor. Scratch’in altından numaranın gözükmesi, kenarlarında yada ortasında oluşan bir bozulma istenmemektedir.

Aşağıda bazı hatalı durumları görmektesiniz.

Mavis WIN Otomasyon Fuarı Faz-II de

Mavis, Win Otomasyon Fuarı, Faz-II organizasyonunda, her zamanki yeri olan 2. Salon C-220 Standında katıldı. Geçen senelerde olduğu gibi, bu sene de oldukça ilgi gören standımızda, müşterilerimizi, potansiyel müşterilerimizi, öğrencileri, akademisyenleri memnuniyetle ağırladık, bilgilendirmeye çalıştık.

 

Standımızda, Yapay Görme Kiti üzerinde görüntü işleme teknikleri, sabit bir bilgisayarda Mavis Görüntü İşleme Uygulamaları ve sürekli yürür haldeki bir konveyör üzerinden 3 kamera ile görüntü alan bir uygulamada da

  • OCR (Optik Karakter Tanıma)
  • Eşleştirme (Matching)
  • Konumlandırma, pozisyon bulma
  • Hatalı Parça Ayıklama

gibi örnekleri sunduk. Ziyaretçilerimizin kendi el yazısıyla girdikleri rakamları OCR eden etkileşimli uygulama ilgi çekti.

El yazısıyla yazılmış metnin okunması

Mavis, Fuar etkinlikleri kapsamında sunduğu 2 ayrı seminer ile katma değer yaratmaya çalışmıştır. Dr. Müjdat Arabacıoğlu tarafından sunulan Endüstriyel Görüntü İşleme Uygulamalarından Örnekler ve Mustafa Sarı tarafından sunulan, “HALCON kullanrak C# ile Görüntü İşleme Uygulaması Geliştirmeye Giriş” sunumları ilgi ile karşılandı.

 

Mavis olarak, tüm ilgililere görüntü işleme – yapay görme konusunda maddi beklenti olmaksızın verdiğimiz desteklere devam edeceğiz. Bunun yanısıra, kurumsal müşterilerimize profesyonel HALCON Eğitimi sunmaya da devam etmekteyiz.

Fuarda, aramıza yeni katılan Aydoğan ve Mehmet arkadaşlarımız ilk fuar tecrübelerini yaşadılar. Müşteriler ve ziyaretçilerden gelen istekler ve sorular sıklıkla Aydoğan ve Mehmet tarafından karşılandı.

Fuarda Mavis olarak yeni başlattığımız Java tabanlı Süreç Yönetimi Yazılımı konusunda çalışmaları da tamamlama fırsatımız oldu.

 

Java dünyasında çözümleriyle yer etmiş olan, ülkemiz önde gelen yazılımevlerinden Vardar Yazılım tarafından geliştirilmiş İş Akış Uygulaması olan ActivWorks ile Mavis VYP entegre edildi. Bu entegrasyon sayesinde, kameralı kalite kontrol süreci, kurumsal iş akış prosesine otomatikman dahil edilmiş oluyor.

(ActivWorks ve Mavis VYP ile entegre edilmiş hali ActivMachineVision hakkında daha fazla bilgi ileride verilecektir.)

Bu sene, daha önceki yıllara göre daha yoğun bir katılım ve ilginin olduğunu gözlemlediğimiz Win Otomasyon fuarında, var olan ürünlerimizi tanıttık ve iyi iş diyalogları geliştirdik. Yerli ve yabancı iş ortaklıkları edindik ve yeni sene için daha yoğun bir çalışma temposuna girdik diyebiliriz.

En Çok Ziyaret Edilen Yapay Görme Sitesi : MAVIS

Web sitemizin mavis.com.tr olarak yayına başlamasının 6. yılı, BLOG yayınlarına başlamamızın ise 2. yılını geçtiğimiz bu günlerde, Mavis olarak web sitesi istatistiklerini sizlerle paylaşmak istedik.

2007 – 2011 yılları arasında Mavis Web Sitesinin aldığı yıllık Hit değerleri grafiğine göre, Mavis Web sitesi her geçen yıl büyük bir artış göstermektedir.

 

 

 

 

 

 

 

 

 

 

 

2012 yılı için; ortalama olarak yıllık

  • 750.000 Hit
  • 120.000 Sayfa
  • 60.000 Ziyaretçi
  • 25.000 Tekil ziyaretçi

Beklenmektedir.

Mavis web sitesinin, bu kadar çok ziyaret edilme sebepleri arasında;

  • Açıklık politikamız gereği, hemen her bilgiyi paylaşmaya olan hevesimiz ve yatkınlığımız
  • Mail veya web ile gelen her isteği / yardım desteği başvurusunu, cevaplama konusundaki hassasiyetimiz
  • Meraklı / araştırmacı / öğrenci vb. hedef kitle için Türkçe kaynak olabilme istekliliği
  • Sektörel olarak en çok projeyi gerçekleştirmiş / kurmuş firma olmamız

gibi nedenler sayılabilir.

Yakında, yeni görünüm ve daha detaylı paylaşımlarla zenginleştirmeyi düşündüğümüz web sitemizde, daha bol vakit geçirmeniz dileğiyle…

Mustafa SARI

Görüntü İşlemeye Giriş Semineri

31 Mart 2012 Cuma günü, WIN Otomasyon Fuarında, HALCON kullanarak C# ile görüntü işleme uygulaması oluşturma eğitimi verilecektir.

Eğitim Başlıkları

  • HALCON hakkında kısa bilgi
  • HALCON ile alan ve pozisyon bulan örnek uygulama
  • HALCON uygulamasının C# a aktarılması
  • C# ile çalışan uygulama (exe) üretmek
  • Çevre ile haberleşme (PLC haberleşmesi, Input/Output işlemleri)

 

Silindirik İç yüzeyde Çapak, Kof, Çizik Tespiti

Mercedes ve Chrysler için yan sanayi üretimi yapan Mita Kalıp‘ta, silindirik iç yüzey barındıran parçaların, kamera ile çizik, kof, çapak ve fatura varlık kontrolleri yapan sistemi devreye aldık. Otomasyon sistemi Prestij Endüstri tarafından yapılan test ve montaj masasında, parça montajı, kameralı kontroller ve basınçlı hava ile mikron boyutunda hassas ölçüm  yapılmaktadır.

Kontrol edilecek olan parça, yukarıdaki gibidir. Prestij Otomasyon montaj masasında, parça monte edilerek kameranın altına getirilir. Özel bir açıyla yerleştirilmiş ayna sistemi, silindirik iç yüzeyin tam merkezine getirilir. Konik yüzeye sahip olan ayna, silindirik görüntüyü küresel geometriye çevirir. (Aynadan yansıyan görüntülerin kameradaki görünümü aşağıdaki gibidir)

Yukarıdaki şekilde, hatalı ve sağlam parça görünümleri verilmiştir. Bu görüntülerde Çapak, Kof, Çizik gibi hataları ayırmak için yapılacak görüntü işleme yazılımında, ilk iş, dairesel formda olan görüntüyü, düzlemsel forma dönüştürmektir. Dairesel formda olan görüntü ile çalışmak ta mümkün olmakla birlikte, yapılan testler, düzlemsel geometride çok daha sağlıklı sonuçlar alındığını göstermiştir.

 

Yukarıdaki resimde, orijinal resim ve polar transform edilmiş hali görülmektedir. bu görüntüden de kolayca anlaşılabileceği gibi, Polar olarak transform edilmiş hali, çok daha kolay işlenebilir ve çok daha kesin sonuçlar üretir.

Projenin HALCON kodu ve kullanılan gerçek kamera görüntüleri (resimler) ilgililere mail ile ulaştırılabilir. (info@mavis.com.tr)

Tüm proje hakkında bilgi almak için, Mavis’e (www.mavis.com.tr) veya Prestij Endüstri’den Hakan Bey’e ulaşabilirsiniz.

 

//–>

ECOM Mühendislik ile Sızdırmazlık ve Rakor Kontrolü

Seri Teknik Firmasında, ECOM Mühendislik ile birlikte Sızdırmazlık ve Rakor Test Sistemi Devreye Alındı.

Daha önce tek tek elle yapılan ya da örnekleme ile belirli

ürünlerin ölçülmesi ile yapılan kontroller, artık kameralı kontrol ile yapılabilir hale geldi.

ECOM Mühendislik tarafından yapılan makina, vibrasyon ile rakorları belirli bir kanala alıp, sıralanmış şekilde kameranın önünden tek tek yürütmekte, bu esnada kamera üstten ve yandan rakora bakarak fotoğrafını çekmekte ve gerekli kontrolleri yapmaktadır.

Rakorlarda yapılan kontroller;

  • Eş merkezlilik kontrolü
  • dış çap kontrolü
  • iç Çap kontrolü
  • boyut kontrolü
  • Boy kontrlü (yüksekliği)
  • vida yolu kontrolü
  • vida dişi kalite kontrolü
  • rakor ayağı kontrolü
  • rakor çeşidi ayırt etme
  • ayak yüksekliği
  • alın yüksekliği
  • vida adımı adedi
  • diş açılıp açılmadığı kontrolü

gibi kontrollerdir.

 

Kontrolden geçen ürünler, yine bant şeklindeki konveyörde, kendi rayında yürütülerek, basınçlı hava kontrol ünitesine gönderilir. Eğer ürün hatalı ise, üflenerek hatalı ürün kabına atılır.

Hava basıncı kontrol edilmek suretiyle, her bir rakor için, hava sızdırmazlığı testi yapılır. Rakor da çatlak, kesiklik ya da sızıntı var ise, yine hatalı ürün kabına atılır. Hem kamera, hem basınç testinden geçmiş olan rakorlar, sağlam ürün olarak paketlenmeye hazır halde istiflenir.

 

ECOM Mühendislik ve Mavis olarak geliştirilen, bağımsız olarak çalışabilen bu makine, Seri teknik tarafından üretilen tüm rakorlar farklı boyutlarda bile olsa test edilebilecek şekilde tasarlanmıştır. Test hızı ortalama olarak 1.2 sn / ürün dür. (Her 1.2 sn de 1 ürün kontrol edilmektedir) Bu hız daha da artırılabilir olmakla birlikte, sistemin mekanik parçalarının olmasından (vibrasyon, konveyörde yürütme vb.) dolayı optimal olarak bu rakamda sabit tutulmuştur.

Jant Tanıma Sistemi

Boyahaneden çıkan jantların, yüzey şekillerine bakılarak tanınması ve ilgili konveyörlere yönlendirilmesi projesini, ülkemizdeki pazar lideri CMS de devreye aldık.

 

Kameranın tam altına gelen jant, sensör yardımıyla algılanır ve konveyör durdurulur. Bu esnada aydınlatma olarak kullanılan power ledler jantın yüzeyini aydınlatır. Fotoğraf çekilir ve çekilen fotoğraf üzerinde “matching” eşleştirme algoritması çalıştırılır.

“Matching” işlemi :

İlk önce jantın konturları (contour) çıkartılır. Konturların düzgün olarak çıkartılabilmesi çok önemlidir. Bunun için konveyör zemini ışığı yansıtmayacak siyah malzeme seçilmiştir. Kırmızı ışık, jantın içe doğru girintilerinde köşe çizgisi oluşturmayacak şekilde kontrast oluşturmalı,  yüzeyi düzgün aydınlatmalı ve tüm yüzeyde homojen olmalıdır. (Beyaz ışık ta kullanılabilir. Jantın yüzeyinin metalik beyaz olması beyaz ışığın patlamasına neden olabilir. Daha soft ve homojen bir beyaz ışık için elektronik balast kullanılmış fluoresan aydınlatma seçilebilir)

Son olarak yapılması gereken, HALCON matching komutları ile çıkartılan konturların daha önceden kaydedilmiş konturlar içinden hangisine en çok benzediğini bulmaktır. (İlgilenenler projede kullanılmış çalışan HALCON kodları için bizimle iletişime geçebilirler – info@mavis.com.tr)

Not : Gerçeklenen projede jantların göbek yüksekliğinin ölçülmesi (yüzeyi tamamen aynı fakat iç göbek yükseklikleri farklı ürünlerin ayırt edilmesi), yüzey yine tamamen aynı bijon delikleri farklı yerlerde olan ürünlerin aynı ürün olarak seçilebilmesi vb. zorluklar vardır. Üretim hızı 5-6 sn. de 1 ürün olacak şekildedir. Toplamda bir kaç yüz civarında ürün tanıtılacaktır. Yeni ürün tanıtma ve öğretme ekranı (kelimenin gerçekten de tam anlamıyla) tek tuşla yapılmaktadır. Tüm işlem sonunda belirlenen jant numarası PLC hattına (konveyöre), mürekkep püskürtmeli kod yazma makinasına (yazıcı) ve veritabanına gönderilmektedir.

Sistem bir merkezi ve ona bağlı 6 bilgisayardan oluşmaktadır. Toplam 7 bilgisayar kendi içinde bir network oluşturmuş ve soket haberleşmesi (Socket) yapmaktadırlar. na bilgisayardaki ekran görüntülerine örnekler :