BAB 2
LANDASAN TEORI
Bab ini membahas tentang teori penunjang dan penelitian sebelumnya yang berhubungan dengan penerapan viola-jones untuk pendeteksian manusia.
2.1. Computer Vision Computer Vision merupakan salah satu cabang ilmu pengetahuan yang mempelajari bagaimana komputer dapat mengenali objek yang diamati dengan cara mengekstrak informasi dari objek tersebut. Cabang ilmu ini jika dikaitkan dengan Artificial Intelligence akan mampu menghasilkan Visual Intelligence System. Computer Vision adalah kombinasi antara : a.
Pengolahan Citra Merupakan bidang yang berhubungan dengan proses transformasi citra/gambar yang bertujuan untuk mendapatkan kualitas citra yang lebih baik.
b.
Pengenalan Pola Merupakan bidang yang berhubungan dengan proses identifikasi obyek pada citra atau interpretasi citra untuk mengekstrak informasi dari citra tersebut.
2.2. Pendeteksian Objek Pendeteksian Objek merupakan suatu teknologi komputer yang berhubungan dengan computer vision dan image processing, yang berhubungan dengan mendeteksi suatu objek dalam citra. Metode yang digunakan untuk pendeteksian objek pada perancangan aplikasi ini adalah metode Viola-Jones.
Universitas Sumatera Utara
7 2.3. Citra Citra adalah suatu representasi dua dimensi yang menggambarkan suatu visualisasi objek. Sebagai keluaran suatu sistem perekaman data, citra dapat bersifat optik berupa foto, bersifat analog berupa sinya-sinyal video seperti gambar pada monitor televisi atau bersifat digital yang dapat langsung disimpan pada suatu media penyimpanan. Di dalam citra tersusun piksel-piksel dalam larik dua dimensi, indeks baris dan kolom (x, y) dari sebuah piksel yang dinyatakan dalam bilangan bulat. Secara umum citra terdiri dari dua yaitu citra analog dan citra digital.
2.3.1. Citra Analog Citra analog adalah citra yang bersifat continoue seperti gambar pada monitor televisi, foto sinar X, foto yang tercetak di kertas foto, lukisan, pemandangan alam, hasil CT scan dan sebagainya. Citra analog tidak dapat dipresentasikan dalam komputer sehingga tidak bisa diproses di komputer secara langsung. Oleh sebab itu, citra analog terlebih dahulu di konversi dari analog ke digital sehingga citra tersebut dapat diproses di komputer.
2.3.2. Citra Digital Citra digital adalah gambar dua dimensi yang bisa diolah di komputer sehingga himpunan/diskrit nilai digital. Citra digital merupakan citra berupa suatu matriks dimana indeks baris dan kolomnya menyatakan suatu titik pada citra tersebut dan elemen matriks menyatakan tingkat keabuan pada titik tersebut. Matriks yang dinyatakan pada citra digital berupa matriks berukuran N (baris/tinggi) x M (kolom/lebar).
2.4. Elemen Citra Digital Citra digital mengandung sejumlah elemen-elemen dasar. Elemen-elemen dasar inilah yang dimanipulasi dalam pengolahan citra. Elemen-elemen dasar yang penting dalam citra digital diantaranya adalah :
Universitas Sumatera Utara
8 a.
Kecerahan Kecerahan disebut juga sebagai intensitas cahaya. Kecerahan pada suatu titik (piksel) di dalam suatu citra sebenarnya adalah intensitas rata-rata dari suatu area yang melingkupinya. Sistem visual manusia menyesuaikan dirinya dengan tingkat kecerahan mulai dari yang paling rendah sampai yang paling tinggi dengan jangkauan sebesar 1016.
b.
Kontras Kontras adalah elemen yang menyatakan sebaran terang dan gelap dalam suatu citra. Citra dengan kontras rendah memiliki ciri sebagian besar komposisi citranya terang atau gelap. Citra dengan kontras yang baik memiliki komposisi terang dan gelap yang merata.
c.
Kontur Kontur adalah keadaan yang ditimbulkan oleh perubahan intensitas pada pikselpiksel yang bertetangga. Karena adanya perubahan intensitas inilah, maka tepitepi (edge) objek pada citra dapat dideteksi.
d.
Warna Warna adalah persepsi yang dirasakan oleh sistem visual manusia terhadap panjang gelombang cahaya yang dipantulkan oleh objek. Setiap warna mempunyai panjang gelombang yang berbeda-beda. Warna yang diterima oleh sistem visual manusia (mata) merupakan hasil kombinasi cahaya dengan panjang gelombang yang berbeda-beda. Kombinasi warna yang memberikan rentang warna yang paling lebar adalah red (R), green(G), dan blue(B).
e.
Bentuk Merupakan properti intrinsik dari objek tiga dimensi untuk sistem visual manusia karena manusia lebih sering menginterpretasikan suatu objek berdasarkan bentuknya daripada elemen lainnya. Pada umumnya citra yang dibentuk oleh mata merupakan citra dwimatra (2 dimensi) sedangkan objek yang dilihat umumnya berbentuk trimatra (3 dimensi).
f.
Tekstur Tekstur dicirikan sebagai distribusi spasial dari derajat keabuan di dalam sekumpulan piksel-piksel yang bertetangga sehingga tekstur tidak dapat didefinisikan untuk sebuah piksel. Tekstur merupakan karakteristik untuk menganalisa permukaan berbagai jenis citra objek. Sistem visual manusia pada
Universitas Sumatera Utara
9 hakikatnya tidak menerima informasi citra secara independen pada setiap piksel. melainkan suatu citra dianggap sebagai suatu kesatuan. Resolusi citra yang diamati ditentukan oleh skala pada tekstur sebagai dipersepsi.
2.5. Citra Warna Citra warna adalah citra digital yang setiap pikselnya mengandung informasi warna yang biasanya dibentuk paling sedikit tiga saluran warna misalnya RGB. Citra warna memiliki beberapa jenis bit per piksel yaitu: a.
Citra Warna (8 bit)
Setiap piksel dari citra warna (8 bit) hanya diwakili 8 bit dengan jumlah warna maksimum yang dapat digunakan adalah 256 warna. Ada dua jenis citra warna 8 bit yaitu : ο· Citra warna 8 bit dengan menggunakan 256 palet warna dimana setiap paletnya memiliki pemetaan nilai RGB tertentu. Model ini sering digunakan. ο· Citra warna 8 bit dimana setiap piksel memiliki format 8 bit seperti Tabel 2.1. Tabel 2.1. Citra Warna 8 bit
b.
Bit-7
Bit-6
Bit-5
Bit-4
Bit-3
Bit-2
Bit-1
Bit-0
R
R
R
G
G
G
B
B
Citra Warna (16 bit)
Citra warna 16 bit atau citra highcolor memiliki piksel yang diwakili dengan 2 byte memori (16 bit). Jumlah warna 16 bit adalah 65.536 warna. Dalam formasi bitnya, nilai merah dan biru mengambil 5 bit di kanan dan kiri. Komponen hijau memiliki 5 bit ditambah 1 bit ekstra. Pemilihan komponen hijau dengan deret 6 bit dikarenakan penglihatan manusia lebih sensitive terhadap warna hijau. Model citra warna 16 bit tampak seperti Tabel 2.2. Tabel 2.2. Citra Warna 16 bit Bit -15
Bit -14
Bit -13
Bit -12
Bit -11
Bit -10
Bit -9
Bit -8
Bit -7
Bit -6
Bit -5
Bit -4
Bit -3
Bit -2
Bit -1
Bit -0
R
R
R
R
R
G
G
G
G
G
G
B
B
B
B
B
Universitas Sumatera Utara
10 c.
Citra Warna (24 bit)
Setiap piksel dalam citra warna 24 bit diwakili dengan 24 bit sehingga jumlah variasi warna per pikselnya adalah 16.777.216. Variasi ini sudah lebih dari cukup untuk memvisualisasikan seluruh warna yang dapat dilihat dalam penglihatan manusia. Penglihatan manusia dipercaya hanya dapat membedakan hingga 10 juta warna saja. Setiap poin informasi piksel (RGB) disimpan ke dalam 1 byte data. 8 bit pertama menyimpan nilai biru, 8 bit kedua menyimpan nilai hijau, dan 8 bit terakhir menyimpan nilai merah.
2.6. Citra Abu-abu (Grayscale Image) Citra abu-abu adalah suatu format citra atau gambar dimana tiap-tiap piksel hanya terdiri dari 1 channel warna yaitu abu-abu. Warna abu-abu merupakan warna pada ruang RGB dengan komponen merah, hijau, dan biru memiliki intensitas yang sama. Pada citra beraras keabuan hanya perlu menyatakan nilai intensitas untuk tiap piksel sebagai nilai tunggal. Untuk mengubah citra warna yang mempunyai nilai R, G, B menjadi citra abu-abu, perlu dilakukan grayscaling yaitu penyusunan citra yang sebelumnya 3 matriks akan berubah menjadi 1 matriks saja. Pengubahan citra warna menjadi citra abu-abu biasanya mengikuti aturan sebagai berikut: ππππ¦π ππππ = 0.299π
+ 0.587πΊ + 0.114π΅
(2.1)
2.7. Metode Viola-Jones Metode Viola-Jones merupakan sebuah metode yang digunakan untuk mendeteksi objek seperti manusia, mobil, roda mobil, wajah, dan sebagainya yang terdapat dalam EmguCV dan OpenCV. Metode ini banyak digunakan untuk mendeteksi objek karena metode ini memiliki algoritma yang efisien sehingga tidak memerlukan waktu yang banyak untuk melakukan proses pendeteksian objek. Proses pendeteksian objek dilakukan dengan membandingkan citra terhadap sebuah pengklasifikasi yang dibentuk dari data pelatihan.
Universitas Sumatera Utara
11 Dalam metode viola-jones terdapat empat kontribusi utama yaitu : ο·
Haar-like Features
ο·
Citra Integral (Integral Image)
ο·
Adaptive Boosting atau Adaboost
ο·
Cascade of Classifier
2.7.1. Haar-Like Feature Haar Feature merupakan fitur yang didasarkan pada Wavelet Haar (Viola et al, 2001). Wavelet Haar adalah suatu fungsi matematika yang berbentuk kotak, bersama-sama membentuk basis. Wavelet Haar hampir sama dengan fungsi Fourier yaitu meletakan target di dalam interval, kemudian melakukan proses. Awalnya pengolahan gambar hanya memproses nilai RGB dari setiap piksel yang dimiliki oleh gambar tersebut. Proses ini kurang efisien karena menggunakan sumber yang besar sedangkan hasil yang diperoleh kecil. Oleh sebab itu, Viola dan Jones mengembangkan proses pengolahan gambar yakni Haar-Like Feature. Setiap Haar-Like Feature terdiri dari gabungan kotak-kotak hitam dan putih. Ada tiga tipe kotak feature dalam Haar: a.
Tipe two-rectangle feature (horizontal, vertikal)
b.
Tipe three-rectangle feature
c.
Tipe four-rectangle feature
Gambar 2.1. Variasi Fitur pada Haar (LienHart et al, 2002)
Universitas Sumatera Utara
12 Haar-Like Feature mengolah gambar dalam kotak-kotak dimana dalam satu kotak terdapat beberapa piksel. Kemudian setiap kotak tersebut diproses yakni setiap piksel-piksel dalam wilayah kotak tersebut dijumlahkan dan dilakukan proses perhitungan sehingga didapatkan perbedaan nilai yang menandakan daerah gelap dan terang. Perbedaan inilah yang dijadikan sebagai dasar untuk menandai wilayah tersebut yang nantinya dijadikan sebagai dasar dalam image processing.
2.7.2. Citra Integral (Integral Image) Citra integral adalah representasi tengah untuk citra dan terdiri dari jumlah nilai keabu-abuan dari citra N dengan tinggi y dan lebar x dimana nilai tiap pikselnya merupakan akumulatif dari nilai piksel atas dan kirinya. Citra integral digunakan untuk pendeteksian fitur secara cepat. Perumusannya adalah sebagai berikut: π¦ πΌ(π₯, π¦) = βπ₯π₯ β² =0 βπ¦ β² =0 π(π₯ β² , π¦ β² )
(2.4)
Citra integral dihitung secara rekursif: πΌ(π₯, π¦) = π(π₯, π¦) + πΌ(π₯, π¦ β 1) + πΌ(π₯ β 1, π¦) β πΌ(π₯ β 1, π¦ β 1)
(2.5)
dimana : πΌ(β1, π¦) = πΌ(π₯, β1) = πΌ(β1, β1) = 0
(2.6)
Representasi tengah dari citra ini memungkinkan perhitungan nilai fitur kotak D pada Gambar 2.2 dapat dihitung dengan empat refrensi perhitungan.
Gambar 2.2. Perhitungan Citra Integral
Universitas Sumatera Utara
13 Nilai dari citra integral pada lokasi 1 adalah penjumlahan dari piksel dalam persegi panjang A. Nilai pada lokasi 2 adalah A+B, nilai pada lokasi 3 adalah A+C, dan nilai pada lokasi 4 adalah D-B-C+A. Dengan menggunakan citra integral, perhitungan fitur akan sangat efektif dan efisien. Proses pencarian nilai fitur ini dilakukan secara iteratif mulai dari ujung kiri atas gambar hingga ujung kanan bawah.
2.7.3. Adaptive Boosting (Adaboost) Adaboost merupakan salah satu metode boosting yang dapat meningkatkan ketelitian dalam proses klasifikasi dan prediksi dengan cara membangkitkan kombinasi dari suatu model, tetapi hasil klasifikasi dan prediksi yang dipilih adalah model yang memiliki nilai bobot paling besar. Dalam metode viola-jones, adaboost digunakan untuk memilih fitur yang spesifik yang akan digunakan untuk mengatur nilai ambangnya (treshold). Adaboost menggabungkan banyak classifier yang lemah untuk membentuk sebuah classifier yang kuat. Classifier yang lemah adalah suatu jawaban dengan tingkat kebenaran yang kurang akurat (Viola et al, 2001). Adaboost memilih sejumlah classifier yang lemah untuk disatukan dan menambahkan bobot pada setiap classifier sehingga akan terbentuk sebuah classifier yang kuat. Salah satu metode yang cepat untuk dapat beradaptasi dengan classifier yang lemah adalah dengan membatasi classifier yang lemah ke set klasifikasi fungsi yang masing-masing bergantung pada fitur tunggal. Adapun algoritma adaboost adalah sebagai berikut : ο·
Input citra (π₯1 , π¦1 ) , ...., (π₯π , π¦π ) dimana π¦π = 0,1 untuk data negatif dan positif.
ο·
Inisialisasikan bobot π€1 ,π =
1
,
1
2π 2π
untuk π¦π = 0,1 berturut-turut, dimana m dan l
adalah jumlah citra positif dan negatif. ο·
Untuk π‘ = 1, β¦ , π βΆ 1. Normalisasikan bobot : π€π‘ ,π =
π€π‘ ,π βππ=1 π€π‘ ,π
(2.7)
π€π‘ adalah distribusi probabilitas. 2. Untuk setiap fitur, π, latih sebuah classifier βπ yang dibatasi agar menggunakan sebuah fitur tunggal. Kesalahan dievaluasi sehubungan dengan :
Universitas Sumatera Utara
14
(2.8)
π€π‘ , ππ = β π€π |βπ (π₯π ) β π¦π |. π
3. Pilih classifier, βπ‘ , dengan kesalahan terendah ππ‘ . 4. Perbaharui bobot : (2.9) Dimana ππ = 0 jika data π₯π diklasifikan dengan benar dan ππ = 1 jika sebaliknya, dan π½π‘ = ο·
ππ‘ 1βππ‘
.
Pembentukan classifier kuat : (2.10) 1
dimana πΌπ‘ = πππ π½
π‘
2.7.4. Cascade of Classifier Cascade of classifier merupakan sebuah classifier yang telah terlatih dengan ribuan contoh objek yang terdiri dari objek yang positif dan objek yang negatif. Dalam algoritma Viola-Jones dilakukan penggabungan atau kombinasi cascade of classifier supaya kecepatan dari proses pendeteksian dapat meningkat yaitu dengan cara memusatkan perhatian pada daerah-daerah dalam gambar yang berpeluang saja. Hal ini berguna untuk menentukan dimana letak objek yang dicari pada suatu gambar. Karakteristik dari algoritma Viola-Jones adalah adanya klasifikasi bertingkat seperti tampak pada Gambar 2.3. Klasifikasi pada algoritma ini terdiri dari tiga tingkatan dimana tiap tingkatan mengeluarkan subcitra yang diyakini bukan objek. Hal ini dilakukan karena lebih mudah untuk menilai subcitra tersebut bukan objek yang ingin dideteksi dari pada menilai apakah subcitra tersebut merupakan objek yang ingin dideteksi (Dzulkamain et al, 2011). 50%
IMAGE SUB-WINDOW
20%
2%
1 Feature
5 Feature
20 Feature
NON-OBJECT
NON-OBJECT
NON-OBJECT
OBJECT
Gambar 2.3. Alur Kerja Klasifikasi Bertingkat (Dzulkamain et al, 2011)
Universitas Sumatera Utara
15 Pada klasifikasi fitur (tingkat) pertama, tiap subcitra akan diklasifikasikan menggunakan satu fitur. Jika hasil nilai fitur dari filter tidak memenuhi kriteria yang diinginkan maka hasil ditolak. Pada klasifikasi ini akan disisakan kira-kira 50% subcitra untuk diklasifikasi di tahap kedua. Subcitra yang lolos dari tingkat pertama akan diklasifikasikan lagi pada tahap kedua dimana pada tahap kedua jumlah fitur yang digunakan lebih banyak. Semakin bertambah tingkat klasifikasi maka fitur yang digunakan semakin banyak. Jumlah subcitra yang lolos dari klasifikasi pun akan berkurang hingga mencapai 2%.
2.8. OpenCV OpenCV (Open Source Computer Vision) adalah sebuah API (Application Programming Interface) library yang sudah sangat familiar pada pengolahan citra dinamis secara real-time, yang dibuat oleh Intel. Fitur-fitur yang dimiliki oleh OpenCV antara lain : a.
Manipulasi data citra seperi alokasi, copying, setting, dan konversi.
b.
Mendukung input dan ouput citra maupun video.
c.
Manipulasi matriks dan vektor serta aljabar linear.
d.
Data struktur dinamis (lists, queues, sets, trees, graphs)
e.
Pemroses citra yang fundamental (filtering, edge detection, corner detection, sampling and interpolation, color conversion, morphological operations, histograms, image pyramids).
f.
Analisis struktur (connected components, contour processing, distance transform, various
moments,
template
matching,
Hough
transform,
polygonal
approximation, line fitting, ellipse fitting, Delaunay triangulation). g.
Kalibrasi kamera (calibration patterns, estimasi matriks yang fundamenal, estimasi homography, stereo correspondence).
h.
Analisis gerakan (optical flow, segmentation, tracking).
i.
Pengenalan objek (eigen-methods, HMM).
j.
Graphical User Interface (tampilan citra/video, penanganan keyboard dan mouse, scroll-bars).
k.
Pelabelan citra (line, conic, polygon, text-drawing).
Universitas Sumatera Utara
16 Adapun struktur dan konten dalam OpenCV dapat dilihat pada Gambar 2.4
Gambar 2.4. Struktur dan Konten OpenCV (Bradski et al, 2008) 1.
CV Merupakan komponen yang berisikan algoritma dasar pengolahan citra digitial dan computer vision yang lebih tinggi.
2.
ML Merupakan komponen yang berisikan pustaka dari machine learning yang memiliki algoritma berikut : a. Naive Bayes Classifier b. K-nearest Neighbor algorithm c. Support Vector Machine d. Decision Trees e. Boosting f. Random forest g. Expectation Maximization h. Neural Networks
3.
Highgui Berisikan fungsi dan rutin I/O untuk penyimpanan dan pembacaan video dan gambar.
Universitas Sumatera Utara
17 4.
CXCORE Berisikan struktur data, support XML dan fungsi-fungsi grafis.
Komponen yang lain adalah CvAux yang berisikan both defunct areas (embedded HMM face recognition) dan algoritma eksperimental (background/foreground segmentation).
2.9. Penelitian Terdahulu Penelitian tentang pendeteksian objek manusia telah banyak dilakukan. Beberapa penelitian melakukan pendeteksian objek manusia dengan mendeteksi wajah atau badan atas dan bawah, atau bagian tertentu dari objek manusia. Pada tahun 2005, Chen et al menggunakan metode invarian dari iluminasi dan pose untuk mendeteksi wajah manusia. Adapun langkah-langkah metode tersebut adalah: 1. Bentuk garis/luar objek ditandai secara manual pada gambar contoh objek. 2. Kemudian gambar tersebut diekstraksi dan ditransformasikan menjadi gradient image. 3. Gradient image tersebut didekomposisikan ke dalam beberapa besaran skalar dimana tiap gambar memiliki fase kuantisasi yang sama. Hal ini sama dengan pencarian fitur. 4. Kemudian algoritma boosting digunakan untuk mengklasifikan nilai fitur tersebut untuk mendapatkan bagian objek atau tidak. Aziz et al (2011) menggunakan metode skeleton graph untuk mendeteksi objek manusia yang digunakan untuk menghitung jumlah orang dalam keramaian. Adapun langkah-langkah metode skeleton graph adalah sebagai berikut: 1. Melakukan proses substraksi latar belakang yaitu penghilangan latar belakang dari gambar yang dimasukan. 2. Menghitung nilai skeleton graph dari setiap wilayah yang terdeteksi ada manusia dengan menggunakan metode yang dibuat oleh Thome et al (Thome et al, 2008).
Universitas Sumatera Utara
18 3. Kemudian titik dari skeleton tersebut diklasifikasikan berdasarkan derajat lingkungan titik tersebut. Hal ini dilakukan untuk mendeteksi bagian objek dari wilayah yang terdeteksi manusia. 4. Tahap yang terakhir adalah melakukan head tracking karena file yang diinput adalah video.
Pada tahun 2012 Subburaman et al (Subburaman et al, 2012) melakukan penelitian mengenai perhitungan orang dalam keramaian menggunakan sebuah generic head detector. Adapun langkah-langkah dari metode generic head detector adalah: 1. Mengubah gambar warna menjadi abu-abu (gray scale image). 2. Pencarian titik penting pada gambar dengan metode interest point detector yang berguna untuk mengurangi lokasi pencarian sehingga pencarian wilayah yang mirip dengan bagian objek lebih cepat. 3. Menghilangkan latar belakang dari gambar yang berkelanjutan (video) dengan melakukan proses background substraction. Hal ini berguna untuk mengurangi wilayah pencarian dan meningkatkan kecepatan untuk pendeteksian manusia dalam gambar. 4. Menghitung saluran LUV, saluran intensitas kemiringan, dan enam saluran kemiringan yang terorientasi untuk mendapatkan fitur dari wilayah yang penting. Perhitungan dilakukan dengan menggunakan citra integral sehingga proses lebih cepat. 5. Mengklasifikasikan wilayah dengan adaboost classifier untuk mendapatkan wilayah
yang
memiliki
bagian
objek
atau
tidak.
Universitas Sumatera Utara