Identifikasi Plat Nomor Kendaraan Di Indonesia Menggunakan Metode Convolutional Neural Network (CNN)
on
p-ISSN: 2301-5373
e-ISSN: 2654-5101
Jurnal Elektronik Ilmu Komputer Udayana Volume 12, No 2. November 2023
Identifikasi Plat Nomor Kendaraan di Indonesia Menggunakan Metode Convolutional Neural Network (CNN)
-
1 I Nyoman Restu Muliarta, 2 I Gede Santi Astawa, S.T., M.Cs
Informatics Department, Mathematics and Natural Science Faculty, Udayana University Kampus Bukit, Jalan Raya Kampus Unud Jimbaran, Indonesia
Abstract
Seiring dengan perkembangan zaman, teknologi juga semakin berkembang. Contohnya dengan menggunakan suatu system yang mampu mengidentifikasi plat nomor kendaraan secara efisien dan akurat. Contoh metode yang digunakan adalah metode CNN. CNN atau Convolutional Neural Network merupakan salah satu metode deep learning yang sering digunakan untuk pengenalan citra. Hal ini disebabkan karena metode CNN berkonsep system pengenalan citra pada visual cortex manusia sehingga memiliki kemampuan mengolah citra informasi. Dengan menggunakan metode ini, dapat mengenali simbol pada plat nomor kendaraan. Penelitian ini menggunakan beberapa sampel gambar plat kendaraan yang diambil dari berbagai media. Berdasarkan hasil penelitian yang telah dilakukan maka diperoleh hasil, yaitu tingkat keakuratan dalam mendeteksi setiap karakter pada plat kendaraan. Hasil rata-rata dari penelitian ini adalah 57%.
Keywords: CNN, Deep Learning
Plat nomor adalah salah satu alat identifikasi pada kendaraan. Plat nomor difungsikan sebagai sumber legalitas dan identitas sebuah kendaraan. Hal ini mempermudah untuk mencari kendaraan dengan hanya melihat dari plat nomornya. Contohnya adalah mencari kendaraan yang melanggar lalu lintas. Dengan adanya CCTV di jalan raya mempermudah melihat
kendaraan yang melanggar lalu lintas dengan mengecek plat nomornya. Apalagi sekarang sudah diterapkannya e-tilang. Hal ini akan mempermudah polisi untuk menilang pengendara tersebut. Seiring dengan perkembangan zaman, berbagai teknologi juga semakin berkembang. Contohnya dengan menggunakan suatu system yang mampu mengidentifikasi plat nomor kendaraan secara efisien dan akurat dengan menggunakan metode CNN.
CNN merupakan salah satu metode deep learning yang digunakan untuk pengenalan citra. Hal ini disebabkan karena metode CNN berusaha meniru system pengenalan citra pada visual cortex
manusia sehingga memiliki kemampuan mengolah citra informasi. CNN sering digunakan untuk untuk mengenali benda atau pemandangan, dan melakukan deteksi dan segmentasi objek. Dengan menggunakan metode ini, penulis akan mencoba menggunakan metode ini untuk mengenali simbol pada plat nomor kendaraan.
Convolutional Neural Network (CNN) merupakan pengembangan dari Multilayer Perceptron (MLP) yang digunakan untuk mengolah data dua dimensi. CNN termasuk dalam jenis Deep Learning yaitu Neural Network karena kedalaman jaringan yang tinggi dan banyak diaplikasikan pada data citra. Algoritma Convolutional Neural Network memiliki neuron yang didesain untuk bekerja layaknya lobus frontal yang dimiliki makhluk hidup, khususnya area visual cortex pada otak manusia dan hewan. Visual cortex yaitu area yang bertanggung jawab untuk memproses informasi dalam bentuk rangsangan visual. Hal ini yang membuat CNN cukup efektif digunakan dalam pemrosesan gambar dibanding algoritma neural network sejenis.
Training data set digunakan agar komputer dapat memiliki kecerdasan dalam hal ini komputer mengenali karakter nomor pelat kendaraan. Training dilakukan dengan menggunakan gambar plat kendaraan yang berisi karakter A-Z dan angka 0-9 dengan berbagai jenis font yang berbeda, kususnya font yang sering dipakai pada plat kendaraan mobil.
Implementasi system pada aplikasi ini dibuat menggunakan bahasa python dengan library OpenCV, math, argparse. dimana library ini diprogram agar mampu mendeteksi input berupa gambar, kamera, dan file video. Proses pendeteksiannya akan berlangsung secara realtime, sehingga objek plat nomor kendaraan mobil yang berupa tulisan karakter huruf dan angka dapat dikenali objeknya yang telah ditulis karakter plat nomornya.
Data yang digunakan merupakan citra digital berupa plat nomor kendaraan yang dihasilkan dari google dan sudah menjadi open source.
Langkah awal untuk mengidentifikasi nomor plat kendaraan tersebut adalah mendeteksi plat nomornya Berdasarkan kondisi atau situasi yang ada, ada banyak algoritma yang dapat mengimplementasikan proses ini, mulai dari yang sederhana sampai yang rumit. Beberapa metode atau algoritma yang dapat umum digunakan dalam proses ini adalah deep learning, Haar cascade, dan contour detection.
Jurnal Elektronik Ilmu Komputer Udayana Volume 12, No 2. November 2023
Gambar 1. Sampel Plat Kendaraan
Gambar di atas adalah contoh inputan yang akan digunakan untuk mencoba mendeteksi pelat nomor. Selain menggunakan gambar, program ini juga dapat menggunakan media lainnya seperti kamera atau dengan file video, dimana ketika menggunakan kamera atau file video terdapat proses tambahan diawal yakni mencapture gambar dari kamera atau file video tersebut setiap pada setiap frame, lalu proses selanjutnya sama yakni dengan mengolah gambar hasil capture tersebut. Hal pertama yang harus dilakukan ketika membuat program ini adalah instal terlebih dahulu paket software yang dibutuhkan, yaitu opencv-python. Beberapa library yang perlu digunakan adalah sebagai berikut:
-
# DetectPlates.py
import math
import cv2
import numpy as np
import DetectChars
import PossibleChar
import PossiblePlate
import Preprocess
-
# module level variables
PLATE_WIDTH_PADDING_FACTOR = 1.1
PLATE_HEIGHT_PADDING_FACTOR = 1.5
Hasil coding 1
Setelah inputan terbaca, maka akan disimpan inputan tersebut berupa frame gambar/citra. Kemudian frame gambar tersebut perlu melakukan filtering untuk menghilangkan noise atau derau yang terdapat pada citra. Hasil dari citra yang telah dihilangkan noisenya, perlu dilakukan grayscale atau keabuan sebelum diubah menjadi citra biner. Proses binerisasi menggunakan adaptive thresholding. Hasil dapat ditunjukkan pada gambar di bawah ini:
imgGrayscaleFrame = np.zeros((height, width, 1), np.uint8)
imgThreshFrame = np.zeros((height, width, 1), np.uint8)
imgContours = np.zeros((height, width, 3), np.uint8)
imgGrayscaleFrame, imgThreshFrame = Preprocess.preprocess( imgOriginalFrame) # preprocess to get grayscale and threshold images
-
# memunculkan kemungkinan karakter yang muncul
listOfPossibleCharsInFrame =
findPossibleCharsInFrame(imgThreshFrame)
-
# matching chars will attempt to be recognized as a plate
listOfListsOfMatchingCharsInFrame =
DetectChars.findListOfListsOfMatchingChars(listOfPossibleCharsInFrame)
Hasil coding 2
Gambar 2. Proses Grayscale
Segmentasi merupakan sebuah proses memisahkan daerah atau objek yang penting dari sebuah citra untuk memfokuskan pada objek yang akan digunakan. pada frame citra plat tersebur yang
Jurnal Elektronik Ilmu Komputer Udayana Volume 12, No 2. November 2023
akan dipisahkan adalah karakter yang terdapat pada sebuah pelat, yaitu karakter alfanumerik(kombinasi angka dan huruf). Tidak semua karakter pada plat akan disegmentasi, hanya karakter nomor pelat kendaraan saja sedangkan untuk bulan dan tahun berlaku tidak akan disegmentasi.
Langkah preprocessing selanjutnya adalah melakukan operasi morfologi, operasi morfologi digunakan untuk memisahkan karakter pelat yang berhimpitan untuk menyesuaikan karakter. Hasil morfologi dapat dilihat pada gambar di bawah, terlihat bahwa karakter menipis dari hasil binerisasi sebelumnya:
Gambar 3. Morfologi
Kemudian terdapat proses ekstraksi kontur dibutuhkan untuk mendapatkan semua kontur yang merupakan kandidat sebuah karakter pelat. Kontur harus diseleksi berdasarkan ukuran dan rasio sebuah karakter pelat.
Gambar 4. Ekstraksi Kontur
Persiapan data digunakan untuk melakukan pengenalan nomor pelat mobil kita akan menggunakan deep learning. Agar bisa menggunakan deep learning, harus menyiapkan kumpulan data untuk pelatihan karakter 0-9 dan A-Z, menyiapkan kumpulan data yang terkait dengan data training.
Testing data adalah proses menguji model yang sudah dibuat. Hasilnya mungkin tidak 100% benar, dan 339ka nada kesalahan atau kesalahan dalam melakukan prediksi. Salah satu faktornya adalah preprocessing yang masih kurang baik, sehingga data set yang digunakan untuk pelatihan karakter masih sangat sedikit.
Berikut ini beberapa hasil dari proses-proses diatas dengan berbagai sampel plat nomor dari berbagai media yang digunakan:
No |
Plat terdeteksi |
Karakter yang dikenali |
Akurasi |
1 |
H 1332 |
57% | |
2 |
l≡≡k |
O7e7 AZ |
57% |
3 |
Qfggigl |
E S198 BZ |
85,7% |
4 |
E 72 |
28% |
Rata-rata akurasi |
57% |
Tabel 1. Hasil
Dari hasil pengujian didapatkan bahwa Convolutional Neural Network mampu mendeteksi plat nomor kendaraan pada jalan raya berdasarkan sisa jarak yang terbaca. Keakuratan pembacaan Convolutional Neural Network yaitu sebesar 57%.
Dari pembahasan mengenai pengenalan nomor plat nomor kendaraan maka dapat disimpulkan oleh penulis adalah sebagai berikut:
-
1. Aplikasi identifikasi akan memfokuskan pada plat nomor yang ada pada kendaraan untuk mendapatkan informasi nomor kendaraan secara otomatis.
-
2. Algoritma yang digunakan untuk mendeteksi letak plat nomor kendaraan dan segmentasi plat nomor ini sangat dipengaruhi sekali oleh beberapa faktor berikut :
-
• Posisi kendaraan saat direkam dan posisi cahaya disekitarnya.
-
• Kondisi plat nomor kendaraan yang belum tentu jelas.
Dan apabila pada proses segmentasi terdapat karakter yang saling terhubung maka akan berakibat karakter tersebut terekstraksi bersama. Hal ini tentu saja dapat menyebabkan proses pengenalan pada karakter tersebut jadi salah.
Referensi
-
1. W. S. Eka Putra, “Klasifikasi Citra Menggunakan Convolutional Neural Network (CNN)
pada Caltech 101, JURNAL TEKNIK ITS Vol. 5, No. 1, (2016)
-
2. Tutut Furi Kusumaningrum, “Implementasi Convolutional Neural Network (CNN) Untuk
Klasifikasi Jamur Konsumsi di Indonesia Menggunakan Keras,” Yogyakarta, 2018.
-
3. Sugeng, & Syamsuddin. (2020). Perancangan Algoritma Optimasi Pengenalan Karakter Plat Nomor Kendaraan Menggunakan Pengolahan Citra Dengan Pengecekan Posisi dan Kemiripan Karakter. Jurnal Sistem Komputer , 10(2), 155-164.
-
4. OpenCV, t. (2019). Copyright 2019. Retrieved from OpenCV: https://opencv.org/
-
5. Hidayah, Maulidia, Akhlis, I., & Sugiharti, E. (2017). Recognition Number of The Vehicle
Plate Using Otsu Method and KNearest Neighbour Classification.
340
Discussion and feedback