Вы находитесь на странице: 1из 154

PENGKONTURAN GARIS SEMPADAN WAJAH MANUSIA

MENGGUNAKAN MODEL KONTUR AKTIF

HARYANTI BINTI SHAHLAN

Laporan projek ini dikemukakan


sebagai memenuhi sebahagian daripada syarat
penganugerahan Ijazah Sarjana Sains (Sains Komputer)

Fakulti Sains Komputer dan Sistem Maklumat


Universiti Teknologi Malaysia

APRIL, 2005
PSZ 19 : 16 (Pind. 1/97)

UNIVERSITI TEKNOLOGI MALAYSIA

BORANG PENGESAHAN STATUS TESIS ***


JUDUL : PENGKONTURAN GARIS SEMPADAN WAJAH MANUSIA
MENGGUNAKAN MODEL KONTUR AKTIF

SESI PENGAJIAN : 2004/2005

Saya HARYANTI BINTI SHAHLAN


( HURUF BESAR )

mengaku membenarkan tesis (PSM / Sarjana / Doktor Falsafah) * ini disimpan di perpustakaan Universiti
Teknologi Malaysia dengan syarat-syarat kegunaan seperti berikut :

1. Tesis adalah hakmilik Universiti Teknologi Malaysia.


2. Perpustakaan Universiti Teknologi Malaysia dibenarkan membuat salinan untuk tujuan
pengajian sahaja.
3. Perpustakaan dibenarkan membuat salinan tesis ini sebagai bahan pertukaran antara
institusi pengajian tinggi.
4. ** Sila tandakan ( 9 ).

SULIT (Mengandungi maklumat yang berdarjah keselamatan atau


kepentingan Malaysia seperti yang termaktub di dalam
AKTA RAHSIA RASMI 1972)

TERHAD (Mengandungi maklumat TERHAD yang telah ditentukan oleh


organisasi/badan di mana penyelidikan dijalankan)

9 TIDAK TERHAD
Disahkan oleh

(TANDATANGAN PENULIS) (TANDATANGAN PENYELIA)

Alamat Tetap:

PROJEK TANAMAN SEMULA,


FASSB FELDA JENGKA 02, PM DR DZULKIFLI MOHAMAD
26400 BANDAR PUSAT JENGKA, Nama Penyelia
PAHANG DARUL MAKMUR.

Tarikh: 8 APRIL 2005 Tarikh: 8 APRIL 2005

CATATAN : * Potong yang mana tidak berkenaan.


** Jika tesis ini SULIT atau TERHAD, sila lampirkan surat daripada pihak
berkuasa/organisasi berkenaan dengan menyatakan sekali sebab dan tempoh
tesis ini perlu dikelaskan sebagai SULIT atau TERHAD.
*** Tesis dimaksudkan sebagai tesis bagi Ijazah Doktor Falsafah dan Sarjana secara
penyelidikan, atau disertai bagi pengajian secara kerja kursus dan penyelidikan,
atau Laporan Projek Sarjana Muda (PSM).
“Saya akui bahawa saya telah membaca karya ini dan pada pandangan saya
karya ini adalah memadai dari segi skop dan kualiti untuk tujuan penganugerahan
Ijazah Sarjana Sains (Sains Komputer)”

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

Dengan nama Allah Yang Maha Pemurah Lagi Maha Penyayang.

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

The development of this application is especially to contour the human frontal


face boundary from colour or grayscale level image. Facial boundary contoured includes
facial features like forehead, eyebrows, eyes, nose, cheek, mouth and chin. The
contouring process determine by adapting Active Contour Model or known as Snake
Deformable. The application allows users to choose two vector field named as Standard
Vector Field (SVF) and Gradient Vector Flow (GVF). These two vector field gives
differential contour output form. GVF can improve the capture range of the image force
that suffers by SVF. Thereby, it can reduce number of snake iterations. However, the
result of SVF contour is much better than GVF. Users also allowed setting the initial
active contour and key in active contour parametric value such as tension force (α),
rigidity force (β), step size (γ), external force weight (κ), maximum distance point
(Dmax), minimum distance point (Dmin) and number of iterations.
ISI KANDUNGAN

BAB PERKARA MUKA SURAT

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

1.1 Pengenalan Projek 1


1.2 Penyataan Masalah 3
1.2.1 Pengisytiharaan Garis Awalan 4
1.2.2 Kedudukan dan Bilangan Titik Vertis 5
1.2.3 Bilangan Lelaran yang Besar 6
1.2.4 Hasil Konturan yang Tidak diingini 6
1.2.5 Kombinasi Parameter Kontur Aktif 6
1.3 Matlamat Projek 7
1.4 Objektif Projek 7
1.5 Skop Projek 8
1.6 Perancangan Projek 8

BAB II KAJIAN LITERATUR

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

BAB III PENGKONTURAN MENGGUNAKAN SNAKE

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

BAB V REKABENTUK APLIKASI

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

BAB VII KESIMPULAN

7.1 Kesimpulan 112

RUJUKAN 115
LAMPIRAN
SENARAI JADUAL

NO. JADUAL TAJUK MUKA SURAT

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

NO. GAMBARAJAH TAJUK MUKA SURAT

2.1 Fungsian LOG (kiri) kedudukan penyilangan (kanan) intensiti


fungsian imej 16
2.2 Carian minimum jiran setempat algoritma greedy 30
2.3 Senibina Model-View-Controller (MVC) 31
2.4 Senibina Model Terpisah 31
2.5 Antaramuka pengguna Aplikasi Contoh Paleontologikal 32
2.6 Hasil pengkonturan contoh paleontologikal (a) α = 0.2, β = 0.8,
γ = 1.5 dan (b) α = 0.4, β = 0.6, γ = 0.5 32
2.7 Antaramuka pengguna memilih imej untuk dikonturkan 33
2.8 Paparan masukkan nilai parameter kontur aktif 34
2.9 (a) Garis awalan kontur aktif mengikut bentuk sempadan, (b) Proses
pengkonturan dan (c) Hasil pengkonturan GVF organ dada 34
2.10 Imej dataset histologikal telinga tengah manusia 35
2.11 Kedudukan Malleus dan Incus dari imej histologikal 36
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 36
2.13 Imej dataset MRM telinga tengah manusia 37
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 37
2.15 Garis awalan kontur aktif Aplikasi Snakes Eyes 38
2.16 Hasil pengkonturan kawasan kepala manusia 38
5.1 Lakaran Antaramuka Tetingkap Pertama 84
5.2 Lakaran Antaramuka Tetingkap Kedua 85
5.3 Lakaran Antaramuka Tetingkap Ketiga 85
5.4 Lakaran Antaramuka Tetingkap Keempat 86
6.1 Hasil Antaramuka Tetingkap Pertama 88
6.2 Hasil Antaramuka Tetingkap Kedua 89
6.3 Kekotak Dialog buka Imej Wajah 89
6.4 (a) Imej wajah gradient dan (b) Imej wajah tanpa gradient 90
6.5 Contoh imej wajah gradient dengan nilai (a) σ = 1, (b) σ = 2 dan
(c) σ = 3 91
6.6 Contoh imej wajah tanpa gradient dengan nilai (a) σ = 1, (b) σ = 2
dan (c) σ = 3 91
6.7 Hasil Antaramuka Tetingkap Ketiga 92
6.8 Hasil Antaramuka Tetingkap Keempat 92
6.9 Peta daya luaran SVF dengan (a) vektor normal, (b) vektor tidak
normal; GVF dengan (c) vektor normal dan (d) vektor tidak normal 94
6.10 Peta vektor daya luaran yang dihasilkan oleh GVF dengan µ
(a) 0.01, (b) 0.05 dan (c) 0.2 95
6.11 Peta vektor daya luaran yang dihasilkan oleh GVF dengan
lelaran (a) 5, (b) 40, (c) 80 dan (d) 100 96
6.12 Contoh Pertama hasil SVF (a) Garisan awalan kontur aktif
(b) Lelaran kali pertama (c) Lelaran kali kedua 99
6.13 Contoh Kedua hasil SVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama, (c) Lelaran kedua, (d) Lelaran ketiga dan
(e) Hasil kontur 100
6.14 Contoh Ketiga hasil SVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama dan (c) Lelaran kedua 101
6.15 Contoh Keempat hasil SVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama dan (c) Lelaran kedua 102
6.16 Contoh Kelima hasil SVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama, (c) Lelaran kedua, (d) Lelaran ketiga dan
(e) Hasil kontur 102
6.17 Contoh Pertama hasil GVF (a) Garisan awalan kontur aktif,
(b) Lelaran kali pertama (c) Lelaran kali kedua 103
6.18 Contoh Kedua hasil GVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama, (c) Lelaran kedua dan (d) Hasil kontur 104
6.19 Contoh Ketiga hasil GVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama, (c) Lelaran kedua dan (d) Hasil kontur 105
6.20 Contoh Keempat hasil GVF (a) Garisan awalan kontur aktif
dan (b) Lelaran pertama 105
6.21 Contoh Kelima hasil GVF (a) Garisan awalan kontur aktif,
(b) Lelaran pertama, (c) Lelaran kedua, (d) Lelaran ketiga dan
(e) Hasil kontur 106
SENARAI GAMBAR

NO. GAMBAR TAJUK MUKA SURAT

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

NO. RAJAH TAJUK MUKA SURAT

4.1 Konsep Umum Metodologi 61


4.2 Cartalir Metodologi 64
5.1 Hirarki Aplikasi Kontur Wajah 78
5.2 Cartalir Tetingkap Pertama 80
5.3 Cartalir Tetingkap Kedua 81
5.4 Cartalir Tetingkap Ketiga 82
5.5 Cartalir Tetingkap Keempat 83
SENARAI ISTILAH

2-D - Dua Dimensi


BMP - Bitmap
CPU - Computer Processor Unit
GB - Gigabyte
GIS - Geographic Information System
GPP - Gradient Plus Pressure
GVF - Gradient Vector Flow
KW - Kontur Wajah
LOG - Laplacian of Gaussian
MB - Megabyte
MRM - Magnetic Resonance Microscopy
PDF - Probality Density Function
PGM - Portable Gray Magnitud
PTT - Pengkonturan Telinga Tengah
SVF - Standard Vector Field
SENARAI SIMBOL

α - 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

A Perancangan Projek Sarjana I


B Perancangan Projek Sarjana II
C Contoh Imej Input Wajah yang dibenarkan
D Contoh Imej Wajah yang Berjaya dikonturkan
E Hasil SVF dan GVF bagi Aplikasi PTT Berdasarkan
Bilangan Titik Vertis Garisan Kontur Aktif
F Hasil SVF Bagi Aplikasi PTT Berdasarkan
Kedudukan Garisan Awalan Kontur Aktif
G Jadual Perbezaan Bilangan Lelaran SVF dan GVF
Bagi Imej Malleus (Slice 196) Aplikasi PTT
BAB I

PENGENALAN

1.1 Pengenalan Projek

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.

Aktif kontur yang digunakan di dalam pembangunan aplikasi ini menggunakan


dua jenis daya luaran yang berbeza iaitu Standard Vector Field (SVF) dan Gradient
Vector Flow (GVF). Snake tradisional atau SVF ialah bidang vektor yang menggunakan
gradient sendirian sebagai faktor daya luaran bagi snake. Penggunaan gradient sahaja
akan menyebabkan kontur menghadapi masalah jarak tangkapan yang lemah. Oleh itu
GVF digunakan untuk memperbaiki kelemahan jarak tangkapan daya imej. GVF dapat
mengurangkan masa lelaran yang banyak diambil oleh SVF ketika mendapatkan hasil
pengkonturan. Penyelesaian vektor GVF melibatkan kombinasi Laplacian dan terma
gradient di samping faktor pembentukan (bending) digunakan untuk mengawal
perhubungan di antaranya.
Antara tujuan utama aplikasi ini selain dari membangunkan aplikasi yang dapat
mengkonturkan garis sempadan wajah manusia yang dikehendaki, ialah untuk membuat
kesimpulan melalui perbandingan hasil persembahan kontur aktif yang menggunakan
SVF serta GVF.

1.2 Penyataan Masalah

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:

1.2.1 Pengisytiharan Garis Awalan

Snake tradisional memerlukan pengguna meletakkan terlebih dahulu garis awalan


kontur aktif pada kawasan sempadan imej yang dikehendaki. Garis awalan ini boleh
diletakkan ketika interaksi pengguna dengan antaramuka aplikasi. Pengguna akan
memplotkan titik-titik vertis pada imej dan titik tersebut akan bersambungan membentuk
garis awalan. Cara pemplotan ini amat bersesuaian sekiranya imej mempunyai bentuk
yang tidak tetap dan pelbagai. Sekiranya imej-imej yang hendak dikontur mempunyai
bentuk dan saiz yang tetap, pembangun boleh menetapkan bentuk garis awalan (seperti
bentuk segiempat atau bulat) terlebih dahulu ketika pengaturcaraan aplikasi. Oleh itu,
pengguna tidak perlu memplotkan titik vertis sebelum mengkonturkan imej.
Bagaimanapun bagi prototaip aplikasi yang dibangunkan ini, pembangun telah
menyediakan kemudahan memplotkan garis awalan kontur pada imej. Ini adalah kerana,
raut wajah manusia yang hendak dikonturkan mempunyai bentuk muka yang tidak sama.
Ada wajah yang berbentuk bulat, bujur sireh dan juga bersegi. Oleh itu, adalah lebih baik
pengguna meletakkan sendiri garis awalan berdekatan dengan sempadan yang
dikehendaki. Dengan ini, pengkonturan dapat dilakukan dengan lebih baik dan hasil yang
diperolehi juga tepat dan memuaskan.

1.2.2 Kedudukan dan Bilangan Titik Vertis

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

Snake SVF memerlukan masa untuk melaksanakan proses pengkonturan. Ia


bermaksud, bilangan lelaran yang diperlukan adalah banyak sebelum memperolehi hasil
terakhir pengkonturan imej. Untuk mempercepatkan proses lelaran ini, GVF juga boleh
digunakan sebagai vektor daya luaran snake. GVF dapat mempertingkatkan jarak
tangkapan daya imej. Dengan ini, garisan awalan bukan sahaja boleh ditakrifkan jauh dari
sempadan malah mengurangkan bilangan lelaran aktiviti pengkonturan.

1.2.4 Hasil Konturan yang Tidak diingini

Snake juga berkecenderungan untuk mengkonturkan kawasan sempadan yang


tidak diingini. Ini berlaku kerana snake tidak dapat mengenal sisi sempadan yang
dikehendaki dengan betul. Pengkonturan yang tidak sempurna menjadikan pengguna
mendapat hasil yang tidak baik. Untuk mengatasi permasalahan ini, aktiviti pengesanan
sisi (contohnya, pengesanan sisi operator Canny, operator gradient, thresholding dan
sebagainya) dilaksanakan terlebih dahulu sebelum aktiviti pengkonturan digunakan.
Aktiviti pengesanan sisi ini dapat mengesan dan mengecam sisi-sisi sempadan yang
terdapat di dalam keseluruhan imej input. Dengan ini, snake dapat mengenal sisi
sempadan dengan lebih baik dan aktiviti pengkonturan dapat dilakukan dengan lebih
berkesan. Di dalam aplikasi ini, pembangun menawarkan aktiviti pengesanan sisi
menggunakan operator gradient.

1.2.5 Kombinasi Parameter Kontur Aktif

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.

1.3 Matlamat Projek

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).

1.4 Objektif Projek

Berikut adalah objektif-objektif yang ingin dicapai dengan perlaksanaan projek


aplikasi ini:

i) Membangunkan sebuah prototaip pengkonturan garis sempadan wajah


manusia menggunakan Snake atau Model Kontur Aktif.
ii) Membuat perbandingan hasil pengkonturan snake menggunakan daya
luaran Standard Vector Field (SVF) dan Gradient Vector Flow (GVF).
1.5 Skop Projek

Berikut adalah skop-skop projek yang dicadangkan:

i) Terhad gambar individu perseorangan sahaja.


ii) Gambar input di dalam piawaian skala kelabu (grayscale) dan berwarna.
iii) Imej wajah yang hendak digunakan mestilah di sudut pandangan hadapan
dan bersaiz 180 X 180 piksel sahaja.
iv) Model Kontur Aktif atau Snake Deformable digunakan untuk
mengkonturkan garis sempadan wajah.
v) Kedudukan garis awalan kontur aktif (initial contour) mestilah diletakkan
di bahagian luar garis sempadan wajah yang dikehendaki.

1.6 Perancangan Projek

Sebelum sesuatu projek dibangunkan, perancangan projek perlu dibuat untuk


memastikan projek dapat dibangunkan dalam masa yang telah ditetapkan. Perancangan
projek sarjana ini melibatkan dua perancangan perlaksanaan, iaitu Perancangan Projek I
yang terdiri daripada tiga fasa dan Perancangan Projek II yang terdiri daripada empat
fasa. Kedua-dua carta perancangan perlaksanaan projek sarjana ini dilampirkan bersama-
sama di LAMPIRAN A dan LAMPIRAN B.
BAB II

KAJIAN LITERATUR

2.1 Pengenalan

Pengkonturan Wajah Manusia merupakan sebuah prototaip aplikasi grafik yang


dapat mengesan sisi dan mengkonturkan kawasan sempadan wajah individu dari imej
gambar. Sebelum aplikasi ini dibangunkan, beberapa kajian telah dijalankan bagi
mengenalpasti teknik pengesanan sisi yang boleh digunakan untuk memudahkan
pengkonturkan wajah manusia. Antara teknik pengesanan dan penambahan sisi yang
diperhatikan ialah operator gradient, operator Laplacian of Gaussian (LOG), proses
ambang dan operator Canny. Kajian turut dijalankan bagi mengenalpasti berapa perisian
yang bakal digunakan untuk membangunkan aplikasi ini. Selain itu, kajian terhadap
aplikasi sedia ada yang dibangunkan berpandukan kepada teknologi yang serupa dengan
aplikasi yang akan dibangunkan ini turut dijalankan sebagai panduan dan rujukan.
Sebagai tambahan, kajian mengenai pelbagai jenis sudut pandangan dan gaya imej
gambar individu atau secara berkumpulan sama ada berwarna atau berskala kelabu juga
dilaksanakan bagi memudahkan pembangun membina sebuah aplikasi grafik yang
memenuhi skop dan objektifnya.
2.2 Definisi Istilah-istilah di dalam Pengecaman Wajah

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.

2.2.1 Face Detection

Face detection atau pengesanan wajah secara umumnya mempelajari model


statistik imej wajah serta imej bukan wajah dan kemudian mengaplikasikan peraturan
pengkelasan dua-kelas (two-class classification rule) untuk membezakan di antara corak
wajah dan corak bukan wajah.

2.2.2 Facial Feature Detection

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

Pengkonturan wajah boleh dibahagikan kepada dua iaitu pengkonturan luaran


yang melibatkan pengkonturan kawasan kepala termasuk rambut dan telinga serta
pengkonturan dalaman yang hanya melibatkan kawasan sempadan wajah (tidak termasuk
telinga dan rambut).

2.2.4 Face Localization

Tujuannya ialah untuk menentukan kedudukan imej wajah. Proses ini lebih mudah
sekiranya hanya terdapat satu wajah yang perlu ditentukan kedudukannya dari input imej.

2.2.5 Face Tracking

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.

2.2.6 Face Verification

Face Verification atau pengesahan wajah dilaksanakan untuk mengesahkan


ketulenan identiti seseorang melalui input imej. Ia juga dikenali sebagai proses face
authentication.
2.2.7 Face Recognition atau Face Identification

Fokus kepada mengenalpasti identiti seseorang dengan membandingkan input


imej individu tersebut dengan imej yang sedia ada di dalam pangkalan data. Laporan
akan dikeluarkan sekiranya terdapat imej yang bersesuaian atau sebaliknya.

2.3 Teknik Pengesan Sisi dan Penambahan Sisi

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).

Pengesan sisi (Edge-Detection) digunakan ke atas imej untuk memisahkan piksel


sisi dari piksel bukan sisi. Hasilnya adalah peta sisi yang akan memberikan data untuk
mengesan sempadan kawasan yang dikehendaki di dalam imej. Penambahan sisi (Edge-
Enhancement) pula digunakan untuk mengesahkan sisi tetapi ia tidak memisahkan sisi
dengan piksel bukan sisi. Operator gradient dan Laplacian of Gaussian (LOG) merupakan
contoh teknik penambahan sisi manakala proses ambang (Thresholding) dan operator
Canny adalah contoh teknik pengesan sisi.
2.3.1 Operator Gradient

Menggunakan pembahagian terbitan, gradient bidang skala (fungsian) akan


menghasilkan vektor. Gradient imej [21] memberikan kadar perubahan aras kelabu per
jarak unit dalam arah paksi koordinat. Gradient imej ditulis sebagai:

∂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.

(ii) Kedua, pada kawasan sisi (sempadan) di mana wujudnya perubahan


mendadak aras kelabu, gradient imej di kawasan tersebut akan mempunyai
nilai magnitud yang besar bergantung kepada kadar perubahan aras kelabu
tersebut.

(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.

Di dalam pemprosesan imej digital, gradient dihasilkan dengan menggunakan


penapisan ruang (spatial filter) yang dijalinkan dengan imej. Penapis-penapis ini adalah
alat yang bertindak sebagai pembahagian terbitan, di dalam bentuk pasangan pelindung
(mask) di setiap kedudukan piksel. Setiap pasangan tersebut digunakan untuk mengira
pembahagian terbitan di kedudukan dua ortogonal. Mask diletakkan ditengah-tengah dan
ditindih oleh setiap piksel, meliputi sebahagian piksel berjiran bergantung kepada
saiznya. Hasil pemberat mask dan piksel yang sejajar kemudiannya dijumlahkan dan
hasilnya dianggap sebagai intensiti piksel yang sejajar dengan tengah mask. Ciri-ciri
penapis ialah jumlah pemberat adalah bersamaan sifar, oleh itu ia memenuhi sifat
gradient iaitu bernilai sifar di kawasan kesamaan. Berikut adalah contoh mask:

+ 1
[− 1 0 + 1] 0
 
− 1

Operator gradient mendatar dan menegak


1 0   0 1
0 − 1  − 1 0
   

Pasangan pepenjuru Operator Roberts

− 1 − 2 − 1  − 1 0 1
0 0 0   − 2 0 2
  
 1 2 1   − 1 0 1 

Operator Sobel mendatar dan menegak

2.3.2 Operator Laplacian

Selain operator gradient, operator Laplacian juga merupakan teknik penambahan


sisi yang berdasarkan terbitan imej. Operator gradient menggunakan terbitan ruang imej
yang pertama manakala operator Laplacian (∇2) adalah berdasarkan terbitan kedua imej:

∂2I ∂2I
∇2I = x + y (2.4)
∂x 2 ∂y 2

Seperti di dalam operator gradient, Laplacian (∇2) menghasilkan pembahagian terbitan


nilai imej di setiap kedudukan piksel dengan memenuhi paksi koordinat x dan y.

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:

Gambarajah 2.1 : Fungsian LOG (kiri) kedudukan penyilangan (kanan)


intensiti fungsian imej

Operator LOG boleh dirumuskan seperti berikut:

∇ 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

2.3.3 Proses Ambang (Thresholding)

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.

Proses ambang boleh terdiri dari aras-pertama (single-level), aras-kedua (two-


level) atau pelbagai-aras (multi-level). Di dalam proses ambang aras-pertama, hanya satu
nilai ambang yang dipilih, seperti yang dinyatakan di atas (2.6). Kaedah aras-kedua pula,
dua nilai ambang boleh dipilih contohnya nilai tinggi (Thigh) dan nilai rendah (Tlow). Titik
piksel yang terletak di antara julat ini dianggap sebagai titik sisi and disetkan bernilai 1
dan selebihnya bernilai 0. Proses ambang aras-kedua boleh dirumuskan seperti berikut :

I (x, y ) > Thigh → I T ( x, y ) = 0;


Tlow ≤ I (x, y ) ≤ Thigh → I T (x, y ) = 1; (2.7)
I (x, y ) < Tlow → I T ( x, y ) = 0.

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.

2.3.4 Operator Canny

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).

Oleh kerana terdapat sejumlah kebisingan di dalam sesetengah imej, kebisingan


yang wujud itu mestilah dikurangkan. Penapis LOG diaplikasikan ke atas imej bagi
mengurangkan kebisingan tersebut. Di samping itu, penapis LOG juga dapat
mengesahkan titik sisi. Langkah seterusnya ialah dengan menyesuaikan proses ambang
aras dua dengan histerisis (hysterisis). Tujuan penggunaan histerisis ialah untuk
memastikan sisi tersebut tidak berpecah kepada beberapa serpihan 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

Gambar 2.4 : Contoh hasil sebelum dan selepas proses ambang


2.4 Pengenalan Kontur Aktif

Teknik segmentasi aras rendah digunakan bertujuan untuk memudahkan


penganalisaan imej dengan mengurangkan jumlah data yang akan diproses.
Bagaimanapun, dengan mengurangkan data secara drastik sesetengah maklumat imej
yang diperlukan akan hilang. Tambahan lagi, jika sesebuah imej mempunyai jumlah
kebisingan yang tinggi atau nilai kontras yang sangat rendah, maklumat imej yang sedia
ada tidak mampu memberikan hasil segmentasi yang baik. Sebagai alternatif, teknik aras
tinggi digunakan walaupun ia lebih kompleks dan teknik pengkomputerannya lebih
mahal dari teknik aras rendah. Kontur Aktif yang juga dikenali sebagai Snake atau model
kontur deformable, telah dibuktikan sebagai kaedah efektif dalam aktiviti pengesanan sisi
dan garis, segmentasi, permodelan rupabentuk dan penjejakan gerakan [11].

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.

Menurut McInerney & Terzopoulos [18] pula:

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

Di dalam sesebuah gambar yang diambil, terdapat berbagai jenis kedudukan


wajah muka. Dengan erti kata lain ialah dari segi:

(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.

Gambar 2.5 : Gambar wajah berukuran pasport


Gambar 2.6 : Kualiti gambar yang kurang memuaskan

(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

Gambar 2.9 : Pelbagai wajah di sudut dan ragam yang berbeza


Gambar 2.10 : Pertindihan wajah di dalam sebuah gambar yang terdiri dari
pelbagai wajah

Gambar 2.11 : Kedudukan wajah yang terlalu jauh dan terlindung


2.6 Kajian Aplikasi Sedia Ada

Sebelum aplikasi ini dibangunkan, kajian teperinci terhadap pelbagai bentuk


aplikasi sedia ada yang menjurus kepada penggunaan teknik pengkonturan telah
dilaksanakan sebagai panduan dan rujukan. Walau bagaimanapun, penghasilan aplikasi
khususnya pengkonturan garis sempadan raut wajah manusia adalah terhad. Di sini
dikemukakan beberapa contoh terbaik yang mempunyai objektif yang hampir sama
dengan aplikasi yang dibangunkan oleh pembangun tetapi skop dan kaedah yang
digunakan adalah berbeza.

2.6.1 Pengkonturan Contoh Paleontologikal

Aplikasi ini dibangunkan dengan menggunakan antaramuka perisian Java yang


membolehkan pengguna mengkonturkan kawasan yang dikehendaki pada contoh atau
spesimen paleontologikal. Teknik yang digunakan ialah algoritma greedy [24] Model
Kontur Aktif. Aplikasi ini membenarkan pengguna meletakkan garis awalan kontur aktif
pada spesimen serta memasukkan nilai parameter α, β dan γ yang bersesuaian dengan
kawasan yang dikehendaki. Berikut adalah sebahagian kod sudo algoritma greedy yang
digunakan:

Initialize •i, •i and •i to 1 for all i.


Do
/*loop to movepoints to new location*/
for i = 0 to n /*n=number of points
in contour*/
Emin = BIG
For j = 0 to m – 1 /*n is the size of
neighborhood*/
Ej = •i Econt,j + •i Ecurt,j + •i Eimage,j
If Ej < Emin then
Emin = Ej
jmin = j
Move point vi to location jmin
If jmin is not current location, ptsmoved ++
Until ptsmoved < threshold
(t)
vi-1

(t-1)

vi
(t-1) vi-1

Gambarajah 2.2 : Carian minimum jiran setempat algoritma greedy

2.6.1.1 Senibina Model-View-Controller (MVC)

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.

Gambarajah 2.3 : Senibina Model-View-Controller (MVC)

Gambarajah 2.4 : Senibina Model Terpisah


2.6.1.2 Antaramuka Pengguna Aplikasi Contoh Paleontologikal

Gambarajah 2.5 : Antaramuka pengguna Aplikasi Contoh Paleontologikal

(a) (b)

Gambarajah 2.6 : Hasil pengkonturan contoh paleontologikal (a) α = 0.2, β = 0.8,


γ = 1.5 dan (b) α = 0.4, β = 0.6, γ = 0.5
2.6.2 Pengkonturan Bahagian Organ Dalaman

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).

Gambarajah 2.7 : Antaramuka pengguna memilih imej untuk dikonturkan


Gambarajah 2.8 : Paparan masukkan nilai parameter kontur aktif

(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

Aplikasi yang dibina menggunakan aturcara Oxiana ini melibatkan pengkonturan


imej telinga tengah yang diperolehi dari dataset imej histologikal dan imej Magnetic
Resonance Microscopy (MRM). Joubin Hatamzadeh-Tabrizi (2003) menggunakan dua
jenis pendekatan kontur aktif di dalam aplikasi ini iaitu Parametrik Kontur Aktif dan
Kontur Dinamik Diskret. Tujuannya ialah untuk mendapatkan rumusan daripada hasil
kedua-dua pengkonturan. Di samping itu, aplikasi ini menggunakan Gradient, GVF dan
Gradient Plus Pressure (GPP) sebagai faktor daya luaran. Penggunaan GPP adalah untuk
menyelesaikan masalah tangkapan jarak oleh gradient dan kesilapan mengenal kawasan
sempadan yang dikehendaki oleh GVF.

Gambarajah 2.10 : Imej dataset histologikal telinga tengah manusia


Gambarajah 2.11 : Kedudukan Malleus dan Incus dari imej histologikal

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

(a) (b) (c)

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)

Aplikasi menggunakan pengaturcaraan C++ ini dibangunkan untuk


mengkonturkan kawasan kepala manusia. Brandon Itkowitz (1998) memilih algoritma
greedy Model Kontur Aktif seperti Liyan Zhang. Aplikasi ini sangat mudah dan ia perlu
diperbaiki lagi kerana hasil pengkonturan yang diperolehi kurang memuaskan. Ini kerana,
nilai parameter kontur aktif telah ditetapkan terlebih dahulu. Oleh itu pengguna tidak
dapat memasukkan sendiri nilai-nilai tersebut. Pengguna hanya dibenarkan untuk
meletakkan garis awalan kontur aktif pada imej.

Gambarajah 2.15 : Garis awalan kontur aktif Aplikasi Snakes Eyes

Gambarajah 2.16 : Hasil pengkonturan kawasan kepala manusia


BAB III

PENGKONTURAN MENGGUNAKAN SNAKE

3.1 Pengenalan

Snake atau Kontur Aktif merupakan lengkungan yang ditakrifkan di dalam


kawasan domain imej yang akan bergerak di bawah pengaruh daya dalaman (internal
forces) atau daya luaran (external forces). Daya dalaman hadir daripada dalam
lengkungan itu sendiri manakala daya luaran dikira dari data imej. Kedua-dua daya
tersebut mestilah diisytiharkan terlebih dahulu agar snake dapat melentur ke arah
sempadan objek atau ciri-ciri kawasan yang dikehendaki di dalam imej. Snake telah
digunakan secara meluas di pelbagai bidang termasuklah pengecaman sisi, permodelan
bentuk, segmentasi imej dan penjejakan gerakan (motion tracking). Umumnya terdapat
dua jenis model kontur aktif iaitu:

(i) parametrik kontur aktif, dan


(ii) geometrik kontur aktif

Parametrik kontur aktif mensintesis lengkung parametrik di dalam domain imej


dan membenarkannya untuk bergerak menuju ke arah sisi yang diingini. Biasanya,
lengkungan akan dilukis menuju sisi dengan daya keupayaan (potential forces) di mana ia
ditakrif menjadi negatif gradient bagi fungsi keupayaan (potential function). Daya
tambahan seperti daya tekanan (pressure forces) bersama-sama daya keupayaan
mempunyai daya luaran. Terdapat juga daya dalaman yang direka untuk memegang
lengkungan bersama iaitu daya keanjalan (elasticity forces) serta daya lengkungan
(bending forces) yang memeliharanya dari melengkung secara berlebihan.

Terdapat dua kunci kesukaran algoritma parametrik kontur aktif. Pertamanya,


garisan kontur awalan (initial contour) mestilah diletakkan berdekatan dengan garis
sempadan sebenar jika tidak ia akan memusat ke arah yang salah. Terdapat beberapa
kaedah telah dicadangkan bagi menyelesaikan masalah ini termasuklah kaedah
multiresolusi [13], daya tekanan [4] dan keupayaan jarak [5]. Asasnya, idea tersebut
adalah untuk meningkatkan jarak tangkapan (capture range) daya luaran dan
membimbing kontur menuju ke sempadan yang diingini. Kesukaran yang kedua ialah
kontur aktif sukar untuk melentur ke arah lengkungan sempadan. Tiada satu pun
penyelesaian yang dapat memenuhi kehendak ini walaupun daya tekanan, titik kawalan
(control point), penyelesaian domain (domain-adaptivity) dan tarikan haluan telah
dicadangkan.

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.

3.2 Model Snake Parametrik

Dalam pendekatan parametrik, kontur aktif diwakili sebagai kelengkungan atau


spline, v(s) = (x(s), y(s)), termasuklah titik vertis. Nilai x dan y mewakili koordinat-
koordinat titik vertis dan panjang fungsian lengkungan normal 0 ≤ s ≤1. Kontur aktif
mempunyai tingkah laku dinamik yang boleh membentuk dari kedudukan garis awalan
dengan harapan ia memusat atau bergerak menuju kepada sempadan objek. Fungsian
tenaga (contoh E*snake) digubah dari terma tenaga yang mentakrifkan persamaan berikut,

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)

Parameter α dan β adalah pemberat atau angkali tenaga dalaman masing-masing


mewakili tegangan snake (snake tension) dan tegasan snake (snake rigidity). v’(s) dan
v”(s) menandakan terbitan pertama dan kedua bagi v(s) dengan hubungan s. Fungsi
tenaga luaran, Eext diterbitkan dari imej oleh itu ia mengambil nilai yang kecil pada ciri
yang dikehendaki seperti sempadan. Diberi imej aras-kelabu I(x, y) dilihat sebagai fungsi
pembolehubah bagi kedudukan bersambungan (x, y). Contoh tenaga luaran yang telah
direka untuk memimpin kontur aktif menuju ke sisi ialah:

E(2)ext (x, y) = − | ∇I(x, y) |2 (3.3)


E(3)ext (x, y) = − | ∇ [Gσ(x, y) * I(x, y)] |2 (3.4)

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:

E(4)ext (x, y) = I(x, y) (3.5)


E(5)ext (x, y) = Gσ(x, y) * I(x, y) (3.6)
Adalah mudah untuk melihat dari takrifan ini bahawa σ yang lebih besar akan
menyebabkan garis sempadan menjadi lebih kabur. Sesetengah nilai σ yang besar amat
diperlukan dalam mempertingkatkan jarak tangkapan kontur aktif.

Proses pembentukkan atau deformasi kontur aktif diterbitkan dengan


meminimakan fungsian tenaga. Kontur aktif yang meminimakan fungsian tenaga dalam
persamaan (3.2) mestilah memenuhi persamaan Euler [11]:

∂  ∂ v( s)  ∂ 2  ∂ 2 v(s) 
−  α +  β  + ∇E ext = 0
∂s  ∂ s  ∂ s 2  ∂ s 2 

atau,

αv”(s) – β v””(s) – Eext = 0 (3.7)

persamaan (3.7) boleh dilihat sebagai persamaan keseimbangan daya iaitu gabungan
tenaga (energies) dan daya (forces) [26].

Fext + Fint = 0

di mana,

Fint = αv”(s) – β v””(s)


Fext = – ∇ Eext (3.8)

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.

Untuk mencari penyelesaian (3.7), snake dibuat secara dinamik dengan


menganggap v sebagai fungsian masa, t sebagaimana s, v(s, t). Kemudian, sebahagian
terbitan bagi v dengan hubungan t disetkan sama dengan bahagian kanan persamaan
(3.7).

vt(s, t) = αv”(s, t) – β v””(s, t) – ∇Eext = 0 (3.9)

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.

3.2.1 Daya Dalaman (Internal Force)

Daya dalaman bertujuan memelihara kelicinan dan kesinambungan kontur aktif.


Merujuk kepada persamaan (3.8), daya dalaman diolah dari terbitan dua dan empat
kontur di mana pemberat ialah parameter α dan β. Terma αv”(s) yang terletak di
bahagian kanan menyebabkan kontur aktif bertindak seperti membran untuk menentang
regangan dan β v””(s) menyebabkan kontur aktif untuk beraksi seperti “thin plate” untuk
menentang pembengkokkan. α dan β masing-masing merujuk sebagai parameter
tegangan dan tegasan. Tegangan akan memastikan kontur aktif sentiasa terikat manakala
tegasan memastikan kelicinannya. Kontur aktif secara semulajadinya berkecenderungan
untuk melakukan pengecutan kerana ia berkaitan dengan daya tegangan.
3.2.2 Daya Luaran (External Force)

Sementara daya dalaman bertanggungjawab memelihara bentuk kontur aktif, daya


luaran pula akan memandu kontur aktif ke sempadan. Daya luaran mengutamakan daya
imej iaitu ia dihasilkan dari imej itu sendiri. Di samping itu, daya kekangan boleh
ditambah ke dalamnya sekiranya ia difikir perlu. Daya luaran boleh diwakili dengan,

Fext = Fimage + Fconstraint (3.10)

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:

(i) Proses Ambang (Thresholding)

Berbanding teknik lain, ia merupakan teknik yang kurang sofistikated


dalam bentuk penghasilannya. Hasil teknik ini adalah imej binari.
Sebahagian maklumat skala-kelabu yang berkaitan dengan sempadan
mungkin akan hilang ketika proses binari imej dilakukan. Selain itu,
pemilihan nilai threshold yang sesuai adalah berdasarkan teknik trial and
error dan nilai tersebut adalah berbeza antara satu-satu imej.

(ii) Operator Canny

Walaupun operator Canny dikenali sebagai pengesan sisi terbaik, ia juga


terdapat beberapa kekurangan. Pertama, ia merupakan teknik yang paling
rumit berbanding teknik-teknik lain. Keduanya, ia berpunca dari proses
ambangnya yang akan menghasilkan imej binari yang tidak diperlukan.
Akhir sekali, proses pengecilan sisi (edge-thinning) di dalam operator
Canny akan mengubah bentuk asli sempadan di samping memimpin
kontur aktif mengecam sempadan yang tidak tepat.

(iii) Operator Laplacian Of Gaussian (LOG)

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.

(iv) Operator Gradient

Operator gradient kurang sukar berbanding operator Canny dan


perberbezaannya dengan proses ambang dan LOG ialah ia tidak perlu
memilih sebarang parameter.
3.2.3 Daya Kekangan (Constraint Force)

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.

Umumnya, penghasilan daya imej adalah berdasarkan magnitud gradient imej,


kontur aktif akan ditarik ke kontur dengan gradient yang besar (contohnya sisi yang
teguh). Kelemahan teknik gradient ialah kewujudan had jarak tangkapan yang terhasil
untuk daya imej [4][26]. Had ini wujud ekoran dari hasil teknik gradient yang dapat
dilihat pada magnitudnya di mana terdapat perubahan mendadak di dalam skala-kelabu
(piksel sisi) tetapi di dalam kawasan kesamaan (homogeneous region) hasil operator
gradient adalah sifar atau bernilai kecil yang menghampiri sifar. Oleh sebab itu, kontur
aktif mestilah diletakkan berdekatan dengan garis sempadan untuk penumpuan.

Kass et al. (1986) telah memperkenalkan “spring” dan “volcanos” sebagai


kekangan takrifan pengguna yang boleh diaplikasikan untuk melelarkan kontur aktif
menggunakan program antaramuka pengguna. Kekangan takrifan pengguna ini
digunakan untuk menolak titik vertis (yang telah dipilih pengguna) secara relativitinya
diletak berdekatan sempadan supaya kontur aktif boleh memusat ke sempadan tersebut.

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:

Fsping, i = k(s - vi) (3.11)

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.

3.3 Snake Gradient Vector Flow

Gradient Vektor Flow (GVF) dicadangkan untuk mempertingkatkan jarak


tangkapan daya imej dan ia ditemui untuk digunakan sebagai subjektif kontur tanpa
memperbanyakkannya. GVF melibatkan bidang vektor diterbitkan dengan menyelesaikan
persamaan sebaran vektor yang akan mengkaburkan vektor gradient imej aras kelabu.
Kelebihan utama GVF ialah ia berkebolehan untuk bergerak ke arah kelengkungan
sempadan [26]. Daya luaran statik ditakrifkan sebagai vektor F(g)ext = x (x, y). Bagi
mendapatkan persamaan snake dinamik yang sejajar, daya keupayaan –∇Eext dalam (3.9)
digantikan dengan x(x, y) dan menghasilkan,

vt(s, t) = αv” (s, t) – βv”” (s, t) + x (3.14)

Parametrik lengkungan yang menyelesaikan persamaan dinamik di atas dipanggil


Snake GVF. Ia diselesaikan secara numerik dengan pendiskretan dan lelaran sebagai gaya
pengenalan berbanding snake tradisional (SVF). Walaupun, konfigurasi terakhir bagi
snake GVF akan memenuhi persamaan keseimbangan daya (3.8), persamaan ini tidak
secara umumnya mewakili persamaan Euler bagi masalah meminimakan tenaga di dalam
persamaan (3.2).
3.3.1 Peta Sisi (Edge Map)

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

ƒ(x, y) = - E(i)ext (x, y) (3.15)

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.

Kini pertimbangkan bagaimana sifat-sifat ini mempengaruhi tingkah-laku snake


tradisional apabila gradient peta sisi digunakan sebagai daya luaran. Disebabkan sifat
yang pertama, snake ditakrifkan berdekatan dengan sisi dan akan memusat ke arah
konfigurasi mantap berhampiran sisi. Sifat sebegini amat diperlukan. Bagaimanapun,
sifat kedua menyebabkan ruang tangkapan akan menjadi lebih kecil. Disebabkan sifat
ketiga pula, kawasan kesamaan tidak memerlukan daya luaran. Kedua-dua sifat terakhir
tidak diperlukan.

3.3.2 Gradient Vector Flow

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)

Persamaan ini mewakili sebahagian terbitan dengan memenuhi x dan y. ƒ(x, y) di


(3.16) merupakan tenaga imej yang boleh menjadi gradient imej. µ adalah parameter
pemberat juga dipanggil faktor regularisasi. Ia digunakan untuk mengurus perhubungan
di antara dua terma. Apabila nilai |∇ƒ| adalah kecil (dalam kawasan kesamaan), fungsian
tenaga akan dikuasai oleh terma pertama (penjumlahan kuasa sebahagian terbitan vektor)
menghasilkan bidang berbeza dengan perlahan. Terma ini dikenali sebagai terma
kelicinan. Bagaimanapun, jika nilai |∇ƒ| adalah besar, terma kedua akan menguasai
kamiran (integrand) dan terma itu akan diminimakan apabila x = ∇ƒ. Persamaan (3.16)
memastikan nilai x hampir sama dengan gradient tenaga imej apabila gradient adalah
besar. Pemilihan µ bergantung kepada jumlah kebisingan dalam imej. Semakin banyak
kebisingan dalam imej, semakin besarlah nilai µ. Ini kerana kehadiran kebisingan
tersebut, gradient akan meningkat dan µ juga sepatutnya bertambah dalam mengawal
perhubungan di antara perhubungan terma pertama dan terma kedua di persamaan (3.16).

Penyelesaian untuk meminimakan fungsian tenaga (3.16), persamaan Euler telah


digunakan:

µ∇2 u + (u – ƒx) (ƒx2 + ƒy) = 0 (3.17a)


µ∇2 u + (u – ƒy) (ƒx2 + ƒy) = 0 (3.17b)

di mana ∇2 mewakili operator Laplacian. Pasangan persamaan di atas boleh diselesaikan


dengan menyifatkan u dan v sebagai fungsian masa:

ut(x,y,t) = µ∇2 u(x,y,t) – [u(x,y,t) – ƒx (x,y,t)] . [ƒx (x,y)2 + ƒy (x,y)2] (3.18a)


vt(x,y,t) = µ∇2 v(x,y,t) – [v(x,y,t) – ƒy (x,y,t)] . [ƒx (x,y)2 + ƒy (x,y)2] (3.18a)
Pasangan persamaan di (3.18a dan 3.18b) boleh diselesaikan secara lelaran dalam
menghasilkan vektor GVF. Bagi GVF, u dan v akan memusat apabila nilai baki bahagian
kiri persamaan (3.18) adalah sama di antara lelaran yang berturutan. Oleh kerana gradient
imej bagi bahagian kesamaan menghampiri sifar, maka terma kedua bagi pasangan
persamaan adalah sifar. Sebahagian kes, u dan v ditentukan dengan persamaan Laplace
dengan menggunakan operator Laplacian (∇2) dan keputusan vektor gradient adalah
diinterpolasi dari sempadan kawasan, menunjukkan persaingan di antara vektor
sempadan. Dengan kata lain, GVF adalah keputusan dari gabungan gradient dan
Laplacian. Vektor gradient adalah normal kepada permukaan sempadan tetapi dengan
menggabungkan Laplacian dan gradient, keputusan yang diperolehi adalah vektor tidak
normal bagi permukaan sempadan. Dari keputusan tersebut, GVF menghasilkan vektor
yang menunjukkan ke arah kelengkungan sempadan, dengan itu kontur aktif akan
memandu menuju lengkungan.

Untuk kemudahan, persamaan (3.18) ditulis semula seperti berikut:

ut(x, y, t) = µ∇2 u(x, y, t) – b(x, y) u(x, y, t) + c1(x, y) (3.19a)


vt(x, y, t) = µ∇2 v(x, y, t) – b(x, y) v(x, y, t) + c2(x, y) (3.19b)

di mana,

b (x, y) = ƒx (x, y)2 + ƒy (x, y)2


c1 (x, y) = b (x, y) ƒx (x, y)
c2 (x, y) = b (x, y) ƒy (x, y)

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

Menggantikan penganggaran di atas kepada persamaan (3.19) menjadikan penyelesaian


iteratif GVF menjadi seperti berikut:

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)

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.

3.3.3 Proses Re-sampling

Proses persampelan semula (re-sampling) diaplikasikan untuk mengekalkan


resolusi bagi kontur aktif. Untuk melakukannya, nilai jarak yang dikehendaki di antara
titik vertis berjiran, dedge ditakrifkan oleh pengguna. Jarak minimum dan maksimum
ditetapkan seperti berikut:

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].

3.3.4 Parametrik Kontur Diskret

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,

Eint = αi |vi – vi-1|2 + βi |vi-1 – 2vi + vi+1|2 (3.24)


Eext = – |∇I|

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]:

αi (vi – vi-1) – αi+1 (vi+1 – vi)


+ βi [vi-2 – 2vi-1 + vi] – 2βi [vi-1 – 2vi + vi+1] + βi+1 [vi – 2vi+1 + vi]

∇Eext ∇Eext
+ ∂x , ∂y =0 (3.25)

atau dengan memenuhi komponen koordinat,

αi (xi – xi-1) – αi+1 (xi+1 – xi)


+ βi [xi-2 – 2xi-1 + xi] – 2βi [xi-1 – 2xi + xi+1] + βi+1 [xi – 2xi+1 + xi]

∇Eext
+ ∂x =0
(3.26)

αi (yi – yi-1) – αi+1 (yi+1 – yi)


+ βi [yi-2 – 2yi-1 + yi] – 2βi [yi-1 – 2yi + yi+1] + βi+1 [yi – 2yi+1 + yi]

∇Eext
+ ∂y =0

Persamaan (3.26) boleh ditulis dalam bentuk matriks sebagai:


∂ Eext (x, y)
Ax + =0
∂x
(3.27)
∂ Eext (x, y)
Ay + =0
∂y

di mana A ialah kumpulan matriks penta-diagonal. Saiz matriks ini ialah n × n (n


merupakan bilangan titik vertis). Sebagai contoh, bagi kontur aktif mengandungi 10
vertis, matriks A adalah seperti berikut:

 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β 

Untuk menyelesaikan persamaan (3.27), bahagian kanan persamaan boleh disetkan


bersamaan dengan penghasilan langkah-saiz dan terbitan masa negatif bagi bahagian kiri
persamaan [11]:

∂ Eext (xt-1, y t-1)


Axt + = −γ (xt − xt-1)
∂x
(3.28)
∂ Eext (xt-1, y t-1)
Ayt + = −γ (yt − yt-1)
∂x
di mana pekali t merupakan bilangan lelaran dan γ ialah saiz langkah. Berdasarkan
persamaan (3.28), keseimbangan di antara daya akan dicapai apabila bahagian kanan
persamaan adalah sifar, maksudnya kedudukan titik vertis di dalam lelaran yang
berturutan tidak berubah. Penyelesaian untuk persamaan (3.28) bagi menghasilkan
kedudukan vertis akan berakhir dengan menggunakan matriks songsangan berikut:

∂ Eext (xt-1, y t-1)


xt = (A + γI)-1 (γ xt-1 − )
∂x

∂ Eext (xt-1, y t-1)


-1
yt = (A + γI) (γ yt-1 − )
(3.29)
∂y

di mana I ialah matriks identiti n × n. Matriks A hendaklah sentiasa dikemaskini selepas


setiap proses lelaran.

Bagi mengaplikasikan daya tekanan kepada kontur aktif seperti di persamaan


(3.13), persamaan (3.29) boleh diubahsuai menjadi:

∂ Eimage (xt-1, y t-1)


xt = (A + γI)-1 (γxt-1 + κ1n(xt-1) − κ )
∂x (3.30)
∂ Eimage (xt-1, y t-1)
-1
yt = (A + γI) (γyt-1 + κ1n(yt-1) − κ )
∂y

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

Secara keseluruhannya, konsep umum pengaliran metodologi bagi aplikasi ini


berlandaskan empat langkah utama iaitu proses input, proses pengesanan sisi, proses
pengkonturan dan proses output sebagaimana ditunjukkan di Rajah 4.1. Di dalam proses
pengkonturan terdapat empat lagi proses menjadikan metodologi bagi aplikasi ini terdiri
daripada tujuh proses kesemuanya sebelum mendapat output iaitu hasil pengkonturan
garis sempadan wajah yang diingini. Ketujuh-tujuh proses tersebut boleh diwakili dalam
bentuk cartalir seperti yang ditunjukkan di Rajah 4.2. Berikut adalah susunan metodologi
pengkonturan wajah yang terlibat:

i) Proses Input
• Memasukkan imej wajah manusia.

ii) Proses Pengesanan Sisi dan Kaburan Imej


• Mengesan sisi yang terdapat di dalam imej serta mengkaburkan imej
jika perlu.

iii) Proses Pengkonturan


• Memilih daya luaran snake sama ada SVF atau GVF.
• Memplotkan garisan awalan kontur aktif.
• Memasukkan nilai parameter snake kontur aktif.
• Melaksanakan pengkonturan garis sempadan wajah.

iv) Proses Output


• Membandingkan hasil output SVF dan GVF.
Pengesanan Sisi / Kaburan Garis
Imej Imej & Pengkonturan Sempadan
Wajah Wajah Wajah
dikonturkan

PROSES
INPUT OUTPUT

Rajah 4.1 : Konsep Umum Metodologi

4.2.1 Proses Input

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.

4.2.2 Proses Pengesanan Sisi dan Kaburan Imej

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.

4.2.3 Proses Pengkonturan

Proses pengkonturan adalah proses utama di dalam aplikasi ini. Proses ini
melibatkan empat proses yang dilaksanakan secara berjujukan. Empat proses tersebut
ialah:

i) Pemilihan Daya Luaran

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.

ii) Plot Garisan Awalan Kontur Aktif

Setelah memilih daya luaran kontur aktif, pengguna mestilah memplotkan


titik-titik vertis di atas imej yang hendak dikonturkan. Titik-titik vertis
tersebut akan bersambung menjadi garisan awalan (initial contour) kontur
aktif. Jumlah bilangan titik vertis yang hendak diplotkan adalah terpulang
kepada pengguna (sila rujuk contoh pada Gambarajah 6.12(a)).
Bagaimanapun pengguna digalakkan untuk memplotkan lebih dari tiga
titik vertis. Untuk mendapatkan hasil pengkonturan yang baik, kedudukan
garisan awalan mestilah berada di antara garis sempadan kepala dan garis
sempadan wajah yang dikehendaki (contoh Gambarajah 6.13(a)). Garis
sempadan tidak dapat dikontur dengan sempurna sekiranya garisan awalan
diletakkan di luar garis sempadan kepala (Gambarajah 6.19) kerana ia
berkecenderungan mengkonturkan kawasan kepala dan telinga. Di
samping itu, garis sempadan wajah yang diingini juga tidak dapat
dikonturkan jika garisan awalan diplotkan di bahagian dalam garis
sempadan kerana kontur aktif lebih tertarik untuk mengkonturkan kawasan
dalaman sempadan seperti mata, hidung ataupun mulut.
Mula

Masukkan Input
Imej Wajah

Hasil Pengesanan
Proses Pengesanan Sisi & Kaburan
Sisi & Kaburan Imej Imej

Memilih Daya Luaran


SFV atau GVF dan Peta Vektor Daya
Vektor Normal Luaran SVF atau
GVF

Memplot Garisan
Awalan Kontur Aktif

Masukkan Nilai
Parametrik Snake

Proses Pengkonturan Hasil Kontur


Garis Sempadan Garis Sempadan
Wajah Wajah

Tamat

Rajah 4.2 : Cartalir Metodologi


iii) Input Nilai Parameter Snake

Pengguna dikehendaki memasukkan input nilai parameter snake bagi


kontur aktif setelah memplotkan garisan awalan. Nilai parameter tersebut
terdiri daripada Alpha (α, nilai tegangan atau elastik bagi snake), Beta (β,
nilai tegasan atau bending bagi snake), Gamma (γ, saiz langkah dalam
satu pusingan lelaran), Kappa (κ, pemberat daya luaran), Dmin (jarak
minimum piksel di antara titik vertis bersebelahan), Dmax (jarak
maksimum piksel di antara titik bersebelahan) dan Lelaran (jumlah
bilangan lelaran yang diambil oleh kontur aktif untuk membentuk ke
sempadan yang diingini). Pemilihan nilai parameter ini adalah bergantung
kepada rupa bentuk sempadan yang hendak dikonturkan, bilangan titik
vertis dan kedudukan garisan awalan yang telah diplotkan. Pengguna
mestilah bijak menyesuaikan nilai parameter tersebut terutamanya nilai α
dan β untuk mendapatkan hasil pengkonturan yang sempurna. Pembangun
telah menetapkan nilai α = 5 dan nilai β = 2 di dalam aplikasi ini sebagai
default. Bagaimanapun, pengguna boleh mengubah nilai tersebut
mengikut kesesuaian imej.

iv) Perlaksanaan Pengkonturan

Setelah pengguna selesai memilih daya luaran, memplotkan garisan


awalan dan memasukkan nilai parameter snake, barulah proses
perlaksanaan pengkonturan boleh dilakukan. Proses ini boleh dilaksanakan
berulang kali sehingga mendapat hasil konturan yang dikehendaki.
Dengan lain perkataan, proses ini akan berhenti sehingga kontur aktif
selesai memusat dan membentuk ke garis sempadan wajah. Pada masa
yang sama, sekiranya hasil konturan tidak menepati citarasa, pengguna
boleh menukar vektor daya luaran, kedudukan garisan awalan serta nilai
parameter kontur aktif.
4.2.4 Proses Output

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.

4.3 Fasa Pembangunan Aplikasi

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:

i) Fasa Penyiasatan Awal.


ii) Fasa Analisa dan Literatur.
iii) Fasa Rekabentuk Aplikasi.
iv) Fasa Implementasi dan Pengujian Aplikasi.
v) Fasa Perbandingan dan Kesimpulan.
4.3.1 Fasa Penyiasatan Awal

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.

4.3.2 Fasa Analisa dan Literatur

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:

i) Menentukan rekabentuk logikal

Rekabentuk ini adalah untuk menghasilkan komponen-komponen aplikasi


dan hubungan antara setiap komponen. Proses input dan output, model,
prosidur dan kawalan akan diperincikan di dalam rekabentuk ini. Dalam
rekabentuk ini, rajah hirarki aplikasi dan rajah cartalir telah digunakan
untuk melakar model data logikal.

ii) Menentukan rekabentuk fizikal

Rekabentuk ini melibatkan proses untuk menukarkan model data logikal


kepada rekabentuk teknikal. Antara hasil daripada rekabentuk ini ialah
rekabentuk antaramuka pengguna, rekabentuk perkakasan dan rekabentuk
dokumentasi projek.

iii) Membangunkan struktur aturcara

Struktur aturcara ditentukan dengan membentuk algoritma bagi


menggambarkan perjalanan aktiviti yang berlaku. Ini penting sebagai
panduan kepada fasa implementasi nanti.
4.3.4 Fasa Implementasi dan Pengujian Aplikasi

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.

4.3.5 Fasa Perbandingan dan Kesimpulan

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.

4.4 Spesifikasi Imej Wajah

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

Kajian telah dilakukan terhadap pemilihan perisian dan perkakasan bagi


membolehkan perlaksanaan pembangunan aplikasi dapat berfungsi dengan baik dan
mudah. Berikut adalah spesifikasi perisian yang telah digunakan ketika membangunkan
aplikasi ini serta spesifikasi keperluan perkakasan yang diperlukan bagi menyokong
aplikasi yang dibangunkan.

4.5.1 Spesifikasi Perisian

Untuk membangunkan aplikasi ini, beberapa pakej perisian digunakan antaranya:

4.5.1.1 MATLAB

Oleh kerana pembangun menggunakan komputer di persekitaran Microsoft XP,


maka MATLAB 7.0 telah digunakan ketika pembangunan aplikasi. Bagaimanapun,
aplikasi ini boleh dilarikan melalui MATLAB 5.0. Perisian MATLAB telah dihasilkan
oleh Dr. Cleve Moler seorang Pengarah Saintis syarikat The MathWorks Inc. bagi
memudahkan kemasukan perisian matriks yang dibangunkan dalam projek LINPACK
dan EISPACK. Versi pertama ditulis pada akhir 1970-an untuk kegunaan pengkhususan
teori matriks, aljabar linear dan analisa penomboran. Kini ia merupakan pakej perisian
interaktif lengkap yang dapat membantu menyelesaikan masalah pengkomputeran yang
melibatkan pengiraan saintifik dan kejuruteraan beserta data visual dan ilustrasi grafik.
MATLAB telah membuktikan bahawa ia merupakan perisian yang sangat fleksibel bagi
mengaplikasikan matematik, fizik, kimia, perubatan, kejuruteraan, kewangan dan
pelbagai bidang lain yang menjurus kepada pengiraan numerik. Ciri-ciri utama perisian
MATLAB ialah:
(i) Algoritma terkini untuk untuk perjalanan perlaksanaan pengkomputeran
numerikal yang lebih tinggi terutamanya di bidang aljabar matriks.
(ii) Bahasa pengaturcaraan aras tinggi bagi berorientasikan vektor dan matriks
(iii) Sistem bantuan lengkap berdasarkan HTML.
(iv) Berkebolehan untuk bekerjasama dengan bahasa pengaturcaraan lain
seperti FORTRAN dan C untuk mengimport dan mengeksport data
berformat.
(v) Menyediakan Toolbox bagi menyelesaikan pelbagai masalah di beberapa
kawasan aplikasi MATLAB.
(vi) Terdiri dari koleksi pentakrifan fungsi matematik dan berkebolehan untuk
mentakrifkan sesebuah fungsi secara bersendirian.
(vii) Dapat memaparkan dan memplotkan data grafik dua atau tiga dimensi
untuk tujuan pembelajaran pedagogi, saintifik, ilustrasi serta visualisasi.
(viii) Menawarkan pembinaan antaramuka bergrafik untuk memudahkan
pengguna membangunkan aplikasi.

4.5.1.2 Microsoft Paint

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.

4.5.1.3 Adobe Photoshop 5.5

Selain Microsoft Paint, perisian Adobe Photoshop digunakan kerana ia


mempunyai pelbagai kemudahan kesan khas yang diperlukan untuk melakukan
pengeditan imej supaya dapat menghasilkan kualiti imej yang lebih baik. Selain itu,
perisian ini digunakan sebagai platform untuk menukarkan format imej seperti imej
berformat *.PNG kepada *.BMP atau *TIFF dan sebagainya memandangkan perisian ini
menyediakan banyak format imej yang standard.

4.5.1.4 Microsoft Project 2000

Perisian ini digunakan untuk membina Carta Gantt yang terdiri daripada
Perancangan Projek I dan Perancangan Projek II ketika membangunkan Aplikasi Kontur
Wajah.

4.5.1.5 Microsoft Word 2002

Perisian ini digunakan untuk mendokumentasikan aplikasi yang telah


dibangunkan. Ia juga digunakan ketika melakarkan semula rajah Hirarki Tetingkap
Aplikasi dan Cartalir Tetingkap Aplikasi serta gambarajah rekabentuk setiap tetingkap.

4.5.2 Spesifikasi Perkakasan

Perkakasan yang hendak digunakan adalah bergantung kepada keupayaan,


kebolehpercayaan dan kos yang terlibat. Keupayaan melibatkan kelajuan pemproses dan
saiz ingatan CPU. Kebolehpercayaan pula berdasarkan kepada kestabilan sistem
pengoperasiannya. Manakala kos pula melibatkan jumlah perbelanjaan yang mampu
ditanggung oleh pengguna. Bagi aplikasi ini, konfigurasi minimum bagi perkakasan yang
dicadangkan adalah seperti berikut:
● Kelajuan pemproses : Celeron, Pentium 166 Mhz dan ke atas
● Ingatan utama : 32 MB atau lebih
● Saiz cakera keras : 2 GB ke atas
● Pemacu disket : 3.5” 1.44 MB
● Monitor warna SVGA atau VGA
● Dilengkapi kad grafik, papan kekunci dan tetikus
BAB V

REKABENTUK APLIKASI

5.1 Pengenalan

Aplikasi ini dibangunkan bagi menyediakan satu kemudahan untuk pengguna


mengkonturkan imej wajah manusia. Ia merupakan satu tugas yang mencabar untuk
menjadikan aplikasi ini sebuah aplikasi yang memudahkan pengguna mengkonturkan
wajah di samping menarik perhatian pengguna. Oleh itu, dari peringkat awal lagi aplikasi
ini telah direkabentuk dari semua aspek termasuklah dari segi paparan antaramuka yang
mengandungi arahan-arahan yang ringkas dan yang paling penting sekali ialah memenuhi
ciri-ciri ramah pengguna. Semua ini dilakukan di Fasa Rekabentuk Aplikasi iaitu fasa
yang paling penting dalam membangunkan aplikasi. Dalam bab ini, dinyatakan
pembahagian tetingkap aplikasi yang telah dibangunkan beserta rekabentuk antaramuka
penggunanya.

1
5.2 Pembahagian Tetingkap Aplikasi

Sebelum aplikasi ini dibangunkan, beberapa pembahagian tetingkap dilakar


terlebih dahulu supaya mudah untuk melihat perjalanan proses pengkonturan. Terdapat
empat buah tetingkap sahaja yang akan dipaparkan setelah pengguna memasuki aplikasi
ini. Ia dinamakan sebagai Tetingkap Pertama, Tetingkap Kedua, Tetingkap Ketiga dan
Tetingkap Keempat.

5.2.1 Tetingkap Pertama

Tetingkap Pertama akan dipaparkan sebaik sahaja pengguna melarikan aplikasi


buat pertama kali. Tetingkap yang juga dikenali sebagai tetingkap pengenalan atau Flash
Screen ini tidak menyediakan arahan menu untuk melaksanakan sebarang proses
pengkonturan sebaliknya ia memaparkan tajuk aplikasi sebagai makluman pengguna.
Sekiranya pengguna berminat untuk meneruskan aktiviti pengkonturan, pengguna akan
menekan bebutang ‘Teruskan’ tetapi jika sebaliknya pengguna akan keluar dari aplikasi.

5.2.2 Tetingkap Kedua

Tetingkap Kedua akan dipaparkan setelah bebutang ‘Teruskan’ diklik. Tetingkap


ini akan memaparkan imej wajah asal manusia yang bakal dikontur. Imej tersebut secara
awalnya telah diletakkan pada aturcara. Bagaimanapun, pengguna boleh menukar kepada
imej wajah yang lain melalui bebutang ‘Imej’. Di dalam tetingkap ini juga pengguna
boleh menentukan sama ada ingin menukarkan imej asal tersebut kepada bentuk gradient
(perlaksanaan pengesanan sisi) atau sebaliknya. Di samping itu, pengguna boleh
memasukkan nilai sigma (σ) ke atas imej. Hasilnya dapat dilihat di paparan Tetingkap
Ketiga setelah bebutang ‘Teruskan’ ditekan.

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.

5.2.4 Tetingkap Keempat

Pengguna juga boleh kembali ke tetingkap sebelumnya sekiranya ingin


melakukan perubahan terhadap hasil peta imej. Tetingkap Keempat membolehkan
pengguna melihat hasil pengkonturan wajah. Bagaimanapun sebelum itu, pengguna
hendaklah memasukkan nilai-nilai parametrik kontur dalam melaksanakan proses
pengkonturan Snake atau pengguna boleh menggunakan nilai yang telah diberikan. Nilai-
nilai parametrik kontur aktif tersebut ialah Alpha (α), Beta (β), Gamma (γ), Kappa (κ),
Dmin, Dmax dan jumlah Lelaran bagi Snake. Kemudian pengguna akan membentukkan
garisan awalan lengkung Snake pada imej wajah asal melalui bebutang ‘Garisan’.
Pengguna juga boleh menetapkan ketebalan garisan lengkungan itu dengan memasukkan
nilai di petak ketebalan ‘Titik’. Hasil pengkonturan dapat dilihat setelah pengguna
mengklik bebutang ‘Kontur’. Bebutang ini boleh ditekan beberapa kali sehingga
mendapatkan hasil yang dikehendaki. Sekiranya hasilnya tidak memuaskan, pengguna
boleh menukar nilai-nilai Snake atau mengubah kedudukan garisan awalan lengkungan
kontur aktif. Pengguna juga boleh ke Tetingkap Ketiga jika ingin menukar vektor daya
luaran SVF atau GVF dengan menekan bebutang ‘Kembali’.

3
5.3 Hirarki Tetingkap Aplikasi

Aplikasi ini tidak memaparkan semua tetingkap secara serentak setelah ia


dilarikan. Sebaliknya ia akan dipaparkan secara berjujukan mengikut kehendak pengguna
sebagaimana diterangkan sebelumnya. Secara umumnya, kesemua tetingkap tersebut
boleh dilihat sebagai susunan hirarki ringkas di bawah.

KONTUR WAJAH

Tetingkap Pertama

Tetingkap Kedua

Tukar Imej Wajah,


Gradient dan Sigma Gradient dan Sigma

Tetingkap Ketiga

Pemilihan Bidang Vektor Tukar Bidang Vektor


(SVF atau GVF) (SVF atau GVF)

Tetingkap Keempat

Rajah 5.1 : Hirarki Aplikasi Kontur Wajah

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.

5.4 Cartalir Tetingkap Aplikasi

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

Rajah 5.2 : Cartalir Tetingkap Pertama

6
A

Imej
Wajah Asal

Ya Buka Imej
Pilih Wajah Baru
Bebutang yang
Imej? dikehendaki

Tidak

Masukkan Imej
Gradient Wajah Baru
(Pengesanan Sisi)

Masukkan Nilai Bebutang


Sigma ≥ 0 Teruskan
(Kaburan Imej)

Imej Wajah
Gradient yang
B dikaburkan
atau
sebaliknya

Rajah 5.3 : Cartalir Tetingkap Kedua

7
B

GVF
SVF Masukkan nilai
atau Mu (µ) dan
GVF? Lelaran GVF

SVF

Bebutang
Kembali
Teruskan
A
atau
Kembali?

Teruskan

Peta Vektor Daya


Luaran (External C
Force) bagi SVF
atau GVF

Rajah 5.4 : Cartalir Tetingkap Ketiga

8
C

Masukkan nilai
parametrik Alpha,
Beta, Gamma, Kappa,
Dmin, Dmax dan
Lelaran

Plot garisan Bebutang B


awalan Snake Kembali

Masukkan jumlah
Titik ketebalan bagi
garisan awalan

Hasil kontur
Bebutang pada imej
Kontur wajah

Proses
tamat?
Tidak
Ya

Tamat

Rajah 5.5 : Cartalir Tetingkap Keempat

9
5.5 Antaramuka Pengguna Tetingkap Aplikasi

Dalam membangunkan sesebuah aplikasi, antaramuka pengguna memainkan


peranan yang amat penting. Ini kerana, pengguna berinteraksi dengan aplikasi melalui
antaramuka pengguna dan biasanya pengguna menjadikan antaramuka sebagai
pandangan pertamanya untuk menggambarkan kandungan seluruh aplikasi. Sekiranya
antaramuka sesebuah aplikasi itu menarik, pengguna akan mudah tertarik dan seterusnya
akan melayari aplikasi tersebut dan begitulah sebaliknya. Bagaimanapun antaramuka
yang menarik sahaja belum boleh dikatakan baik sekiranya tidak memiliki elemen ramah
pengguna dan mudah dikendalikan. Bagi aplikasi yang dibangunkan ini, perisian
MATLAB 7.0 telah digunakan untuk membina antaramuka serta aturcaranya. Di dalam
kesemua antaramuka tetingkap ini, hasil paparan adalah dalam bentuk teks dan imej.
Berikut adalah lakaran gambarajah ringkas bagi setiap antaramuka tetingkap.

Selamat Datang ke Kontur Wajah

Kontur
Wajah
Teruskan

Gambarajah 5.1 : Lakaran Antaramuka Tetingkap Pertama

10
Kontur Wajah

Kembali Teruskan
Paparan Imej
Wajah Asal
√ Gradient

Sigma : XX

Gambarajah 5.2 : Lakaran Antaramuka Tetingkap Kedua

Kontur Wajah

Kembali Teruskan
Paparan Imej Paparan Wajah
Wajah Asal Gradient dan/atau
Wajah Kabur SVF

GVF

Mu : XX

Lelaran : XX

Vektor Normal

Gambarajah 5.3 : Lakaran Antaramuka Tetingkap Ketiga

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

Gambarajah 5.4 : Lakaran Antaramuka Tetingkap Keempat

12
BAB VI

HASIL DAN IMPLEMENTASI

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:

(i) Pembangunan dan Pengaturcaraan Aplikasi.


(ii) Implementasi Aplikasi Kontur Wajah.
(iii) Perbandingan Hasil Implementasi.

6.2 Pembangunan dan Pengaturcaraan Aplikasi

Antaramuka pengguna dan pengaturcaraan aplikasi ini dibangunkan dengan


menggunakan perisian MATLAB. Sebab utama perisian ini dipilih kerana ia
menyediakan fungsi pengiraan matematik yang lebih mudah berbanding perisian
Microsoft Visual Basic dan C++ di samping merekabentuk paparan antaramuka. Terlebih
dahulu, pembangun akan membina empat antaramuka tetingkap aplikasi seperti yang

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.

6.3 Implementasi Aplikasi Kontur Wajah

Pertama sekali setelah pengguna memasuki aplikasi ini, pengguna akan


dipaparkan dengan Tetingkap Pertama iaitu antaramuka pengenalan. Ia boleh ditunjukkan
seperti gambarajah di bawah:

Gambarajah 6.1 : Hasil Antaramuka Tetingkap Pertama

65
Setelah pengguna memilih bebutang ‘Teruskan’, Tetingkap Kedua pula akan
dipaparkan seperti di bawah berikut:

Gambarajah 6.2 : Hasil Antaramuka Tetingkap Kedua

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:

Gambarajah 6.3 : Kekotak Dialog buka Imej Wajah

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

6.3.2 Parameter Sigma

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

(a) (b) (c)

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

Gambarajah 6.8 : Hasil Antaramuka Tetingkap Keempat

69
6.4 Perbandingan Hasil Implementasi

Perbandingan yang dimaksudkan ialah melibatkan pengkonturan daya luaran


snake SVF dan GVF. Hasil yang diperolehi oleh kedua-dua bidang vektor ini adalah
berbeza bergantung kepada masukkan input parameter kontur dan garis awalan kontur
aktif. Di Tetingkap Ketiga, setelah memilih bidang vektor sama ada SVF atau GVF,
pengguna boleh memilih sama ada ingin menormalkan vektor tersebut. Gambarajah 6.9,
6.10 dan 6.11 menunjukkan perbezaan peta vektor daya luaran yang dihasilkan oleh SVF
dan GVF.

6.4.1 Peta Daya Luaran

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.

6.4.1.1 Peta Daya Luaran SVF

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

6.4.1.2 Peta Daya Luaran GVF

Gambarajah 6.9(b) dan 6.9(c) menunjukkan perbezaan antara GVF dengan


vektor normal dan tidak normal. Berbeza dengan SVF, daya luaran GVF melibatkan
perhubungan di antara gradient dengan operator Laplacian. GVF mempunyai Mu (µ) iaitu

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.

6.4.2 Parameter Kontur Aktif

Gambarajah 6.8 menunjukkan antaramuka Tetingkap Empat. Antaramuka ini


membenarkan pengguna memasukkan parameter kontur aktif yang terdiri dari:

(i) Alpha (α) = Tegangan snake


(ii) Beta (β) = Tegasan snake
(iii) Gamma (γ) = Langkah saiz dalam satu pusingan lelaran
(iv) Kappa (κ) = Pemberat daya luaran
(v) Dmin = Jarak minimum piksel di antara titik bersebelahan
(vi) Dmax = Jarak maksimum piksel di antara titik bersebelahan
(vii) Lelaran = Jumlah masa diambil oleh kontur aktif untuk dibentukkan

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

Selain dari kombinasi parameter pemberat, pengisytiharan garis awalan kontur


aktif (initial contour) juga menjadi faktor penentu bentuk hasil pengkonturan. Di sini,
terdapat lima contoh hasil pengkonturan berdasarkan bilangan titik vertis lengkungan
(titik vertis bersamaan 4, 6, 7 dan 8) dan kedudukan garis lengkungan tersebut sama ada
jauh atau dekat dari garis sempadan imej yang dikehendaki. Setiap contoh pengujian di
asingkan di bahagian Pengkonturan Snake SVF dan GVF.

6.4.4 Contoh Pengujian Pengkonturan Snakes

Terdapat pelbagai contoh pengujian pongkonturan telah dilaksanakan


menggunakan aplikasi Kontur Wajah ini. Setiap pengujian adalah berasaskan penyataan
masalah yang telah dinyatakan di BAB I sebelum ini iaitu bilangan titik vertis
lengkungan kontur aktif, kedudukan dan jarak garis awalan kontur aktif dari garis
sempadan yang dikehendaki, bilangan lelaran pengkonturan dan kombinasi parameter
kontur aktif. Berikut adalah jadual ringkas mengenai lima buah contoh yang dipilih
sebagai rujukan dan perbandingan di antara snake SVF dan snake GVF.

CONTOH TITIK VERTIS JARAK GARIS AWALAN


1 7 vertis Menghampiri garis sempadan wajah
2 8 vertis Jauh dari garis sempadan wajah
3 6 vertis Di luar garis sempadan kepala
4 4 vertis Menghampiri garis sempadan wajah
5 4 vertis Jauh dari garis sempadan wajah

Jadual 6.1 : Jadual ringkas 5 contoh yang diuji ke atas SVF dan GVF

75
6.4.4.1 Pengkonturan Snake SVF

Pengkonturan SVF atau snake tradisional melibatkan pengiraan vektor daya


luaran menggunakan gradient sahaja. Gambarajah 6.12 menunjukkan hasil
pengkonturan SVF dengan bilangan vertis bersamaan 7 dan garisan awalan kontur
diletakkan berdekatan dengan sempadan yang dikehendaki. Nilai parameternya ialah
α = 5, β = 2, γ = 1 dan Lelaran = 40. Contoh Pertama ini memberikan hasil
pengkonturan yang baik. Penggunaan nilai tegangan (α) dan tegasan (β) adalah
bersesuaian dengan bentuk lengkungan garisan awalan kontur. Sebanyak dua kali lelaran
(bersamaan 40 x 2 = 80 lelaran) diperlukan untuk melaksanakan pengkonturan lengkap.

(a) (b) (c)

Gambarajah 6.12 : Contoh Pertama hasil SVF (a) Garisan awalan kontur aktif (b)
Lelaran kali pertama (c) Lelaran kali kedua

Contoh Kedua (Gambarajah 6.13) pula melibatkan sebanyak 8 bilangan vertis


dan kedudukannya adalah lebih jauh berbanding dengan kedudukan contoh pertama.
Nilai parameter ialah α = 10, β = 2, γ = 1 dan Lelaran = 40. Oleh kerana kedudukannya
lebih jauh, nilai α telah ditambah. Nilai γ jika ditambahkan kepada 2 ia tidak memberi
kesan perbezaan kepada hasil konturan. Contoh ini juga menghasilkan kontur yang baik.
Walau bagaimanapun, sebanyak empat kali lelaran (bersamaan 40 x 4 = 160 lelaran)
diperlukan untuk mendapatkan hasil yang sempurna. Sebab utamanya ialah kedudukan
garis awalan yang berada jauh dari sempadan yand dikehendaki.

76
(a) (b)

(c) (d) (e)

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

Contoh Ketiga (Gambarajah 6.14) menunjukkan kedudukan meletakkan garis


awalan yang berada di luar kawasan rambut iaitu lebih jauh dari kawasan sempadan.
Sebanyak 6 titik vertis diplotkan. Nilai parameter ialah α = 20, β = 10, γ = 1, κ = 1 dan
Lelaran = 40. Kali ini nilai α ditambah lagi kerana kedudukan garisan awalan lebih jauh.
Nilai β juga ditambah bersesuaian dengan nilai α. Contoh ketiga ini adalah gagal kerana
tidak memenuhi kehendak matlamat projek. Ia tidak dapat dikonturkan dengan baik
walaupun lelaran dibuat lebih dari dua kali. Ini adalah disebabkan kedudukan garis
awalan yang berada terlalu jauh dari sempadan wajah.

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).

Contoh Kelima (Gambarajah 6.16) juga melibatkan 4 titik vertis tetapi


kedudukannya diletakkan berjauhan dari garis sempadan. Nilai parameter yang sesuai
ialah α = 30, β = 15, γ = 1 dan Lelaran = 40. Hasil kontur juga adalah baik tetapi
memerlukan masa yang lama untuk dikonturkan iaitu 4 kali lelaran (bersamaan 40 x 4 =
160 lelaran). Kesimpulannya, untuk mendapatkan hasil kontur yang baik, kedudukan
garis lengkung memainkan peranan penting jika melibatkan titik vertis yang sedikit. Jika
ia diletakkan berjauhan dari sempadan dikehendaki, nilai α dan β hendaklah ditambah
serta masa lelaran juga perlu ditingkatkan.

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)

(c) (d) (e)

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

Pengkonturan GVF juga menggunakan lima contoh yang serupa dengan


pengkonturan SVF. Contoh Pertama menggunakan 7 titik vertis yang diletakkan
berdekatan dengan garis sempadan wajah. Nilai parameternya ialah α = 5, β = 2, γ = 1
dan Lelaran = 35. Contoh pertama ini memberikan hasil pengkonturan yang kurang baik
berbanding SVF kerana GVF lebih cenderung untuk mengkonturkan kawasan luar
telinga. Sebanyak dua kali lelaran (bersamaan 35 x 2 = 70 lelaran) diperlukan untuk
melaksanakan pengkonturan yang lengkap. Jumlah ini adalah kurang dari masa lelaran
yang diambil oleh SVF.

(a) (b) (c)

Gambarajah 6.17 : Contoh Pertama hasil GVF (a) Garisan awalan kontur aktif (b)
Lelaran kali pertama (c) Lelaran kali kedua

Gambarajah 6.18 menunjukkan Contoh Kedua GVF. Kedudukan garis awalan,


bilangan titik vertis dan nilai parameter (α, β dan γ) adalah sama dengan Contoh Kedua
SVF. Bagaimanapun, nilai lelaran GVF tidak sama iaitu bersamaan 20 dan ia perlu
dilelarkan sebanyak empat kali (menjadi 80 lelaran). Hasil yang diperolehi tidak sebaik
hasil SVF kerana ia turut mengkonturkan sedikit kawasan telinga. Namun, masa yang
diperlukan untuk melelarkan GVF adalah sedikit berbanding SVF.

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

Gambarajah 6.19 menunjukkan Contoh Ketiga bagi pengkonturan GVF. Nilai


parameter, kedudukan garis awalan dan bilangan titik vertis sama dengan contoh ketiga
SVF. Contoh ketiga GVF ini juga gagal kerana tidak melentur ke garis sempadan yang
dikehendaki. Malah ia tidak dapat dikonturkan dengan baik walaupun lelaran dibuat
sebanyak tiga kali (melebihi bilangan lelaran SVF). Ini kerana GVF mengalami masalah
meletakkan kontur aktif ke lokasi sempadan yang betul walaupun ia menyelesaikan
masalah kelemahan jarak tangkapan yang dialami oleh SVF.

Contoh Keempat GVF (Gambarajah 6.20) hanya memerlukan sekali lelaran


sahaja berbanding SVF (bersamaan 40 lelaran) walaupun kedudukan garis awalan,
bilangan vertis dan nilai vertis adalah sama. Bagaimanapun, hasilnya tidak sebaik SVF.

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)

(c) (d) (e)

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

5 160 α = 30, β = 15 Baik 160 α = 40, β = 20 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.

Pengguna boleh melaksanakan proses pengkonturan sebanyak mana masa lelaran


yang diingini. Pengkonturan akan berhenti jika tiada lagi lelaran kontur yang boleh
dilakukan tidak kira sama ada kontur aktif tersebut berhenti di kawasan sempadan yang
dikehendaki atau sebaliknya. Pengguna juga boleh melaksanakan dua jenis pengkonturan
pada masa serentak dengan input imej yang sama. Maksudnya, jika pada permulaannya
pengguna memilih snake SVF, setelah melakukan beberapa lelaran, dengan hasil SVF
yang di dapati itu, pengguna boleh memilih snake GVF pula. Gabungan snake ini turut
memberikan hasil pengkonturan yang baik. Bagaimanapun, pengguna mestilah bijak
menyesuaikan nilai parametrik kontur aktif.

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.

6.6.1 Bilangan Titik Vertis

Menurut Hatamzadeh, J. T. [9], snake tradisional atau SVF tidak dapat


mengkonturkan hampir kesemua contoh imej kawasan telinga tengahnya (seperti sampel
tulang malleus dan cavity) dengan baik sekiranya bilangan titik vertisnya adalah sedikit
(contohnya empat titik vertis). Oleh itu, pengguna perlu memplotkan lebih dari bilangan
tersebut sekiranya ingin mendapat hasil yang baik (rujuk LAMPIRAN E). Berbeza bagi
aplikasi KW pula, SVF dapat mengkontur sempadan wajah dengan baik walaupun hanya
sebanyak empat titik vertis diplotkan (Gambarajah 6.15). Menurut beliau lagi, GVF
tidak mempunyai masalah untuk memusatkan kontur aktif jika bilangan vertisnya adalah
sedikit. Sebaliknya, aplikasi KW tidak dapat memberikan hasil pengkonturan yang baik
dengan menggunakan GVF walaupun bilangan titik vertis adalah sedikit (Gambarajah
6.20).

86
6.6.2 Kedudukan Garisan Awalan Kontur Aktif

Dalam aplikasi PTT, garisan awalan kontur aktif hendaklah diletakkan di


bahagian dalam sempadan imej telinga tengah yang dikehendaki manakala aplikasi KW
pula mestilah diletakkan di luar sempadan wajah. Bagi aplikasi PPT, sekiranya garisan
awalan kontur aktif diletakkan berjauhan dari sempadan, SVF langsung tidak dapat
melentur ke garis sempadan (rujuk LAMPIRAN F). Sebaliknya, GVF dapat memberikan
hasil pengkonturan yang baik walaupun garisan awalan diletakkan berjauhan dari
sempadan (Gambarajah 2.12). Bagi aplikasi KW pula, SVF dan GVF akan memberikan
hasil yang gagal jika garisan awalan diletakkan di luar kawasan kepala. SVF masih dapat
memberikan kontur yang baik sekiranya ia diletakkan berjauhan dari sempadan
dikehendaki dengan syarat ia berada di tengah-tengah sempadan antara rambut dan raut
wajah (rujuk Gambarajah 6.13 dan 6.14).

6.6.3 Nilai Parametrik Kontur Aktif

Seperti aplikasi KW, aplikasi PTT juga membenarkan pengguna memasukkan


input nilai parametrik kontur aktif sebelum aktiviti pengkonturan dilaksanakan. Dengan
ini, pengguna dapat menentukan sendiri nilai parameter yang bersesuaian untuk pelbagai
bentuk imej yang ingin dikonturkan. Perbezaan yang ketara di antara kedua-dua aplikasi
ini ialah dari segi penggunaan nilai parameter α (daya tegangan) dan β (daya tegasan).
Kebanyakan imej telinga tengah memerlukan nilai α antara 0.02 hingga 0.08 dan nilai β
antara 0 hingga 0.03. Sekiranya kedua-dua nilai tersebut melebihi dari 0.08 atau 0.03,
hasil yang diperolehi adalah gagal. Bagi imej wajah pula, nilai kedua-dua parameter ini
lebih besar berbanding aplikasi PTT. Nilai α ialah di antara 5 hingga 40 manakala nilai β
ialah antara 2 hingga 25. Nilai α dan β akan meningkat sekiranya kedudukan garisan
awalan semakin menjauhi sempadan, dan nilai β biasanya adalah setengah dari nilai α.
Walau bagaimanapun, paling penting sekali ialah gabungan nilai α dan β mestilah
bersesuaian untuk kesemua imej sama ada imej telinga tengah atau imej wajah.

87
6.6.4 Bilangan Lelaran Pengkonturan

Memandangkan antara tujuan lain aplikasi PTT ialah membenarkan pengkonturan


imej telinga tengah yang mempunyai jumlah kebisingan yang tinggi, maka masa lelaran
yang diambil oleh SVF atau GVF adalah lebih banyak berbanding aplikasi KW yang
menitikberatkan imej wajah yang jelas. Sesetengah imej telinga tengah (contohnya imej
malleus dari slice 196) memerlukan masa sehingga 3000 lelaran bagi snake SVF berbeza
dengan snake GVF hanya memerlukan masa lelaran sebanyak 20. Sila rujuk
LAMPIRAN G untuk melihat jadual perbezaan bilangan lelaran antara SVF dan GVF
bagi aplikasi PTT.

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.

Perbandingan hasil pengkonturan menggunakan vektor SVF dan GVF telah


dilakukan. Tujuan utama perbandingan ini adalah untuk mengetahui perbezaan hasil
output SVF dan GVF yang bakal diperolehi dengan menggunakan nilai parameter kontur
aktif yang sama ataupun berbeza. Dengan ini, pengguna dapat memilih jenis vektor yang
sesuai untuk proses pengkonturan wajah.

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

1. Canny, J. (1986). “A Computational Approach to Edge Detection.” IEEE Trans.


on PAMI. 8(6). 679 – 698.

2. Caselles, V. (1995). “Geometric Models for Active Contours.” IEEE Proceedings


of Int. Conf. on Image Processing. 3. 9 – 12.

3. Chengjun Liu (2003). “Bayesian Discriminating Features Method for Face


Detection.” IEEE Trans. on PAMI. 25(6). 725 – 740.

4. Cohen, L. D. (1991). “On Active Contour Models and Balloons.” Computer


Vision, Graphics and Image Processing: Image Understanding. 53(2).
211 – 218.

5. Cohen, I. and Cohen, L. D. (1993). “Finite-Element Methods for Active Contour


Models and Balloons for 2-D and 3-D Images.” IEEE Trans. on PAMI.
15(11). 1131 – 1147.

6. Elder, J. H. and Johnston, L. A. (2002). “Contour Grouping with Prior Models.”


IEEE Trans. on PAMI. 25(6). 661 – 674.

7. Feng, Y. and Gelenbe, E. (1998). “Adaptive Object Tracking and Video


Compression with Dynamic Contours.” IEEE Proceedings of the 15th
National Radio Science Conf. NRSC. 1. INV3/1 – INV326.
8. Gunn, S. R. and Nixon, M. S. (1996), “Snake Head Boundary Extraction using
Global and Local Energy Minimisation.” IEEE Proceedings of Int.Conf.
on Pattern Recognition. 581 – 585.

9. Hatamzadeh, T. J. and Funnell, W. R. J. (2002). “Comparison of Gradient,


Gradient Vector Flow and Pressure Force for Image Segmentation Using
Active Contours.” Proc 27th Ann Conf. Can Med. Bio. Eng Soc.

10. Kashyap, R. L. (1986), “Image Models.” Academic Press, Inc. on Pattern


Recognition. 281 – 308.

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.

15. Lobregt, S. and Viergever, M. A. (1995). “A Discrete Dynamic Contour Model.”


IEEE Trans. on Medical Imaging. 14(1). 12 – 24.

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.

18. McInerney, T. and Terzopoulos, D. (1996). “Deformable Models in Medical


Image Analysis.” IEEE Proceedings of the Workshop on Mathematical
Methods in Biomedical Image Analysis. 171 – 180.

19. Menet, S., Medioni, G. and Saint-Marc, P. (1990). “B-Snakes: Implementation


and Application to Stereo.” Proceeding of the DARPA Image
Understanding Workshop. 720 – 726.

20. Miller, J. V., Breen, D. E. and Wonzy, M. J. (1990). “Extraction Geometric


Models Through Constraint Minimization.” IEEE Proceedings of the First
Conference on Visualization. 74(82). 464 – 465.

21. Nevatia, R. (1986). “Image Segmentation.” Academic Press, Inc. on Pattern


Recognition. 215 – 231.

22. Nikolaidis, A. and Pitas, I. (2000). “Facial Feature Extraction and Pose
Determination.” Pattern Recognition. 33. 1783 – 1791.

23. Staib, L. H. and Duncan, J. S. (1992). “Boundary Finding with Parametrically


Deformable Models.” IEEE Trans. on PAMI. 11(14). 1061 – 1075.

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

Вам также может понравиться