Академический Документы
Профессиональный Документы
Культура Документы
APRIL, 2005
PSZ 19 : 16 (Pind. 1/97)
mengaku membenarkan tesis (PSM / Sarjana / Doktor Falsafah) * ini disimpan di perpustakaan Universiti
Teknologi Malaysia dengan syarat-syarat kegunaan seperti berikut :
9 TIDAK TERHAD
Disahkan oleh
Alamat Tetap:
Tandatangan :
Nama Penyelia : PM. DR. DZULKIFLI BIN MOHAMAD
Tarikh : 8 APRIL 2005
“Saya akui karya ini adalah hasil kerja saya sendiri kecuali nukilan dan ringkasan
yang tiap-tiap satunya telah saya jelaskan sumbernya”
Tandatangan :
Nama Penulis : HARYANTI BINTI SHAHLAN
Tarikh : 8 APRIL 2005
Istimewa buat suami
dan keluarga disayangi
PENGHARGAAN
Alhamdulillah, bersyukur ke hadrat Ilahi kerana dengan limpah kurnia dan kasih
sayangNya, saya dapat menyiapkan laporan bagi projek ini mengikut masa yang telah
ditetapkan dengan sebaiknya.
Jutaan terima kasih saya tujukan buat Prof. Madya Dr. Dzulkifli Bin Mohamad
selaku penasihat dan penyelia bagi projek ini yang telah banyak memberi bimbingan dan
tunjuk ajar berkenaan konsep pengekstrakan dan pengkonturan wajah di dalam komputer
grafik sepanjang saya menjalankan projek ini.
Paling istimewa sekali, penghargaan ini saya rakamkan khusus buat kedua ibu
bapa, mertua serta keluarga dikasihi yang tidak pernah jemu memberi sokongan dan
nasihat yang berguna kepada saya. Tidak dilupakan suami tercinta yang banyak memberi
dorongan dan semangat yang berterusan. Malah penghargaan ini juga ditujukan khas buat
semua teman seperjuangan yang sentiasa memberi bantuan dan galakan yang tidak
berbelah-bagi. Semoga segala pengorbanan dan bantuan yang anda semua berikan sama
ada secara langsung mahupun tidak langsung akan mendapat keberkatan dan keredhaan
serta rahmat dari Allah S.W.T di dunia dan juga di akhirat.
ABSTRAK
Aplikasi ini dibina khusus untuk mengkonturkan garis sempadan wajah manusia
dari sebuah imej wajah berskala kelabu dan berwarna. Kawasan sempadan wajah yang
telah dikonturkan akan mengandungi ciri-ciri wajah seperti dahi, kening, mata, hidung,
pipi, mulut dan dagu. Proses pengkonturan ini melibatkan penggunaan kaedah Model
Kontur Aktif atau Pembentukkan Snake (Snake Deformable). Aplikasi ini membenarkan
pengguna memilih dua bidang vektor iaitu Standard Vector Field (SVF) dan Gradient
Vector Field (GVF). Kedua-dua bidang vektor ini menghasilkan bentuk output kontur
yang berbeza. GVF dapat mengatasi masalah kelemahan jarak tangkapan yang dialami
oleh SVF. Oleh itu masa yang diambil untuk melelarkan kontur aktif adalah lebih
minima. Walau bagaimanapun, hasil pengkonturan SVF adalah lebih baik berbanding
dengan GVF. Aplikasi ini turut membenarkan pengguna untuk meletakkan sendiri
garisan awalan kontur aktif serta memasukkan nilai parameter kontur aktif yang terdiri
dari daya tegangan (α), daya tegasan (β), langkah saiz (γ), pemberat daya luaran (κ), jarak
maksimum titik (Dmax), jarak minimum titik (Dmin) dan jumlah lelaran kontur.
ABSTRACT
JUDUL
PENGAKUAN ii
DEDIKASI iii
PENGHARGAAN iv
ABSTRAK v
ABSTRACT vi
ISI KANDUNGAN vii
SENARAI JADUAL xii
SENARAI GAMBARAJAH xiii
SENARAI GAMBAR xvi
SENARAI RAJAH xvii
SENARAI ISTILAH xviii
SENARAI SIMBOL xix
SENARAI LAMPIRAN xx
BAB I PENGENALAN
2.1 Pengenalan 9
2.2 Definisi Istilah-istilah di dalam Pengecaman Wajah 10
2.2.1 Face Detection 10
2.2.2 Face Feature Detection 10
2.2.3 Face Contouring 11
2.2.4 Face Localization 11
2.2.5 Face Tracking 11
2.2.6 Face Verification 11
2.2.7 Face Recognition atau Face Identification 12
2.3 Teknik Pengesanan Sisi dan Penambahan Sisi 12
2.3.1 Operator Gradient 13
2.3.2 Operator Laplacian 15
2.3.3 Proses Ambang (Thresholding) 17
2.3.4 Operator Canny 18
2.4 Pengenalan Kontur Aktif 21
2.5 Kajian Imej Gambar 25
2.6 Kajian Aplikasi Sedia Ada 29
2.6.1 Pengkonturan Contoh Paleontologikal 29
2.6.1.1 Senibina Model-View Controller (MVC) 30
2.6.1.2 Antaramuka Pengguna Aplikasi Contoh
Paleontologikal 32
2.6.2 Pengkonturan Bahagian Organ Dalaman 33
2.6.3 Pengkonturan Imej Telinga Tengah 35
2.6.4 Pengkonturan Kawasan Kepala (Snake Eyes) 38
3.1 Pengenalan 39
3.2 Model Snake Parametrik 41
3.2.1 Daya Dalaman (Internal Force) 44
3.2.2 Daya Luaran (External Force) 45
3.2.3 Daya Kekangan (Constraint Force) 47
3.3 Snake Gradient Vector Flow 49
3.3.1 Peta Sisi (Edge Map) 50
3.3.2 Gradient Vector Flow 50
3.3.3 Proses Re-Sampling 54
3.3.4 Parametrik Kontur Diskret 55
BAB IV METODOLOGI
4.1 Pengenalan 59
4.2 Metodologi Aplikasi 60
4.2.1 Proses Input 61
4.2.2 Proses Pengesanan Sisi dan Kaburan Imej 61
4.2.3 Proses Pengkonturan 62
4.2.4 Proses Output 66
4.3 Fasa Pembangunan Aplikasi 66
4.3.1 Fasa Penyiasatan Awal 67
4.3.2 Fasa Analisa dan Literatur 67
4.3.3 Fasa Rekabentuk Aplikasi 68
4.3.4 Fasa Implementasi dan Pengujian Aplikasi 69
4.3.5 Fasa Perbandingan dan Kesimpulan 69
4.4 Spesifikasi Imej Wajah 69
4.5 Keperluan Perisian dan Perkakasan 71
4.5.1 Spesifikasi Perisian 71
4.5.1.1 MATLAB 71
4.5.1.2 Microsoft Paint 72
4.5.1.3 Adobe Photoshop 5.5 72
4.5.1.4 Microsoft Project 2000 73
4.5.1.5 Microsoft Word 2002 73
4.5.2 Spesifikasi Perkakasan 73
5.1 Pengenalan 75
5.2 Pembahagian Tetingkap Aplikasi 76
5.2.1 Tetingkap Pertama 76
5.2.2 Tetingkap Kedua 76
5.2.3 Tetingkap Ketiga 77
5.2.4 Tetingkap Keempat 77
5.3 Hirarki Tetingkap Aplikasi 78
5.4 Cartalir Tetingkap Aplikasi 79
5.5 Antaramuka Pengguna Tetingkap Aplikasi 84
BAB VI HASIL DAN IMPLEMENTASI
6.1 Pengenalan 87
6.2 Pembangunan dan Pengaturcaraan Aplikasi 87
6.3 Implementasi Aplikasi Kontur Wajah 88
6.3.1 Pengesanan Sisi Imej Wajah 90
6.3.2 Parameter Sigma 90
6.4 Perbandingan Hasil Implementasi 93
6.4.1 Peta Daya Luaran 93
6.4.1.1 Peta Daya Luaran SVF 93
6.4.1.2 Peta Daya Luaran GVF 94
6.4.2 Parameter Kontur Aktif 97
6.4.3 Garisan Awalan Kontur Aktif 98
6.4.4 Contoh Pengujian Pengkonturan Snakes 98
6.4.4.1 Pengkonturan Snakes SVF 99
6.4.4.2 Pengkonturan Snakes GVF 103
6.5 Rumusan Pengkonturan SVF dan GVF 107
6.6 Perbandingan Aplikasi Kontur Wajah & Aplikasi Sedia Ada 109
6.6.1 Bilangan Titik Vertis 109
6.6.2 Kedudukan Garisan Awalan Kontur Aktif 110
6.6.3 Nilai Parametrik Kontur Aktif 110
6.6.4 Bilangan Lelaran Pengkonturan 111
RUJUKAN 115
LAMPIRAN
SENARAI JADUAL
6.1 Jadual ringkas 5 contoh yang diuji ke atas SVF dan GVF 98
6.2 Perbandingan lelaran dan hasil bagi 5 contoh SVF dan GVF 107
SENARAI GAMBARAJAH
2.1 Contoh hasil gradient Operator Sobel (a) Sebelum dan (b) Selepas 20
2.2 Contoh hasil Operator Laplace (a) Sebelum dan (b) Selepas 20
2.3 Contoh hasil Operator Canny (a) Sebelum dan (b) Selepas 20
2.4 Contoh hasil sebelum dan selepas proses ambang 20
2.5 Gambar wajah berukuran pasport 25
2.6 Kualiti gambar yang kurang memuaskan 26
2.7 Gambar yang menyukarkan proses pengesanan mata (a) Rambut
menutupi sebahagian kawasan mata dan (b) Kawasan mata
dilindungi cermin mata 26
2.8 (a) Lakaran kartun yang tidak dianggap sebagai imej wajah manusia
sebenar dan (b) Gambar alam semulajadi 27
2.9 Pelbagai wajah di sudut dan ragam yang berbeza 27
2.10 Pertindihan wajah di dalam sebuah gambar yang terdiri dari
pelbagai wajah 28
2.11 Kedudukan wajah yang terlalu jauh dan terlindung 28
4.1 Contoh imej berwarna yang dibenarkan untuk pengkonturan
(a) imej wajah lelaki dan (b) imej wajah wanita 70
SENARAI RAJAH
α - Tegangan
β - Tegasan
γ - Langkah saiz dalam satu proses lelaran
κ - Pemberat daya luaran
µ - Parameter pemberat GVF
σ - Parameter pemberat kaburan Gaussian
∇ - Operator Gradient
∆ - Perubahan
E - Tenaga
F - Daya
I - Imej
T - Nilai ambang (thresholding)
G - Gaussian
d - Jarak
v - Titik vertis
s - Kelengkungan (spline)
n - Unit normal vektor
t - Masa
mag - Magnitud
SENARAI LAMPIRAN
LAMPIRAN TAJUK
PENGENALAN
Pemprosesan imej digital dan video semakin hari semakin berkembang di dalam
era maklumat multimedia. Malah penganalisaan visual yang paling mencabar ialah untuk
memahami dan mengecam sesebuah objek. Pengekstrakan sempadan objek yang terdapat
di dalam imej merupakan salah satu masalah penting dalam pemprosesan imej. Pelbagai
pendekatan matematik dan pengkomputeran telah dicadangkan untuk menyelesaikan
permasalahan segmentasi. Salah satu dari pendekatan tersebut ialah Model Kontur Aktif
dan telah digunakan dalam membangunkan aplikasi ini. Kontur Aktif atau Snakes [11]
merupakan teknik aras tinggi yang dapat mengatasi banyak masalah teknik pemprosesan
imej aras rendah yang terhad dengan menggunakan maklumat sempadan sebagai
sebahagian dari prosidur pengoptimuman. Kontur aktif adalah kontur meminimakan
tenaga yang secara umumnya melibatkan titik vertis yang bersambungan dan dikawal
oleh terma tenaga. Terdapat terma daya yang berhubungan dengan terma tenaga ini iaitu
daya dalaman dan daya luaran. Daya dalaman dihasilkan berdasarkan kepada bentuk
setempat kontur yang akan memelihara kelicinan kontur. Daya luaran yang memandu
kontur aktif ke sempadan pula adalah berdasarkan maklumat imej (yang diperolehi
dengan menggunakan sebarang teknik pengesan sisi). Interaksi dengan terma daya
menyebabkan kontur aktif untuk mengembang dari kedudukan awalannya (yang dilukis
oleh pengguna dengan tetikus) dan ia akan terus memusat ke kedudukan yang optima
(contohnya sempadan) setalah daya-daya seimbang antara satu sama lain.
Kontur aktif telah digunakan secara meluas dalam bidang segmentasi imej dan
pelbagai pendekatan alternatif telah diwartakan untuk mempertingkatkan lagi hasil yang
bakal diperolehi seperti Model Pembentukan Geometri [20], Kontur Aktif Geometri [16],
Kontur Dinamik Diskret [15] dan Gradient Vector Flow [26]. Kontur aktif telah
digunakan dikebanyakan bidang antaranya permodelan imej perubatan seperti x-ray,
angiografi dan ultra-bunyi. Tujuannya untuk mengesan dan visualisasi struktur anatomi
seperti otak, jantung, hati, paru-paru dan sebagainya. Selain itu, kontur aktif juga telah
diaplikasikan di dalam bidang geografi (seperti mengesan kawasan bentuk mukabumi
contohnya tasik, sungai dan bukit bukau), bidang ketenteraan (mengesan kedudukan
peluru berpandu), bidang astronomi (mengesan struktur dan kedudukan bintang-bintang
baru dan komet) dan bidang pemprosesan imej grafik contohnya mengecam cap jari,
mengesan kedudukan sempadan dan pelbagai bentuk imej seperti kunci, jarum, jam,
kereta, bangunan dan sebagainya.
Gambar individu atau berkumpulan yang diambil biasanya di dalam sudut dan
bentuk ragam gaya yang pelbagai. Ini menyukarkan pihak tertentu untuk mengecam
wajah individu yang dikehendaki walaupun dinilai secara mata kasar memandangkan
gambar tersebut diambil terlalu jauh (zoom-out), terlalu dekat (zoom-in), imej wajah yang
bertindih dengan wajah-wajah yang lain serta mempunyai kualiti yang tidak memuaskan
ekoran dari kesan pencahayaan dan sudut orientasi. Berdasarkan permasalahan ini,
sebuah prototaip aplikasi dibangunkan untuk memudahkan pihak tersebut mengekstrak
ciri-ciri wajah individu manusia yang terdiri daripada kening, mata, hidung, mulut, pipi,
dagu dan dahi.
Sebagai contoh, terdapat sebuah imej yang memuatkan wajah individu yang
dikehendaki. Oleh kerana imej itu mempunyai kualiti yang tidak memuaskan, pihak yang
terlibat sukar untuk membuat penganalisaan terhadap imej tersebut. Ketika ini, teknik
pengekstrakan boleh dilakukan dengan mengekstrak kawasan sempadan wajah yang
dikehendaki. Hasil pengekstrakan yang diperolehi itu boleh dibaik pulih dan
diperbesarkan mengikut saiz yang bersesuaian supaya imej menjadi lebih jelas dan ciri-
ciri wajah didapati boleh diklasifikasikan. Terdapat pelbagai cara pengekstrakan
menggunakan teknik-teknik yang berbeza. Antaranya ialah kaedah Pemisahan Ciri
Bayesian [3], Adaptive Hough Transform [22], Teknik Eigenface [25] dan sebagainya.
Hasil pengekstrakan teknik dan kaedah yang disebut ini biasanya dalam bentuk kekotak
yang mengandungi ciri-ciri wajah.
Teknik pengkonturan Model Kontur Aktif [11] juga merupakan salah satu dari
kaedah pengekstrakan. Hasil yang diperolehi bukan dalam bentuk kekotak tetapi adalah
garisan yang mengekori sempadan kawasan yang diingini. Garis sempadan boleh
termasuk keseluruhan kepala manusia (pengkonturan luaran) atau hanya melibatkan
kawasan raut wajah yang mengandungi ciri-ciri wajah (pengkonturan dalaman iaitu tidak
termasuk rambut, telinga dan leher).
Pengkonturan Model Kontur Aktif atau Snake adalah sebuah teknik yang agak
mudah jika dibandingkan dengan teknik atau kaedah yang lain. Secara umumnya, ia
dikenali sebagai teknik meminimakan tenaga lengkungan (spline). Tenaga snake adalah
bergantung kepada bentuk lengkungannya sendiri serta kedudukannya di dalam sesebuah
imej. Secara tradisonalnya, snake tidak dapat menyelesaikan semua masalah dalam
mencari kawasan yang hendak dikonturkan di dalam imej. Oleh itu, ia memerlukan
bantuan mekanisma lain seperti interaksi antara pengguna dengan imej dan maklumat
imej itu sendiri. Berikut adalah antara penyataan masalah menggunakan Model Kontur
Aktif secara tradisional:
Selain dari meletakkan garis awalan pada imej, perkara penting mengenai snake
tradisional ialah kedudukan titik vertis garis awalan tersebut. Snake SVF akan
memberikan hasil pengkonturan yang baik sekiranya titik vertis diplotkan berdekatan
dengan garis sempadan yang dikehendaki. Sekiranya, garis tersebut diletakkan terlalu
jauh atau bentuk garisannya yang tidak bersesuaian, snake tidak dapat membentuk dan
memusat dengan sempurna. Di samping kedudukan garisan yang berhampiran sempadan,
biasanya bilangan titik vertis yang diplotkan juga agak banyak supaya hasil yang
diperolehi menjadi lebih licin. Akibatnya, keperluan ini melambatkan lagi proses
pengkonturan.
Untuk menyelesaikan kedua-dua masalah ini, vektor Gradient Vector Flow (GVF)
telah digunakan sebagai daya luaran bagi snake. Daya luaran GVF membolehkan snake
mengkonturkan kawasan sempadan yang diingini berdasarkan bilangan titik vertis yang
minima (bersesuaian dengan bentuk sempadan). Dengan GVF, snake juga boleh melentur
dan membentuk ke kawasan yang diingini sekiranya garis awalan kontur diletakkan agak
berjauhan atau melintasi garis sempadan yang dikehendaki.
1.2.3 Bilangan Lelaran yang Besar
Selain itu, kombinasi parameter kontur aktif yang baik dan sesuai juga salah satu
faktor kejayaan pengkonturan. Terutamanya parameter α (daya tegangan) dan β (daya
tegasan). Gabungan kedua-dua daya ini mestilah diberi nilai yang bersesuaian dengan
imej input. Oleh itu, pembangun telah menyediakan ruangan pengisian nilai parameter
dan pemberat aktif kontur secara manual di dalam prototaip ini. Dengan ini, pengguna
dapat melihat sendiri hasil pengkonturan yang diperolehi berdasarkan masukkan input
parameter yang berbeza.
Matlamat utama projek ini dibangunkan ialah untuk menghasilkan satu prototaip
aplikasi pengkonturan garis sempadan wajah yang mengandungi ciri-ciri wajah individu
manusia. Prototaip ini menawarkan Gradient Vector Flow (GVF) sebagai pendekatan
alternatif daya luaran kontur aktif untuk menyelesaikan masalah jarak tangkapan yang
dialami oleh Standard Vector Field (SVF).
KAJIAN LITERATUR
2.1 Pengenalan
Hasil dari aplikasi yang hendak dibangunkan ini meliputi ciri-ciri wajah yang
terdiri daripada kening, mata, hidung dan mulut. Oleh itu, kajian awal yang dijalankan
adalah melibatkan pengkonturan kawasan dagu, pipi dan dahi wajah menggunakan
kaedah model kontur aktif. Penggunaan teknik yang dinyatakan ini diterangkan dengan
lebih terperinci di dalam BAB III. Namun begitu, sebelum menerangkan konsep-konsep
berkenaan dengan lebih mendalam, terlebih dahulu diterangkan serba-sedikit mengenai
beberapa istilah utama yang biasa digunakan selain dari pengiktirafan wajah (Face
Recognition) di dalam komputer grafik.
Tujuan mengesan ciri-ciri wajah ialah untuk mengetahui kedudukan mata, hidung,
pipi mulut dan lain-lain dengan mengandaikan bahawa hanya terdapat satu wajah di
dalam sesebuah imej.
2.2.3 Face Contouring
Tujuannya ialah untuk menentukan kedudukan imej wajah. Proses ini lebih mudah
sekiranya hanya terdapat satu wajah yang perlu ditentukan kedudukannya dari input imej.
Menjejak wajah atau face tracking dilakukan dengan meramal pergerakan wajah-
wajah yang terdapat di dalam jujukan imej di dalam masa nyata seperti imej video
berdasarkan trajektori (trajectories) sebelumnya dan menganggarkan kedudukan wajah
terkini dan kedudukan wajah akan datang bagi wajah-wajah tersebut.
Di dalam pemprosesan imej digital, imej aras kelabu dianggap sebagai array 2-D
contohnya I(x, y). Ia digubah dari elemen gambar (piksel) iaitu setiapnya mempunyai
magnitud dan kedudukan ruang diwakili oleh komponen koordinat x dan y. Sisi adalah
ditakrifkan melalui perubahan aras kelabu di antara piksel berjiran. Bergantung kepada
kadar perubahan (sama ada mendadak atau perlahan) aras kelabu di antara piksel berjiran,
sisi boleh dikenali sebagai sisi kukuh (strong edge) atau sisi lemah (weak edge).
∂I ∂I Gx
∇I = x+ y = (2.1)
∂x ∂y G y
∂I ∂I
di mana Gx = dan G y = adalah pembahagian terbitan bagi imej dengan memenuhi
∂x ∂y
komponen koordinat di dalam arah paksi koordinat. Magnitud gradient merupakan
kuantiti yang penting di dalam mengesan sisi sesuatu imej. Rumus untuk mengira nilai ini
dapat ditulis sebagai:
[
mag (∇I ) = Gx2 + G y2 ]
1
2
(2.2)
Selain dari mengetahui nilai magnitud, kita juga perlu mengetahui kedudukan arah bagi
gradient vektor. Ianya dapat dinyatakan seperti rumus berikut:
Gy
θ (∇I ) = tan −1 (2.3)
Gx
di mana sudut dikira berdasarkan kedudukan paksi x untuk setiap lokasi. Terdapat tiga
ciri gradient yang terlibat di dalam pemprosesan imej.
(i) Pertama, jika terdapat sedikit perubahan ataupun tiada langsung perubahan
aras kelabu di dalam piksel-piksel yang berjiran (contohnya kawasan
kesamaan), gradient untuk kawasan tersebut akan menjadi sifar atau
bernilai kecil yang menghampiri sifar.
(iii) Ketiganya, berdasarkan kepada teorem gradient [12], gradient imej pada
sesetengah titik (piksel) pada permukaan yang malar (iaitu sisi)
merupakan vektor normal kepada permukaan titik tersebut.
+ 1
[− 1 0 + 1] 0
− 1
− 1 − 2 − 1 − 1 0 1
0 0 0 − 2 0 2
1 2 1 − 1 0 1
∂2I ∂2I
∇2I = x + y (2.4)
∂x 2 ∂y 2
Kebisingan (noise) mengandungi keluasan had atau jarak frekuensi iaitu sama ada
berfrekuensi tinggi atau berfrekuensi rendah. Terbitan yang berdasarkan operator seperti
operator gradient atau Laplacian dapat menambah ketinggian frekuensi titik sisi ataupun
ketinggian frekuensi kebisingan. Bagaimanapun, hasil dari pengesanan kebisingan tidak
diperlukan. Untuk mengelakkan penghasilan ini, operator Laplacian of Gaussian (LOG)
telah dicadangkan [17]. Operator ini adalah gabungan dari kernel Gaussian 2-D dan
Laplacian. Kernel Gaussian 2-D (berbentuk loceng) mempunyai kesan kelicinan ke atas
imej kerana ia merupakan penapis low-pass dan bersifat purata di antara piksel berjiran di
dalam imej. Dengan melicinkan imej, Gaussian akan menghapuskan kebisingan.
Laplacian terbitan kedua menjadi penapis imej high-pass dan mengesahkan sisi.
Bagaimanapun, teknik ini tidak dapat menjamin pembuangan kebisingan sepenuhnya di
samping hanya pengesahan sisi. Berikut adalah gambarajah kernel Laplacian Gaussian:
∇ 2 h ( x, y ) =
(x 2
+ y2
⋅
) 1
e −
(x 2 + y 2 )
2σ 2
4σ 4
2πσ
di mana,
(x 2
+ y2 )
1 −
h ( x, y ) = e 2σ 2
(2.5)
2πσ
di mana σ ialah sisihan piawai bagi kernel Gaussian 2-D sebagai contoh h(x, y) dan ∇2
h(x, y) merupakan kernel LOG. Kernel LOG boleh diimplementasikan sebagai penapis
ruang yang dijalin dengan imej. Sisihan piawai bagi kernel Gaussian akan menentukan
kelicinan bagi penapis LOG. Semakin besar sisihan piawai, tapisan imej akan menjadi
lebih licin. Pemilihan nilai σ adalah bergantung kepada jumlah kebisingan di dalam imej.
Berikut adalah contoh operator LOG yang diberikan:
0 −1 0
− 1 4 − 1
0 − 1 0
Operator LOG
Proses ambang [21] merupakan teknik mudah untuk mengesan sisi dan
segmentasi imej. Di dalam teknik ini, nilai ambang yang pertama (T) dipilih di dalam
julat imej aras kelabu dan kedudukan piksel sama ada di atas atau di bawah nilai ambang
ditandakan berbeza. Proses ambang boleh ditakrifkan seperti di bawah:
I (x, y ) > T → IT ( x, y ) = 1;
(2.6)
I (x, y ) ≤ T → IT ( x, y ) = 0;
di mana IT(x, y) adalah imej selepas proses ambang. Maka, semua titik piksel dengan
intensiti besar dari T adalah bernilai tertentu seperti 1 dan selebihnya ditetapkan sebagai
sifar. Oleh yang demikian, hasil dari proses ambang ialah imej binari.
Pemilihan nilai ambang adalah sangat penting kerana titik sisi boleh berintensiti
rendah atau tinggi daripada nilai ambang, di mana hasil yang diperolehi berkemungkinan
terdapat sisi yang akan hilang. Bukan sesuatu perkara yang mudah untuk memilih nilai
ambang kerana ianya diperolehi daripada teknik trial and error. Kebiasaannya proses
ambang tidak memberikan keputusan yang baik.
Adalah penting bagi memastikan setiap sisi yang diperolehi daripada imej tidak
hilang dan berada pada kedudukan yang sepatutnya. Oleh itu, jarak di antara titik yang
ditandakan oleh pengesan dan kedudukan tengah garis sisi perlu diminimakan [1].
Teknik aras-rendah seperti gradient, proses ambang dan LOG tidak selalunya
memberikan hasil yang baik terutamanya apabila terdapat kebisingan imej atau imej
dengan julat intensiti piksel besar ke atas sisi. Kehilangan sebahagian sisi selalunya
terjadi apabila garis sisi tersebut mempunyai julat intensiti yang besar ketika
menggunakan teknik pengesan sisi beraras-rendah.
Pada tahun 1986, Canny telah mencadangkan pengesan sisi yang lebih baik
berbanding pengesan sisi beraras-rendah seperti yang dinyatakan di atas. Tujuan utama
operator ini ialah untuk mendapatkan titik yang ditandakan sebagai titik sisi yang terletak
di tengah-tengah garis sisi yang benar.
Operator Canny mengandungi tiga proses. Pertama, teknik penambahan sisi aras-
rendah digunakan untuk mengurangkan kebisingan dan menambahkan sisi. Kedua, proses
ambang aras kedua digunakan untuk mengasingkan di antara piksel sisi dan piksel bukan
sisi bagi mendapatkan garisan sisi yang bersambungan. Ketiga, proses pengecilan sisi
digunakan untuk mengurangkan ketebalan sisi menjadi satu garisan piksel sisi (berada di
tengah-tengah garisan sisi).
Berdasarkan magnitud gradient bagi imej ambang, proses pengecilan sisi akan
mencari titik sisi di kedudukan gradient iaitu berkeadaan normal terhadap sisi pada titik
sisi. Di dalam proses ini, titik piksel tengah atau piksel sisi berkedudukan gradient
ditetapkan kepada 1 dan piksel selebihnya adalah sifar. Oleh itu, hasil yang didapati ialah
imej binari yang mengandungi sisi atau garisan kawasan.
(a) (b)
Gambar 2.1 : Contoh hasil gradient Operator Sobel (a) Sebelum dan (b) Selepas
(a) (b)
Gambar 2.2 : Contoh hasil Operator Laplace (a) Sebelum dan (b) Selepas
(a) (b)
Gambar 2.3 : Contoh hasil Operator Canny (a) Sebelum dan (b) Selepas
Kontur aktif telah diperkenalkan oleh Kass et., al (1986). Ia merupakan contoh
teknik umum pemadanan atau penyesuaian model pembentukan ke atas sempadan imej
dengan meminimakan tenaga [11]. Model meminimakan tenaga ini mempunyai rentetan
sejarahnya yang tersendiri dan menurut Kass et., al [11]:
The notion of snake for active contours was inspired by the way living snakes
slither while minimising their energy.
The name “deformable models” stems primarily from the use of elasticity theory
at the physical level, generally within a Lagrangian dynamics setting. The
physical interpretation views deformable models as elastic bodies which respond
naturally to applied forces and constraints. In the Lagrangian setting, the
deformation energy gives rise to elastic forces internal to the model. Taking a
physics-based view of classical optimal approximation, external potential energy
functions are defined in terms of the data of interest to which the model is to be
fitted. These potential energies give rise to external forces, which deform the
model such that it fits the data. The mathematical foundations of deformable
models represent the confluence of geometry, physics and approximation theory.
Geometry serves to represent object shape, physics imposes constraints on how
the shape may vary over space and time, and optimal approximation theory
provides the formal underpinnings of mechanics for fitting the models to
measured data.
Pada asalnya, parametrik kontur aktif adalah lengkungan elastik atau spline yang
ditakrifkan di dalam imej domain dan mempunyai tingkah laku yang dinamik yang akan
mengembang dari kedudukan awalan (dalam imej) menuju ke arah sempadan objek.
Kedudukan awalan boleh ditentukan sama ada melalui interaksi pengguna atau proses
aras tinggi (melalui aturcara). Menurut formula gerakan Lagrangian, tingkah laku
dinamik lengkungan elastik berhubungan dengan fungsian tenaga lengkungan. Fungsian
tenaga dihasilkan dari dua terma tenaga iaitu tenaga dalaman dan tenaga luaran. Tenaga
dalaman adalah berdasarkan lengkungan itu sendiri manakala tenaga luaran wujud dari
maklumat imej. Terdapat terma daya yang berhubungan dengan terma tenaga iaitu daya
dalaman dan daya luaran. Daya dalaman berfungsi memelihara kelicinan kontur yang
dihasilkan oleh daya tengangan (elastic or tension force) dan daya tegasan (bending or
rigidity force). Daya luaran yang diperolehi dari maklumat imej (contoh imej gradient)
akan memandu kontur aktif menuju ke sempadan objek. Interaksi di antara terma daya
menyebabkan kontur aktif mengembang dan proses tersebut akan berhenti apabila terma
seimbang antara satu sama lain iaitu apabila fungsian tenaga diminimakan.
Satu masalah yang dihadapi dengan daya luaran ialah jarak tangkapannya yang
terhad. Ini kerana, daya luaran dihasilkan berdasarkan dari teknik pengesanan sisi
(contohnya operator gradient). Imej gradient mempunyai jarak tangkapan yang terhad
oleh itu kontur aktif mestilah diletakkan berdekatan dengan sempadan untuk tujuan
lenturan [26]. Oleh itu, jika kontur aktif tidak diletakkan berhampiran sempadan, ia tidak
dapat melentur ke sempadan. Daya dalaman pula bukan sahaja tidak dapat menyelesaikan
masalah ini malah ia juga berkecenderungan untuk mengecut yang akan menyebabkan
kontur aktif tidak dapat mengembang atau sekurang-kurangnya melambatkan proses
pengembangan kontur aktif ke sempadan [4][26]. Di samping itu, memilih paremeter
yang bersesuaian untuk tegangan dan tegasan adalah sukar ketika mempraktikkan
aplikasi [19].
Pelbagai kaedah implementasi seperti B-Snakes [19], Fourier Snakes [23] dan
Finite-Element Snakes [5] telah dicadangkan bertujuan untuk mempertingkatkan aspek
implementasi pendekatan parametrik (seperti untuk mengurangkan kepekaan takrifan,
memudahkan komputasi dan menghapuskan parameter daya dalaman). Kesemua kaedah
ini, lengkungan akan dipertimbangkan di dalam segmen. Sebagai contoh, dalam B-snakes
dan finite-element snakes, lengkungan disegmentasikan ke dalam fungsian asas
polinomial manakala dalam Fourier snakes pula, lengkungan disegmentasikan ke dalam
fungsian asas trigonometrikal.
Terdapat dua pendekatan alternatif lain yang turut dicadangkan untuk kontur aktif
iaitu model pembentukkan geometrik [20] dan kontur dinamik diskret [15]. Walaupun
nama bagi dua pendekatan ini tidak sama dengan pendekatan parameterik, namun pada
asasnya ia menggunakan prinsip yang sama dengan parametrik kontur tradisional.
Kesemua pendekatan ini mempertimbangkan lengkungan sebagai satu set titik-titik atau
vertis yang bersambungan oleh garis lurus atau segmen sisi. Kesemua kontur aktif
mempunyai tingkah laku dinamik yang mengarahkan kontur aktif untuk mengembang
dari kedudukan awalan ke kedudukan akhir (kedudukan sempadan). Tingkah laku kontur
aktif yang dinamik ini adalah bergantung kepada interaksi daya dan kekangan yang
bertujuan untuk meminimakan fungsian tenaga atau terma daya. Terma kekangan ini jika
dibandingkan dengan daya dalaman ianya ditakrifkan berdasarkan kontur aktif dan
bertanggungjawab memelihara bentuk dan kelicinan. Malah terdapat juga kekangan imej
yang biasanya wujud berdasarkan imej gradient. Perbezaan utama antara kesemua kaedah
kontur aktif ini ialah dari segi pandangan kedudukan daya dalaman atau kekangan
dalaman. Sebagai contoh, di dalam kontur parametrik tradisional, komponen daya luaran
seperti tegangan dan tegasan diterbitkan dari kedudukan dan jarak di antara titik vertis
kontur. Di dalam model pembentukan geometrik [20] pula, kekangan dalaman adalah
berdasarkan sudut di antara segmen sisi bersebelahan serta panjangnya yang diterbitkan
dari kedudukan titik vertis berjiran. Dalam kontur dinamik diskret [15], daya dalaman
adalah berdasarkan sudut di antara sisi bersebelahan dan vektor normal vertis yang
dihasilkan dari kedudukan vertis. Menurut Xu & Prince mengenai masalah jarak
tangkapan [26]:
Since in the active contour approaches the external force is based on the gradient
of the image, these active contours still suffer from a limited capture range for the
external force. Also, when an image has a complex background, the active
contour may get confused and finding the correct object boundary from the
gradient magnitude only is not easy.
Pelbagai teknik seperti Pressure Force or Ballon [4], Attraction Potential Force
[5] dan Gradient Vector Flow [26] telah dicadangkan bertujuan untuk mempertingkatkan
jarak tangkapan daya luaran. Di samping itu, pendekatan yang lain seperti kontur aktif
geometrik [2] telah dicadangkan berdasarkan teori evolusi-lengkungan dan kaedah level-
set [16]. Berdasarkan teori ini, lengkungan kontur aktif akan mengecut atau mengendur di
dalam garisan sempadan ketika meminimakan panjangnya. Proses meminimakan
lengkungan ini dilakukan melalui interaksi takrifan fungsi yang berdasarkan lengkungan
dan fungsian dihasilkan dari imej gradient. Kaedah level-set digunakan untuk
memudahkan kontur aktif memusat secara serentak ke beberapa buah objek. Penerangan
secara terperinci termasuk fungsian persamaan bagi snake tradisional atau SVF dan GVF
dibincangkan lebih lanjut di BAB III.
2.5 Kajian Imej Gambar
(i) Saiz wajah yang besar kerana diambil terlalu dekat atau saiz wajah yang
kecil kerana diambil terlalu jauh.
(ii) Kedudukan rotasi pandangan muka sama ada sudut pandangan hadapan,
sudut pandangan atas atau bawah serta sudut pandangan kiri dan kanan.
(iii) Warna gambar sama ada berskala kelabu atau berwarna.
(iv) Kualiti sesebuah gambar tersebut sama ada berkualiti rendah dan tidak
memuaskan atau sebaliknya. Ini merujuk kepada kebisingan gambar.
Bagi gambar wajah muka yang diambil dari jarak yang terlalu jauh, berkualiti
rendah atau bertindih, proses pengesanan dan pengkonturaran adalah sukar untuk
dilakukan. Di dalam projek ini, keadaan imej gambar yang akan digunakan dalam proses
pengesanan dan pengkonturan adalah dihadkan kepada gambar yang diambil dari aras
bahu dan ke atas dan gambar tersebut adalah di dalam skala kelabu serta berwarna.
(a) (b)
Gambar 2.7 : Gambar yang menyukarkan proses pengesanan mata (a) Rambut
menutupi sebahagian kawasan mata dan (b) Kawasan mata dilindungi cermin mata
(a) (b)
Gambar 2.8 : (a) Lakaran kartun yang tidak dianggap sebagai imej wajah manusia
sebenar dan (b) Gambar alam semulajadi
(t-1)
vi
(t-1) vi-1
Struktur kod aplikasi ini dibangunkan oleh Liyan Zhang berdasarkan Senibina
Model-View-Controller (MVC) atau juga dikenali sebagai Senibina Model Terpisah
(Separable Model Architecture). MVC adalah model yang terdiri dari tiga bahagian
penting yang terpisah iaitu:
(i) Model
Menyimpan data yang mentakrifkan komponen
(ii) View
Menghasilkan persembahan visual komponen dari data di dalam model
(iii) Controller
Menguruskan interaksi pengguna dengan komponen serta mengubahsuai
model dan view bersesuaian dengan tindakbalas pengguna.
Berikut adalah gambarajah senibina MVC dan senibina model terpisah.
(a) (b)
Aplikasi ini dibina di dalam persekitaran IDL Virtual Machine khusus untuk
tujuan perubatan. Ia dapat mengkonturkan kawasan organ dalaman manusia yang
dikehendaki. Terdapat beberapa contoh imej organ dalaman yang disediakan seperti
organ dada, jantung dan tulang lutut. David W. Fanning (2003) membangunkan aplikasi
ini dengan menggunakan teknik pengkonturan Model Kontur Aktif yang melibatkan
Gradient Vector Flow (GVF) sebagai daya luarannya. Pengguna dibenarkan memasukkan
nilai parameter kontur aktif (Gambarajah 2.8) serta memplotkan titik garis awalan
kontur aktif ke atas imej. Istimewanya, titik vertis garis awalan kontur yang diplotkan
akan membentuk mengikut bentuk garis sempadan yang dikehendaki (Gambarajah
2.9a).
(a) (b)
(c)
Gambarajah 2.9 : (a) Garis awalan kontur aktif mengikut bentuk sempadan,
(b) Proses pengkonturan dan (c) Hasil pengkonturan GVF organ dada
2.6.3 Pengkonturan Imej Telinga Tengah
Gambarajah 2.12 : Perbandingan hasil pengkonturan gradient dan GVF bagi imej
Malleus (a) Garis awalan kontur yang terletak jauh dari garis sempadan, (b) Hasil
pengkonturan gradient yang gagal memusat ke garis sempadan dan (c) Hasil
pengkonturan GVF yang berjaya memusat ke garis sempadan
Gambarajah 2.13 : Imej dataset MRM telinga tengah manusia
Gambarajah 2.14 : Hasil pengkonturan kawasan Cavity 3 (a) Garis awalan kontur
warna putih, (b) Hasil kontur menggunakan Kontur Dinamik Diskret dan (c) Hasil
kontur menggunakan Parametrik Kontur Aktif
2.6.4 Pengkonturan Kawasan Kepala (Snakes Eyes)
3.1 Pengenalan
Ini kerana hampir semua kaedah tersebut hanya dapat menyelesaikan satu
masalah sahaja tetapi pada masa yang sama timbul pula masalah sampingan. Sebagai
contoh, kaedah multiresolusi boleh menyelesaikan isu jarak tangkapan tetapi untuk
menentukan bagaimana snake harus bergerak ke resolusi yang berbeza tetap menjadi
masalah. Selain itu daya tekanan pula perlu ditakrifkan dengan berhati-hati sama ada ia
ditugaskan untuk menolak keluar atau menolak ke dalam kontur.
Bagaimanapun terdapat daya luaran lain untuk kontur aktif yang dapat
menyelesaikan kedua-dua masalah di atas. Ia dikenali sebagai Gradient Vector Flow
(GVF) iaitu rimbunan vektor yang diterbitkan dari imej dengan meminimakan sesetengah
fungsian tenaga di dalam pelbagai rangka kerja. Proses minima ini dicapai dengan
menyelesaikan pasangan persamaan sebahagian linear yang berbeza, yang akan
menyebarkan vektor gradient aras-kelabu atau peta sisi binari (binary edge map) yang
diperolehi dari imej. Kontur aktif yang menggunakan GVF sebagai daya luaran dipanggil
Snake GVF. Secara pendekatannya, snake GVF yang dikenali daripada formula snake
terdahulu iaitu daya luaran tidak boleh ditulis sebagai negatif gradient bagi fungsian
keupayaan. Oleh sebab itu, ia tidak boleh diformulakan dengan menggunakan rangka
kerja meminimakan tenaga sebaliknya secara terusnya ia ditentukan dari keadaan
keseimbangan daya.
Kelebihan istimewa snake GVF berbanding snake tradisional (SVF) ialah ia tidak
sensitif pada pentakrifan dan kebolehannya untuk bergerak ke lengkung sempadan.
Seperti contoh yang pernah dilakukan, takrifan garis awalan boleh berada di dalam, di
luar atau melintasi sempadan objek [26]. Tidak seperti daya tekanan, snake GVF tidak
memerlukan pengetahuan terdahulu iaitu sama ada untuk mengendur atau membengkok
ke arah garis sempadan. Snake GVF juga mempunyai jarak tangkapan yang besar iaitu
bermaksud ia boleh ditakrifkan jauh dari sempadan. Peningkatan jarak tangkapan dapat
dicapai melalui proses kaburan (diffussion) yang bermakna ia tidak akan mengkaburkan
sisi-sisi dengan sendiri, oleh itu kaedah multiresolusi tidak diperlukan.
1 1 1
E *snake = ∫ 0
E
snake
(v ( s )) ds = ∫ 0
E (v ( s )) +
int
∫ 0
Eext (v ( s )) ds (3.1)
di mana Eint dan Eext masing-masing menandakan tenaga dalaman (internal energy) dan
tenaga luaran (external energy) yang digabungkan dengan kontur aktif. Tenaga dalaman
dihasilkan berdasarkan bentuk setempat kontur dan memelihara sambungan dan kelicinan
kontur aktif. Tenaga luaran pula dihasilkan berdasarkan maklumat imej dan ia akan
memandu kontur aktif ke arah sempadan. Dalam pendekatan parametrik, bentuk umum
fungsian tenaga kontur aktif boleh ditakrifkan seperti berikut:
E * snake = ∫
1
0
[ (α v' (s)
1
2
2
+ β v' ' ( s)
2
)+ E ext (v( s ) )] ds (3.2)
di mana Gσ(x, y) ialah dua dimensi fungsi Gaussian dengan σ ialah sisihan piawai dan ∇
ialah operator gradient. Jika imej terdiri dari lukisan garisan hitam berlatar belakangkan
putih, tenaga luaran yang sesuai ialah:
∂ ∂ v( s) ∂ 2 ∂ 2 v(s)
− α + β + ∇E ext = 0
∂s ∂ s ∂ s 2 ∂ s 2
atau,
persamaan (3.7) boleh dilihat sebagai persamaan keseimbangan daya iaitu gabungan
tenaga (energies) dan daya (forces) [26].
Fext + Fint = 0
di mana,
Fint dan Fext masing-masing merujuk kepada daya dalaman (internal forces) dan daya
luaran (external forces). Daya dalaman Fint menawarkan regangan dan pembengkokkan
sementara daya luaran Fext menarik snake ke arah sisi imej yang diingini. Dengan cara ini,
proses pembentukan boleh diterangkan berdasarkan interaksi tenaga dan pembentukkan
akan berhenti apabila daya telah seimbang antara satu sama lain di lokasi sempadan.
Daya luaran itu sendiri boleh menjadi daya imej dengan hanya menggunakan maklumat
imej atau juga boleh dengan memasukkan kekangan tambahan seperti daya tekanan atau
daya kekangan takrifan pengguna.
apabila penyelesaian v(s, t) stabil, terma vt(s, t) akan hilang dan penyelesaian persamaan
(3.7) akan diperolehi. Penyelesaian matematik (3.9) didapati dengan mendiskretkan
persamaan dan menyelesaikan sistem pendiskretan secara lelaran.
di mana Fimage dan Fconstraint adalah daya imej (image forces) dan daya kekangan
(constraint forces). Alasan untuk mengaplikasikan daya kekangan ialah had jarak
tangkapan bagi daya imej mungkin akan wujud. Ini bermakna daya kekangan digunakan
untuk melengkapkan bimbingan aras tinggi bagi kontur aktif di samping untuk
mempercepatkan kontur aktif memusat ke arah sempadan serta mempertingkatkan jarak
tangkapan daya imej [7].
Merujuk kepada persamaan (3.8), daya luaran bernilai negatif gradient imej.
Dalam kesungguhan untuk mengecam sisi, sebelum menghasilkan gradient imej,
pengecaman sisi atau proses enhancement boleh diaplikasikan pada imej. Terdapat
beberapa teknik pengecaman sisi seperti proses ambang (thresholding), LOG, gradient
dan operator Canny. Teknik-teknik ini telah dibandingkan dan operator gradient telah
dipilih untuk diaplikasikan di dalam pengkonturan wajah ini. Ia dipilih berdasarkan
kemudahan dalam perlaksanaannya. Berikut adalah perbandingan setiap teknik tersebut:
Seperti proses ambang, memilih nilai yang sesuai untuk parameter LOG
adalah berbeza dari satu imej ke imej lain. Ia bergantung kepada jumlah
kebisingan dan ketajaman imej. LOG lebih sesuai digunakan untuk proses
awal dalam membaik pulih kebisingan imej.
Dengan menggunakan maklumat imej, daya imej akan memandu kontur aktif ke
arah garis sempadan. Daya ini boleh dihasilkan berdasarkan sebarang pengecaman sisi
yang sesuai (seperti thresholding, LOG, gradient atau operator Canny) untuk mengesan
garis sempadan objek.
Model “spring” merupakan spring linear dengan titik tetap dan verteks yang
berhubungan dengannya, kedudukannya telah ditentukan oleh pengguna. Pengguna juga
turut memilih verteks. Spring akan menarik verteks menuju ke arahnya dengan daya yang
berkadar dengan jarak di antara titik spring dan verteks:
di mana s dan v adalah kedudukan spring dan verteks, k pula ialah faktor pemberat.
Sebagai terma kekangan, “volcano” membentuk daya tolakan-keluar yang
digunakan untuk kesemua titik vertis dari titik c di dalam kawasan yang diingini. Pada
setiap titik vertis, daya ini adalah berkadar songsang terhadap jarak di antara titik c dan
verteks. Bagi kes verteks berada di atas titik c, daya ini diambil kira menjadi sifar bagi
mengelakkan pembahagian oleh sifar. Model volcano ditakrifkan seperti berikut:
Fvolcano ,i =
1
r
(v i − c ) (3.12)
di mana v dan c adalah kedudukan verteks dan titik c, dan r pula jarak di antara titik c dan
verteks.
Daya tekanan atau model belon [4] telah dicadangkan sebagai daya kekangan
untuk mempertingkatkan jarak tangkapan gradient. Daya tekanan adalah tidak bergantung
kepada maklumat imej di samping mentakrifkan arah pembentukkan kontur aktif sama
ada dengan mengembang atau mengecut. Melalui teknik ini, daya luaran adalah diolah
dari imej dan daya tekanan:
Fimage
Fext = kpressure n(s) − k (3.13)
||Fimage||
di mana kpressure adalah pemberat tekanan dan nilai positif atau negatifnya akan
memimpin kontur aktif untuk mengembang atau mengecut, n(s) mewakili unit normal
vektor terhadap titik vertis, k ialah pemberat daya imej manakala daya imej ialah gradient
bagi imej. Penormalan terhadap daya imej digunakan untuk mendapatkan sempadan
terutamanya apabila sempadan tersebut mempunyai nilai kontras yang rendah.
Jika daya tekanan bertindak terlalu kuat, kontur aktif akan menjadi sempadan
yang lemah terutamanya dengan kehadiran jurang di dalam kontur. Di samping itu,
pemberat daya imej (k) mestilah lebih besar dari pemberat tekanan (kpressure). Ini kerana,
daya imej hendaklah menguasai daya tekanan dan berhentikan kontur aktif pada lokasi
sempadan jika tidak daya tekanan akan memimpin kontur aktif melepasi keluar garis
sempadan.
Ia bermula dari mentakrifkan peta imej f(x, y) yang diterbitkan dari imej I(x, y)
dengan memiliki sifat iaitu ia lebih besar menghampiri sisi imej dikehendaki. Sebarang
peta aras kelabu atau sisi binari ditakrifkan di dalam pemprosesan imej sebagai contoh
di mana i = 1, 2, 3 atau 4. Terdapat tiga jenis sifat peta sisi yang penting pada konteks
terkini. Pertama, gradient bagi peta sisi ∇ƒ mempunyai vektor yang menunding ke arah
sisi. Kedua, vektor-vektor ini mempunyai magnitud besar hanya dalam persekitaran
segera (immediate vicinity) bagi sisi. Ketiga, dalam kawasan kesamaan (homogeneous)
iaitu I(x, y) adalah berdekatan konstant, ∇ƒ adalah berdekatan sifar.
GVF ditakrifkan dengan vektor x (x, y) = [u(x, y), v(x, y)] yang meminimakan
fungsian tenaga ε. Terdapat dua kali kamiran di dalam fungsian ini. Kamiran pertama
untuk mendapatkan permukaan imej manakala kamiran kedua pula untuk mendapatkan
volume bagi imej.
ε = ∫ ∫ µ (u2x + u2y + v2x + v2y) + |∇ƒ |2 |x - ∇ƒ|2 dxdy
ƒ(x, y) = Eimage (x, y) (3.16)
di mana,
Sebarang operator gradient imej digital boleh digunakan untuk mengira ƒx dan ƒy.
Keanjalan b (x, y), c1 (x, y) dan c2(x, y) boleh dihasilkan dan diolah untuk keseluruhan
proses.
Bagi membentuk penyelesaian lelaran, masing-masing menganggap i, j dan n
bersamaan x, y dan t. Kemudian jadikan jarak di antara piksel adalah ∆x dan ∆y serta
langkah masa untuk setiap lelaran ialah ∆t. Sebahagian terbitan yang diperlukan bolehlah
dianggar seperti berikut:
1
ut = (un+1i, j– u n i, j)
∆t
1
vt = (v n+1i, j – v n i, j)
∆t
1
2
∇u= (ui+1, j + ui, j+1 + ui -1, j + ui, j-1 – 4ui, j)
∆x ∆y
1
∇2v =
(vi+1, j + vi, j+1 + vi -1, j + vi, j-1 – 4vi, j)
∆x ∆y
u n+1i, j = (1 – bi,j∆t) uni, j + r(uni+1, j + uni,j+1 + uni-1,j + uni,j-1 – 4uni,j) + c1i,j ∆t (3.20a)
v n+1i, j = (1 – bi,j∆t) vni, j + r(vni+1, j + vni,j+1 + vni-1,j + vni,j-1 – 4vni,j) + c2i,j ∆t (3.20b)
di mana,
µ ∆t (3.21)
r=
∆x ∆y
Pemusatan proses lelaran di atas dijamin oleh keputusan piawai dalam kaedah
teori numerik. Katakan b, c1 dan c2 dihadkan, persamaan (3.20) adalah stabil walaupun
langkah-saiz Courant-Fridrichs-Lewy membatasi r ≤ ¼ dikekalkan. Memandangkan ∆x,
∆y dan µ telah diolah dengan menggunakan pentakrifan r dalam (3.21), didapati
penghadan berikut bagi masa-langkah ∆t mestilah dikekalkan bagi menjamin pemusatan
GVF.
∆x ∆y
∆t ≤
(3.22)
4µ
Pemusatan menjadi lebih pantas terhadap imej kasar apabila nilai ∆x dan ∆y
adalah besar. Jika nilai µ besar dan GVF dijangka menjadi licin, kadar pemusatan akan
menjadi perlahan memandangkan mesti dijadikan ∆t bernilai kecil.
dmin = ½ dedge
dmax = 3/2 dedge (3.23)
Selepas setiap lelaran, jarak di antara dua titik vertis akan dihasilkan. Di dalam
prosidur ini, jika panjang sisi di antara dua jiran titik vertis melebihi dari dmax (piksel 1½),
titik vertis baru dimasukkan di antaranya, sebaliknya dua titik vertis berjiran akan
bercantum jika jarak antara keduanya kurang dari dmin (piksel ½). Konsep bagi kontur
dinamik diskret lebih mudah dan penghasilannya lebih pantas berbanding kontur aktif
sebelumnya iaitu parametrik kontur [11] dan model deformasi geometrik [20]. Proses
persampelan semula kontur dinamik diskret dapat mempertingkatkan resolusi yang wujud
dengan kontur aktif seperti model deformasi geometrik Miller. Ia juga dapat
mengurangkan kesan pengecutan disebabkan oleh daya dalaman aktif kontur tradisional
[15].
Bahagian ini menunjukkan implementasi diskret (merujuk pada masa dan ruang)
parametrik kontur yang pada asalnya dicadangkan oleh Kass et al. (1986). Kaedah
numerikal telah digunakan untuk mengimplementasi kontur aktifnya. Kontur
mengandungi n titik vertis (v) yang dihubungkan dengan garis lurus. Dalam bentuk
diskret, fungsian tenaga kontur aktif (3.1) boleh diwakili seperti berikut:
E*
snake = ∑ [Eint(vi) + Eext(vi)]
i=1
di mana,
di mana v0 = vn, bermaksud kontur aktif adalah kontur terhampir dan titik vertis pertama
dan terakhir berada dilokasi yang sama. Titik-titik vertis mewakili vektor kolum dengan
memenuhi komponen koordinat:
x1 y1
x2 y2
x= . , y= .
. .
xn yn
Persamaan Euler yang sama untuk meminimakan tenaga kontur aktif (3.7) dapat diwakili
sebagai [11]:
∇Eext ∇Eext
+ ∂x , ∂y =0 (3.25)
∇Eext
+ ∂x =0
(3.26)
∇Eext
+ ∂y =0
2α + 6β − α − 4β β 0 0 0 0 0 0 0
− α − 4β 2α + 6β − α − 4β β 0 0 0 0 0 0
β − α − 4β 2α + 6β − α − 4β β 0 0 0 0 0
0 β − α − 4β 2α + 6β − α − 4β β 0 0 0 0
0 0 β − α − 4β 2α + 6β − α − 4β β 0 0 0
A =
0 0 0 β − α − 4β 2α + 6β − α − 4β β 0 0
0 0 0 0 β − α − 4β 2α + 6β − α − 4β β 0
0 0 0 0 0 β − α − 4β 2α + 6β − α − 4β β
0 0 0 0 0 0 β − α − 4β 2α + 6β − α − 4β
0 0 0 0 0 0 0 β − α − 4β 2α + 6β
di mana n mewakili vektor unit normal bagi titik vertis, κ adalah pemberat daya imej dan
κ1 pula mewakili pemberat tekanan. κ1 boleh bernilai positif atau negatif masing-masing
untuk mengembangkan atau mengendurkan kontur aktif.
BAB IV
METODOLOGI
4.1 Pengenalan
Kualiti sesebuah projek adalah bergantung kepada perancangan yang teliti dan
teratur sebelum projek tersebut dibangunkan. Metodologi terdiri daripada kombinasi
suatu paradigma, kaedah, teknik, alatan, notasi, polisi, prosidur, piawai, peraturan dan
bahasa pengaturcaraan yang digunakan untuk menganalisa serta memperincikan
keperluan dan rekabentuk sistem berlandaskan konsep kejuruteraan perisian. Metodologi
ini penting bagi memastikan projek aplikasi yang hendak dibangunkan dapat
dilaksanakan sebagaimana yang telah dirancang sebelumnya. Ia termasuklah pergerakan
data dan maklumat yang berlaku di dalam sesebuah aplikasi. Selain itu, ia juga dapat
membantu pembangun projek memahami dengan lebih mendalam mengenai rekabentuk
aplikasi tersebut. Di dalam bab ini juga dimasukkan fasa pembangunan aplikasi,
spesifikasi imej wajah, perisian dan perkakasan yang terlibat ketika pembangunan
aplikasi.
4.2 Metodologi Aplikasi
i) Proses Input
• Memasukkan imej wajah manusia.
PROSES
INPUT OUTPUT
Input utama bagi aplikasi ini ialah imej wajah manusia. Oleh itu, proses input
adalah merujuk kepada proses memasukkan imej wajah asal yang hendak dikonturkan ke
dalam aplikasi. Imej wajah ini boleh terdiri daripada imej berwarna ataupun berskala
kelabu. Sekiranya imej input adalah berwarna, aplikasi akan menukarkannya dalam
bentuk skala kelabu. Saiz imej mestilah berukuran 180 x 180 piksel sahaja kerana
aplikasi ini telah menetapkan saiz tersebut di dalam aturcara. Sekiranya saiz imej terlalu
besar atau terlalu kecil, ia akan mempengaruhi proses pengkonturan.
Setelah imej dimasukkan di dalam aplikasi, proses pengesanan sisi dan proses
kaburan imej boleh dilaksanakan. Kedua-dua proses ini sebenarnya adalah proses pilihan
iaitu pengguna boleh memilih sama ada ingin melaksanakannya atau sebaliknya.
Pengguna juga boleh memilih untuk melaksanakan kedua-dua proses ini secara serentak
ataupun hanya salah satu daripadanya. Proses pengesanan sisi menggunakan operator
gradient sebagai operator pengesanan. Ia bertujuan untuk mengesan kesemua sisi yang
wujud di dalam imej. Pembangun mencadangkan supaya pengguna melaksanakan proses
ini terlebih dahulu sebelum melaksanakan proses pengkonturan. Ini kerana, setelah
kesemua sisi di dalam imej dikenalpasti, aplikasi dengan mudah dapat menentukan
ketebalan setiap sisi tersebut termasuklah kedudukannya di dalam imej. Dengan ini,
proses pengkonturan dapat dijalankan dengan lebih pantas. Proses kaburan imej pula
bertujuan untuk mengkaburkan imej asal. Proses ini menggunakan operator Gaussian dan
nilai Sigma (σ) sebagai operator kaburan. Ia hanya dilakukan sekiranya imej input
mempunyai jumlah kebisingan (noise) yang tinggi. Secara tidak langsung, ia dapat
mengurangkan kebisingan imej. Sekiranya imej input adalah jelas dan tidak mempunyai
kebisingan, proses kaburan imej tidak perlu dilaksanakan.
Proses pengkonturan adalah proses utama di dalam aplikasi ini. Proses ini
melibatkan empat proses yang dilaksanakan secara berjujukan. Empat proses tersebut
ialah:
Terdapat dua jenis daya luaran yang disediakan di dalam aplikasi ini iaitu
SVF dan GVF. Snake SVF merupakan snake tradisional yang hanya
menggunakan gradient sebagai daya luaran bagi kontur aktif. SVF
mempunyai kelemahan dari segi jarak tangkapan iaitu mengambil masa
yang lama untuk melelarkan pengkonturan. Snake GVF pula
diadaptasikan dari gabungan gradient serta operator Laplacian dan
merupakan daya luaran alternatif yang dapat menyelesaikan kelemahan
tersebut. Pengguna boleh memilih sama ada hendak menggunakan daya
luaran SVF atau GVF sebelum melaksanakan pengkonturan. Setelah itu
pengguna boleh memilih sama ada hendak menormalkan vektor daya
luaran yang telah dipilih. Dengan menormalkan vektor SVF atau GVF,
aliran vektor (yang kelihatan seperti anak panah seperti Gambarajah 6.9)
dapat dilihat dengan lebih jelas dan ini memudahkan lagi proses
pengkonturan. Oleh itu, pengguna digalakkan untuk menormalkan vektor
daya luaran. Hasil proses pemilihan daya luaran akan dipaparkan di Peta
Daya Luaran.
Masukkan Input
Imej Wajah
Hasil Pengesanan
Proses Pengesanan Sisi & Kaburan
Sisi & Kaburan Imej Imej
Memplot Garisan
Awalan Kontur Aktif
Masukkan Nilai
Parametrik Snake
Tamat
Hasil ouput bagi aplikasi ini ialah garis sempadan wajah yang merangkumi ciri-
ciri wajah manusia seperti dahi, kening, mata, hidung, pipi, mulut dan dagu. Sekiranya
hasil yang didapati turut mengkonturkan kawasan sempadan luar rambut ataupun tidak
dapat merangkumkan ciri-ciri wajah seperti yang dinyatakan, proses pengkonturan itu
dianggap gagal. Proses tersebut juga dianggap tidak sempurna sekiranya ia
mengkonturkan kawasan telinga. Hasil output snake SVF dan snake GVF adalah berbeza.
Oleh itu, pembangun akan membuat pengujian, perbandingan dan kesimpulan terhadap
perbezaan hasil output tersebut.
Fasa pembangunan bagi aplikasi ini dibahagikan kepada lima fasa terpisah. Setiap
fasa akan disiapkan terlebih dahulu sebelum melaksanakan fasa yang berikutnya. Ini
dapat menjimatkan masa pembangunan aplikasi kerana ralat dan maklum balas yang
dikesan dalam setiap fasa dapat diambil tindakan pada peringkat awal lagi.
Bagaimanapun, setiap fasa tersebut saling berkaitan bergantung kepada kehendak
pembangunan aplikasi. Lima fasa yang dimaksudkan ialah:
Dalam fasa ini, tumpuan akan diberikan kepada mengenal pasti masalah, objektif
dan skop projek. Penyiasatan awal dilakukan setelah cadangan tajuk projek ditentusahkan
dan maklumat diperolehi dari kajian sedia ada. Selain itu, kajian kesauran terhadap
ekonomi, operasi dan teknikal turut dijalankan di dalam fasa ini. Kesauran ekonomi
merangkumi penentuan kos dan faedah yang akan diperolehi. Kesauran operasi pula
untuk menentukan proses yang berlaku ketika membangunkan aplikasi. Manakala
kesauran teknikal melibatkan pertimbangan terhadap keupayaan, kebolehpercayaan,
keperluan perkakasan serta perisian yang boleh menyokong perlaksanaan projek.
Tujuan fasa ini ialah untuk menetapkan perkhidmatan, kekangan dan matlamat
projek berdasarkan kajian ke atas keperluan pengguna. Maklumat mengenai keperluan ini
akan ditakrifkan dalam bentuk yang boleh difahami oleh kedua-dua pembangun dan
pengguna. Pembangun akan mencari maklumat mengenai aktiviti pengkonturan dari
pelbagai sumber sama ada dari buku, makalah, jurnal dan internet. Pemahaman terhadap
pengkonturan menggunakan Model Kontur Aktif atau Snake akan diberikan secara
terperinci kerana model tersebut digunakan dalam operasi aplikasi. Di samping itu,
pembangun juga akan memberi perhatian kepada teknik atau kaedah lain yang boleh
digunakan dalam melaksanakan proses pengkonturan sebagai tindak balas rujukan. Selain
dari kepelbagaian model untuk aktiviti pengkonturan, beberapa buah perisian turut
diselidik bagi menentukan perisian yang bersesuaian untuk membangunkan aplikasi.
4.3.3 Fasa Rekabentuk Aplikasi
Fasa ini bertujuan untuk menetapkan senibina aplikasi secara keseluruhan dan
menentukan sempadan yang wujud di antara perisian dan perkakasan. Fasa ini juga
melibatkan pembangunan arahan-arahan aplikasi yang akan diterjemahkan kepada
implementasi iaitu penulisan aturcara. Antara aktiviti-aktiviti yang terlibat dalam fasa ini
terdiri daripada:
Pada fasa ini, rekabentuk aplikasi akan diterjemahkan kepada kumpulan program
atau unit-unit dan dikodkan dengan menggunakan teknik pengaturcaraan berstruktur.
Unit-unit tersebut akan diuji dengan menggunakan spesifikasi masing-masing.
Seterusnya unit-unit akan digabungkan menjadi satu aplikasi dan pengujian terhadap
aplikasi itu akan dilaksanakan untuk menentukan keupayaan aplikasi serta memastikan
aplikasi dapat berfungsi mengikut spesifikasi yang dikehendaki oleh pengguna.
Fasa ini dilakukan setelah mendapatkan hasil pengkonturan dan pengujian yang
berulang kali dilaksanakan ke atas aplikasi. Perbandingan yang dimaksudkan ialah dari
sudut pemilihan bidang vektor daya luaran pengkonturan iaitu Standard Vektor Field
(SVF) dan Gradient Vektor Flow (GVF). Kedua-dua bidang ini memberikan impak hasil
kontur wajah yang berbeza. Perbezaan hasil ini akan dicatatkan untuk perbandingan.
Kesimpulan akan dibuat berdasarkan hasil yang terbaik dari pengkonturan kedua-dua
bidang.
Bagi aplikasi ini, pembangun telah menetapkan spesifikasi tertentu bagi imej
wajah manusia untuk proses pengkonturan. Sekiranya imej tersebut tidak memenuhi ciri-
ciri yang ditetapkan, ia akan mengganggu aktiviti pengkonturan. Spesifikasi imej tersebut
adalah seperti berikut:
i) Imej wajah manusia bersudut pandangan hadapan sahaja.
ii) Imej hendaklah bersaiz 180 x 180 piksel.
iii) Imej berskala kelabu dan berwarna dibenarkan.
iv) Imej mestilah jelas dan tidak mengandungi nilai kebisingan yang besar.
v) Imej berformat Bitmap (*.bmp), Portable Gray Magnitud (*.pgm), JPEG
(*.jpeg) dan TIFF (*.tiff) sahaja dibenarkan.
vi) Mengandungi satu wajah manusia sahaja di dalam sesebuah imej.
Berikut adalah contoh imej wajah yang diperlukan dan dibenarkan untuk penggunaan
aplikasi ini. Contoh-contoh lain disertakan di LAMPIRAN C.
180 180
180 180
(a) (b)
Gambar 4.1 : Contoh imej berwarna yang dibenarkan untuk pengkonturan (a) imej
wajah lelaki dan (b) imej wajah wanita
4.5 Keperluan Perisian dan Perkakasan
4.5.1.1 MATLAB
Perisian ini digunakan untuk mengedit saiz imej wajah manusia dari pelbagai saiz
piksel kepada saiz 180 x 180 piksel. Ia juga digunakan untuk melakarkan latar belakang
antaramuka tetingkap pertama aplikasi.
Perisian ini digunakan untuk membina Carta Gantt yang terdiri daripada
Perancangan Projek I dan Perancangan Projek II ketika membangunkan Aplikasi Kontur
Wajah.
REKABENTUK APLIKASI
5.1 Pengenalan
1
5.2 Pembahagian Tetingkap Aplikasi
2
5.2.3 Tetingkap Ketiga
Sekiranya pengguna ingin mengubah hasil imej wajah yang telah didapati,
pengguna boleh kembali ke Tetingkap Kedua melalui bebutang ‘Kembali’. Tetingkap
Ketiga membolehkan pengguna memilih dua vektor daya luaran pengkonturan sama ada
Standard Vector Field (SVF) atau Gradient Vector Flow Field (GVF). Kedua-dua bidang
ini akan memberikan hasil pengkonturan Snake yang berbeza. Jika GVF dipilih,
pengguna dibenarkan untuk memasukkan nilai Mu (µ) dan lelaran untuk GVF. Setelah
itu, pengguna boleh memilih bebutang radio ‘Vektor Normal’ sekiranya ia dikehendaki.
Hasilnya adalah paparan Peta Vektor Daya Luaran sama ada bagi SVF atau GVF yang
dapat dilihat di Tetingkap Keempat setelah bebutang ‘Teruskan’ diklik.
3
5.3 Hirarki Tetingkap Aplikasi
KONTUR WAJAH
Tetingkap Pertama
Tetingkap Kedua
Tetingkap Ketiga
Tetingkap Keempat
4
Hirarki yang telah ditunjukkan memperlihatkan pergerakan sesebuah tetingkap
dengan tetingkap yang lain secara umum. Hirarki ini seolah-olah menunjukkan aplikasi
hanya melibatkan arah sealiran tanpa cabang. Setelah pengguna dipaparkan Tetingkap
Kedua pengguna tidak dibenarkan berundur ke Tetingkap Pertama. Ini kerana Tetingkap
Pertama hanya akan dipaparkan sekali sahaja setelah pengguna memasuki aplikasi.
Tetingkap Ketiga saling bertindak balas dengan Tetingkap Kedua manakala Tetingkap
Keempat saling bertindak balas dengan Tetingkap Ketiga. Tetingkap Keempat
membenarkan pengguna melaksanakan proses pengkonturan secara bergelungan berulang
kali. Pengguna tidak dibenarkan melangkau dari Tetingkap Kedua ke Tetingkap Keempat
tanpa melalui Tetingkap Ketiga terlebih dahulu dan begitulah sebaliknya.
Terdapat empat cartalir tetingkap yang mewakili empat jenis tetingkap aplikasi.
Cartalir ini menunjukkan aliran keempat-empat tetingkap secara lebih terperinci. Cartalir
Tetingkap Pertama memaparkan pergerakan pertama setelah pengguna memasuki
aplikasi dan begitulah seterusnya. Bulatan A di Cartalir Tetingkap Pertama bermaksud
pengguna boleh melaksanakan proses di Cartalir Tetingkap Kedua. Bulatan B di Cartalir
Tetingkap Kedua pula bermaksud pengguna boleh memasuki ruangan di Cartalir
Tetingkap Ketiga. Akhir sekali Bulatan C di Cartalir Tetingkap Ketiga merujuk kepada
Cartalir Tetingkap Keempat.
5
Mula
Tetingkap
Selamat
Datang
Ya
A
Teruskan?
Tidak
Tamat
6
A
Imej
Wajah Asal
Ya Buka Imej
Pilih Wajah Baru
Bebutang yang
Imej? dikehendaki
Tidak
Masukkan Imej
Gradient Wajah Baru
(Pengesanan Sisi)
Imej Wajah
Gradient yang
B dikaburkan
atau
sebaliknya
7
B
GVF
SVF Masukkan nilai
atau Mu (µ) dan
GVF? Lelaran GVF
SVF
Bebutang
Kembali
Teruskan
A
atau
Kembali?
Teruskan
8
C
Masukkan nilai
parametrik Alpha,
Beta, Gamma, Kappa,
Dmin, Dmax dan
Lelaran
Masukkan jumlah
Titik ketebalan bagi
garisan awalan
Hasil kontur
Bebutang pada imej
Kontur wajah
Proses
tamat?
Tidak
Ya
Tamat
9
5.5 Antaramuka Pengguna Tetingkap Aplikasi
Kontur
Wajah
Teruskan
10
Kontur Wajah
Kembali Teruskan
Paparan Imej
Wajah Asal
√ Gradient
Sigma : XX
Kontur Wajah
Kembali Teruskan
Paparan Imej Paparan Wajah
Wajah Asal Gradient dan/atau
Wajah Kabur SVF
GVF
Mu : XX
Lelaran : XX
Vektor Normal
11
Kontur Wajah
Kembali Kontur
Paparan Imej Paparan Wajah
Wajah Asal Gradient dan/atau
Wajah Kabur
Alpha : XXX
Beta : XXX
Gamma : XXX
Paparan Peta Kappa : XXX
Vektor Daya
Luaran SVF atau DMin : XXX
GVF
DMax : XXX
Lelaran : XXX
Semula Garisan
√ Tebal Titik : XX
12
BAB VI
6.1 Pengenalan
Fasa Hasil dan Implementasi dilakukan sebaik sahaja fasa sebelum ini iaitu Fasa
Rekabentuk aplikasi dilaksanakan. Fasa ini telah dijalankan berdasarkan tiga bahagian
utama iaitu:
64
telah dirancang. Setelah itu, aturcara akan dikodkan dan diubah suai di setiap bahagian
fail editor antaramuka tetingkap bagi menghasilkan perhubungan dan tindak balas antara
tetingkap. Fail editor baru juga akan diwujudkan untuk menambah fail-fail fungsian.
65
Setelah pengguna memilih bebutang ‘Teruskan’, Tetingkap Kedua pula akan
dipaparkan seperti di bawah berikut:
Di Tetingkap Kedua pengguna boleh menukarkan imej wajah sedia ada kepada
imej wajah lain dengan memilih bebutang ‘Imej’. Kekotak dialog buka imej wajah akan
dipaparkan seperti berikut:
66
6.3.1 Pengesanan Sisi Imej Wajah
Pengguna boleh melaksanakan proses pengesanan sisi imej wajah (jika mahu) di
Tetingkap Kedua. Ini boleh dilakukan dengan memasukkan gradient (mengklik bebutang
checkbox gradient) ke atas imej. Tujuan melakukan pengesanan sisi imej adalah supaya
snake lebih mudah untuk mengecam kedudukan kesemua sisi yang terdapat pada imej.
Dengan ini snake dapat dikonturkan dengan lebih baik. Hasil imej wajah sisi gradient
adalah seperti berikut:
(a) (b)
Gambarajah 6.4 : (a) Imej wajah gradient dan (b) Imej wajah tanpa gradient
Parameter Sigma (σ) pula bertujuan untuk mengkaburkan imej wajah asal.
Semakin besar nilai σ, semakin kabur imej tersebut. Nilai σ dimasukkan bergantung
kepada jumlah kebisingan imej. Ini bermaksud semakin besar jumlah kebisingan yang
terdapat di dalam sesebuah imej, semakin besar nilai sigmanya. Oleh kerana contoh-
contoh imej wajah yang digunakan di dalam aplikasi ini adalah jelas, pengguna tidak
perlu memasukkan nilai sigma (σ = 0).
67
(a) (b) (c)
Gambarajah 6.5 : Contoh imej wajah gradient dengan nilai (a) σ = 1, (b) σ = 2
dan (c) σ = 3
Gambarajah 6.6 : Contoh imej wajah tanpa gradient dengan nilai (a) σ = 1, (b) σ = 2
dan (c) σ = 3
Hasil paparan imej wajah dengan pengesanan sisi gradient atau wajah kabur
dipaparkan di Tetingkap Ketiga. Tetingkap ini juga membolehkan pengguna memilih
pengkonturan snake dengan daya luaran Standard Vektor Field (SVF) atau Gradient
Vector Flow (GVF).
68
Gambarajah 6.7 : Hasil Antaramuka Tetingkap Ketiga
69
6.4 Perbandingan Hasil Implementasi
Peta daya luaran disediakan di dalam aplikasi supaya pengguna dapat melihat
perbezaan di antara Snake yang menggunakan daya luaran SVF dan GVF. Dengan ini
pengguna dapat membuat perbandingan dan kesimpulan. Peta ini memperlihatkan
pergerakan arah anak panah (vektor) menuju ke arah dalam atau luar sisi. Sempadan jelas
kelihatan apabila vektor dari dalam dan luar kawasan sisi bertembung ke arah yang
bertentangan.
SVF menggunakan gradient sendirian sebagai vektor daya luaran Snake. Untuk
menghasilkan peta ini, ia tidak memerlukan sebarang bilangan lelaran dan nilai Mu. Oleh
itu, vektornya adalah pendek dan pergerakannya lebih berselerak (Gambarajah 6.9(a)).
Pertembungan vektornya akan jelas kelihatan di garis sisi sempadan yang lebih tebal.
Vektor SVF yang tidak normal pula (Gambarajah 6.9(b)) menunjukkan anak panah
70
yang lebih pendek (hampir tidak kelihatan) di garis sempadan imej. Di kawasan bukan
sempadan pula anak panah tersebut kelihatan seperti susunan titik-titik yang teratur.
(a) (b)
(c) (d)
Gambarajah 6.9 : Peta daya luaran SVF dengan (a) vektor normal, (b) vektor tidak
normal; GVF dengan (c) vektor normal dan (d) vektor tidak normal
71
parameter pemberat untuk GVF atau disebut sebagai faktor regularisasi. Pemilihan nilai µ
adalah bergantung kepada jumlah kebisingan imej. Semakin besar kebisingan imej,
semakin besar nilai µ. Berikut adalah perbezaan hasil peta vektor bagi tiga contoh nilai µ.
(a) (b)
(c)
Gambarajah 6.10 : Peta vektor daya luaran yang dihasilkan oleh GVF
dengan µ (a) 0.01, (b) 0.05 dan (c) 0.2
Semakin besar nilai µ, semakin jelas dan teratur susunan aliran vektornya. Untuk aplikasi
ini, pembangun telah menetapkan nilai µ = 0.1 kerana ia bersesuaian dengan bentuk imej
input.
72
Vektor GVF bermula dari kawasan dalam dan menghala ke sempadan. Seperti
SVF, sempadan GVF jelas kelihatan apabila vektor dari dalam dan luar kawasan
bertembung pada arah yang bertentangan. Oleh demikian, GVF dengan mudah akan
memimpin kontur aktif ke arah sempadan dan melekat pada kedudukan garis sempadan.
(a) (b)
(c) (d)
Gambarajah 6.11 : Peta vektor daya luaran yang dihasilkan oleh GVF dengan
lelaran (a) 5, (b) 40, (c) 80 dan (d) 100
73
Gambarajah 6.11 (menggunakan nilai µ = 0.1) menunjukkan perbezaan hasil
peta vektor dengan jumlah lelaran yang berbeza. Di antara keempat-empat peta vektor
tersebut, Gambarajah 6.11(d) yang berlelaran 100 memperlihatkan kedudukan vektor
yang lebih padu dan tersusun. Lebih besar jumlah lelaran maka lebih tepat kedudukan
sempadannya. Bagaimanapun, bentuk peta vektor tersebut lebih kurang sama dengan
lelaran 80. Di sini, dapat disimpulkan bahawa dengan memilih bilangan lelaran sebanyak
80 adalah sudah memadai. Pemilihan lelaran bersamaan 80 adalah berdasarkan kepada
faktor masa. Semakin besar nilai lelaran maka semakin lama masa yang diambil untuk
mengira GVF. Oleh yang demikian, jumlah lelaran bersamaan 80 adalah sesuai untuk
mengira GVF.
Salah satu perkara yang paling penting dalam perlaksanaan kontur aktif ialah pemilihan
faktor pemberat parameter kontur seperti tegangan, tegasan dan pemberat daya luaran.
Pengujian terhadap kesesuaian parameter ini dijalankan berulang kali dengan pelbagai
kombinasi yang berbeza. Sekiranya pengguna menggunakan gabungan nilai parameter
yang tidak bersesuaian, kontur aktif akan memberikan hasil yang tidak diingini.
74
6.4.3 Garisan Awalan Kontur Aktif
Jadual 6.1 : Jadual ringkas 5 contoh yang diuji ke atas SVF dan GVF
75
6.4.4.1 Pengkonturan Snake SVF
Gambarajah 6.12 : Contoh Pertama hasil SVF (a) Garisan awalan kontur aktif (b)
Lelaran kali pertama (c) Lelaran kali kedua
76
(a) (b)
Gambarajah 6.13 : Contoh Kedua hasil SVF (a) Garisan awalan kontur aktif, (b)
Lelaran pertama, (c) Lelaran kedua, (d) Lelaran ketiga dan (e) Hasil kontur
77
(a) (b) (c)
Gambarajah 6.14 : Contoh Ketiga hasil SVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama dan (c) Lelaran kedua
Contoh Keempat (Gambarajah 6.15) hanya melibatkan 4 titik vertis sahaja dan
diletakkan berdekatan dengan garis sempadan. Nilai parameter ialah α = 5, β = 2, γ = 1
dan Lelaran = 40. Contoh ini memberikan hasil yang paling baik dengan dua kali lelaran
(bersamaan 40 x 2 = 80 lelaran).
78
(a) (b) (c)
Gambarajah 6.15 : Contoh Keempat hasil SVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama dan (c) Lelaran kedua
(a) (b)
Gambarajah 6.16 : Contoh Kelima hasil SVF (a) Garisan awalan kontur aktif, (b)
Lelaran pertama, (c) Lelaran kedua, (d) Lelaran ketiga dan (e) Hasil kontur
79
6.4.4.2 Pengkonturan Snake GVF
Gambarajah 6.17 : Contoh Pertama hasil GVF (a) Garisan awalan kontur aktif (b)
Lelaran kali pertama (c) Lelaran kali kedua
80
(a) (b)
(c) (d)
Gambarajah 6.18 : Contoh Kedua hasil GVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama, (c) Lelaran kedua dan (d) Hasil kontur
81
(a) (b)
(c) (d)
Gambarajah 6.19 : Contoh Ketiga hasil GVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama, (c) Lelaran kedua dan (d) Hasil kontur
(a) (b)
Gambarajah 6.20 : Contoh Keempat hasil GVF (a) Garisan awalan kontur aktif
dan (b) Lelaran pertama
82
Contoh Kelima GVF (Gambarajah 6.21) juga melibatkan 4 titik vertis tetapi
kedudukannya diletakkan berjauhan dari sempadan. Nilai parameter yang sesuai ialah
α = 40, β = 20, γ = 1 dan Lelaran = 40. Sama seperti SVF, hasil kontur GVF juga agak
baik tetapi memerlukan masa yang lama untuk dikonturkan iaitu 4 kali lelaran
(bersamaan 40 x 4 = 160 lelaran). Bagaimanapun pada awalnya, GVF berkecenderungan
untuk melentur ke garis sempadan luar kepala iaitu sisi luar rambut (Gambarajah
6.21(b)). Di samping itu, jika nilai α ditambah lebih dari 40, kontur aktif akan bergerak
dan memusat ke kawasan dalam sempadan wajah. Ini bermaksud, ia berkecenderungan
untuk memusat ke kawasan mata dan mulut.
(a) (b)
Gambarajah 6.21 : Contoh Kelima hasil GVF (a) Garisan awalan kontur aktif, (b)
Lelaran pertama, (c) Lelaran kedua, (d) Lelaran ketiga dan (e) Hasil kontur
83
6.5 Rumusan Pengkonturan SVF dan GVF
Bagi kelima-lima contoh pengkonturan SVF dan GVF di atas, input nilai
parametrik selain daripada α, β, γ dan lelaran adalah sama iaitu nilai κ = 0.6 (kecuali
Contoh Ketiga, κ = 1), Dmin = 0.5 dan Dmax = 2. Ketiga-tiga parameter ini
menggunakan nilai yang sama kerana nilai input tersebut adalah paling bersesuaian bagi
kesemua contoh yang diberi. Jadual berikut menunjukkan perbandingan hasil
pengkonturan dan masa lelaran yang diambil oleh SVF dan GVF.
SVF GVF
CONTOH
LELARAN PEMBERAT HASIL LELARAN PEMBERAT HASIL
Kurang
1 80 α = 5, β = 2 Baik 70 α = 5, β = 2
Baik
Kurang
2 160 α = 10, β = 2 Baik 80 α = 10, β = 2
Baik
α = 20, β = α = 20, β =
3 80 Gagal 120 Gagal
10, κ = 1 10, κ = 1
Kurang
4 80 α = 5, β = 2 Baik 40 α = 5, β = 2
Baik
Jadual 6.2 : Perbandingan lelaran dan hasil bagi 5 contoh SVF dan GVF
SVF memberikan hasil pengkonturan yang sangat baik bagi empat contoh yang
diuji. Hasil kontur yang diperolehi adalah sempurna walaupun bilangan vertis adalah
minimum iaitu 4 vertis. Bilangan titik vertis kurang dari 4 titik adalah tidak sesuai.
Kelemahan SVF yang utama ialah dari segi masa lelaran. Jika kedudukan garis awalan
agak jauh dari garis sempadan dikehendaki, maka SVF memerlukan lebih masa lelaran
seperti Contoh Kedua. Jika kedudukan garis awalan menghampiri sempadan pula, masa
84
lelaran bagi SVF adalah kurang tetapi masih banyak berbanding GVF seperti Contoh
Pertama dan Contoh Keempat. Walau bagaimanapun, SVF gagal mendapatkan hasil
kontur yang dikehendaki bagi Contoh Ketiga. Ini kerana kedudukan garis awalan terlalu
jauh dari sempadan wajah. Ia terletak di luar kawasan kepala manusia. Ini menyebabkan
kontur aktif lebih tertarik untuk mengembang ke arah garis sempadan luar kepala iaitu
menyusuri garisan sisi luar rambut dan telinga.
GVF pula memberikan hasil yang kurang baik bagi tiga contoh diberi. Hasil yang
kurang baik bermaksud, ia tidak dapat mengkontur garis sempadan wajah dengan betul.
Seperti Contoh Pertama, Kedua dan Keempat, GVF turut mengkonturkan garis
sempadan luar telinga sedangkan ia tidak diperlukan. Hanya Contoh Kelima sahaja
memberikan hasil yang baik. Walaupun hasil yang diperolehi kurang baik, masa lelaran
yang diambil oleh GVF lebih cepat berbanding dengan SVF. Ini kerana, GVF dapat
menangkap jarak tangkapan lelaran dengan lebih baik. Seperti SVF, Contoh Ketiga bagi
GVF juga adalah gagal. GVF bukan sahaja tidak dapat melentur ke sempadan yang
diingini dengan baik malah masa lelaran yang diambil juga lebih banyak berbanding
SVF.
85
6.6 Perbandingan Aplikasi Kontur Wajah dan Aplikasi Sedia Ada
Setelah aplikasi Kontur Wajah (KW) telah selesai dibangunkan dan perbandingan
terhadap hasil SVF dan GVF dilakukan, pembangun turut membuat rumusan terhadap
perbezaan hasil yang diperolehi antara aplikasi ini dengan aplikasi sedia ada. Antara
empat aplikasi sedia ada seperti yang dibincangkan di BAB II, aplikasi Pengkonturan
Telinga Tengah (PTT), telah diambil sebagai perbandingan. Ini kerana, walaupun
matlamat utama aplikasi tersebut iaitu mengkonturkan kawasan yang terdapat di telinga
tengah manusia tidak sama dengan matlamat aplikasi Kontur Wajah, namun ia
menggunakan pendekatan daya luaran kontur aktif yang sama iaitu SVF dan GVF.
Rumusan mengenai perbezaan hasil kedua-dua aplikasi ini adalah lebih tertumpu kepada
empat kriteria utama iaitu iaitu bilangan titik vertis bagi garis lengkungan kontur aktif,
kedudukan garis awalan kontur aktif, nilai parametrik kontur aktif serta jumlah bilangan
lelaran yang diambil oleh aktiviti pengkonturan.
86
6.6.2 Kedudukan Garisan Awalan Kontur Aktif
87
6.6.4 Bilangan Lelaran Pengkonturan
Bagi aplikasi KW, bilangan lelaran yang diambil oleh kedua-dua SVF dan GVF
untuk kebanyakan contoh imej wajah tidak melebihi 500 lelaran. Seperti aplikasi PPT,
masa lelaran GVF bagi aplikasi KW adalah lebih pantas berbanding SVF.
Bagaimanapun, kepantasan GVF masih tidak dapat memberikan hasil pengkonturan
wajah yang baik seperti SVF. Snake GVF lebih bergantung kepada kedudukan garisan
awalan kontur aktif di atas imej input.
88
BAB VII
KESIMPULAN
7.1 Kesimpulan
Pembangunan aplikasi ini adalah berdasarkan dari pengesanan sisi imej dan
pengkonturan imej wajah mengikut bentuk lengkung kawasan muka. Untuk proses
pengesanan sisi imej, operator gradient digunakan manakala proses pengkonturan garis
sempadan wajah pula mengaplikasikan Model Kontur Aktif atau Pembentukkan Snake
(Snake Deformable). Gambar atau imej wajah manusia individu yang digunakan sebagai
input adalah berskala kelabu serta berwarna yang merangkumi aras bahu ke atas dan
bersaiz 180 x 180 piksel sahaja. Jika input imej adalah imej berwarna, aplikasi akan
menukarkan imej tersebut kepada imej berskala kelabu. Setelah pengkonturan
dilaksanakan, kawasan sempadan wajah yang diperolehi akan merangkumi ciri-ciri wajah
seperti dahi, kening, mata, hidung, pipi, mulut dan dagu.
Aplikasi ini terdiri dari empat antaramuka yang utama iaitu merangkumi empat
tetingkap. Tetingkap Pertama merupakan Flash Screen atau tetingkap pengenalan
aplikasi. Tetingkap Kedua membolehkan pengguna memilih sama ada untuk
melaksanakan proses pengesanan sisi (menggunakan operator gradient) atau sebaliknya.
Selain itu, pengguna boleh mengkaburkan imej dengan memasukkan nilai sigma jika
difikirkan perlu. Tetingkap Ketiga pula membenarkan pengguna untuk memilih dua jenis
64
vektor daya luaran (external forces) pengkonturan sama ada Standard Vector Field (SVF)
atau Gradient Vector Flow (GVF). Tetingkap Keempat pula memaparkan hasil
pengkonturan. Nilai-nilai parameter kontur aktif untuk kedua-dua bidang vektor ini boleh
dimasukkan di tetingkap ini. Di samping itu, pengguna juga boleh meletakkan garis
awalan kontur (dengan memplotkan titik vertis) di atas imej mengikut bentuk raut wajah
manusia.
Setelah beberapa pengujian dilaksanakan terhadap vektor SVF dan GVF, terdapat
beberapa kesimpulan yang boleh diputuskan. Pertamanya, dengan kedudukan garisan
awalan kontur serta menggunakan nilai kontur aktif yang sama untuk kedua-dua bidang
vektor tersebut, snake GVF hanya memerlukan jumlah lelaran yang sedikit berbanding
snake SVF. Contohnya, jika GVF hanya memerlukan lelaran sebanyak 50 maka snake
SVF memerlukan dua kali atau lebih dari lelaran GVF. Ini kerana, GVF dapat
menyelesaikan masalah jarak tangkapan yang dialami oleh SVF. Bagaimanapun, tidak
semestinya sedikit tempoh masa lelaran yang diambil dapat menghasilkan output yang
terbaik. Menurut contoh-contoh yang diberi di BAB VI, vektor SVF memberikan hasil
yang lebih baik berbanding dengan GVF. Paling penting sekali bagi kedua-dua vektor ini
ialah penggunaan nilai tegangan (α) dan tegasan (β) yang bersesuaian antara satu lain
dengan bentuk sempadan yang ingin dikonturkan. Dengan ini, kesimpulan kedua yang
boleh dibuat ialah berkenaan kombinasi nilai parameter kontur aktif. Biasanya, nilai
tegasan (β) adalah setengah dari nilai tegangan (α) sebagai contoh jika nilai adalah α = 5,
nilai yang sesuai bagi β ialah 2 ataupun 2.5 iaitu bergantung kepada jarak kedudukan
garis awalan kontur aktif dengan garis sempadan. Semakin jauh kedudukannya, semakin
besar nilai bagi α. Sekiranya kedua-dua nilai ini tidak bersesuaian, maka kontur aktif
akan lebih tertarik menuju ke arah sempadan yang tidak diingini.
65
Pada masa akan datang, diharapkan pembangun dapat menghasilkan bentuk
konturan yang lebih baik berbanding yang sedia ada. Aktiviti pengkonturan tersebut
bukan sahaja dapat memperolehi hasil yang cantik malah melibatkan masa lelaran yang
minima. Ini mungkin boleh dilaksanakan dengan menggunakan Gradient Plus Pressure
sebagai daya luaran seperti yang dilakukan oleh Hatamzadeh, J. T. [9] dalam aplikasinya
mengenai pengkonturan telinga tengah.
66
RUJUKAN
11. Kass, M., Terzopoulos, D. and Witkin, A. (1986). “Snakes: Active Contour
Models.” International Journal of Computer Vision. 3. 321 – 331.
12. Kreyszig, E. (1993). “Advanced Engineering Mathematics.” 7th ed. : John Wiley.
13. Leroy, B., Cohen, L. D. and Herlin, I. (1996). “Multi-Resolution Algorithms for
Active Contour Models.” 12th Int. Conf. Analysis and Optimization of
Systems. 58 – 65.
14. Lilian Ji and Hong Yan (2001). “Robust Topology-Adaptive Snakes for Image
Segmentation.” Image and Vision Computing. 20. 147 – 164.
16. Malladi, R., Sethian, J. A. and Vemuri, B. C. (1995). “Shape Modelling With
Front Propagation: A Level Set Approach.” IEEE Trans. on PAMI. (17).
158 – 175.
17. Marr, D. and Sethian J. A. (1980). “Theory of Edge Detection.” Proc. R. Soc.
London. (207). 187 – 217.
22. Nikolaidis, A. and Pitas, I. (2000). “Facial Feature Extraction and Pose
Determination.” Pattern Recognition. 33. 1783 – 1791.
24. Williams, Donna, J. and Shah, M. (1992). “A Fast Algorithm for Active Contours
and Curvature Extimation.” CVGIP: Image Understanding. 55(1).
14 – 26.
25. Wong, K. W., Lam, K. M. and Siu, W. C. (2001), “An Efficient Algorithm for
Human Face Detection and Facial Feature Extraction Under Different
Conditions.” Pattern Recognition. 34. 1993 – 2004.
26. Xu, C. and Prince, J. L. (1997). “Gradient Vector Flow: A New External Force for
Snakes.” IEEE Proceedings Conf. on Computer Vision and Pattern
Recognition. 66 – 71.
LAMPIRAN A
LAMPIRAN B
LAMPIRAN C
LAMPIRAN D
LAMPIRAN E
(a) (b)
(c) (d)
Hasil SVF dan GVF bagi Aplikasi PTT berdasarkan bilangan titik vertis
garisan kontur aktif (a) 4 titik vertis garisan kontur aktif SVF (b) Pengkonturan
SVF gagal; (c) 4 titik vertis garisan kontur aktif GVF (d) Pengkonturan GVF
berjaya
LAMPIRAN F
Hasil SVF bagi Aplikasi PTT berdasarkan kedudukan garisan awalan kontur
aktif (a) garisan awalan yang berdekatan sempadan dikehendaki (b) SVF
memberikan hasil pengkonturan yang baik; (c) garisan awalan yang berjauhan dari
sempadan dikehendaki (d) SVF tidak dapat melentur kontur aktif dengan baik
LAMPIRAN G