TTS Engine
BAB 3 METODOLOGI
4.2 Pengenalan Obyek
33
IU/iD **A T» A
•
PEMBUATAN DAN IMPLEMENTASI
Pada bagian ini akan dibahas mengenai pembuatan neranekatj- - ^ -•- binak-- -- vanej-- ^melimiti linaknnean^ inemhanpiitian** " ^ anlikasi*£ ^"
pengenalan obyek, aplikasi pengenalan suara dan implementasi permainan.
luenggenggoui. Gambar neneenalan obvek.
*t.11 dibawah ini mempakan flowchat
Start
GetImage I
*
1
RGBToGray
Get Region No Image
Objek in Region(.xml)?
Yes Multi Rectangle
End
Gambar 4.1FlowchatPengenalan Obyek.
35
Dciigaii lueugguiiakan fungsi
-
fungsi dan opcucv yang mampu mengenali obyek tangan mengenggam berdasarkan data dari genggam.xml. Berikut ini merupakan pseudocode untuk pengenalan obyek.inisialisasi cascade = "genggam.xml"; get image();
-
>mendapatkan gambargray = cvCreatelmage();
-
>membuat suatu gambar gray get vektor_
region();-
>menaapatkan sebuah regionif( cascade )
- ^
membandingkan dengan nilai cascade {CvSeq* hand = cvHaarDetectObjects;
center.x = cvRound((r
-
>x + r->width*0.5)*scale);center.y = cvRound((r
-
>y + r-
>height*0.5)*scale); cvRectangle();system::Drawing::point<x,y);
-
>menggambar area ygdikenali }
Untuk memperoleh data genggam.xml dilakukan proses haartrainingyangakan dijelaskan pada sub bab 4.2.1. Berikut ini merupakan gambar obyektanganmengenggam dapat dikenali.
Gambar4.2 tiasil Pengenalan Obyek Tangan Menggenggam.
4.2.1 Haar Training
Untuk memperoleh data .xml yang dibutuhkan maka perlu dilakukan proseshaar trainingyang dapat dipresentasikan padagambarblokdiagram haartrainingsebagaiberikut:
O* r-4
wiaii
Mengambil 1800 gambar positif yang mempunyai objek tangan
menggenggam
Mengambil 2000 gambar negatif yang tidak terdapat objektangan
menggenggam
Menyeleksi objek tangan pada gambar positif
Mendapatkannilai trakedimage
MendapatkannilaiCascade
Menkonversinilaicascade ke dalamnilaiformat xml
End
Gambar4.3 Blok DiagramHaarTraining.
37
A t -i i k Mmcu
^
iapnau2—
i uitut uamuiti rusiuir»—
:x!fData gambar positifadalah sekumpulan data gambar yang didalamnya terdapat obyek yang akan dikenali. Dalam training data dibntnbkan 1800 filegambar: Reriknt ini menipakan contoh gambarpositif yangdibutuhkan. Seperti terlihat pada gambar 4.4, 4.5, 4.6 dan 4.7dibawah ini.
Gambar4.4 Contoh Gambar Positif Posisi Tangan di Kiri Bawah.
Gambar4.5Contoh Gambar PosisiTangan di KananBawah.
r
f
Gambar 4.6Contoh Gambar PositifPosisi Tangan diKananAtas.
Gambar 4.7Contoh Gambar PositifPosisiTangandiKiri Atas.
Tipegambaryang dibutuhkan yaitudenganformat.bmp.
Pengambilan gambar positif dilakukan menggunakan webcam dan disimpan dalamsatufolder yang sama.
39
X AT . 5 1 TX
—
4-
-» 1 TMivicii
^
iapiuiii uaia vimuuai ncgaui A"S t‘f
.
X.
l.
XData gambar negatifadalah sekumpulan datagambar yang didalamnya tidak mengandung obyekyangakandikenali
.
Dalam training data inidibntnhkan 2000 filegambar negatif Rerikiitini merupakan contoh gambar negatif yang dibutuhkan. Seperti terlihat pada gambar 4.8, 4.9,4.10,dan 4.11 dibawah ini.Gambar4.8 Contoh GambarNegatifRumah.
Gambar4.9Contoh GambarNegatifPintuRumah.
Gambar 4.10 ContohGambarNegatif Nuansa Kamar.
mSk 1
Gambar4.11ContohGambarNegatifPekaranganRumah. Tipegambaryang dibutuhkan yaitudengan format.bmp.
Pengambilan gambar negatif kali ini dengan mengunduh dari internet dandisimpan dalam satufolder yang sama.
41 Mcuyeleksi taiigaii pauagauibarpOsiuf
J 1 1
.i.I.J
Dalam proses menyeleksi tangan dimaksudkan untuk mengambil data nilai koordinat/posisi obyek yang dikenali dan nilai likiiran obyek nada gambar positif Seperri terlihat nada gambar4.12dibawah ini.
Gambar4.12ProsesSeleksiTangan PadaGambar Positif. Adapun format penulisan file
-
nya adalah sebagai berikut : [nama file] [posisi x kiri atasbounding rectangle] [posisi y kiri atas bounding rectangle] [nilai panjang bounding rectangle ][nilai lebar bounding rectangle]. Seperti terlihat pada gambar 4.13 dibawah ini.-
n*D:\lools\temp\positivelobjectmarker.exe P i c t u r e 0 4 5.h n p
1.r e e l x r-4S6 P i c t u r e 0 4 6.b n p I. r e c t x=3 0?
P i c t u r e0 4 7.h r i p
1. r e c t x- 4 1 9 P i c t u r e 0 4 8.b n p 1. r e e l x 4 3 2 P i c t u r e 0 4 9.b n p 1. r e c t x 4 2 4 P i c t u r e 0 5 0.b n p
1. r e c t x=b b y=3l5 P i c t u r e 0 5 1.b n p
1. r e c t x 9 7 y 1 1 2
y=59 u i d t h -1 2 5 be ight 102 3
y=2 0 y 2b V 1SB y 2 5 4
w i d t b 1 2 8 h ei g h t 9 7 w i d t h 1 3 2 h e i g h t
-
9 5u i d t b1 4 0 l i ei g h t 1 1 2 h e i g h t. 1 2 5 w i d t h1 5 1
w i d t h 1 2 7 h e i g h t 9 0 h e i g h t 1 2 1 w i d t h 1 4 5
id Gambar4.13NilaiSeleksiObyek.
4.2
.
1.4 Mengkonversinilaicascade ke dalamformat.
xml Proseskonversi nilai ini dijalankan dengan perintah haartraining.exe-
data data/cascade-
vecdata/vector.vec-
bgnegative/infofile.txt
-
npns 1800-
nneg2000-
mtages20-
mem1000
-
mode ALL-
w 30-
h 30-nonsym.Prosesmenkonversi nilai cascade gambar ke dalam nilai
.xml membutuhkan variablesebagai berikut :
•
Npos=
Jumlahgambarpositif•
Nneg=
Jumlah gambarnegatif•
Nstages=
Jumlahnode•
Mem=
memoriyang disiapkan untuk proses•
W=
ukuran lebar•
H=
ukurantinggiDan berikut ini merupakan contoh hasil data .xml yang telah diproses. Sepcrii terlihat pada gaiubar 4.14 dibawahmi
r~fi genp
.
am.xm! WordPadMe Edt Mew fttmt Fermat Qeo 0 &B H : fe %
<next>-l</next></ > A
<>
<<!trees
—
stage> 2—
>< >
<!
—
tree0—
>< >
<!<testuxe>
——
rootnode—
><ceczM>
<>
11 5 9 6!-.</>
<
_
>11 12 3 6 3.C/J></recto?
<1111ed>1</11ited></1eature>
<threshold>0.0339135192331652</threshold
<leIt_val>-0.601056575T751165</le£t_val>
<rlght val>0.5952491760253906</right val></></ >
<>
<>
—
tree1—
>< >
<<feature1
—
root>node—
><E*CtS>
< >
1518 10!
-
.</_
><>
15 6 85 2.</
_
></rect»><cilt«d>0</tilt«Cxy'f*«cute>
<tbresbold>-6.3976310193538666«-003</threshold
<lett
_
yal>0.2902083992958069</lett_
val><rlght
_
val>-0.90Q87229G1344299</’rlght_
val></_
></_
><
_
><!
—
tree2 vGambar4.14Genggam.xml.
43
4 1 PengenalanSuara
Dalam proses pengenalan suara dalam proyek akhir ini akan memanfaatkan library SpeechAPI(SAPI) SDK 5.1 yang meneiihahC/ suara meniadiJ teks: Proses neneenalanA C/ suara danatX
ditunjukkanpada gambar 4.15 di bawahini.
s
Start
)
l
Voice Recognition
^
I
ConvertSpeech toTeks
GetData Teks
End
Gambar4.15 AlgoritmaPengenalan Suara.
Defmisi Speech API adalah suatu library computervision yangdibuat olehparadeveloper Windows.SpeechSDK5.1dapat
gratis
http://www.microsoft.com/speech/developers.aspx. Suara yang diucapkanakan ditangkap olehmikropondan akandiprosesuntuk mencari mana kata yang paling sesuai diantara kumpulan kata. Berikut ini merupakan pseudocode fungsipengenalan suara.
di unduh secara di
get voice write( )
if voice = ngobrol.txt Then voice = Textl.text else voice = " "
if Textl.Text = "playgame" Then Sound.Play = "playgame.wav"
if Textl.Text = "fire" Then Sound.Play = "fire.wav"
if Textl.Text = "dorr" Then Sound.Play = "gun.wav"
if Textl.Text = "kapeka" Then Sound.Play = "kapeka.wav"
if Textl.Text = "reload" Then Sound.Play = "reload.wav"
Format suara yang dikenali akan diproses untuk diubah menjadi format teks
.
Kemudian format teks tersebut dicocokkan dengan datayang ada dikumpulan teksyang ada. Apabilasesuai maka akan ditampilkan di tampilan speech seperti gambar 4.16 aibawahini.>
Gambar4.16 Pengenalan Suara Dikenali.
Apabila tidak sesuai maka akan diinisialisasi dengan
” artinya suara yang dikenali tidak cocok dengan database yang ada. Seperti terlihat pada gambar 4.17 dibawah ini.
format teks”
45
*
Gambar4.17 Suara Tidak Dikenali.
ImplementasiSistemPermainan 4.4
Pada permainan menembak ini terdapat beberapa halaman yangberbeda untuk menampilkanpermainan.
4.4.1 ImplementasiHalaman Intro
Halaman intro merupakan awal pembuka pada permainan ini. Fungsi utama dari halaman adalah untukmenampilkanjudul permainan,nama mahasiswa dan pembimbing. Didalamtampilan intro ini hanyaakan aiiakukan proses menampilkan gambar dan
Qfthnahhnttnnuntuk mprininkphalamanmpnn