Mustafa Sarı

Mustafa Sarı hakkında

(Samsun, 26.03.1973, ,İTÜ, Elektronik ve Haberleşme Mühendisliği, Yazılım)

Motoman Robot Haberleşme Arabirimi

Motoman robotları ile yaptığımız kameralı görsel kalite kontrol, besleme, yerleştirme, hata bulma, ayıklama gibi projelerimizde, kamera/PC ile robot arasında tüm bilgi alışverişini sağlayan “Haberleşme Arabirimi” yazılımımız hazırlandı.

Programın amacı, Motoman robot ile kamera/pc arasında Ethernet ya da seri port üzerinden iletişim kurup, tüm robot kontrol ve kumanda işlevlerini yerine getirebilmektir. Klasikleşmiş sistemlerde robot ile PC/Kamera arası alışveriş, Dijital input output modülleri ya da ModBus/ProfiBus gibi bus sistemleri ile yapılmaktadır.

Mavis tarafından geliştirilen bu yazılım ile, tüm haberleşme Fast Ethernet / Gigabit ethernet protokolü üzerinden yapılmaktadır. (Halihazırda seri port ta desteklenmektedir)

Bu haberleşme protokolüne göre, sadece pozisyon veya elektriksel bilgi (Başarılı / Hatalı) bilgisi değil, tüm robot komutları kullanılabilmektedir.

Haberleşme programının kullandığı komut listesinden örnekler

  • RALARM (Robotun hata alarm kodunu okur)
  • RPOSJ (Robotun anlık pozisyon bilgisini joint koordinat eksen sistemine göre okur)
  • RPOSC (Pozisyon bilgisini belirtilen eksen sistemine göre okur)
  • RSTATS (Durum bilgisini alır – mod, operasyon, alarm durumu, servonun durumu vb..)
  • RJSEQ (halihazırdaki job adı, satır numarası ve adım numarasını alır)
  • RJDIR (Tüm job ların listesini alır)
  • RUFRAME (Belirtilen koordinat sistemini alır)
  • SAVEV (Değişken -variable- datasını okur)
  • HOLD (Hold ON / OFF işlemini yapar)
  • RESET (manipülatörün alarm durumunu resetler)
  • CANCEL (oluşan hatayı iptal eder)
  • MODE (Teach Mode, Play Mode seçimini yapar)
  • CYCLE (Cyle seçimini yapar – Step, 1 cyle, auto)
  • SVON (Servo motor güç durumunu ON yapar)
  • MDSP (Programlama aygıtının ekranında mesaj gösterir)
  • START (Bir job başlatır)
  • LOADV (Bilgisayardan aldığı değeri değişken/variable içine koyar)

Benzer şekilde, 100 den fazla komut, tam olarak desteklenmiştir. Özetle, Motoman robot ile Mavis kameralı kontrol uygulamaları %100 aynı dili konuşarak ve sürekli on-line olarak çalışmaktadırlar.

Programı tedarik etmek için, bizimle iletişime geçebilirsiniz.

Not : Motoman robotları Türkiye distribütörü Teknodrom firmasıdır. Mavis, Teknodrom firmasının yapay görme çözüm ortağıdır. Teknodrom, Motoman robotlar hakkında haberleşme sistemleri, ve uygulamalar hakkında her türlü teknik, teorik ve pratik bilgiye sahiptir. Motoman robotlar hakkında bilgi ve çözüm ihtiyacınız için Teknodrom firması ile iletişime geçebilirsiniz. Mavis ve Teknodrom olarak, Motoman robotlar ile çok sayıda yapay görme (kameralı kontrol) uygulaması gerçekleştirilmiştir. Bunla ana başlıklar altına

  • Robotlu Besleme
  • Parça Bulma
  • Yerleştirme
  • 2D şekil tanıma bulma pozisyonlama
  • 3D şekil tanıma bulma pozisyonlama
  • Makina besleme
  • Çapak bulma ayıklama
  • Robotlu Ölçüm ve kalite kontrol

gibi konulardır.

Bu konulardaki çalışan uygulamalar hakkında bilgi almak için

http://www.mavis.com.tr/blog/?p=684

http://www.mavis.com.tr/blog/?p=525

http://www.mavis.com.tr/blog/?p=422

http://www.mavis.com.tr/blog/?p=352

http://www.mavis.com.tr/blog/?p=1

linklerine tıklayabilirsiniz.

Ford’da 2 yeni Proje

Ford, Gölcükteki üretim tesislerinde 2 yeni kameralı kontrol projesi için Mavis ile çalışmaya karar verdi.

Gölcükte üretilen Ford Transit ve Connect tüm modelleri için kullanılacak olan 2 farklı kameralı kontrol projesi için ihale açan Ford, ihale sonucu firmamız ile çalışmaya karar verdi. Ford mühendisleri ile yapılan ilk analiz ve çalışma sonucu proje ayrıntıları çıkartıldı. Buna göre;

  • Ford merkezi PVS sisteminden gelen bilgiler okunacak ve bu bilgilere göre kontroller yapılacak
  • Barkod okuyucu aracın üzerindeki barkod bilgisi ile PVS sisteminden gelen bilgiyi karşılaştıracak
  • PVS sisteminden aracın özellikleri hakkında diğer bilgiler de alınacak (combi, uzun, yüksek vs.)
  • Aracın içindeki koruyucu soket başlıklarının varlık kontrolü yapılacak
  • Aracın arkasında yer alabilecek tüm logo ve yazıların (Tourneo, Transit, 110 T220, Limited vb.) yerleri, pozisyonları ve doğru modele doğru yazı takılıp takılmadığı kontrol edilecek
  • Tüm kontroller araç hat üzerinde hareket halindeyken yapılacak

Araçların farklı alt modeller için çok farklı dinamiklere sahip olabilmesi, sistemin hareketli olarak çalışacak olması, kullanıcının yeni yazı / logo tanıtabilmesi gibi özellikler projede gerçekleştirilecek olan çözümler olacaktır.

HALCON 10 Resmi Olarak Yayımlandı

Mavis olarak distribütörü ve yetkili eğitim merkezi olduğumuz, HALCON görüntü işleme (image processing) kütüphanesinin 10. versiyonu yayında.

HALCON 10 yeni özellikleri hakkında kısa bilgi almak için, http://www.mavis.com.tr/v2/documents/halcon10-new-features.pdf adresindeki PDF dosyayı gözden geçirebilirsiniz.

HALCON 10 ücretsiz ürün DVD si, lisans anahtarı, kurulum ve kullanım hakkında bilgi almak için bizimle iletişime geçebilirsiniz.


USB Modül Kurulum ve Kullanımı

%100 Açık kaynak kodlu, Mavis USB I/O sınıfının kullanımı:

VS içinden projenizi açıp, Mavis tarafından tedarik edeceğiniz USB_DIO ve DioModule sınıfını projenize eklendiğinizde Solution Explorer içinde soldakine benzer bir görüntü olması lazım.

USB_DIO, HID USB fonksiyonlarının olduğu bir kütüphanedir. Genel USB giriş çıkış fonksiyonlarının tamamını destekler.

DIOModule ise, genel USB fonksiyon setinin Mavis tarafından geliştirilmiş giriş çıkış modülüne uyarlanmış halidir. Byte se Bit seviyesinde okuma yazma yapabilen ve modülün giriş çıkış işlemlerine olanak sağlayan yapıları içerir.

Bu aşamadan sonra, normal C# sınıf kullanımı gibi DIOModule kullanımı yapılabilir.

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Windows.Forms;
using System.IO;

namespace VYP
{    

    public partial class frmMain : Form
    {

		public DIOModule dioModule = new DIOModule();

bu tanımlama ile dioModule isminde global bir değişkenimiz oldu.

Bir trigger yardımıyla sürekli okuma

		private void tmrDIO_Tick(object sender, EventArgs e)
		{
			if ((dioModule.connected) && (dioModule.Active))
			{
				byte inputDIO;
				dioModule.ReadDio(out inputDIO, false);
                if (dioModule.DIChanged())
                {
					if (inputDIO == dioModule.triggerSignal)
					{
						//RunAll();
						// Put Here your trigger code...
					}
                }
			}
		}

DIOModule kullanarak belirli bir çıkış değerini set etme

if ((dioModule.Active) && (dioModule.connected))
{
dioModule.WriteDio(1, false); // Led leri yakıyoruz...
}

DIOModule kullanarak girişteki değeri okuma

if ((dioModule.Active) && (dioModule.connected))
{
byte inputDIO;
dioModule.ReadDio(out inputDIO, false);
// okunan değer inputDIO değişkenine alındı
}

dioModule Pin bazında erişim imkanı da sunmaktadır. Indexer yapısıyla desteklenmiş bu kullanım moduna göre

dioModule.SetPin(2);

dioModule.SetPin(4);

gibi yapı kullanılabilir. Bunun yerine daha gelişmiş olan;

dioModule.Pins[2] = 1;

dioModule.Pins[4] = 0;

gibi, indexer yapısı da tercih edilebilir.

Belirli bir pin değerini okumak için;

dioModule.GetPin(2);

yapısı

veya

byte b = dioModule.Pins[2]; indexer yapısı tercih edilebilir.

Belirli bir pin değerini sıfırlamak için

dioModule.ClearPin(2);

yapısı kullanılabilir. Bu yapıya göre, diğer çıkış değerlerinin ne olduğuna bakılmaksızın 2 nolu pin sıfıra çekilecektir.

Mavis, dioModule için gelişmiş fonksiyon setine sahiptir. Daha fazla bilgi için bizimle irtibata geçiniz…

Mavis MVTec Distribütör / Eğitim Günlerinde

Mavis, “HALCON 10 Distributor Training” etkinliğine katıldı. Etkinlik boyunca HALCON 10 ve yeni özellikleri üzerine derinlemesine eğitim sınıfları oluşturuldu ve yeni teknolojiler tanıtıldı.

HALCON Türkiye distribütörü olan Mavis, HALCON için aşağıdaki hizmetleri sunmaktadır.

  • Ürünün Yerelleştirilmesi (Ürünün Türkçeye tercümesi, Türkçe arayüzlerin hazırlanması, Türkçe bilim diline uygun terminolojinin kullanılması)
  • Ürünün Test Edilmesi (Mavis, HALCON yeni versiyonu çıkmadan daha beta aşamasında test sürecine dahil olur, ürün çıktıktan sonra da iyileştirme katkılarında bulunur)
  • Ürünü kullanarak uygulama geliştirme (Mavis sayısız HALCON kullanan uygulamaya sahiptir. )
  • Farklı platform ve dillerde destek (Visual Studio, Delphi, Linux gibi ortamlarda HALCON kullanan çözümler geliştirilmekte ve destek verilmektedir)
  • Eğitim (Mavis yetkili HALCON eğitim noktasıdır)

En gelişmiş görüntü işleme kütüphanesi olan HALCON ücretsiz DVD si ve lisans dosyası almak için, Mavis ile irtibata geçebilirsiniz.

Kameralı Çoklu Karekod Okumada Geliştirilmiş Filtreleme

Mavis, Kameralı çoklu karekod okuma programını daha da geliştirerek, çok zor yüzeylerden (metal, shrink, bandajlı paketler vb.) dahi yüksek kalitede karekod okuyabilecek hale getirdi.

Mevcut versiyonu ile çoklu karekod okumada hızı ve başarı oranı ile rakipsiz olan sistem, yeni görüntü işleme özellikleri ile desteklenerek daha akıllı hale getirildi.

Mavis VYP, kameralı çoklu karekod okuma programı, özellikle ilaç paketleri gibi, üzerinde çok sayıda karekod (datamatrix) içeren paketlerde, tek seferde tüm karekodları okumaya yarayan gelişmiş bir çözüm sunmaktaydı. Geçen süre içinde çeşitli ilaç firmaları ve ecza depolarına yapılan demolar, alınan numuneler ve üretim hattında çalışan uygulamalarda genel beklenti,  shrink yada bandaj olarak ifade edilen, paketlerin üzerinde naylon olmasının getirdiği bazı güçlüklere rağmen güvenilir ve hızlı bir okuma kalitesinin yakalanması idi.

Mavis; çok farklı sektörlerdeki görüntü işleme bilgi birikimini ve optik bilgisini birleştirerek ortaya kalıcı ve %100 tutarlı bir çözüm sunmaktadır. Bu çözümün anahtar bileşenleri Mavis tarafından geliştirilen özel soft aydınlatma ve Mavis tarafından kullanılan görüntü işleme kütüphanesi (HALCON) nin avantajlarıdır.

Çoğu kez, naylon ambalaj altından okuma yapmak güçlükler içermektedir. Naylon ambalajın kat yerleri, yansıma yaparak altta kalan karekodu kapatabilir, okunmasını engelleyebilir.

Mavis, geliştirdiği özel teknikler ile bu sorunu çözmüştür.

Geliştirilmiş Görüntü İşleme Tekniklerinin Karekodlara Uygulanması

Geliştirilmiş filtreleme kullanmadan, çoklu karekod okuma yapıldığında, karekodlar net olmadığı için %100 başarı sağlanamamaktadır. Gerek shrink (naylon) ambalajın ışığı yansıtması, gerek kamera focus mesafesinin net olmaması, gerek ürünün hareketli olması gibi sebepler, görüntü kalitesini azaltmaktadır. Mavis, tüm bu etkenlere rağmen %100 okuma başarısı yakalayacak çözüm geliştirmiştir.

Sistemin başarısının özünde, gelişmiş görüntü işleme (yapay görme) tekniklerinin kullanılması yatmaktadır.

Sistem ilk olarak görüntüde kaç aday karekod olduğuna karar verir. Aday karekod sayısını belirledikten sonra, akıllı bir algoritma görüntüyü iyileştirecek filtreleri ardışıl olarak uygular ve her bir uygulamadan sonra aday karekodların tamamının okunup okunmadığını test eder. Akılı algoritma 7 farklı filtreleme ile çalışır. Her defasında görüntüyü daha da iyileştirecek parametreleri kendisi dinamik olarak seçer.

Bunu nasıl yapar?

Soldaki büyütülmüş orijinal karekod görüntüsünde, görüntünün bulanık olduğu görülmektedir. Görüntüyü netleştirmek ve siyah-beyaz ayrımını keskinleştirmek için 7 filtre ardışıl olarak uygulanır.

1. Histogram da yığılma varsa, yığılma kaldırılacak şekilde filtrasyon uygulanır. Bu filtreler : median_image, mean_image, gray_openingshape, gray_closing_rectangle, emphasize, illumination ve gen_contour_nurbs_xld fonksiyonlarıdır.

Program bu fonksiyonları, sırasıyla dener ve her denemeden sonra yeni histogram dağılımına bakar. Elde edilen yeni histogramın daha iyi olduğuna karar verirse, uygulamış olduğu son filtrasyon değerine göre yeniden karekod okumaya çalışır ve orijinal resme göre başarı oranına bakar. Eğer başarım yüzdesi artım yönündeyse, artık bu işlenmiş ve filtrelenmiş fotoğrafı baz alır ve buna göre karekodları ayırıştırır.

Histogram dağılımı iyileştirilmiş (artık gözle bile daha net bir fotoğraf elde edildiği görülmektedir) Bu yeni fotoğraf üzerinden karekod okumak artık çok daha kolay olacaktır. İşin en güzel yanı, tüm bu 7 filtreyi ardışıl olarak uygulamak, ortalama işlem gücüne sahip bir PC de bile, 500 ms. nin altında sürmektedir.

Mavis, konveyör üzerinde hareketli karekodları da okuyabilmektdir. Geliştirilen ürün, hemen her yere uyarlanabilir şekilde ve portatiftir. Daha fazla bilgi için, bizimle iletişime geçildiğinde, hazır çoklu karekodlar (ilaç kutuları) ile demo yapabiliriz.

Baykon Tartı ile Kameralı Palet Ölçüm ve Kayıt Sistemi

Endüstriyel tartım sektöründe profesyonel çözümler sunan Baykon Endüstriyel Tartım Firması, kameralı kontrol projelerinde teknoloji partneri olarak Mavis ile çalışmaya karar verdi. Yapılan çalışmada, Mavis VYP programı Baykon’a kuruldu ve program kullanımı hakkında bilgi verildi.

Baykon, kendi ürettiği konveyörlü tartım sistemlerini, konveyör hareket halindeyken tartım ve ölçüm işlemlerini gerçekleştirecek, aynı zamanda konveyör üzerinde tartımı ve ölçümü yapılan ürünlere ait fotoğraflar kaydedilecek ve gerekli olması durumunda veritabanından sorgulanarak ilgili ürünün tüm fotoğraf ve bilgilerine erişilebilecek şekilde geliştirdi.

Görüntü işleme ve kameralı kontrol kısmı Mavis tarafından yapıldı. Proje, hareketli ve çok hızlı görüntü almak için optimize edildi. Sistemin başarıyla devreye alınması sonucu, farklı özellikte kameralar ile eşzamanlı olarak desteklenecektir.

Endüstriyel Görüntü İşlemede Yol Haritası

Son zamanlarda görüntü işleme (kameralı kontrol / optik kontrol) konusuna ilginin her geçen gün arttığını görmekteyim. Pek çok şirket sadece kendi alanında üretim yapmakla yetinmeyip, Ar-Ge faaliyetleri (ya da kişisel ilgi) kapsamında modern teknolojilere de ilgi duymakta. Pek çok firmada mühendisler kendi yazılımlarını geliştirmekte, kendi çözümlerini sunmakta ve gün geçtikçe daha çok kendi katma değerlerini yaratmaktadırlar. Ziyaret ettiğimiz pek çok firma, en modern teknolojileri içselleştirmesi ve kendi bünyesinde çözümler sunmasıyla (haklı olarak) övünmektedir. Bu kategoriye giren firmalar, hazır bir çözümü satın almak yerine, kendileri uygulamayı tercih etmektedirler. Maliyeti düşürmek, kendi alanlarına %100 uyum sağlayacak bir çözümü geliştirmek, eldeki nitelikli iş gücünü değerlendirmek gibi sebeplerden dolayı firmalar artık kendi teknolojilerini kendileri geliştirmeyi tercih ediyorlar. Firmaları bu yola iten bir diğer önemli sebep ise ülkemizde görüntü işleme / kameralı kontrol teknolojileri sunan firmaların (bir anlamda sektörel rakiplerimizin), doğrudan yabancı bir marka / ürün / yazılım entegre eden firma görünümünde olmaları. Bu distribütör / entegratör görünümündeki firmalar, sahadaki üretim yapan müşterinin gerçek gereksinimlerini algılamaktan uzak kalabiliyorlar. Masa başında çalışan bir çözüm var ellerinde ama bunu örneğin ısıl işlem ile cam üretimi yapan bir firmanın isteklerine uyarlamak kolay olmayabiliyor. Dolayısıyla müşteri tarafında güvensizlik oluşabiliyor ve sonuç olarak müşteri “bu işi sadece biz (kendi imkanlarımızla) yapabiliriz” hissiyatına kapılabiliyor. (Bizim (Mavis) açımızdan yine iyi bir durum bu. Çoğu kez müşteri, bir kaç firma denedikten sonra bu işin hiç yapılamayacağına hükmedip defteri kapatıyor. Bu da en kötü durum!)

Görüntü İşleme temelli teknolojiler de, işte bu başlığa giren en önemli öğelerden biri. Bu makalede kendi bünyesinde bu işi çözmeyi kafasına koymuş bir firma (müşteri diyelim) için bir hızlı başlangıç kılavuzu, Yol Haritası vermek istiyorum. Kendi bünyesinde, kendi imkanları ile görüntü işleme teknolojisine hakim olmak isteyen bir firma için en hızlı ve en profesyonel yöntemi açıklayacağım bir yol haritası.

1.  Yapılmaması Gerekenler : Elimdeki aletler ile ben bu işi yaparım hissi

Teknoloji geliştiren firmalar çoğu kez yazılımdan anlayan kişileri de bünyesinde barındırdığı için olsa gerek, yazılımcı kişi kendi bildiği programlama dili ile (genelde Delphi, Visual Basic, C#) görüntü işleme uygulamasını kendisi yapmaya karar veriyor. Google da bir arama yapıp, genelde bitmap operasyonları ve pixel pixel resmi okuyarak, başlıyor kod yazmaya… (Ya proje batıyor, ya çok uzun sürüyor, ya da yazılımcı arkadaş işten ayrılıyor)

Diğer bir yaklaşım, Matlab, Open CV vb. uygulamalar ile çalışan / çalıştığını iddia eden bir kaç örnek görüyor ve “evet istediğim buna benzer birşey, öyleyse ben de yaparım, ben de bu yolu izleyeyim” diyor.

Her iki yaklaşım da başarılı olamaz. (Tonla sebebi var ama burada detaya girmeyeceğim. Aksini düşünen ya da ispatlamaya çalışan varsa beni de bilgilendirsin bir zahmet.)

Bir de akıllı kamera (smart camera) ile gerçeklenmek istenen çözümler var, bu gibi durumlar için daha önce yazdığım şu makaleyi okuyabilirsiniz.

2. Elinizde olması gereken bileşenler

Gelelim düzgün bir yapay görme (görüntü işleme) uygulaması gerçekleştirmek için sahip olmanız gereken yazılım ve donanımlar bütününe.

Aydınlatma : İyi bir görüntü işleme uygulaması, kesinlikle iyi aydınlatılmış bir ortam ister. Aydınlatma koşullarının olabildiğince sabit (gece gündüz yaz kış vb. koşullardan etkilenmemesi) ve olabildiğince kontrollü olması istenir. Led ya da fluoresan tabanlı aydınlatma sistemleri kullanılabilir. Uygulamanın ihtiyacına göre en iyi aydınlatma sistemi seçilmiş olmalıdır. Fluoresan aydınlatmalar soft bir ışık verdiği için avantajlıdırlar. Led tabanlı aydınlatmalar için açma/kapama yapabilme, açısal/noktasal aydınlatma verebilme gibi avantajlara sahiptirler. Led aydınlatmalar, istenen geometrik tasarıma göre yerleştirme yapılabildiği için de kullanışlı olabilir.

Kamera – Lens : Endüstriyel bir kamera kullanılmalıdır. Yüksek hızda görüntü alabilen, tetik sinyalini görebilen (kameraya dijital sinyal verildiğinde fotoğraf çekmesi), USB ya da ethernet gibi bağlantı arabirimlerine izin veren ve en önemlisi tüm özellikleri yazılım ile yönetilebilen (güçlü bir SDK sı olan) bir kamera seçilmelidir. Lens, en az kamera kadar önemlidir. İyi bir megapixel lens ve görülmek istenen parçayı en iyi foculayabilecek odak genişliği, ayarlanabilir diyafram ve focus ayarı gibi özellikleri işinizi kolaylaştıracaktır. Unutulmamalıdır ki, iyi bir aydınlatma ve kamera ile, daha iş yazılıma gelmeden önce büyük çapta çözülebilir.

Yazılım : Güçlü bir görüntü işleme yazılımı, kütüphanesi kullanılmalıdır. Hızlı ve tutarlı çalışabilen, farklı dilleri ve platformları destekleyebilen, güncel teknolojilere uygun bir kütüphane olmalıdır. Geliştirilecek uygulama bu kütüphaneyi kullanmalıdır. Nasıl ki bir finans uygulaması verilerini SQL Server / Oracle vb. bir veritabanında tutuyorsa (ve programcıdan bir veritabanı yazması beklenmiyorsa) iyi bir görüntü işleme programı da, bu konuda geliştirilmiş ve optimize edilmiş bir kütüphane kullanmalıdır.

Giriş / Çıkış Modülü : Görüntü işleme sonuçlarının dış dünyaya bildirileceği, yine görüntü işleme işlemine başlama bilgisinin alınabileceği bir giriş çıkış modülü kullanılmalıdır.

Ve en önemlisi, bu teknolojiyi benimsemiş ve kendini bu konuda geliştirmek isteyen bir insan ve ona değer veren bir kurum gerekmektedir.

Eğer bu bileşenlere sahip olunmuşsa,  firma bünyesinde bu bileşenleri bir araya getirerek her tür görüntü işleme ihtiyacına çözüm sunabilecek altyapıyı sağlamış demektir.

Mavis olarak, en iyisi olduğuna inandığımız tüm bu bileşenlere sahibiz. Kendi projelerimizde, bu bileşenleri kullanmaktayız. Bunun bir sonucu olacak ki, çok farklı sektörlerde %100 çalışan gerçek yapay görme uygulamalarına sahibiz.

Görüntü işleme kütüphanesi olarak HALCON kullanıyoruz. HALCON var olan en hızlı ve en güçlü görüntü işleme kütüphanesidir. Daha fazla bilgi için googla da HALCON aratınız. Ya da bizimle iletişime geçip, ücretsiz deneme sürümünü elde ediniz ve aynı gün çalışmaya başlayınız) Kamera olarak Alman iDS firmasının uEye marka kameralarını kullanıyoruz. uEye, Almanya da üretilen, son derece gelişmiş bir SDK sunan, ideal bir yapay görme kamerasıdır. Lens, uygulamaya göre değişmektedir. Ölçme gerektiren bir uygulamada farklı lens, varlık kontrol eden bir uygulamada farklı lens kullanılır. Bu yüzden şu marka lensi şurada kullanırız demek yerine, projeye uygun bir lens kullanırız tabiri daha doğru olur.

Aydınlatma olarak projeye göre farklı çözümler sunmaktayız. Fluoresan aydınlatmalar üzerine yaptığımız özel geliştirmeler ile, soft ışık yakalamaktayız. Led tabanlı aydınlatma kullanan bir çok farklı modelimiz de mevcuttur.

Giriş Çıkış modülümüz, yine kendi geliştirdiğimiz modüllerdir. USB ya da Seri port üzerinden bilgisayar erişimi mümkündür. USB modeli tüm işletim sistemlerinde çalışabilen, arada hiç bir ilave sürücü yazılım ihtiyacı olmayan son derce hızlı modüllerdir. 5-24 V. arası herhangi bir işareti giriş olarak kabul edebilmekte, röle ya da tranzistör çıkışı verebilmektedir.

Mavis tüm bu bileşenleri bünyesinde barındırır (Stoklu çalışır)

Son olarak, Mavis, ihtiyaç duyulması halinde, tüm bu bileşenleri sağlamak dışında görüntü işleme eğitimi de vermektedir.

Mavis, kendi imkanları ile geliştirme yapan firmalara her tür desteği zevkle vermektedir ve kendi felsefesiyle birebir örtüşen bu tür firmalar ve kişiler ile başarılı projelere imza atmaktadır.

Diğer yandan, Mavis; anahtar teslimi olarak nitelenen sayısız çözüme sahiptir. Bu blog sayfalarında ya da web sitemizde (www.mavis.com.tr) takip edilebileceği gibi, mavis sadece görüntü işleme ile ilgilenen %100 Türk sermayeli tek firmadır ve yerli yabancı pek çok firma için %100 kontrol esasına dayanan hazır çözümler sunmaktadır.

Görüntü İşlemede Doku Analizi

Hortum üzerine sarılı kumaşın varlığının tesbiti

Görüntü işlemede son derece karmaşık ve hayli ileri derece algoritmalar gerektiren çoğu kontrol ve metodoloji, HALCON kullanarak basitçe çözülebilir. Bugün Kros Otomotivde, siyah EPDM boru üzerinde yine siyah renkli ipliklerle örülmek suretiyle oluşturulmuş dokunun var olup olmadığının kontrolünün yapılması gerekiyordu.

Görüntü işleme terminolojisinde, pattern matching, texture analysis, surface analysis vb. isimler altında ciddi çalışmalar olarak kendini gösteren bu konuya HALCON ile pratik bir yaklaşımda bulunalım.

Üzerinde çalıştığımız projeye ait orijinal görüntü solda yer almaktadır. Görüntüde, yeşil dörtgen ile belirtilmiş alanda kumaş örgünün varlığı, sarı dörtgen ile belirtilmiş alanda ise yokluğu araştırılacaktır.

Kumaşın varlığını test eden HALCON programı :

1. Resim Yüklenir, İlgilendiğimiz alan (ROI) oluşturulur ve resim bu ROI ye indirgenir

read_image (Image, 'D3.bmp')
*draw_rectangle2 (3600, Row, Column, Phi, Length1, Length2)
gen_rectangle2 (Rectangle, 687, 406, -1.4, 128, 24)
reduce_domain (Image, Rectangle, ImageReduced)

indirgenmiş resimde (ImageReduced) histogram değerlerine baktığımızda soldaki gibi dağılmış olduğunu görürüz. İdeal olmayan bu dağılım, üzerinde çalıştığımız resmin fazla aydınlatılmış olmasından kaynaklanmaktadır. Fazla aydınlatma, kumaş dokusunu görebilmek açısından önemli. Aksi halde kumaş olan yerler siyaha yakın görüneceğinden, ayırdetmek daha da zorlaşacaktı.

Bu aşamada ilk yapılması gereken, belirli bir aralığa yığılmış olan histogramı 0-255 arası tüm aralığa yaymak. Bunun için HALCON’un scale_image_max fonksiyonunu kullanacağız.

2. İndirgenmiş Bölgenin belirginleştirilmesi

scale_image_max fonksiyonu uygulanmış bölge, solda görüldüğü gibi oldukça belirginleşti. Histogram 0-255 arasına düzgün olarak dağıldı. Aradaki kuantalanmış boşlukları gidermek ve yumuşak bir geçiş sağlamak için mean_image filtresi uygulanabilir. Bunu uygulamadan hemen önce emphasize komutu ile birlikte, resim iyice belirginleştirilir. Artık bin_threshold ile seçim kolaylıkla yapılabilir.

3. Seçim ve Karar

solda, bin_threshold sonrası resmin son hali görülüyor. Artık kumaşı oluşturan doku iyice ortaya çıktı. Bundan sonrası ortaya çıkan bu yapıyı değerlendirmeye kalıyor. Ben bu örnekte basit olması açısından closing_circle ile boşlukları doldurmayı denedim ve gayet sağlıklı sonuçlar aldım. (Bu noktadan sonra sayısız alternatif olabilir)

Tüm HALCON kodunu listeliyorum

read_image (Image, 'D3.bmp')
*draw_rectangle2 (3600, Row, Column, Phi, Length1, Length2)
gen_rectangle2 (Rectangle, 687, 606, -1.4, 128, 24)
reduce_domain (Image, Rectangle, ImageReduced)
scale_image_max(ImageReduced, ImageScaleMax)
emphasize(ImageScaleMax, ImageEmphasize, 40, 40, 20)
mean_image(ImageEmphasize, ImageMean, 5, 5)
bin_threshold(ImageEmphasize, Region)
closing_circle(Region, RegionClosing, 5)
connection(RegionClosing, ConnectedRegions)
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 4000, 25000)
count_obj(SelectedRegions, Number)
if (Number = 1)
    write_string(3600, 'Örgü Belirlendi.')
else
    write_string(3600, 'Örgü Belirlenemedi!')
endif

3. satırda yer alan gen_rectangle2 fonksiyonunu

gen_rectangle2 (Rectangle, 687, 606, -1.4, 128, 24)

şeklinde değiştirirseniz, örgü olmayan bölümde örgünün yokluğunu düzgün olarak test edebildiğini göreceksiniz.

Programı çalıştırmak isteyenler için, örnek olarak kullandığım D3 isimli dosyayı ekliyorum. Aşağıdaki resimler arasından D3 isimli dosyayı seçerek kendi makinanıza kaydedebilirsiniz.

Görüldüğü gibi, sadece 17 satırlık basit bir HALCON kodu ile, son derece karmaşık sayılabilecek metodolojilere pratik bir yaklaşım getirmiş olduk.

Mavis Kütahya ve Eskişehir’de

Mavis, Kütahya OSB de kurulu olan kameralı kontrol sistemlerine bakım vermek ve yeni modelleri tanıtmak amacıyla bugün Kütahya’da bulunmaktadır. Aynı gün, Kameralı Cam kontrolü (bardak, şişe vb.) çalışmaları için, başka bir firmaya geçecek ve ekipman tedarik edecektir. Bu firmada yapılacak çalışmalar, seri üretim yapılan camlı mamüllerin, kırık, çatlak, form bozukluğu, hare vb. hatalara karşı kamera ile %100 kalite kontrolünün yapılması işlemidir.

Ertesi gün (7 Eylül 2010, Salı) Eskişehir Organize sanayi Bölgesinde, Arçelik soğutucu tesislerinde yeni başlanılan OCR (Optik karakter tanıma) projesi için aydınlatma ve kamera yerleştirme işlemlerini gerçekleştirecektir.