• Tidak ada hasil yang ditemukan

SISTEM KEAMANAN AKSES PINTU MASUK MENGGUNAKAN FACE RECOGNITION BERBASIS RASPBERRY PI 3

N/A
N/A
Protected

Academic year: 2022

Membagikan "SISTEM KEAMANAN AKSES PINTU MASUK MENGGUNAKAN FACE RECOGNITION BERBASIS RASPBERRY PI 3"

Copied!
100
0
0

Teks penuh

(1)

SISTEM KEAMANAN AKSES PINTU MASUK MENGGUNAKAN FACE RECOGNITION BERBASIS RASPBERRY PI 3

TUGAS AKHIR

Disusun dalam Rangka Memenuhi Salah Satu Persyaratan Untuk Menyelesaikan Program Strata Satu Departemen Elektro Fakultas Teknik

Universitas Hasanuddin Makassar

Oleh :

FADEL MUHAMMAD D411 14 307

DEPARTEMEN TEKNIK ELEKTRO FAKULTAS TEKNIK

UNIVERSITAS HASANUDDIN MAKASSAR

2018

(2)

ii

(3)

iii ABSTRAK

Teknologi biometrik untuk keamanan yang berkembang saat ini seperti pengenalan sidik jari, pengenalan retina mata, dan sebagainya mengharuskan seseorang memposisikan tubuh mereka pada posisi tertentu yang sesuai dengan posisi sensor ataupun kamera yang membuat teknologi ini terkesan kaku. Untuk itu diperlukan sebuah sistem identifikasi yang lebih fleksibel dan bersifat otomatis yang dapat mencegah pencurian dan juga dapat memberikan peringatan langsung kepemilik rumah. Pada sistem ini dirancang sebuah sistem keamanan untuk akses pintu masuk yang menggunakan face recognition berbasis Raspberry Pi. Raspberry Pi adalah sebuah komputer berpapan tunggal yang mampu melakukan tugas-tugas layaknya komputer, bahkan mampu melakukan pengolahan citra dengan respon yang cepat.

Untuk face recognition menggunakan metode SURF (Speeded-Up Robust Features) dimana akan dicari sebuah titik penting dari citra sample dan citra database, kemudian akan dilakukan pencocokan citra. Untuk pemberitahuan kepada pemilik digunakan aplikasi Telegram yang mengirim data citra dan pesan. Serta digunakan relay sebagai aktuator. Dengan pencocokan wajah pada Raspberry Pi dengan menggunakan metode SURF mendapatkan keakuratan sebesar 91,4%

dengan waktu proses alat keseluruhan sebesar 3.813 detik untuk pengendalian relay dan proses alat sampai mengirimkan data citra dan teks ke Telegram rata-rata 4.641 detik. Serta untuk pengendalian relay melalui Telegram memiliki delay sebesar 0.85 detik.

Kata kunci: Face Recognition, Raspberry Pi, SURF, Telegram, Relay

(4)

iv KATA PENGANTAR

Bismillahirrahmanirrahim. Puji dan syukur penulis panjatkan ke hadirat Allah subhanu wata’ala atas limpahan rahmat dan hidayah-Nya sehingga skripsi ini dapat terselesaikan. Shalawat dan salam selalu tercurahkan kepada junjungan kita Rasulullah sallallahu ‘alaihi wasallam. Penyelesaian skripsi ini merupakan upaya penulis dalam memenuhi salah satu syarat guna memeroleh gelar Sarjana Teknik di Departemen Teknik Elektro Fakultas Teknik Universitas Hasanuddin.

Penulis persembahkan skripsi sederhana ini agar menjadi sebuah kebanggaan bagi kedua orang tua. Kedua orang tua peneliti yang dengan setulus hati, keikhlasan jiwa, butiran doa dan keringat jerih payahnya dalam membesarkan dan mendidik ananda. Semoga kalian berdua selalu diberi umur panjang dan senantiasa dikaruniai kesehatan.

Skripsi ini berjudul Sistem Keamanan Akses Pintu Masuk Menggunakan Face Recognition Berbasis Raspberry Pi 3. Penulis menyadari bahwa dalam penyusunan skripsi ini mengalami berbagai kesulitan. Namun, berkat ketekunan dan usaha yang disertai doa, penulisan skripsi ini akhirnya dapat terselesaikan.

Penyusunan skripsi ini juga tidak terlepas dari bantuan, dorongan, semangat, serta bimbingan dari berbagai pihak. Sehebungan dengan hal tersebut, penulis sewajarnya menyampaikan terima kasih kepada:

1. Orang tua dan saudara-saudara kami tercinta, serta seluruh keluarga atas segala doa, bantuan, nasehat, dan motivasinya.

2. Bapak Prof. Dr. Ir. H. Salama Manjang, M.T., selaku Ketua Departemen Teknik Elektro Fakultas Teknik Universitas Hasanuddin.

(5)

v 3. Bapak Dr. Ir. Zahir Zainuddin, M.Sc. selaku pembimbing I dan Ibu Dr. Ir. Ingrid Nurtanio, M.T. selaku Pembimbing II, terima kasih telah meluangkan waktu dan memberikan bimbingan, gagasan, serta ide-ide dalam penyelesaian skripsi ini.

4. Seluruh dosen dan staf pengajar, serta pegawai Departemen Teknik Elektro atas segala ilmu, bantuan, dan kemudahan yang diberikan selama kami menempuh proses perkuliahan.

5. Seluruh kanda-kanda yang ada di Laboratorium Computer Based System yang telah bersedia memberikan saran, masukan, dan bantuan dalam menyelesaikan skripsi kami.

6. Kepada Rekan-Rekan “Rectifier 2014” Departemen Teknik Elektro angkatan 2014 yang sejak pertama menginjakkan kaki di Universitas Hasanuddin hingga saat ini berjuang bersama penulis untuk menuntut ilmu di kampus merah tercinta.

7. Kepada teman seperjuangan para pengejar ST periode bulan September, yang membantu dalam menyiapkan berkas serta membantu menyiapkan tempat ujian kami.

8. Kepada Laila Arliana yang selalu memberikan semangat untuk menyelesaikan tugas akhir ini.

9. Seluruh pihak yang tidak dapat kami sebutkan satu-persatu yang telah membantu dan mendukung kami dalam menyelesaikan tugas akhir ini.

Penulis menyadari bahwa masih banyak kekurangan yang terdapat dalam skripsi ini, oleh karena itu saran dan kritik dari semua pihak diharapkan untuk

(6)

vi kesempurnaan skripsi ini. Penulis berharap semoga skripsi ini dapat diterima sebagai sumbangan pikiran peneliti yang mendatangkan manfaat baik bagi penulis maupun pembacanya.

Akhir kata semoga skripsi ini dapat bermanfaat bagi penulis sendiri, institusi pendidikan dan masyarakat luas.

Makassar, Agustus 2018

Fadel Muhammad

(7)

vii DAFTAR ISI

LEMBAR PENGESAHAN ... Error! Bookmark not defined.

ABSTRAK ... ii

KATA PENGANTAR ... iv

DAFTAR ISI ... vii

DAFTAR GAMBAR ... x

DAFTAR TABEL ... xii

BAB I PENDAHULUAN ... 1

1.1. Latar Belakang... 1

1.2. Rumusan Masalah ... 2

1.3. Tujuan Penelitian ... 3

1.4. Batasan Masalah ... 3

1.5. Metode Penelitian ... 4

1.6. Sistematika Penulisan ... 5

BAB II LANDASAN TEORI ... 7

2.1. Raspberry PI ... 7

2.1.1. Raspberry Pi 3 ... 7

2.1.2. GPIO Raspberry Pi 3... 8

2.1.3. Sistem Operasi Raspberry Pi ... 10

2.2. Bahasa Pemrograman Python ... 10

2.3. WebCam ... 11

2.4. Push Button ... 12

2.5. Relay ... 14

(8)

viii

2.6. Solenoid Door Lock ... 14

2.7. Buzzer ... 15

2.8. OpenCV ... 16

2.9. Pengolahan Citra ... 17

2.10. Algortima Viola-Jones... 19

2.11. Algoritma SURF (Speeded-Up Robust Features) ... 20

2.11.1.Pendeteksian Fitur ... 21

2.11.2.Pendeskrispian Titik Fitur ... 24

2.11.3.Pencocokan Fitur... 26

2.12. Metode FLANN (Fast Library Approximated Nearest Neighbor) 26 2.13. Internet ... 27

2.14. Telegram ... 27

BAB III PERANCANGAN SISTEM ... 28

3.1. Rancangan Umum ... 28

3.2. Perancangan Perangkat Keras ... 30

3.2.1. Miniatur Pintu ... 30

3.2.2. Perancangan Sistem Elektronik ... 31

3.3. Perancangan Perangkat Lunak ... 35

3.3.1. WebCam... 37

3.3.2. Kontrol Relay dan Buzzer ... 38

3.3.3. Pengenalan Wajah ... 38

3.3.4. Rancangan Telegram ... 45

(9)

ix

BAB IV PENGUJIAN DAN ANALISA ... 49

4.1.Pengujian Akurasi Pencocokan Wajah ... 49

4.1.1. Pengujian Citra Sesuai Database ... 50

4.1.2. Pengujian Citra Tidak Sesuai Database ... 53

4.2. Pengujian Dan Analisis Waktu Delay Pengendalian Relay ... 56

4.3. Pengujian Kerja Alat Secara Keseluruhan ... 57

4.4. Pengujian Delay Pengiriman Data Ke Telegram... 59

BAB V PENUTUP ... 61

5.1. Kesimpulan ... 62

5.2. Saran ... 63 DAFTAR PUSTAKA

LAMPIRAN

(10)

x DAFTAR GAMBAR

Gambar 2.1 Logo Raspberry Pi ... 7

Gambar 2.2 Bagian-bagian Raspberry Pi 3 ... 8

Gambar 2.3 PIN GPIO Raspberry pi 3 Model B ... 9

Gambar 2.4 Blok 40 PIN GPIO Raspberry Pi 3 Model B ... 10

Gambar 2.5 Webcam Logitech ... 12

Gambar 2.6 Contoh push button ... 12

Gambar 2.7 Modul Relay 1 Channel ... 14

Gambar 2.8 Rangkaian dalam solenoid door lock ... 15

Gambar 2.9 Buzzer... 16

Gambar 2.10 Citra 200x80 di-skala 1:5 dan 1:8 ... 18

Gambar 2.11 Struktur piramida ... 21

Gambar 2.12 Laplacian of Gaussian didiskritisasi menjadi kotak filter ... 22

Gambar 2.13 Penskalaan citra pada algoritma SURF ... 23

Gambar 2.14 Hubungan antara skala dan oktaf pada ukuran kernel... 23

Gambar 2.15 Delay Haar Wavelet ... 24

Gambar 2.16 Wavelet dalam arah horizontal dan vertikal ... 25

Gambar 2.17 Mencari delay wavelet di area 20s yang dibagi ke dalam 4 x 4 sub- area ... 25

Gambar 2.18 Contoh keypoint matching ... 27

Gambar 3.1 Blok diagram sistem ... 29

Gambar 3.2 Miniatur tampak depan... 30

Gambar 3.3 Miniatur tampak belakang ... 31

(11)

xi

Gambar 3.4 Skematik Sistem Elektronik ... 32

Gambar 3.5 Flowchart Sistem ... 35

Gambar 3.6 Flowchart pengenalan wajah ... 39

Gambar 3.7 Hasil deteksi wajah... 40

Gambar 3.8 Gambar hasil pendeteksian fitur ... 42

Gambar 3.9 Hasil proses FLANN ... 45

Gambar 3.10 Pembuatan Telegram Bot ... 46

Gambar 4.1 Hasil Pengujian Citra Sesuai Database ... 50

Gambar 4.2 Hasil Pencocokan Citra Tidak Sesuai Database ... 53

Gambar 4.3 Proses Pengujian Delay Relay Dengan Telegram ... 56

Gambar 4.4 Citra dan teks pada Telegram ... 60

(12)

xii DAFTAR TABEL

Tabel 2.1 Modul dalam OpenCV ... 16

Tabel 4.1 Hasil pengujian citra sesuai database ... 51

Tabel 4.2 Hasil pengujian citra tidak sesuai database ... 54

Tabel 4.3 Hasil pengujian delay Relay dengan Telegram... 57

Tabel 4.4 Hasil pengujian kerja alat sampai pengendalian relay ... 58

Tabel 4.5 Hasil pengujian delay pengiriman data ke Telegram ... 60

(13)

1 BAB I

PENDAHULUAN

1.1. Latar Belakang

Teknologi komputer pada saat ini berkembang dengan sangat pesatnya dan merupakan salah satu bidang yang mempunyai peran yang sangat penting dibeberapa aspek kehidupan manusia, termasuk pada bidang security. Saat ini telah banyak dikembangkan sebuah sistem pengamanan akses masuk ke sebuah rumah atau ruangan dengan beberapa verifikasi identitas dengan sistem komputer, baik dengan menggunakan kunci, kartu, password, dan sebagainya. Namun metode ini masih memiliki kekurangan seperti keterbatasan manusia dalam mengingat benda dan kombinasi angka yang menyebabkan tidak dapatnya diakses pintu tersebut.

Oleh sebab itu teknik untuk identifikasi ataupun verifikasi yang handal dan akurat dapat dirancang menggunakan teknologi biometrik yang memanfaatkan karakteristik khusus dari individu manusia tersebut.

Penggunaan teknologi ini sangat cocok untuk diimplementasikan pada sistem identifikasi yang membutuhkan keamanan yang tinggi. Teknologi biometrik untuk keamanan yang berkembang saat ini seperti pengenalan sidik jari, pengenalan retina mata, pengenalan iris mata, dan sebagainya mengharuskan seseorang memposisikan tubuh mereka pada posisi tertentu yang sesuai dengan posisi sensor ataupun kamera yang membuat teknologi ini terkesan kaku. Teknologinya mengharuskan orang tersebut untuk tidak bergerak dalam beberapa waktu tertentu selama proses identifikasi untuk membuat sistem pembacaannya akurat. [1]

(14)

2 Untuk itu diperlukan sebuah sistem identifikasi yang lebih fleksibel dan bersifat otomatis yang dapat mencegah pencurian dan juga dapat memberikan peringatan langsung ke pemilik rumah. Dengan sistem yang seperti ini akan sangat mudah untuk mencegah terjadinya pencurian dan dapat memudahkan pemilik rumah untuk mengidentifikasi pelaku apabila telah terjadi pencurian.

Oleh karena itu tugas akhir ini akan membuat prototipe keamanan akses pintu menggunakan face recognition berbasis Raspberry Pi dengan menggunakan algoritma Speeded-Up Robust Feature (SURF) untuk mencari titik pada wajah yang nantinya akan dilakukan pencocokan antara sample dan database. Pada prototipe ini Raspberry Pi 3 sebagai pengontrol utama. USB Webcam sebagai pendeteksi dan pengambil gambar. Aplikasi telegram sebagai pemberitahuan kepemilik dan sebagai pengatur sistem. Internet sebagai media penghubung komunikasi. Push button sebagai pembuka sistem secara manual. Serta menggunakan Solenoid Lock Door sebagai actuator.

Dengan adanya prototipe ini nantinya dapat dikembangkan menjadi alat yang lebih baik dan dapat digunakan oleh masyarakat umum dimasa yang akan datang.

1.2. Rumusan Masalah

Berdasarkan uraian di atas, maka dapat dirumuskan masalah yang melatar belakangi tugas akhir ini yaitu:

a. Bagaimana membuat suatu prototipe keamanan pintu yang dapat memberikan alarm untuk mencegah terjadinya pencurian rumah dan dapat mengirimkan pemberitahuan melalui aplikasi telegram ke pemilik rumah?

(15)

3 b. Bagaimana sistem dapat mengenali wajah menggunakan algoritma

Speeded-Up Robust Feature (SURF)?

c. Bagaimana delay actuator dan aplikasi telegram terhadap sistem ketika bekerja?

1.3. Tujuan Penelitian

Tujuan penelitian tugas akhir ini adalah sebagai berikut:

a. Menghasilkan sebuah prototipe sistem yang dapat memberikan alarm untuk mencegah terjadinya pencurian rumah dan dapat mengirimkan pemberitahuan melalui aplikasi telegram ke pemilik rumah.

b. Merancang dan menganalisis sistem pengenalan wajah dengan algoritma Speeded-Up Robust Feature (SURF).

c. Mengetahui seberapa cepat delay actuator dan aplikasi telegram terhadap sistem ketika bekerja.

1.4. Batasan Masalah

Dalam tugas akhir ini sistem yang akan dibuat, dibatasi pada hal-hal sebagai berikut:

a. Membuat prototipe dengan gambaran pada pintu masuk.

b. Menggunakan Raspberry Pi 3 sebagai pusat kendali.

c. Menggunakan bahasa pemrograman Phyton.

d. Mengenali wajah hanya tampak dari depan.

e. Menggunakan resolusi citra wajah yang berbeda.

f. Menggunakan lampu tiga watt sebagai pencahayaan.

(16)

4 1.5. Metode Penelitian

Adapun metode penelitian yang digunakan dalam tugas akhir ini adalah sebagai berikut :

1. Studi Literatur

Studi literatur dilakukan dengan cara pencarian dan pengumpulan literatur-literatur yang berkaitan dengan masalah-masalah yang ada pada tugas akhir ini, baik berupa artikel, buku refrensi, jurnal-jurnal, internet, dan sumber-sumber yang dapat menunjang penelitian.

2. Diskusi dan Konsultasi.

Melakukan asistensi secara langsung kepada dosen pembimbing dan pihak-pihak yang berkompoten pada bidang ini.

3. Perancangan Alat.

Meliputi perancangan hardware (perangkat keras) dan perancangan software (perangkat lunak) dari sistem ini serta pembuatan database untuk beberapa contoh wajah.

4. Pembuatan Alat

Melakukan pembuatan perangkat keras dan membuat perangkat lunak sehingga siap untuk dilakukan uji coba.

5. Pengujian Alat

Meliputi pengujian terhadap alat dengan menghasilkan data-data dengan beberapa parameter yang diterapkan untuk selanjutnya akan dianalisa

(17)

5 6. Analisa Hasil dan Simpulan

Melakukan Analisa terhadap seluruh data yang telah diperoleh kemudian membandingkan dengan beberapa sistem keamanan yang telah ada sehingga dapat diperoleh sebuah kesimpulan dari hasil tersebut.

1.6. Sistematika Penulisan

Sistematika penulisan yang digunakan dalam penulisan Tugas Akhir ini adalah sebagai berikut:

BAB I PENDAHULUAN

Pada bab ini berisikan mengenai latar belakang, rumusan masalah, tujuan penulisan, batasan masalah, metode penelitian, dan sistematika penulisan.

BAB II LANDASAN TEORI

Pada bab ini dijelaskan tentang berbagai teori-teori yang berkaitan dengan Tugas Akhir ini.

BAB III PERANCANGAN SISTEM

Pada bab ini menjelaskan tentang perancangan perangkat keras maupun perangkat lunak yang digunakan dalam Tugas Akhir ini.

BAB IV HASIL DAN ANALISA

Pada bab ini berisi hasil perancangan dan penjelasan baik hardware dan software yang digunakan, dan analisa mengenai data-data yang diambil

(18)

6 BAB V PENUTUP

Pada bab ini berisi tentang kesimpulan dari pembahasan hasil analisa yang dilakukan dan saran perbaikan untuk menyempurnakan tugas akhir ini.

(19)

7 BAB II

LANDASAN TEORI

2.1. Raspberry PI

Raspberry Pi adalah sebuah komputer papan tunggal (single-board computer) atau SBC berukuran kartu kredit. Raspberry Pi telah dilengkapi dengan semua fungsi sebuah komputer lengkap, menggunakan SoC (System-on-a-chip) ARM yang dikemas dan diintegrasikan diatas PCB. Perangkat ini menggunakan kartu microSD untuk booting dan penyimpanan jangka panjang [2].

Gambar 2.1 Logo Raspberry Pi [2]

2.1.1. Raspberry Pi 3

Model ini yang terbaik saat ini karena kecepatannya mencapai 4 kali lipat dari Pi 2. Selain itu, versi ini sudah memiliki built-in WiFi (802.11n) dan Bluetooth 4, serta Bluetooth Low Energy (BLE). Spesifikasinya adalah sebagai berikut:

a) CPU 64-bit quad-core ARMv8 1.2GHz b) RAM 1 GB

Raspberry Pi 3 dibanderol dengan harga yang sama dengan Pi 2. Oleh karena itu model ini memiliki nilai ekonomis yang lebih tinggi sehingga pembeli tidak

(20)

8 perlu mengeluarkan biaya tambahan untuk membeli WiFi dan Bluetooth USB, karena lebih cepat dan lengkap.

Sama seperti Pi 2, Raspberry Pi 3 juga memiliki 4 USB port, 40 pin GPIO, Full HDMI port, Port Ethernet, Combined 3.5mm audio jack and composite video, Camera interface (CSI), Display interface (DSI), slot kartu Micro SD (Sistem tekan-tarik, berbeda dari yang sebelumnya ditekan-tekan), dan VideoCore IV 3D graphics core[3]. Gambar 2.2 memperlihatkan bagian-bagian Raspberry Pi 3.

Gambar 2.2 Bagian-bagian Raspberry Pi 3 [3]

2.1.2. GPIO Raspberry Pi 3

Salah satu fitur yang kuat dari Raspberry Pi adalah deretan GPIO (General Purpose Input/Output) pin di sepanjang tepi atas pin board merupakan antarmuka fisik antara Pi dan dunia luar. Pada tingkat yang paling sederhana, dapat dianggap sebagai switch yang dapat mengaktifkan atau menonaktifkan (input) atau bahwa Pi dapat mengaktifkan atau menonaktifkan (output). GPIO terdiri dari 40 pin dengan berbagai fungsi.

(21)

9 Dari 40 pin, 26 pin GPIO dan yang lain adalah pin power atau ground (ditambah dua pin ID EEPROM yang tidak harus digunakan). Dapat memprogram pin untuk berinteraksi dengan cara yang menakjubkan dengan dunia nyata. Input tidak harus berasal dari saklar fisik, itu bisa menjadi masukan dari sensor atau sinyal dari komputer lain atau perangkat. Misalnya Output juga dapat melakukan apa saja, dari menyalakan LED untuk mengirim sinyal atau data keperangkat lain.

Ketika Raspberry Pi terhubung pada internet, maka Raspberry Pi dapat mengontrol perangkat yang terhubung padanya dari mana saja dan perangkat dapat mengirim data kembali. Konektivitas dan kontrol dari perangkat fisik melalui internet adalah hal yang sangat kuat dan menarik, dan Raspberry Pi ideal untuk ini [3]. GPIO Raspberry Pi 3 dapat dilihat pada gambar 2.3.

Gambar 2.3 PIN GPIO Raspberry pi 3 Model B [3]

Lebih lanjut mengenai fungsi masing-masing PIN GPIO pada Raspberry Pi 3 adalah sebagai berikut:

(22)

10 Gambar 2.4 Blok 40 PIN GPIO Raspberry Pi 3 Model B [3]

2.1.3. Sistem Operasi Raspberry Pi

Raspberry Pi tidak menggunakan sistem operasi yang sering kita jumpai di sekolah atau di rumah, berupa Windows atau Mac. Ada banyak sistem operasi yang bisa berjalan di Raspberry Pi seperti RISC OS, FreeBSD, bahkan ada versi Windows IoT (Internet of Things). Saat ini, Microsoft sudah mulai masuk ke sistem IoT dengan Windows IoT-nya. Namun, Windows IoT masih tergolong ribet untuk pemula karena harus coding di PC lalu ditransfer ke Raspberry Pi.

Sistem operasi popular yang digunakan Raspberry Pi adalah Linux yang disebut dengan Raspbian. Raspbian adalah salah satu sistem Linux yang mudah untuk digunakan. Cara menggunakannya sudah sama seperti penggunaan Windows di sekolah atau di rumah [3].

2.2. Bahasa Pemrograman Python

Python adalah bahasa pemrograman interpretatif multiguna. Tidak seperti bahasa lain yang susah untuk dibaca dan dipahami, python lebih menekankan pada

(23)

11 pembacaan kode agar lebih mudah untuk memahami sintaks. Python menjadi Bahasa resmi yang terintegrasi dalam Raspberry Pi. Kata “Pi” pada Raspberry Pi merupakan selang yang merujuk pada “Python”. Oleh karenanya, tepat dikatakan bahwa Python adalah Bahasa natural Raspberry Pi.

Bahasa ini muncul pertama kali pada tahun 1991, dirancang oleh seorang bernama Guido van Rossum. Sampai saat ini Python masih dikembangkan oleh Python Software Foundation. Bahasa Python mendukung hampir semua sistem operasi, bahkan untuk sistem operasi Linux [3].

2.3. WebCam

WebCam merupakan gabungan dari kata web dan camera. WebCam sendiri sebutan bagi kamera real-time (bermakna keadaan pada saat ini juga) yang gambarnya bisa diakses atau dilihat melalui internet, program instant messaging seperti Yahoo Messenger, AOL Instant Messenger (AIM), Windows Live Messenger, dan Skype, dan lainnya. Istilah “webcam” sendiri mengarah pada jenis kamera yang digunakan untuk kebutuhan layanan berbasis web. Webcam sendiri biasanya digunakan untuk keperluan konferensi jarak jauh atau juga sebagai kamera pemantau.

WebCam adalah sebuah peripheral berupa kamera sebagai pengambil citra/gambar dan mikropon (optional) sebagai pengambil suara/audio yang dikendalikan oleh sebuah komputer atau oleh jaringan komputer. Gambar yang diambil oleh WebCam ditampilkan ke layar monitor, karena dikendalikan oleh komputer maka ada interface atau port yang digunakan untuk menghubungkan WebCam dengan komputer atau jaringan. Ada beberapa orang mengartikan

(24)

12 WebCam sebagai Web pages + Camera, karena dengan menggunakan WebCam untuk mengambil gambar video secara aktual bisa langsung di upload bila komputer yang mengendalikan terkoneksi internet [4]. Pada gambar 2.5 menunjukkan salah satu contoh webcam.

Gambar 2.5 Webcam Logitech [4]

2.4. Push Button

Push button switch (saklar tombol tekan) adalah perangkat atau saklar sederhana yang berfungsi untuk menghubungkan atau memutuskan aliran arus listrik dengan sistem kerja tekan unlock (tidak mengunci). Sistem kerja unlock disini berarti saklar akan bekerja sebagai device penghubung atau pemutus aliran arus listrik saat tombol ditekan, dan saat tombol tidak ditekan (dilepas), maka saklar akan kembali pada kondisi normal. Gambar 2.6 menunjukkan contoh fisik push button.

Gambar 2.6 Contoh push button [5]

(25)

13 Sebagai device penghubung atau pemutus, push button hanya memiliki 2 kondisi, yaitu on dan off (1 dan 0). Istilah on dan off ini menjadi sangat penting karena semua perangkat listrik yang memerlukan sumber energi listrik pasti membutuhkan kondisi on dan off.

Karena sistem kerjanya yang unlock dan langsung berhubungan dengan operator, push button menjadi device paling utama yang biasa digunakan untuk memulai dan mengakhiri kerja mesin di industri. Secanggih apapun sebuah mesin bisa dipastikan sistem kerjanya tidak terlepas dari keberadaan sebuah saklar seperti push button switch atau perangkat lain yang sejenis yang bekerja mengatur pengkondisian on dan off.

Berdasarkan fungsi kerjanya yang menghubungkan dan memutuskan, push button mempunyai 2 tipe kontak yaitu NC (Normally Close) dan NO (Normally Open) [5].

NO (Normally Open), merupakan kontak terminal dimana kondisi awal tidak tersambung (aliran arus listrik tidak mengalir). Dan ketika tombol ditekan, kontak yang NO ini akan menjadi menutup dan mengalirkan atau menghubungkan arus listrik. Kontak NO digunakan sebagai penghubung atau menyalakan sistem circuit (push button on).

NC (Normally Close), merupakan kontak terminal dimana kondisi awal tersambung (mengalirkan arus litrik). Ketika tombol push button ditekan, kontak NC ini akan menjadi membuka, sehingga memutus aliran arus listrik. Kontak NC digunakan sebagai pemutus atau mematikan sistem circuit (push button off).

(26)

14 2.5. Relay

Relay adalah Saklar (switch) yang dioperasikan secara listrik dan merupakan komponen elektromekanikal yang terdiri dari 2 bagian utama yakni elektromagnet (coil) dan mekanikal (seperangkat kontak saklar atau switch). Relay menggunakan prinsip elektromagnetik untuk menggerakkan kontak saklar sehingga dengan arus listrik yang kecil (low power) dapat menghantarkan listrik yang bertegangan lebih tinggi. Sebagai contoh, dengan relay yang menggunakan elektromagnet 5V dan 50 mA mampu menggerakan Armature Relay (yang berfungsi sebagai saklarnya) untuk menghantarkan listrik 220V 2A [6]. Gambar 2.7 merupakan salah satu contoh modul relay.

Gambar 2.7 Modul Relay 1 Channel [6]

2.6. Solenoid Door Lock

Solenoid Door Lock adalah salah satu solenoid yang difungsikan khusus sebagai solenoid untuk pengunci pintu secara elektronik. Solenoid ini mempunyai dua sistem kerja, yaitu Normaly Close (NC) dan Normaly Open (NO). Gambar 2.8 merupakan rangkaian dalam solenoid door lock.

(27)

15 Gambar 2.8 Rangkaian dalam solenoid door lock [7]

Perbedaannya adalah cara kerja solenoid NC apabila diberi tegangan, maka solenoid akan memanjang (tertutup). Untuk cara kerja dari solenoid NO adalah kebalikannya dari solenoid NC. Biasanya kebanyakan solenoid door lock membutuhkan input atau tegangan kerja 12V DC tetapi ada juga solenoid door lock yang yang hanya membutuhkan input tegangan 5V DC dan sehingga dapat langsung bekerja dengan tegangan output dari pin IC digital [7].

2.7. Buzzer

Buzzer merupakan komponen elektronika yang berfungsi untuk mengubah getaran listrik menjadi getaran suara. Prinsip kerja buzzer yakni terdiri dari kumparan yang terpasang pada diagfragma dan kemudian kumparan tersebut dialiri arus sehingga menjadi elektromagnet, kumparan tadi akan tertarik ke dalam atau keluar tergantung dari arah arus dan polaritas magnetnya. Karena kumparan dipasang pada diafragma maka setiap gerakan kumparan akan menggerakkan diafragma secara bolak-balik sehingga membuat udara bergetar yang akan menghasilkan suara. Buzzer biasa digunakan sebagai indikator bahwa proses telah selesai atau terjadi suatu kesalahan pada sebuah alat (alarm) [8]. Adapun salah satu bentuk buzzer seperti pada gambar 2.9.

(28)

16 Gambar 2.9 Buzzer [8]

2.8. OpenCV

OpenCV (Open Source Computer Vision) adalah perpustakaan fungsi pemrograman terutama ditujukan untuk computer vision pada real time, dikembangkan oleh Intel dan sekarang didukung oleh Willow Garage dan Itseez.

OpenCV dirilis dengan lisensi bawahan BSD dan oleh karenanya gratis untuk penggunaan akademis dan komersial. OpenCV memiliki antarmuka dengan bahasa pemrograman C, C++, Java, dan Python dan mendukung Windows, Linux, Mac OS, iOS, dan Android. OpenCv dirancang untuk efisiensi komputasi dan dengan focus yang kuat pada aplikasi real time. Ditulis dalam bahasa pemrograman C/C++

yang dioptimalkan, perpustakaan bisa memanfaatkan pengolahan pada multi-core.

OpenCV yang dibangun pada modul yang kinerja tinggi dan serbaguna untuk memecahkan sebagian besar masalah computer vision [9]. OpenCV memberikan seperangkat modul yang dapat menjalankan fungsi yang tercantum pada tabel 2.1

Tabel 2.1 Modul dalam OpenCV [9]

NO Modul Fungsi

1 Core Core struktur data, tipe data, dan manajemen memori

2 ImgProc

Filter gambar, transformasi gambar, dan analisis bentuk

(29)

17 Tabel 2.2 Modul dalam OpenCV (lanjutan) [9]

NO Modul Fungsi

3 Highgui GUI, membaca dan menulis gambar dan video

4 ML

Model statistic dan klasifikasi algoritma untuk digunakan pada aplikasi computer vision

5 Objdetect

Deteksi objek menggunakan cascade dan histogram klasifikasi gradien

6 Video Analisis gerakan dan trak objek pada video

7 Calib3d

Kalibrasi kamera dan rekonstruksi 3D dari beberapa sudut

2.9. Pengolahan Citra

Citra merupakan informasi yang secara umum tersimpan dalam bentuk pemetaan bit-bit, atau lebih dikenal sebagai bitmap. Setiap bit dari citra membentuk satu titik informasi yang dikenal sebagai piksel. Satuan dari piksel biasanya dinyatakan dengan posisi x, posisi y, dan nilai dari piksel tersebut (warna atau gray).

Dalam satu bidang gambar, sepenuhnya terdiri dari piksel-piksel disimpan dalam bentuk bilangan biner. Penggunaan piksel biner ini dimaksudkan untuk menyederhanakan proses dengan hanya memperhatikan ada atau tidak, dan juga untuk memperkecil data baik saat dikirimkan atau saat disimpan, termasuk juga saat diproses.

Grayscale dan biner sebenarnya memiliki kemiripan, hanya saja kalau biner memiliki dua kemungkinan nilai, tetapi grayscale memiliki lebih banyak kemungkinan. Grayscale banyak digunakan jika adanya perbedaan intensitas antara satu piksel dengan piksel lainnya sangat dipentingkan. Hal ini terutama jika objek

(30)

18 yang diamati memiliki perbedaan intensitas yang cukup kecil dengan berbagai tingkat kecerahan.

Untuk mempermudah pengolahan suatu citra proses yang paling umum digunakan adalah scaling, scanning, dan cropping. Pemilihan faktor penskalaan yang sesuai akan mempercepat operasi kerja tanpa mengurangi kinerja sistem, seperti pada contoh pada gambar 2.10

Gambar 2.10 Citra 200x80 di-skala 1:5 dan 1:8 [10]

Dengan memperkecil ukuran citra asli akan dapat mempercepat proses perhitungan secara keseluruhan. Namun cara ini juga dapat menurunkan kinerja dari sistem, dimana suatu citra yang semula memiliki jumlah pixel yang besar akan memiliki bentuk yang detil, dengan dilakukan penskalaan akan didapatkan bentuk gambar yang kurang detil [10].

Pencarian objek bisa berdasarkan scanning yang memiliki kelebihan tersendiri, yaitu lebih cepat (kalau obyek yang dicari dekat dengan titik awal) dan mudah tetapi tidak akurat. Hal ini tentu saja menyebabkan proses menjadi lambat.

Kelebihan lain dari proses scanning adalah metode klasifikasi atau identifikasi dari proses deteksi dapat beragam, artinya dapat menggunakan berbagai metode.

Jika suatu obyek dapat diketahui berdasarkan ciri warnanya saja maka dapat digunakan metode segmentasi warna. Metode ini secara umum digunakan untuk memisahkan suatu warna terhadap warna lainnya. Inti dari segmentasi warna adalah membaca warna piksel demi piksel atau daerah demi daerah dan membandingkannya dengan warna yang dikehendaki. Jika obyek yang akan

(31)

19 dideteksi dipastikan hanya berjumlah satu, artinya dalam penangkapan citra nantinya kemungkinan hanya ada satu obyek yang akan muncul, maka proses deteksinya menjadi sederhana. Inipun masih bisa dibedakan antara obyek yang posisinya tertentu dan obyek yang posisinya tidak tentu.

Jika obyek posisinya sudah tentu pada sensor, maka proses deteksi dilakukan cukup dengan mengamati daerah tersebut, tanpa menghiraukan daerah lainnya. Jika obyek ternyata menempati posisi yang tidak tentu, maka harus dilakukan proses pencarian [11]. Proses pencarian dapat dilakukan dengan dua cara melakukan scanning diseluruh daerah citra atau langsung menentukan titik tengah (titik berat) dari obyek yang ada di layar.

Selain scanning, ada proses lain pada pengolahan citra yaitu Cropping.

Dengan cropping, cara ini mengharuskan program untuk mencari pixel demi pixel, area demi area ukuran demi ukuran dari seluruh bagian citra. Jika suatu obyek berhasil ditemukan, bagian citra yang bertepatan dengan obyek tersebut akan dipotong untuk diproses pada bagian berikutnya. Kelebihan dari cara ini, posisi dan ukuran dari obyek dapat bebas serta jumlah dari obyek dapat lebih dari satu. Dapat menggunakan berbagai metode klasifikasi, dimana hasil crop obyek yang ditemukan dengan mudah diproses pada classifier yang dikehendaki [11].

2.10. Algortima Viola-Jones

Saat ini telah banyak berkembang aplikasi-aplikasi yang menggunakan fitur deteksi wajah. Deteksi wajah sendiri dapat dilakukan dengan berbagai cara, salah satunya menggunakan algoritma Viola-Jones. Algoritma Viola-Jones merupakan algoritma yang paling banyak digunakan untuk mendeteksi wajah. Viola-Jones

(32)

20 telah memperkenalkan sebuah framework deteksi wajah yang mampu memproses gambar dengan sangat cepat dengan tingkat deteksi yang tinggi. Viola-Jones menerapkan algoritma Adaboost (adaptive boosting) algoritma yang dapat meningkatkan kinerja pendeteksian. Dalam prosesnya algoritma Adaboost memainkan peran dalam memilih fitur yang cocok untuk mendeteksi objek yang menarik [12].

Dalam framework Viola-Jones disediakan banyak library untuk melakukan proses seleksi fitur, fitur yang merupakan fungsi dasar untuk meingkatkan proses seleksi dikenal sebagai HaarLike feature. Didorong oleh hasil karya Tieu dan Viola, Viola-Jones terhambat oleh seleksi fitur yang harus berdasarkan pada setiap classifier yang lemah sehingga tergantung pada satu fitur tunggal. Viola-Jones memperkenalkan sebuah representasi image baru yang dikenal sebagai Integral Image yang tidak terpisahkan. Dengan metode ini Haar-Like features dapat dihitung pada setiap skala atau lokasi dalam waktu yang konstan. Metode Viola- Jones menggabungkan empat kunci utama yaitu Haar-Like Feature, Integral Image, Adaboost dan Cascade classifier [12].

2.11. Algoritma SURF (Speeded-Up Robust Features)

SURF atau Speeded Up Robust Features merupakan algoritma untuk deteksi fitur. Deteksi fitur adalah proses mengolah citra untuk mengekstrasi fitur- fitur yang unik dari suatu objek di dalam citra, tujuannya agar objek dapat dideteksi pada citra lain yang mengandung objek yang sama meskipun objek mengalami perubahan skala ataupun rotasi. Prosesnya dibagi ke dalam tiga tahapan yakni:

Pendeteksian fitur, pendeteksian titik fitur, dan pencocokan fitur

(33)

21 2.11.1. Pendeteksian Fitur

Pendeteksian titik fitur bertujuan untuk mendeteksi titik fitur serta membangun ketahanannya sehingga fitur yang sama tidak akan dideteksi sebagai fitur baru dengan sudut pandang yang berbeda sekalipun. Teknik yang digunakan untuk mendapatkan titik fitur dengan menggunakan kernel Gaussian yang membagi scale space ke dalam beberapa level dan oktaf. Scale space merupakan ruang penskalaan yang menunjukkan perubahan terhadap citra setelah dikenakan filter Gaussian orde kedua [13]. Ilustrasi dari scale space berbentuk seperti piramida ditunjukkan pada gambar 2.11

Gambar 2.11 Struktur piramida [14]

Pendeteksian fitur umumnya melibatkan 3 tahap; membangun scale space menggunakan kernel Gaussian, menemukan determinan dari matriks Hessian dan mencari nilai extrema. Pada SURF metode Laplacian of Gaussian diubah menjadi filter kotak setelah didiskritisasi dan dipotong. SURF menggunakan kernel gaussian orde kedua 𝜕

2

𝜕𝑦2𝑔(𝜎) dengan nilai 𝜎 = 1.2 (merupakan skala terkecil untuk mendapatkan resolusi spasial terbaik) pada perhitungan matriks Hessian setelah didiskritisasi menjadi kotak filter berukuran 9 x 9 seperti digambarkan pada gambar 2.12. Kotak berwarna abu-abu pada citra dianggap bernilai 0 sedangkan kotak putih

(34)

22 bernilai positif, sebaliknya kotak hitam bernilai negatif. Kotak filter direferensikan sebagai 𝐷𝑦𝑦 untuk 𝐿𝑦𝑦(x, 𝜎) dan 𝐷𝑥𝑦 untuk 𝐿𝑥𝑦(x, 𝜎) [13].

Gambar 2.12 Laplacian of Gaussian didiskritisasi menjadi kotak filter [14]

Kemampuan Matriks Hessian dalam mendeteksi blob digunakan untuk mendeteksi fitur. Hessian sendiri merupakan matriks dari derivatif kedua Gaussian [13] yang dituliskan ke dalam persamaan (2.1)

H(x,σ)= [𝐿𝑥𝑥(x,𝜎) 𝐿𝑥𝑦(x,𝜎)

𝐿𝑥𝑦(x,𝜎) 𝐿𝑦𝑦(x,𝜎)] (2.1)

Dimana,

𝐿𝑥𝑥(x, σ) = 𝐼(x) *𝜕𝑦𝜕22𝑔(𝜎) (2.2)

𝐿𝑥𝑦(x, σ) = 𝐼(x) *𝜕𝑦𝜕22𝑔(𝜎) (2.3)

Determinan dari matriks Hessian yang kemudian digunakan untuk mendeteksi fitur dituliskan seperti pada persamaan (2.4)

det(H) = 𝐼𝑥𝑥𝐼𝑦𝑦 − 𝐼2𝑥𝑦 (2.4)

Dikarenakan kernel Gaussian diubah kedalam bentuk diskrit maka perlu adanya penambahan nilai 𝜔 untuk memastikan efisiensi komputasi. Nilai 𝜔 sensitif terhadap periubahan skala namun pada kasus ini dapat dibuat konstan dengan

(35)

23 memberikan nilai sebesar 0.9 [13]. Determinan matriks Hessian dari Gaussian yang telah didiskritisasi diberikan pada persamaan (2.3).

𝐷𝑒𝑡(𝐻𝑎𝑝𝑝𝑟𝑜𝑥) = 𝐷𝑥𝑥𝐷𝑥𝑦− (0.9𝐷𝑥𝑦)2 (2.5) Menemukan titik fitur yang tahan terhadap penskalaan perlu dilakukan pada beberapa level dan oktaf dari scale space. Algoritma SURF memperbesar skala citra dari setiap perubahan oktaf [13] seperti diilustrasikan pada gambar 2.13.

Gambar 2.13 Penskalaan citra pada algoritma SURF [14]

Semakin besar citra maka semakin besar kernel yang digunakan. Meski bertambah besar ukuran kernel harus dipastikan untuk mempertahankan bentuknya dalam artian tidak mengubah fungsi filternya [13]. Perubahan ukuran filter bergantung pada skala dan oktaf seperti diperlihatkan pada gambar 2.14

Gambar 2.14 Hubungan antara skala dan oktaf pada ukuran kernel [14]

Perhitungan determinan matriks Hessian ataupun pembentukan scale space untuk algoritma SURF menggunakan citra integral. Citra integral 𝐼 adalah representasi tengah untuk citra dan terdiri dari jumlah nilai keabu-abuan dari citra

(36)

24 N dengan tinggi y dan lebar x [13]. Perumusannya dapat dilihat pada persamaan (2.4)

𝐼(𝑥, 𝑦) = ∑ ∑ 𝑁(𝑥𝑥𝑥′ 𝑦𝑦′ , 𝑦) (2.6)

2.11.2. Pendeskrispian Titik Fitur

Setiap titik fitur harus memiliki deskripsi yang unik agar tidak terpengaruh terhadap transformasi rotasi ataupun skala pada citra. Agar deskriptor dapat bekerja meski terjadi transformasi rotasi pada citra, mula-mula perlu diketahui orientasi titik fitur. SURF menggunakan Haar Wavelet yang dapat dihitung dengan mudah menggunakan citra integral untuk menemukan orientasi dari titik fitur. Apabila orientasinya didapatkan maka fitur ini akan tahan terhadap perubahan rotasi.

Metode ini dikenal dengan metode Upright SURF (U-SURF) yang mampu menahan perubahan rotasi tanpa perlu adanya perubahan orientasi [13].

Gambar 2.15 Delay Haar Wavelet [14]

Gambar 2.15 menunjukkan delay dari Haar Wavelet pada arah horizontal dan arah vertikal. Orientasi yang dominan ditentukan dengan menghitung jumlah seluruh orientasi dalam juring dengan sudut 60 derajat. Apabila flag bernilai 0 maka tidak dihitung, sedangkan bila bernilai satu dideteksi sebagai orientasi [13].

(37)

25 Setelah mengetahui orientasi fitur maka hal lain yang perlu diketahui adalah diskripsi fitur. Dibentuk disekitar titik fitur sebesar 20s. Kemudian dibagi ke dalam 4 x 4 sub-area. Pada bagian ini disimpan informasi spasial. Untuk setiap sub-area, dilakukan perhitungan Haar Wavelet dengan membaginya ke dalam 5 x 5 ruang sampel. Masing-masing dicari nilai dari delay wavelet baik secara vertikal ataupun horizontal [13]. Delay wavelet ini dikenal dengan 𝑑𝑥 dan 𝑑𝑦, seperti pada gambar 2.16

Gambar 2.16 Wavelet dalam arah horizontal dan vertikal [14]

Gambar 2.17 Mencari delay wavelet di area 20s yang dibagi ke dalam 4 x 4 sub-area [14]

Untuk meningkatkan ketahanan ketika terjadi transformasi geometrik dan kesalahan lokal, delay di 𝑑𝑥 dan 𝑑𝑦 dititik beratkan pada pusat Gaussian di keypoint. Sehingga didapatkan vektor 4D yakni 𝑉 = (∑ 𝑑𝑥,∑ |𝑑𝑥|, ∑ 𝑑𝑦,∑ |𝑑𝑦|).

Bila ditempakan pada masing-masing 4 x 4 sub-area akan didapatkan vektor descriptor dengan panjang 64. Delay wavelet bervariasi terhadap perubahan iluminasi. Faktor skala didapatkan dengan merubah descriptor ke dalam vektor unit [13]. Ilustrasi dari perhitungan delay wavelet ditunjukkan pada gambar 2.17.

(38)

26 2.11.3. Pencocokan Fitur

Apabila ada citra baru yang mengandung objek yang sama dari citra sebelumnya maka objek tersebut dapat dideteksi dari titik fitur yang sudah ditentukan. Hal ini yang kemudian disebut proses pencocokan fitur.

2.12. Metode FLANN (Fast Library Approximated Nearest Neighbor)

Metode Fast Library Approximated Nearest Neighbor (FLANN) adalah sebuah library untuk melakukan pencarian cepat, perkiraan tetangga, yang terdapat pada space dimensi yang tinggi. Library ini merupakan kumpulan algoritma yang untuk menemukan nilai tetangga terdekat, sementara untuk hasil parameter yang optimal, tergantung pada kumpulan data yang digunakan. Metoda Fast Library Approximated Nearest Neighbor (FLANN) digunakan untuk matching fitur SURF citra wajah data awal dengan fitur SURF citra wajah uji. Fitur SURF ini terdiri dari 3 komponen utama, yaitu: keypoint, descriptor dan vektor. Untuk satu gambar wajah citra uji terdapat cluster untuk fitur SURF. Cluster ini akan otomatis dengan menggunakan K-Nearest Neighbor (KNN) dengan tipe indeks kd tree, dimana KNN ini akan mencari jarak yang paling kecil antara vector sampel dengan vector pada cluster. Proses matching fitur citra wajah uji dan fitur citra wajah sampel, vektor keypoint dan descriptor pada citra wajah akan di cocokan nilainya dengan menggunakan KNN search. KNN search mencari cluster pada citra wajah uji yang nilai vektor deskriptornya paling dekat jaraknya dengan vektor deskriptor [14].

Contoh pencocokan keypoint dapat dilihat pada gambar 2.18.

(39)

27 Gambar 2.18 Contoh keypoint matching [14]

2.13. Internet

Internet (Inter-Network) adalah sebutan untuk sekumpulan jaringan komputer yang menghubungkan situs akademik, pemerintahan, komersial, organisasi, maupun perorangan. Internet menyediakan akses untuk layanan telekomunikasi dan sumber daya informasi untuk jutaan pemakainya yang tersebar di seluruh dunia. Adapun layanan internet yang tersedia saat ini seperti komunikasi langsung (email, chat), diskusi (Usenet News, email, milis), sumber daya informasi yang terdistribusi (World Wide Web, Gopher), remote login dan lalu lintas file (Telnet, FTP), dan aneka layanan lainnya [16].

2.14. Telegram

Telegram adalah sebuah aplikasi messaging yang memungkinkan pengguna untuk mengirimkan pesan, gambar, video, dokumen, dan lainnya tanpa menetapkan besarnya size file yang dikirimkan serta mampu mengirimkan lokasi.

Telegram juga menyediakan sebuah API (Application Programming Interface atau Antarmuka Pemrograman Aplikasi) berupa Telegram Bot API yang memungkinkan siapa saja untuk membuat bot mereka sendiri yang akan membalas pesan sesuai dengan program yang mereka buat.

(40)

28 BAB III

PERANCANGAN SISTEM

Pada bab ini akan membahas tentang perancangan “Sistem Keamanan Akses Pintu Masuk Menggunakan Face Recognition Berbasis Raspberry Pi”

dimana dibedakan atas dua perancangan yaitu perancangan perangkat keras (Hardware) dan perancangan perangkat lunak (Software).

3.1.Rancangan Umum

Perancangan sistem keamanan akses pintu menggunakan face recognition berbasis Raspberry Pi 3 ini mengacu berdasarkan blok diagram pada gambar 3.1.

Dimana dalam perancangan alat ini meliputi. Sebuah WebCam yang digunakan sebagai pengambil citra wajah manusia. Sebuah minicomputer Raspberry Pi 3 Model B digunakan untuk memproses pendeteksian dan mencocokan wajah dari database, serta sebagai penggerak actuator dan pengirim pemberitahuan melalui aplikasi telegram. Aplikasi telegram digunakan sebagai interface kepemilik rumah dan dapat mengontrol Raspberry Pi 3 untuk menggerakkan actuator. Sebuah relay sebagai saklar otomatis yang mengatur solenoid door lock dengan keadaan normally open. Sebuah solenoid door lock sebagai actuator buka dan tutupnya pintu. Buzzer sebagai sebuah alarm, serta penggunaan saklar sebagai penggerak solenoid door lock diluar dari sistem.

(41)

29 Gambar 3.1 Blok diagram sistem

Dari gambar 3.1, dapat dijelaskan prinsip kerja dari sistem ini. WebCam akan mendeteksi orang dengan cara mencari wajah dari orang tersebut lalu membuat sebuah kotak yang menandakan wajahnya. Ketika terdeteksi wajah orang maka Raspberry Pi 3 akan membuat WebCam untuk mengambil citra. Citra yang diambil dilakukan proses cropping atau pemotongan gambar dengan hanya mengambil bagian kotak yang menandakan wajahnya. Selanjutnya citra yang diambil nantinya akan diproses untuk mencari keypoint atau titik penting untuk kemudian dilakukan pencocokan dengan database yang telah terlebih dahulu dicari keypoint. Apabila citra yang diproses mendapatkan kecocokan dengan database maka Raspberry Pi 3 akan membuat relay keadaan close atau tertutup dan membuat solenoid door lock dalam kondisi membuka pintu dan bersamaan dengan buzzer berbunyi beberapa saat. Namun apabila citra yang diproses tidak menemukan kecocokan dengan database maka Raspberry Pi 3 akan membuat buzzer berbunyi berulang kali, serta akan mengirimkan pemberitahuan dan mengirimkan citra tersebut ke sebuah aplikasi telegram pemilik rumah. Selanjutnya pemilik rumah yang akan mengambil tindak lanjutnya. Pemilik rumah dapat memberikan delay kepada Raspberry Pi untuk membuat relay dalam keaadan close sehingga solenoid

(42)

30 door lock dalam kondisi membuka pintu. Adapun push button diletakkan di dalam rumah sebagai pembuka pintu saat sistem sedang bekerja, dimana ketika push button ditekan akan langsung membuat solenoid door lock dalam kondisi membuka pintu orang yang berada di dalam rumah dapat keluar.

3.2.Perancangan Perangkat Keras

Dalam perancangan perangkat keras meliputi dua perancangan, perancangan minatur pintu dan perancangan sistem elektronik.

3.2.1. Miniatur Pintu

Perancangan dan pembuatan miniatur pintu ini hanya membuat bagian pintu tanpa membuat kondisi satu ruangan. Mulai dari kerangka penyangga hingga keadaan pintu seperti sebenarnya. Miniatur dapat dilihat pada gambar 3.2. dan 3.3.

Gambar 3.2 Miniatur tampak depan

(43)

31 Gambar 3.3 Miniatur tampak belakang

Miniatur pintu dibuat dari balok untuk kerangka penyangga, serta sistem pintu dibuat dari balok dengan panjang 40 cm dan lebar 20 cm. Miniatur ini dibuat dengan mengecilkan skala pintu yang ada 1:3. Gambar 3.2 dan gambar 3.3 merupakan miniatur yang telah dibuat.

3.2.2. Perancangan Sistem Elektronik

Gambar 3.4 menunjukkan skematik dari sistem elektronik pada sistem ini.

Perancangan sistem elektronik dari sistem keamanan pintu menggunakan face recognition berbasis raspberry pi ini menggunakan alat dan bahan sebagai berikut:

1. Adapter 5V 2. Raspberry Pi 3 3. WebCam 4. Push button 5. Modul Relay

6. Solenoid Door Lock 7. Buzzer

8. Batterai Lipo 11.9 V 900 mAH

(44)

32 Gambar 3.4 Skematik Sistem Elektronik

3.2.2.1.Adapter 5V

Adapter yang digunakan dalam sistem ini memiliki spesifikasi input tegangan sebesar 100-240V dengan frekuensi 50-60Hz mampu menghasilkan output tegangan 5V dengan arus 2A. Adapter ini berfungsi sebagai supply tegangan bagi Raspberry Pi 3.

3.2.2.2.Raspberry Pi 3

Minicomputer Raspberry Pi 3 digunakan untuk mengontrol dan memproses data. Raspberry Pi 3 akan mengaktifkan WebCam dan mendeteksi keberadaan manusia dengan menentukan wajah. Ketika terdeteksi wajah maka Raspberry Pi 3 akan membuat kamera mengambil citra. Selain itu Raspberry Pi 3 juga menerima perintah dari aplikasi Telegram. Raspberry Pi 3 akan mengirimkan data citra dan message pemberitahuan aplikasi Telegram melalui jaringan internet. Raspberry Pi 3 juga akan mengontrol keadaan relay sehingga nantinya membuat solenoid door lock membuka atau menutup pintu, serta Raspberry Pi 3 akan mengaktifkan buzzer.

(45)

33 3.2.2.3.WebCam

WebCam yang digunakan pada perancangan ini adalah Logitech c525, dengan spesifikasi kamera 8 megapiksel serta memiliki auto fokus. WebCam ini berfungsi sebagai pengganti sensor dimana mampu mendeteksi wajah manusia serta sebagai pengambil citra wajah yang dideteksinya

3.2.2.4.Push Button

Push Button digunakan untuk menyalurkan tegangan ke solenoid door lock agar membuka pintu. Dikarenakan sistem ini hanya meletakkan kamera pada bagian depan pintu, maka push button dipasang pada bagian dalam prototipe agar pintu dapat terbuka dari dalam. Push button tidak disisipkan pada perangkat lunak agar nantinya tidak mengganggu kerja sistem.

3.2.2.5.Modul Relay

Modul relay yang digunakan ini merupakan modul dengan 1 Channel, berfungsi pemutus otomatis tegangan pada sistem. Pemilihan modul relay karena telah memiliki pin power, ground dan input dimana power dan ground sebagai sumber tegangan dan grounding, pin input disambungkan ke pin digital 14 pada Raspberry Pi 3 sebagai pengatur keadaan relay, blok terminal untuk actuator dalam hal ini adalah solenoid door lock.

3.2.2.6.Solenoid Door Lock

Solenoid door lock digunakan sebagai actuator sehingga nantinya pintu pada sistem ini dapat terbuka secara otomatis sesuai dengan keaadan relay.

Solenoid door lock disambungkan ke blok terminal beban pada relay dengan keadaan normaly open. Solenoid door lock yang digunakan pada sistem ini

(46)

34 digerakkan dengan tegangan 11V DC sehingga untuk sumber salah satu kaki dihubungkan pada Batterai Lipo dan satu kaki dihubungkan dengan relay dimana dipasangkan ke ground Batterai Lipo dan Raspberry Pi 3.

3.2.2.7.Buzzer

Buzzer digunakan sebagai alarm dan akan berbunyi jika Raspberry Pi 3 mendapatkan ataupun tidak kecocokan citra muka yang diambil dengan database yang ada dengan keadaan bunyi yang berbeda. Buzzer dihubungkan ke pin digital 18 dan ground pada Raspberry Pi 3.

3.2.2.8.Batterai Lipo

Batterai Lipo digunakan sebagai sumber tambahan untuk menyuplai solenoid door lock dan relay dengan spesifikasi 11.9 V dengan arus 900 mAh.

Tambahan sumber ini digunakan karena Raspberry Pi 3 tidak mampu untuk menyuplai sistem keseluruhan.

(47)

35 3.3.Perancangan Perangkat Lunak

Gambar 3.5 Flowchart Sistem

Setelah proses perancangan sistem secara perangkat keras, dilakukan tahap perancangan perangkat lunak sistem. Perangkat lunak adalah istilah umum untuk data yang diformat dan disimpan secara digital, berbeda dengan perangkat keras

(48)

36 karena merupakan bagian sistem yang tidak berwujud. Perancangan ini terdiri atas perancangan perangkat lunak pada Raspberry Pi dengan menggunakan bahasa pemrograman Python dan perancangan perangkat lunak pada aplikasi Telegram.

Pemrograman dilakukan berdasarkan pada flowchart sistem seperti yang terlihat pada gambar 3.5.

Ketika alat mulai dinyalakan, maka akan dilakukan terlebih dahulu pencarian ciri khusus pada citra database. Ciri yang diambil adalah keypoint dari database wajah. Nantinya data keypoint dari masing-masing database disimpan pada library Python. Setelah itu maka Raspberry Pi 3 akan membuat WebCam dalam keadaan enable atau menyala, sistem akan terus berada pada keadaan mendeteksi sebuah wajah. Apabila sistem mendeteksi adanya wajah manusia, maka WebCam akan mengambil citra hanya pada bagian wajah (terjadi proses cropping).

Citra wajah yang didapatkan kemudian dilakukan proses pencarian keypoint. Data keypoint dari citra wajah yang diambil kemudian akan dilakukan proses pencocokan ciri (Keypoint Matching) dengan data keypoint database wajah yang telah disimpan sebelumnya. Apabila citra dikenali dengan salah citra wajah yang ada pada database maka sistem akan membuat alarm dalam hal ini buzzer enable atau menyala selama 1 detik sebagai penanda cocoknya wajah, serta membuat relay dalam keadaan enable atau keadaan close dalam beberapa saat. Relay yang dalam kondisi close akan membuat solenoid door lock mendapatkan tegangan sehingga pintu terbuka. Sedangkan apabila citra yang diambil tidak dikenali, maka buzzer akan enable selama 3 detik sebagai penanda orang yang tidak dikenali. Selanjutnya sistem akan membuat Telegram mengirimkan citra wajah yang tidak dikenali

(49)

37 tersebut bersamaan dengan sebuah script wajah tidak dikenali. Apabila terdapat balasan dari pengguna telegram tersebut untuk membuka pintu maka buzzer akan enable selama 1 detik, serta membuat relay dalam keadaan enable atau keadaan close dalam beberapa saat dan pada akhirnya solenoid door lock membuka pintu.

Apabila adapter pada Raspberry Pi 3 masih tetap menyala maka sistem akan kembali membuat WebCam enable. Namun apabila adapter tidak menyala maka sistem akan berhenti.WebCam

WebCam pada perancangan perangkat lunak ini memiliki sebuah proses agar dapat digunakan pada Raspberry Pi 3 dan dapat diprogram menggunakan Python. Berikut langkah-langkah agar WebCam dapat digunakan:

 Menginstall library pada terminal Raspberry Pi 3 dengan mengetikkan perintah:

$ sudo apt-get install fswebcam

Untuk mengecek apakah WebCam telah terinstall:

$ fswebcam namafile.jpg

 Setelah Raspberry Pi 3 telah dapat mengakses WebCam, untuk mengekases

dengan bahasa Python, maka pada bagian programming Python dengan menggunakan OpenCV untuk mengakses WebCam mengetikkan script program pengaktifan WebCam. Berikut ini potongan script program mengakses WebCam:

# Setting Camera cap = cv2.VideoCapture(0) cap.set(3 , 640 ) # width cap.set(4 , 480 ) # height

# Start Video while True:

ret, image = cap.read() # Read the camera object

(50)

38 3.3.2. Kontrol Relay dan Buzzer

Untuk mengendalikan relay dan buzzer pada Raspberry Pi 3, maka pin dari relay dan buzzer dihubungkan pada GPIO (General Purpose Input Output) Raspberry Pi 3. Untuk relay disambungkan pada pin 14 dan buzzer pada pin 18 pada Raspberry Pi 3. Setelah itu maka pada bagian programming Python mengetikkan script program untuk memberikan perintah mematikan dan menyalakan sebuah lampu dengan mengubah output pin GPIO HIGH (untuk menyalakan) dan LOW (untuk mematikan). Berikut ini potongan script program mengendalikan relay dan buzzer:

3.3.3. Pengenalan Wajah

Sub bab ini membahas bagaimana proses pengenalan wajah yang dilakukan namun tidak secara mendetail. Secara tidak langsung algoritma untuk pengenalan wajah yang dilakukan mengacu pada flowchart pengenalan wajah gambar 3.6

#Setting GPIO

GPIO.setmode(GPIO.BCM) GPIO.setwarnings(False) GPIO.setup(14, GPIO.OUT) GPIO.setup(18, GPIO.OUT)

#Menyalakan dan mematikan Relay dan Buzzer GPIO.output(14, GPIO.HIGH)

GPIO.output(18, GPIO.HIGH)

time.sleep(1) #Mengatur waktu mengaktifkan GPIO.output(14, GPIO.LOW)

GPIO.output(18, GPIO.LOW)

(51)

39 Gambar 3.6 Flowchart pengenalan wajah

3.3.3.1.Deteksi Wajah

Ketika WebCam telah menyala selanjutnya dilakukan proses deteksi wajah.

Deteksi wajah ini bertujuan agar kamera berperan sebagai sensor selain sebagai pengambil citra. Deteksi wajah menggunakan metode Viola-Jones. Adapun peranan dari algoritma Viola-Jones dalam pembuatan aplikasi ini adalah sebagai pendeteksian wajah pada citra. Untuk mendeteksi adanya fitur wajah pada sebuah

(52)

40 citra maka terlebih dahulu merubah citra RGB menjadi Grayscale hal ini dikarena algoritma ini mendeteksi wajah dengan cara membedakan warna hitam dan putih.

Setelah citra telah diubah maka dilanjutkan dengan beberapa proses yang dilakukan sebelum akhirnya akan menghasilkan sebuah output wajah yang terdeteksi pada sebuah citra. Pada gambar 3.7 dapat dilihat hasil dari penggunaan Metode Viola- Jones sebagai pendeteksi wajah.

Gambar 3.7 Hasil deteksi wajah

Adapun potongan script program pendeteksian wajah sebagai berikut:

Dalam algoritma Viola-Jones terdapat dua parameter yang dimainkan untuk mendeteksi wajah. Parameter pertama scale_factor, parameter ini berfungsi untuk menentukan seberapa banyak citra dikurangkan untuk setiap skala gambar.

Parameter kedua minNeighbors, parameter ini berfungsi untuk menentukan nilai

# Import the Haar cascades for face

face_cascade = cv2.CascadeClassifier('haarcascade_frontalface_default.xml')

# Mengubah citra RGB menjadi grayscale

gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) faces = face_cascade.detectMultiScale(gray, 1.3, 5) for(x,y,w,h) in faces:

# Create rectangle around the face

cv2.rectangle(image,(x, y), (x+w, y+h), (255, 255, 0), 2)

(53)

41 minimal dari fitur haar agar nilainya tetap dipertahankan. Penggunaan nilai parameter ini berdasarkan metode heuristik dengan mencari keadaan yang terbaik.

Telah dilakukan percobaan dengan mengganti nilai parameter scale factor dan minNeighbors.

Pada nilai parameter scale factor mencoba dengan mengganti nilai dari range 1.0 hingga 1.5, ternyata pengaruh dari mengganti parameter tersebut membuat algoritma Viola-Jones ini dalam mendeteksi wajah menjadi sangat lebih detail. Ketika nilai 1.5 dan 1.4 maka sebuah benda yang berwarna hitam putih akan terdeteksi sebagai wajah. Ketika nilai yang digunakan 1.0 sampai 1.2 dengan sample citra gambar yang terdapat beberapa wajah, didapatkan algoritma tidak mendeteksi beberapa wajah secara tidak tepat atau dalam membuat kotak pada wajah terdapat bagian tubuh lain yang dideteksi sebagai wajah. Namun ketika nilai digunakan 1.3 maka didapatkan sistem mampu mendeteksi wajah pada suatu citra dengan tepat.

3.3.3.2. Ekstraksi Ciri

Pada tahap ekstraksi ciri baik citra wajah sample dan citra wajah dari database dilakukan proses pencarian ciri. Dalam kasus ini ciri khusus yang dicari yaitu titik penting (keypoint). Pencarian ciri ini dilakukan sebanyak dua kali.

Pertama pada saat sistem mulai maka terlebih dahulu dilakukan ekstraksi ciri citra database, hal ini dilakukan untuk melakukan training pada sistem sehingga hasil dari training database didapatkan data keypoint dari tiap data agar nantinya data ini yang akan dicari pada tahap pencocokan ciri. Untuk mencari keypoint dari citra digunakan algoritma SURF (Speeded-Up Robust Features). SURF cocok untuk

(54)

42 menangani gambar dengan kualitas kabur dan rotasi pada gambar. Karena citra wajah yang disimpan dari proses deteksi wajah boleh jadi mendapatkan hasil yang kabur dan mengalami perubahan posisi. Sehingga nantinya pada proses selanjutnya dapat dikenali mesti dalam citra yang kualitas kabur.

Hasil konversi RGB ke grayscale kemudian dilanjutkan dengan pendeteksian keypoint. Fitur gelembung (blob-like feature) digunakan untuk mendeteksi keypoint. Langkah yang dilakukan adalah membentuk piramida citra dengan menggunakan box filter sebagai aproksimasi dari turunan parsial kedua dari Gaussian. Ketika membentuk scale space, citra asli dikonvolusikan pada kotak filter dengan mengubah ukuran kotak filter sesuai dengan citra dan membentuk scale space image. Langkah berikutnya adalah mencari ekstrema dari determinan matriks Hessian dibandingkan dengan tetangga-tetangganya. Lokalisasi calon fitur kemudian dilakukan pada setiap ruang skala (scale space) dengan menggunakan non-maximum suppression terhadap eksterma dari determinan matriks Hessian.

Hasil akhir dari tahap ini adalah titik-titik acuan atau keypoint yang menunjukkan adanya fitur gelembung (blob-like feature). Gambar 3.8 menunjukkan hasil akhir pendeteksian fitur dengan SURF.

Gambar 3.8 Gambar hasil pendeteksian fitur

(55)

43 Adapun potongan script program untuk pendetksian fitur sebagai berikut:

Pada algoritma SURF terdapat parameter-parameter yang dapat diatur sedemikian rupa untuk mencari keypoint dari citra yang digunakan. Parameter pertama adalah hessian threshold atau ambang batas nilai hessian untuk mendeteksi sebuah keypoint dimana apabila nilai hessian yang lebih besar dari threshold yang digunakan maka akan dipertahankan oleh SURF. Parameter kedua adalah nOctaves atau nilai yang diatur untuk menciptakan banyaknya piramida citra. Parameter ketiga adalah nOctavesLayers atau nilai yang diatur untuk menentukan jumlah citra dari setiap octaves yang telah diatur sebelumnya. Parameter yang terakhir adalah extended atau pengaturan untuk nilai element yang digunakan. Untuk nilai yang digunakan dalam perancangan perangkat lunak ini diambil dengan menggunakan metode heuristik.

Pada parameter hessian threshold dilakukan beberapa kali penggantian nilai dari 300, 400, dan 500, hal ini karena dari beberapa refrensi pada range 300 hingga 500 merupakan nilai terbaik dari SURF. Begitu pun telah dilakukan mengganti nilai hessianthreshold dan disimpulkan SURF untuk mendeteksi keypoint pada nilai paramater 400 didapatkan jumlah keypoint yang tidak rentang terhadap cahaya dari sebuah citra sample.

Pada parameter nOctaves dan nOctavesLayer dilakukan beberapa kali penggantian nilai dan didapatkan pada saat nilai parameter 3 dan 4 SURF mampu membuat keypoint pada citra jauh lebih stabil dibandingkan saat diatur pada nilai 4

#Mengatur parameter SURF

hessianThreshold = 400; nOctaves = 3; nOctaveLayers = 4; extended = 1;

#Memanggil fungsi SURF dengan parameter

surf = cv2.xfeatures2d.SURF_create(hessianThreshold, nOctaves, nOctaveLayers, extended)

#Mencari keypoint dan descriptor pada gambar kp2, des2 = surf.detectAndCompute(img2, None)

(56)

44 dan 5. Dapat disimpulkan hal itu dapat terjadi karena citra yang menjadi database memiliki resolusi yang kecil yang mengakibatkan ketika SURF membuat paramida citra maka citra yang resolusi kecil ketik dibuat semakin blur hanya membuat resolusi citra semakin rendah sehingga apabila nilai parameter diperbesar SURF akan membuat lebih sedikit keypoint pada citra database. Hal ini akan membuat untuk proses pencocokan nantinya hanya akan didapatkan kecocokan yang minim.

Pada parameter extended ini digunakan nilai satu, hal itu karena parameter ini membuat SURF untuk memberi orientasi matriks pada citra semakin besar yang 128, sehingga jumlah keypoint pada citra bisa bertambah. Selain itu dengan citra yang resolusi kecil nilai ini sangat membantu untuk SURF dalam menentukan jumlah keypointnya.

3.3.3.3. Pencocokan Ciri

Pada proses pencocokan ciri menggunakan metode Fast Library Approximated Nearest Neighbor (FLANN) pustaka untuk melakukan pencarian cepat dan perkiraan neighborhood. FLANN merupakan kumpulan algoritma yang bekerja untuk menemukan nilai tetangga terdekat, sementara untuk hasil parameter yang optimal, tergantung pada kumpulan data yang digunakan. Fitur SURF terdiri dari keypoint, deskriptor, dan berupa vektor. Satu citra di basis data memiliki banyak klaster untuk fitur SURF. Klaster ini dibuat. otomatis dengan menggunakan KNN (K-Nearest Neighbor) dengan tipe indeks KD tree, dimana KNN ini akan mencari jarak yang paling kecil antara vektor fitur dengan vektor pada klaster.

Proses pencocokkan fitur pada citra sample dan fitur pada citra dalam database, vektor keypoint, dan deskriptor pada gambar sample akan dicocokkan

Referensi

Dokumen terkait

Sistem menggunakan Raspberry Pi sebagai pusat komputasi pada beberapa lokasi pengamatan yang terhubung dengan suatu komputer server dan telepon pintar atau

Alat yang dibuat pada laporan akhir ini menggunakan sistem mini komputer.. Raspberry Pi yang berfungsi sebagai pusat pengontrolan sistem pembuka

Sistem menggunakan Raspberry Pi sebagai pusat komputasi pada beberapa lokasi pengamatan yang terhubung dengan suatu komputer server dan telepon pintar atau

Berdasarkan hasil penelitian yang dilakukan, maka dapat disimpulkan bahwa penelitian ini berhasil membuat push button sistem keamanan pintu rumah menggunakan

Sistem menggunakan Raspberry Pi sebagai pusat komputasi pada beberapa lokasi pengamatan yang terhubung dengan suatu komputer server dan telepon pintar atau

Oleh karena itu penulis akan merancang sebuah sistem keamanan menggunakan Raspberry Pi dengan dua buah sensor getar dan sensor PIR serta Kamera untuk membantu manusia dalam

Sistem yang akan dibangun, aplikasi keamanan kendaraan yang berbasis IoT akan berkomunikasi dengan mini PC Raspberry Pi yang akan terhubung ke BaaS Firebase , adapun

Dari permasalahan tersebut maka dirancanglah prototipe sistem keamanan pintu rumah otomatis menggunakan rfid berbasis arduino uno sebagai bentuk keamanan yang lebih baik dari yang sudah