i
TUGAS AKHIR
PROTOTYPE SISTEM PARKIR OTOMATIS DENGAN
PENGENALAN PLAT NOMOR MOBIL
Diajukan untuk memenuhi salah satu syarat memperoleh gelar Sarjana Teknik pada
Program Studi Teknik Elektro
Fakultas Sains dan Teknologi Universitas Sanata Dharma
disusun oleh : Dani Darmawan NIM : 165114033
JURUSAN TEKNIK ELEKTRO FAKULTAS SAINS DAN TEKNOLOGI
UNIVERSITAS SANATA DHARMA YOGYAKARTA
ii
FINAL PROJECT
PROTOTYPE OF AUTOMATIC PARKING SYSTEM
WITH OPTICAL LISCENCE PLATE NUMBER
RECOGNITION
Presented as partial Fulfillment of the Requirements To Obtain the Bachelor of Engineering Degree
In Study Program of Electrical Engineering
Faculty of Science and Technology, Sanata Dharma University
Constructed by : Dani Darmawan NIM : 165114033
DEPARTMENT OF ELECTRICAL ENGINEERING FACULTY OF SCIENCE AND TECHNOLOGY
SANATA DHARMA UNIVERSITY YOGYAKARTA
vi
HALAMAN PERSEMBAHAN
“JIKA AKU TIDAK BISA SEPERTI MEREKA YANG BERTALENTA,
AKU HANYA PERLU BEKERJA 2 KALI LEBIH KERAS, JIKA MASIH BELUM BISA SEPERTI MEREKA, AKU HANYA PERLU BEKERJA 3 KALI LEBIH KERAS,
BUKTIKAN BAHWA KERJA KERAS, DAPAT MENGALAHKAN TALENTA”
Skripsi ini kupersembahkan kepada: Tuhan yang Maha Esa beserta Leluhur Marga Ng Papa, Mama dan AMIW Lirang Family Sahabat - sahabatku Teknik Elektro Sanata Dharma
viii
INTISARI
Plat nomor kendaraan merupakan sebuah identitas setiap kendaraan bermotor legal di Indonesia. Plat nomor memiliki sifat unik sehingga hanya terdapat satu buah kombinasi huruf dan angkat pada suatu kendaraan. Sifat unik ini dapat dimanfaatkan untuk tujuan keamanan pada kendaraan mobil. Computer Vision dapat menjadi sub-sistem yang dapat memberikan efisiensi pada sistem parkir ini dengan pengenalan plat nomor mobil, sehingga dibuatnya
prototype sistem parkir otomatis dengan pengenalan plat nomor mobil. Pengenalan huruf dan angka akan dilakukan dengan metode PCA dan template matching dengan k-NN.
Pembuatan prototype ini menggunakan Raspberry Pi sebagai alat untuk melakukan pengenalan dan webcam sebagai alat untuk mengambil citra mobil. Pertama citra akan dilakukan preprocessing dan dikompresi dengan menggunakan Principal Component Analysis (PCA). Template matching yang digunakan adalah jarak Euclidean dan klasifikasi k-Nearest Neighbour (k-NN). Pada gerbang parkir masuk, gerbang akan terbuka apabila sistem berhasil mendeteksi plat nomor, sedangkan untuk gerbang parkir masuk, gerbang akan terbuka ketika tombol bayar ditekan setelah plat nomor dikenali.
Pengujian prototype sistem parkir dengan pengenalan plat nomor ini dilakukan secara
realtime maupun non-realtime. Tingkat pengenalan plat nomor pada percobaan non-realtime
memiliki rata rata keberhasilan sebesar 73,21%, sedangkan pada pengujian realtime memiliki variasi pada jarak antara gerbang dengan mobil dengan rata rata akurasi sebesar 80,47%. Hasil percobaan sistem parkir pada gerbang keluar dapat terbuka 60,71%, sedangkan untuk gerbang masuk dapat terbuka 100%.
Kata kunci : Pengenalan plat nomor, preprocessing, Principal Component Analysis (PCA), jarak Euclidean, k-Nearest Neighbour (k-NN)
ix
ABSTRACT
A vehicle number plate is an identity for every legal motor vehicle in Indonesia. Number plates have unique properties so that there is only one combination of letters and number on a vehicle. This unique property can be used for safety purposes in automobile vehicles. Computer Vision can be a sub-system that can provide efficiency to this parking system by recognizing car number plates, so that a prototype of an automatic parking system is made with the recognition of car number plates. The recognition of letters and numbers will be carried out using the PCA method and template matching with k-NN.
This prototype would be using Raspberry Pi as a tool for recognition and a webcam as a tool to take images of the car. First, the image will be preprocessed and compressed using Principal Component Analysis (PCA). The matching template used is Euclidean distance and k-Nearest Neighbor (k-NN) classification. At the entrance parking gate, the gate will open when the system detects the number plate, while for the entrance parking gate, the gate will open when the pay button is pressed after the number plate is recognized.
The parking system prototype with number plate recognition testing is carried out in realtime and non-realtime. The number plate recognition rate in the non-realtime experiment has an average success rate of 73.21%, while the realtime test has a variation in the distance between the gate and the car with an average accuracy of 80.47%. The experimental results of the parking system at the exit gate can be open 60.71%, while the entrance gate can be open 100%.
Keywords : Liscence plate number recognition, preprocessing, Principal Component Analysis, Euclidean distance, k-Nearest Neighbour
xii
DAFTAR ISI
Halaman Judul (Bahasa Indonesia) ... i
Halaman Judul (Bahasa Inggris) ... ii
Halaman Persetujuan ... iii
Halaman Pengesahan ... iv
Pernyataan Keaslian Karya ... v
Halaman Persembahan ... vi
Lembar Persetujuan Publikasi Karya ... vii
INTISARI ... viii
ABSTRACT ... ix
KATA PENGANTAR ... x
DAFTAR ISI ... xii
DAFTAR GAMBAR ... xvi
DAFTAR TABEL ... xix
BAB I : PENDAHULUAN 1.1. Latar Belakang ... 1
1.2. Tujuan dan Manfaat ... 1
1.3. Batasan Masalah ... 2
1.4. Metodologi Penelitian ... 2
BAB II : DASAR TEORI 2.1. Plat Nomor ... 4
2.2. Parkir ... 4
2.3. Raspberry Pi ... 4
2.3.1. Spesifikasi Raspberry Pi 4 ... 5
2.3.2. Port pada Raspberry Pi 4... 5
2.3.3. Sistem Operasi Raspberry Pi Linux Debian ... 6
2.3.4. Python ... 6
2.4.Pengolahan Citra dengan OpenCV ... 7
xiii 2.4.2. Otsu Thresholding ... 8 2.4.3. BGR to Grayscale to Biner ... 9 2.4.4. Noise Filttering ... 10 2.4.5. Labeling Objek... 11 2.4.6. Cropping ... 12 2.4.7. Resize ... 12 2.4.8. Centroid ... 13 2.4.9. GUI ... 15 2.5. Sensor Ultrasonik ... 15 2.6. Motor Servo ... 16
2.7. Principal Component Analysis ... 17
2.7.1. Covariance Matrix ... 17
2.7.2. Eigenvalue and Eigenvector ... 17
2.8. K- Nearest Neighbour ... 18 2.8.1. Jarak Euclidean ... 18 2.8.2. Training... 19 2.8.3. Parameter K ... 19 2.8.4. Classification ... 20 2.9. Database ... 21
BAB III : PERANCANGAN PENELITIAN 3.1. Proses Kerja Sistem ... 22
3.2. Perancangan Mekanik ... 23
3.2.1. Perancangan Prototype ... 23
3.2.2. Perancangan PanelBox ... 24
3.2.3. Perancangan Tempat Sensor ... 25
3.2.4. Perancangan Gerbang ... 26
3.3. Perancangan Rangkaian Elektronis... 26
3.4. Perancangan GUI ... 28
3.5. Perancangan Perangkat Lunak ... 28
3.5.1. Flowchart Pembuatan Database ... 29
3.5.2. Flowchart Sistem ... 30
3.5.3. Flowchart Sensor Ultrasonik ... 31
xiv
3.5.5. Flowchart Segmentasi Plat ... 33
3.5.6. Flowchart Segmentasi Huruf dan Angka ... 33
3.5.7. Flowchart Pengolahan Citra ... 34
3.5.8. Flowchart Klasifikasi Data ... 35
3.5.9. Flowchart Motor Servo... 36
BAB IV : HASIL DAN PEMBAHASAN 4.1. Hasil Implementasi ... 39
4.1.1. Graphical User Interface (GUI) ... 39
4.1.2. Hasil Implementasi Perangkat Keras ... 40
4.2. Hasil Pengujian dan Analisis Data ... 44
4.2.1. Hasil Pengujian Realtime ... 44
4.2.1.1. Akurasi Pengujian Realtime ... 44
4.2.1.2. Pengujian dengan Mobil Merah ... 44
4.2.1.3. Pengujian dengan Mobil Hitam ... 46
4.2.1.4. Kinerja Sistem Kerja Parkir ... 47
4.2.2. Hasil Pengujian Non-Realtime ... 47
4.3. Hasil Implementasi Perangkat Lunak ... 49
4.3.1. Modul yang Digunakan... 49
4.3.2. Implementasi Pembuatan Database Huruf dan Angka ... 50
4.3.3. Implementasi Sub-routine Sensor Ultrasonik ... 50
4.3.4. Implementasi Sub-routine Akuisisi Citra... 51
4.3.5. Perubahan pada Sub-routine Segmentasi Plat... 51
4.3.6. Implementasi Sub-routine Segmentasi Huruf dan Angka ... 52
4.3.7. Perubahan Sub-routine Pengolahan Citra ... 52
4.3.7.1. Ekstrasi Ciri Component PCA ... 53
4.3.7.1. Implementasi Pengolahan Citra dengan Kompresi Citra ... 54
4.3.8. Implementasi Sub-routine Klasifikasi Data ... 54
4.3.9. Implementasi Sub-routine Pengenalan Plat Mobil ... 54
4.3.10. Implementasi Sub-routine Motor Servo... 55
4.4.Catatan Dalam Pembuatan Prototype ... 55
BAB V : KESIMPULAN DAN SARAN 5.1. Kesimpulan ... 56
xv 5.2. Saran ... 56 DAFTAR PUSTAKA ... 57 LAMPIRAN 1 ... L-1 LAMPIRAN 2 ... L-2 LAMPIRAN 3 ... L-3 LAMPIRAN 4 ... L-7
xvi
DAFTAR GAMBAR
Gambar 2.1. Plat Nomor ... 4
Gambar 2.2. Raspberry Pi 4 ... 5
Gambar 2.3. Logo Python ... 7
Gambar 2.4. OpenCV Python ... 7
Gambar 2.5. Contoh Segmentasi ... 8
Gambar 2.6. Input Otsu Thresholding Pixel 6x6 ... 9
Gambar 2.7. Iterasi pada Otsu Thresholding ... 9
Gambar 2.8. Median Filtering 1(a) input (b) output ... 10
Gambar 2.9. Median Filtering 2(a) input (b) output ... 11
Gambar 2.10. Labeling (a) input (b) output ... 11
Gambar 2.11. Proses Cropping pada Citra huruf H (a) input (b) output ... 12
Gambar 2.12. Proses Resize pada Citra angka 3 (a) input (b) output ... 13
Gambar 2.13. Citra Huruf A ... 14
Gambar 2.14. Proses Perhitungan Centroid ... 15
Gambar 2.15. Sensor HC-SR04 ... 15
Gambar 2.16. Motor Servo MG-995 ... 16
Gambar 2.17. Hasil Plotting K-NN ... 19
Gambar 2.18. Pemilihan Parameter K dengan nilai 3 dan 5 ... 20
Gambar 2.19. Klasifikasi dari 3 Data Kelas K-NN ... 20
Gambar 3.1. Diagram Blok Sistem ... 23
Gambar 3.2. Prototype Sistem Parkir Otomatis ... 24
xvii
Gambar 3.4. Kotak Tempat Sensor Ultrasonik ... 25
Gambar 3.5. Hasil Perancangan Gerbang ... 26
Gambar 3.6. Rangkaian Elektronis ... 27
Gambar 3.7. (a) GUI sebelum tombol ditekan (b) GUI setelah tombol ditekan ... 28
Gambar 3.8. Flowchart Pembuatan Database ... 29
Gambar 3.9. Flowchart Sistem Gerbang Masuk ... 30
Gambar 3.10. Flowchart Sistem Gerbang Keluar ... 31
Gambar 3.11. Flowchart Proses Kerja Sensor Pertama ... 31
Gambar 3.12. Flowchart Akuisisi Citra ... 32
Gambar 3.13. Flowchart Segmentasi Plat ... 33
Gambar 3.14. Flowchart Segmentasi Huruf dan Angka... 34
Gambar 3.15. Flowchart Pengolahan Citra ... 35
Gambar 3.16. Flowchart Klasifikasi pada Gerbang Masuk ... 35
Gambar 3.17. Flowchart Klasifikasi pada Gerbang Keluar ... 36
Gambar 3.18. Flowchart Motor Servo pada Gerbang Masuk ... 37
Gambar 3.19. Flowchart Motor Servo pada Gerbang Keluar ... 38
Gambar 4.1. Tampilan GUI ... 39
Gambar 4.2. Miniatur Mobil ... 41
Gambar 4.3. Tampilan Plat Nomor pada Miniatur Mobil ... 41
Gambar 4.4. Tempat Sensor Ultrasonik ... 42
Gambar 4.5. Gerbang Parkir ... 42
Gambar 4.6. Prototype Sistem Parkir ... 43
xviii
Gambar 4.8. Contoh Foto Plat Nomor Mobil ... 46
Gambar 4.9. Hasil Pengenalan Plat Nomor Sebelum GC ... 46
Gambar 4.10. Contoh Hasil Pengenalan Setelah GC ... 53
xix
DAFTAR TABEL
Tabel 4.1. Keterangan pada GUI ... 40
Tabel 4.2. Keterangan Prototype Sistem Parkir... 43
Tabel 4.3. Hasil Pengujian Gerbang Masuk Mobil Merah ... 44
Tabel 4.4. Hasil Pengujian Gerbang Keluar Mobil Merah ... 45
Tabel 4.5. Hasil Pengujian Gerbang Masuk Mobil Hitam... 46
Tabel 4.6. Hasil Pengujian Gerbang Keluar Mobil Hitam... 46
Tabel 4.7. Hasil Pengujian Non-Realtime ... 48
Tabel 4.8. Modul Python dan Keterangan ... 49
Tabel 4.9. Lanjutan Modul Python dan Keterangan ... 50
BAB I
PENDAHULUAN
1.1.
Latar Belakang
Dewasa ini penggunaan kendaraan bermotor di Indonesia memiliki jumlah yang sangat tinggi, dengan tingginya penggunakan kendaraan bermotor di Indonesia saat ini tentunya memerlukan fasilitas yang mampu mengimbangi tingginya pengunaan kedaraan bermotor ini yaitu dengan sistem parkir yang lebih efisien dan memiliki keamanan yang tinggi.
Dengan banyaknya penggunaan kendaraan bermotor juga membuka berbagai macam celah dan peluang untuk melakukan kejahatan, salah satunya adalah pencurian kendaraan bermotor di lahan parkir. Walaupun sudah menerapkan sistem parkir dengan menggunakan karcis tetapi masih saja dapat ditemukan kelemahan untuk dapat melakukan kejahatan, salah satunya adalah pencurian kendaraan bermotor dengan menggunakan modus penggantian plat nomor kemudian mengaku kehilangan karcis parkir [1].
Raspberry Pi adalah modul mikro komputer yang mempunyai masukan dan keluaran
digitalport seperti pada board mikrokontroler [2]. Tetapi jika membandingkan mikrokontroller dengan Raspberry Pi, Raspberry Pi memiliki keuggulan karena memiliki
port dan koneksi sendiri sehingga dapat disambungkan dengan jaringan internet, keyboard, mouse, maupun, monitor.
Vincencius [3] pernah melakukan penelitian yaitu “Pengenalan Plat Nomor Sepeda Motor Menggunakan Ekstraksi Ciri DCT dan Fungsi Jarak Euclidean”. Pada pengenalan plat nomor yang dilakukan, menggunakan Matlab untuk melakukan komputasi, dan masih menggunakan laptop untuk menjalankan software Matlab.
1.2. Tujuan dan Manfaat
Tujuan dari tugas akhir ini adalah menghasilkan sistem parkir otomatis dengan pembacaan plat nomor mobil. Plat nomor memiliki sifat unik yang berarti satu satunya sehingga dapat menjadi fitur yang dapat digunakan untuk membuat sistem parkir otomatis ini.
Manfaat dari tugas akhir ini adalah membantu mahasiswa untuk memahami penerapan computer vision dalam kehidupan sehari-hari, juga menjadi referensi untuk
penlitian selanjutnya yang mungkin dapat menyempurnakan prototype ini sehingga dapat mempermudah sistem parkir manual yang sudah ada dan mengurangi pencurian mobil dengan modus kehilangan karcis parkir dan mengganti plat nomor.
1.3.
Batasan Masalah
Batasan masalah yang digunakan dalam tugas akhir ini, yaitu:
1. Proses pengambilan gambar menggunakan Webcam C170 untuk gerbang masuk dan modul kamera Raspberry Pi untuk gerbang keluar.
2. Proses komputasi dan penyimpanan data menggunakan Raspberry Pi. 3. Aktuator berupa 2 buah servo untuk gerbang masuk dan keluar.
4. Skala prototype adalah 1 : 2.5, sehingga mobil menjadi 1340 mm x 560 mm x 550 mm.
5. Plat nomor berupa plat orisinil dengan nomor polisi yang acak. 6. Jarak mobil terhadap gerbang yaitu 40 cm hingga 60 cm. 7. Sensor yang digunakan adalah sensor ultrasonik HC-SR04.
8. Pada pengujian sistem gerbang masuk dan gerbang keluar harus diuji secara bergantian.
9. Pada gerbang keluar terdapat layar LCD untuk menunjukkan tarif parkir dan tarif parkir telah dibayarkan.
10.Terdapat tombol pada gerbang keluar sebagai penggerak aktuator setelah pembayaran.
1.4.
Metodologi Penelitian
Berdasarkan pada tujuan yang ingin dicapai, metode penelitian yang digunakan dalam tugas akhir ini yaitu :
1. Studi pustaka
Tahap awal dalam penelitian ini adalah mencari buku, jurnal, artikel dari internet yang berhubungan dengan tugas akhir ini untuk dipelajari, literature yang akan dipelajari meliputi plat nomor, Raspberry Pi dan cara pemrogramannya, Pyhton, OpenCV dan cara penggunaannya, Sckit Learn dan cara penggunaannya, Algorithma PCA dan K-NN dan matematika dibelakangnya, serta penelitian sebelumnya yang akan digunakan untuk pengambilan data serta perbandingan dengan penelitian sebelumnya.
2. Perancangan perangkat keras (hardware)
Tahap kedua adalah memulai tahap perancangan mekanik pada alat pengenal plat, yang mencakup perancangaan aktuator yang menggunakan servo sebagai penggerak, panel box yang berisi raspberry pi dan juga kamera, serta perancangan rangkaian elektronis agar sistem dapat bekerja optimal tanpa kendala dalam kekurangan arus atau tegangan
3. Perancangan perangkat lunak (software)
Tahap ketiga bertujuan untuk merancang program yang efisien serta akurat agar dapat bekerja secara optimal, perangkat lunak ini akan berupa program dengan
software Python. Perancangan perangkat lunak akan dimulai dengan pembuatan
database kemudian melakukan pengujian secara tidak real time, dan yang terakhir adalah pengujian secara real time.
4. Pengujian alat dan pengambilan data
Tahap keempat melakukan pengujian alat agar sesuai dengan yang diinginkan, dengan memperhatikan tingkat akurasi dari proses pembacaaan plat nomor mobil, penyimpanan data plat nomor, waktu dan tarif parkir pada database. Pembacaan plat nomor mobil akan dilakukan dengan sejumlah huruf dan angka yang ada yaitu 26 huruf dan 10 angka secara acak, agar dapat mendapatkan akurasi pembacaan huruf dan angka maupun akurasi mekanik pergerakkan aktuator. 5. Analisis dan penyimpulan hasil percobaan
Analisis hasil pengujian perangkat keras (hardware) berupa akurasi pembacaan plat nomor, hasil data pada penyimpanan, ketepatan waktu dan tarif parkir, kemudian pengambil kesimpulan yang berasal dari hasil analisis. Akurasi plat nomor akan dihitung per huruf untuk plat nomor untuk menentukan ketepatan pembacaan huruf dan angka, ketepatan waktu dan tarif harus sesuai dengan yang telah diprogram. Alat akan dinyatakan berhasil apabila parameter parameter di atas menunjukkan hasil yang memuaskan di atas 80%.
BAB II
DASAR TEORI
2.1.
Plat Nomor
Plat nomor atau yang biasa dikenal dengan nomor polisi (nopol) atau tanda nomor kendaraan bermotor (TNKB) adalah plat aluminium tanda kendaraan bermotor di Indonesia yang telah didaftarkan pada Kantor Bersama Samsat [4]. Contoh dari plat nomor dapat dilihat pada gambar 2.1. Ukuran untuk plat nomor kendaraan pada mobil adalah 13,5 cm x 39,5 cm.
Gambar 2.1. Plat Nomor
Plat nomor bersifat unik dan hanya ada satu satunya di Indonesia, plat nomor biasanya terdiri dari huruf awal angka kemudian huruf akhir, huruf awal merupakan tanda provinsi manakah kendaraan berasal, kemudian angka biasanya berisi 3 atau 4, dan huruf di akhir merupakan tanda daerah mana kendaraan berasal.
2.2.
Parkir
Parkir merupakan sebuah keadaan tidak bergerak kendaraan yang bersifat sementara karena ditinggalkan oleh pengemudinya [5]. Parkir pada tempat-tempat komersial berskala besar biasa telah memiliki sistem parkir yang telah menggunakan karcis parkir. Karcis parkir merupakan identitas unik yang dimiliki oleh sebuah kendaraan ketika memasuki kawasan parkir, pengambilan karcis parkir dilakukan ketika hendak memasuki gerbang parkir dan pengembalian karcis parkir ketika meninggalkan tempat parkir.
2.3.
Raspberry Pi
Raspberry Pi adalah modul mikro komputer yang mempunyai input output digital port tidak seperti pada board mikrokontroller [2]. Raspberry Pi berfungsi sebagai mikro
komputer yang dapat digunakan untuk berbagai macam keperluan menggantikan PC yang tidak portable.
2.3.1.
Spesifikasi Raspberry Pi 4
Raspberry Pi 4 adalah raspberry varian terbaru yang dikeluarkan pada tahun 2019, Raspberry Pi ini di-claim memiliki performa hingga 3 kali lebih baik daripada model sebelumnya Raspberry Pi 3 model B+, Raspberry Pi 4 ini hadir dalam 3 varian dengan pilihan RAM antara lain pilihan RAM 1 GB, RAM 2 GB, dan RAM 4GB. Gambar Raspberry Pi 4 [2] dapat dilihat pada gambar 2.2 di bawah ini :
Gambar 2.2. Raspberry Pi 4
Spesifikasi yang dimiliki Oleh Raspberry Pi 4 ini adalah sebagai berikut :
A. Broadcom BCM2711, Quad core Cortex-A72 (ARM v8) 64-bit SoC @ 1.5GHz.
B. 4GB LPDDR4-3200 SDRAM .
C. 2.4 GHz and 5.0 GHz IEEE 802.11ac wireless, Bluetooth 5.0, BLE.
D. Gigabit Ethernet.
E. 2 USB 3.0 ports; 2 USB 2.0 ports.
F. Standar 40 pin GPIO header Raspberry Pi. G. 2 × port micro-HDMI (hingga 60fps 4K).
H. 2 jalur MIPI DSI port display.
I. 2 jalur MIPI CSI port kamera.
J. 4-pole stereo audio and composite video port.
K. H.265 (4kp60 decode), H264 (1080p60 decode, 1080p30 encode).
L. OpenGL ES 3.0 graphics.
M. Slot Micro-SD untuk OS dan penyimpanan data. N. 5V DC via USB-C connector (minimal 3A)
O. 5V DC via GPIO header (minimal 3A)
P. Suhu kerja optimal: 0 – 50 degrees C.
2.3.2.
Port pada Raspberry Pi
Raspberry Pi memiliki port yang dapat berfungsi untuk input maupun output, port-port yang dimiliki oleh Raspberry Pi yaitu [2]:
A. Micro HDMI, merupakan port yang dapat berfungi untuk menghubungkan Raspberry Pi dengan monitor sebagai output, dikarenakan monitor sekarang masih banyak yang belum menggunakan connector micro-HDMI dibutuhkan converter dari micro-HDMI ke HDMI atau micro-HDMI ke VGA.
B. Camera Serial Interface, merupakan port yang dapat dihubungkan pada modul kamera.
C. Audio Jack 3.5mm, merupakan port yang dapat dihubungkan ke berbagai macam peripheral dengan fungsi suara seperti headphone atau headset.
D. Lan Port, merupakan port yang dapat digunakan untuk menghubungkan Raspberry Pi dengan kabel RJ45 yang berfungsi untuk menghubungkan Raspberry Pi ke jaringan internet maupun dihubungkan ke PC dengan menggunakan VNC Viewer. E. USB port, merupakan sebuah port yang dapat digunakan untuk memberikan
Raspberry Pi kemampuan untuk menghubungkan ke Mouse, Keyboard, maupun , USB Flashdisk.
F. Extendended GPIO 40, merupakan port sambungan yang berfungsi sebagai tambahan input-output, serta terdapat pin TX dan RX yang memungkinkan untuk komunikasi antar 2 Raspberry Pi.
G. MicroSD Card Port, merupakan port yang dapat diberi MicroSD yang berfungsi sebagai penyimpanan sistem operasi serta data-data yang nantinya akan disimpan. H. Display Serial Interface, merupakan port untuk menyambungkan modul LCD. I. Micro USB Type C Power Input, merupakan port yang berfungsi sebagai power
supply untuk Raspberry Pi
2.3.3.
Sistem Operasi Raspberry Pi Linux Debian
Raspberry Pi memerlukan sistem operasi untuk dapat bekerja [2]. Sistem operasi ini nantinya akan disimpan dalam MicroSD yang telah dimasukkan dan diatur terlebih dahulu dengan menggunakan PC. Linux Debian merupakan sistem operasi bawaan pada Raspberry Pi.
2.3.4.
Python
Python adalah bahasa pemrograman yang sedang berkembang akhir-akhir ini bersamaan dengan mengingkatnya penggunaan bahasa pemrograman di seluruh ilmu pembelajaran bidang teknik, berbeda dengan bahasa pemrograman Java dan C++, python memiliki karakteristik yang lebih mudah dimengerti dan dipelajari karena python menggunakan bahasa yang lebih sederhana dalam bahasa inggris [7]. Logo dari python
sendiri dapat dilihat pada gambar 2.3. yang merupakan logo unik yang dimiliki python meskipun berada pada sistem operasi yang berbeda beda sekalipun.
Gambar 2.3. Logo Python
Python 3 merupakan versi yang lebih baru dari python 2, python 3 hadir untuk melengkapi kekurangan yang dimiliki python 2, untuk python 2 pembaharuan untuk versi sistem terakhir dilakukan pada tahun 2010, sedangkan untuk python 3 pembaharuan untuk versi sistem terakhir dilakukan pada tahun 2018.
Python 3 memiliki syntax yang lebih mudah dimengerti dari pada python 2, ada juga nilai pada variable global python 2 akan berubah dan mengikuti perintah sedangkan untuk python 3 varibel global akan memiliki nilai tetap tidak bergantung pada perintah sebelumnya.
2.4.
Pengolahan Citra dengan OpenCV
OpenCV adalah library yang digunakan untuk mengolah gambar dan video, karena kemampuan python untuk mengolah citra sangat terbatas [8]. Open dalam OpenCV memiliki arti open source yang berarti gratis atau tidak berbayar, sedangkan CV memiliki arti Computer Vision yang merupakan sebuah bidang ilmu yang mempelajari dan menimplementasikan cara agar sebuah komputer dapat memahami dan memproses gambar dan video digital [9].
Gambar 2.4. OpenCV Python
Modul OpenCV memiliki banyak sekali platform yang dapat digunakan untuk menjalankan modul OpenCV antara lain yaitu Python, C++, Java, hingga MATLAB. Logo
OpenCV Pyhton dapat dilihat pada gambar 2.4.. OpenCV juga dapat berjalan diberbagai macam OS(Operating System), antara lain Windows, Linux, Mac OS, hingga yang terbaru yaitu dalam sistem operasi Android.
2.4.1.
Segmentasi Citra
Segmentasi adalah proses pemisahan objek satu dengan objek yang lainnya dalam suatu gambar(citra) menjadi objek dengan karakteristik tertentu. Proses segmentasi akan berhenti apabila objek dengan karakteristik tertentu sudah ditemukan. Berdasarkan pengertiannya, segmentasi berfungsi untuk menemukan karakteristik yang unik pada objek yang berada pada suatu citra, oleh karena itu segmentasi dalam proses pengolahan citra sangatlah penting agar proses pengenalan pola dapat berlangsung dengan akurat[12].
Algoritma segmentasi citra pada umumnya menggunakan dua properti dasar pada suatu citra yaitu diskontinuitas dan similaritas. Diskontinuitas berarti hasil segmentasi citra sangat berpengaruh pada ketajaman dari suatu citra masukan karena segmentasi dengan properti diskontinuitas ini digunakan untuk mendeteksi perubahan intensitas secara besar pada suatu citra, contoh untuk segmentasi diskontinuitas adalah deteksi tepi, deteksi garis, dan juga deteksi titik. Sedangkan untuk segmentasi dengan properti similaritas,hasil segmentasi citra yang akan dilakukan akan berupa sebuah wilayah tertentu dan memiliki suatu karakteristik yang sama, contoh paling mudah dalam segmentasi dengan properti dasar similaritas ini adalah segmentasi citra berdasarkan warnanya, atau biasa disebut dengan segmentasi thresholding. Salah satu contoh segmentasi untuk plat dapat dilihat pada gambar 2.5.
Gambar 2.5. Contoh Segmentasi
2.4.2.
Otsu Thresholding
Otsu Thresholding adalah sebuah metode thresholding yang ditemukan oleh Nobuyuki Otsu, Otsu thresholding sendiri merupakan metode yang menggunakan iterasi (perhitungan berlanjut) melalui semua nilai threshold yang mungkin untuk dilakukan, dan
kemudian menghitung level dari setiap pixel untuk mendapatkan nilai terkecil dari pixel yang nantinya akan menjadi background atau menjadi citra yang akan didapatkan [13]. Contoh dari Otsu threholding akan menggunakan pixel 6x6 dan dapat dilihat pada gambar 2.6.
Gambar 2.6. Input Otsu Threshoding Pixel 6x6
Kemudian akan dilakukan iterasi untuk mendapatkan semua kemungkinan
thresholding yang mungkin untuk dilakukan, iterasi dapat dilihat pada gambar 2.7.
Gambar 2.7. Iterasi pada Otsu Thresholding
2.4.3.
BGR to Grayscale to Biner
Citra BGR merupkan citra yang memiliki kombinasi warna yang terdiri dari biru (Blue), hijau (Green), dan juga merah (Red). Masing masing dari warna tersebut akan memiliki nilai 255 apabila dimasukkan ke dalam komputasi, sedangkan citra biner merupakan citra yang hanya memiliki 2 buah warna yaitu warna putih untuk pixel bernilai 255 dan berwarna hitam untuk pixel bernilai 0 [14]. Pada proses merubah citra BGR menjadi citra biner diperlukan proses perubahan citra BGR menjadi citra keabuan(Grayscale) terlebih dahulu setelah itu baru dapat dideteksi nilai pixel pada suatu citra, perlu sebuah batas yang akan mempengaruhi sebuah pixel untuk berubah menjadi berwarna hitam atau berubah menjadi berwarna putih, batas tersebut dinamakan thresholding, penggunaan batas ini dapat
dilakukan secara otomatis dengan menggunakan Otsu thresholding, misalkan hasil dari Otsu thresholding adalah 128 maka hasil perubahan BGR adalah ketika sebuah pixel lebih dari 128 maka pixel tersebut akan diubah menjadi pixel 1 sedangkan untuk pixel yang bernilai kurang dari 128 akan menjadi pixel 0.
2.4.4.
Noise Filtering
Pada suatu citra dapat memiliki noise. Noise adalah pixel ataupun gambar yang dapat menurunkan kualitas dari suatu citra, noise pada suatu citra dapat berupa pixel berwarna putih pada wilayah yang berwarna hitam ataupun sebaliknya pixel berwarna hitam pada wilayah berwarna putih. Noise dapat terjadi karena pengambilan gambar yang kurang focus ataupun alat pengambilan gambar yang memiliki masalah. Noise pada suatu citra dapat menurunkan kualitas dari suatu citra sehingga informasi yang dibawa oleh citra menjadi tidak akurat, maka diperlukan pengolahan citra untuk mengurangi noise yang terdapat pada suatu citra agar citra tersebut dapat memiliki kualitas yang lebih baik serta informasi yang terdapat pada citra lebih akurat dan dapat diolah dengan baik. Salah satu cara untuk mengurangi noise dapat dilakukan dengan Median Filtering.
Median filtering adalah suatu metode yang terfokus pada nilai tengah atau median
dari sejumlah pixel yang ada disekelilingnya. Median filtering pada umumnya mengganti pixel yang memiliki noise dengan nilai dari pixel yang ada disekelilingnya. Nilai pixel pada pusat bidang window dapat dihitung dengan mencari nilai median dari nilai intensitas sekelompok pixel yang telah diurutkan jika window tersebut ditempatkan pada suatu bidang citra. Secara matematis, rumus median filtering ditunjukan pada persamaan sebagai berikut:
𝑔(𝑥, 𝑦) = 𝑀𝑒𝑑𝑖𝑎𝑛{𝑓(𝑥 − 𝑖, 𝑦 − 𝑗), (𝑖, 𝑗) ∈ 𝑊}
(2.1)(a) (b)
g (x,y) merupakan citra yang dihasilkan dari citra f (x,y), sedangkan W merupakan window
yang ditempatkan pada bidang citra dan (i,j) elemen dari window. Median filtering untuk menghilangkan derau hitam pada bidang putih ditunjukan pada gambar 2.8. Sedangkan
Median filtering untuk menghilangkan derau putih pada bidang hitam ditunjukan pada gambar 2.9.
(a) (b)
Gambar 2.9. Median Filtering 2(a) Input (b) Output
2.4.5.
Labeling
objek
(a) (b)
Gambar 2.10. Labeling (a) Input (b) Output
Labeling merupakan suatu pengolahan citra yang berfungsi untuk memberikan label
pada dua atau lebih objek yang terdapat pada suatu citra. Labeling berfungsi untuk menghitung jumlah objek yang terdapat pada suatu citra dimana warna hitam sebagai latar bernilai 0 dan warna putih sebagai objek bernilai 1 dan akan diberikan nilai 2 untuk objek
kedua dan seterusnya. Labeling juga berfungsi untuk menunjukan objek mana yang akan dilakukan suatu pengolahan citra dan mana objek yang tidak akan dilakukan pengolahan citra. Contoh labeling dapat dilihat pada gambar 2.10.
2.4.6.
Cropping
Cropping merupakan sebuah proses penyuntingan pada suatu citra untuk mendapatkan suatu daerah yang akan dilakukan pemrosesan citra nantinya. Proses cropping
akan menghasilkan suatu citra berbentuk segi empat dan sisa dari hasil cropping akan dibuang atau dihapus. Pada pemrosesan citra proses cropping dilakukan dengan memilih 2 koordinat titik pada citra,koordinar berasal dari titik x dan y dimana akan menjadi sebuah segi empat ketika ditarik garis nantinya, contoh proses corpping citra huruf H dapat dilihat pada gambar 2.11.
(a) (b)
Gambar 2.11. Proses Cropping pada Citra Huruf H (a) Input (b) Output
2.4.7.
Resize
Pada pemrosesan citra perlu dilakukannya proses resize, proses resize adalah proses untuk mengubah ukuran dari suatu citra, resize dapat berupa memperbesar atau memperkecil panjang citra, memperbesar atau memperkecil lebar citra, merubah total pixel yang ada pada citra, ataupun mengubah panjang dan lebar dari suatu citra dengan skala yang sudah ditentukan (rescale). Proses resize dilakukan dengan cara menarik citra masukan kedalam suatu persegi empat yang telah ditentukan lebar dan tingginya, contoh proses resize citra angka 3 dari citra 10 x 7 menjadi citra 5 x 7 dapat dilihat pada gambar 2.12.
(a) (b)
Gambar 2.12. Proses Resize pada Citra Angka 3 (a) Input (b) Output
2.4.8.
Centroid
Dalam matematika dan fisika, centroid dari suatu bidang datar memiliki arti titik tengah dari suatu bidang yang apabila dilakukan pemotongan melewati titik yang ditarik dari garis tersebut akan menghasilkan bentuk yang seimbang (memiliki luas yang sama) satu dengan yang lainnya. Dalam pengolahan citra, centroid berupa sebuah titik koordinat untuk sumbu x dan y, biasa ditulis dalam bentuk C(x,y). titik x centroid memiliki arti bahwa ketika ditarik garis lurus dari sumbu x sebesar 90º menuju ke titik centroid x maka garis tersebut akan membelah citra menjadi 2 buah wilayah yang memiliki area yang sama besar, begitu pula dengan titik y centroid berarti ketika ditarik garis lurus dari sumbu y sebesar 90º menuju titik centroid y maka garis tersebut akan membelah citra menjadi 2 buah wilayah yang memiliki area yang sama besar juga. Rumus untuk menghitung centroid pada pengolahan citra adalah sebagai berikut:
𝑥𝑐 = ∑𝑛𝑖=1𝑥𝑖.𝑝𝑖
∑𝑛𝑖=1𝑝𝑖 (2.2.)
𝑦𝑐 = ∑𝑛𝑖=1𝑦𝑖.𝑝𝑖
∑𝑛𝑖=1𝑝𝑖 (2.3.)
Dengan :
xc : Centroid pada sumbu x yc : Centroid pada sumbu y pi : Nilai pixel pada titik ke-i xi : koordinat x pada titik ke-i yi : koordinat y pada titik ke-i
Contoh perhitungan centroid pada citra huruf A:
Gambar 2.13. Citra huruf A Dengan perhitungan nilai centroid untuk titik x:
xi.pi 14++73++14++75++12++73+5+6+1+2+6+7+1+7+1+2+3+4+5+6+7+...
xi.pi108 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 + 1 =
pi
pi27 4 27 108 .
pi pi xi xcDan perhitungan untuk nilai centroid untuk titik y:
yi.pi172728283939334444556666666
yi.pi135 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 =
pi
pi27 5 27 135 .
pi pi yi yc(a) (b) (c) Gambar 2.14. Proses Perhitungan Centroid
(a) menghitung titik x (b) menghitung titik y (c) letak centroid
2.4.9.
GUI
Graphical user interface atau biasa disebut GUI adalah sebuah tampilan yang dibuat untuk mempermudah pengguna agar mampu berinteraksi dengan suatu perangkat komputer yang digunakan users tersebut, pembuatan GUI bertujuan untuk mempermudah tampilan, penggunaan, serta monitoring yang akan dilakukan. Pada Python GUI dapat dibuat dengan berbagai modul yaitu Tkinter, Wxpython, PyGTK, PyGObject, dan PySimpleGui. PySimpleGui dapat membuat GUI dengan berbagai macam kebutuhan dari one shot windows atau pop-up windows, mengganti windows menjadi berbagai warna dan tema, membuat textbox, button, list, hingga plotting.
2.5.
Sensor Ultrasonik
Sensor ultrasonik adalah sebuah sensor untuk menghitung jarak. Salah satu contoh sensor ultrasonik yang sering digunakan adalah HC-SR04. HC-SR04 merupakan sensor ultrasonik dengan kemampuan dari 2 cm hingga 4m, akurasi dari sensor ini juga sangat akurat yaitu dengan error hanya sekitar 3 mm.
Sensor HC-SR04 terdiri dari pemancar ultrasonik, penerima gelombang ultrasonik, dan sistem kontrol. Sedangkan pin yang terdapat pada HC-SR04 terdapat 4 yaitu pin tengangan 5V, pin Ground, pin Trigger untuk memancarkan sinyal ultrasonik, dan Echo merupakan hasil output dari sensor yang memiliki level 5 Volt. Sensor HC-SR04 memiliki delay 60ms pada pembacaan jaraknya, rumus pembacaan jarak pada sensor HC-SR04 adalah sebagai berikut: 2 tan *kecepa suara on waktu Jarak
Kecepatan suara = 343,21 m/s = 17160,5 cm/s maka,
Jarak(waktu on*8580,25)cm (2.4.)
2.6.
Motor Servo
Motor servo adalah sebuah perangkat atau aktuator putar (motor) yang dirancang dengan sistem kontrol umpan balik loop tertutup (servo), sehingga dapat di set-up atau di atur untuk menentukan dan memastikan posisi sudut dari poros output motor. motor servo merupakan perangkat yang terdiri dari motor DC, serangkaian gear, rangkaian kontrol dan potensiometer [11].
Motor servo terdiri dari 3 buah pin yaitu pin sumber daya (Vcc 5V) yang berwarna merah, kemudia pin ground (GND) yang biasanya berwarna hitam atau coklat, dan kemudian pin data PWM untuk mengatur seberapa besar pergerakan yang akan dilakukan oleh motor servo. Contoh pin motor servo yang akan digunakan adalah tipe MG-995[6] dapat dilihat pada gambar 2.16.
Motor servo MG-995 memerlukan PWM input sebesar 50Hz atau memiliki siklus setiap 20ms. Dalam datasheet[6] tertera bahwa untuk menggerakkan motor servo pada sudut 0◦ diperlukan waktu sebesar 0,5 ms on dalam satu siklus 20ms, sedangkan untuk 90◦ diperlukan waktu sebesar 1,5 ms on dalam satu siklus 20ms, dan untuk 180◦ waktu yang diperlukan adalah 2,5 ms. Sehingga untuk membuat rumusan untuk menggerakkan servo ke sudut terentu dari nilai duty cycle adalah sebagai berikut:
Duty cycle = sudut /18 + 2 (2.5.)
Dikarenakan pada saat 0.5 ms servo pada 0◦ adalah 2,5% dari duty cycle sehingga dapat sibulatkan menjadi 2, sedangkan pada sudut sembilan puluh dan seratus delapan puluh, duty cycle masing masing bertambah sebesar 5 % sehingga diketahui untuk perubahan setiap 18◦ memerlukan 1% perubahan duty cycle.
2.7.
Principal Component Analysis
Principal Component Analysis (PCA)adalah sebuah algoritma yang berfungsi untuk menyederhanakan suatu data, dengan cara mentransformasikan data secara linier, sehingga terbentuk sistem koordinat baru dengan varians maksimum. Secara sederhana PCA merupakan teknik untuk menarik fitur-fitur dari suatu data berskala besar tanpa menghilangkan informasi penting dari data tersebut.
Algoritma PCA dimulai dengan membuat data pada suatu objek kedalam bentuk vektor. Kemudian data data tersebut akan disatukan untuk menjadi sebuah matriks. Data dalam bentuk matriks ini akan dicari kovariannya, nilai eigen dan juga vektor eigennya.
2.7.1.
Covariance Matrix
Covaraince Matrix (Matriks kovarian) adalah sebuah matriks persegi yang merupakan nilai kovarian dari dua atau lebih vektor yang berbeda. Hasil matriks kovarian yang akan didapatkan akan selalu berbentuk matriks persegi dan ordo matriks yang dihasilkan bergantung pada jumlah vektor yang akan digunakan dalam pembuatan matriks kovaraian. Dua buah vektor akan menghasilkan matriks kovarian berordo 2, tiga buah vektor akan menghasilkan matriks kovarian berordo 3 dan begitu seterusnya.
2.7.2.
Eigenvalue
dan
Eigenvector
Apabila ada sebuah matriks A berordo n x n, maka vektor bukan nol dapat dikatakan sebagai Eigenvector (vektor eigen) x dari matriks A apabila hasil perkalian dari matriks A
dengan vektor x adalah sebuah kelipatan skalar dari vektor x. Nilai skalar perkalian dengan vektor x ini yang merupakan eigenvalue (nilai eigen) dari mariks A yang berhubungan dengan vektor x.
Contoh :
Apabila ada vektor
5 2 x , dan matriks 3 0 2 2 A . Nilai Ax = 5 2 3 0 2 2 = 15 6 = 5 2 3 =3 x Maka matriks 3 0 2 2
A memiliki nilai eigen 3 yang berhubungan dengan vektor
5 2
x yang merupkan vektor eigen.
2.8.
K – Nearest Neighbour
K – Nearest Neighbour (K-NN) adalah sebuah metode untuk melakukan klasifikasi terhadap data objek berdasarkan data latih yang jaraknya paling dekat dengan data objek tersebut. Perhitungan jarak pada K-NN dapat dilakukan dengan berbagai macam fungsi jarak, salah satunya adalah jarak Euclidean, tahapan pembuatan algoritma K-NN adalah dengan melakukan training terlebih dahulu, kemudian menentukan parameter K yang akan digunakan dan melakukan klasifikasi terhadap data training.
2.8.1.
Jarak Euclidean
Pangenalan pola sebuah ciri memerlukan sebuah perbandingan untuk menentukan apakah citra yang akan dikenali sama atau tidak dengan citra yang ada di database, untuk menentukan citra dari database manakah yang paling mendekati citra yang akan dikenali maka diperlukan sebuah fungsi untuk mengenali citra tersebut, contoh dari fungsi tersebut adalah fungsi jarak dan similaritas, antara lain jarak Euclidean, jarak Canberra, jarak City-Block, jarak Chebychef, jarak Minkowski, jarak kosinus, similaritas kosinus dan banyak lagi.
Jarak Euclidean adalah salah satu fungsi jarak yang cukup baik, definisi jarak
Euclidean adalah akar dari sigma selisih nilai pada 2 vector yang akan dihitung jaraknya, oleh karena itu untuk menghitung jarak dari 2 buah vector, jumlah anggota dari kedua vector
haruslah sama, jarak Euclidean dapat dituliskan dalam persamaan berikut :
𝑗(𝑥1, 𝑥2) = √∑𝑛 [𝑥1(𝑘) − 𝑥2(𝑘)]2
Dengan :
j(x1,x2) : Jarak antara vector x1 dengan x2
x1(k) : nilai vectorx1 ke-k x2(k) : nilai vector x2 ke-k
Contoh penggunaan fungsi jarak Euclidean misalkan vektor a = [3 7 8] dan vector b = [6 2 9] maka jarak antara vector a dan b adalah sebagai berikut:
2 2 2 ) 9 8 ( ) 2 7 ( ) 6 3 ( ) , (a b jarak 1 25 9 ) , (a b jarak 916 . 5 35 ) , (a b jarak
2.8.2.
Training
Pelatihan (training) merupakan tahap awal dari metode klasifikasi dengan K-NN. Pelatihan bertujuan untuk mempermudah kalsifikasi nantinya, training akan dimulai dengan pengambilan data latih yang akan digunakan, kemudian semua data latih akan mendapatkan sebuah kelas yang menunjukkan perbedaan dari setiap kelas data, kelas data akan dibentuk dalam bentuk array, setelah mendapatkan hubungan antara data latih dan kelas data maka, setiap data akan di-plotting, sehingga data-data tersebut akan lebih mudah untuk dianalisa. Contoh plotting dapat dilihat pada gambar 2.17.
Gambar 2.17. Hasil Plotting K-NN
2.8.3.
Parameter K
Parameter K merupakan jumlah tetangga terdekat dengan data uji. Paramater K harus memiliki nilai ganjil, untuk menghindari jumlah tetangga terdekat yang sama apabila nilai K genap. Pemilihan nilai parameter K yang tepat harus diuji terlebih dahulu untuk
mengetahui nilai K berapa yang akan menghasilkan akurasi paling tinggi. Contoh pemilihan K yang dapat membedakan hasil klasifikasi dapat dilihat pada gambar 2.18.
Gambar 2.18. Pemilihan Parameter K dengan Nilai 3 atau 5
2.8.4.
Classification
Gambar 2.19. Klasifikasi dari 3 Data Kelas K-NN
Setelah melakukan training dan juga menentukan parameter K, maka klasifikasi akan lebih mudah untuk dilakukan. Hasil klasifikasi dapat diarsirkan kedalam hasil plotting, sehingga pengenalan data dapat dilakukan dengan lebih mudah, cepat dan akurat. Dengan melakukan pengarsiran daerah maka data uji yang akan dimasukkan akan langsung mendapatkan data kelas mana data uji ini tanpa perlu melakukan perhitungan jarak secara
berulang. Contoh pengarsiran klasifikasi dari 3 buah kelas pada K-NN dapat dilihat dari gambar 2.19.
2.9.
Database
Database adalah sebuah bank data tempat penyimpanan segala data yang telah disimpan sebelumnya ataupun yang akan disimpan kedepannya, Database pada saat ini telah berkembang sangat pesat hingga dititik penyimpanan data dapat dilakukan pada penyimpanan awan (Cloud Storage), tetapi tidak jarang juga penyimpanan data masih menggunakan cara konvensional dimana diperlukannya sebuah server untuk menjadi tempat penyimpanan data dan data dikirim dengan menggunakan layanan local area network
(LAN). Tetapi tidak sedikit juga penyimpanan data ini dapat langsung dilakukan di dalam aplikasi yaitu melakukan penyimpanan dalam bentuk list ataupun array, sehingga data yang diperlukan nantinya dapat langsung dipanggil menggunakan command ”array[i]”.
BAB III
PERANCANGAN PENELITIAN
Pada bab III ini akan membahas tentang perancangan dari keseluruhan sistem pada prototype yang akan dibuat, dimulai dari porses kerja sistem secara keseluruhan, penjabaran proses kerja secara rinci pada setiap bagiannya, perancangan mekanik, perancangan rangkaian elektronis, perancangan GUI, serta perancangan perangkat lunak dari sistem.
3.1.
Proses Kerja Sistem
Pembuatan tugas akhir ini, akan dibuat sebuah prototype dari sistem parkir otomatis untuk mobil. Sistem otomasi dari sistem parkir ini menggunakan pengenalan plat kendaraan dengan menggunakan webcam. Sistem ini akan memiliki pintu gerbang masuk dan juga gerbang pintu keluar. Komponen yang akan digunakan dalam tugas akhir ini adalah sensor ultrasonik sebagai input mendeteksi apakah ada mobil atau tidak, webcam sebagai pengambil citra plat yang akan dikenali, Raspberry Pi sebagai alat komputasi, serta motor servo yang akan digunakan untuk membuka gerbang sebagai aktuator.
Cara kerja dari sistem secara garis besar terbagi menjadi dua yaitu, pada gerbang masuk dan pada gerbang keluar. Cara kerja pada gerbang masuk adalah mobil akan berhenti di depan gerbang masuk yang kemudian kehadiran dari mobil akan dideteksi oleh sensor ultrasonic. Sensor ultrasonic yang mendeteksi adanya mobil, maka webcam akan mengambil citra dari bagian depan mobil. Setelah akuisisi citra berhasil dilakukan akan dilakukan komputasi dengan menggunakan Raspberry Pi dengan OpenCV pada Python. Setelah mengenali nomor kendaraan pada mobil maka pintu gerbang masuk akan terbuka. Setelah mobil masuk dan sensor ultrasonik sudah tidak mendeteksi mobil maka gerbang masuk akan tertutup, data nomor kendaraan yang masuk akan disimpan.
Cara kerja pada gerbang keluar adalah mobil akan berhenti di depan gerbang keluar, kehadiran mobil akan dideteksi oleh sensor ultrasonik. Ketika sensor ultrasonik mendeteksi kehadiran mobil, maka modul kamera raspiakan mengambil citra dari bagian depan mobil. Setelah akuisisi citra berhasil dilakukan akan dilakukan komputasi kembali dan mendapatkan nomor kendaraan dari mobil yang ada pada gerbang keluar. Setelah data nomor kendaraan didapatkan maka akan dilakukan komparasi apakah data nomor kendaraan ada pada data yang dikirimkan oleh Raspberry Pi gerbang masuk.Apabila data dikonfirmasi
maka layar akan menampilkan data plat yang terdeteksi, waktu ketika masuk, waktu ketika keluar dan harga yang harus dibayarkan. Tombol bayar akan ditekan, setelah tombol bayar ditekan maka gerbang keluar akan terbuka. Mobil akan berjalan memasuki gerbang. Setelah sensor ultrasonik tidak mendeteksi mobil maka gerbang keluar akan ditutup.
Gambar 3.1. Merupakan blok diagram dari sistem keseluruhan sistem parkir otomatis dengan menggunakan webcam untuk mengenali nomor kendaraan dari mobil.
Gambar 3.1. Diagram Blok Sistem
3.2.
Perancangan Mekanik
Pada pembuatan tugas akhir ini dilakukan perancangan mekanik untuk mendapatkan gambaran akhir dari hasil pembuatan tugas akhir ini. Perancangan mekanik akan dibuat menjadi beberapa bagian yaitu percangan untuk prototype, detail perancangan panel box,
perancangan tempat sensor, dan perancangan gerbang.
3.2.1.
Perancangan
Prototype
Perancangan prototype bertujuan untuk mengetahui hasil akhir dari pembuatan penelitian ini, perancangan prototype manghasilkan 3 buah komponen penting dalam perancangan ini yaitu, panel box, gerbang dan sensor. Posisi dari sensor ultrasonik akan berada di samping daerah berhenti mobil agar dapat mendeteksi keberadaan mobil dan juga
setelah gerbang masuk sebagai penanda mobil telah masuk semua dan gerbang siap ditutup, sedangkan panel box akan berada dekat dengan gerbang agar wiring menjadi lebih mudah.
Gambar 3.2. Prototype Sistem Parkir Otomatis
Pada pembuatan sistem parkir otomatis ini akan dirancang dua buah gerbang yaitu untuk gerbang masuk serta gerbang keluar, hasil perancangan pada gerbang masuk dan gerbang keluar adalah sama sehingga akan digunakan satu gambar saja, hasil perancangan prototype dapat dilihat pada gambar 3.2.
3.2.2.
Perancangan
Panel Box
Perancangan panel box pada penelitian ini yaitu berisi webcam sebagai alat akuisisi citra dan juga Raspberry Pi yang merupakan otak dari sistem ini. percangan panel box akan dilakukan dengan menghasilkan kotak sebesar 15 cm x 9 cm x 5 cm, dengan webcam yang akan mengarah keluar dan juga Raspberry Pi yang akan dibaut pada panel box.
Webcam akan dihubungkan ke Raspberry Pi menggunakan USB, sedangkan
powersupply untuk Raspberry Pi akan menggunakan adaptor 5V3A yang akan dihubungkan ke jala-jala atau listrik PLN. Hasil dari perancancangan panel box dapat dilihat pada gambar 3.3.
Gambar 3.3. Panel Box
3.2.3.
Perancangan Tempat Sensor
Perancangan penempatan sensor dilakukan agar dapat menggunakan sensor dengan baik dan juga agar sensor dapat memiliki masa pakai yang lebih lama karena terlindungi, peracancangan tempat sensor mengasilkan kotak untuk meletakkan sensor ultrasonik akan memiliki ukuran 6 cm x 3 cm x 2 cm. Hasil perancangan tempat untuk sensor dapat dilihat pada gambar 3.4.
3.2.4.
Perancangan Gerbang
Aktuator merupakan output dari suatu sistem, aktuator pada sistem parkir otomatis dengan mengenali plat nomor ini adalah gerbang yang akan terbuka dan tertutup ketika mendeteksi mobil. Pembuatan gerbang nantinya akan menggunakan motor servo sebagai penggerak dan gerbang akan menggunakan kayu balsa agar memiliki massa yang lebih ringan karena hanya untuk keperluan pembuatan prototype.
Gambar 3.5. Hasil Perancangan Gerbang
Hasil akhir akan memiliki 2 buah gerbang yaitu gerbang masuk serta gerbang keluar tetapi karena kemiripan dari kedua buah gerbang yang akan dibuat, maka gerbang akan dibuat identic, sehingga perancangan akan cukup satu kali saja, panjang dari kayu balsa yang akan digunakan adalah 60 cm dan kotak penopang motor servo akan berdimensi 12 cm x 8 cm x 4 cm, hasil perancangan aktuator dapat dilihat pada gambar 3.5 di atas.
3.3.
Perancangan Rangkaian Elektronis
Perancangan rangkaian elektronis bertujuan untuk mengetahui wiring apa saja yang akan digunakan dan dilakukan pada sistem parkir otomatis pada tugas akhir ini. Perancangan rangkaian elektronis ini memiliki satu board Raspberry Pi, 4 buah sensor ultrasonik yang akan diletakkan 2 pada gerbang masuk dan 2 pada gerbang keluar, 2 buah motor servo, 1 buah push button, berbagai ukuran resistor dan power supplyexternal agar dapat memenuhi kebutuhan daya dari rangkaian elektronis ini. Hasil perancangan rangkaian elektronis dapat dilihat pada gambar 3.6.
Gambar 3.6. Rangkaian Elektronis
Perancangan rangkaian elektronis ini menggunakan 3 ukuran resistor yaitu R1, R2 dan R3, dimana R1 dan R2 digunakan untuk rangkaian pembagi tegangan dan R3 sebagai pembatas arus. Pada perancangan rangkaian elektronis ini R3 akan memiliki nilai 220 Ohm, sedangkan pembagi tegangan R1 dan R2 dapat dihitung sebagai berikut :
Tegangan keluaran sensor adalah 5V, sedangkan tegangan level pada GPIO Raspberry Pi adalah 3.3V, maka tegangan keluaran sensor harus dibagi agar ketika memasuki GPIO Raspberry Pi dapat berada diantara 3 hinga 3.3V, untuk amannya maka dalam perancangan ini tengangan akan dibagi menjadi 3.1V, R2 akan ditentukan terlebih dahulu yaitu 5.6k Ohm maka:
2 1 2 R R R Vs Vo 1 5600 5600 5 1 . 3 R
maka nilai dari 5600 3432
1 . 3 5600 * 5 1 R Ohm
Untuk mempermudah perancangan dan hambatan yang dijual di pasaran maka hambatan yang akan digunakan adalah 3300 Ohm, jika hambatan yang digunakan adalah 3300 Ohm maka hasil dari pembagian tegangan adalah:
146 . 3 3300 5600 5600 5 Vo V
Yang masih dalam tegangan aman dan dapat terbaca oleh nilai level dari Raspberry Pi, maka R1 yang akan digunakan adalah 3300 Ohm, nilai R2 yang akan digunakan adalah 5600 Ohm, dan nilai R3 yang akan digunakan adalah 220 Ohm.
3.4.
Perancangan GUI
GUI akan dirancang untuk menunjukkan data plat yang diambil, waktu masuk mobil, waktu keluar mobil, serta harga yang harus dibayar oleh pengemudi. GUI akan memiliki 2 kondisi yaitu kondisi sebelum tombol ditekan serta kondisi setelah tombol ditekan, GUI pada kondisi sebelum dan sesudah tombol ditekan dapat dilihat pada gambar 3.7.
(a) (b)
Gambar 3.7. (a) GUI Sebelum Tombol Ditekan (b) GUI Sesudah Tombol Ditekan
3.5.
Perancangan Perangkat Lunak
Perancangan perangkat lunak akan membahas tentang proses secara mendetail bagaimana sistem parkir otomatis dengan pengenalan plat akan bekerja, proses ini akan dijelaskan menggunakan flowchart, adapula flowchart yang akan dibahas dalam perancangan perangkat lunak ini adalah sebagai berikut :
1. Flowchart Pembuatan Database huruf dan angka 2. Flowchart Sistem
2.1 Flowchart Sensor Pertama 2.2 Flowchart Akuisisi Citra
2.3 Flowchart Segmentasi Plat
2.4 Flowchart Segmentasi Huruf dan angka 2.5 Flowchart Pengolahan Citra
2.6 Flowchart Klasifikasi Data
2.6.1 Flowchart Pembuatan Database Plat Mobil 2.6.2 Flowchart Pengenalan Plat Mobil
2.7 Flowchart Motor Servo
3.5.1.
Flowchart
Pembuatan Database
Gambar 3.8. Flowchart Pembuatan Database
Pembuatan sistem parkir otomatis dengan mengenali plat nomor ini akan dimulai dengan pembuatan database dari fitur setiap citra huruf dan angka, terdiri dari 26 huruf capital dari A-Z dan juga 10 angka dimulai dari 0 – 9 yang masing masingnya akan berjumlah 5 citra sehingga akan terdapat 180 citra huruf dan angka untuk pembuatan
database, pertama adalah pengambilan citra huruf dan angka yang nantinya akan dimasukkan kedalam satu folder (directory) yang sama, kemudian program akan membaca isi dari folder tersebut, kemudian citra yang telah terbaca akan dilakukan pengolahan citra, detail pengolahan citra dapat dilihat pada subrutin pada subbab 3.4.7. setelah pengolahan citra dan mendapat fitur dari PCA, data tersebut akan dimasukkan kedalam pelatihan dengan
K-NN untuk proses klasifikasi, setelah data dilatih maka data tersebut akan disimpan, dan proses pembuatan database huruf dan angka telah selesai.
3.5.2.
Flowchart
Sistem
Pada flowchart sistem ini akan menjelaskan secara garis besar dari proses mulai hingga selesai. Proses pertama pada gerbang masuk dimulai dengan pendeteksian dengan menggunakan sensor ultrasonik, kedua akuisisi citra yaitu proses pengambilan gambar, ketiga akan dilakukan segmentasi untuk mendapatkan citra bagian plat nomor saja, setelah mendapat citra plat, maka citra akan diproses untuk mendapatkan perhuruf atau angka dari plat tersebut, kemudian dilakukan pengolahan citra untuk mendapatkan fitur fitur citra yang diperlukan, pengolahan citra juga meliputi standarisasi data dengan algortima PCA, setelah mendapat nilai PCA dari setiap huruf dan angka, maka data tersebut akan diklasifikasi dengan menggunakan hasil data latih dari K-NN, sehingga didapatkan angka dan huruf yang ada pada plat nomor, data plat nomor akan disimpan kedalam sebuah array database yang akan digunakan pada gerbang keluar, setelah data disimpan maka akan masuk kedalam subrutin motor servo, kemudian sistem akan standby kembali.
Gambar 3.9. Flowchart Sistem Gerbang Masuk
Proses pada gerbang keluar sangat identik dengan proses pada gerbang masuk, yang membedakan hanyalah setelah data huruf dan angka telah diklasifikasi dan mendapatkan data dari plat nomor mobil, data tersebut akan dibandingkan dengan data data yang telah sebelumnya disimpan kedalam database, apabila data tersebut ternyata identik dengan data pada database, maka monitor akan menampilkan data waktu masuk, waktu keluar, dan juga berapa harga yang harus dibayarkan oleh driver mobil, setelah tombol bayar ditekan gerbang
akan terbuka, gerbang akan tertutup apabila sensor ultrasonik kedua telah mendeteksi bahwa mobil telah melewati gerbang.
Gambar 3.10. Flowchart Sistem Gerbang Keluar
3.5.3.
Flowchart
Sensor Ultrasonik
Gambar 3.11. Flowchart Proses Kerja Sensor Pertama
Flowchart sensor ultrasonik pertama dimulai dari sensor ultrasonik yang akan
standby dari awal sistem dijalankan. Ketika sensor pertama mendeteksi keberadaan mobil maka sensor akan mengirim sinyal pada Raspberry Pi untuk mengaktifkan webcam,
sedangkan ketika tidak mendeteksi mobil sensor akan kembali ke keadaaan standby,
flowchart dari proses kerja sensor gerbang masuk dapat dilihat pada gambar 3.11. Sedangkan pada gerbang keluar perbedaan hanya berapa pada jenis kamera yang akan dinyalakan oleh Raspberry Pi, karena pada gerbang keluar kamera yang akan digunakan bukanlah webcam
melainkan modul kamera Raspberry.
3.5.4.
Flowchart
Akuisisi Citra
Setelah sensor mengirim sinyal kepada Raspberry Pi, sinyal tersebut akan menjadi sinyal untuk memberi perintah capture kepada webcam yang sedang standby, maka akuisisi citra mobil akan dilakukan, proses akuisisi citra dapat dilihat pada gambar 3.12.
Sedangkan untuk gerbang keluar proses akuisisi citra memiliki proses yang identik yang berbeda adalah alat yang digunakan untuk mengambil citra. Pada gerbang masuk menggunakan webcam Loogitech C170, sedangkan pada gerbang keluar alat untuk mengambil gambar pada gerbang keluar adalah modul kamera Raspi.
Gambar 3.12. Flowchart Akuisisi Citra Kembali
3.5.5.
Flowchart
Segmentasi Plat
Setelah akuisisi citra mobil dilakukan, citra mobil akan diubah dari citra warna (BGR) menjadi citra keabuan (Grayscale), kemudian akan dilakukan thresholding dengan menggunakan otsu thresholding dan mengubah citra grayscale menjadi citra biner, setelah mendapatkan citra biner maka akan dilakukan median noise filtering untuk menghilangkan derau (noise) garam dan lada, setelah menghilangkan derau, akan digunakan command findcountour untuk mendapatkan kontur kontur yang ada pada citra biner,
Gambar 3.13. Flowchart Segmentasi Plat
Kemudian mengubah citra untuk mengambil hanya tepi dari citra dengan menggunakan fungsi canny edge detection, kemudian deteksi bentuk persegi panjang mengggunakan findcontour kembali dengan cara mendeteksi objek yang memiliki sudut empat buah, setelah itu dilakukan cropping untuk mendapatkan citra plat, proses segmentasi plat dapat dilihat pada gambar 3.13.
3.5.6.
Flowchart
Segmentasi Huruf dan Angka
Setelah mendapatkan citra plat, proses selanjutnya adalah melakukan median noise filtering lagi untuk mendapatkan citra yang bersih dari derau, kemudian menggunakan
findcontour lagi bertujuan untuk mendeteksi jumlah objek yang ada pada citra plat.
setelah mendapatkan jumlah objek maka objek tersebut akan diurutkan sehingga urutannya yaitu dari kiri ke kanan (objektif pandangan pembaca), setelah objek diurutkan maka akan dilakukan cropping pada setiap objek yang masih terdeteksi, proses segmentasi huruf dan angka ini dapat dilihat pada gambar 3.14.
Gambar 3.14. Flowchart Segmentasi Huruf dan Angka
3.5.7.
Flowchart
Pengolahan Citra
Setelah mendapatkan citra huruf dan angka, citra tersebut akan diproses untuk mendapatkan fitur dari citra citra tersebut, fitur fitur yang akan digunakan dalam penelitian ini adalah luas, keliling, momen untuk mendapatkan titik tengah, metric, dan eccentricity.
Setelah mendapatkan fitur fitur tersebut nilai tersebut akan dimasukkan kedalam sebuah vektor, kemudian digunakan algoritma PCA untuk mendapatkan 2 nilai unik yang dimiliki setiap citra, cara menghitung algoritma PCA dapat dilihat pada dasar teori pada bab 2. Proses selesai ketika mendapatkan nilai PCA untuk semua citra huruf dan angka.
.
Gambar 3.15. Flowchart pengolahan citra
3.5.8.
Flowchart
Klasifikasi Data
Klasifikasi data dilakukan dengan cara memasukkan data PCA, kedalam data latih yang telah dibuat sebelumnya pada proses pembuatan database, setelah semua data PCA dari citra huruf dan angka diklasifikasi, maka data dari plat nomor akan didapatkan, pada gerbang masuk data plat nomor akan disimpan didalam array database untuk data mobil yang sedang parkir
Sedangkan pada gerbang keluar setelah proses klasifikasi data berhasil dilakukan proses selanjutnya adalah membandingkan data plat nomor yang teridentifikasi dengan data plat nomor pada array database. Apabila data yang diidentifikasi tidak terdapat pada array database maka porses akan kembali ke akuisisi citra untuk mendapatkan citra kembali.
Gambar 3.17. Flowchart Klasifikasi pada Gerbang Keluar
3.5.9.
Flowchart
Motor Servo
Proses terakhir dari sistem parkir otomatis ini adalah gerbang yang akan bergerak (aktuator), pergerakan motor terbagi menjadi dua yaitu pada gerbang masuk dan juga pada gerbang keluar.
Pada gerbang masuk ketika data telah diterima maka Raspberry Pi akan langsung mengirim sinyal kepada motor servo untuk bergerak sebesar 90º (gerbang akan tebuka), kemudian motor servo akan bergerak ke keadaan sebelumnya 0º (gerbang dalam keadaan tertutup) apabila sesor kedua telah mendeteksi adanya mobil dan mobil telah melewati gerbang secara menyeluruh agar gerbang tidak menabrak mobil nantinya, proses pada gerbang masuk dapat dilihat pada gambar 3.18.
Gambar 3.18. Flowchart Motor Servo pada Gerbang Masuk
Sedangkan pada gerbang keluar, terdapat 2 buah pengambilan keputusan agar gerbang dapat terbuka (motor servo bekerja bergerak 90o), yang pertama adalah komparasi antara data input dan juga data yang telah diambil sebelumnya (data plat dari Raspberry Pi gerbang masuk).
Setelah data tersebut dikonfirmasi sama, maka LCD akan menunjukkan data data plat, waktu masuk, waktu keluar, serta pembayaran, ketika pembayaran dilakukan tombol bayar akan ditekan sebagai sinyal bahwa parkir telah dibayar.
Setelah kedua hal diatas dilakukan maka gerbang akan terbuka (motor servo bergerak 90º). Setelah itu gerbang akan tertutup (motor servo bergerak -90º) apabila sensor kedua telah mendeteksi adanya mobil dan mobil tersebut telah melewati gerbang secara menyeluruh agar gerbang tidak menabrak mobil yang sedang lewat, proses cara kerja gerbang keluar dapat dilihat pada gambar 3.19.
Gambar 3.19. Flowchart Motor Servo pada Gerbang Keluar Kembali
BAB IV
HASIL DAN PEMBAHASAN
Pada bab ini akan dijelaskan mengenai hasil implementasi dari perancangan penelitian baik perancangan software maupun perancangan hardware. Bab ini juga dengan rinci membahas perubahan perubahan yang dilakukan guna mencapai tujuan dan manfaat dari penelitian ini yaitu menghasilkan prototype sistem parkir otomatis dengan pengenalan plat nomor mobil , dan membantu mahasiswa untuk memahami implementasi dari penggunaan computer vision dalam kehidupan sehari-hari.
4.1.
Hasil Implementasi
Hasil implementasi menjelaskan pengunaan dan segala perubahan yang terjadi dari hasil perancangan yang berada pada bab 3 sebelumnya, pembahasan hasil implementasi akan meliputi graphical user interface, perangkat keras dan perangkat lunak.
4.1.1.
Graphical User Interface
(GUI)
GUI merupakan tampilan antarmuka antara pengguna dengan sistem yang telah dibuat. Implementasi GUI pada penelitian ini sudah sesuai sesuai dengan perancangan pada bab 3 dengan beberapa catatan yaitu penambahan pada bidang kosong untuk menampilkan gambar plat yang akan dikenali, kemudian penambahan listbox yang bertujuan untuk menampilkan data plat nomor mobil yang sudah diambil dan jam saat mobil masuk. Hasil tampilan pada GUI dapat dilihat pada gambar 4.1. dan keterangan untuk element pada GUI dapat dilihat pada tabel 4.1. sedangkan untuk program pembuatan GUI sendiri dapat dilihat pada L-11 hingga L-13.