DETEKSI POSISI PLAT NOMOR KENDARAAN BERMOTOR BERDASARKAN AREA CITRA

Download Untuk menghadapai permasalahan ini dikembangkan system Deteksi Posisi Plat Nomor Kendaraan Bermotor Berdasarkan Area Citra. Sistem ini tida...

0 downloads 361 Views 542KB Size
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