C, C++, C#, VB, Delphi ile Profesyonel Görüntü İşlemeye Giriş – II

Yazı dizimizin, yeni bölümünde tekrar merhaba.

İlk bölümde, üzerine basarak vurguladığımız, profesyonel PC tabanlı görüntü işleme uygulaması oluşturabilmek için, öncelikle profesyonel bir kütüphane kullanacağız. Bu makaleler dizisinde, bu kütüphanenin yüklenmesinden, kurulumuna, uygulama geliştirmeden, exe (çalışan kod üretmeye) kadar her şeyi detaylı olarak uzun uzun anlatılacaktır.

Şimdi bir yazılımcı olarak, neden kütüphane? diye bir soru geliyor insanın aklına. Hiç ticari (profesyonel) bir kütüphane kullanmasak, her şeyiyle kendimiz geliştirsek daha iyi olmaz mı? Bunun en kısa yanıtı : Olmaz. Bir veritabanı uygulaması geliştireceğimiz zaman, SQL, Oracle, MySQL, Acces vb. bir ürün (onlar da bir kütüphane / framework nihayetinde) kullanmamız gerektiğini sorgulamıyorsak, görüntü işleme uygulamamızda da bir kütüphane kullanmamız gerektiğini sorgulamamalıyız.

Ancak belki aşağıdaki durumlarda ticari bir kütüphane yerine kendi kütüphanemizi geliştirmemiz mantıklı olabilir;

  • ArGe desteği alan bir şirket vardır ve bu destek yazılacak bu yeni kütüphane için verilmiştir.
  • Üniversitede yüksek lisans / doktora v.b. bir çalışma yapılıyordur ve yapılacak çalışmanın özgün olması istenmektedir.
  • Ticari bir ürün gerekmiyordur. Yavaş / eksik vb. olsa bile, amaç kendi yaptığımız iy/kötü basit bir görüntü işleme uygulamasıdır ve bu yüzden detaylı bir kütüphane kullanmaya/öğrenmeye gerek duyulmamaktadır.
  • Geliştirilecek ürün binlerce adet satılacaktır ve binlerce defa başka kütüphanelere lisans ücreti ödenmek istenmemektedir.
  • Geliştirilecek ürün çerçevesi çok net belirlenmiş tek bir üründür (Plaka Tanıma / Yüz tanıma vb.) Bu durumda bir kütüphanenin yüzde 1 lik fonksiyonlarını kullanıp para ödemek yerine, hiç kullanmamak daha mantıklı olabilir.
  • Askeri ya da çok çok gizli bir proje vardır ve siyah giysili adamlar başka bir kütüphane kullanılmasına izin vermemektedirler…

Ülkemizde bu yolu izleyen (kendi görüntü işleme kütüphanesini geliştiren), bir (ençok iki) elin parmakları kadar şirket vardır. Bunlar genelde üniversite bünyelerinde ya da teknoparklarda kurulmuşlardır. Bir şekilde teşviklerle (personel ya da devletin sunduğu proje destekleri (TEYDEB, Tübitak, Kosgeb, Avrupa Birliği vb.)) ayakta kalmaktadırlar.

Eğer yukarıdaki maddelerden herhangi biri size uyuyorsa, ya da benim bilmediğim/saymadığım herhangi bir sebepten dolayı kendi görüntü işlem kütüphanenizi geliştirmek/kullanmak konusunda ısrarlı iseniz, bu yazı dizisi artık size hitap etmeyecektir. (Bir mail ile haklı gerekçelerinizi bana bildirirseniz, burada memnuniyetle paylaşmaya hazırım)

Bu arada, görüntü işleme kütüphanesi yazmaya hevesli olan arkadaşlara bu işin çok ta kolay olmadığını hatırlatmak isterim. Mesela sadece kenar bulma üzerine, 20 ye yakın yaygın algoritma vardır (canny, lanser, deriche, shen, sobel …) ve bunların tek birini bile implemente etmek pek kolay bir iş değildir. Örneğin bu PDF, canny edge detection algoritmasının mantığını anlatmaktadır.

Diğer yandan, her bir görüntü kaynağı (kamera, fotoğraf makinesi vb.) kendi SDK sı ile gelmektedir. USB2, USB3, Gigabit, CameraLink, GenICam vb. çeşitli yöntemler ile bilgisayara bağlanabilen bu cihazlardan görüntü almak, bu cihazlara hükmedebilmek (pozlama, kazanç, AOI işlemleri vb.) için, işi gücü bırakıp her bir ayrı üreticinin kamera/fotoğraf makinesi detaylarını öğrenebilmek gerekmektedir ki, yüzlerce marka/model ve yazılım sürümleri arasında kaybolmadan bunları yapabilmek te pek kolay değildir)

Özetle, (bana inanın dostlar), profesyonel bir görüntü işleme uygulaması geliştirmek istiyorsanız, en iyi yol, güçlü bir ticari kütüphane kullanmaktır.

Bu durumda soru şuna indirgeniyor. Peki hangi kütüphane? Önce cevabı vereyim, sonra sebeplerini anlatayım. cevap : HALCON.

Neden HALCON?

Burada, pazarlamacı/reklamcı ağzı ile ifadeleri bir tarafa bırakıp, gerçek dünyadan bir örnek vermek istiyorum.

1960 lı yıllardan beri, kendi görüntü işleme teknolojileri üzerine geliştirmeler yapan NASA, 2010 yılından itibaren HALCON kullanmaya karar vermiştir. Robotik görme ve 3D vision dediğimiz teknolojilerde HALCON kullanan R2 robotunu uzaya göndermiştir.

Gizliliği ve üst düzey teknolojisi ile bilinen NASA gibi bir kurumun, kendi görüntü işleme tekniklerini bir yana bırakıp, Alman malı bir görüntü işleme kütüphanesi kullanmaya karar vermesi yeterince etkileyici bir örnek. Buna rağmen, biz yine de birkaç makul gerekçe sunalım.

  • HALCON halihazırda var olan en güçlü ve en hızlı görüntü işleme kütüphanesidir.
  • Çok gelişmiş programlama desteği sunar. (.NET, Linux, MacOS..)
  • Kendi geliştirme ortamı vardır. (Sadece görsel bir tool değil, kendi programlama dili ile kod yazabildiğiniz Visual Studio benzeri bir IDE sunar)
  • Sizin adınıza C#, VB, Delphi … için kod üretir.
  • Gerçek bir exe üretirsiniz. (Interpreter / yorumlayıcı vs. değil)
  • Üniversitelerde yaygın olarak kullanılmaktadır (standart hale gelmiştir)

gibi maddeler ilk aklıma gelenler (Tekrar ediyorum, pazarlamacı/reklamcı ifadelere yer vermek istemiyorum. Yapılan Benchmark testlerinde HALCON açık ara önde bir kütüphanedir fakat uzun uzun bunlara yer verip, operatör sayısı, işlemci kullanma yüzdesi, hızı vb. vb. şimdilik gereksiz)

Peki HALCON nasıl tedarik edilir, nasıl yüklenir, maliyeti nedir?

HALCON, aşağı yukarı 500 MB büyüklüğünde bir SDK dır. bir o kadar da örnek resimleri vardır. Ortalama olarak 1 GB civarı bir üründür.

Bu ürünü öncelikle kendi web sitesinden ücretsiz olarak indirebilirsiniz.

İndirme esnasında, register (kayıt) olmanızı isteyecektir. (Korkmadan register olabilirsiniz. Spam mail bombardımanına, gerekli gereksiz hatırlatmalara vb. maruz kalmazsınız.) Register olurken irtibatta olduğunuz firma v.b. bir yer varsa oraya MAVIS yazmanız tavsiye olunur. Girdiğiniz bilgiler, belirttiğiniz firmaya iletilecek ve eğer direk bize gelirse hızlıca size lisans verebiliriz. Aksi halde süreç biraz uzayabilir

Alternatif olarak, 2GB bir flash disk ile ofisimize gelip beni bulursanız size direk kopyalayıp / geçici lisanslayıp verebilirim.

webden yüklediyseniz, hem programı (32 ya da 64 bit) hem de resimleri ayrı ayrı yüklemeniz gerekmektedir.

Yükleme işlemi bittikten sonra, programın çalışabilmesi için sizden lisans isteyecektir. Bana ulaşarak (info@mavis.com.tr) geçici lisans alabilirsiniz.

HALCON 2 tip versiyona sahiptir.

Runtime ve Development. Runtime versiyonu son kullanıcının makinasına yüklenecek kısımdır. Development ise, geliştirme yapılacak bilgisayarda (programcının bilgisayarında) çalışacak olan versiyondur.

Lisanslama maliyeti, Runtime için kullanılacak modüllere göre değişim gösterebilmektedir. (Net rakamlar için şirketimizle irtibata geçiniz. Ben teknik bir personel olduğum için, çoğu kez lisans maliyetleri ile ilgilenmem.)

Development lisans maliyeti haliyle daha yüksektir. (Üniversiteler için gayet ciddi indirimler uygulanmaktadır.)

Şimdi, bir programcı olarak neye ihtiyacınız var. Herşeyden önce, tüm sistemi denemek, çalıştırmak için deneme lisansı ile, eksiksiz, tam fonksiyonalite ile çalışabilirsiniz. Ürününüz satılma noktasına geldiyse, o zaman net lisans rakamlarını öğrenirsiniz.

Görüntü işleme uygulamaları, çok ucuz uygulamalar değildir. Bence HALCON lisans maliyetleri, kesinlikle ürkütücü değildir. Yine de tekrar belirtmek isterim, HALCON ücretsiz bir ürün değildir. Böyle bir beklenti içinde olanlar, yazı dizisinin devamını beklemeden burada ayrılabilirler.

Programcı, kendi makinasına HALCON development ürününü kurar ve görüntü işleme dünyasına adımını atar.

Makalemizin 3. sayısına ulaşmak için tıklayınız…

Yakında Görüşmek Üzere.