DETEKSI POSISI PLAT NOMOR KENDARAAN BERMOTOR BERDASARKAN AREA CITRA Triyanto Adi Saputro.1, Elha Dhanny H1, Andriansyah Ramadhan 1, Afi Muftihul Situmorang1, M Fajar Lazuardi1. 1
Teknik Informatika, Fakultas Program Teknologi Informasi dan Ilmu Komputer, Universitas Brawijaya, Malang, Indonesia Abstrak
Seiring dengan pesatnya perkembangan ilmu pengetahuan dan teknologi saat ini menyebabkan banyak bermunculan inovasi yang semakin memudahkan manusia untuk melakukan kegiatan sehari – harinya. Salah satu yang mengalami perkembangan pesat adalah Pengolahan Citra. Pada dasarnya Pengolahan Citra Digital merupakan proses untuk melakukan pengolahan atau menganalisis citra digital untuk mengambil informasi yang ada. Pencatatan plat nomor kendaraan di Indonesia pada umumnya masih menggunakan cara konvensional, yaitu dengan mencatat plat nomor kendaraan satu persatu secara manual oleh penjaga parker atau petugas keamanan yang berjaga di tempat tersebut. Pencatatan secara manual dirasa kurang efisien karena sangat bergantung pada kejelian penjaga parkir terlebih saat melakukan pencatatan dalam jumlah besar. . Untuk menghadapai permasalahan ini dikembangkan system Deteksi Posisi Plat Nomor Kendaraan Bermotor Berdasarkan Area Citra. Sistem ini tidak menawarkan proses untuk melakukan pencatatan karakter namun hanya melakukan proses deteksi letak dan pemotongan per karakter pada plat nomor kendaraan yang dapat dijadikan dasar untuk dilakukan pengembangan lebih jauh. Keywords: pengolahan citra, citra digital, plat nomor kendaraan
I.
Pendahuluan
yang mengalami perkembangan pesat adalah Pengolahan Citra.
Seiring dengan pesatnya perkembangan
Saat ini banyak sekali produsen alat
ilmu pengetahuan dan teknologi saat ini menyebabkan banyak bermunculan inovasi
elektronik
yang semakin memudahkan manusia untuk
pengolahan citra pada produknya, seperti
melakukan kegiatan sehari – harinya. Hal ini
teknologi smile detection yang sudah banyak
juga
terdapat pada kamera saat kini, atau fitur yang
ternyata
konsumennya
berimbas yang
pada
semakin
perilaku
yang
memungkinkan
menuntut
menanamkan
untuk
melakukan
kamera secara otomatis.
segalanya serba praktis dan efisien. Salah satu
teknologi
setting
Pada dasarnya
Pengolahan Citra Digital merupakan proses
1
atau
karakter berwana putih, sedangkan pola
menganalisis citra digital untuk mengambil
karakter didalamnya memeiliki kesamaan
informasi yang ada. Pengolahan ini dapat
dengan pola kendaraan umum, dengan pola
berarti mengubah bentuk secara visual dari
sebagai berikut dimana:
untuk
melakukan
pengolahan
suatu citra tertentu ataupun hanya mengambil
KA : Kode Area Kendaraan berupa
informasi atau fitur tertentu dari citra yang
huruf maksimum jumlah digit adalah 2
nantinya dapat diproses lebih lanjut. Salah satu
digit dan minimum adalah 1 digit.
kasus yang dapat dilakukan modernisasi adalah
NP: Nomor Plat kendaraan berupa
pencatatan plat nomor kendaraan. Pencatatan
plat
nomor
kendaraan
angka – angka dengan jumlah digit
di
Indonesia pada umumnya masih menggunakan
maksimum adalah 4 digit
cara konvensional, yaitu dengan mencatat plat
KT: Karakter Tambahan yang bias ada
nomor kendaraan satu persatu secara manual
atau tidak, berupa huruf dengan digit
oleh penjaga parker atau petugas keamanan
maksimum
adalah
yang berjaga di tempat tersebut. Tempat parkir
umumnya
karakter
yang sudah menerapkan teknologi saat ini
menandakan suatu kecamatan atau
hanya terbatas pada kota - kota besar.
penjaga
sangat parkir
pencatatan
bergantung terlebih
dalam
pada saat
jumlah
kejelian
2.2.
melakukan
besar.
digit.
Pada
tambahan
ini
daerah dari kota tertentu. [1]
Pencatatan secara manual dirasa kurang efisien karena
2
Pengolahan Citra Secara harfiah, citra (image) adalah
Untuk
menghadapai permasalahan ini dikembangkan
gambar
system Deteksi Posisi Plat Nomor Kendaraan
dimensi). Ditinjau dari sudut pandang
Bermotor Berdasarkan Area Citra. Sistem ini
matematis,
tidak menawarkan proses untuk melakukan
menerus (continue) dari intensitas cahaya
pencatatan karakter namun hanya melakukan
pada bidang dwimatra. Sumber cahaya
proses deteksi letak dan pemotongan per
menerangi
karakter pada plat nomor kendaraan yang
kembali sebagian dari berkas cahaya
dapat
dijadikan
dasar
untuk
dilakukan
Dasar Teori
2.1.
Plat
Nomor
bidang
citra
objek,
dwimatra
merupakan
objek
(dua fungsi
memantulkan
tersebut. Pantulan cahaya ini ditangkap
pengembangan lebih jauh. II.
pada
oleh alat-alat optik, misalnya mata pada manusia, kamera,pemindai (scanner), dan sebagainya, sehingga bayangan objek yang
Kendaraan
disebut citra tersebut terekam.Suatu citra
Bermotor
adalah fungsi intensitas 2 dimensi f(x, y),
Di Indonesia, plat nomor pribadi
yang mana x dan y adalah koordinat
menggunakan warna dasar hitam dengan
spasial dan f pada titik (x, y) merupakan 2
tingkat kecerahan (brightness) suatu citra
menggunakan bahasa pemrograman
pada suatu titik.
Citra digital dapat
c#. Masukan system berupa citra yang
dibayangkan sebagai suatu matriks yang
diambil dengan media optic seperti
mana baris dan kolomnya menunjukkan
kamera.
tingkat keabuan di titik tersebut. Elemen -
3.2.
elemen dari citra digital tersebut biasanya
Tujuan
disebut dengan pixel, yang merupakan singkatan dari
Proses Pre-processing Citra
processing
picture elements. Dalam
dilakukan citra
proses
adalah
preuntuk
menghilangkan fitur – fitur yang dirasa
satu bidang gambar, sepenuhnya terdiri
tidak dibutuhkan oleh system dengan
dari pikselpiksel. Karena itu, berkas yang
dilakukan
menyimpan citra biasa disimpan dengan
manipulasi
parameter
-
parameter dari citra.
nama BMP. Untuk mengurangi ukuran dari berkas, biasanya berkas citra dimmpatkan dengan
menggunakan
teknik
3.2.1. Grayscaling
tertentu,
Grayscaling
misal yang terkenal yaitu JPEG atau GIF.
merupakan
prose
untuk mengubah citra RGB menjadi citra
[2]
abu – abu. Warna RGB pada umumnya dilakukan dengan cara mengisi komponen RGB dengan nilai yang sama. Nilai
III.
Metodologi Penelitian
3.1.
Metode Pengumpulan Data
Metode penyelesaian
yang
intensitas grayscale ini sama dengan
dilakukan
permasalahan
ini
dalam
intensitas RGB biasa yang dari 0 sampai
adalah
dengan 255. Semakin kecil nilai maka warna yang dihasilkan semakin gelap.
sebagai berikut:
Sebaliknya jika nilai semakin besar maka
1. Studi Literatur Metode yang dilakukan meliputi
warna yang dihasilkan semakin terang atau
pencarian materi dan referensi yang
putih. Persamaan untuk mengubah citra
terkait dengan Pengolahan Citra,
grayscale adalah sebagai berikut:
𝑌=
bahasa penmrograman c#, dan literature lain yang berhubungan
Y = 0.229R + 0.587G + 0.114B
Perencanaan system Deteksi Posisi Berdasarkan
Kendaraan Area
(ii)
Bermotor
Citra
ini
3
…. (i)
persamaan sebagai berikut:
2. Perencanaan Sistem Nomor
!
Atau dapat juga dengan menggunakan
dengan system.
Plat
!!!!!
….
3.2.2. Binerisasi Binerisasi
Morfologi citra merupakan proses adalah
proses
untuk
untuk menghasilkan fitur yang lebih presisi
mengubah citra RGB menjadi citra biner
ketika dilakukan analisa citra. Morfologi
atau citra 2bit. Pada umumnya pencarian
Citra terdiri dari dilasi dan erosi, namun
citra biner dilakukan setelah mengubah
morfologi citra yang digunakan dalam
citra menjadi grayscale agar distribusi
system ini hanya erosi. Erosi adalah proses
warna lebih merata. Prosesnya dilakukan
pengurangan pixel dari objek dalam citra.
pengubahan sesuai threshold tertentu. Jika nilai greyscale kurang atau sama dengan
3.3.3. Pencarian Posisi
dari nilai threshold maka diubah menjadi 0
Pada proses pencarian posisi ini
sedangkan jika nilai greyscale lebih dari
adalah proses yang dilakukan setelah tahap
nilai threshold maka diubah menjadi 255.
pre-proscessing
dan
segmentasi
citra.
Pencarian posisi dilakukan untuk mencari Segmentasi Citra
batasan – batasan posisi citra untuk
Segmentasi Citra dalam system ini
selanjutnya dilakukan cropping. Posisi plat
merupakan hal yang vital karena proses ini
ditandai oleh nilai 255 yang terluar dari
sangat menentukan keberhasilan dari hasil
objek. Variabel posisi objek plat diwakili
output system, karena proses ini digunakan
oleh xmin, xmax, ymin dan ymax.
3.3.
untuk menghilangkan fitur
- fitur yang
bukan merupakan fitur plat dari citra dan
3.4.
Pemotongan Per Karakter
Proses pemotongan per karakter
membantu untuk menetukan posisi dari
dilakukan dengan menghitung panjang
plat nomor dari citra.
dengan cara mencari jarak dari xmin dan xmax dan kemudian dibagi menjadi 10
3.3.1. Edge Detection
bagian sesuai dengan jumlah total karakter
Tepi merupakan pixel terluar dari suatu objek citra. Tepi biasanya dapat
dan
spasi
yang
diterapkan
dikenali dari adanya perubahan nilai
pembuatan plat nomor di Indonesia.
dalam
intensitas secara drastis dalam jarak yang IV.
singkat. Tujuan dari dilakukannya edge
Hasil dan Pembahasan Untuk menyelesaikan permasalahan
detection adalah untuk memperjelas garis batas atau boundary dari suatu objek dalam
ini dilakukan beberapa tahap yaitu:
citra
4.1.
Greyscaling Pada tahap awal citra melalui tahap
grayscaling, yaitu perubahan citra RGB
3.3.2. Morfologi Citra 4
menjadi
grayscale.
Persamaan
yang
Adapun
digunakan adalah Y = 0.229R + 0.587G +
penerapannya
dalam
program adalah sebagai berikut:
0.114B.
adalah sobel, dengan 2 macam masking
mata[0] = Convert.ToInt16(bmp1.GetPixel(i -‐ 1, j -‐ 1).R) * (-‐1); mata[1] = Convert.ToInt16(bmp1.GetPixel(i, j -‐ 1).R) * (-‐2); mata[2] = Convert.ToInt16(bmp1.GetPixel(i + 1, j -‐ 1).R) * (-‐1); mata[3] = mata[4] = mata[5] = 0; mata[6] = Convert.ToInt16(bmp1.GetPixel(i -‐ 1, j + 1).R); mata[7] = Convert.ToInt16(bmp1.GetPixel(i + 1, j + 1).R) * 2; mata[8] = Convert.ToInt16(bmp1.GetPixel(i, j + 1).R); matb[0] = Convert.ToInt16(bmp1.GetPixel(i -‐ 1, j -‐ 1).R) * (-‐1); matb[1] = matb[4] = matb[7] = 0; matb[2] = Convert.ToInt16(bmp1.GetPixel(i + 1, j -‐ 1).R); matb[3] = Convert.ToInt16(bmp1.GetPixel(i -‐ 1, j).R) * (-‐2); matb[5] = Convert.ToInt16(bmp1.GetPixel(i + 1, j).R) * 2; matb[6] = Convert.ToInt16(bmp1.GetPixel(i -‐ 1, j + 1).R) * (-‐1); matb[8] = Convert.ToInt16(bmp1.GetPixel(i, j + 1).R); int hasil = 0; int hasil2 = 0; for (int x = 0; x < 9; x++) { hasil = hasil + mata[x]; hasil2 = hasil2 + matb[x]; } hasil = hasil + hasil2; if (hasil > 255) hasil = 255; else if (hasil < 0) hasil = 0; bmp2.SetPixel(i, j,
yaitu vertical
Color.FromArgb(hasil, hasil, hasil));
Adapun penerapannya dalam program adalah sebagai berikut int abu = Convert.ToInt16((bmp1.GetPixel(i, j).R * 0.229) + (bmp1.GetPixel(i, j).G * 0.587) + (bmp1.GetPixel(i, j).B * 0.114)); bmp1.SetPixel(i, j, Color.FromArgb(abu, abu, abu));
4.2.
Binerisasi Setelah citra diubah ke greyscale,
citra diubah ke bentuk biner dengan threshold
tertentu
threshold
yang
digunakan adalah 200, dikarenakan semua plat
nomor
kendaraan
pribadi
menggunakan cat dasar hitam dan cata karakter putih. Adapun
penerapannya
dalam
program adalah sebagai berikut: if (abu > 200) abu = 255; else if (abu <= 200) abu = 0; bmp1.SetPixel(i, j, Color.FromArgb(abu, abu, abu));
4.3.
Edge Detection Edge detecktion atau deteksi tepi
disini berfungsi menebalkan tepi objek biner pada citra. metode yang digunakan
horizontal. -‐1 -‐2 -‐1 0 0 0 1 2 1
dan -‐1 0 1 -‐2 0 2 -‐1 0 1
4.4.
Erosi Proses ini menggunakan 2 macam
mask yaitu mask horizontal dan mask vertical, Adapun mask yang digunakan 5
dalam mask horizontal adalah sebagai
} if (j >= 0 && i + 3 < bmp2.Width) { temp = bmp2.GetPixel(i + 3, j); mat[7] = Convert.ToInt16(temp.R); } if (j >= 0 && i + 4 < bmp2.Width) { temp = bmp2.GetPixel(i + 4, j); mat[8] = Convert.ToInt16(temp.R); } if (mat[0] > 0 && mat[1] > 0 && mat[2] > 0 && mat[3] > 0 && mat[4] > 0 && mat[5] > 0 && mat[6] > 0 && mat[7] > 0 && mat[8] > 0) erosi = 255; else erosi = 0;
berikut 1 1 1 1 1 1 1 1 1
Sedangkan
mask
citra
yang
digunakan untuk vertical adalah sebagai 4.5.
berikut
Tahapan – tahapan dari pencarian
1 1 1 1 1 1 1 1 1
Adapun
penerapannya
Pencarian Posisi posisi adalah:
1.
dalam
Pencarian koordinat posisi plat
program adalah sebagai berikut
yang disimbolkan dengan xmin,
if (i -‐ 4 >= 0 && j >= 0) { temp = bmp2.GetPixel(i -‐ 4, j); mat[0] = Convert.ToInt16(temp.R); } if (i -‐ 3 >= 0 && j >= 0) { temp = bmp2.GetPixel(i -‐ 3, j); mat[1] = Convert.ToInt16(temp.R); } if (i -‐ 2 >= 0 && j >= 0) { temp = bmp2.GetPixel(i -‐ 2, j); mat[2] = Convert.ToInt16(temp.R); } if (i -‐ 1 >= 0 && j >= 0) { temp = bmp2.GetPixel(i -‐ 1, j); mat[3] = Convert.ToInt16(temp.R); } if (j >= 0 && i >= 0) { temp = bmp2.GetPixel(i, j); mat[4] = Convert.ToInt16(temp.R); } if (j >= 0 && i + 1 < bmp2.Width) { temp = bmp2.GetPixel(i + 1, j); mat[5] = Convert.ToInt16(temp.R); } if (j >= 0 && i + 2 < bmp2.Width) { temp = bmp2.GetPixel(i + 2, j); mat[6] = Convert.ToInt16(temp.R);
xmax, ymin, ymax. 2.
koordinat yang telah diperoleh sebelumnya Proses pencarian posisi dapat dilihat dari gambar berikut:
4.6.
Pemotongan Karakter Tahapan – tahapan dari pemotongan adalah:
1. Greyscaling 2. Pengubahan image menjadi biner 3. Deteksi tepi menggunakan sobel
6
Pemotongan Citra Asli berdasarkan
4. Pencarian ulang koordinat posisi karakter dalam citra plat, disimbolkan x1, x2, y1,y2 5. Pencarian area perkarakter dengan cara mencari jarak dari x1 ke x2 lalu dibagi 10 bagian sama besar. Proses pemotongan karakter dapat dilihat dari gambar berikut: V. Simpulan Berdasarkan percobaan diatas dapat disimpulkan bahwa tingkat akurasi dari system cukup rendah dikarenakan system tidak menerapkan metode dalam pencarian plat nomor dan pemotongan karakter. Penyebab hal ini adalah karena sulitnya mencari referensi yang sesuai dan karena mayoritas referensi yang dihimpun penulis menggunakan plugin dan library dalam implementasi metodenya
DAFTAR PUSTAKA [1] Patardo Marasi Manurung. 2007. Perangkat Lunak Pengenalan Nomor Mobil
Menggunakan Jaringan Kompetitif Dan Jaringan Koheren. Universitas Indonesia. Depok [2] Taufiqurrohman. 2013. Pengenalan Plat Nomor Sepeda Motor Dengan Menggunakan Metode Jarak Euclidean. Universitas Diponegoro. Semarang
7