• Tidak ada hasil yang ditemukan

BAB III: ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM

N/A
N/A
Protected

Academic year: 2021

Membagikan "BAB III: ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM"

Copied!
49
0
0

Teks penuh

(1)

BAB III: ANALISIS KEBUTUHAN DAN PERANCANGAN SISTEM

Pada bab ini akan dijelaskan mengenai analisis kebutuhan dan perancangan Prototipe Sistem Pengawasan Pergerakan Sederhana Manusia Menggunakan Sistem Inferensi Fuzzy.

3.1

ANALISIS KEBUTUHAN

Pada bagian ini akan dijelaskan mengenai gambaran umum dari prototipe sistem yang akan dikembangkan. Berikut kebutuhan fungsional yang harus dimiliki sistem ini:

 Sistem dapat memutar video yang telah tersimpan sebelumnya dengan format tertentu (dalam hal ini yang berekstensi .avi) dengan kecepatan real-time.

 Video yang diputar dapat menampilkan informasi berkaitan dengan jumlah manusia pada setiap kumpulan manusia berikut kecepatan dan arah pergerakan.

 Bukan sekedar memutar, sistem memungkinkan pengguna untuk berinteraksi terhadap video tersebut layaknya menggunakan suatu pemutar video pada umumnya, namun dengan fungsi-fungsi sederhana tentunya.

 Sistem dapat menampilkan data yang mencerminkan pergerakan sederhana manusia berdasarkan video yang diproses.

(2)

PENGGUNA ANTARMUKA UNIT PENGAWASAN PERGERAKAN MANUSIA Video AVI Masukan Data Keluaran

Gambar 12: Arsitektur Sistem

Unit Antarmuka merupakan subsistem yang bertanggung jawab untuk menerima input dari pengguna, dimana input tersebut berupa video yang telah tersimpan sebelumnya. Unit ini juga bertanggung jawab untuk menampilkan data berupa jumlah manusia dalam suatu kumpulan manusia berikut kecepatan dan arah pergerakannya.

Unit Pengawasan Pergerakan Manusia merupakan subsistem yang bertanggung jawab untuk memproses setiap frame video dengan menggunakan teori pengolahan citra/frame beserta sistem inferensi fuzzy yang dibangun untuk menghasilkan keluaran yang diinginkan. Keluaran dari proses ini akan disimpan dalam bentuk teks dengan path yang telah ditentukan.

3.2 PERANCANGAN SISTEM

Pada bagian ini akan dijelaskan lebih rinci mengenai desain modul, basis data, dan antarmuka.

(3)

3.2.1 Desain Modul

Berikut akan ditampilkan desain modul prototipe sistem ini berdasarkan hasil analisis kebutuhan sebelumnya: PROTOTIPE SISTEM PENGAWASAN PERGERAKAN MANUSIA STATIC FUZZY EXPERT SYSTEM MODEL IMAGE PRPROCESSING DYNAMIC FUZZY EXPERT SYSTEM MODEL

Gambar 13: Desain Modul

Gambar 13 merupakan rangkuman dari fase pengembangan prototipe awal yang dikembangkan oleh Uri Kartoun sesuai yang ia tulis pada paper A Prototype Fuzzy System for Surveillance Picture Understanding [2]. Dan pada pengembangan prototipe sistem kali ini juga akan menggunakan ketiga tahap (fase) pengembangan tersebut karena ketiganya saling berkaitan dalam membentuk keseluruhan sistem.

3.2.1.1 Modul/Fase Image Preprocessing

Modul ini merepresentasikan tahap awal pada pengembangan prototipe, yaitu tahap untuk memproses video menjadi sekumpulan frame, dimana pada setiap frame-nya akan dilakukan proses awal untuk mengekstraksi objek yang bergerak dari latarnya. Pemisahan objek yang bergerak ini bertujuan untuk memudahkan proses-proses, yang melibatkan modul-modul

(4)

berikutnya, menjadi lebih mudah karena proses tersebut cukup bepusat pada objek yang telah terekstraksi. Penjelasan lebih lengkap mengenai fase ini terdapat pada Bab 4.

3.2.1.2 Modul/Fase Static Fuzzy Expert System Model

Modul ini merepresentasikan fase kedua setelah Image Preprocessing. Pada modul ini, masukan berupa berbagai frame objek yang telah terekstraksi, kemudian akan diproses menggunakan sistem inferensi fuzzy sehingga akan timbul informasi berkaitan dengan objek-objek tersebut. Pada penulisan berikutnya, penulis akan lebih sering menggunakan istilah blob menggantikan istilah objek.

Informasi yang berkaitan dengan blob-blob tersebut berupa jumlah manusia yang direpresentasikan pada setiap blob-nya. Berdasarkan paper yang ditulis oleh Uri Kartoun, informasi tersebut dapat bernilai noise, satu orang, sepasang (dua orang), hingga lebih dari dua orang (many). Sekali lagi, informasi yang dihasilkan pada fase ini akan diproses untuk pengerjaan tahap berikutnya. Untuk penjelasan lebih lanjut, silahkan lihat Bab 5.

3.2.1.3 Modul/Fase Dynamic Fuzzy Expert System Model

Modul ini merepresentasikan fase ketiga setelah Static Fuzzy Expert System Model. Pada modul ini, masukan yang digunakan berupa berbagai frame dengan data yang menggambarkan jumlah orang pada setiap blob yang dihasilkan pada fase sebelumnya. Masukan tersebut akan digunakan untuk mengukur seberapa banyak orang yang bergerak, berikut kecepatan dan arah pergerakannya.

Berdasarkan paper yang ditulis Uri Kartoun [2], untuk mendapatkan berbagai hasil pengukuran tadi, maka juga diperlukan beberapa informasi terkait dengan besarnya perpindahan titik berat blob pada sumbu x dan y koordinat Cartesius. Kedua informasi

(5)

sistem inferensi fuzzy tersebut juga menjadi keluaran akhir pada Prototipe Sistem Pengawasan Pergerakan Sederhana Manusia Menggunakan Sistem Inferensi Fuzzy ini selain jumlah orang pada tiap blob yang dihasilkan pada fase sebelumnya (Static Fuzzy Expert System Model). Untuk penjelasan lebih lanjut, silahkan lihat Bab 6.

3.2.2 Desain Basis Data

Data-data berupa jumlah manusia pada setiap blob beserta kecepatan dan arah pergerakan dari blob-blob tersebut bukan sekedar ditampilkan pada sistem saat memutar video, tetapi juga disimpan dalam bentuk teks pada path yang telah ditentukan sebelumnya. Dengan penyimpanan data ini, diharapkan akan mempermudah pengguna bila ingin menggunakan data tersebut untuk proses-proses lainnya, seperti untuk mencatat log pengunjung pada suatu toko.

3.2.3 Desain Antarmuka

Prototipe sistem yang akan dikembangkan merupakan prototipe berbasis GUI (Graphical User Interface). Oleh karena itu, berikut ditampilkan berbagai bentuk pola antarmuka pada prototipe ini.

(6)

1. Antarmuka Pemutar Video AVI

Path video yang akan diproses

Menampilkan data hasil pemrosesan File

Browse

Proses video

AVI Clear path

Gambar 14: Antarmuka pemutar video AVI

Pada Gambar 14 terdapat menu bar yang menyediakan fungsi untuk menampilkan data hasil pemrosesan video. Sementara untuk memproses videonya sendiri, pengguna cukup mencarinya dengan menekan tombol Browse yang disediakan.

2. Antarmuka Pemutaran Video Image Preprocessing dan Video AVI

Video Image Preprocessing Video AVI dengan informasi blob

Petunjuk pemutaran video

Gambar 15: Antarmuka pemutaran video AVI

Pada Gambar 15 terlihat bahwa ketika video tersebut diputar, maka pengguna tidak hanya melihat video dengan format sebenarnya (lengkap dalam ruang warna frame

(7)

terjadi, dalam hal ini berupa bentuk blob yang terekstraksi. Kegunaan dari video fase Image Preprocessing adalah agar pengguna, yang merupakan tim pengembang dari prototipe ini berikutnya, dapat mengetahui bagaimana keluaran dari tahap Image Preprocessing ini serta dapat mengidentifikasi kelemahan pada fase tersebut. Sedangkan untuk keluaran pada fase Static dan Dynamic Fuzzy Expert System Model (yang juga merupakan data akhir yang tersimpan pada teks) dapat dilihat dalam bentuk tulisan yang tertera pada video AVI yang diputar tepat di sebelah video Image Preprocessing.

(8)

BAB IV:

IMAGE PREPROCESSING

Pada bab ini akan dijelaskan segala hal berkaitan dengan fase pertama pembuatan prototipe Pengenalan Tingkah Laku Sederhana Manusia ini, yaitu fase Image Preprocessing. Bab ini akan mencakup segala hal, mulai dari cara kerja metode hingga tahap implementasinya.

4.1 DEFINISI IMAGE PREPROCESSING

Fase Image Preprocessing termasuk fase yang paling menentukan kesuksesan penyelesaian fase-fase berikutnya dalam pembuatan prototipe ini. Fase ini mencakup berbagai kegiatan berikut:

1. Memisahkan suatu video menjadi sekumpulan frame/citra berwarna untuk diproses secara terpisah.

2. Mengubah fomat frame tersebut dari format 24-bit RGB menjadi grayscale.

3. Memisahkan objek yang bergerak dengan latarnya. Dalam hal ini penulis menyepakati bahwa warna latar akan di-threshold menjadi putih sedangkan warna objek adalah hitam.

4. Menyesuaikan frame dengan kondisi cahaya yang terjadi.

5. Menghilangkan noise salt-and-pepper (noise akibat gangguan pada kamera) dan melakukan blurring pada frame.

(9)

manusia atau bukan akan dilakukan pada fase berikutnya, yaitu fase Static Fuzzy Expert System Model, sehingga fase ini lebih berfokus pada ekstraksi objek dari latarnya. Meski terkesan sederhana, namun, seperti yang telah disebutkan sebelumnya, banyak kegiatan yang harus dilakukan agar hasil ekstraksi objek tersebut dapat bekerja secara optimal. Maksudnya adalah agar objek yang terekstraksi dapat digunakan dengan mudah pada fase-fase berikutnya serta proses ekstraksi tersebut terjadi dengan waktu yang singkat agar ketika prototipe ini dikembangkan lebih lanjut menjadi sistem yang lebih kompleks, maka sistem tersebut dapat diterapkan pada CCTV secara real-time.

4.2 ANALISIS IMAGE PREPROCESSING

Pada 5 kegiatan fase Image Preprocessing yang disebutkan di atas, dua yang pertama tidak penulis jabarkan di sini karena sudah banyak fungsi pada program pengolah citra yang menyediakan kebutuhan untuk melakukan kedua kegiatan tersebut, sehingga yang penulis jabarkan hanya pada ketiga kegiatan terakhir.

4.2.1 Ekstraksi Objek dari Latar Menggunakan Metode Adaptive Gaussian Mixture Model

Proses awal dari fase Image Preprocessing ini merupakan proses yang berperan penting dalam kesuksesan pengerjaan proses-proses berikutnya. Hal ini dikarenakan jika objek yang dihasilkan pada fase ini tidak terekstraksi dengan baik, maka pada fase berikutnya akan sulit untuk menganalisis objek yang bersangkutan. Sehingga penulis memutuskan untuk menggunakan metode yang sesuai untuk pengerjaan fase ini, dimana metode tersebut harus dapat bekerja secara baik dan cepat (real-time).

(10)

Pada paper yang ditulis oleh Uri Kartoun [2], tidak dijabarkan mengenai metode yang dipilih saat mengerjakan fase Image Preprocessing. Oleh karena itu, penulis memiliki kebebasan tersendiri dalam menentukan metode yang sesuai. Meskipun banyak metode yang dapat digunakan untuk melakukan ekstraksi objek, seperti Kalman filtering, mean search value algorithm, atau alpha-blending [9], namun penulis memilih untuk menggunakan metode Adaptive Gaussian Mixture Model yang dicetuskan pertama kali oleh Grimson dkk, serta dikembangkan lebih lanjut oleh P. KaewTraKulPong dan R. Bowden [4]. Alasannya, karena metode tersebut berkerja lebih optimal dibandingkan metode sederhana seperti mean search value algorithm serta dapat memproses data dengan cepat sehingga lebih baik untuk aplikasi yang berbasis real-time. Berikut akan dijelaskan secara bertahap mulai dari konsep Distribusi Gauss hingga metode Adaptive Gaussian Mixture Model itu sendiri.

4.2.1.1 Distribusi Normal (Gauss)

Distribusi Normal (Gauss) merupakan bagian dari penyebaran probabilitas secara kontinu, yang berarti probabilitas dalam kisaran nilai tertentu. Semua fungsi-fungsi distribusi Gauss berbentuk sama yang ditentukan oleh dua parameter nilai [5]. Kedua parameter tersebut adalah:

 Nilai rata-rata dari seluruh bilangan (µ). Dalam ruang lingkup frame video, rata-rata yang dimaksud adalah rata-rata nilai piksel.

 Varian (σ2) yang menunjukkan ukuran persebaran data [6]. Varian dihitung berdasarkan rumus berikut:

   N i N Xi 0 2 2 ( )

(11)

Adapula beberapa parameter lain yang berkaitan dengan kedua parameter Gauss di atas, yaitu:

 Akar dari Varian yang menghasilkan suatu nilai yang dikenal sebagai Standar Deviasi (σ).

 Kovarian (Σ) merupakan ukuran seberapa kuat hubungan antara dua variabel.

4.2.1.2 Adaptive Gaussian Mixture Model

Suatu permodelan sebaran data dapat digolongkan menjadi permodelan parametrik dan non-parametrik. Pada Tugas Akhir ini, penulis lebih berfokus pada salah satu permodelan parametrik saja, yaitu Adaptive Gaussian Mixture Model.

Permodelan secara parametrik adalah permodelan dimana dari sekumpulan data pelatihan akan diturunkan sebuah model parametrik yang menerima masukan (input) dari parameter tertentu [8]. Teknik yang termasuk dalam kelompok ini adalah teknik Gaussian. Bentuk umum dari permodelan Gaussian secara statistik parametrik dikenal sebagai Adaptive Gaussian Mixture Model. Keuntungan dari model ini adalah kemampuannya untuk menggeneralisasi suatu kesimpulan (output) dengan baik meskipun hanya melibatkan sedikit data pelatihan.

(12)

Contoh Lokasi Piksel

Histogram Warna Piksel (Red,Green,Blue)

Gambar 16: Frame contoh penunjukkan lokasi piksel dan histogram warna piksel dari

frame tersebut

Gambar 16 memperlihatkan bagaimana posisi suatu piksel pada suatu frame (gambar sebelah kiri) serta bagaimana distribusi nilai-nilai piksel untuk setiap komponen warna RGB (gambar sebelah kanan) [7]. Gambar sebelah kanan menampilkan grafik sebaran data yang dapat disimpulkan membentuk beberapa distribusi Gauss. Setiap distribusi Gauss merepresentasikan suatu kelompok nilai piksel. Ide dasarnya adalah mengasumsikan bahwa nilai warna yang sering muncul mengindikasikan warna latar.

Adaptive Gaussian Mixture Model bekerja dengan melibatkan sebanyak K distribusi Gauss pada suatu frame acuan. Nilai K tersebut umumnya berkisar antara 3 hingga 5, serta digunakan untuk mengenali jenis setiap piksel pada frame yang akan diekstraksi. Jenis yang dimaksud dapat berupa foreground (objek yang terekstraksi) atau background (latar frame). Frame yang akan diproses untuk diekstraksi itu dianggap sebagai current frame.

Berikut adalah cara kerja dari Adaptive Gaussian Mixture Model dimana frame yang dilibatkan (baik frame acuan maupun current frame) harus dikonversi terlebih dahulu menjadi bentuk frame grayscale untuk mempermudah proses pengerjaan:

(13)

1. Pengidentifikasian Jenis Piksel (Foreground atau Background)

Setiap nilai warna piksel (x) yang akan diidentifikasi jenisnya, dimodelkan sebagai campuran dari K distribusi Gauss yang didapat dari suatu frame acuan. Nilai distribusi Gauss yang ke-k dirumuskan dengan [4]:

) ( ) )( 2 1 ( 2 1 2 1 , 1 | | 2 1 ) ; ( k k T k x x k k k e x              (i) Dengan k kI 2  

(ii), merupakan matriks kovarian komponen Gauss ke-k yang berukuran mn (m = lebar frame dan n = tinggi frame).

Persamaan (i) tersebut juga merupakan persamaan untuk menghitung probabilitas nilai piksel x pada distribusi Gauss ke-k.

Berikut penjelasan mengenai berbagai variabel yang dilibatkan pada persamaan (i) dan (ii):

 µk adalah rata-rata nilai warna distribusi Gauss ke-k sedangkan k adalah

variansinya.

I

adalah matriks identitas berukuran mn.

T

adalah nilai threshold yang menunjukkan fraksi minimum pada model latar [4]. Umumnya nilai T ini ditentukan secara manual saat memulai fase Image Preprocessing.

Setiap distribusi Gauss selalu disertai dengan keberadaan parameter bobot (w). Parameter bobot (w) berfungsi sebagai proporsi waktu yang menunjukkan ukuran seberapa lama warna piksel tersebut akan bertahan di layar [4]. Perlu diperhatikan

(14)

bahwa

  K k k w 1

1. Dengan menggunakan parameter bobot tersebut, akan ditentukan jenis suatu piksel.

Tindakan awal adalah mengurutkan sebanyak K distribusi Gauss berdasarkan

k k w

dari yang terkecil hingga terbesar. Setelah terurut akan dicari jumlahan minimal dari keseluruhan bobot yang masih melebihi nilai threshold (T) serta ditentukan berdasarkan rumus berikut:

) ( min arg 1

   b j j b T w

B (iii), selanjutnya didapat sebanyak B distribusi Gauss (B≤K) yang dikenal sebagai background acuan.

Sekarang, periksa apakah piksel x, yang akan diidentifikasi jenisnya, match dengan salah satu background acuan yang dihasilkan pada persamaan (iii) tersebut. Jika benar, maka piksel tersebut adalah background. Namun, jika piksel tersebut tidak match pada background acuan manapun, maka piksel tersebut adalah foreground. Maksud dari “match” disini adalah bahwa selisih antara nilai piksel pada current frame (x) dengan rata-rata distribusi Gauss pada suatu background acuan (µk) adalah

kurang dari 2.5k.

Berikut penjelasan matematisnya:

∃k, jika |xk |2.5k, maka x adalah background. Jika tidak, maka x adalah foreground.

(15)

wk σk

Gambar 17: Contoh 3 frame (t0,t1,t2) match dengan salah satu dari 3 background acuan pada keseluruhan 5 distribusi Gauss

Sementara untuk mempertegas pemisahan antara piksel background dan foreground pada current frame, dapat dilakukan pemberian warna yang berbeda berdasarkan jenisnya.

2. Penentuan dan Pembaharuan Parameter Bobot

Parameter bobot (w) pada setiap distribusi Gauss akan diperbaharui (di-update) saat terjadi pergantian current frame (misal dari frame N ke (N+1)). Proses pembaharuan parameter bobot harus dilakukan guna menyesuaikan sifat background dengan perubahan luminositas cahaya dan pergerakan objek. Parameter yang akan mengalami proses pembaharuan tidak hanya parameter bobot saja tetapi juga kedua parameter utama distribusi Gauss (µ,σ2).

Berikut adalah berbagai persamaan proses pembaharuan parameter-parameter tersebut:

(16)

) | ( ˆ ) 1 ( ˆ 1 1   N k N k N k w p x w

(iv) 1 1 ˆ ) 1 ( ˆ  N N k N k   x  (v) T N k N N k N N k N k (1 )ˆ (x ˆ )(x ˆ ) ˆ 1 1 1 1 1           (vi) ) ˆ , ˆ ; (xN 1 kNkN    (vii)

Persamaan (iv) merupakan persamaan untuk memperbaharui nilai bobot pada distribusi Gauss ke-k untuk proses identifikasi piksel current frame ke-(N+1). Persamaan ini bergantung kepada variabel ωk yang merepresentasikan nilai distribusi

Gauss ke-k serta definisi berikut:

) | ( k xN1

p  = 1, jika distribusi Gauss ke-k adalah distribusi Gauss yang match dengan piksel x

0, jika tidak (otherwise)

Kemudian untuk kedua parameter Gauss (µ,σ2), proses update pada distribusi Gauss ke-k untuk proses identifikasi piksel current frame ke-(N+1) dilakukan berdasarkan persamaan (v) dan (vi). Namun terlihat pada persamaan (vi) bahwa yang ter-update bukanlah nilai varian melainkan nilai kovariannya. Hal ini bukanlah masalah mengingat bila nilai kovariannya ter-update, maka secara otomatis nilai variannya juga ter-update (lihat kembali persamaan (ii)). Sedangkan persamaan (vii) hanya bersifat untuk meringkas penulisan rumus pada persamaan (v) dan (vi).

(17)

4.2.2 Filtering dan Blurring

Pada penggunaan kamera digital atau webcam pada umumnya seringkali ditemukan noise jenis salt-and-pepper. Noise berbentuk bercak-bercak berwarna putih atau hitam ini dapat dihilangkan menggunakan teknik filtering yang tepat. Pada tahap Image Preprocessing ini, penulis menggunakan teknik Gaussian filtering untuk mengenali keberadaan dari

keseluruhan noise tersebut.

Setelah citra/frame tersebut bebas noise salt-and-pepper, kemudian dilanjutkan dengan proses blurring. Proses tersebut diperlukan agar citra memiliki struktur objek/blob yang lebih padat dengan tekstur yang lebih halus (blur). Hal ini dilakukan untuk membantu pengerjaan proses-proses berikutnya yang membutuhkan informasi yang jelas mengenai blob.

Rangkaian kegiatannya:

1. Menghilangkan noise salt-and-pepper dengan menggunakan Gaussian filtering. 2. Melakukan downsampling  memperkecil citra dengan membuang baris dan kolom

yang genap.

3. Melakukan upsampling  mengembalikan citra ke ukuran semula dengan cara melakukan penambahan baris dan kolom genap dengan piksel bernilai 0.

4. Menghilangkan noise salt-and-pepper hasil upsampling menggunakan Gaussian filtering.

Kegiatan pertama dan keempat berkaitan dengan proses filtering, sedangkan yang lainnya berkaitan dengan kegiatan blurring. Kegiatan keempat diperlukan untuk menghilangkan noise salt-and-pepper yang dihasilkan pada kegiatan ketiga.

(18)

4.3 IMPLEMENTASI IMAGE PREPROCESSING

Proses implementasi fase Image Peprocessing ini melibatkan berbagai fungsi yang telah disediakan pada library OpenCV serta dapat dikerjakan menggunakan Microsoft Visual C++ 6.0 atau Visual .NET 2003.

4.3.1 Implementasi Adaptive Gaussian Mixture Model

Implementasi Adaptive Gaussian Mixture Model (Adaptive GMM) melibatkan penggunaan program yang telah tersedia pada OpenCV. Hanya saja, program tersebut masih memiliki beberapa kelemahan terutama pada proses pengidentifikasian bayangan pada objek-objek yang terekstraksi. Sayangnya, penulis tidak dapat merubah inti dari pemrograman tersebut karena merupakan fungsi yang bersifat build-in pada library OpenCV serta hanya menerima input berupa nilai parameter data (pada frame yang diolah). Sehingga, yang dapat penulis lakukan hanyalah menentukan nilai semua parameter tersebut yang sesuai untuk diproses kemudian.

Berikut akan dijelaskan mengenai parameter-parameter yang nilai awalnya ditentukan oleh penulis berdasarkan penerapan program tersebut pada video yang diolah:

1. Jumlah distribusi Gauss (K), penulis tentukan sebanyak 3 untuk mempercepat pemrosesan citra.

2. Parameter varians (k), memiliki nilai awal cukup besar (penulis tentukan sebesar

30).

3. Parameter threshold background (T) yang akan digunakan pada persamaan (iii), memiliki nilai awal 0.5.

(19)

Penjelasan mengenai alasan penentuan ketiga nilai inisialisasi di atas dapat dilihat pada Bab VII: Uji Coba dan Analisis.

Citra asli dari latar menggunakan Adaptive GMMCitra dengan objek yang terekstraksi

Gambar 18: Perbandingan citra awal dengan citra akhir setelah diproses menggunakan

Adaptive GMM

Gambar 18 menampilkan bagaimana Adaptive GMM diterapkan pada suatu frame/citra menggunakan nilai parameter yang diinisialisasi oleh penulis. Tentu saja saat penulis melakukan inisialisasi parameter, penulis menentukannya berdasarkan percobaan pada beberapa video sampel dengan tingkat intensitas cahaya yang sesuai.

4.3.2 Implementasi Filtering dan Blurring

Hampir sama dengan implementasi menggunakan program Adaptive GMM, implementasi filtering dan blurring pada citra juga menggunakan beberapa fungsi yang telah tersedia pada OpenCV. Fungsi-fungsi yang dipanggil berkaitan dengan penggunaan Gaussian filtering serta teknik downsampling dan upsampling untuk proses blurring.

Dengan melakukan kegiatan filtering dan blurring secara berulang sebanyak 5-10 kali, maka hasil yang didapat jauh lebih baik, seperti yang tampak pada gambar berikut:

(20)

Citra sebelum dilakukan filtering dan blurring

Citra setelah dilakukan filtering dan blurring

Gambar 19: Perbandingan citra awal dengan citra akhir setelah dilakukan proses filtering dan

(21)

BAB V:

STATIC FUZZY EXPERT SYSTEM MODEL

Bab ini akan menjelaskan mengenai fase Static Fuzzy Expert System Model yang merupakan fase kedua pembuatan prototipe sekaligus fase pertama yang menggunakan sistem inferensi fuzzy.

5.1 DEFINISI STATIC FUZZY EXPERT SYSTEM MODEL

Sama seperti pada paper yang ditulis oleh Uri Kartoun [2], fase Static Fuzzy Expert System Model akan mengolah input berupa citra yang dihasilkan pada fase sebelumnya, fase Image Preprocessing, sehingga dihasilkan serangkaian data berkaitan dengan identitas blob-blob pada citra tersebut. Identitas yang dimaksud berupa apakah blob tersebut merupakan noise, satu orang (single), dua orang (couple), atau lebih dari dua orang (many).

Noise yang dimaksud tentu bukanlah noise salt-and-pepper mengingat noise tersebut telah dieliminasi pada fase sebelumnya. Noise kali ini merupakan gangguan berupa ketidaksempurnaan bentuk blob. Simak gambar berikut untuk lebih jelasnya:

Gambar 20: Tiga blob noise dan satu blob manusia

Dari Gambar 20, terlihat adanya tiga blob noise dan satu blob manusia. Noise tersebut disebabkan oleh adanya gangguan pergerakan objek non-manusia. Misalnya, pergerakan

(22)

dedaunan pada pohon yang tertiup angin. Jika objek latar yang bergerak semakin banyak, maka blob berupa noise juga semakin banyak bahkan ukurannya dapat menyamai ukuran objek manusia. Oleh karena itu, penerapan Gaussian filtering tidaklah cukup untuk mengindentifikasi noise ini. Penggunaan sistem inferensi fuzzy yang sesuai diharapkan dapat cukup membantu.

Selain noise, identitas blob dapat pula berupa single dan couple. Definisi untuk kedua identitas blob ini cukup jelas yaitu jumlah orang pada blob tersebut. Sementara untuk blob yang merupakan many, hal tersebut untuk membatasi pengerjaan Tugas Akhir ini mengingat yang dibuat adalah prototipe sehingga penulis lebih perfokus pada pembuatan sistem inferensi fuzzy yang lebih sederhana untuk menyesuaikan waktu pengerjaan. Karena memang, untuk mengindentifikasi jumlah orang lebih dari dua pada suatu blob pastinya akan memerlukan himpunan dan aturan fuzzy yang lebih banyak dan kompleks.

5.2 ANALISIS STATIC FUZZY EXPERT SYSTEM MODEL

Sistem inferensi fuzzy yang dikembangkan pada tahap ini berdasarkan konsep dari paper yang ditulis oleh Uri Kartoun [2], namun tidak sama persis. Nantinya akan terjadi perbedaan dari segi himpunan dan aturan fuzzy pada input dan output, hal ini disesuaikan dengan input video yang diberikan. Pada Tugas Akhir ini input video yang diproses sesuai yang disampaikan pada subbab 1.4: Ruang Lingkup Penelitian.

(23)

Dengan menggunakan blob yang telah terektraksi dari latar, maka dapat diperoleh berbagai informasi berikut:

Area, merepresentasikan jumlah piksel pada setiap blob

Aspect ratio, merepresentasikan perbandingan antara tinggi dan lebar blob (tinggi/lebar)

 Jarak (distance) blob dari kamera, merupakan nilai koordinat y pada titik berat blob Ketiga informasi tersebut digunakan sebagai ketiga input pada sistem inferensi fuzzy yang dibangun. Sedangkan output yang dihasilkan nantinya berupa apakah blob tersebut merupakan noise, satu orang (single), dua orang (couple), atau lebih dari dua orang (many). Proses analisis himpunan dan aturan fuzzy yang dijelaskan berikut ini, sebagian besar berdasarkan pengamatan pada beberapa data sampel yang didapat dari video-video yang telah disiapkan sebelumnya, sedangkan sisanya berdasarkan sistem inferensi fuzzy yang dibuat oleh Uri Kartoun.

5.2.1 Penentuan Himpunan Fuzzy

Berikut akan dijelaskan mengenai penentuan domain nilai dan himpunan fuzzy yang dilibatkan pada tiap input dan output.

5.2.1.1 Area

Video yang akan diproses memiliki resolusi 448x336 (dari resolusi asal 800x600 yang diperkecil demi mempercepat proses ekstraksi objek), sehingga domain area seharusnya berkisar antara 0 hingga 448x336 (150528) piksel. Namun, tidak diperlukan hingga 150528 piksel untuk mengenali jumlah orang pada blob tersebut. Dengan membuat himpunan dan aturan fuzzy yang sesuai, maka didapat domain area yang lebih masuk akal. Kali ini penulis

(24)

menggunakan domain area yang sama dengan yang dibuat Uri Kartoun, yaitu [0,3000] piksel, juga dengan lima himpunan fuzzy yang sama, yaitu very-small, small, normal, large, dan very-large. Kelima himpunan fuzzy tersebut menggunakan fungsi keanggotaan yang sama, yakni kurva Gauss.

Fungsi keanggotaan Gauss dipilih karena fungsi tersebut cocok untuk data yang perubahan nilainya terjadi secara kontinu, seperti perubahan data area ini. Serta, dengan mempertimbangkan berbagai faktor seperti kesesuaian antara data yang diuji pada fungsi keanggotaan tersebut dengan aturan-aturan fuzzy yang digunakan.

Setelah menentukan fungsi keanggotaan yang digunakan, maka kembali digunakan data pengamatan untuk menentukan domain dari fungsi keanggotaan tersebut. Hal serupa berlaku untuk himpunan fuzzy lainnya.

5.2.1.2 Ratio

Seperti yang telah dijelaskan sebelumnya, bahwa nilai ratio (rasio) ini didapat dari tinggi blob dibagi lebarnya, sehingga domain yang sesuai adalah [0,4] (sedikit berbeda dengan domain pada sistem inferensi fuzzy buatan Uri yang sebesar [0,3.5]). Nilai rasio suatu blob akan cukup mempengaruhi keakuratan identifikasi blob. Misalkan, suatu blob dengan rasio cukup besar, maka umumnya bidang yang dapat dibentuk untuk mengitari blob tersebut adalah persegi panjang vertikal (seperti yang ditampilkan pada persegi panjang berwarna biru pada Gambar 20). Hal ini sesuai dengan proporsi bentuk tubuh seorang manusia, sehingga dapat disimpulkan bahwa jumlah orang yang terdapat pada blob tersebut adalah satu orang. Sedangkan bentuk-bentuk persegi lainnya dapat mencerminkan jumlah orang tersendiri pada suatu blob, seperti bentuk persegi untuk dua orang dan bentuk persegi panjang horizontal untuk lebih dari dua orang. Tetapi tentu saja, semua hal tersebut belumlah pasti akurat,

(25)

karena masih perlu memperhitungkan kondisi-kondisi yang direpresentasikan oleh nilai himpunan fuzzy yang lain (area blob dan jarak blob dari kamera).

Himpunan fuzzy yang dilibatkan adalah very-small, small, normal, large, dan very-large, dengan kurva Gauss sebagai fungsi keanggotaan untuk setiap himpunan.

5.2.1.3 Distance

Distance yang dimaksud adalah jarak blob dari posisi kamera. Seperti yang dijelaskan sebelumnya, bahwa keberadaan himpunan fuzzy ratio saja belumlah cukup. Dengan adanya data berupa posisi blob dari kamera, maka nilai crisp yang dihasilkan pada proses defuzzifikasi diharapkan akan lebih baik. Misalkan, suatu blob dimana bentuk persegi adalah bentuk dari bangun yang mengitari blob tersebut, dapat dianggap bahwa terdapat dua orang pada blob tersebut dengan jarak cukup dekat dengan kamera. Namun, belum tentu ketika dengan bentuk bangun yang sama dan dengan posisi cukup jauh dari kamera, maka jumlah orang yang diidentifikasi juga sama. Kembali lagi bahwa nilai dari ketiga variabel input akan saling mempengaruhi dalam memberikan output yang sesuai.

Sedikit berbeda dengan variabel input jarak yang dibuat oleh Uri Kartoun, kali ini input tersebut hanya terdiri dari tiga himpunan fuzzy berupa far, medium, dan close, meskipun tetap menggunakan kurva Gauss sebagai fungsi keanggotaan pada setiap himpunan fuzzy tersebut. Alasannya adalah karena ketiga himpunan fuzzy tersebut telah cukup untuk merepresentasikan posisi blob. Domain variabel input ini adalah [0,336] disesuaikan dengan tinggi citra.

5.2.1.4 Number

Number merujuk kepada jumlah orang yang merupakan output dari sistem inferensi fuzzy menggunakan ketiga input yang telah dijelaskan sebelumnya. Variabel output ini memiliki

(26)

domain [0, 30] dengan 4 himpunan fuzzy, yaitu noise or not a person, single (satu orang), couple (dua orang), dan many (lebih dari dua orang).

Besarnya nilai parameter kurva Gauss ditentukan berdasarkan data sampel pada beberapa frame/citra. Oleh karena itu, sudah pasti domain semua himpunan fuzzy, baik pada variabel input maupun output, akan berbeda dengan domain dari semua himpunan fuzzy yang ditulis oleh Uri Kartoun pada paper-nya [2], meskipun semua himpunan fuzzy yang dilibatkan adalah sama.

5.2.2 Penentuan Aturan-aturan Fuzzy

Aturan-aturan fuzzy yang dibentuk menyatakan relasi antara input dan output sistem inferensi fuzzy. Untuk membuat aturan-aturan fuzzy yang sesuai, penulis melakukan pengamatan pada beberapa video. Untuk setiap video, diambil beberapa data sampel berupa nilai area, rasio, dan jarak blob dari kamera pada frame-frame yang dianggap mewakili kondisi kemungkinan input yang berbeda-beda. Dengan menggunakan data sampel tersebut, serta himpunan-himpunan fuzzy yang telah ditetapkan sebelumnya, maka penulis menetapkan beberapa aturan fuzzy yang sesuai.

Secara keseluruhan, terdapat 11 aturan sebagai berikut:

 [R1] IF area is NORMAL and ratio is NORMAL and distance is CLOSE THEN number is SINGLE

 [R2] IF area is LARGE and ratio is NORMAL and distance is CLOSE THEN number is COUPLE

 [R3] IF area is VERY-LARGE and ratio is SMALL and distance is CLOSE THEN number is MANY

(27)

 [R4] IF area is SMALL and ratio is LARGE and distance is MEDIUM THEN number is SINGLE

 [R5] IF area is NORMAL and ratio is NORMAL and distance is MEDIUM THEN number is COUPLE

 [R6] IF area is VERY-LARGE and ratio is SMALL and distance is MEDIUM THEN number is MANY

 [R7] IF area is VERY-SMALL and ratio is LARGE and distance is FAR THEN number is SINGLE

 [R8] IF area is SMALL and ratio is LARGE and distance is FAR THEN number is SINGLE

 [R9] IF area is NORMAL and ratio is NORMAL and distance is FAR THEN number is COUPLE

 [R10] IF area is NORMAL and ratio is SMALL and distance is FAR THEN number is MANY

 [R11] IF area is VERY-SMALL and distance is CLOSE THEN number is NOISE-OR-NOT-A-PERSON

(28)

5.3 IMPLEMENTASI STATIC FUZZY EXPERT SYSTEM MODEL

Implementasi fase Static Fuzzy Expert System Model masih menggunakan OpenCV sebagai library untuk mendapatkan data dari suatu blob. Selanjutnya, data berupa area, rasio, dan jarak blob dari kamera tersebut akan diproses melalui sistem inferensi fuzzy yang dibangun menggunakan Fuzzy Logic Toolbox yang tersedia pada Matlab 7.0. Berikut adalah bentuk sistem inferensi fuzzy yang dibangun:

1. Area

(29)

3. Distance

4. Number

5. Aturan-aturan fuzzy

Untuk memberikan kepastian hasil yang diinginkan, beberapa input data sampel diberikan pada sistem inferensi fuzzy tersebut. Karena himpunan-himpunan dan aturan-aturan fuzzy sudah dibentuk, maka secara otomatis Fuzzy Logic Toolbox akan memproses berbagai input tersebut melewati serangkaian proses, mulai dari fuzzifikasi hingga defuzzifikasi. Mengingat nilai yang dihasilkan pada proses defuzzifikasi masih merupakan nilai crisp (lihat contohnya

(30)

pada Gambar 22), sehingga proses perubahan nilai crisp menjadi nilai fuzzy melibatkan proses pemrograman tambahan.

Blob 1

Blob 2

Citra input untuk Static Fuzzy Expert System Model

Citra output untuk Static Fuzzy Expert System Model

Gambar 21: Contoh citra input dan output untuk fase Static Fuzzy Expert System Model Pada Gambar 21, citra input merupakan citra keluaran pada fase Image Preprocessing, sedangkan citra output merupakan citra RGB awal dengan informasi tambahan berupa jumlah orang yang tertulis langsung pada tiap blob. Untuk menghasilkan setiap informasi tersebut, maka data yang diperoleh pada citra input akan diproses. Berdasarkan Gambar 21, data tersebut berupa:

Blob 1: area = 381, ratio = 1.882, distance = 32 Blob 2: area = 2028, ratio 3.344, distance = 257

Dan, seperti yang terlihat, bahwa output yang dihasilkan adalah single untuk Blob 1 dan couple untuk Blob 2.

(31)

Gambar 22: Contoh pengolahan input Blob 2 (area=2082, ratio=3.344, distance=257) hingga menjadi nilai crisp (number=15) melalui proses evaluasi pada 11 aturan fuzzy Perlu ditekankan kembali, bahwa segala himpunan dan aturan fuzzy yang dibangun bergantung pada posisi kamera pengamatan dan tingkat pembesaran dari kamera tersebut. Dengan posisi kamera yang berbeda, maka diperlukan beberapa penyesuaian dalam bentuk serangkaian himpunan dan aturan fuzzy yang berbeda tentunya. Hal itulah yang menyebabkan sistem inferensi fuzzy pada fase ini tidak dapat dibandingkan secara langsung, dari segi akurasi hasil, dengan sistem inferensi fuzzy yang dibangun oleh Uri Kartoun berdasarkan paper-nya [2].

(32)

BAB VI:

DYNAMIC FUZZY EXPERT SYSTEM MODEL

Bab ini menjelaskan mengenai keseluruhan fase Dynamic Fuzzy Expert System Model yang merupakan fase lanjutan dari dua fase sebelumnya.

6.1 DEFINISI DYNAMIC FUZZY EXPERT SYSTEM MODEL

Hampir sama dengan fase sebelumnya, Static Fuzzy Expert System Model, fase ini juga menggunakan sistem inferensi fuzzy untuk memproses input sehingga menghasilkan output yang diinginkan. Yang membedakan adalah pada fase ini dihasilkan dua output, yaitu kecepatan (velocity) pergerakan blob dan arahnya (direction). Sedangkan tiga input yang digunakan adalah perpindahan titik berat blob pada sumbu x dan y, serta jarak blob dari kamera. Sehingga, diperlukan dua citra untuk memperoleh data keseluruhan berupa perpindahan titik berat blob.

6.2 ANALISIS DYNAMIC FUZZY EXPERT SYSTEM MODEL

Proses analisis kali ini berkaitan dengan penambahan akurasi hasil dengan melakukan sedikit perubahan pada sistem inferensi fuzzy yang dibangun. Jika semula penentuan input-ouput berikut fungsi-fungsi keanggotaan yang digunakan pada sistem inferensi fuzzy masih serupa dengan paper yang ditulis Uri Kartoun [2], maka untuk tahap ini, agar mendapatkan hasil yang lebih baik, penulis memutuskan untuk menambah satu himpunan fuzzy pada input yang diberikan. Himpunan fuzzy tersebut adalah jarak (distance) blob dari posisi kamera.

(33)

Alasan penambahan himpunan fuzzy jarak adalah sederhana. Sebagai contoh adalah saat kita melihat seseorang lari pada dua kondisi yang berbeda. Kondisi yang dimaksud adalah posisi orang yang berlari dari mata kita. Satu kondisi adalah saat orang tersebut berlari pada posisi cukup dekat dari mata kita, sedang kondisi lainnya adalah saat dia berlari pada posisi cukup jauh. Meskipun pada dua kondisi itu, orang tersebut berlari dengan arah dan kecepatan yang sama, namun saat kita melihat dari posisi tertentu, maka akan terlihat bahwa perpindahan posisi orang tersebut tidaklah sama. Kita akan menganggap bahwa orang yang berlari cukup dekat dengan mata kita mengalami perpindahan posisi lebih besar dibandingkan dengan saat dia berlari pada posisi yang cukup jauh.

Berdasarkan pemikiran tersebut, maka dengan menggunakan input berupa perpindahan titik berat blob saja tidaklah cukup agar memberikan hasil yang optimal. Diperlukan variabel tambahan yang dapat berkerja dengan baik pada berbagai kondisi yang disebutkan sebelumnya. Variabel yang dimaksud adalah input tambahan berupa jarak blob dari kamera atau merupakan nilai koordinat y pada titik berat blob.

Selain penambahan input baru, penulis menggunakan dua sistem inferensi fuzzy berbeda untuk setiap output yang dihasilkan. Sehingga setiap sistem inferensi fuzzy akan memproses tiga input yang sama, namun dengan sebuah output yang berbeda, yang satu adalah kecepatan dan yang lainnya adalah arah pergerakan. Dengan sistem inferensi fuzzy yang berbeda, maka kebebasan untuk bereksperimen dengan himpunan dan aturan fuzzy yang berbeda-beda juga bertambah. Tentu saja, kemungkinan bagi sistem inferensi fuzzy tersebut untuk memberikan hasil yang optimal juga bertambah besar.

(34)

6.2.1 Sistem Inferensi Fuzzy 1 (Output: Velocity)

Perlu diingat bahwa suatu blob dapat terdiri dari beberapa orang dan yang dihasilkan pada sistem inferensi fuzzy yang pertama ini bukanlah kecepatan pergerakan tiap orang pada blob tersebut, melainkan kecepatan pergerakan blob.

6.2.1.1 Penentuan Himpunan Fuzzy

Sistem inferensi fuzzy 1 ini menggunakan tiga variabel input. Berikut rinciannya:

1. X movement change, adalah perubahan titik berat blob pada absis (sumbu x). Memiliki domain [-30,30] dengan lima himpunan fuzzy (dramatically-left, slightly-left, almost-no-change, slightly-right, dramatically right), dimana posisi left-right (kiri-kanan) diukur dari sudut pandang kamera tentunya.

2. Y movement change, adalah perubahan titik berat blob pada ordinat (sumbu y). Memiliki domain [-30,30] dengan lima himpunan fuzzy (dramatically-away, slightly-away, almost-no-change, slightly-to, dramatically-to). Kata „away‟ di sini berarti gerakan blob yang menjauhi kamera, sedangkan „to‟ berarti sebaliknya.

3. Distance, merupakan koordinat sumbu y pada titik berat blob. Memiliki domain [0,336] dengan tiga himpunan fuzzy (far, medium, close). Distance dapat juga dikatakan sebagai jarak blob dari kamera.

Kembali ditegaskan bahwa dua input yang pertama serupa dengan yang tertera pada paper Uri Kartoun [2]. Perbedaannya hanyalah pada domain dari variabel input itu sendiri. Untuk dapat mengatur domain nilai yang sesuai, penulis mengamati beberapa data sampel, mulai dari data orang yang diam hingga berlari. Terutama untuk orang yang berlari dengan

(35)

kecepatan tinggi, penulis harus dapat mengukur perkiraan nilai maksimum perubahan titik berat blob berdasarkan kecepatan lari manusia normal.

Variabel output yang dihasilkan adalah velocity yang merupakan kecepatan perpindahan blob. Memiliki domain [-2,2] dengan empat himpunan fuzzy (standing, walking-slow, walking-fast, running).

Fungsi keanggotaan yang digunakan untuk setiap himpunan fuzzy masih sama, yakni fungsi keanggotaan Gauss.

6.2.1.2 Penentuan Aturan Fuzzy

Untuk membentuk aturan-aturan fuzzy yang sesuai tentunya akan sangat bergantung pada beberapa data sampel yang diberikan. Data sampel tersebut diperoleh dari beberapa frame/citra yang menggambarkan keseluruhan kemungkinan pergerakan blob (baik dari segi arah maupun kecepatan). Jika pada fase sebelumnya suatu data dapat diperoleh dari satu citra, maka pada fase ini digunakan dua buah citra pada rentang lima buah citra untuk mendapatkan data berupa perubahan titik berat blob pada sumbu x dan y. Sedangkan untuk data berupa jarak (distance) blob dari kamera cukup menggunakan data titik berat blob pada citra yang terbaru.

Dari banyaknya himpunan fuzzy yang dilibatkan, akhirnya dihasilkan 30 aturan fuzzy sebagai berikut:

 [R1] IF x-movement-change is ALMOST-NO-CHANGE and y-movement-change is ALMOST-NO-CHANGE and distance is NOT-FAR THEN velocity is STANDING  [R2] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is

(36)

 [R3] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is SLIGHTLY-AWAY and distance is FAR THEN velocity is RUNNING

 [R4] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is SLIGHTLY-AWAY and distance is FAR THEN velocity is RUNNING

 [R5] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is DRAMATICALLY-AWAY and distance is FAR THEN velocity is RUNNING  [R6] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is

SLIGHTLY-AWAY and distance is NOT-FAR THEN velocity is WALKING-SLOW  [R7] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is SLIGHTLY-AWAY and distance is NOT-FAR THEN velocity is WALKING-FAST  [R8] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is

DRAMATICALLY-AWAY and distance is NOT-FAR THEN velocity is WALKING-FAST

 [R9] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is DRAMATICALLY-AWAY THEN velocity is RUNNING

 [R10] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is SLIGHTLY-AWAY and distance is FAR THEN velocity is RUNNING

 [R11] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is SLIGHTLY-AWAY and distance is FAR THEN velocity is RUNNING

 [R12] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is DRAMATICALLY-AWAY and distance is FAR THEN velocity is RUNNING

(37)

 [R13] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is SLIGHTLY-AWAY and distance is NOT-FAR THEN velocity is WALKING-SLOW  [R14] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is SLIGHTLY-AWAY and distance is NOT-FAR THEN velocity is WALKING-FAST

 [R15] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is DRAMATICALLY-AWAYand distance is NOT-FAR THEN velocity is WALKING-FAST

 [R16] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is DRAMATICALLY-TO THEN velocity is RUNNING

 [R17] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is SLIGHTLY-TO and distance is FAR THEN velocity is RUNNING

 [R18] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is SLIGHTLY-TO and distance is FAR THEN velocity is RUNNING

 [R19] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is DRAMATICALLY-TO and distance is FAR THEN velocity is RUNNING

 [R20] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is SLIGHTLY-TO and distance is NOT-FAR THEN velocity is WALKING-SLOW  [R21] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is

(38)

 [R22] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is DRAMATICALLY-TO and distance is NOT-FAR THEN velocity is WALKING-FAST

 [R23] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is DRAMATICALLY-TO velocity is RUNNING

 [R24] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is SLIGHTLY-TO and distance is FAR THEN velocity is RUNNING

 [R25] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is SLIGHTLY-TO and distance is FAR THEN velocity is RUNNING

 [R26] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is DRAMATICALLY-TO and distance is FAR THEN velocity is RUNNING

 [R27] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is SLIGHTLY-TO and distance is NOT-FAR THEN velocity is WALKING-SLOW  [R28] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change

is SLIGHTLY-TO and distance is NOT-FAR THEN velocity is WALKING-FAST  [R29] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is

DRAMATICALLY-TO and distance is NOT-FAR THEN velocity is WALKING-FAST

 [R30] IF x-movement-change is ALMOST-NO-CHANGE and y-movement-change is ALMOST-NO-CHANGE and distance is FAR THEN velocity is WALKING-SLOW

(39)

Untuk membuat suatu aturan fuzzy, penulis mencoba meneliti data sampel pada berbagai output pengamatan secara berurut. Misal, pertama-tama penulis mencoba membuat kumpulan aturan fuzzy yang sesuai untuk membentuk output walking-slow pada berbagai kondisi input. Setelah itu, dilanjutkan dengan output-output yang lainnya.

6.2.2 Sistem Inferensi Fuzzy 2 (Output: Direction)

Sistem inferensi fuzzy yang kedua dibangun untuk memperoleh informasi mengenai arah pergerakan tiap blob. Input-input yang digunakan pada sistem tersebut masih sama, yaitu perubahan sumbu x dan y, serta jarak blob dari kamera. Namun, terdapat sedikit perbedaan pada domain fungsi keanggotaan yang dilibatkan.

6.2.2.1 Penentuan Himpunan Fuzzy

Seperti yang dijelaskan sebelumnya, bahwa terdapat perbedaan pada sistem inferensi fuzzy yang dibangun antara sistem inferensi fuzzy dengan output velocity dan output direction. Perbedaan tersebut memungkinkan agar aturan-aturan fuzzy yang dibangun bersifat independen dan dapat memberikan hasil defuzzifikasi yang lebih baik.

Pada sistem inferensi fuzzy ini, input yang digunakan masih sama (x movement change, y movement change, dan distance). Bahkan, himpunan-himpunan fuzzy yang digunakan pada setiap variabel input juga sama. Hal ini dikarenakan penambahan himpunan fuzzy dapat menambah kompleksitas aturan fuzzy yang dibangun, ditambah lagi, aturan-aturan fuzzy itu akan saling memperngaruhi satu sama lain, terutama saat terjadi proses agregasi aturan output (lihat kembali subbab 2.6.3).

Namun karena terjadi perbedaan dari segi domain input, output, berikut himpunan fuzzy didalamnya, berdasarkan pengamatan pada beberapa data sampel, menyebabkan aturan-aturan fuzzy yang dibentuk juga berbeda. Pada sistem inferensi fuzzy kali ini, x movement

(40)

change dan y movement change memilki domain [-15,15]. Sedangkan domain input distance masih sama, yaitu [0,336] sesuai tinggi citra. Output direction (arah pergerakan blob) memiliki domain [-2,2] dan memiliki berbagai himpunan fuzzy berikut:

Backward, gerakan lurus menjauhi kamera

Backward-right, gerakan menjauhi kamera menyamping ke kanan Right, gerakan lurus ke arah kanan kamera

Forward-right, gerakan mendekati kamera menyamping ke kanan Forward, gerakan lurus mendekati kamera

Forward-left, gerakan mendekati kamera menyamping ke kiri Left, gerakan lurus ke arah kiri kamera

Backward-left, gerakan menjauhi kamera menyamping ke kiri

Backward 2, sama seperti backward, namun harus dibuat agar ketika ada nilai defuzzifikasi yang letaknya di luar backward-left dan tidak berada di dalam himpunan fuzzy manapun, maka nilai tersebut akan jatuh pada himpunan fuzzy backward2 yang tidak lain adalah himpunan fuzzy backward itu sendiri.

Pada paper yang ditulis Uri Kartoun [2], tidak ditemukan himpunan fuzzy backward 2 atau himpunan fuzzy manapun yang dapat menangani kembalinya nilai defuzzifikasi ke nilai himpunan fuzzy awal. Padahal logikanya, keseluruhan kemungkinan arah pergerakan akan membentuk sudut 360°. Misal, mulai dari jenis gerakan maju, maju-kanan, kanan, kanan-mundur, kanan-mundur, kiri-kanan-mundur, kiri, kiri-maju, dan (kembali lagi ke) maju.

(41)

6.2.2.2 Penentuan Aturan Fuzzy

Melalui pengamatan pada beberapa data sampel yang mencakup berbagai kemungkinan output, dibentuk sejumlah 20 aturan fuzzy sebagai berikut:

 [R1] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is DRAMATICALLY-AWAY and distance is FAR THEN direction is BACKWARD  [R2] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is

DRAMATICALLY-AWAY and distance is FAR THEN direction is BACKWARD  [R3] IF x-movement-change is ALMOST-NO-CHANGE and y-movement-change is

DRAMATICALLY-AWAY and distance is NOT-FAR THEN direction is BACKWARD

 [R4] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is SLIGHTLY-AWAY and distance is NOT-FAR THEN direction is BACKWARD-RIGHT

 [R5] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is DRAMATICALLY-AWAY and distance is NOT-FAR THEN direction is BACKWARD-RIGHT

 [R6] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is SLIGHTLY-AWAY and distance is FAR THEN direction is RIGHT

 [R7] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is SLIGHTLY-TO and distance is FAR THEN direction is RIGHT

(42)

 [R8] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change is ALMOST-NO-CHANGE and distance is NOT-FAR THEN direction is RIGHT  [R9] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is

SLIGHTLY-TO and distance is NOT-FAR THEN direction is FORWARD-RIGHT  [R10] IF x-movement-change is DRAMATICALLY-RIGHT and y-movement-change

is DRAMATICALLY-TO and distance is NOT-FAR THEN direction is FORWARD-RIGHT

 [R11] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is DRAMATICALLY-TO and distance is FAR THEN direction is FORWARD

 [R12] IF x-movement-change is SLIGHTLY-RIGHT and y-movement-change is DRAMATICALLY-TO and distance is FAR THEN direction is FORWARD

 [R13] IF x-movement-change is ALMOST-NO-CHANGE and y-movement-change is DRAMATICALLY-TO and distance is NOT-FAR THEN direction is FORWARD  [R14] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is

SLIGHTLY-TO and distance is NOT-FAR THEN direction is FORWARD-LEFT  [R15] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is

DRAMATICALLY-TO and distance is NOT-FAR THEN direction is FORWARD-LEFT

 [R16] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is SLIGHTLY-AWAY and distance is FAR THEN direction is LEFT

(43)

 [R17] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is SLIGHTLY-TO and distance is FAR THEN direction is LEFT

 [R18] IF x-movement-change is DRAMATICALLY-LEFT and y-movement-change is ALMOST-NO-CHANGE and distance is NOT-FAR THEN direction is LEFT

 [R19] IF x-movement-change is SLIGHTLY-LEFT and y-movement-change is SLIGHTLY-AWAY and distance is NOT-FAR THEN direction is BACKWARD-LEFT

 [R20] IF x-movement-change is DRMATICALLY-LEFT and y-movement-change is DRAMATICALLY-AWAY and distance is NOT-FAR THEN direction is BACKWARD-LEFT

Dapat dilihat bahwa setiap aturan yang dibangun memiliki hasil implikasi yang merepresentasikan semua kemungkinan arah pergerakan, kecuali untuk himpunan fuzzy backward2, karena himpunan fuzzy tersebut hanya menerima nilai hasil defuzzifikasi yang berada di luar sebelah kanan himpunan fuzzy backward-left. Namun, bagaimana bila blob tersebut kenyataannya tidak bergerak sama sekali? Jawaban dari pertanyaan tersebut terdapat pada bagian implementasi selanjutnya.

6.3 IMPLEMENTASI DYNAMIC FUZZY EXPERT SYSTEM MODEL

Proses implementasi pada Dynamic Fuzzy Expert System Model tentunya masih menggunakan library OpenCV untuk memproses beberapa fungsi berkaitan dengan informasi yang terkandung pada suatu blob serta menggunakan Fuzzy Logic Toolbox yang terdapat pada Matlab 7.0 untuk membangun sistem inferensi fuzzy yang sesuai. Kode pemrograman

(44)

untuk memanggil fungsi-fungsi pada OpenCV dan untuk mengakses Fuzzy Logic Toolbox ditulis menggunakan editor Visual .NET 2003.

Penjelasan mengenai tahap implementasi pada kedua sistem inferensi fuzzy akan dipaparkan secara terpisah.

6.3.1 Implementasi Sistem Inferensi Fuzzy 1 (Output: Velocity)

Berikut adalah sistem inferensi fuzzy yang dibentuk menggunakan Fuzzy Logic Toolbox: 1. X movement change

Ket: Himpunan fuzzy dari kiri ke kanan adalah dramatically-left, slightly-left, almost-no-change, slighly-right, dan dramatically-right.

2. Y movement change

Ket: Himpunan fuzzy dari kiri ke kanan adalah dramatically-away, slightly-away, almost-no-change, slightly-to, dan dramatically-to.

(45)

3. Distance

Ket: Seperti yang terlihat bahwa terdapat 3 himpunan fuzzy (far, medium, close). 4. Velocity

Ket: Seperti yang terlihat bahwa terdapat 4 himpunan fuzzy (standing, walking-slow, walking-fast, running).

5. Aturan-aturan fuzzy

(46)

6.3.2 Implementasi Sistem Inferensi Fuzzy 2 (Output: Direction)

Berikut adalah sistem inferensi fuzzy yang dibentuk menggunakan Fuzzy Logic Toolbox: 1. X movement change

Ket: Himpunan fuzzy dari kiri ke kanan adalah dramatically-left, slightly-left, almost-no-change, slighly-right, dan dramatically-right.

2. Y movement change

Ket: Himpunan fuzzy dari kiri ke kanan adalah dramatically-away, slightly-away, almost-no-change, slightly-to, dan dramatically-to.

(47)

3. Distance

Ket: Seperti yang terlihat bahwa terdapat 3 himpunan fuzzy (far, medium, close). 4. Direction

Ket: Himpunan fuzzy dari kiri ke kanan adalah backward, backward-right, right, forward-right, forward, forward-left, left, backward-left, backward2.

5. Aturan-aturan fuzzy

(48)

6.3.3 Fungsi-fungsi Pemrograman yang Essensial

Setelah membangun kedua sistem inferensi fuzzy tersebut, maka beberapa algoritma pemrograman disusun agar memberikan hasil akhir yang optimal. Beberapa mekanisme pemrograman yang sesuai kemudian dibangun. Mekanisme tersebut mencakup beberapa fungsi essensial berikut:

 Program yang dibuat dapat merubah nilai crisp hasil proses defuzzifikasi menjadi nilai fuzzy.

 Program yang dibuat dapat mengakses Fuzzy Logic Toolbox pada Matlab 7.0.

 Program yang dibuat memungkinkan suatu blob dengan titik berat tertentu pada citra lama dapat menemukan pasangan titik berat yang sesuai pada citra baru. Hal ini berguna untuk mengetahui seberapa besar perpindahan titik berat (pergerakan) blob. Dengan menggunakan rumus jarak antar dua titik koordinat, didapat besarnya perpindahan tersebut. Namun rumus tersebut tidak selalu berhasil, terutama untuk dua blob yang bergerak saling bersilangan. Oleh karena itu, pengaturan jarak antara citra lama dengan citra baru pun ditentukan. Dalam hal ini, penulis menentukan sebanyak lima citra. Misal, citra baru adalah citra ke-15, maka citra lama yang dibandingkan adalah citra ke-10. Berbeda dengan paper yang ditulis Uri Kartoun, dimana jarak antara citra lama dengan yang baru sebanyak 10 citra.

 Program yang dibuat harus dapat menuliskan hasil akhir (dalam bentuk nilai fuzzy) langsung pada citra RGB.

 Ditambahkan pada program suatu kondisi untuk mengenali bilamana output velocity adalah “standing” maka output direction ditetapkan sebagai “almost-nowhere”.

(49)

inferensi fuzzy ouput direction, namun output tersebut harus ditambahkan pada program agar sistem memberikan hasil yang tepat ketika blob tersebut tidak melakukan perpindahan posisi.

Sebagian dari hal-hal yang harus diprogram di atas, berlaku pula untuk tahap sebelumnya (Static Fuzzy Expert System Model).

Citra 293: Citra lama Citra 298: Citra baru

Gambar 23: Contoh perbandingan citra 293 dan 298 untuk tahap Dynamic Fuzzy Expert System Model

Pada Gambar 23, tulisan warna kuning menginformasikan mengenai kecepatan (velocity) blob sedangkan tulisan warna hitam merupakan arah (direction) pergerakan blob.

Gambar

Gambar 12: Arsitektur Sistem
Gambar 13: Desain Modul
Gambar 14: Antarmuka pemutar video AVI
Gambar 16: Frame contoh penunjukkan lokasi piksel dan histogram warna piksel dari  frame tersebut
+7

Referensi

Dokumen terkait

- Proses: proses di sini adalah bagaimana standart yang diberikan kepada konsumen dari mulai mereka tertarik pada produk yang ditawarkan sehingga mereka menikmati

Sehingga jika merujuk pada konsepsi sistem ekonomi dan perburuhan yang dilandaskan pada nilai-nilai Pancasila yang kemudian diatur melalui ketentuan dalam UUD

Kadar peratus responden yang Setuju dan Amat Setuju lebih ramai berbanding dengan jawapan responden yang Kurang Setuju, Tidak Setuju dan Sangat Tidak Setuju dalam kajian

Penelitian ini bertujuan untuk mengetahui hubungan antara perilaku konsumsi makanan berisiko, konsumsi minuman beralkohol, dan stres dengan kejadian hipertensi pada laki- laki

Penelitian ini sejalan dengan penelitian yang dilakukan oleh Prabowo, dkk, 2014, yang menyatakan bahwa keterlibatan pemakai dalam pengembangan sistem tidak berpengaruh

Berdasarkan penelitian sebelumnya, kandungan flavanoid dalam ekstrak etanol rimpang lengkuas merah ( Alpinia galanga, Linn), dengan metode soxletasi dan fraksi air,

Dari hasil penelitian ditinjau dari masing-masing kriteria pada pemeriksaan menggunakan kriteria Amsel didapatkan bahwa ditemukannya clue cells pada

Dalam Pra Proposal dan Proposal Lengkap, harus mencakup dan menguraikan tentang: (a) Pendekatan strategis, (b) Technology roadmap dan rekayasa sosial yang relevan,