BAB III ANALISA DAN PERANCANGAN
3.1
Analisa Sistem Tahapan analisa merupakan tahapan awal dalam perekayasaan perangkat
lunak. Pada tahapan ini menjelaskan apa yang dilakukan sistem, siapa yang menggunakannya dan kapan digunakan. Seperti yang dibahas pada bab sebelumnya bahwa terdapat beberapa proses yang harus dilalui di dalam computer vision terutama untuk pengenalan wajah yaitu: (a) Memperoleh atau mengakuisisi citra digital (b) Mendeteksi wajah dari citra masukan. (c) Meng-ekstraksi ciri / wajah (d) Pengenalan Wajah. Karena aplikasi yang akan dikembangkan adalah aplikasi pengenal wajah yang berorientasi pada image based maka diperlukan proses pengolahan citra digital agar tujuan dari setiap proses tercapai.
3.1.1
Analisa Sistem Berjalan Aplikasi pengenal wajah yang akan dibangun pada tugas akhir ini adalah
pengembangan aplikasi Qt-OpenCv yang dibuat oleh Alberto G. Lagos (Kronen) (di unduh dari https://gitorious.org/qt-opencv , pada Juni 2011). Aplikasi QtOpenCv adalah aplikasi yang dibuat untuk pembelajaran pattern recognition yang digunakan untuk mendeteksi wajah yang ditangkap oleh webcam. Aplikasi ini dibuat dengan memanfaatkan library OpenCv yang diintegrasikan dengan Qt.. Aplikasi ini berlisensi GNU General Public Licence sehingga bebas untuk di distribusikan ulang atau dimodifikasi. Kemampuan yang dimiliki oleh aplikasi ini adalah: a. Menampilkan citra yang ditangkap oleh webcam. b. Mendeteksi wajah yang terdapat dalam citra yang ditangkap oleh webcam. c. Menyimpan citra yang ditangkap oleh webcam dalam format gambar maupun film.
33
34
3.1.2
Analisa Sistem yang Diajukan Pada aplikasi yang sedang berjalan sudah terdapat proses awal dari
pengenalan wajah yaitu memperoleh atau mengakuisisi citra dan mendeteksi wajah dari citra masukan. Sehingga pada aplikasi tersebut perlu dimodifikasi dan ditambahkan beberapa fungsi lagi agar dapat menjadi sebuah aplikasi pengenal wajah. Proses mengekstraksi ciri / wajah atau biasa disebut pelatihan citra wajah memerlukan inputan beberapa citra wajah dengan format dan ukuran yang sama. Oleh karena itu perlu dipersiapkan sebuah tool untuk mendapatkan citra wajah tersebut. Setelah citra wajah tersedia barulah dilakukan proses pelatihan citra wajah dan hasilnya disimpan sebagai database wajah. Tahapan berikutnya adalah pengenalan wajah, pada tahapan ini memerlukan citra wajah sebagai inputan untuk dipelajari cirinya dan dicocokan dengan database wajah yang dimiliki dan hasilnya berupa dikenali atau tidak citra wajah tersebut. Pada akhirnya aplikasi yang akan dikembangkan akan memiliki kemampuan seperti berikut: a. Menampilkan citra yang ditangkap oleh webcam. b. Mendeteksi wajah yang terdapat dalam citra yang ditangkap oleh webcam. c. Menyimpan citra wajah yang ditangkap oleh webcam ke dalam format gambar pgm. d. Mempelajari ciri citra wajah yang sudah disimpan sebelumnya. e. Mencocokkan citra wajah yang ditangkap oleh webcam dengan citra yang sudah dipelajari sebelumnya. f. Mencatat semua aktivitas sistem. Gambar 3.1 menampilkan Sistem Use Case yang diperoleh dari analisa sistem yang akan dikembangkan.
35
Gambar 3.1 Sistem Use Case Pengenal Wajah
Dari setiap use case tersebut akan di jelaskan dalam use case description (UCD) dibawah in:
Tabel 3.1 UCD Akuisisi Citra Use Case
Akuisisi Citra
Actor
Pengguna
Description
Use case ini menjelaskan bagaimana citra user tertangkap oleh kamera dapat ditampilkan.
Relationships Normal Flow 1. Pengguna menjalankan aplikasi 2. Pengguna memilih menu Connect Camera 3. Pengguna memasukan Device ID dari kamera. 4. Jika Device ID benar, sistem akan melakukan koneksi dengan kamera dan
36
menampilkan citra yang tertangkap oleh kamera. Alternate Flow 4a. Jika tidak Sistem akan menampilkan pesan “Camera not Connected”.
Tabel 3.2 UCD Deteksi Wajah Use Case
Deteksi Wajah
Actor
User
Description
Use case ini menjelaskan bagaimana citra pengguna yang tertangkap oleh kamera di deteksi area wajahnya.
Relationships Normal Flow 1. Pengguna memilih Cascade File yang digunakan untuk deteksi wajah. 2. Pengguna mengaktifkan tombol Face detection 3. Sistem melakukan pemrosesan citra a. Konversi citra asal (citra RGB) menjadi citra grayscale. b. Rezise citra grayscale c. Atur brightness dan kontras citra grayscale ke posisi standar 4. Sistem mendeteksi area wajah dari citra yang sudah diproses. 5. Jika wajah terdeteksi, tandai area wajah dengan persegi empat hijau, dan tampilkan di log kecepatan pendeteksian wajah. Alternate Flow 1a. Jika Pengguna tidak memilih Cascade File, sistem akan menggunakan Cascade File default
Tabel 3.3 UCD Menyimpan Citra Wajah Use Case
Menyimpan Citra Wajah
Actor
Pengguna
Description
Use case ini menjelaskan bagaimana wajah yang terdeteksi disimpan kedalam format gambar pgm
Relationships
Include : Deteksi Wajah
37
Normal Flow
:
1. Pengguna meng-klik tombol save face image 2. Sistem melakukan croping citra a. Lakukan pemrosesan citra i. Konversi citra asal (citra RGB) menjadi citra grayscale. ii. Resize citra grayscale iii. Atur brightness dan kontras citra grayscale ke posisi standar b. Area wajah yang terdeteksi akan di jadikan Region Of Interest (ROI) oleh sistem. c. Sistem akan membuat citra wajah dari area ROI. d. Citra wajah dirubah ukurannya menjadi 90 x 90 piksel. 3. Pengguna memasukan nama dari citra wajah dalam format .pgm, dan lokasi penyimpanan 4. Sistem akan menyimpan citra wajah ke dalam media penyimpanan yang telah di masukkan pengguna. Alternate Flow : 3b. Pengguna menekan tombol “Cancel” maka Sistem akan membatalkan penyimpanan citra wajah.
Tabel 3.4 UCD Pelatihan Citra Wajah Use Case
Pelatihan Citra Wajah
Actor
Pengguna
Description
Use case ini menjelaskan bagaimana citra wajah yang sudah disimpan, dipelajari dan disimpan hasilnya ke dalam file xml
Relationships Normal Flow
:
1. Pengguna meng-klik tombol Train image 2. Sistem akan menampilkan formulir pelatihan citra. 3. Pengguna memilih file trainer yang digunakan (trainer.txt) 4. Sistem akan menampilkan isi dari file trainer yang dipilih. 5. Pengguna memasukan id dari citra wajah yang akan dilatih
38
6. Pengguna memasukan nama pemilik dari citra wajah yang akan dilatih. 7. Pengguna memilih beberapa citra wajah yang sudah disimpan sebelumnya sesuai dengan nama pemiliknya. 8. Sistem menanpilkan path dari citra wajah yang dipilih. 9. Pengguna meng-klik tombol tambahkan ke file trainer. 10. Sistem akan menambahkan id nama path ke dalam file trainer 11. Pengguna meng-klik tombol Save. 12. Sistem akan mengupdate isi file trainer 13. Pengguna meng-klik tombol OK 14. Sistem menutup formulir pelatihan citra. 15. Sistem memuat kembali file trainer 16. Sistem akan melakukan perhitungan Eigenface (Principal Component Analisys (PCA)) untuk mendapatkan citra rata-rata, nilai eigen, vektor eigen. 17. Sistem melakukan proyeksi semua citra pelatihan terhadap ruang bagian Eigenface. 18. Sistem akan menyimpan hasil pelatihan citra tersebut ke dalam file facedata.xml. 19. Jika pelatihan
berhasil sistem akan menampilkan jumlah image yang
dilatih, jumlah orang dan namanya ke log
Alternate Flow : 13a. Pengguna menekan mengklik tombol Cancel , pelatihan citra dibatalkan.
Tabel 3.5. UCD Pengenalan Wajah Use Case
Pengenalan Wajah
Actor
Pengguna
Description
Use case ini menjelaskan proses pengenalan wajah
Relationships
Include : Deteksi Wajah
Normal Flow
:
1. Pengguna meng-klik tombol Face Detection
39
2. Pengguna meng-klik tombol Recognize Face 5. Sistem melakukan croping citra a. Lakukan pemrosesan citra i. Konversi citra asal (citra RGB) menjadi citra grayscale. ii. Resize citra grayscale iii. Atur brightness dan kontras citra grayscale ke posisi standar b. Area wajah yang terdeteksi akan di jadikan Region Of Interest (ROI) oleh sistem. c. Sistem akan membuat citra wajah dari area ROI. d. Citra wajah dirubah ukurannya menjadi 90 x 90 pixel. 3. Sistem meload database wajah (facedata.xml) 4. Sistem akan memproyeksikan citra wajah ke ruang bagian Eigenface 5. Sistem akan mencari wajah paling mirip dengan menghitung jarak Euclidiance antara proyeksi citra uji dan proyeksi setiap citra latih.. 6. Sistem akan menghitung tingkat keyakian dari citra ke-n yang memiliki jarak minimal. 7. Jika tingkat keyakinan di atas ambang batas tampilkan nama dari pemilik citra ke-n, jika tidak tampilkan unknown..
3.2 Perancangan Pada tahapan ini akan dilakukan pemodelan proses , kelas dan antar muka dari aplikasi yang dikembangkan berdasarkan hasil analisis yang sudah dilakukan.
3.2.1
Diagram Aktivitas Diagram aktivitas memodelkan alur kerja (workflow) sebuah proses bisnis
dan urutan aktivitas dalam suatu proses. Disini akan digambarkan tiga buah diagram aktivitas dari proses menyimpan citra wajah, pelatihan citra wajah dan pengenalan citra wajah.
40
Pengguna
Sistem
Koneksi ke Kamera Koneksi gagal Koneksi OK
Tampilkan Citra
Pilih Haar Cascade Classifier Aktifkan Deteksi Wajah
Pemrosesan Citra
Deteksi Wajah
Wajah tidak terdeteksi
Tampilkan Rectangle Wajah
Catat waktu deteksi
Klik Simpan Citra Wajah
Crop Area Wajah
Masukan Nama File Nama file kosong
Nama file valid
Simpan Citra Wajah
Gambar 3.2 Diagram Aktivitas Menyimpan Citra Wajah
41
Gambar 3.3 Diagram Aktivitas Pelatihan Citra Wajah
42
Gambar 3.4 Diagram Aktivitas Pengenalan Wajah
43
3.2.2
Diagram Kelas Setiap objek merupakan instance dari suatu kelas, dimana kelas tersebut
menggambarkan propertis dan behaviour dari setiap jenis objek. Sebuah diagram kelas menggambarkan kelas-kelas yang terdapat pada sistem dan hubungannya dengan kelas yang lainnya. Diagram kelas merupakan diagram yang selalu ada di pemodelan sistem berorientasi objek. Diagram kelas menunjukan hubungan antar kelas dalam sistem yang sedang dibangun dan bagaiman mereka saling berkolaborasi untuk mencapai tujuan. Pada aplikasi ini terdapat beberapa kelas yaitu: •
ConCamDialog : Kelas ini bertanggung jawab untuk melakukan koneksi dengan kamera.
•
FrameCapture : Kelas ini bertanggung jawab untuk mengakuisisi citra dari kamera, dan mengirimkan hasilnya kepada kelas WebcamWidget.
•
WebcamWidget : Kelas ini bertanggung jawab untuk menampilkan citra yang di tangkap dari kamera, menampilkan hasil pendeteksian wajah, dan hasil pengenalan wajah.
•
FaceDetector : Kelas ini bertanggung jawab untuk melakukan pendeteksian wajah, menyalin area wajah yang terdeteksi..
•
TrainerDialog : Kelas ini berfungsi untuk menyiapkan file trainer yang akan digunakan untuk proses pelatihan cita.
•
EigenfaceRecognizer : Kelas ini bertanggung jawab untuk menghitung eigenface, dan memproyeksikan citra yang digunakan pada proses pelatihan dan pengenalan wajah
•
RecognizeFromFile : Kelas ini bertanggung jawab untuk melakukan pengenalan dari citra wajah yang sudah disimpan sebelumnya.
•
Logger : Kelas ini bertanggung jawab mencatat aktivitas aplikasi.
44
Gambar 3.5 Diagram Kelas
45
3.2.3
Perancangan Antarmuka Pada bagian ini akan digambarkan rancangan antarmuka yang akan
digunakan oleh pengguna untuk berinterakasi dengan aplikasi. Perancangan antarmuka ini dibuat agar pengguna dapat dengan mudah mengerti cara menggunakan aplikasi
3.2.3.1 Perancangan Main Window Sesuai dengan namanya “Main Window” ini merupakan antarmuka utama yang digunakan pengguna untuk berinteraksi dengan aplikasi. Antarmuka ini terdiri beberapa komponen yaitu : •
Title bar. Digunakan untuk menampilkan nama dari aplikasi, minimize, maximize jendela dan menutup aplikasi.
•
Menu bar. Berisikan menu-menu yang digunakan untuk mengatur konfigurasi aplikasi, yang terdiri dari Main, Seting, Recognize, dan About.
•
Toolbar . Berisikan icon-icon yang digunakan untuk mengontrol aplikasi, yang terdiri icon Quit, Face Detection, Save Face Image, Train Image, Recognize Face.
•
WebcamWidget. Digunakan untuk menampilkan citra yang diakuisisi dari kamera, menampilkan hasil deteksi wajah, dan hasil pengenalan wajah.
•
Logger. Digunakan untuk menampilkan hasil aktifitas yang dilakukan aplikasi.
•
Status bar. Digunakan untuk menampilkan jenis aktifitas aplikasi.
46
X
QWajahku Main
Setting
Recognize
About
Titlebar Recognize
Menubar
Trainer
Toolbar
Save Image Face Detection Quit
Webcam Widget
Loger
Status Bar
Gambar 3.6 Rancangan antar muka Main Window
3.2.3.2 Perancangan Form Trainer Form trainer digunakan untuk mempersiapkan file trainer yang digunakan untuk melakukan pelatihan citra wajah. Gambar 3.7 menampilkan rancangan antar muka Form Trainer.
47
Gambar 3.7 Rancangan antar muka Form Trainer
3.2.3.3 Perancangan Form Recognize from file Form Recognize from file digunakan untuk melakukan pengujian pengenalan secara offline terhadap citra wajah yang sudah disimpan sebelumnya dengan database wajah yang telah dibuat. Rancangannya seperti yang ditampilkan oleh Gambar 3.8.
Gambar 3.8 Rancangan antarmuka form recognize from file
48
3.2.3.4 Perancangan Form About Form About digunakan untuk menampilkan informasi tentang aplikasi. Gambar 3.9 menampilkan rancangan form About. X
About
Logo
Informasi
Close
Gambar 3.8 Rancangan antamuka Form About