Pengenalan Pengucapan Huruf Vokal Dengan Menggunakan Lebar dan Tinggi Bibir.
i
Universitas Kristen Maranatha
PENGENALAN PENGUCAPAN HURUF VOKAL
MENGGUNAKAN LEBAR DAN TINGGI BIBIR
Disusun oleh:Dearni Happy (0722113)
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha, Jl.Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,
email : [email protected]
ABSTRAK
Tugas akhir ini memaparkan tentang perancangan pengenalan pengucapan huruf vokal dengan menggunakan lebar dan tinggi bibir yang diimplementasikan menggunakan Matlab. Terdapat beberapa langkah utama untuk proses pengenalan pengucapan huruf vokal, yaitu deteksi bibir, pencarian titik-titik penting serta pencarian nilai parameter-parameternya. Nilai parameter ini yang akan dibandingkan untuk mendapatkan pengelompokan pengucapan huruf vokal. Pengambilan keputusan untuk proses pengenalan dilakukan dengan mencari jarak terdekat dari nilai parameter tersebut.
Dari tugas akhir ini diketahui bahwa, sistem pengenalan pengucapan huruf vokal menggunakan lebar dan tinggi bibir mampu mengatasi masalah dengan persentase kesuksesan pengenalan 88 % untuk citra uji yang sama persis dengan citra latih, 84% untuk citra uji yang berbeda dengan citra latih, serta 74% untuk citra uji tidak terdapat dalam database.
Kata kunci : Deteksi bibir, Pencarian titik-titik penting dan pengukuran jarak terdekat
(2)
ii
Universitas Kristen Maranatha
VOWEL PRONUNCIATION RECOGNITION USING WIDTH
AND HEIGHT OF THE LIPS
Compiled by : Dearni Happy (0722113)
Jurusan Teknik Elektro, Fakultas Teknik, Universitas Kristen Maranatha, Jl.Prof.Drg.Suria Sumantri, MPH no.65, Bandung, Indonesia,
email : [email protected]
ABSTRACT
This final assignment tells about the design of vowel pronunciation recognition using the width and the height of the lips which is implemented using Matlab. There are several main steps for the vowel pronunciation recognition, ie : lip detection, the key points search, and the search of the parameters value. The values of these parameters will be compared to get the vowel pronunciation grouping. The decision making for the recognition is conducted by finding the closest distance from the values of the parameters.
From this final assignment, note that, the vowel pronunciation recognition system using the width and the height of the lips are able to overcome the problem with the success rate is 88% for the test image which is same to the trainning image, 84% for the test image which is different with the trainning image, also 74% for the test image which isn’t place in the database.
Keywords : lip detection, the key points search, the closest distance measurement
(3)
v
Universitas Kristen Maranatha
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... ii
KATA PENGANTAR ... iii
DAFTAR ISI ... v
DAFTAR GAMBAR ... vii
DAFTAR TABEL ... viii
BAB I PENDAHULUAN 1.1 Latar Belakang ... 1
1.2 Identifikasi Masalah ... 2
1.3 Tujuan ... 2
1.4 Pembatasan Masalah ... 2
1.5 Sistematika Penulisan ... 2
BAB II LANDASAN TEORI 2.1 Citra Digital ... 4
2.2 Dasar Pengolahan Citra Digital ... 5
2.3 Operasi Pengolahan Citra Digital ... 6
2.3.1 Image Enhancement ... 6
2.3.2 Image Restoration ... 6
2.3.3 Image Compression ... 6
2.3.4 Image Segmentation ... 7
2.3.5 Image Reconstruction ... 7
2.4 Ektraksi Ciri Bibir ... 7
2.5 Sistem Ruang Warna YIQ ... 8
2.6 Citra Biner ... 8
2.7 Reduksi Noise Menggunankan Filter Rata-Rata ... 9
2.8 Parameter Bentuk Bibir ... 10
(4)
vi
Universitas Kristen Maranatha BAB III PERANCANGAN DAN REALISASI
3.1 Database Citra ... 13
3.2 Deteksi Bibir (Lips Detection) ... 14
3.3 Pencarian Titik-Titik Penting ... 16
3.3 Proses Pengenalan Pengucapan Huruf Vokal ... 17
BAB IV DATA PENGAMATAN DAN ANALISA DATA 4.1 Data Pengamatan ... 20
4.1 Pengambilan Nilai Parameter ... 20
4.2 Proses Pengujian Data ... 23
4.2.1 Percobaan 1 ... 24
4.2.1.1 Data Pengamatan Percobaan 1... 24
4.2.1.2 Analisa Data Percobaan 1 ... 26
4.2.2 Percobaan 2 ... 26
4.2.2.1 Data Pengamatan Percobaan 2... 27
4.2.2.2 Analisa Data Percobaan 2 ... 27
4.2.3 Percobaan 3 ... 27
4.2.3.1 Data Pengamatan Percobaan 3... 28
4.2.3.2 Analisa Data Percobaaan 3 ... 30
4.2 Hasil Pengamatan Pengenalan Pengucapan... 30
BAB V KESIMPULAN DAN SARAN 5.1 Kesimpulan ... 33
5.2 Saran ... 33
DAFTAR PUSTAKA ... 35
LAMPIRAN A PROGRAM MATLAB LAMPIRAN B GAMBAR CITRA BIBIR
(5)
vii
Universitas Kristen Maranatha
DAFTAR GAMBAR
Gambar 2.1 Model geometrik bibir ... 10
Gambar 2.2 Penentuan titik-titik penting. ... 10
Gambar 2.3 Mencari jarak bagian atas, bawah dan kanan pada citra bibir.. . 11
Gambar 3.1 Diagram alir proses keseluruhan. ... 13
Gambar 3.2 Sampel database bibir yang digunakan ... 14
Gambar 3.3 Citra bibir setelah diubah ke citra biner.. ... 15
Gambar 3.4 Citra bibir setelah dilakukan proses pengisian lubang .. ... 15
Gambar 3.5 Diagram alir proses deteksi bibir.. ... 17
Gambar 3.6 Diagram alir proses pencarian titik-titik penting. ... 17
(6)
viii
Universitas Kristen Maranatha
DAFTAR TABEL
Tabel 4.1 Data Pengamatan bagian atas,bawah dan kanan pada citra . ... 21
Tabel 4.2 Data range untuk setiap huruf ... 22
Tabel 4.3 Hasil dari vokal yang dikenali pada citra bibir. ... 22
Tabel 4.4 Nilai tengah pada setiap huruf vokal... 23
Tabel 4.5 Data hasil dari percobaan 1 ... 24
Tabel 4.6 Data hasil dari percobaan 2 ... 27
Tabel 4.7 Data hasil dari percobaan 3 ... 29
(7)
LAMPIRAN A
KODE PROGRAM
(8)
A-1
Program Proses Keseluruhan
function [keluar1,keluar2,keluar3,keluar4,keluar5,keluar6] = cari_parameter (masuk1,masuk2,masuk3)
% Fungsi keseluruhan untuk mencari parameter horizontal & vertikal % masuk1 : Citra RGB bibir
% masuk2 : Banyaknya piksel dari citra untuk setiap baris % masuk3 : Banyaknya piksel dari citra untuk setiap kolom % keluar1 : parameter horizontal bibir (lebar bibir)
% keluar2 : parameter vertikal bibir (tinggi bibir)
% keluar3 : parameter panjang dari titik bibir atas terhadap titik tengah bibir % keluar4 : parameter panjang dari titik bibir bawah terhadap titik tengah bibir % keluar5 : parameter panjang dari titik bibir kanan terhadap titik tengah bibir % keluar6 : parameter panjang dari titik bibir kiri terhadap titik tengah bibir % Mengubah RGB menjadi YIQ
xn=rgb2ntsc(masuk1);
% Mengambil domain Q saja
z=xn(:,:,3);
% Rata-rata nilai dari z untuk nilai treshold
zn=mean(z(:));
% Function mengubah domain Q menjadi Black-White
[vektor_tes]=ubahQ_BW(z,zn,masuk2,masuk3); figure, imshow(vektor_tes);title('Black white');
% Function memperbaiki citra black-white bibir
[hasil_filter,bibir_penuh]=image_proses(vektor_tes);
% figure, imshow(hasil_filter);title('Hasil filter average');
figure, imshow(bibir_penuh);title('Isi lubang-lubang pada Citra bibir');
% Function mencari area bibir saja
[Bibir]=area_bibir(bibir_penuh,masuk2,masuk3); figure, Citra=imshow(Bibir); title ('Citra bibir saja');
% Function mencari titik-titik pada bibir
[x0,x1,x2,x3,x4,y0,y1,y2,y3,y4] = titik_bibir(Bibir,masuk2,masuk3);
% Parameter yang akan dibandingkan untuk mengetahui huruf vokal
keluar1 = x1-x2; keluar2 = y4-y3; keluar3 = y0-y3; keluar4 = y4-y0;
(9)
A-2 keluar5 = x0-x2;
keluar6 = keluar5;
% Memberi titik-titik pada gambar bibir
hold(imgca,'on') plot(imgca,x1, y1, 'g*') plot(imgca,x2, y2, 'r*') plot(imgca,x3, y3, 'blue*') plot(imgca,x4, y4, 'm*') plot(imgca,x0, y0, 'y*') hold(imgca,'off')
Program Mengubah Q ke Black And White
function [keluar] = ubahQ_BW(masuk1,masuk2,masuk3,masuk4)
% Fungsi untuk mengubah citra domain Q menjadi citra black-white % masuk1 : Citra domain Q
% masuk2 : Rata-rata nilai piksel-piksel dari z (untuk nilai treshold) % masuk3 : Banyaknya piksel dari citra untuk setiap baris
% masuk4 : Banyaknya piksel dari citra untuk setiap kolom % keluar : Citra domain Q yang sudah menjadi citra black-white
z=masuk1; zn=masuk2;
ukuran_baris=masuk3; ukuran_kolom=masuk4;
vektor_z=reshape(z,size(z,1)*size(z,2),1);
for l=1:length(vektor_z) if vektor_z(l)>zn vektor_z(l)=1; else
vektor_z(l)=0; end;
end
keluar=reshape(vektor_z,ukuran_baris,ukuran_kolom);
Program proses perbaikan citra biner
function [keluar1,keluar2] = image_proses(masuk)
% Fungsi untuk memperbaiki citra bibir dengan menggunakan filter rata-rata dan % mengisi lubang-lubang (nilai piksel 0 --> 1) pada area bibir
% masuk : Citra black-white bibir
% keluar1 : Citra hasil dari filter rata-rata
(10)
A-3 % Filter rata-rata
filteraverage= fspecial ('average', [4 4]);
I = imfilter(masuk, filteraverage, 'symmetric', 'conv'); keluar1 = im2bw(I);
% Mengisi Lubang dengan imfill
keluar2 = imfill(keluar1,'holes');
Program mencari area bibir dari citra biner
function [keluar] = area_bibir(masuk1,masuk2,masuk3)
% Fungsi untuk mencari dan mendapatkan area bibir saja
% 1. Mencari dan memberi label setiap objek yang ada pada bidang "Label"
% 2. Mencari Luas untuk setiap objek
% 3. Menentukan Luas yang terbesar beserta objeknya
% 4. Mendapatkan citra bibir saja berdasarkan luas yang terbesar % masuk1 : Citra bibir yang telah diperbaiki
% masuk2 : Banyaknya piksel dari citra untuk setiap baris % masuk3 : Banyaknya piksel dari citra untuk setiap kolom % keluar : Citra bibir saja
% 1.
[Label,JumObjek]=bwlabel(masuk1,4);
vektor_bibir=reshape(Label,size(Label,1)*size(Label,2),1); vektor_Label=vektor_bibir; % variabel bantuan
% 2.
% Memilih 1 objek dan mebuat objek lain bernilai nol pada bidang "Label"
% Hanya Melihat objek yang pertama)
for k=1:length(vektor_Label) if vektor_Label(k) ~= 1 vektor_Label(k) =0; else vektor_Label(k)=1; end; end;
vektor_Label=reshape(vektor_Label,masuk2,masuk3); % ubah ke bentuk asal
Luas1=bwarea(vektor_Label); % Mencari Luas objek yang dipilih
maxluas=Luas1; % Luas maksimum sementara (acuan)
objekke=1;
% Melihat objek kedua ,dst
for j=2:JumObjek
(11)
A-4 for k=1:length(vektor_Label) if vektor_Label(k) ~= j vektor_Label(k) =0; else vektor_Label(k)=1; end; end; vektor_Label=reshape(vektor_Label,masuk2,masuk3); Luas(j)=bwarea(vektor_Label); % 3.
if Luas(j)>maxluas % Memilih Luas yg maksimum
maxluas=Luas(j);
objekke=j; % Objek dengan luas maksimum
end; end; % 4.
for w=1:length(vektor_bibir) if vektor_bibir(w) ~= objekke vektor_bibir(w) =0; else vektor_bibir(w)=1; end; end; keluar=reshape(vektor_bibir,masuk2,masuk3);
Program Pencarian Titik-Titik Penting
function [x0,x1,x2,x3,x4,y0,y1,y2,y3,y4] = titik_bibir(masuk1,masuk2,masuk3)
% Fungsi untuk mencari titik-titik pada bibir (4 titik)
% 1. Mencari koordinat titik-titik pojok (kanan-kiri) dari bibir
% 2. Mencari koordinat titik atas dan titik bawah dari bibir
% 3. Mencari titik tengah bibir % masuk1 : Citra bibir saja
% masuk2 : Banyaknya piksel dari citra untuk setiap baris % masuk3 : Banyaknya piksel dari citra untuk setiap kolom % x1 : absis titik-1, y1 : ordinat titik-1
% x2 : absis titik-2, y2 : ordinat titik-2 % x3 : absis titik-3, y3 : ordinat titik-3 % x4 : absis titik-4, y4 : ordinat titik-4 % x0 : absis titik-0, y0 : ordinat titik-0
% 1. Mencari koordinat titik-titik pojok (kanan-kiri) dari bibir
for baris = 1:masuk2
(12)
A-5 for kolom = 1:masuk3
if masuk1(baris,kolom)==1 banyak(baris)=banyak(baris)+1; end end end
[jumlah,baris_ke]=max(banyak); % Mencari baris yang memiliki nilai piksel 1 paling banyak
y1=baris_ke; % ordinat untuk titik 1
y2=baris_ke; % ordinat untuk titik 2
x1=0; % absis untuk titik 1 sementara
x2=0; % absis untuk titik 2 sementara
% Mencari absis titik 1 sebenarnya
for kolom= 1:masuk3 if masuk1(y1,kolom)==1 x1=kolom;
end end
% Mencari absis titik 2 sebenarnya
for kolom= masuk3:-1:1 if masuk1(y2,kolom)==1 x2=kolom;
end end
% 2. Mencari titik atas dan titik bawah dari bibir
x3=round(x2+((x1-x2)/2)); % absis untuk titik 3
x4=round(x2+((x1-x2)/2)); % absis untuk titik 4
y3=0; % ordinat untuk titik 3 sementara
y4=0; % ordinat untuk titik 4 sementara
% Mencari ordinat titik 3 sebenarnya
for baris= masuk2:-1:1 if masuk1(baris,x3)==1 y3=baris;
end end
% Mencari ordinat titik 4 sebenarnya
for baris= 1:masuk2 if masuk1(baris,x4)==1 y4=baris;
end end
(13)
A-6 % 3. Mencari titik tengah bibir
y0 = y1; x0 = x3;
Program Pengenalan Pengucapan Vokal
clc; clear; close all;
imtool closeall;
% Mencari parameter untuk kondisi bibir diam
bibir_diam=imread('C:\Documents and Settings\apple\Desktop\LAPORAN TA\hasil\cobabaru\baru\10D (1).jpg','jpg');
figure, imshow(bibir_diam);title('Citra RGB');
ukuran_barisd=size(bibir_diam,1); ukuran_kolomd=size(bibir_diam,2); [horizontal_diam,vertikal_diam,a1,b1,c1,d1] = cari_parameter
(bibir_diam,ukuran_barisd,ukuran_kolomd);
% Mencari parameter untuk kondisi bibir mengucapkan huruf vokal
bibir_vokal=imread('C:\Documents and Settings\apple\Desktop\LAPORAN TA\hasil\cobabaru\baru\10u (2).jpg','jpg');
figure, imshow(bibir_vokal);title('Citra RGB');
ukuran_barisv=size(bibir_vokal,1); ukuran_kolomv=size(bibir_vokal,2); [horizontal_vokal,vertikal_vokal,a2,b2,c2,d2] = cari_parameter
(bibir_vokal,ukuran_barisv,ukuran_kolomv);
% Mencari Perbandingan parameter horizontal dengan vertikal dari bibir
banding_atasdiam =a2/a1; banding_bawahdiam =b2/b1; banding_kanandiam=c2/c1;
banding_total = [banding_atasdiam banding_bawahdiam banding_kanandiam];
% Mengenali Huruf Vokal yang diucapkan 1
if (1.0000 <= banding_atasdiam && banding_atasdiam <= 2.3448) && (1.4200<= banding_bawahdiam && banding_bawahdiam <=1.8444) && (0.8373<= banding_kanandiam && banding_kanandiam <=0.9500) huruf_dikenali1 = 'A';
elseif (0.7961<= banding_atasdiam && banding_atasdiam <= 1.9138) && (1.1300<= banding_bawahdiam && banding_bawahdiam <=2.2667) && (0.9655<= banding_kanandiam && banding_kanandiam <=1.1429) huruf_dikenali1 = 'I';
elseif (0.9344<= banding_atasdiam && banding_atasdiam <= 1.6066) && (0.8485<= banding_bawahdiam && banding_bawahdiam <=2.0889) && (0.7952<= banding_kanandiam && banding_kanandiam <=0.8929) huruf_dikenali1 = 'U';
(14)
A-7
elseif (0.8033<= banding_atasdiam && banding_atasdiam <= 1.5738) && (1.2900<= banding_bawahdiam && banding_bawahdiam <=2.6667) && (0.8750<= banding_kanandiam && banding_kanandiam <=1.0500) huruf_dikenali1 = 'E';
elseif (1.0820<= banding_atasdiam && banding_atasdiam <= 2.0984) && (1.0100<= banding_bawahdiam && banding_bawahdiam <=2.3778) && (0.6786 <= banding_kanandiam && banding_kanandiam <=0.8161)
huruf_dikenali1 = 'O'; else
huruf_dikenali1 = 'Tidak Dikenali'; end
% Mengenali Huruf Vokal yang diucapkan 2
if (0.7961<= banding_atasdiam && banding_atasdiam <= 1.9138) && (1.1300<= banding_bawahdiam && banding_bawahdiam <=2.2667) && (0.9655<=
banding_kanandiam && banding_kanandiam <=1.1429) huruf_dikenali2 = 'I';
elseif (1.0000 <= banding_atasdiam && banding_atasdiam <= 2.3448) && (1.4200<= banding_bawahdiam && banding_bawahdiam <=1.8444) && (0.8373<= banding_kanandiam && banding_kanandiam <=0.9500) huruf_dikenali2 = 'A';
elseif (0.9344<= banding_atasdiam && banding_atasdiam <= 1.6066) && (0.8485<= banding_bawahdiam && banding_bawahdiam <=2.0889) && (0.7952<= banding_kanandiam && banding_kanandiam <=0.8929) huruf_dikenali2 = 'U';
elseif (0.8033<= banding_atasdiam && banding_atasdiam <= 1.5738) && (1.2900<= banding_bawahdiam && banding_bawahdiam <=2.6667) && (0.8750<= banding_kanandiam && banding_kanandiam <=1.0500) huruf_dikenali2 = 'E';
elseif (1.0820<= banding_atasdiam && banding_atasdiam <= 2.0984) && (1.0100<= banding_bawahdiam && banding_bawahdiam <=2.3778) && (0.6786 <= banding_kanandiam && banding_kanandiam <=0.8161)
huruf_dikenali2 = 'O'; else
huruf_dikenali2 = 'Tidak Dikenali'; end
% Mengenali Huruf Vokal yang diucapkan 3
if (0.9344<= banding_atasdiam && banding_atasdiam <= 1.6066) && (0.8485<= banding_bawahdiam && banding_bawahdiam <=2.0889) && (0.7952<=
banding_kanandiam && banding_kanandiam <=0.8929) huruf_dikenali3 = 'U';
elseif (0.7961<= banding_atasdiam && banding_atasdiam <= 1.9138) && (1.1300<= banding_bawahdiam && banding_bawahdiam <=2.2667) && (0.9655<= banding_kanandiam && banding_kanandiam <=1.1429) huruf_dikenali3 = 'I';
(15)
A-8
elseif (1.0000 <= banding_atasdiam && banding_atasdiam <= 2.3448) && (1.4200<= banding_bawahdiam && banding_bawahdiam <=1.8444) && (0.8373<= banding_kanandiam && banding_kanandiam <=0.9500) huruf_dikenali3 = 'A';
elseif (0.8033<= banding_atasdiam && banding_atasdiam <= 1.5738) && (1.2900<= banding_bawahdiam && banding_bawahdiam <=2.6667) && (0.8750<= banding_kanandiam && banding_kanandiam <=1.0500) huruf_dikenali3 = 'E';
elseif (1.0820<= banding_atasdiam && banding_atasdiam <= 2.0984) && (1.0100<= banding_bawahdiam && banding_bawahdiam <=2.3778) && (0.6786 <= banding_kanandiam && banding_kanandiam <=0.8161)
huruf_dikenali3 = 'O';
huruf_dikenali3 = 'Tidak Dikenali'; end
% Mengenali Huruf Vokal yang diucapkan 4
if (0.8033<= banding_atasdiam && banding_atasdiam <= 1.5738) && (1.2900<= banding_bawahdiam && banding_bawahdiam <=2.6667) && (0.8750<=
banding_kanandiam && banding_kanandiam <=1.0500) huruf_dikenali4 = 'E';
elseif (0.7961<= banding_atasdiam && banding_atasdiam <= 1.9138) && (1.1300<= banding_bawahdiam && banding_bawahdiam <=2.2667) && (0.9655<= banding_kanandiam && banding_kanandiam <=1.1429) huruf_dikenali4 = 'I';
elseif (1.0000 <= banding_atasdiam && banding_atasdiam <= 2.3448) && (1.4200<= banding_bawahdiam && banding_bawahdiam <=1.8444) && (0.8373<= banding_kanandiam && banding_kanandiam <=0.9500) huruf_dikenali4 = 'A';
elseif (0.9344<= banding_atasdiam && banding_atasdiam <= 1.6066) && (0.8485<= banding_bawahdiam && banding_bawahdiam <=2.0889) && (0.7952<= banding_kanandiam && banding_kanandiam <=0.8929) huruf_dikenali4 = 'U';
elseif (1.0820<= banding_atasdiam && banding_atasdiam <= 2.0984) && (1.0100<= banding_bawahdiam && banding_bawahdiam <=2.3778) && (0.6786 <= banding_kanandiam && banding_kanandiam <=0.8161)
huruf_dikenali4 = 'O';
huruf_dikenali4 = 'Tidak Dikenali';
% Mengenali Huruf Vokal yang diucapkan 5
if (1.0820<= banding_atasdiam && banding_atasdiam <= 2.0984) && (1.0100<= banding_bawahdiam && banding_bawahdiam <=2.3778) && (0.6786 <=
banding_kanandiam && banding_kanandiam <=0.8161) huruf_dikenali5 = 'O';
elseif (1.0000 <= banding_atasdiam && banding_atasdiam <= 2.3448) && (1.4200<= banding_bawahdiam && banding_bawahdiam <=1.8444) && (0.8373<= banding_kanandiam && banding_kanandiam <=0.9500) huruf_dikenali5 = 'A';
(16)
A-9
elseif (0.7961<= banding_atasdiam && banding_atasdiam <= 1.9138) && (1.1300<= banding_bawahdiam && banding_bawahdiam <=2.2667) && (0.9655<= banding_kanandiam && banding_kanandiam <=1.1429) huruf_dikenali5 = 'I';
elseif (0.9344<= banding_atasdiam && banding_atasdiam <= 1.6066) && (0.8485<= banding_bawahdiam && banding_bawahdiam <=2.0889) && (0.7952<= banding_kanandiam && banding_kanandiam <=0.8929) huruf_dikenali5 = 'U';
elseif (0.8033<= banding_atasdiam && banding_atasdiam <= 1.5738) && (1.2900<= banding_bawahdiam && banding_bawahdiam <=2.6667) && (0.8750<= banding_kanandiam && banding_kanandiam <=1.0500) huruf_dikenali5 = 'E';
huruf_dikenali5 = 'Tidak Dikenali'; end
Huruf_Dikenali = [huruf_dikenali1; huruf_dikenali2; huruf_dikenali3; huruf_dikenali4; huruf_dikenali5];
% Untuk mencari tahu dikenalinya sebagai apa saja
n=1;
vokal(n) = Huruf_Dikenali(1); for j =1 : length (Huruf_Dikenali) if Huruf_Dikenali(j) ~= vokal(n)
m=n+1; vokal(m)= Huruf_Dikenali(j); end;
end
% Mencari nilai tengah range huruf vokal
MidAtas_A= 1.0000 + (2.3448-1)/2; MidAtas_I= 0.7961 + (1.9138-0.7961)/2; MidAtas_U= 0.9344 + (1.6066-0.9344)/2; MidAtas_E= 0.8033 + (1.5738-0.8033)/2; MidAtas_O= 1.0820 + (2.0984-1.0820)/2;
MidBawah_A= 1.4200+ (1.8444-1.4200)/2; MidBawah_I= 1.1300+ (2.2667-1.1300)/2; MidBawah_U= 0.8485+ (2.0889-0.8485)/2; MidBawah_E= 1.2900+ (2.6667-1.2900)/2; MidBawah_O= 1.0100+ (2.3778-1.0100)/2;
MidKanan_A= 0.8434+ (0.9500- 0.8434)/2; MidKanan_I= 0.9655+ (1.1429-0.9655)/2; MidKanan_U= 0.7952+ (0.8929- 0.7952)/2; MidKanan_E= 0.8750+ (1.0500-0.8750)/2; MidKanan_O= 0.6786+ (0.8161- 0.6786)/2;
(17)
A-10 Mid_I= [MidAtas_I MidBawah_I MidKanan_I]; Mid_U= [MidAtas_U MidBawah_U MidKanan_U]; Mid_E= [MidAtas_E MidBawah_E MidKanan_E]; Mid_O= [MidAtas_O MidBawah_O MidKanan_O];
for u = 1 : length(vokal) if vokal (u) == 'A'
NilaiRataAtas(u)=abs(MidAtas_A-banding_atasdiam); NilaiRataBawah(u)=abs(MidBawah_A-banding_bawahdiam); NilaiRataKanan(u)=abs(MidKanan_A-banding_kanandiam); elseif vokal (u) == 'I'
NilaiRataAtas(u)=abs(MidAtas_I-banding_atasdiam); NilaiRataBawah(u)=abs(MidBawah_I-banding_bawahdiam); NilaiRataKanan(u)=abs(MidKanan_I-banding_kanandiam); elseif vokal (u) == 'U'
NilaiRataAtas(u)=abs(MidAtas_U-banding_atasdiam); NilaiRataBawah(u)=abs(MidBawah_U-banding_bawahdiam); NilaiRataKanan(u)=abs(MidKanan_U-banding_kanandiam); elseif vokal (u) == 'E'
NilaiRataAtas(u)=abs(MidAtas_E-banding_atasdiam); NilaiRataBawah(u)=abs(MidBawah_E-banding_bawahdiam); NilaiRataKanan(u)=abs(MidKanan_E-banding_kanandiam); elseif vokal (u) == 'O'
NilaiRataAtas(u)=abs(MidAtas_O-banding_atasdiam); NilaiRataBawah(u)=abs(MidBawah_O-banding_bawahdiam); NilaiRataKanan(u)=abs(MidKanan_O-banding_kanandiam); else
NilaiRataAtas(u)=0; NilaiRataBawah(u)=0; NilaiRataKanan(u)=0; end
end
% Nilai terkecil
NilaiAtas_Terdekat = NilaiRataAtas(1);indeks_atas=1;
NilaiBawah_Terdekat = NilaiRataBawah(1);indeks_bawah=1; NilaiKanan_Terdekat = NilaiRataKanan(1);indeks_kanan=1; for f = 1 : length(vokal)
if NilaiAtas_Terdekat > NilaiRataAtas(f)
NilaiAtas_Terdekat = NilaiRataAtas(f);indeks_atas=f; end;
if NilaiBawah_Terdekat > NilaiRataBawah(f)
NilaiBawah_Terdekat = NilaiRataBawah(f);indeks_bawah=f; end;
if NilaiKanan_Terdekat > NilaiRataKanan(f)
NilaiKanan_Terdekat = NilaiRataKanan(f);indeks_kanan=f; end;
(18)
A-11
indeks_semua = [indeks_atas, indeks_bawah, indeks_kanan]; indeks_terbanyak = mode(indeks_semua);
hasil_pengenalan = vokal(indeks_terbanyak);
if hasil_pengenalan == 'A'
gambar_vokal=imread('C:\Documents and Settings\apple\Desktop\LAPORAN TA\hasil\aiueo\A.jpg','jpg');
figure, imshow(gambar_vokal);title('Hasil Pengenalan Ucapan');
elseif hasil_pengenalan == 'I'
gambar_vokal=imread('C:\Documents and Settings\apple\Desktop\LAPORAN TA\hasil\aiueo\I.jpg','jpg');
figure, imshow(gambar_vokal);title('Hasil Pengenalan Ucapan');
elseif hasil_pengenalan == 'U'
gambar_vokal=imread('C:\Documents and Settings\apple\Desktop\LAPORAN TA\hasil\aiueo\U.jpg','jpg');
figure, imshow(gambar_vokal);title('Hasil Pengenalan Ucapan');
elseif hasil_pengenalan == 'E'
gambar_vokal=imread('C:\Documents and Settings\apple\Desktop\LAPORAN TA\hasil\aiueo\E.jpg','jpg');
figure, imshow(gambar_vokal);title('Hasil Pengenalan Ucapan');
elseif hasil_pengenalan == 'O'
gambar_vokal=imread('C:\Documents and Settings\apple\Desktop\LAPORAN TA\hasil\aiueo\O.jpg','jpg');
figure, imshow(gambar_vokal);title('Hasil Pengenalan Ucapan'); else
gambar_vokal=imread('C:\Documents and Settings\apple\Desktop\LAPORAN TA\hasil\aiueo\tidak dikenali.jpg','jpg');
figure, imshow(gambar_vokal);title('Hasil Pengenalan Ucapan'); end
(19)
A-12
LAMPIRAN B
(20)
(21)
BAB I Pendahuluan
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1Latar Belakang
Wajah manusia dapat diidentifikasi berdasarkan ciri, antara lain terdiri dari mata, hidung, bibir. Penelitian tentang citra pada saat mengucapkan vokal telah diteliti mulai dari tahun 1990 dan telah dikembangkan di berbagai penelitian. Komponen penting untuk penelitian ini adalah model bibir. Visualisasi dari bibir dapat memperbaiki pembicaraan saat terjadi pada tempat ramai dan dapat juga mengatasi keraguan ketika saat di suatu kejadian sinyal suara tidak jelas tetapi pergerakan dari bibir tersebut dapat dilihat. Implementasi dari citra pengenalan pengucapan vokal adalah model citra 2D dari pengucapan dengan menggunakan model dasar citra pengenalan pengucapan huruf vokal.
Akan tetapi pengenalan pengucapan belum memuaskan, disebabkan oleh beberapa masalah seperti karakteristik dari pengucapan setiap orang sangat dinamik, sifat dari otot bibir setiap orang sangat berbeda antara satu dan lainnya dan artikulasi pembicaraan satu orang dengan yang lainnya berbeda-beda. Penelitian yang sudah dilakukan kebanyakan untuk bahasa Inggris, Mandarin, Firlandia, India, Swedia dan Malaysia.
Dalam tugas akhir ini, citra bibir diukur berdasarkan lebar dan tinggi bibir yang dibentuk oleh bentuk fisik bibir.
1.2 Identifikasi Masalah.
Bagaimana mendapatkan hasil pengenalan pengucapan vokal dengan menggunakan lebar dan tinggi bibir?
1.3Tujuan
Tujuan dari tugas akhir ini adalah untuk mendapatkan hasil pengenalan pengucapan vokal dengan menggunakan lebar dan tinggi bibir.
(22)
BAB I Pendahuluan
2 Universitas Kristen Maranatha
1.4Pembatasan Masalah
Batasan – batasan masalah dalam Tugas Akhir ini adalah : Jarak pengambilan citra dari kamera kurang lebih 50 cm. Dalam satu citra hanya terdapat satu citra bibir saja.
Citra yang digunakan merupakan citra bibir saat diam dan citra bibir saat mengucapkan huruf vokal.
Citra bibir berukuran 400 x 350 piksel yang dicrop secara manual. Citra bibir diasumsikan simetris.
1.5Sistematika Penulisan
Penyusunan laporan tugas akhir terdiri dari lima bab sebagai berikut : 1. BAB I. PENDAHULUAN
Pada bab ini akan dibahas mengenai latar belakang, perumusan, identifikasi masalah, tujuan, pembatasan masalah, metodologi dan serta sistematika penulisan laporan tugas akhir ini.
2. BAB II. LANDASAN TEORI
Pada bab ini akan dibahas teori-teori yang akan digunakan untuk merancang mendeteksi pengucapan huruf vokal dengan membandingkan parameter-parameter pembanding yang akan digunakan dalam pengolahan citra bibir.
3. BAB III. PERANCANGAN DAN REALISASI
Pada bab ini dijelaskan mengenai diagram blok dan cara kerja sistem untuk pengenalan pengucapan huruf-huruf pada citra bibir meliputi program deteksi bibir, pencarian titik titik penting, serta penentuan parameter-parameter pembanding yang akan digunakan dalam pengolahan citra bibir.
4. BAB IV. DATA PENGAMATAN DAN ANALISA
Pada bab ini berisi tentang hasil pengamatan yang telah dilakukan terhadap objek-objek yang diukur parameternya sehingga dapat dianalisa.
(23)
BAB I Pendahuluan
3 Universitas Kristen Maranatha 5. BAB V. KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.
(24)
33 Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan.
1. Pembuatan program pengenalan pengucapan huruf vokal dengan menggunakan tinggi dan lebar bibir berhasil diimplementasikan dengan Matlab.
2. Dari hasil pengujian terhadap percobaan yang dilakukan, percobaan 1 untuk citra yang diuji merupakan citra untuk orang yang ada pada database dan citra sama dengan citra pada database persentase keberhasilan pengenalan pengucapan huruf vokal sebanyak 88%. Sedangkan pada percobaan 2 untuk citra yang diuji merupakan citra untuk orang yang ada pada database dan citra yang tidak sama dengan citra yang ada pada database, persentase keberhasilan pengenalan pengucapan huruf vokal sebanyak 84%. Dan Pada percobaan 3 untuk citra yang diuji merupakan citra untuk orang yang tidak ada dalam database, persentase keberhasilan pengenalan pengucapan huruf vokal sebanyak 74%.
3. Kesalahan pengenalan pada citra yang tidak dikenali disebabkan oleh jarak pengambilan citra dari kamera tidak sesuai dengan jarak yang ditentukan sehingga bagian atas, bawah dan kanannya tidak masuk kedalam range pengelompokan huruf vokal.
4. Dalam mengekstrak bagian bibir harus akurat karena sangat berguna untuk mendapatkan hasil yang baik.
5. Faktor-faktor yang mempengaruhi keberhasilan dan kegagalan pada kasus ini adalah pencahayaan pada saat pengambilan gambar, perbedaan saat mengucapkan huruf-huruf vokal dan warna kulit manusia yang beragam.
5.2Saran.
1 Dalam proses pengenalan pengucapan huruf vokal untuk mendapatkan hasil yang lebih baik dapat menggunakan parameter-parameter yang lain seperti menggunakan kurva beizer atau mencari nilai sudut dari citra bibir.
(25)
34 Universitas Kristen Maranatha 2 Dalam proses pengenalan pengucapan huruf vokal, sebaiknya digabungkan
dengan proses pengenalan sinyal suara agar hasil dari pengenalan pengucapan huruf vokal lebih akurat.
3 Pada proses pengenalan dengan mengukur jarak lebar dan tinggi bibir sebaiknya menggunakan proses scaling, agar citra tersebut tidak dipengaruhi oleh jarak pengambilan dari kamera.
(26)
35 Universitas Kristen Maranatha
DAFTAR PUSTAKA
[1] Hamdani, Rizki. 2008.Tugas Akhir “Membandingkan Dua Citra Bibir
Manusia Menggunakan Metode Pengukuran Lebar, Tebal, dan Sudut Bibir”.
Bandung: Fakultas Teknik Universitas Kristen Maranatha.
[2] Saeed ,Sman and Jean-Luc Dugelay“Combining Edge Detection and Region Segmentation for Lip Contour Extraction”.Lecture Notes in Computer Science volume 6169,2010,pp 11-20.
[3] Iqbal, Muhammad. Dasar Pengolahan Citra Digital Menggunakan Matlab. http://www.creative-instrument.com/dokumen/image.pdf 30 Oktober 2012. [4] Salleh,Siti S., Rahmit,Wirza R.,“3D Lips Development and Measurement for
Visual Speech Synthesis “. European Journal of Scientific Research ISSN 1450-216X Vol.35 No.2 (2009), pp.159-172.
[5] Munir, Rinaldi. 2007. Pengolahan Citra Digital. Bandung : Indonesia. [6] http://mathworld.wolfram.com/Distance.html 30 November 2012.
(1)
BAB I Pendahuluan
1 Universitas Kristen Maranatha
BAB I
PENDAHULUAN
1.1Latar Belakang
Wajah manusia dapat diidentifikasi berdasarkan ciri, antara lain terdiri dari mata, hidung, bibir. Penelitian tentang citra pada saat mengucapkan vokal telah diteliti mulai dari tahun 1990 dan telah dikembangkan di berbagai penelitian. Komponen penting untuk penelitian ini adalah model bibir. Visualisasi dari bibir dapat memperbaiki pembicaraan saat terjadi pada tempat ramai dan dapat juga mengatasi keraguan ketika saat di suatu kejadian sinyal suara tidak jelas tetapi pergerakan dari bibir tersebut dapat dilihat. Implementasi dari citra pengenalan pengucapan vokal adalah model citra 2D dari pengucapan dengan menggunakan model dasar citra pengenalan pengucapan huruf vokal.
Akan tetapi pengenalan pengucapan belum memuaskan, disebabkan oleh beberapa masalah seperti karakteristik dari pengucapan setiap orang sangat dinamik, sifat dari otot bibir setiap orang sangat berbeda antara satu dan lainnya dan artikulasi pembicaraan satu orang dengan yang lainnya berbeda-beda. Penelitian yang sudah dilakukan kebanyakan untuk bahasa Inggris, Mandarin, Firlandia, India, Swedia dan Malaysia.
Dalam tugas akhir ini, citra bibir diukur berdasarkan lebar dan tinggi bibir yang dibentuk oleh bentuk fisik bibir.
1.2 Identifikasi Masalah.
Bagaimana mendapatkan hasil pengenalan pengucapan vokal dengan menggunakan lebar dan tinggi bibir?
1.3Tujuan
Tujuan dari tugas akhir ini adalah untuk mendapatkan hasil pengenalan pengucapan vokal dengan menggunakan lebar dan tinggi bibir.
(2)
BAB I Pendahuluan
2 Universitas Kristen Maranatha 1.4Pembatasan Masalah
Batasan – batasan masalah dalam Tugas Akhir ini adalah :
Jarak pengambilan citra dari kamera kurang lebih 50 cm.
Dalam satu citra hanya terdapat satu citra bibir saja.
Citra yang digunakan merupakan citra bibir saat diam dan citra bibir saat mengucapkan huruf vokal.
Citra bibir berukuran 400 x 350 piksel yang dicrop secara manual.
Citra bibir diasumsikan simetris.
1.5Sistematika Penulisan
Penyusunan laporan tugas akhir terdiri dari lima bab sebagai berikut : 1. BAB I. PENDAHULUAN
Pada bab ini akan dibahas mengenai latar belakang, perumusan, identifikasi masalah, tujuan, pembatasan masalah, metodologi dan serta sistematika penulisan laporan tugas akhir ini.
2. BAB II. LANDASAN TEORI
Pada bab ini akan dibahas teori-teori yang akan digunakan untuk merancang mendeteksi pengucapan huruf vokal dengan membandingkan parameter-parameter pembanding yang akan digunakan dalam pengolahan citra bibir.
3. BAB III. PERANCANGAN DAN REALISASI
Pada bab ini dijelaskan mengenai diagram blok dan cara kerja sistem untuk pengenalan pengucapan huruf-huruf pada citra bibir meliputi program deteksi bibir, pencarian titik titik penting, serta penentuan parameter-parameter pembanding yang akan digunakan dalam pengolahan citra bibir.
4. BAB IV. DATA PENGAMATAN DAN ANALISA
Pada bab ini berisi tentang hasil pengamatan yang telah dilakukan terhadap objek-objek yang diukur parameternya sehingga dapat dianalisa.
(3)
BAB I Pendahuluan
3 Universitas Kristen Maranatha
5. BAB V. KESIMPULAN DAN SARAN
Pada bab ini berisi kesimpulan dari Tugas Akhir dan saran-saran yang perlu dilakukan untuk perbaikan di masa mendatang.
(4)
33 Universitas Kristen Maranatha
BAB V
KESIMPULAN DAN SARAN
5.1 Kesimpulan.
1. Pembuatan program pengenalan pengucapan huruf vokal dengan menggunakan tinggi dan lebar bibir berhasil diimplementasikan dengan
Matlab.
2. Dari hasil pengujian terhadap percobaan yang dilakukan, percobaan 1 untuk citra yang diuji merupakan citra untuk orang yang ada pada database dan citra sama dengan citra pada database persentase keberhasilan pengenalan pengucapan huruf vokal sebanyak 88%. Sedangkan pada percobaan 2 untuk citra yang diuji merupakan citra untuk orang yang ada pada database dan citra yang tidak sama dengan citra yang ada pada database, persentase keberhasilan pengenalan pengucapan huruf vokal sebanyak 84%. Dan Pada percobaan 3 untuk citra yang diuji merupakan citra untuk orang yang tidak ada dalam database, persentase keberhasilan pengenalan pengucapan huruf vokal sebanyak 74%.
3. Kesalahan pengenalan pada citra yang tidak dikenali disebabkan oleh jarak pengambilan citra dari kamera tidak sesuai dengan jarak yang ditentukan sehingga bagian atas, bawah dan kanannya tidak masuk kedalam range pengelompokan huruf vokal.
4. Dalam mengekstrak bagian bibir harus akurat karena sangat berguna untuk mendapatkan hasil yang baik.
5. Faktor-faktor yang mempengaruhi keberhasilan dan kegagalan pada kasus ini adalah pencahayaan pada saat pengambilan gambar, perbedaan saat mengucapkan huruf-huruf vokal dan warna kulit manusia yang beragam.
5.2Saran.
1 Dalam proses pengenalan pengucapan huruf vokal untuk mendapatkan hasil yang lebih baik dapat menggunakan parameter-parameter yang lain seperti menggunakan kurva beizer atau mencari nilai sudut dari citra bibir.
(5)
34 Universitas Kristen Maranatha
2 Dalam proses pengenalan pengucapan huruf vokal, sebaiknya digabungkan dengan proses pengenalan sinyal suara agar hasil dari pengenalan pengucapan huruf vokal lebih akurat.
3 Pada proses pengenalan dengan mengukur jarak lebar dan tinggi bibir sebaiknya menggunakan proses scaling, agar citra tersebut tidak dipengaruhi oleh jarak pengambilan dari kamera.
(6)
35 Universitas Kristen Maranatha DAFTAR PUSTAKA
[1] Hamdani, Rizki. 2008.Tugas Akhir “Membandingkan Dua Citra Bibir Manusia Menggunakan Metode Pengukuran Lebar, Tebal, dan Sudut Bibir”. Bandung: Fakultas Teknik Universitas Kristen Maranatha.
[2] Saeed ,Sman and Jean-Luc Dugelay“Combining Edge Detection and Region Segmentation for Lip Contour Extraction”.Lecture Notes in Computer Science
volume 6169,2010,pp 11-20.
[3] Iqbal, Muhammad. Dasar Pengolahan Citra Digital Menggunakan Matlab.
http://www.creative-instrument.com/dokumen/image.pdf 30 Oktober 2012.
[4] Salleh,Siti S., Rahmit,Wirza R.,“3D Lips Development and Measurement for
Visual Speech Synthesis “. European Journal of Scientific Research ISSN 1450-216X Vol.35 No.2 (2009), pp.159-172.
[5] Munir, Rinaldi. 2007. Pengolahan Citra Digital. Bandung : Indonesia. [6] http://mathworld.wolfram.com/Distance.html 30 November 2012.