• Tidak ada hasil yang ditemukan

Implementasi Lane Detection Dengan Metode Hough Transform Untuk Penilain mengemudi Berdasarkan Marka Jalan (Studi Kasus Sukses Mandiri)

N/A
N/A
Protected

Academic year: 2017

Membagikan "Implementasi Lane Detection Dengan Metode Hough Transform Untuk Penilain mengemudi Berdasarkan Marka Jalan (Studi Kasus Sukses Mandiri)"

Copied!
65
0
0

Teks penuh

(1)

IMPLEMENTASI LANE DETECTION DENGAN METODE

HOUGH TRANSFORM UNTUK PENILAIAN MENGEMUDI

BERDASARKAN MARKA JALAN

(STUDI KASUS SUKSES MANDIRI)

SKRIPSI

Diajukan untuk Menempuh Ujian Akhir Sarjana

OKI JANUAR INSANI MULYANA

10111568

PROGRAM STUDI TEKNIK INFORMATIKA

FAKULTAS TEKNIK DAN ILMU KOMPUTER

(2)

iii

KATA PENGANTAR

Alhamdulillahi rabbil ‘alamin, puji syukur penulis panjatkan kehadirat Allah SWT atas segala karunia-Nya. Shalawat serta salam senantiasa tercurahkan kepada Rasulullah Muhammad SAW, keluarganya, shahabat-shahabatnya serta para pengikutnya hingga hari akhir. Alhamdulillah atas izin-Nya, penulis dapat

menyelesaikan penyusunan skripsi yang berjudul “IMPELEMENTASI LANE DETECTION DENGAN METODE HOUGH TRANSFORM UNTUK

PENILAIAN MENGEMUDI BERDASARKAN MARKA JALAN”. Penulisan skripsi ini untuk memenuhi salah satu syarat dalam menyelesaikan studi pada Program Strata-1 Teknik Informatika, Fakultas Teknik dan Ilmu Komputer, Universitas Komputer Indonesia.

Laporan skripsi ini dapat terselesaikan dengan dukungan orang-orang yang senantiasa menguatkan, memberikan semangat dan solusi, senyuman serta harapan dan bimbingan kepada penulis. Oleh karena itu dengan penuh terima kasih, penelitian ini dipersembahkan untuk:

1. Orang tua tercinta, karena berkat dukungan dan doa yang diberikan kepada penulis maka tugas akhir ini bisa terselesaikan.

2. Bapak Irfan Maliki, S.T.,M.T selaku dosen pembimbing yang telah memberikan banyak kemudahan dan arahan, serta sabar memberikan bimbingan kepada penulis hingga laporan tugas akhir ini dapat terselesaikan.

3. Ibu Ednawati, S.Si.,M.Si selaku penguji 1 seminar dan sidang akhir. 4. Pihak-pihak Sukses Mandiri yang telah menerima penelitian tugas

akhir ini.

5. Ibu Utami Dewi Widianti, S.Kom., M.Kom selaku dosen wali yang telah banyak membantu.

(3)

iv

7. Rekan-rekan dari IF-1 (2011) yang telah banyak memberi masukan dan dukungan sehingga tugas akhir ini dapat terselesaikan.

(4)

v DAFTAR ISI

ABSTRAK ... i

ABSTRACT ... ii

KATA PENGANTAR ... iii

DAFTAR ISI ... v

DAFTAR GAMBAR ...x

DAFTAR TABEL ... xi

DAFTAR SIMBOL ...xii

DAFTAR LAMPIRAN ...xv

BAB 1 PENDAHULUAN ... 1

1.1 Latar Belakang Masalah ... 1

1.2 Rumusan Masalah ... 3

1.3 Maksud dan Tujuan ... 3

1.4 Batasan Masalah ... 4

1.5 Metodologi Penelitian ... 4

1.5.1 Metode Pengumpulan Data ... 4

1.5.2 Metode Pembangunan Perangkat Lunak ... 5

1.6 Sistematika Penulisan ... 6

BAB 2 LANDASAN TEORI ... 9

2.1 Pengertian Marka Jalan ... 9

2.2 Karakteristik Video Digital ... 10

2.2.1 Resolusi ... 11

2.2.2 Kedalaman Bit ... 11

2.2.3 Laju Frame ... 11

(5)

vi

2.3 Grayscale ... 13

2.4 Teknik Cropping ... 14

2.5 Median Filter ... 14

2.6 Threshold ... 16

2.6.1 Teknik Thresholding (Pengambang-batasan) ... 16

2.7 Operasi Morphologi ... 18

2.7.1 Dilasi ... 19

2.7.2 Erosi ... 20

2.7.3 Opening ... 21

2.7.4 Closing ... 21

2.7.5 Top-Hat dan Bottom-Hat Transformation ... 22

2.8 Hough transform ... 22

2.9 Estimasi Posisi Kendaraan Terhadap Marka ... 25

2.10 Penilaian Mengemudi Keluaran ... 26

2.11 Pengertian C# ... 27

2.12 Unified Modelling Language (UML) ... 27

2.12.1 Diagram UML ... 28

2.13 Pemograman Berorientasi Objek... 30

2.14 Open CV ... 31

BAB 3 ANALISIS DAN PERANCANGAN ... 37

3.1 Analisis Masalah ... 37

3.2 Analisis Sistem ... 38

3.2.1 LoadFile Video ... 39

3.2.2 Preprocessing ... 39

(6)

vii

3.2.4 Hough transform ... 47

3.2.5 Bar Estimasi Posisi Kendaraan dengan Marka... 53

3.2.6 Penilaian Mengemudi Sistem ... 56

3.3 Analisis Kebutuhan Non Fungsional ... 61

3.3.1 Analisis Perangkat Keras ... 62

3.3.2 Analisis Perangkat Lunak ... 62

3.3.3 Analisis Kebutuhan Perangkat Pikir ... 63

3.4 Analisis Kebutuhan Fungsional ... 63

3.4.1 Use Case Diagram ... 63

3.4.2 Activity Diagram ... 72

3.4.3 Class Diagram ... 78

3.4.4 Sequence Diagram ... 79

3.5 Perancangan Sistem ... 85

3.5.1 Perancangan Method ... 85

3.5.2 Perancangan Antarmuka... 91

BAB 4 IMPLEMENTASI DAN PENGUJIAN ... 93

4.1 Implementasi ... 93

4.1.1 Implementasi Perangkat Lunak ... 93

4.1.2 Implementasi Perangkat Keras ... 93

4.1.3 Implementasi Antarmuka ... 94

4.2 Pengujian Sistem ... 97

4.2.1 Pengujian Black Box ... 98

4.3 Pengujian Skenario Predikat Penilaian Mengemudi ... 101

4.3.1 Skenario Pengujian Predikat Baik ... 102

(7)

viii

4.3.3 Kesimpulan Pengujian ... 108

BAB 5 KESIMPULAN DAN SARAN... 109

5.1 Kesimpulan ... 109

5.2 Saran ... 109

DAFTAR PUSTAKA ... 110

(8)

110

DAFTAR PUSTAKA

[1] Shabana Habib and Mahammad, "Lane Depature Detection and Transmisson using Hough transformMethod," 2013.

[2] Mohamed Aly, "Real Time Detection of Lane Markers in Urban Streets,"

Computational Vision Lab.

[3] Herland, Sofyan Charles, "Deteksi Marka Jalan dan Estimasi Posisi Menggunakan Multiresolution Hough transform," vol. 21, no. 66-72, February 2013.

[4] Roger S. Pressman, Software Engeneering: a practitioner's approach, 68th ed., McGraw-Hill, Ed. New York.

[5] Menteri Perhubungan Republik Indonesia, Marka Jalan., 2014.

[6] Roalt Aalmoes, Video Compression Techniques Over Low-bandwidth Lines.: Twente University, 1996.

[7] Rinaldi Munir, Pengolahan Citra Digital.: Informatika, 2008.

[8] Yoga Triargono. (2014, November) Elib Unikom. [Online]. elib.unikom.ac.id

[9] Usman Ahmad, Pengolahan Citra Digital dan Teknik Pemrogrammannya. Yogyakarta: Penerbit Graha Ilmu, 2005.

[10] Nick Efford, Digital Image Processing: A Practical Introduction Using Java.: Pearson Education, 2000.

[11] Halimatus Sa'diyah, Rizal Isnanto, and Achmad Hidayanyo, "Aplikasi Transformasi Hough untuk Deteksi Garis Lurus," Teknik Informatika, 2008.

[12] M. Shalahuddin Rosa A.S, Rekayasa Perangkat Lunak Terstuktur dan Berorientasi Objek.: Informatika, 2013.

[13] Gudang Linux. (2014, January) Gudang Linux Indonesia. [Online]. http://gudanglinux.com/glossary/opencv-open-source-computer-vision/

(9)

1 1 BAB 1 PENDAHULUAN

1.1 Latar Belakang Masalah

Marka jalan adalah suatu tanda yang berada di permukaan jalan atau di atas permukaan jalan yang meliputi peralatan atau tanda yang membentuk garis yang berfungsi mengarahkan arus lalu lintas dan membatasi daerah kepentingan lalu lintas. Mengemudi pada marka jalan begitu penting karena salah satu ujian wajib pada pembutan SIM (Surat Pembuatan Mengemudi) di kepolisian Indonesia yaitu berkendara pada marka jalan.

(10)

Lane detection merupakan suatu metode untuk mengetahui lokasi dari marka jalan tanpa diketahui terlebih dahulu noise yang terdapat pada lingkungan sekitarnya. Lane detection ini telah menjadi penelitian yang sering dilakukan oleh banyak orang agar bisa menjadi salah satu pendukung Driver Assistant maupun untuk Autonomous Navigation yang termasuk bagian dari Inteligent Transportation System.

Metode hough transform adalah metode sebagai pendamping lane detection.

Hough transform adalah teknik transformasi citra yang dapat digunakan untuk mengisolasi atau dengan kata lain memperoleh fitur dari sebuah citra. Cara kerja metode Hough transform dengan cara menemukan sebuah objek dengan garis lurus pada suatu persamaan pada objek tersebut. Dalam hal ini objek yang akan dideteksi yaitu marka jalan.

Dalam penelitian ini tentunya tidak lepas dari referensi jurnal-jurnal yang mendukung. Penelitian-penelitian yang berhubungan dengan penelitian ini diantaranya oleh habana Habib dan Mahammad A Hanan yang berjudul “Lane Departure Detection and Transmisson using Hough transform Method” dalam penelitiannya menjelaskan tingkat akurasi deteksi pada kondisi pencahayaan jalan dengan hasil uji jalan malam hari dengan penerangan lampu kendaraan 60%, terowongan 80%, dan siang hari 85% [1]. Penelitan selanjutnya dilakukan oleh Mohamed Aly yang berjudul “Real time Detection of Lane Markers in Urban

Street” menjelaskan bahwa mampu mendeteksi semua marka yang berada di jalan perkotaan dengan baik dengan high rates 50 Hz[2]. Penelitian yang terakhir

dilakukan oleh Charles Edison, Herland, dan Sofyan yang berjudul, “Deteksi

Marka Jalan dan Estmasi Posisi Menggunakan Multiresolution Hough transform

menjelaskan bahwa penelitian ini membandingkan metode hough transform

(11)

3

Pada umumnya penelitian-penelitian sebelumnya yang membahas lane detection dan metode hough transform hanya sampai tahap mendeteksi marka jalan dengan tingkat akurasi deteksinya saja, akan tetapi dalam penelitian ini ditambahkan suatu fitur setelah deteksi marka jalan, sistem mampu mengetahui lajur yang dilalui kendaraan, mengestimasi kendaraan dengan marka per-frame

dari video, mengkalkulasi perhitungan estimasi posisi kendaraan dengan marka secara keseluruhan dengan parametenya yaitu ketika kendaraan di dalam marka jalan, pindah lajur dan melewati samping jalan. Setelah itu, sistem mampu mengeluarkan keluaran berupa predikat nilai untuk penilaian mengemudi.

1.2 Rumusan Masalah

Berdasarkan latar belakang yang telah dijelaskan, maka rumusan masalahnya adalah:

1. Bagaimana mengimplementasikan metode lane detection dengan metode

hough transform untuk penilaian mengemudi pada studi kasus di Sukses Mandiri.

2. Bagaimana hasil yang didapat dari penerapan metode tersebut, jika ditambah proses estimasi posisi kendaraan dengan marka, dan proses kalkulasi nilai persentase kendaraan ketika berada di dalam marka, pindah jalur, dan melewati samping jalan melalui video.

1.3 Maksud dan Tujuan

Adapun maksud dari penelitian yang akan dilakukan adalah mampu mengimplementasikan lane detection dengan metode hough transform untuk menghitung nilai persentase kendaraan di dalam marka, pindah jalur, dan melewati samping jalan berdasarkan hasil deteksi marka jalan untuk penilaian mengemudi.

Tujuan yang ingin dicapai dalam penelitian ini adalah:

(12)

2. Mengetahui dari deteksi marka jalan mampu mengeluarkan predikat untuk sebuah penilaian mengemudi.

1.4 Batasan Masalah

Dalam penelitian yang akan dilakukan membatasi permasalahan dengan ruang lingkup sebagai berikut:

1. Metode yang digunakan untuk mengimplementasikan lane detection pada video menggunakan hough transform.

2. Penilaian mengemudi hanya berdasarkan marka jalan. 3. Untuk pengujian yang dilakukan pada jalan tol.

4. Proses filter yang digunakan sistem yaitu median filter dan operasi morphologi.

5. Jalan yang digunakan satu jalur yang mempunyai dua lajur. 6. Jalan yang digunakan tidak dalam keadaan macet.

7. Keluaran penilaian mengemudi yang diuji dua predikat: Baik dan Cukup Baik.

1.5 Metodologi Penelitian

Metode penelitian yang digunakan adalah metode kualitatif yang bertujuan membuat gambaran secara sistematis, faktual mengenai fakta-fakta dan sifat-sifat pada suatu objek penelitian tertentu.

1.5.1 Metode Pengumpulan Data

(13)

5

1.5.2 Metode Pembangunan Perangkat Lunak

Model proses pembangunan perangkat lunak yang akan digunakan adalah model waterfall. Adapun langkah langkah dalam model waterfall yaitu analisis,

design, coding dan test. Berikut adalah Gambar 1.1 Model Waterfall[4]:

Gambar 1.1 Model Waterfall

1. Analisis Kebutuhan

Tahap analisis kebutuhan ini yaitu untuk memahami sistem yang ada pada penilaian mengemudi menggunakan video berdasarkan marka jalan serta mendefinisikan permasalahan sistemnya dan selanjutnya untuk menentukan kebutuhan sistem secara garis besar.

2. Desain Sistem

Tahap desain sistem ini yaitu merancang sistem terhadap implementasi

lane detection dengan metode hough transform untuk mendeteksi marka jalan. Desain program diantaranya adalah tampilan-tampilan antar muka dari awal sistem dijalankan hingga sistem berakhir dijalankan.

3. Penulisan Kode Program

(14)

4. Testing

Tahap testing sistem ini dilakukan untuk mendapatkan serta memastikan bahwa aplikasi yang dibangun sesuai kebutuhan yang telah dideskripsikan.

1.6 Sistematika Penulisan

Adapun sistematika penulisian pada penelitian yang dilakukan ini yaitu:

BAB I PENDAHULUAN

Bab ini menjelaskan mengenai latar belakang masalah, rumusan masalah, maksud dan tujuan, batasan masalah, metodelogi penelitian dan sistematika penulisan.

BAB II LANDASAN TEORI

Mengemukakan dasar-dasar teori yang mendukung topik yang sedang dikerjakan serta pembahasan mengenai berbagai macam perlengkapan yang dipakai dalam perancangan sistem teori mengenai marka jalan, video, teori mengenai hough transform, preprocessing sistem, teori mengenai bahasa pemograman C#, teori mengenai UML, dan teori mengenai Open CV.

BAB III ANALISIS DAN PERANCANGAN PERANGKAT LUNAK Mengemukakan tentang alur kerja sistem aplikasi secara keseluruhan, model perancangan sistem aplikasi tentang lane detection, analisis preprocessing

sistem, metode hough transform maupun pendukung lainnya yang diterapkan ke dalam sistem, penggunaan UML, dan perancangan antarmuka.

BAB IV IMPLEMENTASI DAN PENGUJIAN

(15)

7

BAB V KESIMPULAN DAN SARAN

Bab ini merupakan penutup penyusunan laporan penelitian yang berisi

kesimpulan diperoleh dari hasil penelitian dan saran untuk perbaikan dan

(16)
(17)

9 2 BAB 2

LANDASAN TEORI

2.1 Pengertian Marka Jalan

Marka jalan merupakan suatu penanda bagi para pengguna jalan untuk membantu kelancaran jalan dan menghindari adanya kecelakaan. Pada umumnya marka jalan berfungsi untuk memisahkan antara lajur satu dengan yang lainnya, atau memisahkan lajur yang berlawanan.

Marka jalan memiliki jenis-jenis garis yang berbeda dengan fungsi yang berbeda-beda pula. Sebagai contoh adalah garis terputus yang berfungsi sebagai garis sumbu dan pemisah pada jalan. Berikut adalah jalan dua lajur dan dua lajur dapat dilihat pada Gambar 2.1 dan Gambar 2.2:

Gambar 2.1 Jalan 2 Jalur dan 2 Lajur dengan Lebar > 5,50 m

Gambar 2.2 Jalan Lebih dari 2 Lajur

(18)

Gambar 2. SEQ Gambar_2. \* ARABIC 3 Arahan Marka Dilarang dan Boleh Pindah

Jalur

2.2 Karakteristik Video Digital

Video digital pada dasarnya tersusun atas serangkaian frame. Rangkaian

frame tersebut ditampilkan pada layar dengan kecepatan tertentu, bergantung pada laju frame yang diberikan ( dalam frame / detik ). Jika laju frame cukup tinggi, mata manusia tidak dapat menangkap gambar per frame, melainkan menangkapnya sebagai rangkaian yang kontinyu. Masing - masing frame

merupakan gambar / citra ( image ) digital. Suatu image digital direpresentasikan dengan sebuah matriks yang masing - masing elemennya merepresentasikan nilai intensitas. Jika I adalah matriks dua dimensi, I (x,y) adalah nilai intensitas yang sesuai pada posisi baris x dan kolom y pada matriks tersebut. Titik - titik dimana

image disampling disebut sebagai picture elements atau sering dikenal sebagai

pixel. Karakteristik video digital ditentukan oleh resolusi ( resolution ) atau dimensi frame ( frame dimension ), kedalaman pixel( pixel depth ), dan laju frame ( frame rate ). Karakteristik – karakteristik ini yang akan menentukan kualitas

(19)

11

2.2.1 Resolusi

Resolusi ( resolution ) atau dimensi frame ( frame dimension ) adalah ukuran sebuah frame pada video digital. Resolusi dinyatakan dalam pixel x pixel. Semakin tinggi resolusi, semakin baik kualitas video tersebut, dalam arti bahwa dalam ukuran fisik yang sama, video dengan resolusi tinggi akan lebih detil. Namun, resolusi yang tinggi akan mengakibatkan jumlah bit yang diperlukan untuk menyimpan atau mentransmisikannya meningkat. Misalnya pada format QCIF ( Quarter Common Intermediate Formats ), resolusinya adalah 144 pixel x 176 pixel, ukuran ini umum digunakan untuk konferensi video.6]

2.2.2 Kedalaman Bit

Kedalaman bit ( bit depth ) menentukan jumlah bit yang digunakan untuk merepresentasikan tiap pixel pada sebuah frame. Kedalaman bit dinyatakan dalam

bit per pixel. Semakin banyak jumlah bit yang digunakan untuk merepresentasikan sebuah pixel, berarti semakin tinggi kedalaman pixelnya, maka semakin tinggi pula kualitasnya, mengakibatkan jumlah bit yang diperlukan menjadi lebih tinggi. Satu byte (8 bit) untuk tiap pixel, diperoleh 28 atau 256 level

intensitas. Dengan level intensitas sebanyak itu, umumnya mata manusia sudah dapat dipuaskan. Ke dalam pixel paling rendah terdapat pada binary-value image

yang hanya menggunakan 1 bit untuk tiap pixel, sehingga hanya ada dua kemungkinan bagi tiap pixel, yaitu 0 (hitam) atau 1 (putih). [ HYPERLINK \l "Aal96" 6 ]

2.2.3 Laju Frame

Laju frame ( Frame rate ) menunjukkan jumlah frame yang digambar tiap detik, dan dinyatakan dengan frame per detik. Sehubungan dengan laju frame ini, ada dua hal yang perlu diperhatikan, yaitu kehalusan gerakan ( smooth motion ) dan kilatan (flash). Kehalusan gerakan ditentukan oleh jumlah frame yang berbeda per detik. Untuk mendapatkan gerakan yang halus, video digital

(20)

frame yang tinggi, minimal 30 frame/detik, setidaknya sesuai dengan mata manusia, yang berarti membutuhkan jumlah bit yang lebih tinggi.6]

2.2.4 Representasi Warna

Pada video digital, umumnya data video dipisahkan menjadi komponen – komponen, baik komponen warna maupun komponen kecerahan. Penyajian semacam ini disebut component video. Pada component video, tiap komponen dipisahkan dengan cara tertentu. Beberapa cara pemisahan komponen tersebut adalah [ HYPERLINK \l "Aal96" 6 ]:

1. RGB

Data video dapat dipisahkan menjadi komponen – komponen untuk masing – masing warna, yaitu merah ( Red ), hijau ( Green ), dab biru ( Blue ). Warna tiap pixel ditentukan oleh kombinasi intensitas dari masing – masing komponen warna. Sebagai contoh, pada RGB 24 bit, masing – masing komponen warna dinyatakan dalam 8 bit atau 256 level. Berikut adalah representasi RGB pada warna gambar, dapat dilihat pada Gambar 2.3:

Gambar 2.3 Representasi RGB pada Warna Gambar

2. YUV

(21)

13

3. YIQ

Pemisahan sinyal video menjadi komponen kecerahan dan komponen warna dapat dilakukan juga sesuai dengan format NTSC ( National Television System Committee ), komponen kecerahan dinyatakan dengan Y, dan dua komponen warna dinyatakan dengan I dan Q. Karena persepsi mata manusia lebih peka pada kecerahan dari pada warna, maka crominance cukup

di-sampling separuh dari luminance.

2.3 Grayscale

Grayscale merupakan range dengan warna yang abu-abu yang hanya memiliki satu nilai kanal pada setiap pixelnya, dengan kata lain nilai bagian RED = GREEN = BLUE. Nilai tersebut digunakan untuk menunjukan tingkat intensitas. Warna yang dimiliki adalah warna dari hitam, keabuan, dan putih. Tingkatan kebuan disini merupakan warna abu dengan berbagai dari hitam hingga mendekati putih. Grayscale memiliki kedalaman warna 8 bit (256 kombinasi warna keabuan). Rentang nilai warna – warna pada RGB untuk Red (merah) rentangnya (255,0,0), Green (hijau) rentangnya (0,255,0), Blue (biru) rentangnya (0,0,255), dan Mediun Gray (abu) rentangnya (127,127,127) Untuk mendapatkan nilai keabuan digunakan persamaan sebagai berikut [7]:

0.299 x R + 0.587 x G + 0.144 x B (Pers 2.1)

Grayscaling merupakan teknik mengubah citra warna menjadi citra abu-abu. Teknik ini merupakan proses awal dalam pengolahan citra. Dalam pemrograman MATLAB teknik grayscaling dapat digunakan dengan menggunakan fungsi rgb2gray sehingga yang awalnya citra warna dikonversi menjadi citra yang terdiri dari hitam dan putih atau biasa disebut citra grayscale.

(22)

Gambar 2.4 Teknik Grayscaling

2.4 Teknik Cropping

Cropping merupakan pengolahan dengan kegiatan memotong bagian dari gambar untuk mendapatkan bagian yang tertentu. [7]

Berikut adalah gambar proses Cropping, jika ingin crop hanya bagian kepala,

dapat dilihat pada Gambar 2.5:

Gambar 2.5 Gambar (a) Gambar Asli dan (b) Gambar Hasil Cropping

2.5 Median Filter

(23)

15

pembatasan nilai pixel, sehingga suatu pixel tidak memiliki nilai intensitas y ang diluar nilai y ang ada di sek itarny a.

Untuk itu kita perlu mengetahui nilai intensitas pada suatu kelompok

pixel. Pada pengerjaannya pada suatu daerah pixel seharusnya bagian yang merupakan nilai tertinggi dan terendah, dan nilai yang sebanding pada kedua bagian akhir distribusi dihilangkan. Sehingga hasilnya meninggalkan nilai

median. Dari sana didapatkan median filter, dimana didapat seluruh nilai distribusi intensitas, dan dihasilkan gambar baru yang sesuai dengan nilai-nilai median yang ada.

Berikut adalah gambar awal sebelum di median filter lalu di proses dengan median filter, dapat dilihat pada Gambar 2.6:

Gambar 2.6 (a) Gambar Asli (b) Gambar Setelah Difilter Median

Median adalah nilai tengah dari kumpulan data. Untuk mencari median dari kumpulan data yang ganjil maka:

(Pers 2.2)

x = nilai median yang akan dicari pada suatu titik array n= jumlah nilai pada array

Untuk median filtering ini, data yang digunakan untuk menghitung median

(24)

Hal ini berguna untuk mempermudah menemukan median dari kumpulan data yang telah urut tersebut. [9]

2.6 Threshold

Threshold merupakan tahap untuk membuat warna citra menjadi hanya berwarna hitam atau putih. Untuk melakukan thresholding terlebih dahulu harus dicari suatu nilai yang digunakan untuk batas toleransi suatu warna keabuan dapat dijadikan warna hitam atau warna putih, nilai tersebut biasa disebut nilai ambang. Setelah semua piksel diubah menjadi nilai keabuan, pencarian nilai ambangpun dilakukan. Ada beberapa cara menentukan nilai ambang yaitu pertama, dengan menentukan langsung berdasarkan nilai tengah dari level keabuan yaitu 128. Kedua, menentukan suatu nilai tertentu sebagai nilai ambang. Ketiga, menentukan nilai rata – rata dari total piksel keabuan dalam citra dan menjadikannya sebagai nilai ambang rata – rata. Kemudian setelah didapat nilai ambang tersebut maka akan dilakukan perbandingan setiap nilai piksel dari citra keabuan tersebut dengan nilai ambangnya. Jika nilai piksel lebih besar dari nilai ambangnya maka nilai piksel tersebut akan diubah menjadi 0 (piksel berwarna hitam). Sedangkan jika yang ditemukan sebaliknya yaitu nilai pikselnya lebih kecil dari nilai ambang yang telah ditentukan maka nilai piksel tersebut diubah menjadi 1 (piksel berwarna putih) [7]

2.6.1 Teknik Thresholding (Pengambang-batasan)

Thresholding atau bisa disebut dengan pengambang-batasan yaitu sebuah teknik untuk mengubah suatu citra abu-abu menjadi citra biner (putih dan hitam). Pengembang-batasan terdapat dua jenis [8]:

1. Pengambang-batasan Tunggal 2. Pengambang-batasan Ganda

2.6.1.1Pengembang-batasan Tunggal

(25)

17

setiap piksel hitam atau putih tergantung nilai keabuan lebih besar atau kurang dari T. Suatu piksel menjadi :

Putih Jika level keabuannya >T Hitam jika level keabuannya <=T

Pengambang-batasan merupakan hal yang vital dalam segmentasi citra digital, dimana diinginkan untuk mengisolasi objek-objek dari latar belakang citra. Hal ini juga merupakan bidang yang penting dalam robotika. Pengambang batasasan dapat dilakukan secara sederhana dalam Matlab. Jika diasumsikan dimiliki suatu citra 8 bit dan disimpan dalam suatu variabel X, maka perintahnya X>T.

Citra yang dihasilkan kemudian dapat diproses untuk mencari jumlah bintik atau ukuran rata-rata bintik. Untuk melihat hal ini bekerja, ingat bahwa dalam Matlab, suatu operasi pada suatu angka, ketika diterapkan pada suatu matriks, diinpretasikan sebagai penerapan terhadap semua elemen-elemen matriks. Perintah X>T akan memberikan nilai balik 1 (true) untuk semua piksel yang memiliki intensitas keabuan yang lebih besar dari T, dan nilai balik 0 (false) untuk semua piksel yang memiliki intensitas keabuan yang lebih kecil atau sama dengan T.

Selain metode diatas, Matlab juga memiliki fungsi im2bw, yang mengambangbatas suatu citra dengan sembarang tipe data. Karena level merupakan parameter bernilai antara 0 sampai 1, yang mengindikasikan fraksi nilai-nilai keabuan yang diubah menjadi putih. Perintah ini bisa dipakai untuk citra abu-abu, citra berwarna maupun untuk citra indeks dengan tipe data uint8, uint16, ataupun double. Fungsi im2bw secara otomatis menskalakan nilai level menjadi suatu nilai keabuan yang cocok dengan tipe citra, dan kemudian melakukan pengambang-batasan seperti yang telah dijelaskan sebelumnya. [8]

2.6.1.2Pengembang-batasan Ganda

Disini dipilih dua nilai T1 dan T2 dan diterapkan suatu operasi pengambang-batasan sebagai berikut. Suatu piksel menjadi:

(26)

Hitam jika level diluar rentang ini

Operasi ini bisa diimplementasikan dengan suatu variasi sederhana dari pengambang-batasan tunggal X>T1 & X<T2. Karena simbol ampersand berperan sebagai operasi logikal, hasilnya akan menghasilkan nilai 1 jika memenuhi kedua pertidak-samaan itu. Berikut adalah hasil threshold, dapat dilihat Gambar 2.7 [8]:

Gambar 2.7 Gambar awal (b) Gambar setelah proses terambang-batasan

2.7 Operasi Morphologi

Morphologi adalah teknik pengolahan citra digital dengan menggunakan bentuk (shape) sebagai pedoman dalam pengolahan. Nilai dari setiap pixel dalam citra digital hasil diperoleh melalui proses perbandingan antara pixel yang bersesuaian pada citra digital masukan dengan pixel tetangganya. Operasi morphologi bergantung pada urutan kemunculan dari pixel, tidak memperhatikan nilai numeric dari pixel sehingga teknik morphologi sesuai apabila digunakan untuk melakukan pengolahan binary image dan grayscale image.

(27)

19

Berikut adalah struktur element operasi yang dapat dipakai untuk proses operasi morphologi, dapat dilihat pada Gambar 2.8: [9]

Gambar 2.8 Struktur Elemen

2.7.1 Dilasi

Dilasi adalah operasi morphologi yang akan menambahkan pixel pada batas antar objek dalam suatu citra digital. Atau secara rinci Dilasi merupakan suatu proses menambahkan piksel pada batasan dari objek dalam suatu image sehingga nantinya apabila dilakukan operasi ini maka image hasilnya lebih besar ukurannya dibandingkan dengan image aslinya.

Dalam operasi dilasi, citra asli akan mengalami pelebaran dengan mengikuti bentuk Structuring Element yang digunakan.

Pada Gambar 2.9 dan Gambar 2.10 merupakan hasil image setelah dilakukan proses dilasi dari original image dengan stucturing element yang telah ditentukan [10]:

(28)

Berikut Gambar 2.10 menjelaskan tentang proses dilasi cara membuka letak sktruktur elemen terbuka yang dipisahkan oleh wilayah tertutup.

Gambar 2.10 Proses Dilasi

2.7.2 Erosi

Erosi merupakan kebalikkan dari Dilasi. Proses ini akan membuat ukuran sebuah citra menjadi lebih kecil. Berbeda dengan dilatasi, apabila erosi dilakukan maka yang dikerjakan adalah memindahkan piksel pada batasan-batasan objek yang akan di erosi. Jumlah dari piksel yang ditambah atau dihilangkan bergantung pada ukuran dan bentuk dari structuring element yang digunakan untuk memproses image tersebut. Berikut adalah proses hasil erosi, dapat dilihat pada Gambar 2.11 [10] :

Gambar 2.11 (a) Gambar dari Grayscale (b) Gambar Threshold (c) Hasil Erosi

(29)

21

Gambar 2.12 Proses Erosi

2.7.3 Opening

Opening umumnya digunakan untuk menghaluskan kontur dari sebuah objek, memutuskan garis tipis yang menghubungkan dua region besar, dan menghilangkan tonjolan tipis. Operasi opening dari himpunan A oleh Structuring Element B, yang dinotasikan dengan A ∘ B, didefinisikan pada persamaan berikut [10]:

(Pers 2.3)

A = Matriks Awal B = Struktur Element

= Operasi “dan”

= Operasi “atau”

2.7.4 Closing

Closing digunakan untuk menghaluskan bagian dari kontur tetapi berbeda dengan opening, closing biasanya menyatukan bagian kecil yang terputus dan menyatukan cekungan yang panjang dan tipis. Operasi closing dari himpunan A oleh Structuring Element B, yang dinotasikan dengan A ∙ B, didefinisikan pada persamaan berikut [10]:

(Pers 2.4)

A = Matriks Awal B = Struktur Element

(30)

= Operasi “atau”

2.7.5 Top-Hat dan Bottom-Hat Transformation

Top-Hat Transform atau Top-Hat by Opening didefinisikan sebagai perbedaan (difference) antara citra input dan hasil opening citra input tersebut oleh suatu Structuring Element.

Bottom-Hat atau Top-Hat by Closing didefinisikan sebagai perbedaan (difference) antara hasil closing citra input dan citra input itu sendiri.

Prinsip utama dari transformasi ini adalah menghilangkan objek dari sebuah citra dengan menggunakan Structuring Element dalam operasi opening dan

closing yang tidak sesuai dengan objek yang akan dihapus. [10]

2.8 Hough transform

Hough transform didesain untuk menemukan garis pada suatu citra. Hough transform diperkenalkan oleh Paul Hough pada tahun 1962. Ide dari Hough transform adalah membuat persamaan dari suatu piksel dan mempertimbangkan semua pasangan yang memenuhi persamaan ini. Semua pasangan ditempatkan pada suatu larik akumulator, yang disebut larik transformasi. Hough transform

telah dikembangkan untuk mendeteksi bentuk-bentuk umum dalam citra seperti lingkaran, elips dan parabola. Konsep dasar dari Hough transform adalah terdapat garis dan kurva potensial yang tak terhitung jumlahnya pada suatu citra yang melalui titik mana saja pada berbagaiu kuran dan orientasi. Transformasi dilakukan untuk menemukan garis dan kurva yang melewati banyak titik-titik di dalam citra, yaitu garis dan kurva yang terdekat dan palingsesuai dengan data pada matriks citra.

(31)

23

(Pers 2.5)

Sebaliknya jika dalam citra terdapat sebuah garis lurus, dimana garis tersebut mempunyai persamaan seperti persamaan (2.5), maka apabila ditransformasi ke dalam ruang parameter m – c akan diperoleh bahwa transformasi dalam ruang parameter m – c adalah beberapa garis yang saling berpotongan dalam suatu titik. Persamaan transformasi diperoleh dengan cara memanipulasi persamaan garisnya yaitu persamaan (2.6) menjadi bentuk parametrik menjadi persamaan.

(Pers 2.6)

c, m = ruang parameter x, y = titik pada kurva

Perhitungan transformasi dilakukan dengan cara menghitung tiap titik dalam citra kedalam semua variasi nilai m - c.

Dalam kenyataannya, apabila ditemui sebuah garis vertikal, maka akan terjadi masalah dalam penghitungannya dikarenakan garis vertikal mempunyai nilai gradien kemiringan yang besarnya tak berhingga ∞.

Secara khususnya Hough transform yang digunakan disini hanyalah untuk mendeteksi garis pada marka jalan saja yang dimana pada awalnya garis jalan ini koordinatnya dalam bentuk kartesian space (x-y) yang kemudian dirubah menjadi kurva sinusoidal pada hough space (rho & theta) menggunakan Hough transform

yang dapat dilihat pada Gambar 2.13 dan persamaan (2.7)

(32)

ρ= x cos θ + y sin θ (Pers 2.7) ρ = rho, koordinat y dalam bentuk hough space

θ = theta,koordinat x dalam bentuk hough space

Persamaan (2.7) diatas didapatkan dari Gambar 2.13 yang dimana untuk mencari nilai harus menggunakan koordinat x dan y yang telah ditemukan edge

dan dikalikan dengan nilai yang telah ditemukan juga. Sehingga mendapatkan garis yang diinginkan.

Pada Gambar 2.14 menjelaskan kerja dari hough transform dalam melakukan scanning pada semua kemungkinan θ yang ada dan pada pixel yang paling banyak garis sinusoidal yang melewati pixel tersebut merupakan garis yang ditemukan. [11]

Gambar 2.14 Hough Space

Kelebihan dan kekurangan dari Hough transform: Kelebihan:

1. HT dapat mendeteksi keberadaan objek yang memiliki pola tertentu walaupun tidak diketahui ukuran maupun posisinya.

2. HT relatif tidak terpengaruh oleh noise atau data hilang pada frame.

3. Mampu mendeteksi garis pada bentuk geometri dengan kumpulan edge yang terputus-putus.

(33)

25

1. Kompleksitas dan ukuran accumulator array meningkat sebanding dengan bertambahnya jumlah parameter yang merepresentasikan objek yang ingin dideteksi.

2. Biaya komputasi dan kapasitas memori yang besar.

3. Hasil deteksi sensitif terhadap pemilihan nilai threshold yang sudah ditentukan, semakin kecil nilai threshold maka akan semakin banyak garis yang terdeteksi.

Metode Hough transform mempunyai kelebihan yang mampu mendeteksi marka yang putus-putus. Proses pendeteksian tersebut harus mempunyai titik potong pada kurva, maka dapat dimasukkan ke dalam rumus (2.8)

y2 – y1 = y2 – y (2.8)

x2 – x1 x2 – x

x1 = titik x1 yang diketahui dari kurva x2 = titik x2 yang diketahui dari kurva y1 = titik y1 yang diketahui dari kurva y2 = titik y2 yang diketahui dari kurva x = nilai titik potong x yang dicari y = nilai titik potong y yang dicari

2.9 Estimasi Posisi Kendaraan Terhadap Marka

Estimasi posisi kendaraan terhadap marka adalah perkiraan posisi kendaraan terhadap marka kiri dan kanan yang dilalui oleh kendaraan itu sendiri. Kendaraan yang dimaksud adalah mobil pribadi yang dipakai untuk berkendara.

Adapun rumus untuk mencari estimasi posisi kendaraan terhadap marka pada persamaan (2.9) dan (2.10). Sedang untuk mengetahui rentangnya pada persamaan (2.11):

R1 = (Tengah – B1) – P1 (2.9) R2 = P2 – (Tengah + B2) (2.10)

R = R1 + R2 (2.11)

(34)

P = Titik x dari y maximum B1 & B2 = Batas samping mobil R1 & R2 = Rentang B ke P Tengah = Panjang kurva x / 2

Adapun rumus untuk mencari kemana arah kendaraan bergerak marka kiri atau kanan, menggunakan persamaan (2.12):

(2.12)

Pada persamaan (2.12), nilai dikalikan 100 adalah untuk mencari nilai dalam pentuk persentase.

Berikut adalah rule untuk mengetahui kendaraan bergerak ke arah marka kiri dan kanan:

R1 > R2, maka arah kendaraan ke marka sebelah

kanan.

Arah mobil R1 < R2, maka arah kendaraan ke marka sebelah kiri.

Else, maka nilainya 0. Arah kendaraan berada di tengah.

2.10 Penilaian Mengemudi Keluaran

Berdasarkan hasil diskusi dengan pihak Sukses Mandiri penilaian mengemudi dapat diambil pada nilai persentase Dalam Marka, Pindah Lajur dan Pinggir Pembatas, dengan menggunakan tiga predikat: Baik, Cukup Baik, dan Kurang Baik.

Pengemudi dengan predikat “Baik”: Jika nilai persentase Dalam Marka dalam range 70-100%. Pengemudi dengan predikat “Cukup Baik”: Jika nilai persentase Dalam Marka dalam range 40-70%. Pengemudi dengan predikat

(35)

27

Pada kesimpulan predikat mengemudi jika Pindah Lajur berada pada persentase 40-100% maka akan menghasilkan keluaran “Terlalu Sering Pindah

Lajur”. Jika Pinggir Pembatas menghasilkan persentase pada 50-100% maka

keluaran pada kesimpulan yaitu “Terlalu Sering Di Samping Jalan”, jika

persentase Pinggir Pembatas 5-50% maka keluaran pada kesimpulan, “Kurangi Berada di Pinggir Jalan”.

Untuk mengetahui cara menghitung Dalam Marka, Pindah Lajur, dan Pinggir Pembatas menggunakan rumus (2.13)

∑ dalam marka x 100% (2.13)

total frame

Begitu pun sama jika ingin menghitung Pindah Lajur dan Pinggir Pembatas menggunakan rumus seperti dalam marka.

Dalam Marka mempunyai beberapa kondisi yaitu ketika kendaraan ketika berada di lajur kiri dan kanan. Pada setiap lajur mempunyai tiga kondisi yang disebut Dalam Marka yaitu Bagian Dalam Kiri Marka, Bagian Dalam Tengah Marka, dan Bagian Dalam Kanan Marka. Untuk menghitung Dalam Marka pada setiap lajur menggunakan rumus (2.14).

∑ dalam kiri marka x 100% (2.14) Dalam Marka

Begitu pun sama jika ingin menghitung Bagian Dalam Tengah Marka, dan Bagian Dalam Kanan Marka menggunakan rumus seperti Dalam Kiri Marka.

2.11 Pengertian C#

Microsoft C# (disebut C sharp) adalah sebuah bahasa pemrograman yang didesain untuk membangun jangkauan aplikasi enterprise yang berjalan di atas

framework .NET. Sebuah evolusi Microsoft C dan Microsoft C++, C# sederhana, modern, aman dan Object Oriented.

(36)

objek dan fitur lain dari lingkungan pengembangan. Library untuk pemrograman visual c# adalah .NET Framework. [12]

2.12 Unified Modelling Language (UML)

Unified Modelling Language (UML) adalah sebuah "bahasa" yang telah menjadi standar dalam industri untuk visualisasi, merancang dan mendokumentasikan sistem piranti lunak. UML menawarkan sebuah standar untuk merancang model sebuah sistem.

Dengan menggunakan UML dapat membuat model untuk semua jenis aplikasi piranti lunak, dimana aplikasi tersebut dapat berjalan pada piranti keras, sistem operasi dan jaringan apapun, serta ditulis dalam bahasa pemrograman apapun. Tetapi karena UML juga menggunakan class dan operation dalam konsep dasarnya, maka ia lebih cocok untuk penulisan piranti lunak dalam bahasa-bahasa berorientasi objek seperti C++, Java, C# atau VB.NET. Walaupun demikian, UML tetap dapat digunakan untuk modeling aplikasi prosedural dalam VB atau C. Seperti bahasa-bahasa lainnya, UML mendefinisikan notasi dan

syntax/semantik. Notasi UML merupakan sekumpulan bentuk khusus untuk menggambarkan berbagai Diagram piranti lunak. Setiap bentuk memiliki makna tertentu, dan UML syntax mendefinisikan bagaimana bentuk-bentuk tersebut dapat dikombinasikan. Notasi UML terutama diturunkan dari tiga notasi yang telah ada sebelumnya: Grady Booch OOD (Object-Oriented Design), Jim Rumbaugh OMT (Object Modeling Technique), dan Ivar Jacobson OOSE (Object-Oriented Software Engineering) [12]

2.12.1 Diagram UML

Menggunakan berbagai macam Diagram dengan fungsi masing-masing untuk menggambarkan setiap proses dari sistem berorientasi objek. Berikut meruapakan beberapa Diagram UML diantaranya [12]:

a. Use Case Diagram

(37)

29

case mendeskripsikan sebuah interaksi antara satu atau lebih aktor dengan sistem yang akan dibuat. Secara kasar, use case digunakan untuk mengetahui fungsi apa saja yang ada di dalam sebuah sistem dan siapa saja yang berhak menggunakan fungsi-fungsi tersebut.

Syarat penamaan pada use case adalah nama didefinisikan sesimpel mungkin dan dapat dipahami. Ada dua hal utama pada use case yaitu pendefinisian apa yang disebut aktor dan usecase.

1. Aktor merupakan orang, proses, atau sistem lain yang berinteraksi dengan sistem yang akan dibuat diluar sistem yang akan dibuat itu sendiri, jadi walaupun simbol dari aktor adalah gambar orang, tapi aktor belum tentu merupakan orang.

2. Use case merupakan fungsionalitas yang disediakan sistem sebagai unit-unit yang saling bertukar pesan antar unit-unit atau aktor.

b. Activity Diagram

Diagram aktivitas atau Activity Diagram adalah sebuah Diagram yang menggambarkan workflow (aliran kerja) atau aktivitas dari sebuah sistem atau proses bisnis. Dalam Diagram aktivitas yang perlu diperhatikan adalah bahwa Diagram aktivitas menggambarkan aktivitas sistem, bukan apa yang dilakukan aktor, jadi aktivitas yang dapat dilakukan oleh sistem.

Diagram aktivitas juga banyak digunakan untuk mendefinisikan hal-hal berikut:

1. Rancangan proses bisnis dimana setiap urutan aktivitas yang digambarkan merupakan proses bisnis sistem yang didefinisikan.

2. Urutan atau pengelompokkan tampilan dari sistem/user interface dimana setiap aktivitas dianggap memiliki seuah rancangan antarmuka tampilan. 3. Rancangan pengujian dimana setiap aktivitas dianggap memerlukan

sebuah pengujian yang perlu didefinisikan kasus ujinya. 4. Rancangan menu yang ditampilkan pada perangkat lunak.

(38)

Diagram kelas atau class Diagram menggambarkan struktur sistem dari segi pendefinisian kelas-kelas yang akan dibuat untuk membangun sistem. Kelas memiliki apa yang disebut atribut dan metode atau operasi.

1. Atribut merupakan variabel-variabel yang dimiliki oleh suatu kelas. 2. Operasi atau metode adalah fungsi-fungsi yang dimiliki oleh suatu kelas.

d. Sequence Diagram

Diagram sekuen adalah Diagram yang menggambarkan kelakuan objek pada

use case dengan mendeskripsikan waktu hidup objek dan message yang dikirimkan dan diterima antar objek. Oleh karena itu untuk menggambarkan Diagram sekuen maka harus diketahui objek-objek yang terlibat dalam sebuah use case beserta metode-metode yang dimiliki kelas yang diinstansiasi menjadi objek itu.

Banyaknya Diagram sekuen yang harus digambarkan adalah sebanyak pendefinisian use case yang memiliki proses itu sendiri atau yang penting semua use case yang telah didefinisikan interaksi jalannya pesan sudah dicakup pada Diagram sekuen sehingga semakin banyak use case yang didefinisikan maka Diagram sekuen yang harus dibuat juga semakin banyak.

2.13 Pemograman Berorientasi Objek

(39)

31

Secara spesifik, pengertian berorientai objek berarti bahwa mengorganisasi

perangkat lunak sebagai kumpulan dari objek tertentu yang memiliki struktur data

dan perilakunya. Hal ini yang membedakan dengan pemograman konvensional

dimana struktur data dan perilaku hanya berhubungan secara terpisah. Terdapat

beberapa cara untuk menentukan karateristik dalam pendekatan berorientasi objek,

tetapi secara umum mencakup empat hal, yaitu identifikasi, klasifikasi, polymorphism

(polimorfisme) dan inheritance (pewarisan).

Metodologi pengembangan sistem berorientasi objek mempunyai tiga

karateristik utama, yaitu [12] :

a. Encapsulation

Encapsulation (pengkapsulan) merupakan dasar untuk pembatasan ruang lingkup

program terhadap data yang diproses. Data dan prosedur atau fungsi dikemas dalam

bersama-sama dalam suatu objek, sehingga prosedur atau fungsi lain dari luar tidak

dapat mengaksesnya. Data terlindung dari prosedur atau objek lain kecuali prosedur

yang berada dalam objek itu sendiri.

b. Inheritance

Inheritance (pewarisan) adalah teknik yang menyatakan bahwa anak dari objek akan

mewarisi atribut dan metoda dari induknya langsung. Atribut dan metoda dari objek

induk diturunkan kepada anak objek, demikian seterusnya. Pendefinisian objek

dipergunakan untuk membangun suatu hirarki dari objek turunannya, sehingga tidak

perlu membuat atribut dan metoda lagi pada anaknya, karena telah mewarisi sifat

induknya.

c. Polymorphism

Polymorphism (polimorfisme) yaitu konsep yang menyatakan bahwa sesuatu yang

sama dapat mempunyai bentuk dan perilaku berbeda. Polimorfisme mempunyai arti

bahwa operasi yang sama mungkin mempunyai perbedaan dalam kelas yang berbeda.

2.14 Open CV

(40)

Pustaka ini merupakan pustaka lintas platform. Program ini didedikasikan sebagaian besar untuk pengolahan citra secara real-time. Jika pustaka ini menemukan pustaka Integrated Performance Primitives dari intel dalam sistem komputer, maka program ini akan menggunakan rutin ini untuk mempercepat proses kerja program ini secara otomatis. [13]

Berikut ini adalah fitur-fitur pada library OpenCV:

1. Manipulasi data gambar (alokasi memori, melepaskan memori, kopi gambar, setting serta konversi gambar)

2. Image/Video I/O (Bisa menggunakan camera yang sudah didukung oleh

library ini)

3. manipulasi matrix dan vektor serta terdapat juga routines linear algebra (products, solvers, eigenvalues, SVD)

4. Image processing dasar (filtering, edge detection, pendeteksian tepi, sampling dan interpolasi, konversi warna, operasi morfologi, histograms, image pyramids)

5. Analisis struktural 6. Kalibrasi kamera 7. Pendeteksian grerak 8. Pengenalan objek

9. Basic GUI (Display gambar/video, mouse/keyboard kontrol, scrollbar) Image Labelling (line, conic, polygon, text drawing)

OpenCV sendiri terdiri dari 5 library, yaitu : 1. CV : untuk algoritma Image processing dan Vision. 2. ML : untuk machine learning library

3. Highgui : untuk GUI, Image dan Video I/O.

4. CXCORE : untuk struktur data, support XML dan fungsi-fungsi grafis. 5. CvAux

(41)

33

Gambar 2.15 Struktur dan Konten OpenCV

Open CV yang digunakan di dalam sistem yang akan dibangun yaitu OpenCVSharp yaitu yang berisikan tentang method image processing, yang didalamnya mempunyai banyak method. Namun yang akan dipakai dan dipanggil dalam sistem antara lain: grayscale, threshold, filter smooth, operasi morphologi dan hough transform.

Fungsi pemanggilan grayscale pada opencv adalah cvtColor dengan bentuk fungsi transformasi dari RGB ke bentuk gray dengan BgrToGray, adapun

parameter-parameter didalamnya seperti pada Tabel 2.1:

Tabel 2.1 Parameter cvtColor OpenCV

Nama Parameter Deskripsi

Src Source gambar asli hasil inputan berisi nilai piksel RGB 8 bit, 16 bit atau nilai single-presisi

dst Destinasi keluaran gambar dengan

ketentuan sama dengan parameter src.

code Kode konversi ruang warna

dstCn Jumlah channel pada gambar tujuan, jumlah chanel berasal secara otomatis dari src dan code.

(42)

Tabel 2.2 Parameter Cv.Smooth OpenCV

Nama Parameter Deskripsi

Src Source gambar asli hasil inputan.

dst Destinasi keluaran gambar.

Smoothtype Memilih median filter

Size1 Nilai matriks parameter operasi

smoothing. Angka yang dimasukkan harus angka ganjil yang positif seperti (1,3,5,7 ...)

Fungsi pemanggilan threshold pada opencv adalah threshold, adapun parameter yang ada didalam fungsi threshold seperti pada Tabel 2.3:

Tabel 2.3 Parameter threshold OpenCV

Nama Parameter Deskripsi

Src Input array (single-chanel, 8 bit atau 32bit)

dst Keluaran array yang mempunyai

ukuran yang sama pada parameter src.

thresh Nilai threshold

maxval Maksimum nilai yang untuk yang digunakan pada tipe threshold

Type Memilih tipe binary

Fungsi pemanggilan operasi morphologi pada opencv adalah morphologiEx,

adapun parameter yang ada didalam fungsi morphologiEx seperti pada Tabel 2.4:

Tabel 2.4 Parameter morphologiEx OpenCV

Nama Parameter Deskripsi

Src Input array (single-channel, 8-bit or 32-bit)

Dst Keluaran array yang mempunyai nilai yang sama dengan parameter src.

op Tipe dari operasi morphologi adalah sebagai berikut: MORPH_OPEN opening

MORPH_CLOSE closing

MORPH_GRADIENT morphological gradient

MORPH_TOPHAT “top hat” MORPH_BLACKHAT “black hat”

(43)

35

anchor Posisi jangkar dalam elemen. Nilai default Point (-1, -1) berarti bahwa jangkar adalah di pusat elemen.

iterations Beberapa kali erosi dan dilasi untuk diterapkan

steam Streaming untuk versi asynchronous

Fungsi pemanggilan hough transform pada opencv adalah HoughLine2, adapun parameter yang ada didalam fungsi HoughLine2 seperti pada Tabel 2.5

Tabel 2.5 Parameter HoughLine2 OpenCV

Nama Parameter Deskripsi

dst Keluaran gambar yang akan terdeteksi oleh garis

lines Sebuah vektor yang akan menyimpan parameter (ρ,θ) dari deteksi garis

rho Resolusi dari parameter ρ dalam pixel. theta Resolusi dari parameter θ dalam radian.

threshold Angka minimum dari interseksi untuk

mendeteksi sebuah garis

(44)
(45)

109 5 BAB 5

KESIMPULAN DAN SARAN

5.1 Kesimpulan

Berdasarkan dari hasil penelitian, analisis, perancangan sistem, dan implementasi serta pengujian, maka diperoleh kesimpulan bahwa implementasi

lane detection dengan metode hough transform untuk penilaian mengemudi berdasarkan marka jalan dengan studi kasus pada Sukses Mandri didapat kesimpulan sebagai berikut:

1. Penerapan metode hough transform melalui media video dapat mendeteksi marka jalan.

2. Berdasarkan hasil pengujian dari semua video, sistem daoat mendeteksi marka jalan dan mampu mengeluarkan predikat mengemudi berdasarkan parameter penilaian di Sukses Mandiri.

5.2 Saran

Berdasarkan penelitian dari implementasi metode hough transfrom dalam mendeteksi jalan untuk penilaian mengemudi ini masih banyak yang harus dikembangkan atau diteliti lebih lanjut. Maka penulis mengusulkan beberapa saran sebagai berikut:

1. Sistem penilaian mengemudi dapat diimplementasikan secara real-time

dan menambahkan filter lain untuk dapat menghilangkan objek-objek terstruktur yang dianggap sistem sebagai marka.

2. Analisis akurasi deteksi metode deteksi marka jalan dengan berbagai macam kondisi jalan untuk penilaian mengemudi.

(46)

NAMA : OKI JANUAR INSANI MULYANA TEMPAT TANGGAL LAHIR : SUBANG, 6 JANUARI 1994

JENIS KELAMIN : LAKI-LAKI

AGAMA : ISLAM

WARGA NEGARA : INDONESIA

ALAMAT : Jalan Kidang Pananjung No. 146/154c RT. 01/10 Kec. Coblong Kel. Dago Kota Bandung

EMAIL : okijanuarmals@gmail.com

2. RIWAYAT PENDIDIKAN

1998-1999 : TK SHS PERUM

1999-2005 : SDN MARGALUYU I

2005-2008 : SMP NEGERI 2 CIASEM

2008-2011 : SMA NEGERI 1 CIASEM

(47)
(48)
(49)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

45

Edisi. .. Volume. .., Bulan 20.. ISSN : 2089-9033

IMPLEMENTASI LANE DETECTION DENGAN METODE HOUGH

TRANSFORM UNTUK PENILAIAN MENGEMUDI BERDASARKAN

MARKA JALAN (STUDI KASUS SUKSES MANDIRI)

Oki Januar Insani Mulyana

Teknik Informatika – Universitas Komputer Indonesia Jl Dipatiukur 112-114 Bandung

E-mail : okijanuarmals@gmail.com

ABSTRAK

Marka jalan adalah suatu tanda yang berada di permukaan jalan atau di atas permukaan jalan yang meliputi peralatan atau tanda yang membentuk garis yang berfungsi mengarahkan arus lalu lintas dan membatasi daerah kepentingan lalu lintas. Sukses Mandiri adalah perusahaan jasa yang bergerak dibidang kursus mengemudi yang ingin menerapkan suatu sistem penilaian mengemudi otomatis yang mampu menilai pengemudi kursus mengendarai berada di marka jalan.

Metode hough transform adalah metode sebagai pendamping lane detection. Hough transform adalah teknik transformasi citra yang dapat digunakan untuk mengisolasi atau dengan kata lain memperoleh fitur dari sebuah citra. Cara kerja metode hough transform dengan cara menemukan sebuah objek dengan garis lurus pada suatu persamaan pada objek tersebut. Penelitian tentang

lane detection dengan metode hough transform

untuk deteksi marka jalan telah dilakukan peniliti-peneliti sebelumnya. Pada peniliti-penelitian ini akan ditambahkan sebuah fitur setelah mendeteksi marka jalan, sistem mampu mengestimasi posisi kendaraan dengan marka, mampu mengenali lajur yang dilalui kendaraan, dan mengkalkulasi nilai persentase estimasi posisi sehingga menghasilkan keluaran berupa predikat untuk penilaian mengemudi.

Berdasarkan hasil penelitian didapat kesimpulan bahwa semua source video yang diuji, sistem dapat mendeteksi marka jalan dan mampu mengeluarkan predikat mengemudi berdasarkan parameter penilaian di Sukses Mandiri.

Kata kunci : Lane Detection, Metode Hough

transform, Deteksi Marka Jalan, Sistem Penilaian Mengemudi.

1. PENDAHULUAN

Marka jalan adalah suatu tanda yang berada di permukaan jalan atau di atas permukaan jalan yang meliputi peralatan atau tanda yang membentuk garis yang berfungsi mengarahkan arus lalu lintas dan membatasi daerah kepentingan lalu lintas.

Mengemudi pada marka jalan begitu penting karena salah satu ujian wajib pada pembutan SIM (Surat Pembuatan Mengemudi) di kepolisian Indonesia yaitu berkendara pada marka jalan.

Sukses Mandiri adalah perusahaan jasa yang bergerak dibidang kursus mengemudi. Dalam pelatihan mengemudi, Sukses Mandiri menerapkan penilaian berupa sertifikat tertulis. Proses penilaian yang dilakukan oleh Sukses Mandiri salah satunya adalah bagaimana cara mengemudi agar tetap berada di jalur marka jalan yang sesuai. Berdasarkan hasil wawancara dari Bapak Dadang Budiman selaku pemilik Sukses Mandiri bahwa penilaian mengemudi di Sukses Mandiri masih dilakukan secara subyektif, yaitu penilaian yang sifatnya relatif (hasil menduga-duga atau berdasarkan perasaan atau selera orang) dengan keluaran berupa predikat nilai mengemudi yang proses mengemudinya tidak diketahui oleh pihak pemilik instansi, menurut Bapak Dadang Budiman peniliaian tersebut dirasa kurang baik, karena Sukses Mandiri berkeinginan untuk melahirkan pengemudi-pengemudi yang handal, diantaranya adalah dengan bagaimana cara mengemudi yang baik dan benar, terutama mengendarai kendaraan pada marka jalan. Bapak Dadang Budiman ingin mengubah cara penilaian mengemudi di Sukses Mandiri menjadi objektif, yaitu harus didukung dengan fakta/data cara si pengemudi mengemudikan mobilnya, untuk nantinya dijadikan laporan Sukses Mandiri. Penilaian mengemudi secara objektif tersebut memerlukan sebuah inovasi untuk penilaian, inovasi yang dapat diterapkan yaitu berupa video dengan bantuan sebuah sistem, yang nantinya dapat menilai otomatis si pengemudi dalam mengendarakan mobilnya, khususnya cara mengendarai pada marka jalan.

(50)

sebagai pendamping lane detection. Hough transform adalah teknik transformasi citra yang dapat digunakan untuk mengisolasi atau dengan kata lain memperoleh fitur dari sebuah citra. Cara kerja metode Hough transform dengan cara menemukan sebuah objek dengan garis lurus pada suatu persamaan pada objek tersebut. Dalam hal ini objek yang akan dideteksi yaitu marka jalan.

Dalam penelitian ini tentunya tidak lepas dari referensi jurnal-jurnal yang mendukung. Penelitian-penelitian yang berhubungan dengan Penelitian-penelitian ini diantaranya oleh habana Habib dan Mahammad A Hanan [1] menjelaskan tingkat akurasi deteksi pada kondisi pencahayaan jalan dengan hasil uji jalan malam hari dengan penerangan lampu kendaraan 60%, terowongan 80%, dan siang hari 85%. Penelitan selanjutnya dilakukan oleh Mohamed Aly [2] menjelaskan bahwa mampu mendeteksi semua marka yang berada di jalan perkotaan dengan baik dengan high rates 50 Hz. Penelitian yang terakhir dilakukan oleh Charles Edison, Herland, dan Sofyan [3] menjelaskan bahwa penelitian ini membandingkan metode hough transform dengan Multiresolution hough transform dengan kesimpulan bahwa hough transform lebih cepat waktu pendeteksiannya sebesar 1.7 detik dibandingkan dengan metode multiresolution hough transform sebesar 4.329 detik, namun tingkat akurasinya lebih multiresolution hough transform dengan rata-rata eror posisi sebesar 2.0520 dengan rata-rata eror sudut sebesar 1.3555ᵒ .

Pada umumnya penelitian-penelitian sebelumnya yang membahas lane detection dan metode hough transform hanya sampai tahap mendeteksi marka jalan dengan tingkat akurasi deteksinya saja, akan tetapi dalam penelitian ini ditambahkan suatu fitur setelah deteksi marka jalan, sistem mampu mengetahui lajur yang dilalui kendaraan, mengestimasi kendaraan dengan marka per-frame dari video, mengkalkulasi perhitungan estimasi posisi kendaraan dengan marka secara keseluruhan dengan parametenya yaitu ketika kendaraan di dalam marka jalan, pindah lajur dan melewati samping jalan. Setelah itu, sistem mampu mengeluarkan keluaran berupa predikat nilai untuk penilaian mengemudi.

Tujuan dari penelitian ini adalah Mengetahui penerapan metode hough transform dalam mendeteksi marka jalan melalui video dan mengetahui dari deteksi marka jalan mampu untuk mengeluarkan predikat untuk sebuah penilaian mengemudi.

1.1 Hough Transform

Hough transform adalah membuat persamaan dari suatu piksel dan mempertimbangkan semua

telah dikembangkan untuk mendeteksi bentuk-bentuk umum dalam citra seperti lingkaran, elips dan parabola. Konsep dasar dari Hough transform adalah terdapat garis dan kurva potensial yang tak terhitung jumlahnya pada suatu citra yang melalui titik mana saja pada berbagaiu kuran dan orientasi. Transformasi dilakukan untuk menemukan garis dan kurva yang melewati banyak titik-titik di dalam citra, yaitu garis dan kurva yang terdekat dan palingsesuai dengan data pada matriks citra.

Secara khususnya Hough transform yang digunakan disini hanyalah untuk mendeteksi garis pada marka jalan saja yang dimana pada awalnya garis jalan ini koordinatnya dalam bentuk kartesian space (x-y) yang kemudian dirubah menjadi kurva sinusoidal pada hough space (rho & theta.)

ρ = x cos θ + y sin θ (Pers 1)

1.2 Estimasi Posisi

Estimasi posisi kendaraan terhadap marka adalah perkiraan posisi kendaraan terhadap marka kiri dan kanan yang dilalui oleh kendaraan itu sendiri. Kendaraan yang dimaksud adalah mobil pribadi yang dipakai untuk berkendara.

Adapun rumus untuk mencari estimasi posisi kendaraan terhadap marka pada persamaan 2 dan 3 Sedang untuk mengetahui rentangnya pada persamaan 4: B1 & B2 = Batas samping mobil R1 & R2 = Rentang B ke P

Pada persamaan 5, nilai dikalikan 100 adalah untuk mencari nilai dalam pentuk persentase.

Berikut adalah rule untuk mengetahui kendaraan bergerak ke arah marka kiri dan kanan:

Jika arah mobil = R1 > R2, (R1-R2)/R x100 maka arah kendaraan ke marka sebelah kanan

Jika arah mobil = R1 < R2, (R2-R1)/R x100 maka arah kendaraan ke marka sebelah kiri.

(51)

Jurnal Ilmiah Komputer dan Informatika (KOMPUTA)

47

Jika nilai persentase Dalam Marka dalam range 40-70%. Pengemudi dengan predikat “Kurang Baik”:

Jika nilai persentase Dalam Marka dalam range 0-40%.

Pada kesimpulan predikat mengemudi jika Pindah Lajur berada pada persentase 40-100% maka akan menghasilkan keluaran “Terlalu Sering Pindah Lajur”. Jika Pinggir Pembatas menghasilkan persentase pada 50-100% maka keluaran pada kesimpulan yaitu “Terlalu Sering Di Samping Jalan”, jika persentase Pinggir Pembatas 5-50% maka keluaran pada kesimpulan, “Kurangi Berada di Pinggir Jalan”.

Untuk mengetahui cara menghitung Dalam Marka, Pindah Lajur, dan Pinggir Pembatas menggunakan rumus berikut:

∑ dalam marka x 100% (Pers 6) (2.13)

total frame

Begitu pun sama jika ingin menghitung Pindah Lajur dan Pinggir Pembatas menggunakan rumus seperti dalam marka.

Dalam Marka mempunyai beberapa kondisi yaitu ketika kendaraan ketika berada di lajur kiri dan kanan. Pada setiap lajur mempunyai tiga kondisi yang disebut Dalam Marka yaitu Bagian Dalam Kiri Marka, Bagian Dalam Tengah Marka, dan Bagian Dalam Kanan Marka. Untuk menghitung Dalam Marka pada setiap lajur menggunakan rumus berikut.

∑ dalam kiri marka x 100% (Pers 7) (2.14)

Dalam Marka

Begitu pun sama jika ingin menghitung Bagian Dalam Tengah Marka, dan Bagian Dalam Kanan Marka menggunakan rumus seperti Dalam Kiri Marka.

1.4 OpenCV

OpenCV (Open Source Computer Vision Library) adalah sebuah pustaka perangkat lunak yang ditujukan untuk pengolahan citra dinamis secara real-time, yang dibuat oleh Intel, dan sekarang didukung oleh Willow Garage dan Itseez. Program ini bebas dan berada dalam naungan sumber terbuka dari lisensi BSD.

OpenCV yang digunakan di dalam sistem yang akan dibangun yaitu OpenCVSharp yaitu yang berisikan tentang method image processing, yang didalamnya mempunyai banyak method. Namun yang akan dipakai dan dipanggil dalam sistem antara lain: grayscale, threshold, filter smooth, operasi morphologi dan hough transform, dapat dilihat pada tabel.

Tabel 1. Parameter cvtColor OpenCV

Nama Parameter Deskripsi

Src Source gambar asli hasil inputan berisi nilai piksel RGB 8 bit, 16 bit atau nilai single-presisi

dst Destinasi keluaran gambar dengan ketentuan sama dengan parameter src. code Kode konversi ruang warna dstCn Jumlah channel pada gambar

tujuan, jumlah chanel berasal secara otomatis dari src dan code.

Tabel 2 Parameter Cv.Smooth OpenCV

Nama Parameter Deskripsi

Src Source gambar asli hasil inputan.

dst Destinasi keluaran gambar. Smoothtype Memilih median filter

Size1 Nilai matriks parameter operasi smoothing. Angka yang dimasukkan harus angka ganjil yang positif seperti (1,3,5,7 ...)

Tabel 3. Parameter Threshold OpenCV

Nama Parameter Deskripsi

Src Input array (single-chanel, 8 bit atau 32bit)

dst Keluaran array yang mempunyai ukuran yang sama pada parameter src. thresh Nilai threshold

maxval Maksimum nilai yang untuk yang digunakan pada tipe

threshold

Type Memilih tipe binary

Tabel 3. Parameter morphologiEx OpenCV

Nama Parameter Deskripsi

(52)

Nilai default Point (-1, -1) berarti bahwa jangkar adalah di pusat elemen.

iterations Nilai erosi dan dilasi diterapkan

steam Stream untuk versi asynchronous

Tabel 4. Parameter HoughLine2 OpenCV

Nama Parameter Deskripsi

dst Keluaran gambar yang akan terdeteksi oleh garis

lines Sebuah vektor yang akan menyimpan parameter (ρ,θ) dari deteksi garis rho Resolusi dari parameter

ρ dalam pixel.

theta Resolusi dari parameter θ dalam radian.

threshold Angka minimum dari interseksi untuk

Gambar 1 Alur Proses Utama Sistem

sistem. Video yang direkam menghadap ke depan, searah laju mobil dan diletakkan pada tengah-tengah kendaraan.

B. Preprocessing

Preprocessing diantaranya adalah konversi Frame RGB ke grayscale dengan pemanggilan fungsi melalui library opencvsharp adalah sebagai berikut:

Cv.CvtColor(src,gray,ColorConversion.BgrTo Gray);

Proses selanjutnya adalah cropping frame

dengan pemanggilan fungsi melalui library

opencvsharp sebagai berikut:

src.SetROI(new CvRect(0,

(src.Height/2)+100, src.Width-1, src.Height-1));

Proses selanjutnya adalah median filter dengan pemanggilan fungsi melalui library opencvsharp sebagai berikut:

Cv.Smooth(gray, gray, SmoothType.Median, 7);

Proses selanjutnya adalah threshold dengan pemanggilan fungsi melalui library opencvsharp sebagai berikut:

gray.Threshold(gray, 85, 255, ThresholdType.Binary);

C. Operasi Morphologi

Pemanggilan fungsi operasi morphologi melalui

library opencvsharp sebagai berikut: Cv.MorphologyEx(gray,gray,gray,new

IplConvKernel(3,3,1,1,ElementShape.Rect),M orphologyOperation.Close,3);

D. Hough Transform

Pada proses hough transform adalah proses pembentukan marka yang ditemukan pada citra biner yang memiliki struktur persamaan garis. Dalam pemanggilan fungsi inisialisasi pembentukan garis pada library opencvsharp adalah sebagai berikut:

line = gray.HoughLines2(memo,

HoughLinesMethod.Probabilistic, 5,Math.PI / 180, 200, 75, 150);

Gambar

Gambar 1.1 Model Waterfall
Gambar 2.2 Jalan Lebih dari 2 Lajur
Gambar 2. SEQ Gambar_2. \* ARABIC 3 Arahan Marka Dilarang dan Boleh Pindah
Gambar 2.3 Representasi RGB pada Warna Gambar
+7

Referensi

Dokumen terkait