PEN D AHULUAN
TIN JAUAN PUSTAKA
Citra Digital
Secara umum citra merupakan gambar pada bidang dua dimensi. Ditinjau dari sudut pandang matematis, citra merupakan sebuah fungsi kontinu dari intensitas radiasi pada bidang dua dimensi. Sumber radiasi mengeluarkan radiasi yang kemudian mengenai objek, objek memantulkan kembali sebagian dari radiasi tersebut, pantulan radiasi ini ditangkap oleh sensor pada alat-alat optik seperti mata, kamera, pemindai (scanner) dan sebagainya. Akhirnya bayangan objek tersebut direkam dalam suatu media tertentu. Citra semacam ini disebut juga sebagai citra pantulan. Jika objek menghasilkan radiasi sendiri, maka citra yang tertangkap oleh sensor disebut sebagai citra emisi. Sedangkan jika objek bersifat transparan, sehingga citra yang dihasilkannya merupakan representasi dari radiasi yang berhasil diserap oleh partikel-partikel dari objek tersebut, maka citra tersebut adalah citra absorpsi. Untuk pembahasan selanjutnya pada seluruh bagian dari riset ini, yang disebut sebagai citra adalah citra pantulan yang ditangkap oleh sensor pada kamera.
Analisis terhadap sebuah citra dapat dilakukan dengan menggunakan bantuan komputer melalui sebuah sistem visual buatan yang biasa disebut dengan
computer vision. Secara umum, tujuan dari sistem visual adalah untuk membuat
model nyata dari sebuah citra. Untuk itu citra yang ditangkap oleh sensor yang masih dalam bentuk fungsi kontinu (analog) harus dirubah terlebih dahulu menjadi fungsi diskret (digital) yang dapat dibaca oleh komputer. Proses ini disebut sebagai digitasi, terdiri dari dua sub proses yaitu sampling dan kuantifikasi. Sampling merupakan proses untuk mengubah sebuah sinyal dalam ruang kontinu menjadi sinyal dalam ruang diskret, hasil dari proses ini adalah citra yang terdiri dari piksel-piksel yang tersusun dalam kolom dan baris. Setiap piksel merupakan hasil penggabungan dari beberapa sinyal yang saling berdekatan. Sekali sebuah citra mengalami proses sampling, tidak dimungkinkan untuk mengembalikannya kedalam bentuk kontinu. Setiap piksel biasanya akan memuat nilai intensitas yang pada awalnya mempunyai range kontinu, artinya sangat banyak kemungkinan nilai yang dapat dimuat oleh setiap piksel.
Sehubungan dengan keterbatasan kemampuan komputer untuk memproses pengkodean nilai-nilai tersebut, dibutuhkan sebuah metode untuk membatasinya. Kuantifikasi merupakan proses untuk mengubah range nilai intensitas yang semula kontinu menjadi range nilai yang diskret sedemikian sehingga dapat diakomodasi oleh sistem pengkodean biner pada komputer. Akhirnya, sebuah citra yang telah melalui proses digitasi disebut sebagai citra digital.
Representasi Citra Digital
Citra digital biasa direpresentasikan sebagai sebuah fungsi dua dimensi
f(x,y), x dan y adalah koordinat spasial yang menunjukkan lokasi dari sebuah piksel didalam sebuah citra dan amplitudo dari f pada setiap pasangan koordinat
(x,y) adalah intensitas dari citra pada piksel tersebut [Gonzales, 2004]. Untuk kebutuhan pengolahan dan analisis, representasi tersebut ditampilkan dalam bentuk matriks sebagai berikut :
…... (1)
Tipe-Tipe Citra Digital
Tiga tipe citra digital yang sering digunakan adalah citra intensitas, citra biner, dan citra RGB. Citra intensitas dan citra biner merupakan citra monokrom (lebih dikenal dengan citra hitam putih) sedangkan citra RGB merupakan citra berwarna.
a. Citra Intensitas, merupakan sebuah matriks dua dimensi berukuran mxn yang setiap selnya berisi nilai intensitas antara 0 sampai dengan 255. Intensitas 0 ditangkap sebagai warna hitam pekat, sedangkan intensitas 255 ditangkap sebagai warna putih terang oleh mata manusia. Nilai intensitas yang ada diantaranya merupakan gradasi dari warna hitam ke putih, atau lebih sering disebut warna keabuan (grayscale).
b. Citra biner, merupakan sebuh matriks dua dimensi berukuran mxn yang setiap selnya berisi kode 0 atau 1 yang merupakan representasi dari nilai logical "benar"
atau "salah", disebut juga tipe data boolean. Nilai 0 sering diasosiasikan dengan warna putih terang (setara dengan nilai 255 pada citra intensitas) sedangkan nilai 1 sering diasosiasikan dengan warna hitam (setara dengan nilai 0 pada citra intensitas). Namun bagaimanapun, asosiasi tersebut bisa berubah-ubah tergantung dari asumsi yang digunakan oleh pengguna. Tidak ada kesepakatan baku yang mengatur bagaimana nilai 0 dan 1 dihubungkan dengan warna hitam dan putih. Umumnya, citra biner terbentuk dari citra intensitas yang mengalami proses tresholding. Proses ini sangat sederhana, pertama-tama tetapkan sebuah nilai T yang terletak diantara range nilai intensitas. Ubah nilai intensitas dari setiap piksel dengan mengikuti aturan berikut:
…... (2)
c. Citra RGB (red, green, blue), merupakan kumpulan dari 3 buah matriks 2 dimensi yang masing-masing memuat nilai intensitas (0 s.d. 255) untuk warna merah, hijau dan biru. Sebuah piksel merupakan komposisi dari ketiga nilai intensitas tersebut (triplet). Jika digunakan sebagai input pada sistem monitor berwarna, triplet tersebut akan menghasilkan warna-warna yang unik.
Principal Components Analisys (PCA)
Ide utama dari principal component analysis (PCA) adalah mengurangi dimensionalitas dari set data yang mengandung banyak sekali variabel yang berinterelasi, dengan tetap mempertahankan sebanyak mungkin informasi (variansi data). Hal ini dicapai dengan mentransformasikan set data ke set variabel data yang baru, dinamakan principal component (PC). Principal Component satu dengan yang lain tidak saling berkorelasi dan diurutkan sedemikian rupa sehingga Principal Component yang pertama memuat paling banyak variasi dari data set. Sedangkan Principal Component yang kedua memuat variasi yang tidak dimiliki oleh Principal Component pertama. (Jolliffe IT, 2002)
Principal Components Analisys 1D (Turk and Pentland, 1991).
Secara matematis ide dasar dari PCA adalah melakukan sebuah transformasi 0, jika f(n)≥T
1, jika f(n)<T g(n) =
linear dari Rm ke Rn dimana n <<< m dengan memaksimumkan variansi data. Misalkan input vector adalah x∈Rm dengan E[x]=0 (zero mean) dan y
adalah vektor berdimensi n, maka transformasi linear dari Rm ke Rn dapat dinyatakan sebagai :
[
⋯a1T⋯ ⋯a2T⋯ ⋮ ⋯an T ⋯]
[
x1 x2 ⋮ xm]
=[
y1 y2 ⋮ yn]
…... (3) dengan : a1=[
a11 a12 ⋮ a1m]
, a2=[
a21 a22 ⋮ a2m]
… an=[
an1 an2 ⋮ anm]
Secara umum transformasi dapat dinyatakan sebagai :
yi=ai T x ; i = 1,2,...,n …... (4) sehingga : varyi = varai T x varyi = E[( ai T xxTai varyi = ai T E xxTai varyi = ai T
∑
ai …... (5) dimanaΣ
adalah matriks covarian.Selanjutnya harus ditentukan ai yang dapat membuat varyi menjadi maksimum dengan kondisi batas ∥a∥=1 atau ai
T
ai=1 atau ai T
ai−1=0 karena ai adalah sebuah unit vektor. Salah satu teknik memecahkan permasalah optimisasi seperti ini adalah menggunakan teknik pengganda lagrange.
Penentuan ai dihitung sebagai berikut : Masalah optimisasi :
Maksimumkan : varyi = aiT
∑
ai Kendala : aiT
ai−1=0
f ai = aiT
∑
ai - λ( aiTai−1 ) ∂F∂ai=0 = 2
Σ
ai - 2 λ ai = 0Σ
ai=
λ ai …... (6)Dari persamaan 6 terlihat bahwa λ adalah nilai-nilai eigen dari matriks
Σ,
sedangai adalah vektor eigen yang bersesuaian dengan masing-masing λ. Jika ruas kiri dan kanan persamaan tersebut dikalikan dengan ai
T
maka akan diperoleh :
ai T
∑
ai=
ai T λ ai kerena ai T ai=1 , maka : ai T∑
ai=
λ varyi = λ …... (7) Dari persamaan (7) tersebut dapat dilihat bahwa nilai eigen dari matriks covarianΣ
adalah varyi . Sehingga agar diperoleh varian maksimum maka ai adalah vetor-vektor eigen yang bersesuaian dengan nilai-nilai eigen terbesar dari matriksΣ.
Principal Components Analisys 2 Dimensi (Yang J. et al, 2004)
Pada teknik pengenalan wajah berbasis 1D PCA, citra wajah 2D akan dirubah terlebih dahulu menjadi vektor citra 1D. Akibatnya ruang vektor citra yang terbentuk akan memiliki dimensi sangat besar. Hal ini menyebabkan perhitungan matriks kovarian secara akurat serta perhitungan nilai eigen dan vektor eigen dari matriks kovarian tersebut menjadi relatif sulit. Berbeda dengan 1D PCA, pada 2D PCA citra wajah tetap direpresentasikan dengan matriks. Hal ini menyebabkan matriks kovarian yang terbentuk menjadi jauh lebih kecil. Dampak dari fakta tersebut, 2D PCA memiliki dua kelebihan dibandingkan dengan 1D PCA, yaitu :
1. Evaluasi terhadap matriks kovarian lebih akurat.
2. Waktu yang diperlukan untuk menghitung nilai eigen dan vektor eigen lebih cepat
✧ormulasi 2D PCA
Misalkan X adalah vektor kolom satuan berdimensi n. PCA 2D melakukan poreksi sebuah matriks acak dari citra A berukuran m x n kepada X dengan transformasi linear .
Y = A X
Sehingga akan diperoleh vektor Y berdimensi m, dinamakan vektor feature dari A. Permasalahannya adalah menetukan vektor X yang memaksimumkan total scatter dari proyeksi data. Secara matematis dapat dinyatakan sebagai :
J(X) = tr (Sx) …... (8) dimana Sx menyatakan matriks kovarian dari vektor feature data-data training, dan
tr (Sx) adalah trace dari Sx. Selanjutnya matriks kovarian Sx dapat dinyatakan sebagai :
Sx = EY−EYY−EYT=E[AX−EAX][AX−EAX]T = E[A−EAX][A−EAX]T , sehingga :
trSx=XT[E[A−EAT
A−EA]]X ... (9) Kemudian didefinisikan sebuah matriks
Gt=E[A−EA T
A−EA] …... (10) Matriks Gt dinamakan matriks kovarian(scatter) citra yang berukuran n x n. Matriks ini dapat dihitung langsung dari M buah citra-citra training
Ajj=1,2,..., M Gt= 1 M
∑
j=1 M Aj−AT Aj− A …... (11)Maka kriteria pada persamaan (8) dapat dinyatakan sebagai :
JX=XTGtX …...(12) Kolom vektor satuan X yang memaksimisasi J(X) disebut sumbu proyeksi yang optimal. Ini berarti total scatter (varians) dari data yang telah diproyeksikan pada
X menjadi maksimum. Sumbu tersebut adalah vektor-vektor eigen dari matriks
Linear Support Vector Machine (SVM)
Konsep SVM dapat dijelaskan secara sederhana sebagai usaha mencari hyperplane terbaik yang berfungsi sebagai pemisah dua buah class pada input space. Gambar berikut memperlihatkan beberapa pattern yang merupakan anggota dari dua buah kelas : +1 dan –1. Pola yang tergabung pada class –1 disimbolkan dengan segitiga, sedangkan pola pada class +1, disimbolkan dengan lingkaran. Problem klasifikasi dapat diterjemahkan dengan usaha menemukan garis
(hyperplane) yang memisahkan antara kedua kelompok tersebut.
Gambar 2 : Support vector, hyperplane dan margin
Hyperplane pemisah dapat dinyatakan dengan persamaan wTxb=0 dimana
w adalah vektor normal dari hyperplane dan b merupakan intercept hyperplane. Misalkan himpunan n buah data training adalah D={ x , y }, anggotanya adalah pasangan xi dan label kelasnya yi untuk i=1,2,...,n, dimana dalam SVM label kelas dinyatakan sebagai +1 dan -1. Selanjutnya linear classifier dapat dinyatakan sebagai
f xi=signwTxib …... (13)
Permasalahan selanjutnya adalah mencari set parameter w , b sehingga f xi=w
T
xib=yi untuk semua i. SVM berusaha mencari fungsi pemisah/hyperplane optimum diantara fungsi yang tidak terbatas jumlahnya yang memisahkan dua kelas objek. Optimal hyperplane kemudian ditentukan terhadap
support vector dengan memaksimumkan margin (ρ). Support vectors adalah data
training yang terletak paling dekat ke hyperplane. Data-data ini merupakan data yang paling sulit untuk diklasifikasikan. Hyperplane yang optimal diperoleh pada
saat jarak support vector negatif ke hyperplane sama dengan jarak support vector
positif ke hyperplane ( ρ/2).
Jarak terpendek setiap vektor data xi ke hyperplane adalah jarak tegak lurus terhadap hyperplane (proyeksi) sehingga paralel dengan vektor normal w .
Unit vektor normal hyperplane adalah w
∥w∥ sehingga jarak proyeksi xi
terhadap hyperplane adalah r w
∥w∥ . Misalkan proyeksi x terhadap
hyperplane adalah x ' maka
x '=x−yr w
∥w∥ …... (14) dimana perkalian dengan y adalah untuk merubah tanda sesuai dengan kelas positif dan negatif.
Gambar 3 : Proyeksi x terhadap hyperplane
Karena x ' terletak pada hyperplane maka
wTx'b=0 sehingga : wTx−yr w
∥w∥b=0 . Setelah persamaan tersebut diatur ulang akan diperoleh :
r=yw
T
xb
∥w∥
atau jarak absolut antar xi a dengan hyperplane adalah
r=
∣
w Txib
∥w∥
∣
…... (15) Jika normal vektor w yang digunakan adalah unit vektor, maka ∥w∥=1 dan jarak xi ke hyperplane adalah∣
wTxib∣
. Agar persamaanx x ' w r w ∥w∥ wTxb=0
menjadi unik, diambil
∣
wT xib∣
=1 untuk setiap support vector xi (vektor terdekat ke hyperplane). Sehingga jarak support vector xi terhadap hyperplaneadalah
∣
w T xib ∥w∥∣
= 1 ∥w∥ dan margin ρ = 2 ∥w∥ .Permasalahan kemudian menjadi bagaimana memilih w dan b agar 2
∥w∥ maksimum dengan kondisi batas :
∣
wT xib∣
≥1 jika xi kelas positif dan∣
wT xib∣
≤1 jika xi kelas negatif. Permasalah ini dapat dirubah menjadi formulasi standar SVM sebagai permasalahan minimisasi : Minimumkan fungsi : J w=1 2∥
w∥
2 Kondisi batas : gi w , b=1−yiwTxib untuk i = 1, 2 … nPermasalahan ini merupakan permasalahan optimisasi fungsi kuadrat dengan kendala linear. Karena J w adalah sebuah fungsi kuadrat, maka akan ada satu global minimum. Salah satu teknik pemecahannya adalah dengan metoda Pengganda Lagrange dan Teorema Karush-Kuhn-Tucker. (Smith, 2004), (Kecman, 2001). Dengan metoda tersebut permasalahan menjadi
maksimumkan : LDλ=
∑
i=1 n λi−1 2∑
i=1 n∑
j=1 n λiλjyiyjxiTxj …... (16) kendala : λi≥0 dan∑
i=1 n λiyi=0 …... (17)dimana λ = { λ1,...λn } adalah pengganda lagrange (variabel baru) untuk masing-masing data. Persamaan (16 ) dapat ditulis menggunakan notasi matriks :
LDλ=
∑
i=1 n λi−1 2[
λ1 ⋮ λn]
T H[
λ1 ⋮ λn]
…... (18)dimana H merupakan matiks berukuran n x n, dengan nilai pada baris ke-i dan kolom ke-j dari matriks H adalah Hij=yiyjxi
T
Selanjutnya LDλ dapat dioptimasi menggunakan Quadratic Programming. Berdasarkan pada λ = { λ1,...λn } optimal yang diperoleh :
• jika λi=0 maka data ke-i adalah bukan support vector • jika λi≠0 dan yiw
T
xib−1=0 maka data ke-i adalah support
vector.
Kemudian w dihitung menggunakan persamaan
w=
∑
i=1 nλiyixi …... (19)
b dapat dihitung menggunakan sembarang λi0 melalui persamaan
b=1
yi−w
T
xi …... (20)
Persamaan hyperplane optimal yang diperoleh adalah :
f x=
∑
xi∈Sλiyixi
Txib …... (21)
dimana S adalah himpunan support vector
S={ xi | λi≠0 }
✮etoda Kernel
Jika suatu kasus klasifikasi memperlihatkan ketidaklinieran, algorithma linear SVM tidak bisa melakukan klasifikasi dengan baik. Metoda kernel adalah salah satu teknik untuk mengatasi hal ini. Dengan metoda kernel suatu data xi di input space dimapping ke feature space F dengan dimensi yang lebih tinggi melalui map φ sebagai berikut
φ : x → φ(x).
Karena itu data x di input space menjadi φ(x) di feature space.
Dari persamaan (16) terlihat bahwa optimisai fungsi LDa hanya bergantung
pada data xi melalui perkalian titik xiTxj . Jika xi dibawa ke dimensi yang lebih tinggi oleh φ(x) maka harus dihitung hasil kali titik pada dimensi yang lebih tinggi tersebut φxi
T
LDa=
∑
i=1 n ai−1 2∑
i=1 n∑
j=1 n aiajyiyjφxiTφxj …... (22)Sering kali fungsi φ (x) tidak tersedia atau tidak bisa dihitung, tetapi dot product dari dua vektor dapat dihitung baik di dalam input space maupun di
feature space. Dot product ini dinamakan kernel dan dinotasikan sebagai Kxi, xj
Sehingga persamaan (19) menjadi :
LDa=
∑
i=1 n ai−1 2∑
i=1 n∑
j=1 n aiajyiyjKxi, xj …... (23)Diharapkan pada dimensi yang lebih tinggi data dapat dipisahkan secara linear.
Gambar 4 : Suatu kernel map mengubah problem yang tidak linier menjadi linier dalam space baru
Gambar 4 mendeskrisikan suatu contoh feature mapping dari ruang dua dimensi ke feature space tiga dimensi. Dalam input space, data tidak bisa dipisahkan secara linier, tetapi bisa dipisahkan di feature space.
Beberapa fungsi kernel yang umum digunakan adalah : • Linear Kxi, xj=xi T xj • Polinamial Kxi, xj=xi T xj1 p
• Radial Basis Function (data dibawa ke dimensi tak hingga)
Kxi, xj=exp
−12σ2∥xi−xj∥ 2
METODE PENELITIAN
Kerangka PemikiranUntuk membangun model, penelitian dilakukan menggunakan tahap penelitian sebagai mana terlihat pada Gambar 5.
Gambar 5 : Tahap Penelitian
Pemahaman permasalahan
Pengambilan data 165 citra ban ganda dan 315 non ban ganda
Klasifikasi menggunakan model SVM Pemilihan model- model 2D PCA – SVM terbaik Pengujian model menggunakan sliding windows detektor Pengukuran akurasi masing-masing model Kelompok A+B (368 citra ban
ganda dan 856 non ban ganda) sebagai citra latih
Kelompok C (184 citra ban ganda dan 428 non ban ganda) sebagai citra uji Cropping 552 citra ban ganda dan
1284 citra non ban banda
15 citra truk dengan ban ganda + 15 citra non ban ganda
Untuk uji detektor 150 citra truk dengan ban ganda +
300 citra non ban ganda untuk pelatihan dan pengujian model
Citra ban ganda(positif) dan non ban ganda (negatif) secara random dikelompokkan dalam tiga kelompok. (A, B dan C)
Analisis hasil dan Penyusunan
Laporan
Matriks transformasi Tahap 1 Citra diruban menjadi citra grayscale dan
dikenai proses histogram equalization
Ekstraksi ciri 2D-PCA tahap 1 (95%, 90%, 85%)
Pelatihan classifier SVM (Linear, Polinom, RBF
Kernel) Ekstraksi ciri 2D-PCA Tahap 2 (95%, 90%, 85%) PC Tahap 1 PC Tahap 2 Matriks transformasi Tahap 1 Classifier SVM yang terlatih
Citra diruban menjadi citra grayscale dan dikenai proses histogram equalization
Ekstraksi ciri 2D-PCA tahap 1 (95%, 90%, 85%)
Ekstraksi ciri 2D-PCA Tahap 2 (95%, 90%, 85%)
PC Tahap 1
PC Tahap 2 Mulai
Tahap Pemahaman Permasalahan
Tahap ini dimulai dengan mengeksplorasi ide-ide dengan membaca jurnal- jurnal penelitian. Dari eksplorasi ini kemudian diperoleh topik untuk memecahkan permasalahan penggolongan kendaraan dengan menggunakan computer vision. Kriteria-kriteria penggolongan kendaraan di jalan tol kemudian ditentukan dari hasil diskusi dengan beberapa petugas gerbang jalan tol dan dokumen-dokumen terkait. Selanjutnya ditetapkan masalah-masalah yang harus dipecahkan secara lebih spesifik. Akhirnya diperoleh gambaran kasar mengenai tujuan penelitian yang akan dilakukan. Selain itu dilakukan juga studi litertur untuk mengetahui penelitian-penelitian sejenis yang pernah dilakukan sebelumnya, melakukan analisis terhadap kelebihan dan kekurangan serta kendala yang dihadapi. Selanjutnya dikembangkan beberapa alternatif sistem yang diperkirakan dapat memberikan solusi terhadap permasalahan yang dihadapi. Dengan mengacu pada fakta-fakta yang ditemukan kemudian dibuat pembatasan permasalahan yang telah dirumuskan sebelumnya agar penelitian memiliki arah yang jelas serta dapat diselesaikan dengan biaya dan waktu yang tersedia.
Tahap Pengumpulan Data
Untuk kepentingan pelatihan dan pengujian model diambial 165 citra trukbergandar dua yang menggunakan ban ganda dan 315 citra non ban ganda. Citra-citra tersebut diambil menggunakan kamera digital dengan resolusi 640 x 480 pixel. Kemara ditempatkan pada posisi sekitar 45O terhadap as roda belakang
seperti pada Gambar 6.
Gambar 6: Posisi kamera untuk pengambilan citra/video
Ketinggian kamera dari tanah/jalan 0.5 meter (setinggi jari-jari roda). Gambar 7
45O
memperlihatkan beberapa citra hasil pengambilan data.
Gambar 7 : Contoh citra positif hasil pengambilan data
Dari citra-citra yang diperoleh kemudian diambil 15 citra truk yang menggunakan ban ganda serta 15 citra non ban ganda untuk keperluan pengujian model tahap kedua. Selanjutnya 150 citra truk yang menggunakan ban ganda dan 300 citra non ban ganda yang tersisa dipakai untuk pembuatan basis data guna pelatihan model dan pengujian tahap pertama.
Tahap Pembuatan Basis Data
Basis data yang digunakan untuk pelatihan dan pengujian model tahap pertama terdiri dari 552 citra ban ganda (positif) dan 1284 citra non ban ganda (negatif) berukuran 150x150 pixel. Citra-citra ban ganda (positif) diperoleh dari pemotongan citra truk yang menggunakan ban ganda hasil pengambilan data. Pemotongan dilakukan di sekitar ban ganda dengan ukuran 150x150 pixel. Proses pemotongan citra dapat dilihat pada Gambar 8.
Gambar 8 : Pemotongan bagian citra ban ganda
Gambar 9 memperlihatkan beberapa contoh citra ban ganda (positif) hasil pemotongan yang dipergunakan untuk proses pelatihan dan pengujian model
tahap pertama.
Gambar 9 : Contoh citra positif hasil pemotongan
Kelompok citra negatif yang terdiri dari 1284 citra bukan ban ganda berukuran 150 x 150 pixel merupakan potongan dari 300 buah citra yang tidak mengandung ban ganda baik kendaraan truk maupun non truk. Beberapa citra non ban ganda hasil pengambilan kamera dapat dilihat pada Gambar 10.
Gambar 10 : Contoh citra negatif hasil pengambilan dengan kamera
Pada Gambar 11 dapat dilihat beberapa contoh citra negatif berukuran 150x150 pixel hasil pemotongan yang dipergunakan untuk proses pelatihan dan pengujian model tahap pertama.
Gambar 11 : Contoh citra negatif hasil pemotongan
Selanjutnya masing-masing kelompok citra (positif dan negatif) dibagi ke dalam tiga bagian secara random, bagian A, B dan C. Bagian A dan B dipakai
sebagai citra pelatihan sedangkan bagian C dipakai sebagai citra uji. Dengan cara tersebut maka akan diperoleh 1224 citra pelatihan (368 citra latih positif dan 856 citra latih negatif) dan 612 citra uji (184 citra uji positif dan 428 citra uji negatif). Semua citra tersebut kemudian dijadikan citra intensitas (grayscale) dan dikenai proses histogram equalization untuk mengurangi pengaruh perbedaan pencahayaan.
Tahap Ekstraksi Ciri
Sebelum data diklasifikasi menggunakan model SVM, terlebih dahulu data diproses menggunakan metode 2D-PCA. Langkah ini dimaksudkan untuk mereduksi dimensi dan mengambil komponen ciri dari data. Pengambilan ciri dengan 2D-PCA dilakukan dalam dua tahap. Pada PCA tahap pertama, 368 buah citra positif berukuran 150 x 150 pixel dan 856 buah citra negatif berukuran 150 x 150 pixel diproses menggunakan algoritma 2D PCA berikut :
Input : - p, jumlah citra pelatihan
- I, matriks citra berukuran m x nx p
- k, jumlah vektor ciri yang dipakai,
Output : - T, matriks transformasi - PC, Principal Components
Algoritma :
1. Hitung matriks citra rata-rata ( I )
I=1
p (I1 + I2 + … + Ip)
6. Hitung matriks covarian
Gt=1
p
∑
j=1p
Ij−IT
Ij−I
7. Hitung dan susun nila ciri matriks covariance : λ1 > λ2 > λ3 > … > λp
8. Hitung vektor ciri yang bersesuaian dengan masing-masing nilai ciri : u1, u2, u3, … , up
9. Ekstraksi ciri
terbesar. Buat matrix transformasi T yang merupakan gabungan dari k
vektor ciri tersebut
T = [ u1, u2, u3, … , uk]
Kemudian hitung matriks ciri/Principal components (PCi) dari masing-
masing citra Ii.
PCi = Ii.T
Script yang merupakan implementasi dari algoritma di atas dapat dilihat pada Lampiran 2 untuk fungsi pca2d.
Dimisalkan jumlah nilai ciri yang diambil untuk tahap pertama adalah a
buah. Sehingga dari 2D PCA tahap pertama ini dihasilkan 368 matriks ciri berukuran 150 x a untuk kelas positif dan 856 matriks ciri berukuran 150 x a
untuk kelas positif.
Selanjutnya setiap matriks ciri yang diperoleh dari PCA tahap pertama, untuk masing-masing kelas, ditranspose dan di masukan kembali pada algoritma 2D PCA. Dimisalkan untuk tahap kedua ini diambil b buah nilai ciri terbesar, maka hasil dari PCA tahap kedua ini adalah 368 matriks ciri berukuran a x b
untuk kelas positif 856 matriks ciri berukuran a x b untuk kelas negatif.
Tahap Pelatihan Pengklasifikasi
Data latih tereduksi yang diperoleh dari proses ekstraksi ciri kemudian divektorkan dan digunakan untuk melatih pengklasifikasi SVM dengan menggunakan kernel linear, polinamial dan RBF. Untuk keperluan pelatihan pengklasifikasi SVM digunakan fungsi svmtrain dari Bioinformatics Toolbox Matlab R2009b.
Tahap Pengujian Model
Pada tahap ini setiap citra uji diekstraksi menggunakan matriks transformasi 2D-PCA dua tahap yang diperoleh dari proses pelatihan. Fitur yang diperoleh kemudian divektorkan dan diklasifikasi menggunakan model SVM yang diperoleh dari proses pelatihan, apakah termasuk kelas citra ban ganda ataukah bukan. Akurasi masing-masing model kemudian dihitung berdasarkan jumlah citra yang terklasifikasi dengan baik. Pengukuran tingkat akurasi masing-masing model
dihitung menggunakan persamaan :
Akurasi= jumlah citra yang terklasifikasi dengan baik
jumlah total citra yang diklasifikasi
Selanjutnya hasil pengukuran yang diperoleh dicatat dan dianalisis.
Dari akurasi masing-masing model kemudian diambil beberapa model yang memiliki tingkat akurasi paling baik. Model-model terbaik yang diperoleh kemudian diuji pada uji tahap kedua untuk mendeteksi keberadaan ban ganda pada citra-citra truk menggunakan teknik sliding window.
Model yang Diujikan
Dalam tahap ekstarksi ciri menggunakan 2D-PCA dua tahap, variabel yang di rubah-rubah adalah presentase nilai ciri (eigen) yang diambil pada masing- masing tahap. Pada penelitian ini dicobakan variasi persentase nilai ciri yang diambil untuk masing-masing tahap adalah 95%, 90% dan 85%. Sementara untuk pengklasifikasi SVM diujikan memakai kernel linear, kuadratik, kubik dan RBF(sigma=1, 5, 8, 10, 20, 30). Dengan skenario tersebut maka akan diperoleh sebanyak 81 model yang akan diujikan sebagaimana terlihat pada tabel 1
Tabel 1. Model-model yang akan diujikan
No PCA 2D No PCA 2D No PCA 2D
Tahap 1 Tahap 2 Tahap 1 Tahap 2 Tahap 1 Tahap 2
1 Linear 0.95 0.95 28 0.95 0.95 55 0.95 0.95 2 0.95 0.90 29 0.95 0.90 56 0.95 0.90 3 0.95 0.85 30 0.95 0.85 57 0.95 0.85 4 0.90 0.95 31 0.90 0.95 58 0.90 0.95 5 0.90 0.90 32 0.90 0.90 59 0.90 0.90 6 0.90 0.85 33 0.90 0.85 60 0.90 0.85 7 0.85 0.95 34 0.85 0.95 61 0.85 0.95 8 0.85 0.90 35 0.85 0.90 62 0.85 0.90 9 0.85 0.85 36 0.85 0.85 63 0.85 0.85 10 Kuadratik 0.95 0.95 37 0.95 0.95 64 0.95 0.95 11 0.95 0.90 38 0.95 0.90 65 0.95 0.90 12 0.95 0.85 39 0.95 0.85 66 0.95 0.85 13 0.90 0.95 40 0.90 0.95 67 0.90 0.95 14 0.90 0.90 41 0.90 0.90 68 0.90 0.90 15 0.90 0.85 42 0.90 0.85 69 0.90 0.85 16 0.85 0.95 43 0.85 0.95 70 0.85 0.95 17 0.85 0.90 44 0.85 0.90 71 0.85 0.90 18 0.85 0.85 45 0.85 0.85 72 0.85 0.85 19 0.95 0.95 46 0.95 0.95 73 0.95 0.95 20 0.95 0.90 47 0.95 0.90 74 0.95 0.90 21 0.95 0.85 48 0.95 0.85 75 0.95 0.85 22 0.90 0.95 49 0.90 0.95 76 0.90 0.95 23 0.90 0.90 50 0.90 0.90 77 0.90 0.90 24 0.90 0.85 51 0.90 0.85 78 0.90 0.85 25 0.85 0.95 52 0.85 0.95 79 0.85 0.95 26 0.85 0.90 53 0.85 0.90 80 0.85 0.90 27 0.85 0.85 54 0.85 0.85 81 0.85 0.85 Kernel SVM Kernel SVM Kernel SVM RBF (Sigma = 1) RBF (Sigma = 10) RBF (Sigma = 5) RBF (Sigma = 20) Polinom orde 3 RBF (Sigma = 8) RBF (Sigma = 30)
Alat yang digunakan
Untuk pengambilan data citra digunakan kamera digital panasonic 8.1 mega pixel. Sedangkan untuk pengolahan data digunakan perangkat keras komputer