TUGAS AKHIR – TE141599
IDENTIFIKASI JUMLAH DAN TINGKAT AKTIVITAS ORANG
BERBASIS PENGOLAHAN CITRA MENGGUNAKAN
RASPBERRY PI
Daniel Krisrenanto NRP 2212 100 074 Dosen Pembimbing Dr. Muhammad Rivai, ST., MT. Fajar Budiman, ST., MSc. JURUSAN TEKNIK ELEKTRO Fakultas Teknologi IndustriTUGAS AKHIR – TE141599
IDENTIFIKASI JUMLAH DAN TINGKAT AKTIVITAS
ORANG BERBASIS PENGOLAHAN CITRA
MENGGUNAKAN RASPBERRY PI
Daniel Krisrenanto NRP 2212 100 074 Dosen Pembimbing Dr. Muhammad Rivai, ST., MT. Fajar Budiman, ST., MSc.JURUSAN TEKNIK ELEKTRO Fakultas Teknologi Industri
Institut Teknologi Sepuluh Nopember Surabaya 2017
FINAL PROJECT – TE141599
IDENTIFICATION OF NUMBER AND ACTIVITY LEVEL
OF PEOPLE BASED ON IMAGE PROCESSING USING
RASPBERRY PI
Daniel Krisrenanto NRP 2212 100 074 Supervisor Dr. Muhammad Rivai, ST., MT. Fajar Budiman, ST., MSc.ELECTRICAL ENGINEERING DEPARTMENT Faculty of Industry Technology
Institut Teknologi Sepuluh Nopember Surabaya 2017
PERNYATAAN KEASLIAN TUGAS AKHIR
Dengan ini saya menyatakan bahwa isi sebagian maupun keseluruhan Tugas Akhir saya dengan Identifikasi Jumlah Dan Tingkat Aktivitas Orang Berbasis Pengolahan Citra Menggunakan Raspberry Pi adalah benar-benar hasil karya intelektual mandiri, diselesaikan tanpa menggunakan bahan-bahan yang tidak diijinkan dam bukan merupakan karya pihak lain yang saya akui sebagai karya sendiri.
Semua referensi yang dikutip maupun dirujuk telah ditulis secara lengkap pada daftar pustaka.
Apabila ternyata pernyataan ini tidak benar, saya bersedia menerima sanksi sesuai peraturan yang berlaku.
Surabaya, Januari 2017
Daniel Krisrenanto 2212100074
IDENTIFIKASI JUMLAH DAN TINGKAT AKTIVITAS ORANG BERBASIS PENGOLAHAN CITRA MENGGUNAKAN
RASPBERRY PI
TUGAS AKHIR
Diajukan Untuk Memenuhi Sebagian Persyaratan Untuk Memperoleh Gelar Sarjana Teknik
Pada
Bidang Studi Teknik Elektronika Jurusan Teknik Elektro Institut Teknologi Sepuluh Nopember
Menyetujui:
Dosen Pembimbing I,
Dr. Muhammad Rivai, ST., MT. NIP: 196904261994031003
Dosen Pembimbing II,
Fajar Budiman, ST., M.Sc. NIP: 198607072014041001
SURABAYA JANUARI, 2017
i
IDENTIFIKASI JUMLAH DAN TINGKAT AKTIVITAS ORANG BERBASIS PENGOLAHAN CITRA MENGGUNAKAN
RASPBERRY PI Nama : Daniel Krisrenanto
Pembimbing I : Dr. Muhammad Rivai, ST., MT. Pembimbing II : Fajar Budiman, ST., MSc.
ABSTRAK
Air conditioner (AC) merupakan suatu perangkat yang paling
banyak digunakan sebagai pendingin ruangan. Walaupun AC saat ini sudah menggunakan teknologi hemat energi, namun apabila tidak digunakan dengan baik maka penggunaan AC hanya menjadi suatu pemborosan listrik saja. Untuk mengurangi pemborosan listrik pada AC, maka pengaturan suhu harus disesuaikan dengan kondisi ruangan. Dimana faktor yang memengaruhi kondisi ruangan antara lain adalah jumlah orang serta tingkat aktivitas dalam ruangan. Sehingga diperlukan sebuah sistem tambahan untuk mengetahui jumlah orang serta tingkat aktivitas.
Dalam tugas akhir ini telah dilakukan rancang bangun suatu sistem identifikasi jumlah orang dan tingkat aktivitas. Sistem ini menggunakan metode Histogram of Oriented Gradient (HOG) sebagai penghitung jumlah orang. Metode background subtraction digunakan sebagai penghitung aktivitas. Sistem ini akan diimplementasikan menggunakan Raspberry Pi 3 sebagai mikrokontroler. Pada sistem ini digunakan kamera USB sebagai perangkat pengambil citra.
Hasil pengujian menunjukkan bahwa sistem dapat mendeteksi orang dari jarak 3 m sampai 9 m dan membedakan 2 orang dengan jarak antara 30 cm sampai 150 cm. Kesalahan sistem dalam mengidentifikasi orang sebesar 37,87%. Sistem juga dapat menghitung gerakan orang serta membedakan tingkat aktivitas orang. Sistem ini diharapkan dapat membantu mengurangi pemborosan listrik pada AC. Kata kunci: Background Subtraction, Histogram of Oriented Gradient, Jumlah Orang, Tingkat Aktivitas
ii
iii
IDENTIFICATION OF NUMBER AND ACTIVITY LEVEL OF PEOPLE BASED ON IMAGE PROCESSING USING
RASPBERRY PI Name : Daniel Krisrenanto
Supervisor : Dr. Muhammad Rivai, ST., MT. Co-Supervisor : Fajar Budiman, ST., MSc.
ABSTRACT
Air conditioner is a device that mostly used to regulate the room temperature. Although almost every air conditioner is now using low power technology, but if it is used incorrectly it will waste the electrical energy consumption. Air conditioner must be used accordingly to reduce the waste of the energy. Air conditioner usage is based on the room condition. Some factors that affect room conditions are number and activity level of people. Therefore, additional system is needed to identify the number and activity level of people.
In this final project, a system to identify the number and activity level of people inside a room has been researched. The system employs camera that is processed using Histogram of Oriented Gradient (HOG) method as the people counter. Background subtraction method is used as the activity counter. The system is implemented with Raspberry Pi 3 as the microcontroller. A webcam or USB camera is used as the data aquisition device and then the data will be processed by the AC remote control.
The result of this final project has shown that the system can detect people at distance between 3 m and 9 m and detect 2 adjacent people between 30 cm to 150 cm. The system’s error during identifying people is 37.87%. The system also can count motion and distinguish activity level of people. The system is expected to help reduce energy wasted on AC.
Keyword: Background Subtraction, Histogram of Oriented Gradient, Level of Activity, Number of People
iv
v
KATA PENGANTAR
Puji syukur ke hadirat Tuhan Yang Maha Esa, karena atas kelimpahan rahmat dan belas kasih-Nya penulis telah mampu meyelesaikan buku tugas akhir dengan judul “Identifikasi Jumlah Dan Tingkat Aktivitas Orang Berbasis Pengolahan Citra Menggunakan Raspberry Pi”. Penulis juga ingin berterimakasih kepada:
1. Orang tua yang selalu mendukung dengan doa,
2. Kakak dan adik yang memberikan motivasi untuk belajar, 3. Ketua Jurusan Teknik Elektro Bapak Dr. Eng. Ardyono
Priyadi, ST., M.Eng.,
4. Dosen pembimbing Bapak Dr. Muhammad Rivai, ST., MT. dan Bapak Fajar Budiman, ST., MSc.,
5. Dosen penguji Bapak Astria Nur Irfansyah, ST., M.Eng., PhD., Bapak Ir. Harris Pirngadi, MT., Bapak Dr. Ir. Hendra Kusuma, M.Eng.Sc, dan Bapak Ir. Tasripan, MT.,
6. Seluruh dosen Teknik Elektro ITS,
7. Teman-teman asisten Laboratorium B202 dan B402 yang senantiasa membantu dan memberikan semangat dalam mengerjakan tugas akhir,
8. Pihak lain yang tidak dapat penulis sebutkan satu per satu. Semoga buku tugas akhir ini dapat menjadi referensi dan tambahan ilmu bagi pembaca. Penulis juga memohon maaf apabila terdapat kesalahan dalam penulisan kata dan kalimat. Selamat membaca.
vi
vii
DAFTAR ISI
ABSTRAK ... i
ABSTRACT ... iii
KATA PENGANTAR ... v
DAFTAR ISI ... vii
DAFTAR GAMBAR ... ix DAFTAR TABEL ... xi BAB I PENDAHULUAN ... 1 1.1 Latar Belakang ... 1 1.2 Permasalahan ... 2 1.3 Tujuan ... 2 1.4 Batasan Masalah ... 2 1.5 Metodologi ... 2 1.6 Sistematika ... 4
1.7 Relevansi dan Manfaat ... 4
BAB II TEORI PENUNJANG ... 5
2.1 Histogram of Oriented Gradient (HOG) ... 5
2.1.1. Komputasi Gradien ... 5 2.1.2 Pengelompokan Orientasi ... 5 2.1.3 Blok Deskriptor ... 6 2.2 Background Subtraction ... 7 2.3 Raspberry Pi 3 ... 8 2.4 Kamera USB... 11
2.5 Sensor Passive Infrared ... 12
2.6 Open Source Computer Vision ... 13
2.7 Warna ... 14
2.8 Thresholding ... 15
2.9 Contour Finding ... 17
2.10 Konvolusi Citra ... 17
BAB III PERANCANGAN SISTEM ... 19
3.1 Perancangan Software ... 19
3.1.1 Identifikasi Jumlah Orang ... 20
3.1.2 Identifikasi Tingkat Aktivitas ... 20
3.1.3 Halt otomatis ... 22
3.2 Perancangan Hardware ... 22
3.2.1 Rangkaian Reset ... 23
viii
BAB IV PENGUJIAN DAN ANALISIS ... 27
4.1 Pengujian Jangkauan Sensor PIR ... 27
4.2 Pengujian Detektor Orang ... 28
4.2.1 Pengujian Penghitung Orang ... 28
4.2.2 Pengujian Jarak Deteksi Antara Kamera Dengan Orang ... 34
4.2.3 Pengujian Dengan Orang yang Berdekatan ... 35
4.3 Pengujian Detektor Gerakan Orang ... 38
BAB V PENUTUP ... 45 5.1 Kesimpulan ... 45 5.2 Saran ... 45 DAFTAR PUSTAKA ... 47 LAMPIRAN ... 49 BIODATA PENULIS ... 53
ix
DAFTAR GAMBAR
Gambar 2.1 Visualisasi hasil komputasi besaran dan
orientasi gradien ... 6
Gambar 2.2 Proses background subtraction dengan 2 frame ... 8
Gambar 2.3 Layout Raspberry Pi 3 ... 9
Gambar 2.4 Diagram blok Raspberry Pi 3 ... 10
Gambar 2.5 Webcam ... 11
Gambar 2.6 Prinsip kerja sensor PIR ... 12
Gambar 2.7 Modul sensor PIR ... 13
Gambar 2.8 Macam-macam thresholding ... 16
Gambar 2.9 Deteksi kontur ... 17
Gambar 2.10 Visualisasi konvolusi citra ... 18
Gambar 3.1 Diagram alir software ... 19
Gambar 3.2 Diagram alir proses identifikasi jumlah orang ... 20
Gambar 3.3 Diagram alir penghitungan tingkat aktivitas ... 21
Gambar 3.4 Pin RUN Raspberry Pi... 22
Gambar 3.5 Diagram hardware sistem ... 23
Gambar 3.7 Skematik Rangkaian Reset ... 24
Gambar 3.8 Rangkaian pin V0 LCD ... 25
Gambar 4.1 Rangkaian reset dengan sensor PIR ... 27
Gambar 4.2 Pengujian jangkauan sensor PIR ... 28
Gambar 4.2 Hasil deteksi tingkat aktivitas dan citra biner ... 39
Gambar 4.3 Grafik luas daerah objek pertama kategori aktivitas sedikit ... 39
Gambar 4.4 Grafik luas daerah objek pertama kategori aktivitas sedang ... 40
Gambar 4.5 Grafik luas daerah objek pertama kategori aktivitas tinggi ... 40
Gambar 4.6 Grafik luas daerah objek kedua kategori aktivitas sedikit ... 41
Gambar 4.7 Grafik luas daerah objek kedua kategori aktivitas sedang ... 41
Gambar 4.8 Grafik luas daerah objek kedua kategori aktivitas tinggi ... 42
Gambar 4.9 Grafik luas daerah objek ketiga kategori aktivitas tinggi ... 42
x
Gambar 4.10 Grafik luas daerah objek ketiga kategori aktivitas
sedang ... 43
Gambar 4.11 Grafik luas daerah objek ketiga kategori aktivitas
xi
DAFTAR TABEL
Tabel 3.1 Pemasangan port LCD dan GPIO Raspberry Pi ... 25
Tabel 4.1 Hasil pengujian sensor PIR tanpa halangan ... 27
Tabel 4.2 Hasil pengujian penghitung orang ... 29
Tabel 4.3 Perbandingan deteksi dengan jurnal lain ... 34
Tabel 4.4 Hasil pengujian jarak deteksi orang ... 35
Tabel 4.5 Hasil pengujian dengan orang berdekatan ... 36
xii
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Permasalahan seperti perubahan iklim, pencemaran air, udara, dan tanah, krisis air, energi, dan sumber daya alam, serta berkurangnya lahan hijau saat ini menjadi isu lingkungan global yang merupakan masalah nyata. Institut Teknologi Sepuluh Nopember (ITS) berkomitmen untuk berperan aktif dalam pengembangan ilmu dan teknologi serta penerapan gaya hidup yang berwawasan lingkungan dan berbasis eco-campus [1].
Penggunaan listrik yang tidak efisien merupakan akibat dari pemakaian perangkat elektronik secara tidak wajar. Salah satu perangkat elektronik yang sering digunakan secara tidak wajar adalah air
conditioner (AC). Penggunaan AC yang tidak wajar terjadi antara lain,
ketika AC yang dinyalakan walaupun tidak ada kegiatan di dalam ruangan, pengaturan suhu yang kurang tepat, dan AC dipasang pada ruangan yang tidak sesuai dengan desain AC. AC akan bekerja semaksimal mungkin, walaupun efek pendinginan tidak dapat dirasakan. Hal ini hanya menjadi suatu tindakan pemborosan listrik saja. Melihat kondisi seperti ini maka dibutuhkan suatu sistem otomasi untuk mengatur AC yang fleksibel dan mementingkan kenyamanan pengguna ruangan serta mampu meningkatkan penghematan listrik.
Oleh karena itu, pada tugas akhir ini dirancang sebuah sistem yang dapat mengidentifikasi jumlah orang dan tingkat aktivitas menggunakan kamera. Sistem ini diharapkan dapat menghitung jumlah orang dan tingkat aktivitas, sehingga dapat digunakan sebagai sensor tambahan pada AC yang dapat mengetahui kondisi ruangan. Sistem identifikasi ini dilengkapi dengan kamera sebagai perangkat pengambilan citra yang kemudian diproses untuk mendapatkan data jumlah orang dan tingkat aktivitas. Data jumlah orang dan tingkat aktivitas kemudian digunakan sebagai input kontroler AC.
2
1.2 Permasalahan
Berdasarkan latar belakang di atas, maka pada tugas akhir dirumuskan beberapa masalah, antara lain:
1. Bagaimana cara mengidentifikasi jumlah orang.
2. Bagaimana cara mengidentifikasi tingkat aktivitas orang. 3. Bagaimana cara menyalakan dan mematikan sistem secara
otomatis.
1.3 Tujuan
Tujuan dari pembuatan tugas akhir ini adalah:
1. Merancang sebuah sistem yang mampu mengidentifikasi jumlah orang dengan metode Histogram of Oriented Gradient (HOG).
2. Merancang sebuah sistem yang mampu mengidentifikasi tingkat aktivitas dengan metode background subtraction. 3. Merancang sebuah sistem yang mempu menyala dan mati
secara otomatis sesuai kondisi ruangan.
1.4 Batasan Masalah
Batasan masalah pada tugas akhir ini adalah sebagai berikut: 1. Kapasitas ruangan yang digunakan adalah 20 orang. 2. Mikrokontroler yang digunakan adalah Raspberry Pi 3. 3. Kamera yang digunakan adalah kamera USB.
4. Orang yang dideteksi berdiri tegak
1.5 Metodologi
Tugas akhir ini dikerjakan dengan metodologi penelitian sebagai berikut:
1. Studi Literatur
Pada tahap studi literatur dilakukan pengumpulan dasar teori yang menunjang dalam penulisan tugas akhir. Dasar teori tersebut diambil dari artikel-artikel di internet dan forum-forum diskusi.
2. Perancangan Hardware
Tahap perancangan hardware merupakan tahap perancangan sistem pengambilan citra pada Raspberry Pi. Raspberry Pi menggunakan kamera USB sebagai perangkat pengambil citra.
3
Raspberry Pi dilengkapi dengan rangkaian reset yang digunakan untuk menyalakan kembali Raspberry Pi dari kondisi halt. Raspberry Pi juga dirangkai dengan LCD sebagai tampilan.
3. Perancangan Software
Tahap perancangan software merupakan tahap perancangan sistem identifikasi jumlah orang dan aktivitas orang. Pada tahap ini Raspberry Pi diprogram untuk mampu mengidentifikasi jumlah orang dengan proses object detection menggunakan
Histogram of Oriented Gradient (HOG). Kemudian dilanjutkan
dengan proses background subtraction untuk menghasilkan data tingkat aktivitas. Apabila jumlah orang sama dengan nol selama selang waktu tertentu, maka Raspberry Pi diperintahkan untuk halt.
5. Pengujian dan Analisis
Proses pengujian sistem diawali dengan pengujian sensor PIR, untuk mengetahui kemampuan sensor PIR dalam mendeteksi gerakan di dalam ruangan.
Pengujian berikutnya adalah untuk mengetahui
kemampuan metode HOG dalam mendeteksi orang. Pengujian dilakukan menggunakan kamera USB sebagai perangkat pengambil citra.
Pengujian selanjutnya adalah untuk mengetahui
kemampuan metode background subtraction untuk mendeteksi gerakan orang. Pengujian dilakukan menggunakan kamera USB sebagai perangkat pengambil citra.
6. Penulisan Laporan Tugas Akhir
Tahap penulisan laporan tugas akhir adalah tahapan terakhir dari proses pengerjaan tugas akhir ini. Laporan tugas akhir berisi seluruh hal yang berkaitan dengan tugas akhir yang telah dikerjakan yaitu meliputi pendahuluan, teori dasar, perancangan sistem, pengujian alat, dan kesimpulan dan saran.
4
1.6 Sistematika
Sistematika pembahasan Tugas Akhir ini terdiri atas lima bab, yaitu pendahuluan, teori penunjang, perancangan sistem, pengujian dan analisis, serta penutup.
BAB I PENDAHULUAN
Bab ini meliputi penjelasan latar belakang, rumusan masalah, batasan masalah, tujuan, metodologi, sistematika penulisan, dan relevansi. BAB II TEORI PENUNJANG
Bab ini menjelaskan tentang teori penunjang dan literatur yang dibutuhkan dalam mengerjakan tugas akhir ini.
BAB III PERANCANGAN SISTEM
Bab ini menjelasakan tentang perencanaan sistem baik perangkat keras (hardware) maupun perangkat lunak (software) untuk sistem identifikasi jumlah dan tingkat aktivitas.
BAB IV PENGUJIAN DAN ANALISIS
Pada bab ini akan menjelaskan hasil uji coba sistem beserta analisis. BAB V PENUTUP
Bagian ini merupakan bagian akhir yang berisi kesimpulan yang diperoleh dari pembuatan tugas akhir ini, serta saran-saran untuk pengembangan lebih lanjut.
1.7 Relevansi dan Manfaat
Pembuatan tugas akhir ini diharapkan mampu memberikan solusi pada masalah perubahan iklim, yaitu dengan membantu dalam mengurangi pemborosan listrik. Bantuan tersebut berupa sebuah sistem yang dapat mengatur AC sesuai kondisi ruangan dan dapat membantu manusia dalam menggunakan AC secara tepat.
5
BAB II
TEORI PENUNJANG
2.1 Histogram of Oriented Gradient (HOG)
Pada desain tugas akhir ini, digunakan metode Histogram of
Oriented Gradient (HOG) sebagai metode object detection. Dengan
alasan bahwa postur orang yang dideteksi memiliki variasi penampilan dan kemungkinan situasi yang tinggi [3]. Metode HOG memberikan fleksibilitas yang lebih daripada metode lain, karena metode ini berdasarkan feature based yang melihat tampilan lokal dan bentuk objek pada citra berupa intensitas distribusi gradien atau arah kontur [3]. Metode ini menggunakan database berupa histogram yang berisi kumpulan nilai gradien pada sebaran orientasi tertentu. Citra yang akan digunakan diubah menjadi grayscale kemudian dinormalisasi kecerahannya serta melalui proses koreksi gamma. Algoritma HOG dapat disederhanakan menjadi 3 tahapan. Tahapan tersebut yaitu: komputasi gradien, pengelompokan orientasi, dan pembuatan blok deskriptor [4].
2.1.1. Komputasi Gradien
Citra yang telah diubah menjadi grayscale diturunkan dengan mengkonvolusikan citra dengan matriks:
[ ] [ ] (2.1)
Setelah mendapatkan turunan x dan y (IX dan IY), kemudian nilai besaran dan orientasi vektor tersebut dihitung:
| | √ (2.2)
Perlu diperhatikan bahwa orientasi θ harus dalam rentang [0°,360°], karena dalam implementasi ini nilai orientasi harus bernilai positif. Hasil komputasi gradien pada citra dapat dilihat pada Gambar 2.1.
2.1.2 Pengelompokan Orientasi
Tahap berikutnya adalah pembuatan histogram pada tiap sel yang akan digunakan untuk membuat blok deskriptor. Citra dibagi menjadi sel-sel berukuran 8x8 piksel. Gradien piksel tiap sel dikelompokkan berdasarkan orientasi. Gradien piksel tiap sel dibagi menjadi 9 kelompok dalam rentang 0° sampai 180° [3, 4]. Kemudian besaran gradien piksel akan dijumlahkan pada setiap kelompok.
6
Gambar 2.1 Visualisasi hasil komputasi besaran dan orientasi gradien
[4]
2.1.3 Blok Deskriptor
Proses normalisasi untuk membuat blok deskriptor diawali dengan pengelompokan sel-sel menjadi blok. Setiap blok berukuran 2x2 sel dan setiap sel berukuran 8x8 piksel. Blok yang berdekatan menindih sebagian blok lain yang berdekatan [3].
Pada citra lokal terdapat kontras yang kompleks antara
foreground, background dan pencahayaan. Sehingga rentang nilai
gradien sangat besar dan gradien lokal memerlukan standardisasi yang efektif. Terdapat berbagai macam metode standardisasi, prinsip dasarnya adalah dengan menggabungkan sel-sel menjadi ruangan yang lebih besar dan menstandardisasi setiap blok. Karena setiap blok merupakan hasil sampling data yang padat, maka akan terjadi banyak hallmark yang dihitung berulang kali di blok yang berbeda. Walaupun terdapat data yang sangat banyak, metode yang menggunakan blok-blok yang saling menindih dan penghitungan fitur yang terstandardisasi dapat meningkatkan hasil klasifikasi [5].
7
Asumsikan bahwa adalah vektor tanpa normalisasi, ‖ ‖ adalah vektor hasil normalisasi dengan metode dimana K = 1, 2. adalah konstanta normalisasi yang kecil untuk menghindari pembagi nol. Terdapat 4 macam metode normalisasi:
Metode L2-Norm:
√‖ ‖
(2.3) Metode L1-Norm:
√‖ ‖ (2.4) Metode L1-Sqrt:
√
‖ ‖ (2.5)Metode L2-Hys adalah metode L2-Norm yang dinormalisasi kembali ketika bernilai maksimum 0.2. [5]
Deskriptor hasil normalisasi tersebut disebut dengan deskriptor HOG yang berupa vektor 1-D dengan ukuran sebesar jumlah blok pada citra×jumlah sel pada citra×9 [3]. Deskriptor HOG didapatkan dengan melakukan proses 2.1.1 sampai 2.1.3 pada setiap blok yang ada pada citra. Deskriptor HOG ini kemudian digunakan sebagai acuan proses
object detection.
2.2 Background Subtraction
Tujuan utama dari background subtraction adalah untuk mendeteksi semua objek foreground dengan mengambil frame secara berurutan dari sebuah kamera tetap [6]. Pendekatan paling sederhana adalah dengan mengurangkan citra frame dengan citra background yang statis. Pendekatan ini memerlukan sebuah citra background yang statis, dimana citra tersebut dapat merepresentasikan latar belakang dari objek
foreground suatu citra frame. Citra background tidak selalu tetap, tetapi
mampu beradaptasi dengan berbagai perubahan, seperti kecerahan, getaran pada kamera, dan perubahan geometri background.
8 I(t) B(t-1) DELAY abs
T
λ
Gambar 2.2 Proses background subtraction dengan 2 frame [7]
Selain menggunakan citra background statis, proses background
subtraction dapat dilakukan dengan mengurangkan frame terbaru
dengan frame sebelumnya. Kemudian hasil pengurangan tersebut di
threshold untuk mengidentifikasi objek foreground. Metode ini lebih
mudah digunakan dan lebih adaptif. Metode ini memerlukan dua frame yang diambil secara berurutan dengan waktu delay tertentu. Objek yang diam akan dianggap sebagai background, sedangkan objek yang bergerak akan terdeteksi. Gambaran proses background subtraction dengan 2 frame dapat dilihat di Gambar 2.2.
2.3 Raspberry Pi 3
Raspberry Pi 3 adalah sebuah Single Board Computer yang berupa komputer papan tunggal yang lengkap dengan mikroprosessor, memori, input/output (I/O) dan fitur lain yang dibutuhkan dari sebuah komputer fungsional. SBC menggunakan memori eksternal seperti kartu SD dan kartu mikro SD. Raspberry Pi adalah komputer papan tunggal (Single Board Computer/SBC) yang memiliki ukuran sebesar kartu kredit. Raspberry Pi bisa digunakan untuk berbagai keperluan seperti
spreadsheet, game, bahkan sebagai media player. Raspberry Pi
dikembangkan oleh Raspberry Pi Foundation yang digawangi sejumlah
developer dan ahli komputer dari Universitas Cambridge, Inggris.
9
Raspberry Pi 3 yang memiliki prosesor ARM Cortex-A53 1.2GHz quad-core dan RAM 1 GB. Raspberry Pi 3 memiliki prosesor Broadcom BCM2837 ARMv8-A Quad Core 64bit. Dengan RAM 1 GB Raspberry Pi 2 dapat digunakan untuk aplikasi yang lebih besar dan
powerful. GPU pada Raspberry Pi 3 adalah 400MHz VideoCore IV yang
lebih powerful daripada versi sebelumnya. Raspberry Pi 3 dilengkapi dengan 4 buah port USB 2, 40 pin GPIO, 4 pole stereo output dan
composite video port, port HDMI, port 10/100 Ethernet, port CSI untuk
kamera Raspberry Pi, dan port DSI untuk menghubungkan dengan tampilan touch screen. USB port mampu menyediakan arus hingga 1.2A, sehingga mampu memberikan daya lebih untuk perangkat USB yang membutuhkan daya lebih. Gambar 2.4 menunjukkan diagram blok sistem Raspberry Pi 3.
10
11
Gambar 2.5 Webcam [10]
2.4 Kamera USB
Kamera USB atau yang sering disebut dengan webcam adalah sebuah kamera digital yang kompak yang dapat dihubungkan ke komputer untuk menampilkan citra secara real time [11]. Kamera USB menerima cahaya melalui lensa, kemudian diteruskan ke suatu kumpulan detektor cahaya berukuran mikroskopik (dapat berupa charge
coupled device (CCD) atau CMOS image sensor). Sensor akan
mengubah intensitas cahaya yang diterima menjadi data digital dengan bantuan rangkaian elektronik. Data digital yang didapat berupa deretan 0 (nol) dan 1 (satu) yang dapat diproses dengan komputer. Kamera USB tidak dilengkapi dengan kartu memori karena fungsinya hanya mengubah sinyal cahaya menjadi sinyal digital yang kemudian dikirimkan ke komputer atau perangkat pemrosesan citra lainnya. Salah satu wujud kamera USB atau webcam dapat dilihat di Gambar 2.5.
12
Gambar 2.6 Prinsip kerja sensor PIR [12]
2.5 Sensor Passive Infrared
Sensor Passive Infrared (PIR) adalah sensor elektronik yang mengukur cahaya inframerah yang diradiasikan oleh suatu objek yang melewati daerah deteksi sensor. Tujuan dari sensor PIR adalah mendeteksi gerakan dalam suatu daerah tertentu. Sensor ini memiliki 2 bagian yang sensitif terhadap inframerah. Karena pergerakan yang dideteksi, maka sinyal yang dihasilkan oleh sensor mencerminkan perbedaan nilai inframerah antara kedua bagian. Jika kedua bagian menangkap jumlah inframerah yang sama, maka sensor tidak mendeteksi apapun. Tetapi jika satu bagian membaca jumlah inframerah yang lebih atau kurang dari yang lain, maka sensor mendeteksi suatu gerakan dan tegangan output berubah.
13
Gambar 2.7 Modul sensor PIR [13]
2.6 Open Source Computer Vision
Open Source Computer Vision (OpenCV) adalah sebuah API
(Application Programming Interface) library yang sudah sangat familiar pada bidang pengolahan citra berbasis komputer. Computer vision sendiri adalah salah satu cabang dari bidang ilmu pengolahan citra (Image Processing) yang memungkinkan komputer dapat melihat seperti manusia. Dengan computer vision tersebut komputer dapat mengambil keputusan, mengambil tindakan, dan mengenali suatu objek tertentu. Beberapa implementasi dari computer vision adalah face recognition,
face/object detection, face/object tracking, road tracking, motion detection, dan lain sebagainya.
OpenCV adalah library open source untuk computer vision yang dapat diimplementasikan menggunakan bahasa pemrograman C/C++ , Python, Java dan Matlab/Octave. OpenCV didesain untuk aplikasi
real-time, memiliki fungsi-fungsi akuisisi yang baik untuk citra dan video.
OpenCV juga menyediakan interface ke Integrated Performance
Primitives (IPP) Intel sehingga aplikasi computer vision dapat
dioptimasi jika menggunakan prosesor Intel [14]. Fitur yang dimiliki OpenCV antara lain :
1) Manipulasi data citra (allocation, copying, setting, convert). 2) Input/output citra dan video (input kamera atau file, output citra
atau video).
3) Manipulasi matriks dan vektor beserta fungsi-fungsi aljabar linear (products, solvers, eigenvalues, SVD).
14
5) Pemrosesan citra fundamental (filtering, edge detection, corner
detection, sampling and interpolation, color conversion, morphological operations, histograms, image pyramids).
6) Analisis struktur (connected components, contour processing,
distance Transform, various moments, template matching,
Hough Transform, polygonal approximation, line fitting, ellipse
fitting, Delaunay triangulation).
7) Kalibrasi kamera (calibration patterns, estimasi fundamental
matrix, homography estimation, stereo correspondence).
8) Analisis gerakan (optical flow, segmentation, tracking). 9) Pengenalan objek (eigen-methods, HMM).
10) Graphical User Interface (penampilan citra dan video, memroses input dari keyboard dan mouse, scroll-bars).
2.7 Warna
Dengan menggunakan 3 buah reseptor manusia dapat membedakan banyak warna. Warna tricromatic RGB dalam sistem grafis umumnya menggunakan 3 byte, atau sekitar 16 juta kode warna. Dikatakan kode warna dan bukan warna karena manusia tidak dapat membedakan warna sebanyak itu. Mesin dapat membedakan antara berbagai kode warna, namun perbedaan tersebut belum tentu dapat menunjukan perbedaan yang dapat ditangkap oleh mata manusia. Tiap 3 byte pada pixel RGB mencangkup 1 byte pixel untuk tiap warna Red (merah), Green (hijau), Blue (biru) [15].
Gambar direpresentasikan sebagai matrik dengan elemen integer atau piksel. Biasanya piksel tidak disimpan dalam bentuk matrik sederhana, namun menggunakan data yang lebih rumit. Dan terkadang memudahkan secara matematis jika kita beranggapan gambar berwarna sebagai matrik dari vektor tiga dimensi [16].
(2.6)
Bila dibandingkan dengan gambar biasa, gambar grayscale memilki akurasi yang kurang, hal ini terutama dikarenakan warna dapat membantu kita dalam membedakan objek dengan lebih baik. Namun untuk beberapa aplikasi penggunaan warna akan meningkatkan pengeluaran, sehingga tidak diusulkan. Hal ini dikarenakan, tidak hanya karena kamera berwarna yang harganya lebih mahal, juga disebabkan karena dengan menggunakan warna maka diperlukan tiga buah digitizer, dan tiga buah frame untuk memasukkan gambar tersebut. Dan karena
15
dengan menggunakan gambar berwarna maka diperlukan pemrosesan yang lebih banyak dalam menginterpretasikan gambar berwarna dengan sepenuhnya [17].
Sedangkan pada grayscale, tiap warna direpresentasikan oleh 1 bit piksel, dimana tiap bit dari piksel yang merepresentasikan gambar
grayscale adalah suatu nilai yang menunjukkan nilai intensitas dari
gambar yang berada pada posisi tersebut. Sehingga dapat diproses sebagai entitas tunggal pada komputer. Tidak seperti gambar RGB, yang merupakan suatu set yang berisi tiga bit data, maka diperlukan tiga buah angka untuk merepresentasikan informasi yang ada di dalamnya. Sehingga pada gambar grayscale diperlukan proses komputasi yang lebih sedikit di bila bandingkan dengan gambar berwarna.
2.8 Thresholding
Proses segmentasi citra melibatkan pemisahan citra menjadi beberapa daerah. Salah satu properti yang digunakan sebagai dasar untuk proses segmentasi adalah intensitas. Setiap piksel pada tiap daerah memiliki intensitas yang berbeda-beda. Segmentasi yang menggunakan properti intensitas tiap daerah disebut juga thresholding, yaitu pemisahan daerah intensitas tinggi (terang) dengan daerah intensitas rendah (gelap). Proses thresholding menciptakan citra biner dari citra
grayscale [18].
Library OpenCV menyediakan 5 macam proses thresholding, yaitu binary threshold, inverted binary threshold, truncated threshold, threshold to zero, dan inverted threshold to zero. Secara grafis thresholding dapat dilihat di Gambar 2.8. Secara matematis setiap proses
dinyatakan sebagai berikut:
Binary threshold:
( ) { Jika src(x,y) > thresh yang lainnya
(2.7)
Inverted binary threshold:
( ) {
Jika src(x,y) > thresh yang lainnya
(2.8)
Truncated threshold:
( ) { ( ) Jika src(x,y) > thresh yang lainnya
16
Threshold to zero:
( ) { ( ) Jika src(x,y) > thresh yang lainnya
(2.10)
Inverted threshold to zero:
( ) { ( ) Jika src(x,y) > thresh yang lainnya
(2.11)
Dimana:
src(x,y): Nilai piksel sebelum thresholding dst(x,y): Nilai piksel setelah thresholding thresh: Nilai batas untuk thresholding
maxVal: Nilai maksimum piksel pada kanal tersebut
17
Gambar 2.9 Deteksi kontur
2.9 Contour Finding
Kontur adalah sebuah kumpulan titik-titik yang
merepresentasikan sebuah kurva dalam suatu citra. Representasi ini dapat berbeda-beda tergantung dari keadaan yang terjadi [15].
Beberapa model dalam pencarian kontur yang sering dipakai antara lain, pendekatan struktural dengan perluasan daerah, pendekatan stokastik, dan pendekatan variasional, yang berdasarkan berbagai macam strategi seperti level set formulations, meminimalisasi total variasi dari kuantitas tertentu atau fungsi Mumford-Shah, metode kontur aktif dan metode kontur aktif geodesik, snakes, transformasi wavelet, atau gradien bentuk. Pendekatan lain adalah berdasarkan analisis topologi asimptotik yang terdiri dari pendeteksian tepi sebagai retakan [20].
2.10 Konvolusi Citra
Konvolusi mengoperasikan dua buah sinyal (dalam 1D) atau dua buah citra (dalam 2D). Satu sinyal (atau gambar) merupakan input dan yang lain disebut sebagai kernel yang berfungsi untuk memfilter input, dan menghasilkan citra output. Sebuah kernel adalah sebuah matriks kecil yang digunakan pada konvolusi. Kernel dengan ukuran dan nilai yang berbeda akan menghasilkan citra hasil konvolusi yang berbeda juga [21].
Konvolusi citra merupakan konvolusi dikrit pada dua dimensi. Definisi secara matematis ditunjukkan pada persamaan berikut:
18 Dimana:
I’(u,v): output piksel di koordinat (u,v) I(u,v): input piksel di koordinat (u,v) H(i,j): filter kernel berukuran i × j
Citra input dan output terdiri dari width × height piksel. Konvolusi citra menggunakan filter kernel dilakukan dengan mengalikan citra input dengan filter kernel secara element-wise. Piksel yang sedang dihitung, I’(u,v), adalah jumlah semua piksel I(u,v) pada citra input yang telah dikalikan dengan koefisien pada filter kernel H [22].
19
BAB III
PERANCANGAN SISTEM
3.1 Perancangan Software
Pada tahap perancangan software Raspberry Pi diprogram untuk mampu mengidentifikasi jumlah orang dan aktivitas. Selain itu, Raspberry Pi juga diprogram untuk dapat melakukan halt secara otomatis. Secara garis besar, perancangan software dapat dilihat pada Gambar 3.1. Software dirancang menggunakan bahasa pemrograman python.
Start
Data jumlah orang Proses Object Detection
dengan HOG Apakah jumlah orang = 0 Proses Background Subtraction Data tingkat aktivitas
Zero people frame = 0
T
Zero people frame = +1
Apakah zero people frame = nilai frame delay T Raspberry Pi halt End Kamera mengambil citra
20
Start
Memperkecil ukuran citra
Deteksi objek Data jumlah orang Kamera mengambil citra End
Gambar 3.2 Diagram alir proses identifikasi jumlah orang 3.1.1 Identifikasi Jumlah Orang
Proses identifikasi jumlah orang sesuai dengan Gambar 3.2 diawali dengan pengambilan citra dari kamera. Kemudian ukuran citra diperkecil untuk mengurangi waktu deteksi. Selanjutnya citra dideteksi menggunakan sintaks detectMultiScale dengan HOG deskriptor untuk menghitung jumlah orang pada citra yang diambil.
3.1.2 Identifikasi Tingkat Aktivitas
Proses identifikasi tingkat aktivitas menggunakan metode
background subtraction. Proses diawali dengan kamera mengambil citra
pertama. Setelah selang waktu tertentu kamera mengambil citra berikutnya. Kemudian ukuran citra diperkecil dan dilanjutkan dengan mengubah citra menjadi grayscale. Pencarian citra selisih menggunakan sintaks cv2.absdiff. Sintak cv2.absdiff melakukan diferensiasi absolut antara dua matriks citra untuk menghasilkan citra selisih. Citra selisih antara citra pertama dan citra berikutnya kemudian di threshold untuk mendapatkan citra biner.
Proses penghitungan aktivitas diawali dengan mencari kontur pada citra selisih yang telah di threshold. Setelah daerah-daerah kontur ditemukan, maka luasan daerah-daerah tersebut dicari. Apabila luasan daerah tersebut di bawah nilai tertentu, maka pada daerah tersebut dinyatakan tidak ada gerakan atau aktivitas. Apabila luasan daerah
21
tersebut di atas nilai tertentu, maka pada daerah tersebut dinyatakan terdapat gerakan atau aktivitas. Kemudian daerah-daerah yang terdapat aktivitas dihitung sebagai output identifikasi tingkat aktivitas. Proses penghitungan aktivitas dapat dilihat pada Gambar 3.3
Start
delay
Memperkecil ukuran citra
Selisih citra 1 dan citra 2 Mengubah citra menjadi
grayscale
Threshold
Absolut hasil selisih
A Kamera mengambil citra 1 Kamera mengambil citra 2 Mencari kontur
Mencari luasan kontur
Menghitung luasan kontur yang terdapat aktivitas
Data jumlah aktivitas
A
End
22
Gambar 3.4 Pin RUN Raspberry Pi 3.1.3 Halt otomatis
Sistem dirancang untuk dapat melakukan halt otomatis. Halt otomatis digunakan untuk mematikan Raspberry Pi dan AC. Raspberry Pi dan AC dimatikan apabila kondisi ruangan tidak memerlukan pendinginan AC yaitu ketika tidak ada orang di dalam ruangan. Proses
halt otomatis diawali dengan penghitungan frame citra dengan data
jumlah orang sama dengan nol. Nilai penghitungan ini disimpan pada variabel zero people frame. Penghitungan dilakukan terus sampai variabel zero people frame sama dengan nilai frame delay. Frame delay adalah sebuah nilai yang harus dicapai sebelum Raspberry Pi dan AC di
halt. Variabel ini diperlukan agar Raspberry Pi dan AC tidak langsung
di halt apabila satu frame memiliki data jumlah orang sama dengan nol. Apabila variabel zero people frame sama dengan nilai frame delay maka Raspberry Pi dan AC di halt. Sekuen halt otomatis dapat dilihat pada Gambar 3.1.
3.2 Perancangan Hardware
Pada tahap perancangan hardware, sistem dirancang untuk dapat menyala otomatis dengan rangkaian reset Raspberry Pi. Raspberry Pi juga dilengkapi dengan LCD sebagai local display. Kamera USB dipasang di port USB Raspberry Pi sebagai perangkat pengambil citra. Diagram pemasangan hardware dapat dilihat di Gambar 3.
23 Kamera USB Rangkaian Reset Raspberry Pi Raspberry Pi LCD 20×4
Gambar 3.5 Diagram hardware sistem 3.2.1 Rangkaian Reset
Sistem dirancang untuk dapat menyala secara otomatis, karena sistem diharapkan mampu berjalan tanpa bantuan atau campur tangan orang. Sistem didesain untuk menyala kembali ketika kondisi ruangan memerlukan pendinginan AC yaitu ketika terdapat aktivitas orang di dalam ruangan. Aktivitas atau gerakan orang dapat dideteksi dengan sensor PIR.
Penyalaan sistem secara otomatis dilakukan dengan menyalakan kembali (reboot) Raspberry Pi yang dalam kondisi halt. Raspberry Pi dinyatakan dalam kondisi halt yaitu ketika Raspberry Pi tidak melakukan proses apapun walaupun masih menerima suplai daya.
Raspberry Pi dapat di reboot dari kondisi halt dengan
menghubungsingkatkan pin RUN pada Raspberry Pi. Lokasi pin RUN Raspberry Pi 3 berdekatan dengan pin 39 GPIO dan dapat dilihat pada Gambar 3.4.
Raspberry Pi dirangkai dengan sebuah rangkaian reset. Rangkaian reset akan mendeteksi gerakan orang dengan sensor PIR, kemudian sensor PIR mengirim sinyal ke sebuah relay untuk menghubungsingkatkan pin RUN Raspberry Pi. Skematik rangkaian reset dapat dilihat di Gambar 3.6.
24
Gambar 3.7 Skematik Rangkaian Reset
Komponen yang digunakan: D1, D2: 1N4002 RY1, RY2: HRS2H-S DC5V C2, C3: 470μF/16V C1: 2200μF/16V Q1: IRF9530N TR1: C106D R2: 2KΩ PIR: HC-SR501
Relay RY1 digunakan sebagai pengaman Raspberry Pi. Relay
RY1 yang NC akan menjadi open ketika mendapat sinyal HIGH dari Raspberry Pi. Sinyal HIGH ini menandakan bahwa Raspberry Pi tidak dalam kondisi halt. Pemasangan RY1 ini bertujuan untuk mencegah terjadinya hubung singkat pada pin RUN Raspberry Pi yang sedang berjalan.
Tipe MOSFET Q1 adalah P-Channel dengan VGS(th) bernilai negatif. Ketika output sensor PIR dalam keadaan LOW, maka VGS MOSFET Q1 bernilai negatif, sehingga RDS On dan arus mengalir mengisi kapasitor C1. Ketika sensor PIR mendeteksi gerakan orang, maka output sensor menjadi HIGH. Hal ini mengakibatkan VGS MOSFET Q1 mendekati nol sehingga RDS Off dan menghentikan proses pengisian kapasitor C1. Dalam waktu yang sama output PIR memberikan sinyal HIGH pada SCR TR1 sehingga kapasitor C1 mengeluarkan muatannya ke relay RY2. Hal ini mengakibatkan perubahan pada relay RY2 yang semula NO menjadi closed dan
25
menghubungsingkatkan pin RUN Raspberry Pi. Ketika seluruh muatan kapasitor C1 dikeluarkan ke relay RY2, SCR TR1 akan berhenti konduksi dan menghalangi arus menuju relay RY2.
3.2.2 LCD Display
Sistem yang dirancang dilengkapi dengan LCD display. Tujuan dari pemasangan LCD display ini adalah sebagai media yang menampilkan informasi tentang keadaan sistem. Informasi yang ditampilkan pada LCD adalah jumlah orang, jumlah aktivitas, suhu AC sekarang, dan FPS. Pin-pin LCD dihubungkan ke port GPIO Raspberry Pi. Pin LCD dan GPIO Raspberry Pi dirangkai sesuai Tabel 3.1. Pin VSS dihubungkan dengan port GROUND, pin VDD dihubungkan dengan port 5V POWER, dan V0 dihubungkan sesuai dengan Gambar 3.8. Resistor R1 bernilai 5KΩ.
Tabel 3.1 Pemasangan port LCD dan GPIO Raspberry Pi
Port LCD GPIO Raspberry Pi
RS RW EN D4 D5 D6 D7 GPIO 10 GPIO 9 GPIO 11 GPIO 6 GPIO 13 GPIO 19 GPIO 26
26
27
BAB IV
PENGUJIAN DAN ANALISIS
4.1 Pengujian Jangkauan Sensor PIR
Pengujian ini dilakukan untuk mengetahui seberapa jauh jangkauan PIR dalam mendeteksi gerakan manusia. Sensor PIR diletakkan 75 cm dari tanah.
Tabel 4.1 Hasil pengujian sensor PIR tanpa halangan
Jarak dari sensor (m) Keterangan 1 2 3 4 5 6 7 8 Terdeteksi Terdeteksi Terdeteksi Terdeteksi Terdeteksi Terdeteksi Terdeteksi Terdeteksi
Dari Tabel 4.1 dapat disimpulkan bahwa sensor PIR mampu mendeteksi sampai 8 m.
28
Gambar 4.2 Pengujian jangkauan sensor PIR
4.2 Pengujian Detektor Orang
Pengujian ini dilakukan untuk mengetahui unjuk kerja dari penghitung orang menggunakan kamera USB.
4.2.1 Pengujian Penghitung Orang
Pengujian dilakukan untuk mengetahui kemampuan detektor
dalam mengidentifikasi orang. Pengujian dilakukan dengan
menempatkan objek berupa orang pada jarak tertentu. Kamera diletakkan 122 cm dari tanah. Jumlah sampel yang diambil pada pengujian ini sebanyak 22 sampel.
29
Tabel 4.2 Hasil pengujian penghitung orang
No Sampel Jumlah Orang Jumlah Terdeteksi
1 1 1
2 2 2
3 3 3
30
No Sampel Jumlah Orang Jumlah Terdeteksi
5 4 3
6 4 3
7 4 2
31
No Sampel Jumlah Orang Jumlah Terdeteksi
9 2 1
10 2 2
11 3 0
32
No Sampel Jumlah Orang Jumlah Terdeteksi
13 3 1
14 3 2
15 3 0
33
No Sampel Jumlah Orang Jumlah Terdeteksi
17 3 0
18 3 3
19 3 1
34
No Sampel Jumlah Orang Jumlah Terdeteksi
21 3 2
22 3 2
Total 66 41
Dari Tabel 4.2 terhitung total 66 orang dan terdeteksi sebanyak 41 orang. Hasil pengujian ini memiliki nilai kesalahan sebesar 37,87%.
Tabel 4.3 Perbandingan deteksi dengan jurnal lain
Parameter [3] [4] [24] Tugas akhir ini
Jumlah sampel 1178 1000 1178 66
Jumlah terdeteksi 1012 909 1113 41
Error 14,09% 9,10% 5,52% 37,87%
4.2.2 Pengujian Jarak Deteksi Antara Kamera Dengan Orang
Pengujian dilakukan untuk mengetahui jarak minimun dan maksimum detektor dalam mengidentifikasi orang. Pengujian dilakukan dengan menempatkan satu objek orang pada jarak tertentu. Kamera diletakkan 122 cm dari tanah.
35
Tabel 4.4 Hasil pengujian jarak deteksi orang
Jarak dari kamera (m) Keterangan
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Tidak Terdeteksi Tidak Terdeteksi Terdeteksi Terdeteksi Terdeteksi Terdeteksi Terdeteksi Terdeteksi Terdeteksi Tidak Terdeteksi Tidak Terdeteksi Tidak Terdeteksi Tidak Terdeteksi Tidak Terdeteksi Tidak Terdeteksi
Dari data Tabel 4.4 menunjukkan bahwa detektor mampu mendeteksi pada jarak antara 3 m sampai 9 m. Hal ini terjadi karena ukuran piksel objek terlalu besar apabila berjarak kurang dari 3 m. Dan terlalu kecil apabila berjarak lebih dari 9 m.
4.2.3 Pengujian Dengan Orang yang Berdekatan
Pengujian dilakukan untuk mengetahui kemampuan detektor dalam mendeteksi objek yang berdekatan. Pengujian dilakukan dengan menggunakan 2 orang. Jarak antara objek dengan kamera ditetapkan pada satu nilai tertentu.
36
Tabel 4.5 Hasil pengujian dengan orang berdekatan
Jarak (cm) Sampel Orang 1 Orang 2
150 √ √
37
Jarak (cm) Sampel Orang 1 Orang 2
90 √ √
60 √ √
38
Jarak (cm) Sampel Orang 1 Orang 2
0 √ ×
0 √ ×
Keterangan: √: Terdeteksi ×: Tidak Terdeteksi
Dari data Tabel 4.5 dapat dilihat bahwa detektor mampu membedakan 2 orang dari jarak 150 cm sampai 30 cm. Di bawah 30 cm detektor tidak dapat membedakan 2 orang yang saling berdekatan. Hal ini terjadi karena postur 2 orang tersebut berhimpitan, sehingga detektor hanya dapat mendeteksi 1 orang saja.
4.3 Pengujian Detektor Gerakan Orang
Pengujian dilakukan untuk mengetahui kemampuan detektor untuk mendeteksi gerakan orang. Pengujian dilakukan dengan mendeteksi beberapa gerakan. Pada kategori tingkat aktivitas sedikit,
39
objek melakukan gerakan mengangkat tangan. Pada kategori sedang, objek berjalan bolak-balik di hadapan kamera. Pada kategori gerakan tinggi objek berlari bolak-balik di hadapan kamera. Pada setiap kategori diambil sebanyak 10 sampel. Objek yang bergerak ditangkap oleh kamera yang diletakkan setinggi 122 cm dari tanah. Pengujian dilakukan dengan 3 objek. Objek pertama memiliki tinggi badan 155 cm dan berat badan 57 kg. Objek kedua mempunyai tinggi badan 165 cm dan berat badan 60 kg. Objek ketiga memiliki tinggi badan 163 cm dan berat badan 66 kg. Data yang diambil merupakan luasan daerah putih pada citra biner yang dihasilkan oleh metode background subtraction.
(a) (b)
Gambar 4.2 (a) Hasil deteksi tingkat aktivitas dan (b) citra biner
Gambar 4.3 Grafik luas daerah objek pertama kategori aktivitas sedikit
0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel
40
Gambar 4.4 Grafik luas daerah objek pertama kategori aktivitas sedang
Gambar 4.5 Grafik luas daerah objek pertama kategori aktivitas tinggi
0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel 0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel
41
Gambar 4.6 Grafik luas daerah objek kedua kategori aktivitas sedikit
Gambar 4.7 Grafik luas daerah objek kedua kategori aktivitas sedang
0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel 0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel
42
Gambar 4.8 Grafik luas daerah objek kedua kategori aktivitas tinggi
Gambar 4.9 Grafik luas daerah objek ketiga kategori aktivitas tinggi
0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel 0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel
43
Gambar 4.10 Grafik luas daerah objek ketiga kategori aktivitas sedang
Gambar 4.11 Grafik luas daerah objek ketiga kategori aktivitas tinggi
0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel 0 5000 10000 15000 20000 25000 30000 35000 1 2 3 4 5 6 7 8 9 10 Lu as Daer ah Sampel
44
Tabel 4.6 Rata-rata luasan hasil deteksi
Kategori
Objek Sedikit Sedang Tinggi
Pertama 4671,9 12752,9 19625,1
Kedua 5105,8 12950,9 18358
Ketiga 5575,2 12828,3 21563,3
Dari data Tabel 4.6 dapat dilihat bahwa semakin tinggi tingkat aktivitas, maka semakin besar pula rata-rata daerah luasan yang dihasilkan. Selain itu, terdapat perbedaan yang signifikan pada rata-rata daerah luasan antarkategori. Sehingga dari hasil tersebut dapat disimpulkan bahwa detektor gerakan dapat membedakan tingkat aktivitas orang.
45
BAB V
PENUTUP
5.1 Kesimpulan
Telah dirancang sebuah sistem identifikasi jumlah orang dan tingkat aktivitas yang berbasis pengolahan citra serta sebuah sistem yang mampu menyala dan mati sesuai kondisi ruangan. Berdasarkan hasil pengujian dan analisis dapat disimpulkan bahwa sensor PIR dapat digunakan sebagai detektor gerakan orang yang baik sampai jarak 8 m. Metode Histogram of Oriented Gradient yang digunakan dalam sistem dapat diimplementasikan sebagai metode object detection untuk mendeteksi orang dengan kesalahan sebesar 37,87% pada jarak 3 m sampai 9 m. Metode background subtraction dapat digunakan sebagai metode untuk membedakan tingkat aktivitas orang dengan melihat daerah luasan yang dihasilkan.
5.2 Saran
Dari hasil penelitian yang dilakukan, untuk pengembangan berikutnya, disarankan untuk menggunakan multithreading yaitu proses parallel pada komputasi untuk mempercepat proses identifikasi. Selain itu penambahan kamera stereo untuk meningkatkan kemampuan sistem dalam mendeteksi jumlah orang.
46
47
DAFTAR PUSTAKA
[1] Fadilla, Nurin. “Building Automation System Berbasis
Mikrokontroler untuk Monitoring dan Kontrol Energi”, Institut
Teknologi Sepuluh Nopember, 2015.
[2] ______, “Ubah Kebiasaan Untuk Efisiensi Konsumsi Listrik di
Indonesia”,
http://thepresidentpostindonesia.com/2016/04/04/ubah-kebiasaan-untuk-efisiensi-konsumsi-listrik-di-indonesia/, 2016. (diakses tanggal 30 Agustus 2016)
[3] Kachouane, M. et.al. “HOG Based Fast Human Detection”, Université Saad Dahlab de Blida, 2012.
[4] Yıldız, Cansın. “An Implementation on Histogram of Oriented
Gradients for Human Detection”, Bilkent University.
[5] LiFei. et.al. “Pedestrian Detection Based On Histogram of
Oriented Gradient in Intelligent Transportations System”,
Shenyang University of Technology, 2013.
[6] Piccardi, Massimo. “Background Substraction Techiques: A
Review”, University of Technology Sydney, 2004.
[7] Ramanan, Deva. “Background Subtraction”, University of California, 2013.
[8] ___, “Raspberry Pi”, https://en.wikipedia.org/wiki/Raspberry_Pi. (diakses 1 September 2016)
[9] Vis, Peter J., “BCM2835 Block Diagram”,
http://www.petervis.com/Raspberry_PI/BCM2835_Block_Diagra m/BCM2835_Block_Diagram.html. (diakses 1 September 2016) [10] ___, “Logitech C170”,
https://www.amazon.co.uk/Logitech-960-000760-C170-Webcam-x/dp/B00544XFIQ. (diakses 1 September 2016)
[11] Woodford, Chris. “Webcam”,
http://www.explainthatstuff.com/webcams.html, 2016. (diakses tanggal 30 Agustus 2016)
[12] Colliard-Piraud, Sylvain. “Signal conditioning for pyroelectric
passive infrared (PIR) sensors”.AN4368, STMicroelectronics,
2013.
[13] ___, “HC-SR501 PIR Sensor Module x 2 - Infrared Body Motion
Sensing”,
https://www.squirrel- labs.net/modules/spatial/movement/hc-sr501-pir-sensor-module-x-2-infrared-body-motion-sensing.html. (diakses 1 September
48 2016)
[14] Syafi'i, S. I.. “Open Computer Vision (OpenCV)”, 2011 [15] Shapiro, L. et.al. “Computer Vision”, Prentice Hall, 2001. [16] Pavidlis, T. “Algorithms for Graphic and Image Processing”,
2010.
[17] Davies, D. “The Telling Image: The Changing Balance Between
Pictures and Words in Technological Age”, Clarendon Pr, 1990.
[18] Morse, Bryan S. “Thresholding”. Brigham Young University, 2000.
[19] Bradski, Gary. “Learning OpenCV”, O’Reilly Media Inc., 2008. [20] Auroux, Didier. “Contour Detection and Completion for
Inpainting and Segmentation Based on Topological Gradient and Fast Marching Algorithms”, Université de Nice Sophia Antipolis,
2011.
[21] Ludwig, Jamie. “Image Convolution”, Portland State University. [22] Ström, Henrik. “A Parallel FPGA Implementation of Image
Convolution”, Department of Electrical Engineering, Linköping
University, 2016.
[23] Elgammal, Ahmed. “Digital Imaging and Multimedia”, Department of Computer Science Rutgers University.
[24] Said, Yahia. et.al. “Human Detection Based On Integral
Histograms of Oriented Gradients and SVM”, Faculty of
49
LAMPIRAN
Kode program utama: import numpy as np import cv2
import imutils import time
from imutils.object_detection import non_max_suppression from test7 import *
from lcdku import * from remoteku import * import RPi.GPIO as GPIO from subprocess import call from os import system global hog, capture, firstframe hog = cv2.HOGDescriptor() hog.setSVMDetector(cv2.HOGDescriptor_getDefaultPeopleDetector()) status = 0 currtemp = 24 powerkey() capture=cv2.VideoCapture(0) _,image = capture.read()
image = imutils.resize(image, width=400)
gray = cv2.cvtColor(image, cv2.COLOR_BGR2GRAY) firstframe=gray
def detect_ppl():
global hog, capture, firstframe _,image = capture.read()
image = imutils.resize(image, width=400) orig = image.copy()
# detect people in the image
(rects, weights) = hog.detectMultiScale(image, winStride=(4, 4), padding=(16, 16), scale=1.4)
50 return len(rects)
def detect_act():
global hog, capture, firstframe _, frame = capture.read()
frame=imutils.resize(frame, width=400)
gray = cv2.cvtColor(frame, cv2.COLOR_BGR2GRAY) frameDelta = cv2.absdiff(firstframe, gray)
alpa=0.5 firstframe=cv2.addWeighted(gray,alpa,firstframe,1-alpa,0) _,thresh = cv2.threshold(frameDelta, 30, 255, cv2.THRESH_BINARY) thresh=cv2.morphologyEx(thresh,cv2.MORPH_CLOSE,None,iterations =3)
thresh = cv2.dilate(thresh, None, iterations=1)
(cnts, _) = cv2.findContours(thresh.copy(), cv2.RETR_EXTERNAL, cv2.CHAIN_APPROX_SIMPLE) jumlah=0 for c in cnts: if cv2.contourArea(c) < 800: continue if cv2.contourArea(c)<1500: bobot=1 elif cv2.contourArea(c)<4000: bobot=2 elif cv2.contourArea(c)<9000: bobot=4 else: bobot=8 jumlah=jumlah+bobot return jumlah
zpframe=0 #zero people frame lcd_inisi()
while True:
start=time.time() jml_org=detect_ppl()
51 jml_akt=detect_act() suhu=fuzzy(jml_org,jml_akt) ubahsuhu(currtemp, suhu) currtemp = suhu end=time.time() seconds=end-start fps=1/seconds lcd_bersih(0) lcd_kexy(1,0) string="Orang: {}".format(jml_org) lcd_tuliss(string) lcd_bersih(1) lcd_kexy(1,1) string="Aktivitas: {}".format(jml_akt) lcd_tuliss(string) lcd_bersih(2) lcd_kexy(1,2) string="Suhu: {}".format(suhu) lcd_tuliss(string) lcd_bersih(3) lcd_kexy(1,3) string="FPS: {}".format(fps) lcd_tuliss(string) if jml_org==0: zpframe=zpframe+1 else: zpframe=0
if zpframe==45: #frame delay=45 print zpframe break capture.release() cv2.destroyAllWindows() matikanac(currtemp) lcd_bersih(0) lcd_bersih(1) lcd_bersih(2) lcd_bersih(3) GPIO.cleanup()
52 call('halt', shell=False)
53
BIODATA PENULIS
Daniel Krisrenanto lahir di Pati pada tanggal 19 Maret 1994 dari pasangan Dismas Untung Sudjianto dan Veronica Krestiani. Penulis adalah anak kedua dari 3 bersaudara. Motto yang memotivasinya dalam menjalani hidup adalah everything is going to be
alright.
Perjalanan hidup penulis dalam mengenyam pendidikan dimulai sejak umur 4 tahun dengan masuk TK Kanisius Pati yang kemudian dilanjutkan di SD Kanisius Pati. Setelah lulus SD penulis melanjutkan jenjang ke SMP Negeri 3 Pati. Penulis melanjutkan pendidikannya ke SMA Negeri 2 Pasuruan. Kemudian melanjutkan kuliah di Institut Teknologi Sepuluh Nopember di Jurusan Teknik Elektro dengan bidang Elektronika. Selama kuliah, penulis berkontribusi sebagai asisten Laboratorium Elektronika Dasar.