8
BAB 2 LANDASAN TEORI
Dalam bab landasan teori ini, diuraikan mengenai teori yang relevan, lengkap,
dan sejalan dengan permasalahan yang dihadapi. Dalam bab ini juga diuraikan
hubungan antara permasalahan dan teknik yang digunakan dalam perancangan
program aplikasi ini.
2.1
2.1.1
IEEE (1993) mendefinisikan software engineering sebagai berikut;
Software engineering: (1) The application of systematic, disciplined,
quantifiable approach to development, operation, and maintenance of software;
that is, the application of engineering to software. (2) the study of approaches
as in (1).
Berangkat dari definisi ini, untuk mengembangkan, menjalankan dan merawat
suatu aplikasi piranti lunak perlu suatu kerangka proses yang sistematis dan dapat
diukur, terlepas dari hal ukuran dan kompleksitas. Alur kerja yang terstruktur dan
membantu manajemen proyek dalam mengestimasi waktu dan sumber.
2.1.1.1 Process Framework
Dalam pembangunan suatu aplikasi, terdapat beberapa proses yang harus
dilakukan, terlepas dari urutannya dan juga besar atau kompleksitas suatu proyek.
(Pressman, Software Engineering : A Practitioner's Approach 7th Edition, 2010)
Berikut generic process framework yang dipakai di sejumlah besar proyek:
|
9
Communication. Kerangka kerja (Process Framework) yang memberatkan
pada kolaborasi dengan stake holder
guna mengumpulkan requirements
suatu
proyek.
Planning. Aktifitas menghasilkan rencana kerja. Menjelaskan tugas teknis
yang akan dilakukan, resiko proyek yang ada, sumber daya yang dibutuhkan, jadwal
kerja dan produk hasil.
Modelling. Proses pembuatan sketsa dari suatu program piranti lunak.
Aktifitas penciptaan model yang memungkinkan developer
dan pelanggan
meningkatkan pemahaman akan software requirement
dan desain yang dihasilkan
software requirement tersebut.
Construction.
Gabungan
aktifitas pengembangan coding
dan testing
yang
diperlukan untuk menemukan error.
Deployment.
Pelanggan melakukan evaluasi atas produk akhir (secara
keseluruhan atau sebagian) dan juga memberikan respon berdasarkan hasil evaluasi.
2.1.1.2 Process Model
Process model
bertujuan untuk menghasilkan roadmap
dari suatu rekayasa
piranti lunak. Kumpulan penugasan, milestones, dan penjadwalan yang diperlukan
untuk mencapai hasil akhir berupa piranti lunak berkualitas.
Developer dan tim menentukan process model
yang sesuai dengan kebutuhan
mereka dan menerapkan process model
tersebut. Namun process model
tersebut
harus diadaptasikan dengan kondisi yang ada agar proyek menjadi efisien (Pressman,
Software Engineering : A Practitioner's Approach 7th Edition, 2010).
Bagian penting dari process model adalah alur atau bagaimana urutan
pelaksanaan proses proses yang telah dijelaskan sebelumnya. Alur pelaksanaan ini
|
![]() 10
biasa dikenal dengan sebut process flow. Process flow
dapat digolongkanmenjadi
tiga yaitu linear process flow, evolutionary process flow, dan paralel process flow.
2.1.1.3 Model
Model RAD adalah adaptasi dari model yang bersifat linear dimana suatu
proses tidak akan berlanjut sebelum proses sebelumnya diselesaikan. Setelah proses
planning, maka pendekatan yang dilakukan adalah membagi piranti lunak menjadi
beberapa komponen. Modelling
dan construction
dilakukan untuk tiap komponen
hingga pada akhirnya disatukan kembali pada proses deployment.
2.1.2
|
11
Unified modelling language adalah kumpulan konvensi pemodelan yang
digunakan untuk menjelaskan sebuah sistem piranti lunak dalam orientasi objek.
(Whitten & Bentley, 2007, hal. 371). UML (Unified Modelling Language) bertujuan
memudahkan stake holder memahami sistem yang akan dibangun, dan untuk
kemudian diserahkan kepada tim developer, yang akan membangun aplikasi tersebut
sesuai desain yang dijelaskan dengan UML.
2.1.2.1 Use-Case Modelling
Use-Case modelling menjelaskan secara umum kapan fungsi-fungsi suatu
sistem digunakan dalam kegiatan bisnis. Pemodelan biasanya mengguakan dua tool
utama yaitu use-case diagram
dan use-case scenario.
(Whitten & Bentley, 2007:
247).
Use-Case diagram menggambarkan sistem sebagai kumpulan dari use-case,
aktor, dan relasi antar komponen tersebut. Apabila use-case diagram
mencoba
menjelaskan sistem dengan gambar dan simbol sederhana, use-case scenario
atau
use-case narrative, berisikan tulisan berisi detail kegiatan bisnis dan menjelaskan
bagaimana pengguna berinteraksi dengan sistem dalam event itu.
a.
Association
Association
menggambarkan interaksi antara use-case
dengan aktor.
Association
dimodelkan dengan simbol garis dengan, atau tanpa tanda panah.
Association
dibagi menjadi dua, yaitu unidirectional association
dan bidirectional
association. Unidirectional association adalah asosiasi yang berlaku satu arah, dan
bidirectional association adalah asosiasi yang berlaku dua arah, dilambangan dengan
garis lurus seperti (2). Association
dengan tanda panah menunjukkan bahwa aktor
sebagai inisiator use case
tersebut. Sedangkan asosiasi tanpa anak panah
menandakan interaksi antara use case dengan aktor penerima.
|
![]() 12
b.
Extends
Extends
digunakan ketika sebuah use case
terdiri dari fungsi kompleks yang
sulit dipahami. Dengan menggunakan extends, use-case akan menghasilkan use-case
baru yang mewakili fungsi tertentu dari use-case
awal. Ini dilakukan untuk
menyederhanakan suatu fungsi. Hasil dari extends disebut dengan extended use case.
c.
Includes/Uses
Includes digunakan ketika terdapat dua atau lebih use-case yang melakukan
langkah yang
sama. Langkah tersebut akan dipisahkan menjadi use-case terpisah
yang disebut abstract use-case. Abstract use-case
berfungsi untuk mengurangi
redundansi pada use-case.
|
![]() 13
d.
Depends On
Depends On
menunjukkan hubungan keterkaitan antara use-case dimana ada
use-case yang tidak dapat dijalankan jika use-case lainnya belum dilakukan.
e.
Inheritance
Inheritance digunakan ketika di antara dua atau lebih aktor terdapat langkah
yang sama. Inheritance
akan membentuk aktor abtrak (abstract actor)
yang
berfungsi untuk menyederhanakan use-case.
|
![]() 14
2.1.2.2 Activity Diagram
Activity diagram adalah diagram yang secara grafik digunakan untuk
menggambarkan rangkaian aliran aktifitas baik proses bisnis, langkah-langkah use-
case, dan logika perilaku dari objek. Setidaknya untuk sebuah use-case dapat dibuat
sebuah activity diagram. Sebuah use-case
dapat dijelaskan dengan dua atau lebih
activity diagram bila kegiatan tersebut terlalu panjang untuk dijelaskan dalam satu
activity diagram. (Whitten & Bentley, 2007: 390-391).
Dalam activity diagram
terdapat beberapa notasi yang berfungsi untuk
mengilustrasikan diagram, yaitu (Whitten & Bentley, 2007: 391):
a.
Initial node
Lingkaran dengan warna padat dan utuh yang merepresentasikan awal dari
proses.
b.
Actions
Kotak berlingkaran yang merepresentasikan langkah individu.
|
15
c.
Flow
Panah dalam diagram yang mengindikasikan perkembangan dalam sebuah
action.
d.
Decision
Bentuk permata dengan satu flow
yang masuk dan dua atau lebih flow
yang
keluar. Aliran yang keluar ditandai untuk mengidentifikasikan kondisi.
e.
Merge
Bentuk permata dengan dua atau lebih flow
yang masuk dan satu flow
yang
keluar. Notasi ini mengkombinasikan flow
yang sebelumnya dipisahkan oleh
decision kemudian diproses sehingga menjadi satu flow.
f.
Fork
Balok hitam dengan satu flow
masuk dan dua atau lebih flow keluar. Tindakan
pada flow paralel di bawah fork dapat terjadi dalam urutan apapun atau bersamaan.
g.
Join
Kotak hitam dengan dua atau lebih flow
yang masuk dan satu flow
keluar.
Tindakan yang masuk ke dalam join harus selesai sebelum proses dilanjutkan.
h.
Activity final
Lingkaran dengan warna padat di dalam lingkaran kosong merepresentasikan
akhir dari proses.
Masih menurut (Whitten & Bentley, 2007), tidaklah merupakan suatu
kewajiban untuk menggambarkan activity diagram
untuk semua use-case
yang ada.
Activity diagram bisadigunakan untuk menjelaskan use-case yang rumit.
Activity diagram
juga dapat digambar dengan membuat garis pemisah untuk
memperjelas sebuah aksi/tindakan yang dilakukan oleh sistem atau oleh aktor. Garis
|
![]() 16
pemisah tersebut sering disebut swim lane karena kemiripannya dengan garis untuk
kompetisi renang. Sebuah activity diagram dapat memiliki tiga atau lebih swim lane.
2.1.2.3 Class Diagram
Class diagram menggambarkan kelas-kelas dalam sistem dan bagaimana class-
class tersebut berinteraksi, serta atribut-atribut dan metode-metode dari kelas-kelas
|
![]() 17
tersebut. Dengan mempelajari class diagram, seorang developer
dapat mengetahui
desain piranti lunak tersebut.
Notasi-notasi yang terdapat di class diagram, yaitu:
a.
Class
Class adalah rancangan dari suatu objek, dimana objek yang diciptakan dari
suatu class
akan memiliki semua yang dimiliki oleh class
tersebut. Secara umum
class digambarkan dengan sebuah kotak yang terdiri dari 3 bagian, yaitu:
Bagian atas: class name.
Bagian tengah: attribute.
Bagian bawah: operational.
b.
Relationship
a.
Association
Hubungan yang terjadi antara class yang ada. Association memungkinkan
suatu class
untuk menggunakan atau mengetahui attribute
atau operation
yang
dimiki oleh class lain. Association juga menggambarkan interaksi yang mungkin
terjadi antara satu class dengan class yang lain. Association digambarkan dengan
sebuah garis tanpa tanda panah.
|
18
b.
Aggregation
Aggregation adalah suatu bentuk relasi yang jauh lebih kuat dari
association. Aggregation
dapat diartikan bahwa suatu class
merupakan bagian
dari class
yang lain namun bersifat tidak wajib. Aggregation digambarkan
dengan sebuah garis yang memiliki bentuk diamond kosong di salah satu ujung
garisnya.
c.
Composition
Relasi ini merupakan relasi yang paling kuat dibandingkan dengan
association maupun aggregation. Pada composition diartikan bahwa suatu class
merupakan bagian wajib dari class
yang lain. Komposisi digambarkan dengan
sebuah garis yang memiliki bentuk diamond utuh di salah satu ujung garisnya.
d.
Generalization
Generalization
memungkinkan suatu class
mewarisi attribute
dan
operation
yang dimiliki oleh base class. Attribute
dan operation
yang bisa
diwarisi oleh suatu class
adalah yang memiliki access modifier public,
protected, dan default. Generalization digambarkan dengan garis yang memiliki
tanda panah tertutup kosong pada salah satu ujungnya yang mengarah ke base
class.
c.
Attribute dan method
dalam class diagram
dapat memiliki salah satu sifat
berikut :
1.
Private (-)
Tidak dapat dipanggil di luar class yang bersangkutan.
2.
Protected (#)
Hanya dapat dipanggil oleh class
yang bersangkutan dan anak-anak yang
mewarisinya.
|
![]() 19
3.
Public (+)
Dapat dipanggil oleh semua class lain.
2.1.2.4 Sequence Diagram
Sequence diagram dapat dipakai untuk memvisualisasikan desain langkah
langkah dan operasi yang dilakukan antar kelas dalam menjalankan fungsi sistem
pada suatu skenario berdasarkan urutan waktu.
Dalam sequence
diagram
terdapat beberapa notasi yang berfungsi untuk
mengilustrasikan diagram, yaitu (Whitten & Bentley, 2007: 660):
a.
Actor
Actor berinteraksi dengan objek kelas interface.
b.
Interface Class
Interface class adalah kotak yang mengindetifikasikan kode kelas dari tampilan
antarmuka.
|
20
c.
Controller Class
Setiap use-case
akan memiliki satu atau lebih controller classes, digambar
dengan notasi yang sama dengan interface class dan diberi tanda <<controller>>.
d.
Entity Classes
Entity classes adalah kotak tambahan untuk setiap kesatuan yang
membutuhkan kolaborasi dalam tahap-tahap sequence.
e.
Messages
Messages digunakan untuk menyampaikan method dari setiap objek.
f.
Activation Bars
Activation bars adalah kotak yang berfungsi untuk mengidentifikasikan waktu
keberadaan dari setiap objek yang ada.
g.
Return Messages
Return messages adalah jawaban atas pesan yang disampaikan oleh suatu objek.
h.
Self-Call
Self-call
adalah sebuah objek yang dapat mengirimkan pesan ke objek itu
sendiri.
i.
Frame
Frame
digunakan untuk menandakan area pada diagram yang mengalami
perulangan (looping), mengalami seleksi (alternative), atau memiliki sebuah pilihan
(optional).
2.1.3
Menurut (Sheindermann, 2005, p74), dalam merancang sistem interaksi
manusia dan komputer yang baik harus memastikan delapan aturan utama (eight
golden rules), yaitu;
a.
Strive for consistensy (berusaha untuk konsisten).
|
21
b.
Enable frequent user touse shortcuts (memungkinkan pengguna untuk
menggunakan jalan pintas).
c.
Offer informative feedback (memberikan umpan balik yang informatif).
d.
Design dialog to yield closure (pengorganisasian aplikasi sehingga pengguna
mengetahui kapan awal dan akhir dari suatu aksi).
e.
Offer simple error handling (menawarkan penanganan kesalahan dan
pencegahan kesalahan yang sederhana).
f.
Permit easy reversal of actions (memungkinkan pengguna untuk kembali ke aksi
sebelumnya dengan mudah).
g.
Support internal locus of control (memungkinkan pengguna untuk menguasai
dan mengontrol sistem).
h.
Reduce short term memory load (mengurangi beban pengguna untuk mengingat/
menghafal untuk jangka waktu pendek).
Intelligence HCI
adalah antar muka yang menggunakan kecerdasan dalam
menerima sensor/perintah guna menolong pengguna dengan cara yang inovatif dan
berbeda. Beberapa contoh seperti penelusuran pergerakan visual dan pengenalan
kata-kata (speech recognition). Besar harapannya aplikasi ini menjadi prototipe
dalam perancangan desain interaksi manusia dankomputer yang baru.
2.1.4
Computer vision
merupakan ilmu yang mempelajari bagaimana komputer
dapat mengenali objek yang diamati (Michael G. Fairhurst, 1998, p5). Computer
vision
bertujuan menghasilkan sistem penglihatan manusia, termasuk mempelajari,
dan mengklasifikasikan citra serta mengambil tindakan terhadap input
visual
(Gonzalez & Wood, 2007). Computer vision
adalah kombinasi antara pengolahan
citra dan pengenalan pola. Computer vision bersama intelegensia buatan (Artificial
|
22
Intelligence) akan mampu menghasilkan sistem inteligen visual (Visual Intelligence
System).
Manusia tidak mengalami kesulitan dalam mengidentifikasi lingkungan sekitar
yang mereka lihat. Namun bagaimana persisnya kerja sistem penglihatan belum
sepenuhnya dipahami. Kesulitan ini ditambah dengan bagaimana ilusi optik terlihat
oleh manusia
(Szeliski, 2011). Sehinggal ilmuwan tidak dapat meniru sistem
penglihatan manusia secara utuh, tetapi harus mencari algoritma mereka sendiri
dalam membangun computer vision.
Metode -
metode Computer vision, terutama dalam pengenalan wajah secara
real time, semakin berkembang dalam dekade terakhir. Aplikasi pengenalan ekspresi
wajah bukan menjadi hal yang tidak mungkin untuk dibangun saat ini.
2.1.5
Sebuah citra dapat dinyatakan sebagai fungsi dua dimensi f (x, y) dimana x
dan y menjadi koordinat ruang dan nilai f pada setiap koordinat (x, y) sebagai gray
level.
Ketika x, y dan nilai f bersifat finite, dan bernilai diskrit, citra tersebut bisa
didefinisikan sebagai citra digital (Gonzalez & Wood, 2007).
Dalam bukunya, Gonzalez dan Wood mengemukakan bahwa tidak suatu aturan
baku antara batasan pengolahan citra dan ilmu lain seperti analisis citra dan
computer vision. Secara sederhana, pengolahan citra adalah disiplin ilmu yang input
dan output dari suatu proses berupa citra.
|
23
2.2
2.2.1
Sistem ini pertama kali dibangun oleh Ekman dan Friesen dan dikemukakan
dalam bukunya pada tahun 1978. Sistem ini mendeskripsikan ekspresi wajah dalam
44 action unit.
2.2.1.1 Action Unit
30 dari 44 action unit dihasilkan dari kontraksi otot wajah. 12 AU untuk wajah
bagian atas, dan sisanya untuk wajah bagian bawah. Wajah bagian bawah terdiri dari
berbagai variasi bentuk mulut hasil dari gerak otot mulut dan rahang bawah
seseorang. Gerak wajah bagian atas dapat terlihat jelas dari pergerakan otot wajah di
sekitar alis dan kelopak mata. Pergerakan pipi juga digolongkan dalam gerak wajah
bagian atas bersama gerak mata dan alis.
Action unit
dapat terlihat secara terpisah, atau dapat berupa kombinasi dan
terdapat sekitar 7000 kombinasi. Kombinasi ini dapat dibagi menjadi dua jenis;
kombinasi aditif dimana gerak otot yang satu tidak menghilangkan action unit yang
lain, dan kombinasi non-aditif yang mengubah tampilan action unit sebelumnya.
Berikut contoh dari Gambar 2.12.
|
![]() 24
|
![]() 25
2.2.2
Manusia menggunakan gerak otot wajah untuk banyak hal, salah satunya
adalah untuk mengekspresikan kondisi emosional. Teori emosi memiliki hubungan
dengan ekspresi wajah berdasarkan penelitian Darwin (1872/1988), dan mereka yang
melanjutkan dan mengembangkan penelitian tersebut
(Ekman P. , 1992). Menurut
Darwin, ekspresi wajah adalah sebagian dari respon kebiasaan (behavioural
response) yang merupakan kombinasi dengan respon tubuh lain
vokal, postur,
gestur, pergerakan otot rangka, dan respon psikologi. Sebagai contoh, manusia
|
26
mengekspresikan jijik dengan membuka mulut, mengernyitkan hidung, dan gerak
lidah seperti respon muntah.
Ekspresi wajah yang terjadi secara spontan dan ekspresi wajah yang dibuat-
buat di mediasi oleh jaringan syaraf yang berbeda. Beberapa gerak wajah cenderung
tidak terlihat dalam ekspresi yang dibuat-buat, dan lebih sulit untuk di tutupi ketika
ingin menyembunyikan kondisi emosional.
Sebagai contoh, ekspresi bahagia yang dibuat dan yang terjadi secara spontan
dapat dibedakan dari gerak AU 6. Otot sekitar mata akan berkontraksi dan
menghasilkan pipi terlihat naik, dan timbul kerutan seperti kaki gagak di samping
kedua mata. Gerak otot wajah ini akan terlihat secara alami bila ekspresi bahagia
terjadi secara spontan.
Ekspresi lain juga memiliki beberapa variasi gerak otot wajah yang sulit untuk
dilakukan secara sengaja, namun akan terjadi secara natural bila kondisi emosional
itu timbul.
Ekspresi ini tidak dilatih dan menjadi bagian dari manusia. Hal ini
dibuktikan dari pengamatan terhadap orang yang mengalami kebutaan sejak lahir.
Walau mereka belum pernah melihat wajah orang bahagia, wajah mereka melakukan
gerak otot yang sesuai untuk tiap ekspresi.
|
![]() 27
Kondisi
Emosional
Deskripsi Darwin
FACS AU yang
bersesuaian dengan
Deskripsi Darwin
Marah
cuping naik, mulut tertutup, alis
merapat, kepala terangkat, (dada
mengembang, lengan kaku di
samping tubuh, menghentakkan kaki
ke tanah, tubuh berayun
maju/mundur, gemetar)
4, 5, 24, 38
Puas
bibir menjorok ke samping, hidung
mengernyit, kelopak mata separuh
tertutup, gerak mata menjauh, bibir
atas naik, (snort, body expiration,
expiration)
9, 10, 22, 41, 61 atau 62
Jijik
bibir bawah turun, bibir atas naik,
expiration, mulut terbuka, meludah,
meniup bibir yang menjorok,
menurunkan bibir, lidah menjorok
10, 16, 22, 25 atau 26
Takut
mata terbuka, mulut terbuka, bibir
tertarik, alis naik, (crouch, pucat,
perspiration, bulu kuduk berdiri,
otot mengigil, gemetar, menguap)
1, 2, 5, 20
Bahagia
mata berbinar, kulit sekitar mata
berkerut, mulut tertarik keujung
6, 12
Suka cita
zygomatic, orbicularis, bibir atas
naik, lipatan naso labia terlihat,
(otot bergetar, gerakan tanpa tujuan,
tawa, bertepuk tangan, melompat,
menari, stamping, chuckle)
6, 7, 12
Sedih
ujung mulut turun, mata terbuka,
bibir menjorok, ujung alis bagian
dalam naik
1, 15
Terkejut
alis naik, mulut terbuka, bibir
menjorok (menghela nafas,
mengangkat tangan tinggi diatas
kepala dalam posisi terbuka
menghadap ke atas, telapak tangan
mengarah ke depan dengan jari
lurus, tangan kebelakang)
1, 2, 5,25 atau 26
|
28
2.2.3
Dalam training aplikasi, data yang digunakan diambil dari database yang telah
ada. Database database tersebut adalah:
a.
Japanese Female Facial Expression Database (JAFFE)
b.
FABO Database
c.
MMI Facial Expression Database
d.
Belfast Naturalistic Emotional Database
2.2.4
Viola-Jones dalam penelitiannya menghasilkan algoritma pendeteksi wajah
dimana algoritma itu berdasarkan Haar-like feature,
dan metode baru yang dapat
mengekstraksi fitur wajah secara efisien yang dinamakan integral image. Salah satu
keunggulan integral image
adalah penghitungan yang jauh lebih cepat dan dapat
diaplikasi untuk mendeteksi secara realtime.
2.2.5
Misalkan ada suatu citra yang memiliki piksel-piksel yang terlalu gelap dan
piksel-piksel yang terlalu terang dan piksel-piksel yang nilainya diantara dua ekstrem
itu terlalu sedikit. Akan lebih baik bila ada metode yang dapat membuat piksel-piksel
gelap menjadi lebih terang sekaligus membuat piksel-piksel yang terlalu terang
menjadi lebih gelap dan meningkatkan dynamic range.
Berdasarkan Szeliski (2011),
histogram equalization menjadi salah satu solusi untuk contoh kasus diatas.
Histogram equalization berarti distribusi tingkat pencahayaan pada suatu citra
diubah sehinggatingkat pencahayaan (brightness intesity) tersebar lebih merata. Efek
dari equalize histogram adalah citra dengan kualitas kontras yang lebih baik. Citra
|
![]() 29
hasil peningkatan kontras dalam preprocessing
akan menghasilkan gambar yang
jelas di mata atau membantu dalam proses ekstraksi fitur dalam aplikasi computer
vision. (Yoon, Han, & Hahn, 2009)
2.2.6
Optical flow adalah teknik yang banyak digunakan di banyak bidang. seperti
motion estimation
untuk memprediksi vektor perpindahan dari benda bergerak,
kompresi video, dan segmentasi citra untuk men-tracking objek yang bergerak
(Kesrarat & Patanavijit, 2011). Salah satu algoritma optical flow yang dipakai secara
luas dirancang oleh Lucas dan Kanade (1981)
2.2.6.1 Lucas-Kanade Optical Flow
Tujuan dari Lucas-Kanade adalah untuk mencocokkan potongan citra T(
)
dengan citra I(
), dimana
= (x, y)
T
adalah vektor kolom berisi koordinat pixel yang
akan di-track. Jika Lucas-Kanade melakukan tracking pada citra pada waktu t = 1 ke
waktu t
= 2, maka T(
) adalah potongan citra dari citra pada waktu t
= 1 dan I(
)
adalah citra pada t = 2. Lucas-Kanade berjalan dengan beberapa asumsi dasar, salah
satunya adalah konsistensi dalam pencahayaan dan tidak adanya rotasi objek.
konsistensi cahaya walau terdengar sulit dipercaya, ternyata tidak menghalangi
Lucas-Kanade berjalan baik dalam prakteknya.
Ilustrasi tracking titik
|
![]() 30
Misalkan d
= [u, v] adalah vektor perpindahan citra dimana u
adalah vektor
perpindahan horizontal dan v
vektor perpindahan vertikal, maka untuk menemukan
vektor tersebut dicari least mean square error dari kedua citra dengan persamaan;
Persamaan 1 Lucas-Kanade
Misalkan W(
;p) menyatakan fungsi warp
dengan p
= (p1,p2
,...,p
n
)
T
adalah
vektor parameter warp. Fungsi warp
dapat dinyatakan sebagai fungsi translasi
sebagai berikut.
W(
;p)=
Jika dinyatakan sebagai demikian maka dapatlah dinyatakan bahwa
sebagai u
dan
sebagai v. Jika demikian maka persamaan 1 dapat dinyatakan sebagai berikut;
Persamaan 2
Fungsi warp juga dapat berubah tujuan menjadi affine warp function
yang
memungkinkan optical flow berjalan pada objek yang berotasi.
|
![]() 31
Fungsi warp akan menjadi sebagai berikut;
W(x;p)=
Untuk mengoptimasi persamaan 2, algoritma ini mengasumsikan nilai-nilai dari p
telah di ketahui dan secara iteratif melakukan penambahan nilai
p
dengan
sehingga persamaannya menjadi
Dan nilai p di perbaharui sesuai persamaan;
p ? p +?p
Sehingga di peroleh nilai p yang konvergen. Tes konvergensi dinyatakan sukses bila
ditemukan ||?p||
=
.
Langkah selanjutnya adalah dengan mencari hasil pertama deret Taylor dari
sehingga persamaan diatas kembali berubah menjadi.
Dimana
merupakan gradien citra I yang telah dimasukkan dalam
fungsi warp
dan
adalah hasil Jacobian fungsi warp. Jika
T
maka;
|
![]() 32
=
Setelah mendapatkan nilai nilai diatas, hitung steepest descent citra
dan
persamaan menjadi
Untuk menentukan nilai ?p maka dipergunakan matriks Hessian yang dapat
ditemukan melalui persamaan berikut:
Dan nilai
dapat ditemukan dengan mengubah persamaan menjadi sama
dengan nol dan diperoleh persamaan berikut:
Persamaan 3 Hasil derivatif LK
Sehingga dengan demikian posisi jendela pendeteksian dapat ditentukan pada
gambar I(W(x;p+
)).
|
![]() 33
Langkah langkah di atas dapat dirangkum dalam algoritma sebagai berikut:
Lakukan
Temukan template
dengan perkiraan pada gambar I dengan menggunakan
W(x;p) untuk menghitung I(W(x;p)).
Hitung nilai kesalahan T(x) - I(W(x;p)).
Tentukan nilai gradien
dengan W(x;p).
Hitung nilai Jacobian
pada (x;p). (Jacobian)
Hitung nilai steepest descent
.
|
![]() 34
Hitung nilai matriks Hessian
Hitung persamaan
Hitung nilai
.
Update parameter
?
p +?p.
Hingga ||?p||
=
.
2.2.7
Wavelet menjadi dasar dalam memecahkan masalah mendasar dalam ilmu
sains dan engineering, seperti de-noising pada citra, kompresi signal, dan kompresi
citra
(Song, 2006). Dalam landasan teori ini akan difokuskan kepada bagaimana
wavelet diterapkan dalam kompresi citra dan bagaimana aspek matematika wavelet
mempengaruhi proses dan hasil kompresi.
Pada transformasi wavelet diskrit, terdapat beberapa jenis basis induk wavelet,
seperti wavelet Haar .Wavelet Haar adalah jenis wavelet yang pertama kali dikenal.
Adapun fungsi dari wavelet Haar adalah sebagai berikut:
Persamaan 4 Fungsi wavelet Haar
Selain itu fungsi skala dari wavelet Haar adalah sebagai berikut:
Persamaan 5 Fungsi skala wavelet Haar
|
![]() 35
2.2.7.1 Transformasi Wavelet
Dina Chahyati dalam karangannya pada tahun 2003, menjelaskan wavelet Haar
sebagai berikut; Wavelet Haar dapat dijelaskan dalam ruang vektor 4 dimensi. Basis
paling sederhana adalah basis orthogonal sebagai berikut
1
0
0
0
,
0
1
0
0
,
0
0
1
0
,
0
0
0
1
3
2
1
0
v
v
v
v
Berdasarkan basis tersebut, dapat direpresentasikan suatu vektor sebagai
kombinasi linear basis tersebut. Misalkan ada vektor
5
7
4
6
x
maka dapat merepresentasikan vektor x dalam bentuk
x
= a v
0
+ b v1
+ c v2 + d v
3
Persamaan diatas dapat diturunkan menjadi :
x
0
= a + b + c
x1
= a + b c
x2
= a b + d
x3
= a b d
Sehingga kemudian didapatkan :
x2
x
3
= 2d
x
0
x
1
= 2c
(x
0
+ x1) (x2 + x3) = 4b
(x
0
+ x1) + (x
2
+ x3) = 4a
Dengan demikian dapat diambil kesimpulan bahwa
d = ½ (x
2
x3)
c = ½ (x
0
x1)
b = ½ ( ½ (x
0
+ x1) ½ (x
2
+ x3
))
a = ½ ( ½ (x
0
+ x1) + ½ (x2
+ x3
))
|
![]() 36
Terlihat bahwa sebenarnya koefisien-koefisian a,b,c,d dapat diperoleh dari
operasi averaging
dan differencing
terhadap nilai x
0,
x
1,
x2
dan x3
dengan aturan
tertentu
Dan dapat kemukakan bahwa a = 6, b = 4, c = -7, d = 5.
Stephane Mallat kemudian memperkenalkan cara mudah menghitung
koefisien a, b, c dan d dengan cara yang dikenal dengan algoritma piramida Mallat.
Algoritma tersebut dapat ditunjukkan dengan gambar berikut.
0
2
1
0
2
1
...
d
d
d
a
a
a
a
j
j
H
H
H
L
j
L
j
L
j
Dimana a
j
adalah vektor awal dengan ukuran 2
j
, dan koefisien a, b, c, d
dapat
diperoleh dari aproksimasi
a
0
detail-detail d
0
, d¹
dan seterusnya. Matriks L dan H
masing - masing adalah matriks lowpass (averaging) dan highpass (differencing).
Setelah mengetahui bagaimana mendekomposisi suatu sinyal menjadi
koefisien-koefisien kombinasi liniernya, maka perlu diketahui bagaimana cara
memperoleh vektor asal jika hanya diketahui koefisien-koefisien dekomposisinya
(a,b,c,d). Proses kebalikan dari dekomposisi ini disebut proses rekonstruksi, dan
algoritma piramida Mallat untuk rekonstruksi adalah:
1
1
0
*
*
*
*
2
*
1
*
0
...
n
H
H
H
n
L
L
L
d
d
d
a
a
a
a
Dimana matriks pengali L* dan H* memiliki hubungan dengan matriks L dan H pada
proses dekomposisi yaitu LL* = HH* = I (L merupakan invers dari L*).
2.2.7.2 Kompresi Citra dengan Metode Wavelet Haar
Transformasi wavelet memungkinkan komputer menyimpan citra dalam
berbagai resolusi, dimana sebuah citra di bagi menjadi beberapa tingkatan resolusi.
Ini memungkinkan wavelet mengkompresi citra dengan memory penyimpanan yang
lebih sedikit dan detail yang lebih baik.
|
![]() 37
Pembagian citra ini memungkinkan citra menjaga detail dengan spesifik.
Contohnya, menjaga detail vertikal saja daripada menjaga detail diagonal dan
horizontal pada citra yang memiliki aspek vertikal lebih. Ini menyebabkan
berkurangnya detail horizontal tetapi hal ini tidak akan terlihat oleh mata manusia
(Song, 2006).
Suatu citra dapat di gambarkan sebagai fungsi dua dimensi. Fungsi itu dapat
direpresentasikan sebagai matrix dua dimensi berukuran M
N dimana nilai fungsi
di tampung di posisi yang bersesuaian. Apabila gambar adalah gamabr berwarna
dalam format RGB, maka citra di representasikan dalam matriks berukuran M
N
3.
Transformasi di lakukan terhadap baris-baris pada citra. Ini menghasilkan nilai
average
(hasil
output low pass) dan koefisien detail horizontal citra (hasil output
high pass). Selanjutnya hasil transformasi tersebut dianggap sebagai citra dan
trasformasi terhadap kolom-kolom dilakukan. Maka nilai yang dihasilkan adalah
koefisien detail, kecuali satu koefisien rata-rata (Stollnitz, Derose, & Salesin, 1995).
|
![]() 38
LL : Hasil lowpass terhadap baris dan kolom
LH : Hasil lowpass terhadap baris diteruskan highpass terhadap kolom
HL : Hasil highpass terhadap barisditeruskan lowpass terhadap kolom
HH : Hasil highpass terhadap baris dan kolom
Gambar 2.5 telah di modifikasi karena hambatan dalam proses pencetakan.
Dapat dinotasikan LL sebagai gambar terkompresi, LH sebagai detail vertika, HL
sebagai detail horizontal, dan HH sebagai detail diagonal.
2.2.8
2.2.8.1 Definisi Jaringan Syaraf Tiruan
Menurut Christos Stergiou dan Dimitrios Siganos, Artificial Neural Network
(ANN) atau jaringan syaraf tiruan merupakan paradigma pemrosesan informasi yang
terinspirasi oleh sistem syaraf biologi seperti cara otak memproses informasi. Elemen
kunci dari paradigma ini adalah struktur novel
dari sistem pemrosesan informasi.
Sistem tersusun dari banyak elemen pemrosesan yang terhubung secara rumit,
bekerja sebagai satu kesatuan dalam memecahkan masalah spesifik. Artificial Neural
Network (ANN) seperti halnya manusia, belajar dari contoh contoh yang diberikan.
ANN disusun untuk aplikasi yang spesifik, seperti pengenalan pola atau
pengklasifikasian data, melalui suatu proses pembelajaran. Belajar dalam sistem
biologi meliputi penyesuaian terhadap koneksi antar neuron.
|
![]() 39
Secara prinsip jaringan syaraf tiruan dapat melakukan komputasi terhadap
semua fungsi yang dapat terhitung (computable function). Jaringan syaraf tiruan
dapat melakukan apa yang dapat dilakukan oleh komputer digital normal.
Dalam prakteknya, jaringan syaraf tiruan terutama sangat berguna bagi
klasifikasi dan permasalahan-permasalahan yang dapat mentolerir ketidaktepatan,
yang
memiliki banyak data pelatihan, namun memiliki aturan-aturan yang tidak
dapat diaplikasikan secara mudah.
2.2.8.2 Pengenalan Pola
Suatu aplikasi yang penting dari neural network adalah pengenalan pola.
Pengenalan pola dapat di implementasikan dengan menggunakan neural network
feed
forward
yang telah dilatih. Selama pelatihan, jaringan dilatih untuk
mengasosiasikan output
dengan pola input.
Jaringan mencoba untuk
mengidentifikasikan pola input dan menghasilkan pola output.
2.2.8.3 Arsitek Neural Network
a.
Feed Forward Network
Pada sistem ini, sinyal hanya diperbolehkan mengalir dalam 1 arah, yaitu dari
input ke output. Tipe mengacu pada algoritma bottom-up atau top-down.
|
40
b.
Feedback Network
Pada sistem ini sinyal mengalir dalam 2 arah, yaitu arah maju dan mundur.
Sistem ini sangat powerful dan rumit.
2.2.8.4 Model Back Propagation
Model back propagation (propagasi balik) merupakan model yang sangat
populer dalam jaringan syaraf tiruan. Back propagation
adalah suatu model yang
didesain untuk beroperasi secara multilayer, berasitektur umpan maju (Feedforward
Network), menggunakan metode supervised
learning
dan antara lapisan yang satu
dan lapisan lain saling berhubungan (Fausett,1994,p289).
Metode
LSM
(Least Mean Square) digunakan untuk mendapatkan error.
Banyak aplikasi
yang diformulasikan dengan menggunakan back propagation
dan
metodologinya telah menjadi suatu model bagi multilayer neural network.
Terdapat 2 tahap dalam proses pelatihannya yaitu (Fausett, 1994, p289):
a.
Propagasi Maju (Forward Propagation )
b.
Propagasi Mundur (Backward Propagation)
Proses yang terjadi dalam jaringan propagasi balik ini adalah pertama
tama
diberikan input
kepada lapisan pertama kemudian dari jaringan akan diteruskan ke
lapisan
lapisan berikutnya sampai didapatkan hasil tertentu. Hasil ini dikenal
dengan actual output.
Kemudian actual output
ini akan dibandingkan hasilnya
dengan nilai keluaran ideal yang dikenal dengan nama target output, sehingga akan
dihasilkan error bagi masing masing keluaran. Sinyal ini kemudian ditransmisikan
balik dari lapisan keluaran masing masing sel pada lapisan sebelumnya
Dalam pengoperasian model jaringan ini terdapat 2 modus operasi yaitu:
|
![]() 41
a.
Modus latihan
Pada modus ini jaringan akan dilatih untuk menghasilkan data yang sesuai
dengan target
yang diharapkan. Semakin banyak latihan yang diberikan, maka hasil
yang didapatkan akan semakin baik pula.
b.
Modus Produksi
Pada modus ini, dilakukan pengujian terhadap jaringan, apakah jaringan dapat
mengenali data yang dimasukkan kedalam jaringan.
2.2.8.5 Algoritma Back Propagation
Algoritma back propagation terbagi menjadi dua, yaitu algoritma training dan
algoritma untuk aplikasi
a.
Tahap 0 : Inisialisasi nilai weight.
b.
Tahap 1 : Jika proses ingin terus dilanjutkan, lakukan tahap 2- 9.
c.
Tahap 2 : Untuk setiap pasangan data training lakukan tahap 3-8.
Langkah maju (FeedForward)
a.
Tahap 3 : Setiap unit input (x
i
, i = 1, ... , n) menerima sinyal input x
i
dan
meneruskan sinyal tersebut ke semua unit pada lapisan diatasnya
(hidden layer).
b.
Tahap 4 : Setiap unit tersembunyi (z
j
, j = 1, ... , p) menjumlahkan sinyal
-
sinyal input terbobot
z_in
j
oj
i
ij
Kemudian digunakan fungsi aktifasi untuk menghitung sinyal
output-nya.
j
j
)
|
![]() 42
Dan kirimkan sinyal tersebut ke semua unit dilapisan atasnya
(unit-unit output).
c.
Tahap 5 : Semua unit output (y
k
, k = 1, ... , m) menjumlahkan sinyal
sinyal input terbobot,
y_in
k
oj
j
jk
kemudian gunakan fungsi aktivasi untuk menghitung sinyal output-nya
k
k
)
Langkah mundur (Backward)
d.
Tahap 6 : Tiap tiap unit output (y
k
, k = 1, ... , m) menerima pola target
yang berhubungan dengan pola input
pembelajaran. Hitung informasi
error-nya,
k
k
k
k
)
Hitung koreksi bobot (yang nantinya akan digunakan untuk
memperbaiki nilai w
jk
),
jk
k
j
Hitung juga koreksi bias (yang nantinya akan digunakan untuk
memperbaiki nilai w
ok
),
ok
k
Dan kirimkan nilai
k
ke unit- unit yang ada di lapisan bawahnya.
|
![]() 43
e.
Tahap 7 : Tiap tiap hidden unit (z
j
, j = 1, ... , p) menjumlahkan delta
input-nya (dari unit yang berada pada lapisan atasnya),
_in
j
k
jk
Kalikan nilai ini dengan turunan dari fungsi aktifasinya untuk
menghitung informasi error-nya,
j
j
j
)
Kemudian hitung koreksi bobot (yang nantinya digunakan untuk
memperbaiki nilai v
ij
),
jk
j
i
Hitung juga koreksi bias (yang nantinya digunakan untuk memperbaiki
nilai v
oj
),
oj
j
Perbaiki bobot dan bias.
f.
Tahap 8 : Setiap unit output (y
k
, k = 1, ... , m) memperbaiki bobot dan
biasnya (j= 0, ... , p),
w
jk
(baru) = w
jk
(lama) +
w
jk
Setiap unit output (z
j
, j = 1, ... , p) memperbaiki bobot dan biasnya
(i= 0, ... , n ),
v
ij
(baru) = v
ij
(lama) +
v
ij
g.
Tahap 9 : tes kondisi berhenti.
|
44
Pada modus latihan, propagasi maju dan mundur akan dilakukan, namun pada
modus produksi, yang dijalankan hanyalah propagasi maju. Selain itu perbedaan juga
terdapat dalam data yang diberikan. Dalam modus pelatihan, akan diberikan input
beserta target. Sedangkan pada modus produksi yang dimasukkan hanya nilai input.
2.2.8.6 Perancangan Jaringan Syaraf Tiruan
Menurut Giorgio Giacinto dan Fabio Roli, metode dalam literatur untuk
merancang jaringan syaraf tiruan untuk mencapai tingkat error
yang diinginkan,
dapat digolongkan sebagai berikut;
a.
Mengubah penentuan bobot awal: penentuan bobot awal dapat menentukan
kecepatan pencapaian error yang diinginkan, tentu setelah jaringan syaraf tiruan
tersebut melakukan training.
b.
Mengubah desain arsitektur jaringan: merancang jaringan syaraf dengan variasi
jumlah neuron pada hidden layer, sebagai contoh.
c.
Mengubah tipe jaringan: jenis jaringan syaraf yang berbeda, dapat memberi
tingkat kesalahan yang berbeda.
d.
Mengubah data training: memberikan pelatihan dengan kumpulan data training
yang berbeda. Ini dapat dilaksanakan misalnya, memasukkan data dari sumber
yang berbeda atau memberikan perlakuan yang berbeda terhadap data sebelum
dilakukan training.
Dalam eksprimennya, (Patridge, 1996) menyatakan bahwa untuk menghasilkan
network
dengan tingkat error
yang berbeda, ada dua metode yang terbaik;
mengubah/variasi tipe jaringan syaraf tiruan, dan mengubah data training.
|
45
Faktor penentu dalam jaringan syaraf yang efektif adalah kemampuan jaringan
tersebut mencapai tingkat kesalahan serendah mungkin.
Namun strategi yang baik
masih merupakan hal yang sulit dijangkau. Bahkan dalam makalahnya, Wolpert
menyebut perancangan Jaringan syaraf yang baik masih seperti sihir.
Strategi dalam mendesain jaringan syaraf tiruan dapat di bagi menjadi strategi
direct dan over produce and choose. Dalam penelitiannya, Opitz dan Shavlik
menyajikan algoritma bernama ADDEMUP, yang menggunakan algoritma genetik
untuk secara langsung mencari desain jaringan syaraf tiruan secara independen.
Rosen juga menjelaskan metode pelatihan back propagation
yang dapat
menghasilkan output yang diinginkan (Giacinto & Roli, 2001)
Over produce and choose adalah strategi dengan membuat banyak macam
jaringan syaraf tiruan dan memilih jaringan syaraf tiruan berdasarkan tingkat
kesalahan jaringan. Berdasarkan penelitian yang ada dan menggunakan metode ini,
cara pemilihan tidak dijelaskan secara mendetail dan hanya bersifat heuristis.
|