50
Tabel 4.2.1 - Tabel sample citra tanda tangan
Citra digital tanda tangan Training Set
Test Set Total
Citra Tanda Tangan Asli Original Signature
5 x 10 5 x 10
100 Citra Tanda Tangan Pemalsuan
Forgeries Signature -
10 x 10 100
TOTAL 200
4.2.2. Dasar Penggunaan Speeded Up Robust Fatures SURF
Berdasarkan analisis masalah pada bab sebelumnya, tanda tangan memiliki karakteristik yang konsistensi yang lemah. Tanda tangan cenderung
berubah terkait dengan banyak hal. Oleh karena itu diperlukan metode ekstraksi citra digital yang baik dan cepat. Penggunaan SURF dalam
penelitian ini dikarenakan hal berikut Bay, Ess, Tuytelaars, Gool, 2008 : 1.
Dapat mendeteksi fitur lebih cepat diklaim lebih cepat dari SIFT. 2.
Dapat mendeskripsikan fitur-fitur yang terdeteksi secara unik distinctive.
3. Memiliki ketahanan invariant terhadap transformasi citra seperti rotasi,
penskalaan, pencahayaan, dan perubahan sudut pandang yang kecil. 4.
Tahan terhadap gangguan noise dengan intensitas tertentu.
51
4.2.3. Dasar Penggunaan Fast Library for Approximate Nearest
Neighbors FLANN
Fast Library for Approximate Nearest Neighbors FLANN merupakan metode matching features yang disarankan penggunaannya untuk metode
SURF. Hal itu dikarenakan FLANN bersifat open source dan memiliki performa terbaik karena memiliki kecepatan dalam hal mengelompokan
dataset keypoint yang terdeteksi dan kecepatan dalam melakukan kalkulasi. Marius Muja, 2012
4.3. Fase Desain Aplikasi
Pada fase ini dilakukan proses mendeskripsikan dari kebutuhan aplikasi yang sudah dikumpulkan dari proses sebelumnya menjadi informasi yang berupa
diagram yang menjelaskan tentang aplikasi yang akan dibuat.
4.3.1. Desain Pengembangan
Desain pengembangan aplikasi ini menggunakan 2 jenis diagram, yaitu diagram usecase dan diagram alir flowchart. Diagram usecase dimaksudkan
untuk mendeskripsikan kebutuhan user dalam aplikasi dan diagram alir untuk menjelaskan kejadian yang terjadi pada aplikasi.
52
4.3.1.1. Usecase Diagram
Deskripsi
Aktor Deskripsi
User Orang yang menggunakan aplikasi.
Dapat mengakses keseluruhan fungsi aplikasi.
Usecase Deskripsi
Analisa tanda tangan User dapat membandingkan tanda tangan yang asli
sudah terinput ke dalam database aplikasi dengan tanda tangan yang yang dianalisa keasliannya.
Input tanda tangan User menginput tanda tangan yang sebelumnya akan
di lakukan proses training oleh aplikasi. Selanjutnya data tanda tangan akan di simpan dalam database.
Lihat data tanda tangan User dapat melihat data tanda tangan yang sudah
terinput dalam database aplikasi. Bagan 4.3-1 - Usecase Diagram
User analisa tanda tangan
input tanda tangan
lihat data tanda tangan ekstraksi image
comparing image
include
include
ekstraksi image
Tabel 4.3.1 - tabel deskripsi aktor
Tabel 4.3.2 - Tabel deskripsi usecase
53
4.3.1.2. Diagram Alir Aplikasi Flowchart
Dalam mendesain aplikasi ini terdapat 2 komponen proses utama yaitu proses input tanda tangan dan proses analisa tanda
tangan. Secara detail proses tersebut tergambarkan dalam diagram alir berikut.
Bagan 4.3-2 - Diagram Alir Proses Input Tanda Tangan
start
Input citra tanda tangan
Proses ekstraksi dan matching
Input citra tanda tangan latih
Input citra lagi? Database latih
citra ya
Write data
finish tidak
Proses penarikan kesimpulan
Keypoint, best keypoin matching,
min distance, max distance
Data kesimpulan latih tanda tangan
min distance, max distance
54
start
Data kesimpulan latih tanda tangan
Proses ekstraksi citra Input citra tanda
tangan uji
Data keypoint Database latih citra
Read data Pilih tanda tangan
write data
Proses matching
Data hasil matching
finish
Bagan 4.3-3 - Diagram Alir Proses Analisa Tanda Tangan
Secara detail tentang proses ekstraksi citra dan proses matching akan dijelaskan pada sub-bab berikutnya.
55
4.3.2. Desain Antarmuka Aplikasi
Aplikasi pengenalan pola tanda tangan ini dibangun pada SBC Beaglebone Black dengan rencana menggunkan display berukuran 720 x 480
pixel .
Ukuran display tersebut diambil dengan alasan karena hardware yang tersedia di pasaran untuk SBC Beaglebone Black tersedia dalam ukuran
tersebut. Selain itu, Aplikasi ini dalam jangka panjang diharapkan dapat dikembangkan menjadi aplikasi mobile untuk verifikasi tanda tangan.
Dalam aplikasi ini terdapat tiga menu utama yaitu menu uji tanda tangan, input tanda tangan dan lihat data tangan tangan.
4.3.2.1. Mockup Aplikasi
Aplikasi tersusun dari 3 halaman, yaitu halaman uji tanda tangan, halaman input tanda tangan dan halaman lihat tanda tangan.
Berikut adalah mockup dari user interface yang akan dugunakan untuk aplikasi pengenalan pola tanda tangan ini.
1. Halaman Uji Tanda Tangan
Gambar 4.3.1 - mockup halamana uji tanda tangan
56
2. Halaman Input Tanda Tangan
3. Halaman Lihat Tanda Tangan
Gambar 4.3.2 - mockup halaman input tanda tangan
Gambar 4.3.3 - mockup halaman lihat tanda tangan
57
4.4. Fase Konstruksi Coding
4.4.1. Persiapan Alat
4.4.1.1. Instalasi OS untuk Beaglebone Black
Beaglebone Black di dukung oleh banyak sistem operasi dari varian linux. Beagleboard.org di bawah naungan Texas Instrument
dalam website resminya menuliskan setidaknya terdapat 4 dukungan sistem operasi untuk beaglebone black yaitu angstrom, ubuntu,
debian, dan android. Pada penelitian ini, peneliti menggunakan Ubuntu 14.04
sebagai sistem operasi. Penggunaan Ubuntu 14.04 dikarenakan dukungan kompatibilitas perangkat lunak pendukung dan performa
yang stabil. Terdapat 2 cara nstalasi sistem operasi beaglebone yaitu
dengan flashing sistem operasi ke eMMC atau flashing sistem operasi ke mikrosd.
Berikut penulis paparkan cara instalasi OS Beaglebone :
Basic Operation
Siapkan file sistem operasi yang akan diinstal ke dalam beaglebone. File sistem operasi berekstensi image
.img.
58 Siapkan mikrosd, write file sistem operasi ke dalam
mikrosd dengan menggunakan software image writer. gunakan Win32 Disk Imager untuk windows
1. Flashing eMMC
Tahapan ini mengasumsikan bahwa mikrosd sudah terisikan oleh file image sistem operasi yang akan di instal.
Masukan mikrosd ke dalam mikrosd pada beaglebone black dengan kondisi mati.
Hidupkan beaglebone black dengan menghubungkan ke sumber listrik, bersamaan dengan menekan tombol
“boot” sampai semua USER LEDs hidup beberapa detik. Biarkan selama proses instalasi sistem operasi sedang
berlangsung. Selesainya proses instalasi ditandai dengan hidupnya
seluruh USER LEDs pada beaglebone black. Lepas sumber listrik dari beaglebone black dan
keluarkan mikrosd. Kemudian hidupkan kembali beaglebone black.
Beaglebone black sudah terinstal sistem operasi.
2. Flashing mikrosd
Tahapan ini mengasumsikan bahwa mikrosd sudah terisikan oleh file image sistem operasi yang akan di instal.
59 Flashing sistem operasi ke mikrosd berarti beaglebone black
akan melakukan booting dari mikrosd setiap saat dihidupkan. Masukan mikrosd ke dalam mikrosd pada beaglebone
black dengan kondisi mati. Hidupkan beaglebone black dengan menghubungkan ke
sumber listrik, bersamaan dengan menekan tombol “boot” sampai semua USER LEDs hidup beberapa detik.
Beaglebone black sudah menjalankan sistem operasi dari mikrosd.
4.4.1.2. Instalasi Qt
Framework Qt yang digunakan dalam pembangunan aplikasi ini adalah Qt versi 5.2.1. Berikut cara instalasi Qt SDK dan Qt
Creator.
Instalasi Qt SDK
Instal semua dependensi untuk menginstal Qt SDK sudo apt-get install libx11-dev libxau-dev libxaw7-dev libxcb1-
dev libxcomposite-dev libxcursor-dev libxdamage-dev libxdmcp- dev libxext-dev libxfixes-dev libxfont-dev libxft-dev libxi-dev
libxinerama-dev libxkbfile-dev libxmu-dev libxmuu-dev libxpm- dev libxrandr-dev libxrender-dev libxres-dev libxss-dev libxt-dev
libxtst-dev libxv-dev libxvmc-dev
60 sudo apt-get install libglib2.0-dev libssl-dev libgtk2.0-dev
libcups2-dev libgl1-mesa-dev
libglu1-mesa-dev libgstreamer0.10-dev libgstreamer-plugins-base0.10-dev
Download SDK Qt yang akan di instal wget
http:download.qt-project.orgofficial_releasesqt Ekstrak paket yang di sudah download.
tar -xzf qt-everywhere-opensource-src-5.2.1.tar.gz Masuk ke direktori Qt SDK, dan run file configure untuk
mengkonfigurasi Qt yang akan di instal. Proses ini memakan waktu yang cukup lama.
cd qt-everywhere-opensource-src-5.2.1.tar.gz ..configure -prefix optqt-5.2.1 -confirm-license -opensource
-release -system-sqlite -plugin-sql-sqlite -plugin-sql-psql - plugin-sql-mysql -nomake demos -nomake examples -nomake
tools -nomake docs -nomake translations -optimized-qmake Lakukan proses compile dengan perintah :
make Lakukan proses instalasi dengan perintah :
make instal Tambah direktori Qt yang sudah terinstal ke dalam PATH linux
export QT_PLUGIN_PATH=QT_PLUGIN_PATH:optqt- 5.2.1plugins
61
Installasi Qt Creator Download dan ekstrak Qt Creator.
Seting mode agar user dapat melukan instalasi. chmod +x nama_file.run
Jalankan dengan perintah : .nama_file.run
4.4.1.3. Instalasi Opencv
Pustaka Library pengolahan citra digital yang digunakan adalah opencv versi 2.4.9. Berikut tahapan instalasinya :
Instal semua dependensi untuk menginstal opencv. sudo apt-get install build-essential libgtk2.0-dev libjpeg-dev
libtiff4-dev libjasper-dev libopenexr-dev cmake python-dev python-numpy python-tk libtbb-dev libeigen3-dev yasm libfaac-
dev libopencore-amrnb-dev libopencore-amrwb-dev libtheora- dev libvorbis-dev libxvidcore-dev libx264-dev libqt4-dev libqt4-
opengl-dev sphinx-common
texlive-latex-extra libv4l-dev
libdc1394-22-dev libavcodec-dev libavformat-dev libswscale- dev default-jdk ant libvtk5-qt4-de
Download kode sumber opencv, lakukan ekstraksi dan buka direktori.
cd ~
62 wget http:sourceforge.netprojectsopencvlibraryfiles
opencv -unix 2.4.9opencv-2.4.9.zip unzip opencv-2.4.9.zip
cd opencv-2.4.9 Buat direktori untuk proses build opencv dengan perintah :
mkdir build cd build
Lakukan proses compile dan instal opencv cmake -D WITH_TBB = ON -D BUILD_NEW_ PYTHON_
SUPPORT=ON -D
WITH_V4L=ON -D
INSTALL_C_ EXAMPLES=ON -D INSTALL_PYTHON_EXAMPLES = ON -
D BUILD_EXAMPLES = ON -D WITH_QT = ON .. make
make instal Lakukan konfigurasi pada opencv, buat file opencv.conf dengan
cara : sudo gedit etcld.so.conf.dopencv.conf
Isi file opencv.conf dengan usrlocaljib Jalankan ldconfig untuk mengkonfigurasi library yang ada.
sudo ldconfig Tambahkan direktori oepncv yang sudah terinstal ke dalam
PATH linux. sudo gedit etcbash.bashrc
63 Tambahkan kode berikut dalam file bash.bashrc
PKG_CONFIG_PATH = PKG_CONFIG_PATH:usrlocallib pkgconfig
export PKG_CONFIG_PATH
Opencv sudah terinstal.
4.4.2. Proses Akuisisi Data
Sebanyak 200 citra tanda tangan yang dikumpulkan dilakukan proses scanning untuk mendapatkan citra digital. Scanning dilakukan dengan
scanner canon tipe lide 25 dengan resolusi sebesar 300 dpi. Selanjutkan citra digital dilakukan penyamaan ukuran sebesar 250 x 150 pixel.
Dilakukan juga pra-processing pada citra tanda tangan berupa penghilangan warna latar belakang. Proses tersebut dilakukan agar proses
pencarian fitur di proses selanjutnya menghasilkan fitur yang detail.
4.4.3. Proses Ekstraksi Fitur Feature Detection
4.4.3.1. Ruang Skala Scale Space
Salah satu yang menjadi kekurangan pada tanda tangan adalah dalam hal uniqless, karena terkadang tanda anggan seseorang
berbeda ukuran skala. Pembuatan ruang skala dimaksudkan agar citra tanda tangan invariant terhadap penskalaan.
Pembuatan ruang skala pada citra tanda tangan dimulai dengan melakukan perbandingan terhadap skala citra tanda tangan. Proses
64 ini dinamakan image piramid. Citra tanda tangan diperhalus
smoothing dengan fungsi gaussian dan secara beruntun dengan cara sub-sampling untuk mencapai puncak tertinggi piramida.
Ruang skala dibagi ke dalam beberapa level, satu level mempresentasikan respons filter yang melakukan konvolusi citra
masukan dengan filter yang ukurannya bertambah tinggi. Secara matematika ruang skala 1 didefinisikan sebagai fungsi
� , , � yang dihasilkan dari konvolusi antaran variabel-scale Gaussian 2,
, , � dengan gambar input , .
� , , � = , , � ∗
, ........................................ 1
, , � =
��
∗
−
+ �
.................................................. 2
65
Bagan 4.4-1 - Bagan Proces Scale Space
66
4.4.3.2. Penempatan Lokasi Keypoint
Metode SURF menggunakan metode Hessian-Affine region detector untuk menentukan lokasi keypoint. Tahapan selanjutnya
adalah penentuan nilai ambang Hessian Hessian treshold untuk menentukan lokasi keypoint. Nilai ambang tentukan dengan
pertimbangan dari besar kontras pada gambar, keypoint didapatkan apa bila nilai kontras gambar lebih besar dari nilai ambang yang
ditentukan. Jadi semakin besar nilai ambang yang ditentukan semakin sedikit keypoint yang ditemukan. Pada aplikasi ini nilai
ambang hessian yang dipakai adalah 400. Penggunaan nilai hesssian tersebut dikarenakan input gambar yang digunakan merupakan input
citra tanda tangan dengan warna latar putih, hal ini membuat kontras dari citra sudah cukup baik untuk menentukan keypoint.
Setelah menentukan nilai hessian maka selanjutnya adalah menentukan calon keypoint. Menentukan calon keypoint ini
menggunakan proses non maxima suppression. Proses ini dilakukan
Gambar 4.4.1 - Penerapan scale space pada citra tanda tangan
67 dengan membandingkan setiap pixel citra pada scale space dengan
26-Neighbors, yang terdiri atas 8 titik di scale asli dan 9 di setiap scale atas dan bawahnya total keseluruhan 9+8+9=26-Neighbors.
Hasil dari non-maxima suppression adalah keypoint yang dihasilkan citra.
Berikut diagram yang menjelaskan pencarian keypoint citra tanda tangan:
Gambar 4.4.2 - Keypoint pada citra tanda tangan
68
start
Hessian = 400 Vector Image
FM,N
Contras FMx,Nx Hessian
no yes
M
x+1
, N
x+1
finish Pencarian Contras
Non maximum suppression
yes Contras
FMx,Nx
Keypoitnt, Kx= fMx, Nx
n++ For n=1
to jumlah
calon keypoint
recursive n++
no
For x=1 to
jumlah vector
image FM,N
Bagan 4.4-2 - Diagram alir pencarian keypoint
69
4.4.4. Proses Pencocokan Fitur Feature Matching
Metode yang digunakan untuk mencocokan fitur dari dua citra tanda tangan yang berbeda pada aplikasi ini menggunakan metode Fast Library for
Approximate Nearest Neighbors FLANN. Algoritma ini sudah berupa fungsi dalam library OpenCV. Fungsi FLANN terdiri dari fungsi index yang
membentuk kd-tree pencarian dari dataset berupa keypoint yang sudah didapatkan, fungsi kknSearch untuk melakukan pencarian nearest neighbors
K-dimensi, dan fungsi radiusSearch untuk melakukan indeks pencarian. Dalam hal ini, fungsi yang digunakan adalah fungsi index dan kknSearch.
Fungsi index membutuhkan inputan berupa matriks yang berisi fitur- fitur dari citra referensi dan parameter pembentuk kd-tree jumlah jumlah kd-
tree yang ingin dibentuk. Sedangkan fungsi knnSearch membutuhkan inputan berupa fitur-fitur dari citra uji, jumlah titik nearest neighbors, dan
parameter pencarian berupa jumlah maksimum leaf yang diperiksa dalam pencarian.
Proses yang terjadi pada pencocokan fitur ini adalah pembentukan matriks yang berisi fitur dari citra referensi dan citra uji. Selanjutnya
pembentukan kd-tree yang berasal dari fitur citra referensi dengan ketentuan beberapa kd-tree acak. Kemudian dimulai pencarian nearest neighbor
terhadap fitur dari citra uji.
70
Pencocokan fitur
Inisiasi matriks deskriptor
Baca dan salin
deskriptor
Bentuk kd-tree
Pencarian nearest
neighbor
finish Pencarian nearest
neighbors
For i=1 to
jumlah fitur
Baca jarak fitur i ke tetangga terdekat
Perbandingan jarak 0.36
Simpan ke daftar fitur
cocok
finish yes
recursive no
i++ i++
Bagan 4.4-3 - Diagran alir pencocokan fitur
Bentuk keluaran dari pencocokan fitur ini adalah indeks fitur yang merupakan tetangga terdekat dan jarak antar fitur. Fitur tersebut dikatakan
cocok apabila perbandingan jarak euclidean sebesar 0.36.
Gambar 4.4.3 - Hasil pencocokan fitur
71
4.5. Hasil Rancang Bangun Aplikasi
Aplikasi pengenalan pola tanda tangan ini berhasil dibangun pada Single Board Computer Beaglebone Black dengan framework QT C++ dan pustaka
pemprosesan citra digital opencv. Berikut screenshoot aplikasi pengenalan pola tanda tangan single board computer beaglebone black :
Gambar 4.5.1 - Tampilan aplikasi : menu analisa tanda tangan
72
Gambar 4.5.2 - Tampilan aplikasi : menu input tanda tangan Gambar 4.5.3 - Tampilan aplikasi : menu lihat tanda tangan
73
4.6. Fase Pengujian Aplikasi
Aplikasi berjalan dengan baik pada SBC Beaglebone Black. Seluruh fungsi dapat bekerja dengan baik dan user interface menampilkan output yang sesuai.
Berikut pengujian black box yang dilakukan oleh penulis :
Tabel 4.6.1 - tabel pengujian blackbox
No Rancangan
Proses Fungsi
Hasil
1 Halaman
Analisa Tanda
tangan Load tanda tanda dalam database
Mencari file citra tanda tangan Menampilkan citra tanda tangan
Proses analisa Menampilkan citra berdasarkan kemiripan
tanda tangan Menampilkan hasil analisa ke dalam kolom
hasil Menampilkan persentase kemiripan citra
tanda tangan dan kesimpulan analisa Ok
2 Halaman Input
Tanda tangan Mencari file citra tanda tangan
Menampilkan citra tanda tangan Proses ekstrasi
Menampilkan citra berdasarkan kemiripan
tanda tangan Menampilkan hasil input ke dalam kolom hasil
Rekursif input citra tanda tangan Menyimpan hasil analisa ke database
Membersihkan kolom tanda tangan Ok
3 Halaman Lihat
Tanda tangan Load tanda tangan dari database
Menampilkan citra tanda tangan Menampilkan citra tanda tangan beserta
keypoint yang terdeteksi Menampilkan data citra tanda tangan dari
database Ok
74
4.7. Pengujian Keakuratan Aplikasi
Pengujian dilakukan untuk mengetahui keakuratan dari aplikasi dalam mengenali pola citra tanda tangan. Pengujian dilakukan dengan 200 citra tanda
tangan dari 10 orang, secara detail dijelaskan dalam tabel berikut :
Tabel 4.7.1 - tabel sampel citra tanda tangan
Citra digital tanda tangan Training
Set Test Set
Total
Citra Tanda Tangan Asli Original Signature
5 x 10 5 x 10
100 Citra Tanda Tangan Pemalsuan
Forgeries Signature -
10 x 10 100
TOTAL 200
Pengujian dilakukan untuk mendapatkan nilai False Rejection Rate FRR 1 dan False Acceptance Rate FAR 2. False Rejection Rate FRR dimaksudkan
untuk mengetahui tingkat kegagalan aplikasi dalam mengenali citra tanda tangan asli, sedangkan False Acceptance Rate FAR untuk mengetahui tingkat kegagalan
aplikasi dalam menolak tanda tangan palsu. �� =
� ℎ �
� � � �
ℎ � �
× ............................................... 1
�� =
� ℎ �
� �
� ℎ �
�
× ............................................. 2
Hasil yang didapatkan pada proses ini digambarkan pada tabel berikut :
75
Tabel 4.7.2 - Tabel hasil pengujian