7
BAB 2 LANDASAN TEORI
2.1 Computer Vision Computer Vision didefinisikan sebagai salah satu cabang ilmu pengetahuan yang mempelajari bagaimana computer dapat mengenali obyek yang diamati. Computer Vision adalah ilmu dan teknologi mesin yang melihat, di mana dilihat dalam hal ini berarti bahwa mesin mampu mengekstrak informasi dari gambar yang diperlukan untuk menyelesaikan tugas tertentu. Computer Vision adalah kombinasi antara Pengolahan Citra dan Pengenalan Pola. Pengolahan Citra (Image Processing) merupakan bidang yang berhubungan dengan proses transformasi citra/gambar (image). Proses ini bertujuan untuk mendapatkan kualitas citra yang lebih baik. Sedangkan Pengenalan Pola (Pattern Recognition), bidang ini berhubungan dengan proses identifikasi obyek pada citra atau interpretasi citra. Proses ini bertujuan untuk mengekstrak informasi/pesan yang disampaikan oleh gambar/citra. 2.2 Arsitektur Deteksi Objek Arsitektur deteksi objek dipergunakan dalam membangun metode klasifikasi daerah pada gambar. Dalam arsitektur ini terdapat 2 fase yaitu fase learning dan fase detection. Learning phase menghasilkan binary classifier yang membedakan Object/Non-object decision untuk image pada ukuran tertentu, sementara detection
8
p phase meng ggunakan cllassifier unttuk menentuukan lokasi penentuan hasil multi--scale s scan pada gambar g yangg dites, yanng kemudiann akan digaabungkan unntuk mempeeroleh h hasil akhir deteksi d objekk. Jalannya detektor d akhir tergantungg pada akuraasi dan keanndalan b binary classsifier dan baggaimana mulltiple detectiion digabunggkan saat meenjalani deteection p phase.
2 2.2.1
Learrning Phase
Gambar 0.1 0 Skema Learning L Phaase Lang gkah pertam ma dalam fasse learning adalah a pembbuatan data training. Coontoh d dari training g gambar positif adalahh gambar yang memilikki resolusi tetap t yang berisi b o obyek berpu usat, dan conntoh dari traaining gambbar negatif adalah a gambbar yang biassanya d diambil atau u di-crop secara s acak dari gambaar yang tiddak berisi obyek o yang akan d dideteksi. Binary classiffier dipelajaari menggunnakan contohh-contoh ini. Idealnya, setiap s
9
gambar positif mengandung hanya satu bentuk dari objek, dan memiliki ukuran kira-kira sebesar ukuran gambar. Arsitektur
pada
gambar
yang
simple
memungkinkan
classifier
yang
konvensional untuk digunakan dalam deteksi dan meringankan classifier dalam menanggung tanggungjawab untuk mengubah posisi dan skala dalam usahanya menjadi invariant (meskipun invariance dalam berbagai tipe transformasi, perubahan pose dan sudut pandang, serta iluminasi masih harus dipastikan). Ini berarti classifier bekerja dalam koordinat yang relatif (posisi feature yang relatif terhadap pusat dari gambar tertentu). Dengan kata lain, ini berarti bahwa classifier dijalankan pada sejumlah besar gambar, yang dapat membuat hasil akhirnya sensitif terhadap false positive rate dari classifier. Ekstraksi dari feature gambar memproses gambar menjadi feature space berukuran tetap yang mengkodekan bentuk visual. Dalam tahap pengkodean ini akan digunakan metode HOG (histogram of oriented gradients) sebagai descriptor. Vektor dari feature ini akan dimasukkan pada pattern recognition style classifier, salah satunya adalah SVM (Support Vector Machine). Sebagai dasar dari binary classifier, digunakan linear SVM. Linear SVM bekerja langsung terhadap input feature space, memastikan bahwa feature set memungkinkan untuk dipisahkan secara linear, sehingga pengembangan kinerja menyiratkan pengembangan pengkodean. Hasil dari system memberikan keputusan object/non-object dari gambar yang dideteksi.
10
2.2.2
Detection Phase
Gambar 0.2 Skema Detection Phase Pada detection phase, gambar tes yang di-input akan di-scan di semua skala dan lokasi. Untuk setiap skala dan lokasi, vektor feature dihitung pada gambar deteksi, seperti pada fase learning, dan binary classifier akan menghasilkan keputusan object/non-object untuk gambar tersebut. Daerah image yang mengandung object tersebut akan menghasilkan penembakan multiple dan ini dibutuhkan untuk menggabungkan semua hasil deteksi yang tumpang tindih ke dalam sebuah hasil yang pas. Semua hasil deteksi tergantung pada bagaimana gambar tes di-scan dan bagaimana hasil deteksi digabungkan.
11
2.3 Histogram of Oriented Gradients Langkah pertama dalam metode histogram of oriented gradients adalah mengaplikasikan gambar yang dinormalisasi dengan pemerataan global yang opsional yang dirancang untuk mengurangi pengaruh efek pencahayaan. Yang digunakan adalah normalisasi menggunakan kompresi gamma, yaitu dengan cara menghitung akar kuadrat atau log dari setiap channel warna. Kekuatan tekstur gambar biasanya sebanding dengan pencahayaan permukaan lokal sehingga kompresi ini membantu mengurangi efek local shadow dan variasi iluminasi. Langkah kedua adalah menghitung gradient dari gambar. Gradien dari suatu gambar dapat diperoleh dengan penyaringan dengan filter 2 dimensi yaitu filter vertikal dan horisontal. Yang pertama dilakukan adalah gambar dikonversi dalam bentuk grayscale untuk menghindari keharusan untuk mempertimbangkan kontribusi intensitas yang berbeda untuk setiap bidang warna (RGB). Metode yang biasa digunakan adalah 1D centered, dengan matriks seperti berikut: 1, 0, 1 Menggunakan rumus derivatif parsial untuk fungsi image
,
:
a. Untuk sumbu : b. Untuk sumbu : Akan diperoleh nilai
dan
yang digunakan untuk menghitung gradient:
a. Magnitude (besar gradient): b. Orientasi gradient (dalam sudut):
tan
12
Langkah ketiga bertujuan untuk menghasilkan pengkodean yang sensitif terhadap konten gambar lokal, namun tetap tahan terhadap perubahan kecil dalam pose dan penampilan. Gambar dibagi menjadi beberapa daerah dengan ruang kecil yang disebut sel. Untuk setiap sel akan diakumulasikan histogram 1-D lokal atau orientasi tepi pada semua pixel dalam sel. Kombinasi cell-level histogram 1-D membentuk representasi histogram orientasi dasar. Setiap histogram orientasi membagi berbagai sudut gradient menjadi angka tetap dalam bins yang telah ditentukan. Besarnya gradient dari pixel dalam sel digunakan untuk vote ke dalam histogram orientasi. Misalnya akan dibangun histogram yang didistribusikan melalui 0°
180° dengan sejumlah channel
sama dengan 9, maka untuk pemberian vote dalam histogram adalah sebagai berikut: a. Semua gradient dengan besar sudut 0° b. Semua gradient dengan besar sudut 20°
20° memberikan vote untuk channel 1. 40° memberikan vote untuk channel 2.
c. Dan seterusnya. Langkah keempat menghitung normalisasi, yang mengambil kelompok sel dan menormalisasi respon kontras secara keseluruhan. Hal ini dilakukan dengan mengakumulasi ukuran histogram dari grup sel yang disebut blok. Hasilnya akan digunakan unuk menormalisasi setiap sel dalam blok. Cara menghitung normalisasi histogram dalam blok: 1) 2)
L1 – norm:
/
; /
L1 – sqrt:
; yaitu L1 –norm yang diikuti akar kuadrat,
jumlah untuk memperlakukan vector descriptor sebagai distribusi peluang. 3)
L2 – norm:
/
;
13
4 4)
L2 – Hys, L2 – norm diikutti oleh clippping ( dibataasi nilai makksimum
saampai
) dan renormaalizing (Low we, 2004) d mana di
merupakan m v vector yang tidak t dinorm malisasi.
standar ke-k k dan
seebuah
k konstanta keecil. Lang gkah kelimaa yaitu mengumpulkaan descriptoor dari sem mua blok yang m merupakan overlapping o g grid yang mencakup m deetection winndow ke dalaam feature vector v g gabungan untuk u digunnakan dalam m classifierr. Yang diggunakan sebagai descrriptor p parameter series s adalahh R-HOG. Deskriptor D bllok R-HOG menggunakkan sel berbentuk g persegi atau perseggi panjang yang grid y overlapp. R-HOG menghitung m m mendefinisik kan angka sel s pada tiaap blok) darri m mengandung g
bins, dim mana
pixxel sel yangg masing-m masing
adalah paraameter.
Gambar 0.33 R-HOG seel J apabila dengan asum Jadi msi memilikki: 1) Jendela J ukuran 2) Sel S – sel pixeel
(tottal ada
sel)
3) Histogram H 9 channel 4) Blok B sel
grid (yang (
tanpa oveerlap (sebanyyak 7
blok)
14
Akan diperoleh descriptor akhir ukuran: 7
15
2
2
9
3780
2.4 Support Vector Machine SVM merupakan metode learning machine yang bekerja atas prinsip Structural Risk Minimization (SRM) dengan tujuan menemukan hyperlane terbaik yang memisahkan dua buah class (kategori) pada input space. Prinsip dasar SVM adalah linear classifier, dan sedang dikembangkan agar dapat bekerja pada non-linear. Untuk mengecek apakah dalam window tersebut terdapat manusia atau tidak, digunakan SVM classifier untuk memisahkan human dan nonhuman. Pada SVM classifier dan algoritma klasifikasi yang berusaha memisahkan sebuah hyperlane optimal (Cristianini & Shawe-Taylor, 2000).
Gambar 0.4 SVM dalam upayanya mencari hyperlane terbaik untuk memisahkan class -1 dan +1 Gambar 2.4a menunjukkan ada beberapa pattern yang merupakan anggota dari dua buah class: +1 dan -1. Problem klasifikasi dapat diterjemahkan dengan usaha menemukan garis (hyperlane) yang memisahkan kedua class tersebut. Berbagai alternative garis pemisah (discrimination boundaries) ditunjukkan pada gambar 2.4a.
15
Gambar 2.4b menunjukkan penggunaan garis hyperlane yang memisahkan 2 class dengan margin tertentu. Formula dari linear hyperline yang memisahkan kedua class: Nilai
∑
dapat diperoleh dari rumus
di mana
merupakan vektor contoh (HOG descriptor examples),
data training positif atau negatif
1
1 dan
merupakan label
merupakan konstanta pengali
(multiplier). Garis hyperlane akan membagi menjadi 2 class, positif dan negatif. Penentuan class dilakukan dengan cara: a.
Class 1 apabila nilai
0
b.
Class 1 apabila nilai
0
Sementara penentuan margin dilakukan dengan cara:
di mana
adalah margin yang terdekat dengan daerah class
1 (positif) dan
adalah margin yang terdekat dengan daerah class 1 (negatif). Nilai
dan
adalah sama, yang didapat melalui formula:
sehingga untuk memaksimalkan nilai margin, dapat dilakukan dengan cara meminimalisasi nilai
.
2.5 System Development Life Cycle (SDLC) System development life cycle (SDLC) adalah model konseptual yang digunakan dalam manajemen proyek yang menggambarkan tahapan dari proyek pengembangan
16
information system. Salah satu metode yang dipakai untuk mendukung SDLC adalah waterfall model. Waterfall model pertama kali diperkenalkan oleh Winston Royce tahun 1970. Waterfall Model merupakan model klasik yang sederhana dengan aliran sistem yang linier. Output dari setiap tahap merupakan input bagi tahap berikutnya.
Gambar 0.5Waterfall Model Model ini telah diperoleh dari proses rekayasa lainnya dan menawarkan cara pembuatan rekayasa perangkat lunak secara lebih nyata. Model ini melibatkan tim SQA (Software Quantity Assurance) dengan 5 tahapan, dimana setiap tahapan selalu dilakukan verifikasi atau testing. Tahapan model waterfall menurut Roger S. Pressman (Software Engineering : A Practioner's Approach 7th, 2010) meliputi: a.
Communication Langkah ini merupakan analisis terhadap kebutuhan software, dan tahap untuk
mengadakan pengumpulan data dengan melakukan pertemuan dengan customer, maupun mengumpulkan data-data tambahan baik yang ada di jurnal, artikel, maupun dari internet. b.
Planning Proses planning merupakan lanjutan dari proses communication (analysis
requirement), tahapan ini akan menghasilkan dokumen user requirement atau bisa
17
dikatakan sebagai data yang berhubungan dengan keinginan user dalam pembuatan software, di dalamnya sudah termasuk rencana yang akan dilakukan. c.
Modeling Proses modeling ini akan menerjemahkan syarat kebutuhan ke sebuah
perancangan software yang dapat diperkirakan sebelum dibuat coding. Proses ini berfokus pada rancangan struktur data, arsitektur software, representasi interface, dan detail (algoritma) prosedural. Tahapan ini akan menghasilkan dokumen yang disebut software requirement. d.
Constraction Construction
merupakan
proses
membuat
kode.
Coding
merupakan
penerjemahan desain dalam bahasa yang bisa dikenali oleh komputer. Dilakukan oleh programmer yang akan menerjemahkan transaksi yang diminta oleh user. Tahapan inilah yang merupakan tahapan secara nyata dalam mengerjakan suatu software. Dalam artian penggunaan komputer akan dimaksimalkan dalam tahapan ini. Setelah pengkodean selesai maka akan dilakukan testing terhadap sistem yang telah dibuat tadi. Tujuan testing adalah menemukan kesalahan-kesalahan terhadap sistem tersebut dan kemudian bisa diperbaiki. e.
Deployment Tahapan ini bisa dikatakan final dalam pembuatan sebuah software atau sistem.
Setelah melakukan analisis, desain dan pengkodean maka sistem yang sudah jadi akan
18
digunakan oleh user. Kemudian software yang telah dibuat harus dilakukan pemeliharaan secara berkala.
2.6 Emgu CV Emgu CV merupakan lintas platform, yang memungkinkan para programmer memanggil fungsi dalam intel openCV image processing library agar dapat digunakan pada bahasa compatible .NET seperti c#, VB, dan lainnya. Keuntungan menggunakan library Emgu CV adalah: a.
Emgu CV seluruhnya dibuat berdasarkan bahasa C#, namun dapat digunakan oleh bahasa yang lain juga, seperti VB.NET, C++, dan IronPython.
b.
Dalam image processing, image class menggunakan generic parameter yaitu Color dan Depth.
c.
Setelah melakukan proses pada image, Emgu CV secara otomatis akan melakukan dispose image.
d.
Serialisasi XML, digunakan apabila program dikerjakan dalam WCF (Windows Communication Fundation), akan digunakan dalam layanan web, dan membutuhkan pengembalian nilai dalam bentuk image
sebagai parameter. Ini juga dapat berguna untuk penggunaan perangkat lunak pengamatan jarak jauh yang menggunakan kelas capture untuk menangkap gambar dari kamera. Emgu CV memiliki 2 layer, layer 1 berisi function, structure, dan enumeration
mappings yang secara langsung merefleksikan yang ada di openCV, sementara layer 2 berisi class yang merupakan keuntungan dari .NET world.