Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto 2015 1 Bab 1 Pengantar Machine Vision Tujuan Instruksional Umum : 1. Mahasiswa mampu menjelaskan peranan dan konsep pemrograman Computer Vision dan Machine Vision Tujuan Instruksional Khusus : 1. Mahasiswa mampu menjelaskan fungsi dari Computer Vision dan Machine Vision 2. Mahasiswa dapat menyebutkan beberapa penerapan dari Machine Viion 3. Menjelaskan fungsi dari program OpenCV 4. Mahasiswa dapat menjelaskan penelitian di bidang Computer Vision 5. Mahasiswa dapat menginstal program OpenCV dan membuat program loading image. 1.1 Mengenal Machine Vision Kecerdasan Buatan / Artificial Intelligence (AI) merupakan bidang ilmu komputer yang sangat penting di era kini dan masa akan datang untuk mewujudkan sistem komputer yang cerdas. Bidang ini telah berkembang sangat pesat di 20 tahun terakhir seiring dengan kebutuhan perangkat cerdas pada industri dan rumah tangga. Salah satu bidang di AI yang mengakuisisi, mengolah, memahami dan untuk mengambil informasi/keputusan dikenal sebagai Computer Vision. Oleh karena itu, buku ini memaparkan berbagai pandangan modern dan hasil riset terkini di bidang Computer Vision yang perlu dikuasai oleh para akademisi, mahasiswa, pelajar dan bahkan praktisi. Okasha pada buku Philosophy of Science: A Very Short Introduction, menyatakan bahwa Manusia sebagai mahluk Tuhan paling sempurna memiliki keingintahuan yang tinggi serta daya rekayasa yang luar biasa, yang berujung pada munculnya pengetahuan dan
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
1
Bab 1
Pengantar Machine Vision
Tujuan Instruksional Umum :
1. Mahasiswa mampu menjelaskan peranan dan konsep pemrograman Computer Vision
dan Machine Vision
Tujuan Instruksional Khusus :
1. Mahasiswa mampu menjelaskan fungsi dari Computer Vision dan Machine Vision
2. Mahasiswa dapat menyebutkan beberapa penerapan dari Machine Viion
3. Menjelaskan fungsi dari program OpenCV
4. Mahasiswa dapat menjelaskan penelitian di bidang Computer Vision
5. Mahasiswa dapat menginstal program OpenCV dan membuat program loading image.
1.1 Mengenal Machine Vision
Kecerdasan Buatan / Artificial Intelligence (AI) merupakan bidang ilmu komputer
yang sangat penting di era kini dan masa akan datang untuk mewujudkan sistem komputer
yang cerdas. Bidang ini telah berkembang sangat pesat di 20 tahun terakhir seiring dengan
kebutuhan perangkat cerdas pada industri dan rumah tangga. Salah satu bidang di AI yang
mengakuisisi, mengolah, memahami dan untuk mengambil informasi/keputusan dikenal
sebagai Computer Vision. Oleh karena itu, buku ini memaparkan berbagai pandangan
modern dan hasil riset terkini di bidang Computer Vision yang perlu dikuasai oleh para
akademisi, mahasiswa, pelajar dan bahkan praktisi.
Okasha pada buku Philosophy of Science: A Very Short Introduction, menyatakan
bahwa Manusia sebagai mahluk Tuhan paling sempurna memiliki keingintahuan yang
tinggi serta daya rekayasa yang luar biasa, yang berujung pada munculnya pengetahuan dan
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
2
disiplin ilmu. Pada jaman Nabi Muhammad dan para pengikut sesudah jamannyapun,
sudah ada para pemikir yang mengembangkan ilmu pengetahuan dengan sangat dahsyat,
sehingga Arab pernah menjadi pusat ilmu pengetahuan dunia di Abad pertengahan.
Disiplin-disiplin yang saat ini dipelajari manusia saat ini terbagi menjadi 3 kelompok yaitu
ilmu Sains (bersumber dari bahasa latin scientia yang berarti memiliki pengetahuan atau
mengetahui), Ilmu Kesusastraan dan Seni serta kelompok ketiga seperti Metafisika, Filsafat
dan Agama. Ketiga disiplin ilmu tersebut berkembang pesat seiring dengan aktifitas
penelitian dan pengungkapan gagasan dan ide baik melalui buku, jurnal maupun media.
Kata “intelligence” berasal dari bahasa Latin “intelligo” yang berarti “saya paham”.
Berarti dasar dari intelligence ialah kemampuan untuk memahami dan melakukan aksi.
Sebenarnya, area Kecerdasan Buatan (Artificial Intelligence) atau disingkat dengan AI,
bermula dari kemunculan komputer sekitar tahun 1940-an, meskipun sejarah
perkembangannya dapat dilacak sejak zaman Mesir kuno. Pada masa ini, perhatian
difokuskan pada kemampuan komputer dalam mengerjakan sesuatu yang dapat dilakukan
oleh manusia. Dalam hal ini, komputer tersebut dapat meniru kemampuan kecerdasan dan
perilaku manusia. Salah satu cabang dari Kecerdasan buatan ialah Computer Vision.
Menurut Forsyth dan Ponece, Computer Vision adalah:
Extracting descriptions of the world from pictures or sequences of pictures
Sedangkan Machine vision:
Machine vision (MV) is the technology and methods used to provide imaging-based
automatic inspection and analysis for such applications as automatic inspection, process
control, and robot guidance in industry.
Machine vision merupakan teknologi untuk inspeksi otomatis berbasiskan image, misalnya
pada:
Pengontrolan proses industri
Pendeteksi nomor plat kendaraan
Wood quality inspection
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
3
Final inspection of sub-assemblies
Engine part inspection
Label inspection on products
Checking medical devices for defects
3D model building (photogrammetry)
Robot Vision
Surveillance (monitor penyusup, analisa trafik jalan tol dan lainnya)
Interaksi manusia dan robot (Human Robot Interaction)
Gambar di bawah menampilkan relasi antara computer vision dengan bidang riset lainnya :
Gambar 1.1 Hubungan Computer vision dengan bidang lainnya
Pada penerapannya, computer vision menerapkan digital image processing untuk
menerapkan algoritma komputer untuk pemrosesan image pada image digital. Menurut
Forsyth dan Ponce, Computer Vision adalah mengekstrak deskripsi dunia dari gambar atau
urutan gambar. Computer vision secara umum merupakan area yang menyertakan metode
metode untuk mengambil, pemroses menganalisa dan memahami image untuk
menghasilkan informasi numeric atau simbolik. Image processing merupakan proses
mengubah image 2D menggunakna metode Edge detection, fourirer transform atau
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
4
enhancement untuk memperoleh output image 2D yang diinginkan (misalnya smoothing
gambar).
Gambar 1.2 Proses Image processing
Setelah image diperoleh lalu diproses, Metode Machine Vision antara lain:
Stitching/Registration: Combining of adjacent 2D or 3D images.
Filtering (e.g. morphological filtering)
Thresholding: Thresholding starts with setting or determining a gray value that will be
useful for the following steps. The value is then used to separate portions of the image,
and sometimes to transform each portion of the image simply black and white based on
whether it is below or above that grayscale value.
Pixel counting: counts the number of light or dark pixels
Segmentation: Partitioning a digital image into multiple segments to simplify and/or
change the representation of an image into something that is more meaningful and easier
to analyze
Inpainting
Edge detection: finding object edges
Color Analysis: Identify parts, products and items using color, assess quality from color,
and isolate features using color.
Blob discovery & manipulation: inspecting an image for discrete blobs of connected
pixels (e.g. a black hole in a grey object) as image landmarks. These blobs frequently
represent optical targets for machining, robotic capture, or manufacturing failure.
Pattern recognition including template matching. Finding, matching, and/or counting specific patterns. This may include location of an object that may be rotated,
partially hidden by another object, or varying in size.
Barcode, Data Matrix and "2D barcode" reading
Output yang umum dari Machine Vision ialah keputusan pass/fail. Penerapan terkini
misalnya pada system industry HP dan Robot Vision, dimana robot dapat melihat
3. Lalu, buat proyek baru untuk OpenCV menggunakan Visual C++ 2012, dengan memilih
create a new Win32 console Application. Klik kanan Project dan pilh properties
Gambar 1.6 Memilih properties
Pada bagian kiri, pilih C/C++ lalu edit Additional Include Directories dengan
menambahkan :
f:\OpenCV246\opencv\build\include\opencv
f:\OpenCV246\opencv\build\include
4. PIlih linker dan tambahkan direktori ke Additional Library Directories:
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
9
f:\OpenCV246\opencv\build\x86\vc10\lib
Gambar 1.7 Menambahkan Additional library Directories
5. Buka Linker dan pilih input, tambahkan Additional Dependencies berikut:
opencv_core246d.lib
opencv_imgproc246d.lib
opencv_highgui246d.lib
opencv_ml246d.lib
opencv_video246d.lib
opencv_features2d246d.lib
opencv_calib3d246d.lib
opencv_objdetect246d.lib
opencv_contrib246d.lib
opencv_legacy246d.lib
opencv_flann246d.lib
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
10
Gambar 1.8 Menambahkan dependencies
Jika sudah selesai, sebagai contoh buatlah program Win32 console application untuk
menampilkan sebuah gambar di Windows, berikut contohnya:
Displayimage.cpp:
// Menampilkan Image menggunakan cvLoadImage
//Dibuat oleh Widodo Budiharto
#include "stdafx.h"
#include <cv.h>
#include <cxcore.h>
#include <highgui.h>
int _tmain(int argc, _TCHAR* argv[]){ // meload image
IplImage *img = cvLoadImage("f:\handsome.jpg");
cvNamedWindow("OpenCV",1);
cvShowImage("OpenCV",img);
//tunggu sembarang input dari user untuk exit
cvWaitKey(0);
cvDestroyWindow("OpenCV ");
cvReleaseImage(&img);
return 0;
}
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
11
Pada program di atas, dibutuhkan library seperti cv.h, sxcore.h dan highgui.h agar fungsi dikenal
oleh compiler. Hasil dari program di atas ialah :
Gambar 1.9 Hasil program menampilkan image
Jika Anda menginginkan pemrograman dengan style 2.x C++, berikut contohnya
menggunakan cv::Mat. Cv::Mat muncul di OpenCV versi terkini yang secara mendasar ialah
sebuah class dengan 2 bagian data, yaitu header matrik (berisi informasi ukuran matrik, metode
yang digunakan untuk menyimpan) dan sebuah pointer ke matrik berisi nilai pixel, berikut
contohnya:
cv::Mat A, C; // membuat bagian header
A = imread(argv[1], CV_LOAD_IMAGE_COLOR); // alokasi matrik
cv::Mat B(A); // menggunakan kopi constructor
C = A; // operator assignment
Pada program di atas, kita meload image menggunakan fungsi imread(). Berikut contoh
program untuk loading image berbasis C++:
DisplayImage2.cpp:
#include "stdafx.h" // Program demo C++ untuk display image.
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
12
#include <stdlib.h>
#include <cv.hpp>
#include <cxcore.hpp>
#include <highgui.h>
int _tmain(int argc, _TCHAR* argv[]){
cv::Mat img = cv::imread("f:\handsome.jpg");
cv::imshow("OpenCV",img);
//tunggu sembarang input dari user untuk exit
cv::waitKey();
return EXIT_SUCCESS;
}
1.4 Digital Image Processing
Sebuah image ialah sebuah array, atau matrik dari piksel persegi yang disusun
dalam format kolom dan baris. Pada image greyscale (8bit), tiap elemen gambar memiliki
intesitas antara 0-255, sedangkan image true color terdiri dari 24 bit( 8x8x8 =16 juta
warna) seperti gambar di bawah :
(a) (b)
Gambar 1.10 Image greyscale 8 bit (a), dan image true color yang tersusun dari 3 greyscale image berwarna merah, hijau dan biru yang dapat berisi hingga 16 juta warna berbeda (b).
Image standar dikenal sebagai image RGB (terdiri dari komponen Merah, Hijau dan biru)
dan memiliki sistem warna 24 bit yang masing masing terdiri dari 8 bit. Representasi
warna bertipe integer bervariasi dari 0-255, sedangkan untuk tipe float berkisar antara 0-1.
Machine Vision, Prinsip dan Penerapan MTI BINUS University - Widodo Budiharto
2015
13
Nilai warna tersebut disimpan pada matrik 3 dimensi yang dilambangkan dalam Intensitas I
(X,Y, channel). Nilai warna RGB dapat dinormalisasi menggunakan persamaan :
� � = ��+�+� � � = ��+�+� � � = ��+�+� (1.1)
Sedangkan proses grascale menggunakan persamaan
���� = �+�+�� (1.2)
Kadang citra yang kita miliki perlu kita olah untuk tujuan tertentu yang dikenal dengan
istilah Pengolahan Citra, misalnya proses penjumlahan nilai RGB pada images. Awal mula
pemrosesan image digital dimulai pada sekitar tahun 1960an pada Jet Propulsion
Laboratory, Massachusetts Institute of Technology, Bell Laboratories, University of
Maryland, untuk aplikasi satelit, medical imaging dan character recognition.
Pemrosesan image digital memungkinkan penggunaan algoritma komplek untuk
pemrosesan image sehingga menghasilkan performa sistem yang robust dan berbiaya
murah. Klasifikasi merupakan metode yang sangat penting dalam image processing.
Pemrosesan image digital umumnya digunakan pada proses :
Classification
Feature extraction
Pattern recognition
Multi-scale signal analysis
Beberapa teknik yang digunakan pada pemrosesan image digital antara lain :