ANALISIS DAN PERANCANGAN SISTEM
3.1 Analisis Sistem
Peneliti menggunakan data dengan dua jenis, yaitu dari data latih beserta data uji. Data uji merupakan kumpulan data untuk belajar mengenali gambar pada mesin dengan cara melatih sistem terlebih dahulu. Kemudian data testing ialah kumpulan data yang digunakan untuk diuji sebagai tahap akhir pembuatan sistem guna mengetahui seberapa tinggi tingkat akurasi yang diperoleh. Dataset yang digunakan merupakan data plat nomor kendaraan dengan ekstensi mp4 dari IP camera Kompleks Green Park di Jalan STM Ujung, Harjosari II, Medan Amplas. Data plat nomor kendaran berjumlah 90 buah.
3.1.1 Data latih (training)
Data latih yang digunakan sebagai masukan atau input dalam proses belajar pada mesin yang digunakan sebanyak 60 citra.
3.1.2 Data uji (testing)
Data uji yang dipakai untuk pengujian sistem guna mengetahui tingkat akurasi keberhasilan sebagai tahap akhir sebanyak 30 citra.
Pada Gambar 3.1 merupakan arsitektur umum yang akan dilakukan pada sistem.
Gambar 3.1 Arsitektur Umum Jika Status: Warga Kompleks
(Plat Terdapat di Database) - Nomor Plat
- Waktu Deteksi - Foto Pemilik Kendaraan - Nama Pemilik Kendaraan - Alamat Pemilik Kendaraan
Output
Citra Plat Nomor Kendaraan
Input
Citra Plat Nomor Kendaraan Data Uji
Jika Status: Bukan Warga Kompleks (Plat Tidak Terdapat di Database)
- Nomor Plat - Waktu Deteksi
- Status: Bukan Warga Kompleks - Warning
Training Testing
21
3.1.3 Image pre-processing
Tahap image pre-processing adalah tahapan ketika citra yang telah dimasukkan sebagai masukan atau input kemudian diolah untuk mendapatkan suatu citra dengan kualitas yang lebih baik agar sistem dapat belajar lebih baik pula. Hal ini dikarenakan, data yang digunakan memiliki noise yang berasal dari berbagai aspek, misalnya pencahayaan, ukuran, dan sebagainya.
Tahap pre-processing pada sistem pengenalan plat nomor kendaraan ini terdiri dari crop, rectangle detection, resize, grayscale, threshold, find contour, kemudian pemisahan antarkarakter yang terdeteksi agar lebih mudah dikenali pada tahap selanjutnya, yaitu pengidentifikasian plat nomor berupa huruf dan angka.
a. Crop
Pada tahap crop ini, citra video akan dilakukan pemotongan suatu citra yang dipilih berdasarkan titik koordinat, yakni pada posisi plat nomor kendaraan. Bagian tersebut kemudian dipotong untuk mendapatkan lokasi posisi plat pada citra.
Tabel 3.1 Crop Plat Nomor Kendaraan
No. Citra Asli Citra Crop
1.
2.
3.
4.
5.
6.
7.
8.
23
9.
10
11.
12.
…
30.
b. Rectangle Detection
Pada tahap ini, citra video akan dilakukan pendeteksian objek plat nomor yang berbentuk persegi panjang atau rectangle menggunakan YOLOv5 (You Only Look Once). Adapun kelebihan dari YOLOv5 adalah hanya membutuhkan sumber daya komputasi yang sedikit dengan hasil kinerja yang tinggi. Hasil dari tahap ini adalah citra yang telah dilakukan crop pada proses sebelumnya kemudian akan dideteksi objek berupa plat kendaraan. Adapun proses rectangle detection menggunakan YOLOv5 adalah sebagai berikut.
Tahap 1: Mempersiapkan data
Tahapan awal sebelum memulai proses ini adalah mempersiapkan data terlebih dahulu untuk memulai proses melatih data.
Gambar 3.2 Bounding Plat Nomor Kendaraan
Pada penelitian ini, dapat dilihat di Gambar 3.2 bahwa bounding rectangle yang dilakukan hanya pada area plat nomor kendaraan sehingga label yang dimiliki hanya ada satu, yaitu plat dan memiliki empat value bounding berupa titik x1, y1, x2, dan y2.
Tahap 2: Membuat model
Dengan data yang sudah ada, dilakukan proses membuat model untuk melihat sistem melatih data apakah sudah memiliki tingkat akurasi yang tinggi atau sebaliknya. Penelitian ini menggunakan epoch 50 dan 100 yang kemudian menunjukkan bahwa makin tinggi epoch, maka kemampuan mesin akan tinggi pula, ditandai dengan akurasi yang meningkat.
25
Tahap 3: Proses training
Selanjutnya proses training guna mengambil plat kendaraan saja. Sistem kerja YOLOv5 ini pada dasarnya membagi gambar ke dalam sistem grid dan tiap-tiap grid pula akan mendeteksi objek di dalam grid itu sendiri.
Tahap 4: Proses testing
YOLOv5 yang sudah belajar dari hasil proses latih kemudian disimpan ke dalam model yang selanjutnya akan digunakan untuk menguji efektivitas dari model yang dihasilkan terhadap citra plat kendaraan.
Tahap 5: Output
Hasil akhir atau keluaran dari proses yang dilakukan berguna untuk mendapatkan informasi keakurasian dari model yang dihasilkan.
Tahap 6: Potong hasil deteksi
Setelah sistem mampu mendeteksi pada area plat kendaraan, sistem akan melakukan proses crop terhadap rectangle detection yang dilakukan oleh YOLOv5.
Tabel 3.2 Rectangle Detection Plat Nomor Kendaraan
No. Citra Setelah Crop Citra Rectangle Detection
1.
2.
3.
4.
5.
6.
7.
8.
27
9.
10.
11.
12.
…
30.
c. Resize
Proses resize dilakukan untuk mengubah ukuran asli citra menjadi lebih besar untuk mempermudah sistem mengenali objek. Hal ini dikarenakan letak IP camera yang jauh sehingga plat nomor kendaraan akan terlihat sangat kecil. Oleh karena itu, citra perlu dilakukan resize sebesar 400% untuk diubah ukurannya menjadi lebih besar agar objek dapat dikenali dan dapat terlihat.
Hasil citra pada proses sebelumnya, yaitu rectangle detection menghasilkan citra yang terlihat sangat kecil sehingga masing-masing width maupun height dikalikan dengan skala persen sebesar 400%.
Tabel 3.3 Resize Plat Nomor Kendaraan
No. Citra Setelah Rectangle Detection Citra Resize
1.
2.
3.
4.
5.
29
6.
7.
8.
9.
10.
11.
12.
…
30
d. Grayscale
Citra yang dilakukan proses grayscale akan mengubah semua warna menjadi keabuan dengan tingkat nilai intensitas paling besar 255 berwarna putih hingga warna hitam paling kecil 0. Pada proses ini, perlu dilakukan konversi color space yang pada dasarnya memiliki default warna BGR yang terdiri dari 3 channel (blue, green, red) dengan masing-masing berisi 256 warna. Oleh karena itu, dilakukan konversi warna dari BGR (Blue, Green, Red) menjadi gray (abu-abu) yang terdiri 1 channel dengan 256 intensitas warna.
Tabel 3.4 Grayscale Plat Nomor Kendaraan
No. Citra Setelah Resize Citra Grayscale
1.
2.
31
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
…
30
e. Threshold
Pada tahap ini digunakan digunakan untuk memisahkan antara objek dan latar belakangnya. Proses yang dilakukan adalah mengubah citra keabuan menjadi citra biner yang memiliki dua warna, yakni hitam dan putih. Selanjutnya dapat diketahui daerah mana yang termasuk nomor plat dan latar belakangnya. Adapun tipe threshold yang digunakan adalah THRESH_BINARY_INV. Tipe ini mengubah warna objek atau nomor plat yang semula memiliki intensitas warna cenderung lebih terang dibandingkan latar belakangnya akan diubah menjadi hitam, begitu pun sebaliknya. Oleh karena itu, latar belakang plat menjadi bernilai 255 (putih), sedangkan nomor plat bernilai 0 (hitam).
33
Tabel 3.5 Threshold Plat Nomor Kendaraan
No. Citra Setelah Grayscale Citra Threshold
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
…
30
f. Find Contour
Pada tahap ini dilakukan find contour untuk pemotongan per huruf dan angka guna membuang bagian yang tidak diperlukan dan hanya mengambil karakter alfabet saja.
Bagian yang diambil adalah piksel 0 (hitam) yang memiliki ukuran height lebih besar
35
10 piksel dan width lebih besar 3 piksel. Setelah mendapatkan hasilnya, ukuran citra kemudian diubah menjadi 30 piksel pada bagian height maupun width.
Tabel 3.6 Find Contour Plat Nomor Kendaraan
No. Citra Setelah Threshold Citra Find Contour
1.
2.
3.
4.
5.
6.
7.
8.
9.
10.
11.
12.
…
30
37
3.1.4 Convolutional Neural Network
Tahapan identifikasi plat nomor kendaraan pada penelitian ini memakai Convolutional Neural Network (CNN). Tahapan awal sebelum memulai proses identifikasi, yaitu mempersiapkan data terlebih dahulu untuk memulai proses training data. Pastikan folder yang diproses sudah benar, kemudian dilakukan proses training atau proses latih data dan dilanjutkan dengan proses testing. Adapun proses training menggunakan convolutional neural network adalah sebagai berikut.
Tahap 1: Menentukan filter, stride, dan padding
Pada penelitian ini, filter yang digunakan adalah 5 x 5, dengan stride pada layer pertama dan selanjutnya adalah 2, serta padding diatur dalam keadaan default, yaitu 0.
Tahap 2: Menentukan pool size
Pool size yang digunakan adalah 2 x 2.
Tahap 3: Menentukan fungsi aktivasi
Fungsi aktivasi yang diterapkan adalah ReLu (Rectified Linear Unit) pada convolution layer dan softmax yang mengubah keluaran dari fully connected layer sebagai layer terakhir menjadi probabilitas yang dapat digunakan untuk banyak kategori (A—Z dan 0—9). Hal ini berbeda dengan fungsi sigmoid yang hanya memiliki dua kategori.
Tahap 4: Menentukan optimizer
Optimizer yang digunakan adalah SGD (Stochastic Gradient Descent) yang berperan dalam menemukan weight atau nilai bobot yang optimal dengan learning rate 0.01. Meskipun SGD memiliki tingkat akurasi yang lebih rendah dibandingkan optimizer lainnya seperti Adam, optimizer SGD ini lebih cepat dalam melakukan optimization dan lebih optimal dalam penggunaan resource dari perangkat keras.
Tahap 5: Menentukan batch size
Pada penelitian ini, ukuran batch yang digunakan adalah 10. Ukuran batch ini merupakan jumlah data citra yang dilatih per satu iterasi, kemudian jumlah keseluruhan data akan dibagi dalam batch yang ditentukan dengan hasilnya
menjadi jumlah komputasi pada citra per satu epoch. Pada penelitian ini, data latih yang digunakan sebanyak 60, maka mesin akan melatih 10 data citra tersebut dalam 1 batch. Dengan demikian, mesin akan memproses citra sebanyak 6 kali per satu epoch.
Tahap 6: Menentukan epoch
Jumlah epoch yang digunakan adalah 500. Sebelumnya, mesin melatih data dengan epoch 400, tetapi mesin masih menunjukkan adanya kesalahan.
Dengan demikian, jika proses iterasi untuk mengulangi proses belajar ini makin besar, kemampuan mesin akan meningkat dalam belajar mengenali citra sehingga hasil akurasinya juga akan meningkat.
Tahap 7: Proses training
Pada tahap akhir pre-processing, yaitu find contour guna memisahkan setiap karakter, citra yang dihasilkan berukuran 30 x 30 x 1. Citra tersebut kemudian digunakan sebagai citra input untuk melatih data yang akan diproses menggunakan CNN guna mengambil feature extraction dengan jumlah neuron 10, kemudian ukuran kernel 5 x 5 x 1 dengan hasil ukuran 15 x 15 x 10 dan pada max pooling layer pertama menjadi 15.
Hasil convolutional layer pertama kemudian diproses ke layer kedua dengan neuron 50, ukuran kernel 5 x 5 x 50 dan hasilnya menjadi 15 x 15 x 50.
Selanjutnya dimensi akan diperkecil lagi pada pooling layer menjadi 7 sehingga hasil dari layer kedua ini adalah 7 x 7 x 50.
Setelah semua proses selesai, maka akan diperoleh 36 fully connected layer, yaitu A—Z dan 0—1 dengan 100 neuron.
Tahap 8: Proses testing
CNN yang sudah belajar dari hasil proses latih kemudian disimpan dengan ekstensi .h5. Selanjutnya, model ini akan digunakan untuk menguji efektivitas dari model yang dihasilkan CNN terhadap citra plat kendaraan.
Tahap 9: Output
Hasil akhir atau keluaran dari proses yang dilakukan berguna untuk mendapatkan informasi keakurasian dari model yang dihasilkan.
39
Gambar 3.3 Proses Identifikasi CNN terhadap Citra
Gambar 3.3 merupakan proses dan alur untuk proses identifikasi yang dipelajari oleh CNN dengan mengekstraksi fitur dari citra dengan convolutional layer kemudian hasilnya digunakan untuk input proses pooling layer. Setelah itu, CNN akan membagi data sesuai dengan kategori yang sudah ditentukan, yaitu A—Z dan 0—1.