-->

Tuesday, December 8, 2015

OpenCV : Library Pemrograman untuk Computer Vision dan Machine Learning


Logo OpenCV

Kira-kira setahun yang lalu saya sedang bingung mencari programming tool yang bisa dipakai untuk pengolahan citra digital (image processing) untuk skripsi saya. Sebenarnya bukan hanya sekedar image processing tetapi juga disertai dengan pengenalan pola (pattern recognition), jadi lebih tepatnya saya mencari programming tool untuk computer vision.

Saat itu saya hanya mengetahui MATLAB saja yang bisa melakukan itu. Pada buku-buku tentang image processing kebanyakan juga menyertakan tentang panduan penerapannya pada MATLAB. Well, hanya saja MATLAB ini merupakan produk berbayar dan harganya cukup fantastis. Produk induk/utama dihargai 135 USD untuk versi MATLAB Home R2015b. Itu belum termasuk toolbox-toolboxnya (semacam library) yang dijual terpisah. Per toolboxnya sendiri dihargai 39 USD. Dengan total 55 toolbox tersedia untuk versi MATLAB Home R2015b, berarti harga total MATLAB adalah 135 + (39x55) USD = 2280 USD jika ingin toolboxnya lengkap. Mencengangkan!

Memang, tidak mungkin kita menggunakan semua toolbox yang tersedia. Untuk image processing dan computer vision , hanya dibutuhkan sekitar 2-4 toolbox saja, jadi kisarannya 135 + (39x2) = 213 USD sampai dengan 135 + (39x4) = 291 USD. Masih cukup mahal untuk kalangan orang Indonesia.

Dari situlah saya mulai berinisiatif untuk mencari alternatif MATLAB yang open source sehingga tidak perlu merogok kocek sendiri, dan seharusnya di jaman seperti sekarang ini ada. Di situlah akhirnya saya bertemu dengan OpenCV.

Apa itu OpenCV ? Menurut Wikipedia, OpenCV (Open Source Computer Vision Library) adalah sebuah pustaka perangkat lunak yang ditujukan untuk pengolahan citra dinamis secara real-time, yang dibuat oleh Intel, dan sekarang didukung oleh Willow Garage dan Itseez. Program ini bebas dan berada dalam naungan sumber terbuka dari lisensi BSD. Pustaka ini merupakan pustaka lintas platform. Program ini didedikasikan sebagaian besar untuk pengolahan citra secara real-time. Jika pustaka ini menemukan pustaka Integrated Performance Primitives dari intel dalam sistem komputer, maka program ini akan menggunakan rutin ini untuk mempercepat proses kerja program ini secara otomatis.

Karena OpenCV ini berupa library, tentunya ada beberapa programming tools yang dapat digunakan, yaitu C, C++, Python, Java, dan MATLAB. Haha, MATLAB sendiri bisa digabungkan dengan OpenCV, berarti ada kemungkinan tidak perlu membeli toolbox tambahan. Tetapi tetap saja cukup mahal, 135 USD.

Sistem operasi (operating system) apa yang mendukung OpenCV? Jelas, library tidak menentukan sistem operasi yang mendukung, tetapi programming tool-nya lah yang mempengaruhi. Kebetulan semua programming tools yang disebutkan di atas mendukung tiga sistem operasi terbesar di dunia, yaitu Windows, Linux, dan Mac. Untuk outputnya, selain 3 sistem operasi tersebut juga dapat diterapkan pada sistem operasi Android.

Walaupun library OpenCV ini cukup tangguh, dalam artian kita hanya perlu mengetikkan synthax dalam beberapa baris saja untuk menghasilkan keluaran, tetapi masih bisa kita kembangkan lagi menjadi sesuatu yang lebih advanced. Terdapat sekitar 2500 algoritma yang terdapat dalam OpenCV yang merupakan algoritma dari computer vision dan machine learning. Beberapa algoritma tersebut di antarana adalah deteksi dan pengenalan wajah, identifikasi objek, mengklasifikasikan aksi manusia dalam video, melacak pergerakan kamera, melacak pergerakan objek, ektraksi model 3D dari objek, augmented reality dengan marker, dan lain sebagainya.

Sip, library sudah kita dapatkan. Permasalahan selanjutnya adalah programming tool/language apakah yang akan kita pilih? Sebenarnya terserah Anda, tetapi bagi yang ingin melihat pilihan saya silahkan nantikan post selanjutnya. Untuk sekarang, silahkan sesuai dengan pilihan Anda masing-masing.

About The Author:

Ferdy Hendrawan [Administrator of this Blog]

Seorang self-employed lulusan Teknik Elektro Universitas Brawijaya yang kini mendalami dunia trading market dan juga dunia per-Blogger-an. Kunjungi juga blog saya yang baru di Fair_De's Corner


Let's Get Connected: Twitter | Facebook | Google Plus | YouTube

0 comments:

Post a Comment

Feel free to ask if you have any questions..
Don't forget to thick "Notify me" so you can know when I'm answer your question later..
Or you also can bookmarking this post..

Thank you :)

Related Posts Plugin for WordPress, Blogger...

Share

Twitter Delicious Facebook Digg Stumbleupon Favorites More