Nesne Adedi Bulan HALCON Kodu, erosion ve dilation kullanımı

 

Soldaki resimde (HALCON da pellets adı ile kaydedilmiştir) kaç adet pellet (topak) var. Bunu farklı yaklaşımlarla bulan HALCON kodu üzerinde kafa yoralım.  Ben ve Kağan tarafından geliştirilen farklı algoritmalar, burada alt alta verilecektir.

Buradaki tek zorluk, nesneler birbirine bitişik olduğu için, connection kullandığımızda bitişik olan nesneleri tek bir nesne olarak değerlendirecektir. opening_circle kullanıldığında ise yine istenen sonucu elde edebilmek her zaman mümkün olmamaktadır. Basit gibi görünen bu örnekte biraz daha farklı yaklaşımlar gerekebilir.

 

 

Kağan tarafından geliştirilen HALCON kodu

read_image (Image, 'pellets')
scale_image_range (Image, ImageScaled, 100, 200)
gray_erosion_shape (ImageScaled, ImageMin, 3, 3, 'octagon')
bin_threshold (ImageMin, Region)
difference (ImageMin, Region, RegionDifference)
opening_circle (RegionDifference, RegionOpening, 10)
connection (RegionOpening, ConnectedRegions)
count_obj (ConnectedRegions, Number)

 

 

 

 

 

 

 

 

 

Kağan tarafından yukarıda yazılan kod çalıştırıldığında yukarıdaki sonuç elde edilmiştir. Aradığımız da tam olarak buydu. Kodu tam 1000 defa çalıştırdığımda 3.175 sn. sürdü. Şimdi farklı mantıklar ile yeniden kodu geliştirmeyi düşünelim.
Benim geliştirdiğim HALCON kodu

read_image (Image, 'pellets')
bin_threshold(Image, RegionDark)
difference(Image, RegionDark, RegionLight)
connection(RegionLight, ConnectedRegions)
erosion_circle(RegionLight, RegionErosion, 8 )
connection(RegionErosion, ConnectedRegions)
dilation_circle(ConnectedRegions, RegionDilation, 8 )
count_obj(RegionDilation, Number)

Benim yazdığım kodu 1000 defa çalıştırdığımda 1.439 sn. sürdü 🙂  Buradaki püf noktası, önce erosion_circle kullanarak birbirine yapışık nesneleri sınırlarından erimeye tabi tutarak (erosion) ayırmak, sonra dilation_circle kullanarak eski boyutlarına geri ulaştırmak. (Hız her zaman ilk göz önüne alınması gereken parametre değildir.)

HALCON da bir çok farklı yaklaşım ile istenen sonuca ulaşmak mümkündür. Bir diğer yaklaşım,

distance_transform

HALCON fonksiyonunu kullanmak olabilir. Belritilen sınır mesafeye göre en uzak olanları en parlak, en yakın olanları en koyu olarak çizecek şekilde transform edilmiş yeni resim işleri çok kolaylaştırabilir.

distance_transform (ConnectedRegions, DistanceImage, ‘euclidean’, ‘true’, Width, Height)

fonksiyonu uygulandıktan sonraki orijinal resmimiz aşağıdaki gibi olacaktır. Bundan sonrasını, HALCON programcıları için yazmaya gerek bile görmüyorum.

 

 

Defne Yaprağı Ayrıştırmada Matematiksel Yaklaşım

Daha önceki blog kayıtlarımızda sıklıkla bahsettiğimiz Hatalı Defne Yaprağı Ayrıştırma Projemize tamamen matematiksel yöntemlerle çalışan, daha hızlı ve daha güvenilir sonuçlar veren yeni bir yaklaşım ekledik.

Matematikte Saddle Point (Semer Noktası) olarak bilinen fonksiyonun,  defne yapraklarına uyarlanması temelinde yapılan işlemler, daha kısa sürede ve daha hızlı sonuçlar vermektedir. Görüntü işleme fonksiyonları ile matematiksel fonksiyonların eş zamanlı olarak kullanıldığı bu yeni yaklaşımda, işlemci (cpu) hızı artırıldıkça, doğru orantılı olarak işlemin sonlanma hızı da artmaktadır. (Salt görüntü işleme fonksiyonları kullanılsaydı, işlemci hızının artışı yine olumlu sonuçlar verecekti fakat işlemcide geçmeyen süreler – kameralardan görüntünün alınması, veriyolunda kaybedilen zamanlar, hafızaya okuma/yazma süreleri vb. – yüzünden beklenen hız artışı daha sınırlı kalacaktı.)

 

 

 

 

 

 

 

Yukarıdaki resimde, sağlam ve hatalı yaprağın, üst yarısının kenar çizgileri gösterilmiştir. İdeal bir yaprakta (hatasız) semer noktası (saddle point) hiç olmamalıdır.

Analiz Yöntemi :

  1. Yaprak yatay düzlem ile sıfır derece açı yapacak şekilde döndürülür
  2. Yaprağın alt ve üst bölgelerinin konturları (contours) çıkartılır
  3. Çıkartılan konturlara ait, satır-sütun değerleri fonksiyonel olarak çıkartılır
  4. Oluşturulan 2 boyutlu fonksiyonda semer noktaları (saddle points) aranır
  5. Semer noktaları derinliği belirlenen değerlerden fazla ise yaprak hatalıdır
  6. Yaprak yatay eksenle 90 derece açı yapacak şekilde döndürülür (Sol ve Sağ tarafı baş aşağı gelecek şekilde)
  7. Tüm kontroller yeniden yapılır.

Tüm bu işlemlerde kullanılan belli başlı HALCON operatörleri :

  • Contour processing (edge-detection, smooth contours, union contours…)
  • 1d fonksiyonel işlemleri (create_funct_1d_pairs, derivate_funct_1d  …)
  • Semer Noktası işlemleri (saddle_points_sub_pix …)

Bu kez çalışan HALCON kodu örneği yerine kullanılan fonksiyonları ve yöntemi açıkladım. Konuyla ilgilenenlerin olması ve ulaşması durumunda çalışan gerçek kodlar ile daha detaylı paylaşımlarda bulunabiliriz.

 

ARM Cortex A9 üzerinde çalışan HALCON

Gömülü HALCON dağıtımlarının ARM Cortex A9 işlemcileri üzerinde çalışabildiğinin açıklanması, yakın gelecekte çok tanıdık mobil cihazlarda HALCON görebileceğimiz anlamına geliyor.

ARM Cortex A9 kullanan mobil cihazlar listesi çok uzun olmakla birlikte (en yaygın kullanımı neredeyse her modemde yer alan Conexant işlemcileri) günlük hayatta bilinen bazı markaları listelemek istiyorum.

Apple iPhone 3GS, Palm Pre, Samsung i8910, Sony Ericsson Satio, Touch Book, Nokia N900 …

mobil cihazlarda gittikçe artan kamera ve ekran çözünürlüğü, geri planda çok hızlı ve hassas sonuçlar verebilecek bir engine kullanımını zorunlu hale getirmektedir. Bir önceki makalede de bahsettiğim gibi, teknoloji devi firmalar, tam da bu alana inanılmaz kaynaklar ayırmaktadır. Burada kişisel görüşüme göre; ARM gibi mobil işlemci piyasasının %75 ine hakim bir işlemciyi hedefleyen HALCON, bu sektöre taze bir kan getirecek ya da bazı ciddi kararların değişmesine sebep olabilecek gibi görünüyor.

HALCON Kinect Desteği

HALCON 10, test aşamasında olsa da MS Kinect ile 3D alanında başarılı çalışmalar yapmaktadır. Bilindiği gibi Kinect, Microsoft XBox oyun konsolları için geliştirilmiş, oyuncunun üzerinde herhangi bir kontrolör, kumanda ya da sensör olmaksızın tüm hareketlerini algılayabilen 3D kamera sistemidir.

HALCON un Kinect desteği sunması, oldukça ucuz ve yaygınlaşacağı neredeyse kesin olan 3D kamera seçeneği ile çalışabilmesi dışında daha derin anlamlar da içeriyor olmalı. Kişisel görüşüm, inanılmaz bir hızla yükselen oyun endüstrisinin MVTec yetkililerinin zaten uzunca bir süredir dikkatini çektiği yönünde. Nintendo Wii konsollarıyla başlayan etkileşimli oyun teknolojilerinin, Kinect ve benzeri ürünler ile iyice yaygınlaşması, bu cihaz üreticileri için HALCON kullanılabilmesi anlamına geleceği gibi, HALCON kullanıcılarının bu tür ucuz donanımlar ile profesyonel uygulamalar geliştirebileceği anlamına da gelir.

Üstelik, Microsoft un kendisi bile, Kinect görüntülerini algılayan akıllı yazılımlar için inanılmaz kaynaklar tüketirken, MVTec elindeki mevcut HALCON 3D görüntü işleme kütüphanesini Kinect uyumlu hale getirmek için hiç te sıradışı bir çabaya ihtiyaç duymayacak. Mevcut yapı zaten yeni framegrabber ve kamera arabirimleri için genişletilebilir durumda.

Başlangıçta Linux ve Windows işletim sistemlerini destekleyerek çoklu platformu hedefleyen HALCON, son zamanlarda ARM işlemcilerine verdiği güçlü destek ile ön plana çıkmaktadır. Nokia (belirli seri) desteğinden sonra bu atılımlar, yakın gelecekte HALCON u mobil cihazlar, oyun sektörü, ve günlük hayatın içinde çok daha fazla görebileceğimiz anlamına geliyor.

NASA gibi bir kurumun kendi görüntü işleme yazılımını bir kenara itip HALCON kullanmaya karar vermesi örneğini diğer teknoloji devi firmalar da izleyecektir. (Apple ın OpenGL için açık iş pozisyonlarını google dan aratın, gözlerinize inanamayacaksınız.)

Akıllı Şekil Tamamlama

Görüntü işleme uygulamaları, olabildiğince net ve düzgün görüntülerle çalışmayı sever. Bizim gibi, görüntü işleme ile endüstriyel ortamlarda çalışanlar, kaliteli ve bir görüntüyü garanti etmek için sistemin kurulumuna aşırı önem gösterirler. Gece/gündüz, yaz-kış, 24 saat çalışacak uygulamalar da alınan her görüntünün yeterli kalitede olması için aydınlatma ve çevre şartlarından izolasyon işlemleri özenle yerine getirilir. Her şeye rağmen, alınan tüm görüntüler beklenen kaliteyi sağlamayabilir.

İşte bu noktada, iyi bir görüntü işleme yazılımından beklentiler yükselir. Yazılım, değişen fotoğraf kalitesinde bile en iyi sonucu verebilmeli. “Akıllı şekil tamamlama”, kenar çizgileri eksik olarak alınmış fotoğrafların, kenar çizgilerini olması gerektiği gibi tamamlayan bir algoritmadır. Bol miktarda uygulama alanı mevcuttur. Örneğin bir önceki makalede, Defne Yapraklarının kalite kontrolünü incelemiştik. Bir yaprağın kenar çizgilerinin düzgün olup olmadığını anlamak için bu algoritma uygulanabilir.

Yaprak resmine benzer bu şekli Paint ile elle çizdim. Sonra kenarlarından bazı yerleri rastgele silerek, bozulma oluşturdum. Amacım bir algoritma ile bu boş yerleri tamamlayabilmek.

HALCON kodu aşağıdaki gibidir.

read_image (Image, 'C:/Users/Mustafa/Desktop/Yaprak.jpg')
edges_sub_pix (Image, Edges, 'canny', 1, 20, 40)
regress_contours_xld(Edges, RegressContours, 'no', 1)
union_collinear_contours_xld (RegressContours, UnionContours, 30, 10, 10, 0.2, 'attr_keep')

 

Bu 3 satırlık basit HALCON kodu çalıştırıldığında,  elde edilecek sonuç :

Soldaki gibidir. Bu çalışma da, contour processing yapılarak eksikliğin tamamlanması gösterilmiştir. close_edges, region_growing, sobel_amp gibi komutlar ve daha ciddi yapılanmalarla, oldukça karmaşık eksiklikler bile düzgün olarak tamamlanabilmektedir.

 

 

İki Göz Arası Mesafeyi (Pupila mesafesi) ölçen HALCON çalışması

Yalnızca görüntü işleme çalışmalarına örnek olması açısından, 2 göz arası mesafeyi ölçen (puppila mesafesi) basit bir HALCON kodu aşağıda verilmiştir.

Mesafe pixel cinsinden ölçülmektedir. Görüntü alan cihaz (kamera, fotoğraf makinesi vb.) sabit ise, makinanın karşısındaki insanın bulunduğu yer de sabit ise, bu durumda basit bir dönüşüm ile, pixel den milimetreye geçiş yapılabilir. (Uygulama açısından gözlerin gelmesi gereken yere, hassas bir cetvel ya da mesafesi bilinen bir işaret koyarak kaç pixele denk düştüğü bulunabilir)

Şimdi HALCON koduna geçelim :

dev_set_draw('margin')
*Ekran fontunu set edelim
set_display_font (3600, 12, 'mono', 'true', 'false')
*Resmi dosyadan yükleyelim (Normalde kameradan direk alınır)
read_image (Image, 'C:/Users/Mustafa/Desktop/m1.jpg')
* Resmin ilgilendiğimiz bölgesini (gözlerin bulunduğu yer) belirtelim
gen_rectangle1 (ROI_0, 154.969, 72, 206.531, 255.75)
reduce_domain (Image, ROI_0, ImageReduced)
*koyu renkleri seçelim (göz bebekleri, kirpikler, saçlar vb.
threshold (ImageReduced, Regions, 0, 57)
closing_circle(Regions, RegionClosing, 3.5)
*içinde daire içeren şekilleri seçelim
opening_circle(RegionClosing, RegionOpening, 6)
connection(RegionOpening, ConnectedRegions)
*Belirli bir alandan büyük nesneleri seçelim
select_shape (ConnectedRegions, SelectedRegions, 'area', 'and', 150, 500)
count_obj(SelectedRegions, Number)
if (Number = 2)
    *2 adet göz seçilmiş ise
    select_obj(SelectedRegions, Goz1, 1)
    select_obj(SelectedRegions, Goz2, 2)
    * her bir gözün tam merkezinin koordinatlarını bulalım
    area_center(Goz1, Area, Row1, Column1)
    area_center(Goz2, Area, Row2, Column2)
    *Artık sonuçları ekranda gösterelim
    dev_display(Image)
    dev_set_color('blue')
    dev_display(SelectedRegions)
    dev_set_color('green')
    disp_cross(3600, Row1, Column1, 12, 0)
    disp_cross(3600, Row2, Column2, 12, 0)
    dev_set_color('red')
    disp_arrow(3600, Row1 + 30, Column1, Row1 + 30, Column2, 1)
    disp_arrow(3600, Row1 + 30, Column2, Row1 + 30, Column1, 1)
    Dist := Column1-Column2
    disp_message (3600, Dist + ' px.', 'image', Row2+40, Column2 + 20, 'black', 'false')
endif

bu projede kullandığım insan yüzü resimlerini, http://www.uni-regensburg.de/Fakultaeten/phil_Fak_II/Psychologie/Psy_II/beautycheck/english/prototypen/prototypen.htm adresinden aldım.

orijinal resimlere oradan ulaşılabilir.

bu kodu çalıştırabilmek için, HALCON yüklü olmalıdır. En gelişmiş görüntü işleme kütüphanesi olan HALCON hakkında bilgi almak ve  ücretsiz tam versiyonu (sınırlı süreli) edinmek için bizimle irtibata geçebilirsiniz.

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.


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.

uEye için yeni HALCON arabirimi

HALCON uEye SDK nın 3.5 ve sonraki versiyonlarına uygun yeni bir arabirim (interface) çıkardı. Bilindiği gibi uEye gerek yenmi çıkardığı kameralar, gerek SDK sında yaptığı yeniliklerle 3.5 ve sonrası versiyonlarda (halihazırdaki son versiyon 3.70) büyük yenilikler getirmişti.

Bu yeni fonksiyonlar ve modellere HALCON içinden erişebilmek adına, yeni bir arabirim (interface) yayımlanması gerekiyordu ve 30 Ağustos itibariyle bu arabirim yayımlandı.

Mavis olarak, uEye kameralarına erişmek amacıyla, direk uEye ayar dosyası (ini) file ile çalıştığımızdan, bizim uygulamalarımız zaten uEye SDK nın yeni özelliklerini kullanabiliyordu. Bu yeni arabirim, uEye kameralarına HALCON un get_framegrabber_param ve set_frame_grabber_param fonksiyonlarını kullanarak erişen kullanıcılar için anlamlı olacak.

Yeni arabirim, kayıtlı (registered) kullanıcılar için MVTec web sayfasından ücretsiz indirilebilir.

VYP ye bir standart kontrol daha eklendi

Mavis, Kameralı Kontrol yazılımı VYP ye, yeni bir standart kontrol daha ekledi : “Araparça Boy ve Yükseklik Ölçümü”.

Standart kontrol, kullanıcı tarafından görsel olarak parametreleri değiştirilmek suretiyle uyarlanabilen kontrollerdir. Mavis VYP, Standart kontroller (alan bulma, var-yok kontrolleri, pozisyon kontrolleri, renk kontrolleri vb.), Gelişmiş kontroller (karekod, ocr vb.) ve projeye özgü kontrollerden oluşmaktadır.

Araparça Boy ve Yükseklik Ölçümü :

Karmaşık parçalar grubunda belirli özellikleri bilinen bir parçanın seçilip, en boy yükseklik gibi değerlerinin ölçülebilmesine yarar.

Son yapılan ilave değişiklikle birlikte (01.07.2010) araparça ölçümünde döndürme işlemi, sonda değil başta yapılmaktadır. Böylece Clip Region (sp_eliminate_run) işlemi daha sağlıklı değer verdiğinden daha hassas ölçüm mümknü olmaktadır.

Yukarıdaki şekilde, mavi dörtgen içindeki civatanın boyunu ölçmeye çalışalım. Normalde mavi dörtgen içine, hem civata hem de somun girdiğinden, ilave kontroller yapılmaksızın sadece civatayı ölçmek mümkün değildir. Mavis VYP ye yeni eklenen “Araparça Ölçüm” kontrolü ile görsel olarak programlama yapmaksızın bu kontrol bildirilebilmektedir.

Şekilde görüldüğü gibi, Araparça kontrolü kullanılarak, somun ve civatadan oluşmuş şeklin sadece  civata kısmının boyu ölçülebilmektedir.

Görev Parametreleri

  • Standart ReduceDomain İşlemi
  • Standart ApplyThreshold İşlemi
  • Standart ApplySelection İşlemi
  • Clip değişkeni : ölçülecek araparçanın min ve max Run değeri (bu değerler arasındaki parçalar dikkate alınır)
  • CheckHeight : Yükseklik ölçümü isteniyorsa bool 1 (yes, on, ok, evet değerlerinden biri) kullanılır
  • CheckWidth : Genişlik ölçümü isteniyorsa kullanılır
  • CheckLong : Uzun kenar ölçümü isteniyorsa (en ya da boy, hangisi daha büyükse)
  • CheckShort : Kısa kenar ölçümü isteniyorsa (en ya da boy. hangisi daha kısaysa)
  • RHeight : minHeight..maxHeight arası değer (beklenen geçerli yükseklik değeri. CheckHeight değeri 1 ise anlamlı)
  • RWidth : minWidth..maxWidth arası değer (beklenen geçerli genişlik değeri. CheckWidth değeri 1 ise anlamlı)
  • RLong : minLong..maxLong arası beklenen uzun kenar değeri. (CheckLong değeri 1 ise anlamlı)
  • RShort : minShort..maxShort arası beklenen kısa kenar değeri. (SheckShort değeri 1 ise anlamlı)

alt programın HALCON ve C# kodlarını edinmek ve yorum yapmak için, blog sitesinde veya bizimle (info@mavis.com.tr) yazışabilirsiniz.