MENGHITUNG JUMLAH KENDARAAN DARI FILE VIDEO (AVI)
Bagus Priambodo
Fakultas Ilmu Komputer, Universitas Mercu Buana, Indonesia Email : bagus@lembagarating.com
Abstrak
Dalam penelitian ini, dikembangkan aplikasi untuk menghitung kendaraan yang melewati loket pembayaran jalan tol secara otomatis dari hasil rekaman video (AVI). Pengembangan aplikasi ini menggunakan alat bantu software Visual C++ 6.0. Dari hasil implementasi dan ujicoba, dapat disimpulkan bahwa aplikasi ini dapat berfungsi sebagaimana mestinya. Hanya saja keberhasilan system penghitungan ini sangat bergantung pada dua parameter yaitu pertama parameter batas toleransi selisih nilai antara pixel frame dengan pixel frame patokan dan kedua adalah parameter batas maximum jumlah pixel yang melewati batas toleransi. Diharapkan aplikasi ini dapat menjadi pemicu pengembangan aplikasi pencacah kendaraan secara real time dan cerdas, artinya dapat menentukan parameter dengan otomatis
Kata kunci : C++, Pengenalan Pola, Pengolahan Citra, Video
I. PENDAHULUAN
PT. JASAMARGA (Persero) adalah BUMN yang bertugas mengelola jaringan jalan tol di Indonesia dan memelihara seluruh ruas jalan tol agar selalu berfungsi sebagaimana mestinya. Ada beberapa layanan yang diberikan kepada publik yang berhubungan dengan jalan tol, diantaranya adalah:
a. layanan transaksi, seperti layanan berlangganan tol.
Namun, selain layanan-layanan yang diberikan kepada publik, PT. JASAMARGA sebagai suatu perusahaan juga tidak lepas dalam hal kegiatan manajerial yang sifatnya internal. Ada masalah internal yang harus di kelola salah satunya adalah penghitungan jumlah kendaraan yang melewati loket pembayaran jalan tol. Pada dasarnya, bila prosedur dan pekerjaan dijalankan sebagaimana mestinya, jumlah kendaraan yang melewati loket dapat tercatat sebagaimana mestinya. Namun, seringkali di lapangan terjadi ketidaksesuaian antara jumlah kendaraan yang lewat dengan yang tercatat di loket. Salah satu usaha yang telah dilakukan oleh PT. JASAMARGA adalah merekam kendaraan yang melewati loket pembayaran dengan menggunakan kamera yang diletakkan pada fixed position (yang telah ditetapkan posisinya), dan menghitung secara manual dengan melihat hasil rekaman kamera tersebut. Namun, keterlibatan manusia dalam sistem penghitungan manual seperti ini ternyata tidak memberikan hasil seperti yang diharapkan. Faktor human error, itulah yang menyebabkan hasil penghitungan kendaraan lewat dengan yang tercatat di loket pembayaran tidak sama.
Untuk itu pada penelitian ini, dikembangkan satu cara untuk mengatasi masalah tersebut diatas dengan membuat sebuah program atau aplikasi menghitung jumlah kendaraan lewat secara otomatis dari file video hasil rekaman di loket pembayaran jalan tol.
II. METODE
Computer vision terdiri dari teknik-teknik untuk mengestimasi ciri-ciri obyek di dalam citra, pengukuran ciri yang berkaitan dengan geometri obyek, dan menginterpretasi informasi geometri tersebut. Persamaan berikut penting untuk diingat dalam bidang computer vision.
Vision = Geometry + Measurement + Interpretation
Proses-proses di dalam computer vision dapat dibagi menjadi tiga aktivitas, yaitu :
1. Memperoleh atau mengakuisisi citra digital.
3. Menganalisis dan menginterpretasi citra dan menggunakan hasil pemrosesan untuk tujuan tertentu, misalnya memandu robot, mengontrol peralatan, memantau proses manufaktur, dan lain-lain.
Bitmap adalah array bit dua dimensi yang berisi data yang berhubungan dengan pixel dari sebuah citra atau image (untuk selanjutnya citra akan disebut image). Ketika gambar dari dunia nyata di tangkap dalam bentuk bitmap, gambar tersebut akan di pecah menjadi grid dan pixel. Nilai dari masing-masing pixel dalam bitmap menunjukan rata-rata warna dari gambar. Monochrome bitmap memerlukan hanya satu bit per pixel, gray shade atau bitmap berwarna membutuhkan perkalian bits per pixel.
Device independent bitmap (DIB) diperkenalkan di Windows 3.0 untuk memberikan format berkas image yang sangat diperlukan dan cocok untuk pertukaran. Sebagaimana diketahui, format berkas image lain seperti .GIF atau .JPEG, lebih banyak dikenal dan digunakan. Ini dikarenakan format .GIF dan .JPEG telah dikompresi sehingga berukuran kecil dan secara signifikan dapat mengurangi waktu pengunduhan. Kebanyakan DIB selalu tak dikompresi. Ini merupakan keuntungan yang besar. Tidak seperti berkas .GIF dan .JPEG, DIB secara langsung didukung fungsi Windows API.
Perancangan Sistem dengan Flow Chart
Gambar 2.1 Flow Chart Sistem Keseluruhan
Diagram Konteks
Perancangan dimulai dengan pembuatan diagram konteks, berupa penggambaran sistem dari penerapan algoritma penghitungan secara garis besar.
isiArrayAwal() bKetemu = false
bAwal = true
If !stop
isiArrayNext()
jmlPixelBeda = hitungSelisihPixel()
If jml Pixel Beda > = max pixel beda
Pengguna Penghitungan Sistem AVI
Jumlah Kendaraan
Gambar 2.2 Diagram Konteks
Diagram Aliran Data
Dari diagram Konteks diturunkan Diagram Aliran Data(DAD) Level 0 untuk penjabaran sistem penghitungan kendaraan.
Gambar 3.4 Diagram Aliran Data Level 0
Gambar 2.3
Kamus Data
• AVI merupakan masukan untuk proses sistem adalah file Audio Video 24 bit. • State A merupakan hasil perubahan bentuk masukkan dari AVI menjadi
bitmap
• State B merupakan hasil perubahan bentuk state setelah nilai RGB dari pixel diambil ditaruh dalam tiga buah array awal dan tiga buah array Next. • State C merupakan hasil penghitungan selisih antara tiga buah array next
dan tiga buah array awal di dapatkan Jumlah selisih warna.
• Angka (Jumlah kendaraan) merupakan hasil penghitungan berupa total jumlah kendaraan yang berhasil dihitung oleh sistem.
Spesifikasi Proses
Sistem menerapkan beberapa proses yang saling berhubungan sehingga akan membentuk suatu sistem utuh yang diharapkan.
Pengguna
Proses pecah AVI menjadi frame-frame bitmap (DIB)
Logika File AVI dipecah menjadi Frame-frame bitmap (DIB)
Proses isi Array dari nilai RGB bitmap Nomor
Proses 0.2 Masukkan State A
Keluaran State B
Bitmap diambil Nilai RGB dari Pixelnya
Logika
Lalu nilai RGBnya di masukkan dalam Array
Proses Fungsi Beda Pixel Nomor
Proses 0.3
Masukkan State B
Keluaran State C
Masing-masing Nilai dari Array Awal (Patokan) – Array Next Logika Lalu selisihnya dibandingkan apabila > toleransi maka stace
C (Jumlah Beda) ditambah 1
Proses hitung kendaraan (count car) Nomor
Proses 0.4
Masukkan State C
Bandingkan Jumlah Beda frame sekarang dan frame sebelumnya
Jika masih sama besar atau dalam batas toleransi maka tidak ada
kendaraan yg lewat
Jika sebelumnya telah terjadi lonjakan nilai atau berada diluar toleransi maka
perhatikan jika jml Beda mendekati 0 berarti kendaraan telah lewat
Logika
Kemudian jumlah kendaraan ditambah 1
III. HASIL DAN PEMBAHASAN
Untuk meninjau kinerja atau keberhasilan program dalam menghitung
kendaraan, diambil beberapa potongan frame awal beserta nilai-nilainya.
Uji Kinerja Penghitungan Kendaraan
• Setelah area ditentukan dan penghitungan dimulai akan tampak tampilan
sebagai berikut:
Perhatikan maximum beda pixel yang dijadikan patokan adalah 600
artinya area awal dan area berikut akan dianggap berbeda jika nilai pixel
beda lebih dari 600. Terlihat semua nilai masih 0.
• Setelah beberapa kali menekan tombol > mulai terlihat ada kendaraan
mendekat pada Area II Berikut, Nilai Pixel Beda pun berubah
Gambar 2.5 Frame ke dua
Nilai Pixel Beda Area(II) berubah menjadi 516 namun masih di bawah
batas ambang toleransi, batas ambang atau Max BedaPixel adalah 600
(lihat pada Gambar 2.5 diatas).
Nilai Pixel Beda Area(I) terlihat masih 0, dan memang tidak terlihat
kendaraan disana.
• Kemudian menekan tombol > lagi, untuk menuju ke frame berikutnya,
Gambar 2.6 Frame ke tiga
Pada Area I Berikut terlihat mulai ada kendaraan yang memasuki area, dan
nilai Pixel Beda Area (I) berubah menjadi 282, masih di bawah toleransi.
Jumlah mobil pada Area I masih terlihat 0.
Pada Area II Berikut terlihat kendaraan sudah memasuki area, nilai Pixel
Beda Area (II) melonjak menjadi 3131, artinya frame benar-benar berbeda
dan sudah jauh dari batas ambang (max beda pixel hanya 600).
Jumlah mobil pada area II masih terlihat 0
• Kemudian menekan tombol > kembali untuk menuju ke frame
Gambar 2.7 Frame ke empat
Pada Area I Berikut terlihat mobil telah memasuki Area I dan nilai Pixel
Beda Area I berubah drastis menjadi 982. Artinya frame awal telah berbeda
dengan frame sekarang karena telah di atas batas toleransi (600). Jumlah
mobil pada Area I masih telihat 0.
Pada Area II Berikut terlihat mobil mulai menjauhi Area II dan nilai Pixel
Beda area II telah turun dari sebelumnya 3131 menjadi 473. Nilai sekarang
sudah berada di bawah toleransi, artinya frame awal dan sekarang dapat
dikatakan sama, sehingga Jumlah mobil Area II bertambah.
Jumlah mobil Area II berubah menjadi 1.
Gambar 2.8 Frame ke lima
Pada Area I Berikut terlihat mobil telah memasuki Area I dan nilai Pixel
Beda Area I berubah drastis menjadi 982. Artinya frame awal telah berbeda
dengan frame sekarang karena telah di atas batas toleransi (600). Jumlah
mobil pada Area I masih telihat 0. Pada Area II Berikut terlihat mobil mulai
menjauhi Area II dan nilai Pixel Beda Area II telah turun dari sebelumnya
3131 menjadi 473. Nilai sekarang sudah berada di bawah toleransi, artinya
frame awal dan sekarang dapat dikatakan sama, sehingga Jumlah mobil
Area II bertambah. Jumlah mobil Area II berubah menjadi 1.
Gambar 2.9 Frame ke enam
Pada Area I Berikut terlihat mobil telah menjauhi Area I dan nilai Pixel Beda
Area I turun menjadi 323. Artinya frame di bawah batas toleransi, sehingga
frame awal dapat dikatakan sama atau kembali ke awal sehingga Jumlah
mobil Area I bertambah. Terlihat jumlah mobil pada Area I sekarang adalah
1.
Pada Area II Berikut terlihat mobil sudah tidak ada dalam area dan nilai
Pixel Beda Area II telah turun kembali menjadi 0, frame sakarang sama
dengan frame awal
Jumlah mobil Area II sekarang adalah 1 (tidak berubah)
Gambar 2.10 Frame ke tujuh
Pada Area I Berikut terlihat mobil sudah tidak ada dalam area dan nilai Pixel
Beda Area I telah turun kembali menjadi 0, frame sakarang sama dengan
frame awal.
Jumlah mobil Area I sekarang adalah 1 (tidak berubah)
Pada Area II Berikut terlihat belum ada mobil yang mendekati area II dan
nilai Pixel Beda area II masih 0, frame sakarang sama dengan frame awal
Jumlah mobil Area II sekarang adalah 1 (tidak berubah)
Hasil Kinerja
Dari hasil uji coba beberapa frame, yaitu dari frame awal hingga ada
kendaraan memasuki area dan kendaraan menjauhi area. Terlihat bahwa
dihitung jumlah kendaraan yang melewati area yang telah ditentukan. Namun
penempatan atau pengambilan area yang baik sangat menentukan keakuratan
dari sistem. Juga pemberian batas toleransi yang tepat sangat mempengaruhi
keakuratan dari sistem.
IV. KESIMPULAN
Berdasarkan hasil penelitian, dapat disimpulkan bahwa:
1. Sistem dapat menghitung jumlah kendaraan yang melewati loket
pembayaran jalan tol. Berdasarkan hasil rekaman video yang diperoleh
melalui kamera yang telah ditetapkan posisinya, yaitu di atas loket
2. Sistem masih tergantung pada dua buah parameter untuk penghitungan
kendaraan, antara lain :
Parameter batas toleransi selisih nilai antara pixel frame dengan pixel
frame patokan.
Parameter batas maximum jumlah pixel yang melewati batas toleransi.
3. Secara umum sistem ini telah dapat menghitung jumlah kendaraan secara
otomatis.
Kedepan sebaiknya pengembangan sistem mampu menentukan
parameter-parameter toleransi secara otomatis.
V. DAFTAR PUSTAKA
1. Petzold, Charles (1998), Programming Windows, 5th Edition. Microsoft
Press; November 11, 1998; 1479 pages..