10-20-2016 08:33 PM
Salam semuanya,
Karena beberapa hari lalu ada yang bertanya soal Vision, saya akan share disini basic, tips and trick dalam aplikasi Image Processing dan Machine Vision dengan menggunakan LabVIEW.
Apa yang akan saya lakukan? Aplikasi untuk:
1. Melakukan segmentasi warna. Artinya saya hanya mau memproses warna-warna tertentu seperti merah, kuning dan hijau.
2. Melakukan Particle Analysis. Artinya, dari obyek yang saya milikki, hanya dengan luasan tertentu (satuan luas, seperti pixel2), ada max dan minnya
3. Melakukan Tracking. Artinya, dari obyek yang sudah diproses sebelumnya (segmentasi dan particle analysis), saya akan mentrack obyek yang sudah saya training
Nah dalam tutorial ini, hanya step 1 dulu yang saya kerjakan. Step berikutnya akan saya lanjutkan apabila ada yang meminta
Software Yang Diperlukan:
*ini adalah software yang saya pakai, harusnya bisa dengan versi 2014 dan 2015 namun saya tidak menjamin ya.
Vision Assistant 2015:
Kenapa menggunakan Vision Assistant? Karena mudah dan cepat. Saya bukan fans dari Express VI (Vision Assistant ini adalah Express VI), tapi keuntungannya adalah, Script dari Vision Assistant ini dapat generate code menjadi LabVIEW! Bahkan bisa juga untuk code lain seperti C, VB.NET dan LabVIEW FPGA (lebih keren lagi).
Oke, kita mulai dulu dengan step berikut ini:
1. Membuka Vision Assistant 2016:
Bisa ditemukan pada All Programs>>National Instruments>>Vision>>Vision Assistant 2015 (32-bit)
2. Sekarang, Buka Image Sebagai Referensi
Dicontoh saya, buka image pada folder Image>>gambar1.png
Karena gambarnya besar, resolusi 1920x1080, maka gunakan Zoom to Fit.
3. Color Image Threshold
Gambar yang saya milikki ini adalah gambar berwarna (color). Artinya, secara dasar, gambar tersebut memilikki 3-dimensi data. Satu dimensi adalah R (Red), satu dimensi adalah G (Green) dan satu dimensi lagi adalah B (Blue), atau pendeknya RGB. Nah setiap dimensi ini bentuknya adalah Array of Number. Number disini adalah U8, atau 8-bit. Sehingga kalau RGB, total bit-nya adalah 24-bit. Karena di LabVIEW tidak ada datatype dengan 24-bit, angkanya tidak enak, bukan kelipatan kuadrat dari 2, maka dari itu yang digunakan adalah U32.
Mohon catatannya, image dalam LabVIEW ada banyak jenis, berikut ini beberapa yang saya ingat:
1. Grayscale: U8, value dari 0-255
2. RGB: U32, value dari 0-16777215
3. Binary: U8, value dari 0-1
Langkah berikutnya adalah melakukan segmentasi warna, agar warna yang tersisa adalah merah, kuning dan hijau. Yang lain kita buang.
Pilih HSV dengan angka:
Hue, Min:10, Max:31
Saturation, Min:34, Max:103
Value, Min:98, Max:134
*angka ini didapat dari hasil trial-error
*saran saya angka ini dibuat semepet mungkin, agar hasil yang didapat akurat dan mengurangi efek noise dari pencahayaan.
Voila....
*yang berwarna merah itu adlaah area yang akan kita "Keep"
**Perhatikan, sekarang gambar kita bukan lagi RGB dengan format U32, tapi sudah menjadi Binary U8 karena kita threshold dari color-->binary.
4. Gambar Binary, tapi masih ada noise
Perhatikan digambar sebelah kanan atas yang ada hanya Hitam dan Merah (binary image), ada noise berupa bintik-bintik hitam di area merah. Kita remove ini menggunakan image-processing, yaitu Closing (http://homepages.inf.ed.ac.uk/rbf/HIPR2/close.htm).
*Voila kedua, gambar menjadi lebih baik.
5. Binary Image Inversion
Kenapa? Karena warna merah di atas adalah 1, bukan 0. Tujuan kita nanti adalah melakukan "Masking", antara gambar original (yang color) di mask dengna gambar binary (yang hitam putih) sehingga output dari gambar hanya bersisa gambar atau pattern yang kita mau saja.
6.Particle Filter
Nah area merah nya jadi banyak dan background juga menjadi merah, kita perlu filter. Kita buang backgroundnya dengan cara menghitung luas setiap area yang berwarna merah (via fungsi Particle Filter), lalu kita set Min dan Max area yang kita mau simpan.
Voila ketiga, selesai proses segmentasi warna kita.
Next stepnya adalah:
Simpan Script yang kita buat di Vision Assistant 2015. Saya simpan sebagai Script.vascr
Load Sript tersebut dalam LabVIEW.
LabVIEW 2015 dan LabVIEW Vision Development Module 2015:
1. Buka LabVIEW
2. Buka Help>>NI Example Finder
3. Search "Image Mask"
Lalu buka VI tersebut, dan coba Run, dan dilihat-lihat apa gunanya dan bagaimana cara kerjanya:
Kalau dalam pengertian saya, example ini mengambil sebuah gambar, membuat "Mask" lalu melakukan filter/cropping digambar outputnya. Kita akan modifikasi VI ini.
4. Modifikasi VI
Modifikasi sehingga program menjadi:
*Vision Assistant Express VI dapat ditemukan di: Functions Palette>>Vision and Motion>>Vision Express>>Vision Assistant
Kalau sudah, bisa di Run dan menjadi:
Selamat mencoba!
12-16-2019 04:45 PM
Hello,
apakah bisa dengan Vision assistent ini kita menghitung benda berdasarkan warnanya saja? minta advise nya ya bang
01-03-2020 09:34 PM
01-31-2020 04:03 AM
hi ,, selamat sore.
saya anjas dari batam mau bertanya ...
apakah kita bisa detection 2 benda yang berbeda yang saling berdempetan ? dengan jarak 1 mm ???
program vision ini bisa di integrasikan ke plc omron ?
02-02-2020 07:48 PM
apakah kita bisa detection 2 benda yang berbeda yang saling berdempetan ? dengan jarak 1 mm ???
--> bisa. lakukan image-processing dulu seperti, erosi .
program vision ini bisa di integrasikan ke plc omron ?
--> integrasi dua sistem, sistem PLC Omron & sistem Vision (PC Based) = bisa.
--> integrasi semua jadi satu sistem --> setahu saya, dan saya mungkin salah ya, PLC tidak mampu melakukan image-processing, karena fungsi dan tujuan hardwarenya berbeda.