11
IMPLEMENTASI SISTEM CERDAS PADA OTOMATISASI
PENDETEKSIAN JENIS KENDARAAN DI JALAN RAYA
TUGAS AKHIR
OLEH:
DIMAS DWI BUDIARJO
G.131.15.0065
PROGRAM STUDI S1 - SISTEM INFORMASI
JURUSAN TEKNOLOGI INFORMASI
FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI
UNIVERSITAS SEMARANG
2020
i
HALAMAN JUDUL
ii
PERNYATAAN PENULIS TUGAS AKHIR
DENGAN JUDUL
IMPLEMENTATION OF AN INTELLIGENT SYSTEM FOR VEHICLE TYPE
DETECTION AUTOMATION ON THE ROAD
Dengan ini saya :
NAMA : Dimas Dwi Budiarjo
NIM : G.131.15.0065
PROGRAM STUDI : S1 Sistem Informasi
“Saya menyatakan dan bertanggungjawab dengan sebenarnya bahwa Tugas Akhir
(TA) ini adalah hasil karya saya sendiri kecuali cuplikan dan ringkasan yang
masing-masing telah saya jelaskan sumbernya. Jika pada waktu selanjutnya ada
pihak lain yang mengklaim bahwa Tugas Akhir (TA) ini sebagai karyanya, yang
disertai dengan bukti-bukti yang cukup, maka saya bersedia un tuk dibatalkan
gelar Sarjana Komputer saya beserta segala hak dan kewajiban yang melekat pada
gelar tersebut”.
Semarang, 12 Februari 2020
Penulis,
Dimas Dwi Budiarjo
iii
NAMA : Dimas Dwi Budiarjo
NIM : G.131.15.0065
PENGESAHAN TUGAS AKHIR
DENGAN JUDUL
IMPLEMENTATION OF AN INTELLIGENT SYSTEM FOR VEHICLE TYPE
DETECTION AUTOMATION ON THE ROAD
OLEH
DISUSUN DALAM RANGKA MEMENUHI SYARAT GUNA
MEMPEROLEH GELAR SARJANA KOMPUTER
PROGRAM STUDI S1 – SISTEM INFORMASI
JURUSAN TEKNOLOGI INFORMASI
FAKULTAS TEKNOLOGI INFORMASI DAN KOMUNIKASI
UNIVERSITAS SEMARANG
TELAH DIPERIKSA DAN DISETUJUI
SEMARANG, 12 Februari 2020
KETUA PROGRAM STUDI
S1-SISTEM INFORMASI
Prind Triajeng P., S.Kom., M.Kom
NIS. 06557003102110
PEMBIMBING TUGAS AKHIR
Aria Hendrawan, ST, M.Kom
NIS. 06557003102159
DEKAN
Susanto, S.Kom., M.Kom
NIS. 06557060687098
iv
NAMA : Dimas Dwi Budiarjo
NIM : G.131.15.0065
PENGESAHAN UJIAN TUGAS AKHIR
DENGAN JUDUL
IMPLEMENTATION OF AN INTELLIGENT SYSTEM FOR VEHICLE TYPE
DETECTION AUTOMATION ON THE ROAD
OLEH
Telah diujikan dan dipertahankan dihadapan Dewan Penguji pada Sidang Tugas
Akhir (TA)
Hari Rabu tanggal 19 Februari 2020
Menurut pandangan kami, Tugas Akhir (TA) ini memadai dari segi kualitas
maupun kuantitas untuk tujuan penganugrahan gelar Sarjana Komputer (S.Kom)
Ketua Tim Penguji
Nur Wakhidah, S.Kom, M.Cs
NIS. 06557003102100
Tanggal
………..
Tanda Tangan
………..
Penguji Pendamping
1. Aria Hendrawan, ST, M.Kom
NIS. 06557003102159
2. Prind Triajeng P, S.Kom, M.Kom
NIS. 06557003102110
v
ABSTRACT
Indonesia is a country that has a high population, especially in big cities. The
road always crowded by various types of vehicle. Sometimes growth of vehicle not
matched by road construction. During peak hours, too many vehicles can cause
traffic jams on the road. Therefore a widening of the road is needed to
accommodate the number of vehicles that pass each day. In order for road
widening to be exact at locations that frequently occur in traffic jams, data on the
number and classification of vehicles passing is required. Therefore a system that
can calculate and recognize the type of vehicle that passes is needed.
The development of various studies on artificial intelligence especially about
object detection can help to classify and calculate the type of vehicle. In this study
the author used the YOLO object detection system that uses CNN method to
classify and count vehicles that pass automatically.
The author uses a dataset of 600 images with 4 classes which is car, truck, bus
and motorbikes that pass through the road. The results showed the YOLO object
detection system can recognize objects consistently with an accuracy more than
80% on cctv video that installed on the road.
Keywords: Artificial Intelligence, Object Detection, YOLO, CNN
vi
ABSTRAK
Indonesia adalah negara yang memiliki kepadatan penduduk yang tinggi, terutama
di kota – kota besar jalan raya selalu ramai dilewati oleh berbagai macam jenis
kendaraan. Pertumbuhan kendaraan yang tinggi di kota besar terkadang tidak
diimbangi dengan pembangunan jalan yang memadai. Pada saat jam sibuk,
kendaraan yang terlalu banyak dapat menyebabkan kemacetan di jalan. Oleh
karena itu dibutuhkan pelebaran jalan untuk menampung jumlah kendaraan yang
lewat setiap harinya. Agar pelebaran jalan tepat pada lokasi yang sering terjadi
kemacetan, diperlukan data jumlah dan klasifikasi kendaraan yang lewat. Maka
dari itu diperlukan sebuah sistem yang dapat menghitung dan mengenali jenis
kendaraan yang lewat.
Berkembangnya berbagai penelitian tentang kecerdasan buatan salah satunya
tentang object detection, dapat membantu untuk mengklasifikasi dan menghitung
jenis kendaraan. Dalam penelitian ini penulis menggunakan sistem deteksi objek
YOLO yang menggunakan metode CNN untuk mengklasifikasi dan menghitung
kendaraan yang lewat secara otomatis.
Penulis menggunakan dataset sebanyak 600 gambar dengan 4 kelas objek yaitu
mobil, truk, bus dan sepeda motor yang melewati jalan raya. Hasil penelitian
menunjukan sistem deteksi objek YOLO dapat mengenali objek secara konsisten
dengan akurasi lebih dari 80% pada sebuah video dari cctv yang dipasang di jalan
raya.
Kata kunci: Kecerdasan Buatan, Pendeteksi Objek, YOLO, CNN
vii
KATA PENGANTAR
Puji syukur penulis panjatkan kepada Tuhan Yang Maha Esa yang telah
memberikan rahmat dan karunianya, sehingga penulis dapat menyelesaikan Tugas
Akhir dengan judul “IMPLEMENTATION OF AN INTELLIGENT SYSTEM
FOR VEHICLE TYPE DETECTION AUTOMATION ON THE ROAD” sebagai
syarat untuk menyelesaiakan Program Sarjana (S1) Sistem Informasi Universitas
Semarang.
Selama penulisan skripsi ini, penulis banyak menerima bantuan dan
dukungan sehingga dapat menyelesaikan skripsi ini. Oleh karena itu, penulis
mengucapkan terima kasih sebesar-besarnya kepada:
1. Bapak Susanto, S.Kom., M.Kom selaku Dekan Fakultas Teknologi
Informasi dan Komunikasi Universitas Semarang.
2. Bapak Aria Hendrawan, ST, M.Kom selaku Dosen pembimbing yang telah
meluangkan waktu untuk memberikan bimbingan selama penyusunan
skripsi.
3. Ibu Dr. Titin Winarti, S.Kom, MM selaku Dosen wali yang telah
memberikan dukungan pengarahan selama masa perkuliahan.
4. Seluruh jajaran Dosen dan Staf Fakultas Teknologi Informasi dan
Komunikasi Universitas Semarang.
5. Seluruh teman-teman dari PT. Java Valley Technology Semarang yang
telah memberikan dukungan selama proses pembuatan skripsi.
6. Kedua Orang Tua yang telah memberikan doa dan dukungan selama
proses pembuatan skripsi.
7. Tauchita, yang telah membantu dan memberikan semangat dalam
penyelesaian skripsi ini.
Penulis menyadari bahwa masih banyak kekurangan dari laporan ini, baik
dari materi maupun teknik penyajiannya, mengingat kurangnya pengetahuan dan
pengalaman penulis. Semoga skripsi ini dapat memberikan manfaat untuk
pembaca dan semua pihak khususnya dalam bidang kecerdasan buatan.
Semarang, 12 Februari 2020
Penulis
viii
DAFTAR ISI
HALAMAN JUDUL………………………………………………………………i
PERNYATAAN PENULIS TUGAS AKHIR ........................................................ ii
PENGESAHAN TUGAS AKHIR ......................................................................... iii
PENGESAHAN UJIAN TUGAS AKHIR ............................................................ iv
ABSTRACT .............................................................................................................. v
ABSTRAK ............................................................................................................. vi
KATA PENGANTAR .......................................................................................... vii
DAFTAR ISI ........................................................................................................ viii
DAFTAR GAMBAR ............................................................................................. xi
DAFTAR TABEL ................................................................................................ xiii
BAB I PENDAHULUAN ....................................................................................... 1
1.1 Latar Belakang ......................................................................................... 1
1.2 Perumusan Masalah .................................................................................. 3
1.3 Batasan Masalah ....................................................................................... 3
1.4 Tujuan Tugas Akhir .................................................................................. 3
1.5 Manfaat Tugas Akhir ................................................................................ 4
1.6 Metodologi Penelitian .............................................................................. 4
1.7 Sistematika Penulisan ............................................................................... 6
BAB II TINJAUAN PUSTAKA ............................................................................. 8
2.1 Penelitian Terdahulu ................................................................................. 8
2.2 Landasan Teori ....................................................................................... 13
2.2.1 Kecerdasan Buatan (Artificial Intelligence) .................................... 13
2.2.2 CNN (Convolutional Neural Network) ........................................... 14
2.2.3 YOLO (You Only Look Once)......................................................... 17
2.2.4 Python ............................................................................................. 19
ix
2.2.5 Computer Vision ............................................................................. 19
2.2.6 OpenCV .......................................................................................... 19
2.2.7 LabelImg ......................................................................................... 20
2.2.8 CUDA ............................................................................................. 21
2.2.9 cuDNN ............................................................................................ 21
2.2.10 Flowchart ........................................................................................ 22
2.2.11 Implementasi ................................................................................... 23
2.2.12 Pengujian ......................................................................................... 24
2.2.13 Black Box testing ............................................................................. 24
2.2.14 Pascal VOC (Visual Object Classes) .............................................. 24
2.2.15 Epoch............................................................................................... 26
2.2.16 Batch ............................................................................................... 27
2.2.17 Iterations ......................................................................................... 27
BAB III ANALISA DAN PERANCANGAN SISTEM ....................................... 28
3.1 Analisa Sistem ........................................................................................ 28
3.1.1 Analisa Kebutuhan Software .......................................................... 28
3.1.2 Analisa Kebutuhan Hardware......................................................... 28
3.1.3 Analisa Dataset ............................................................................... 29
3.2 Perancangan Sistem ................................................................................ 30
3.2.1 Flowchart ........................................................................................ 30
3.2.2 Antarmuka (User Interface) ............................................................ 33
BAB IV IMPLEMENTASI SISTEM ................................................................... 34
4.1 Instalasi Software yang dibutuhkan ........................................................ 34
4.1.1 Python 3.7 ....................................................................................... 34
4.1.2 Tensorflow 1.15.0 ........................................................................... 34
x
4.1.3 OpenCV .......................................................................................... 35
4.1.4 Cython ............................................................................................. 36
4.1.5 Pillow .............................................................................................. 36
4.1.6 Windows 10 SDK ........................................................................... 37
4.1.7 CUDA Toolkit 10.0 ......................................................................... 37
4.1.8 cuDNN ............................................................................................ 41
4.1.9 YOLO .............................................................................................. 42
4.1.10 labelImg........................................................................................... 43
4.2 Training Data .......................................................................................... 44
4.2.1 Pelabelan Gambar (Image Annotation) ........................................... 44
4.2.2 Proses Training ............................................................................... 49
4.3 Tampilan Antarmuka .............................................................................. 56
4.4 Menjalankan Program ............................................................................ 57
4.5 Pegujian Program ................................................................................... 61
4.6 Hasil Pendeteksian ................................................................................. 63
BAB V PENUTUP ................................................................................................ 64
5.1 Kesimpulan ............................................................................................. 64
5.2 Saran ....................................................................................................... 64
DAFTAR PUSTAKA ........................................................................................... 66
LAMPIRAN .......................................................................................................... 69
xi
DAFTAR GAMBAR
Gambar 2.1 Proses Convolutional Layer .............................................................. 16
Gambar 2.2 Operasi Konvolusi ............................................................................. 16
Gambar 2.3 Max Pooling ...................................................................................... 17
Gambar 2.4 Pendekatan YOLO untuk memprediksi objek .................................. 18
Gambar 2.5 LabelImg ........................................................................................... 21
Gambar 2.6 Format Pascal VOC ........................................................................... 25
Gambar 2.7 Epoch ................................................................................................. 27
Gambar 3.1 Contoh dataset untuk training ........................................................... 30
Gambar 3.2 Flowchart alur program ..................................................................... 31
Gambar 3.3 Flowchart perhitungan hasil klasifikasi objek ................................... 32
Gambar 3.4 Desain antarmuka dengan software PAGE ....................................... 33
Gambar 4.1 Halaman Website Python .................................................................. 34
Gambar 4.2 Instalasi tensorflow menggunakan pip .............................................. 35
Gambar 4.3 Instalasi OpenCV menggunakan pip ................................................. 35
Gambar 4.4 Instalasi cython menggunakan pip .................................................... 36
Gambar 4.5 Instalasi pillow menggunakan pip ..................................................... 36
Gambar 4.6 Instalasi komponen windows 10 SDK .............................................. 37
Gambar 4.7 CUDA License agreement ................................................................ 38
Gambar 4.8 CUDA Installation Option ................................................................ 39
Gambar 4.9 Pemilihan komponen CUDA ............................................................ 39
Gambar 4.10 CUDA Installation location ............................................................. 40
Gambar 4.11 Instalasi CUDA selesai.................................................................... 41
Gambar 4.12 Instalasi cuDNN .............................................................................. 42
Gambar 4.13 Instalasi YOLO menggunakan Darkflow ........................................ 43
Gambar 4.14 Antarmuka labelImg ........................................................................ 44
Gambar 4.15 Pelabelan gambar (Image Annotation) ............................................ 45
Gambar 4.16 Grid 3 x 3......................................................................................... 52
Gambar 4.17 Class Probabilities ........................................................................... 52
Gambar 4.18 Hasil Prediksi .................................................................................. 53
xii
Gambar 4.19 Komponen Bounding Box ............................................................... 53
Gambar 4.20 Proses Training ................................................................................ 55
Gambar 4.21 Weights dari hasil proses training .................................................. 55
Gambar 4.22 Desain Antarmuka Program ............................................................ 56
Gambar 4.23 Memilih sumber video untuk klasifikasi ......................................... 58
Gambar 4.24 Garis untuk membentuk area perhitungan ...................................... 59
Gambar 4.25 Area Perhitungan ............................................................................. 59
Gambar 4.26 Hasil Pendeteksian .......................................................................... 60
Gambar 4.27 Bounding Box ................................................................................. 61
xiii
DAFTAR TABEL
Tabel 2.1 Penelitian Terdahulu ............................................................................... 8
Tabel 2.2 Simbol Flowchart .................................................................................. 22
Tabel 2.3 Key PascalVOC .................................................................................... 25
Tabel 3.1 Nama Kelas ........................................................................................... 29
Tabel 4.1 Proses Konvolusi .................................................................................. 51
Tabel 4.2 Parameter Training ................................................................................ 54
Tabel 4.3 Fungsi Komponen ................................................................................. 56
Tabel 4.4 Pengujian Black Box ............................................................................. 61
Tabel 4.5 Hasil Pendeteksian ................................................................................ 63
1
BAB I
PENDAHULUAN
1.1 Latar Belakang
Di Indonesia terutama di kota-kota besar tingkat pertumbuhan kendaraan
sangat tinggi, hal ini disebabkan karena masyarakat lebih memilih
menggunakan kendaraan pribadi dari pada kendaraan umum. Tetapi tingkat
pertumbuhan kendaraan yang tinggi tidak diimbangi dengan pembangunan
jalan yang memadai, sehingga kendaraan yang terlalu banyak dan jalan yang
masih belum memadai menyebabkan kemacetan yang merugikan masyarakat.
Oleh karena itu dibutuhkan pembangunan atau pelebaran jalan agar dapat
mengurangi kemacetan yang terjadi.
Pembangunan atau pelebaran jalan raya untuk mengurangi kemacetan
memerlukan rencana yang matang dan harus sesuai dengan kebutuhan. Untuk
mengetahui lokasi titik kemacetan dibutuhkan data jumlah kendaraan yang
melewati lokasi tersebut. Semakin banyak kendaraan yang lewat berarti
pembangunan atau pelebaran jalan diperlukan di lokasi tersebut untuk
mengurangi kemacetan. Di setiap jalan raya terdapat berbagai jenis kendaraan
yang lewat seperti mobil, truk, bus dan sepeda motor. Data setiap jenis
kendaraan yang lewat dapat digunakan untuk pertimbangan rencana
pembangunan atau pelebaran jalan. Untuk menghitung jumlah kendaraan yang
lewat setiap hari secara otomatis dapat menggunakan aplikasi dengan
menerapkan sistem cerdas.
Seiring berkembangnya penelitian tentang kecerdasan buatan salah
satunya tentang object detection, dapat membantu mengenali objek di dalam
sebuah gambar. Object detection merupakan salah satu bidang dalam
computer vision. Computer vision adalah ilmu yang mempelajari tentang
bagaimana komputer melihat dan menganalisa suatu objek yang ada didalam
sebuah gambar.
2
Object detection (pendeteksian objek) berguna untuk mendeteksi atau
mengenali objek dalam sebuah gambar berdasarkan dari bentuk, warna atau
dari dataset yang dibuat. Ada berbagai macam cara untuk menerapkan aplikasi
object detection, diantaranya adalah menggunakan metode CNN
(Convolutional Neural Network) dan sistem pendeteksi YOLO (You Only
Look Once). Dalam penelitian yang dilakukan Joseph Redmon dan Ali
Farhadi sistem deteksi YOLO terbukti lebih cepat mengenali sebuah objek
didalam gambar sehingga sangat cocok jika diterapkan untuk real-time object
detection pada video (Redmon & Farhadi, 2016).
Dalam real-time object detection kecepatan pendeteksian objek sangat
penting karena berbeda dengan sebuah gambar, dalam sebuah video dapat
mengolah lebih dari 24 frame per detik atau 24 frame per second (FPS). Jika
proses pendeteksian objek terlalu lama maka video yang dihasilkan tidak akan
baik, akan terjadi delay setiap frame sehingga video menjadi patah-patah.
Dengan menerapkan object detection menggunakan YOLO ke sebuah
aplikasi dapat membantu mengklasifikasi setiap kendaraan yang lewat dijalan
raya secara real-time melalui rekaman video dari CCTV. Kendaraan yang
lewat akan dihitung secara otomatis berdasarkan hasil klasifikasi dan tingkat
akurasinya.
Berdasarkan uraian diatas penerapan sistem cerdas yaitu object
detection dengan menggunakan YOLO dapat menjadi solusi untuk
mengklasifikasi dan menghitung setiap kendaraan yang lewat dijalan raya
secara real-time setiap harinya. Data perhitungan dan klasifikasi kendaraan
yang didapat bisa digunakan untuk pertimbangan menentukan pembangunan
atau pelebaran jalan raya. Oleh karena itu penulis membuat tugas akhir dengan
judul “IMPLEMENTATION OF AN INTELLIGENT SYSTEM FOR
VEHICLE TYPE DETECTION AUTOMATION ON THE ROAD”.
Dengan sistem cerdas yang dibuat diharapkan dapat membantu
mengumpulkan data yang diperlukan dan berguna bagi pihak yang
3
membutuhkannya, terutama untuk data jumlah dan klasifikasi setiap
kendaraan.
1.2 Perumusan Masalah
Berdasarkan uraian diatas, dapat dirumuskan permasalahannya yaitu
bagaimana menerapkan sistem cerdas khususnya object detection untuk
mengklasifikasi jenis dan menghitung jumlah kendaraan yang lewat setiap
hari secara otomatis.
1.3 Batasan Masalah
Dalam pengembangan sistem cerdas untuk perhitungan dan klasifikasi
kendaraan penulis membuat batasan masalah agar tujuan yang dari sistem
yang dibuat dapat tercapai. Adapun batasan masalahnya adalah sebagai
berikut:
1. Penulis menggunakan bahasa pemrograman python 3.7 didukung
dengan GUI (Graphical User Interface) dari library tkinter.
2. Masalah yang dibahas adalah penerapan object detection YOLO untuk
perhitungan dan klasifikasi kendaraan.
3. Training dataset dilakukan secara manual diluar sistem yang dibuat.
4. Sistem yang dibuat berjalan di Sistem Operasi Windows 10.
1.4 Tujuan Tugas Akhir
Tujuan dari Tugas Akhir (TA) ini adalah dapat menghasilkan sebuah
sistem cerdas yang dapat mengenali dan menghitung jenis kendaraan yang lewat
setiap hari secara otomatis.
4
1.5 Manfaat Tugas Akhir
Manfaat yang diperoleh dari Tugas Akhir (TA) ini antara lain:
1. Bagi Penulis
Dapat memahami cara kerja sistem cerdas khususnya object detection
secara mendalam dan mampu menerapkan sistem cerdas ke aplikasi desktop
yang dibuat dengan bahasa pemrograman python.
2. Bagi Pengguna
Sistem cerdas yang dibangun dapat membantu pengguna untuk
mengumpulkan data jenis kendaraan yang melewati jalan raya setiap harinya
sehingga dapat digunakan untuk pertimbangan rencana pembangunan atau
pelebaran di jalan raya.
3. Bagi Akademik
Dapat menambah pembendaharaan literatur pada perpustakaan Universitas
Semarang dan sebagai tolak ukur untuk menghasilkan sarjana yang dapat
melakukan pengembangan sistem cerdas object detection dengan
menggunakan YOLO dan bahasa pemrograman python.
1.6 Metodologi Penelitian
Dalam melaksanakan Tugas Akhir (TA) ini penulis menggunakan
metode berikut agar mudah untuk mengembangkan program:
1. Pengumpulan Data
Dalam penelitian ini penulis menggunakan data beberapa video
yang berasal dari rekaman CCTV di jalan. Dari data tersebut kemudian
dilakukan extraksi menjadi data gambar untuk membuat dataset yang
akan digunakan untuk proses training. Selain dari data beberapa video
CCTV penulis juga menggunakan data gambar yang berasal dari
5
internet untuk training agar hasil pendeteksian kendaraan bisa lebih
bervariasi dan akurat.
Penulis menggunakan gambar kendaraan yang ada di jalan raya
sebanyak 600 gambar yang terdiri dari berbagai macam sudut pandang
untuk dataset.
2. Studi Pustaka
Metode ini dilakukan dengan membaca referensi – referensi
berupa buku, karya tulis, ataupun hasil dari pencarian melalui internet.
3. Analisa dan Perancangan Sistem
Penulis menggunakan alat bantu yaitu software PAGE untuk
membuat desain graphical user interface. Dengan menggunakan
PAGE desain interface yang dibuat dapat langsung dikonversi menjadi
kode python, sehingga desain interface dapat langsung
diimplementasikan menggunakan bahasa pemrograman python.
4. Implementasi
Pada tahap implementasi penulis melakukan pelabelan gambar
kemudian melakukan proses training untuk menghasilkan model
pendeteksian. Kemudian penulis menggunakan bahasa pemrograman
python untuk membuat program berbasis desktop, dari tahapan desain
kemudian diimplementasikan dalam bentuk program desktop. Setelah
interface program selesai kemudian melakukan konfigurasi untuk
pendeteksian objek berdasarkan model yang dihasilkan dari training
data.
Untuk menjalankan program memerlukan beberapa software
khusus diantaranya adalah:
1. Python
2. CUDA Tools 10.0
6
3. cuDNN
4. Pillow
5. Cython
6. Tensorflow versi 1.15.0
7. Windows 10 SDK
8. Darknet
5. Pengujian
Dalam tahap pengujian penulis menguji program apakah dapat
mendeteksi dan mengklasifikasi objek secara akurat, jika hasil
pendeteksian belum akurat dapat kembali melakukan proses training
data untuk meningkatkan akurasi pendeteksian.
1.7 Sistematika Penulisan
Sistematika penulisan adalah langkah-langkah untuk menyusun
laporan tugas akhir, sistematika yang digunakan penulis dalam
penyusunan laporan Tugas Akhir adalah sebagai berikut:
BAB I PENDAHULUAN
Dalam bab ini berisi latar belakang, rumusan masalah,
batasan masalah, tujuan Tugas Akhir (TA), manfaat Tugas
Akhir (TA), metodologi penelitian, dan sistematika
penulisan Tugas Akhir (TA).
BAB II TINJAUAN PUSTAKA
Dalam bab ini berisi tentang tinjauan pustaka dari
penelitian-penelitian sebelumnya yang berkaitan dengan
7
sistem cerdas terutama untuk sistem pendeteksian objek
(Object Detection).
BAB III ANALISA DAN PERANCANGAN SISTEM
Pada bab ini berisi tentang analisa dan perancangan sistem
cerdas yang akan diterapkan untuk sistem pendeteksian
objek (Object Detection).
BAB IV IMPLEMENTASI SISTEM
Dalam bab ini membahas tentang implementasi sistem
cerdas untuk pendeteksian jenis kendaraan dan cara-cara
penggunaannya.
BAB V PENUTUP
Pada bab ini berisi kesimpulan dan saran untuk
melengkapi dan menyempurnakan penyusunan sekaligus
akhir dari penulisan Laporan Tugas Akhir (TA) ini.
DAFTAR PUSTAKA
LAMPIRAN
8
BAB II
TINJAUAN PUSTAKA
2.1 Penelitian Terdahulu
Penulis menggunakan beberapa penelitian terdahulu yang membahas
pendeteksian objek dengan berbagai macam metode sebagai sumber referensi
Tabel 2.1 Penelitian Terdahulu
No
Nama Peneliti,
Judul dan Tahun Masalah Metode Hasil
1 Tobi, M. D.
(2015) ‘Rancang
Bangun
Purwarupa Sistem
Pendeteksi
Kendaraan
Menggunakan
Pustaka Opencv’,
in Electro Luceat.
doi:
10.32531/jelekn.v
1i1.3.
Pemerintah
Daerah Sorong
tidak memiliki
suatu metode
untuk
memperhitungkan
beban jalan
dan penggunaan
jalan secara
efisien
Region of
Interest
(ROI) dan
find Contours
OpenCV
Sistem pendeteksi
kendaraan yang
dirancang berhasil
mendeteksi jumlah
kendaraan, kecepatan,
dan ukuran panjang
kendaraan dengan
baik. Sistem ini
mampu mendeteksi
kecepatan kendaraan
yang melintas dengan
kisaran galat sekitar
2,44 sampai 4 persen.
Jumlah kendaraan juga
dapat dideteksi dengan
kisaran galat sebesar
26,7 persen. Serta
ukuran panjang
kendaraan juga dapat
dideteksi dengan galat
sebesar 11% (untuk
9
pengujian pada
mobil), dan 9,3%
(untuk pengujian pada
sepeda motor).
2 Sahertian, J. and
Sanjaya, A. S. A.
(2017) ‘Deteksi
Buah Pada Pohon
Menggunakan
Metode Svm Dan
Fitur Tekstur’,
SEMNASTEKNO
MEDIA ONLINE,
5(1), pp. 3–4.
Keakuratan
deteksi buah pada
pohon
menggunakan
computer vision
sangat krusial
untuk membantu
dalam bidang
agrikultur seperti
perhitungan
jumlah buah dan
sebagai sensor
untuk robot
pemanen buah
otomatis.
SVM Hasil eksperimen pada
beberapa citra
ImageNet menunjukkan
bahwa metode yang
diusulkan mampu
menghasilkan akurasi
sebesar 76% dan
tingkat kesalahan
prediksi sebesar 24%.
3 Syafitri, N. and
Saputra, A. (2017)
‘Prototype
Pendeteksi Jumlah
Orang Dalam
Ruangan’, IT
Journal Research
and Development,
1(2), pp. 36–48.
Perlunya
implementasi
pendeteksian
wajah di berbagai
bidang seperti
keamanan,
catatan sipil dan
lain-lain.
Viola Jones Sistem mampu
mendeteksi dengan
akurasi 100% dan
waktu deteksi kurang
dari 0.15 detik dan
batasan jarak wajah
yang dapat dideteksi
kurang lebih 2,3 m dari
kamera. Sistem juga
dapat mendeteksi
adanya beberapa wajah
10
dalam suatu citra.
4 Shianto, K. A.,
Gunadi, K. and
Setyati, E. (2019)
‘Deteksi Jenis
Mobil
Menggunakan
Metode l..YOLO
Dan Faster R-
CNN’, Jurnal
Infra, 7(1), pp.
157–163.
Mendeteksi jenis
mobil secara
otomatis
Faster R-
CNN dan
YOLO
YOLO memiliki
akurasi prediksi yang
lebih rendah dari Faster
R-CNN tetapi memiliki
prediksi yang lebih
akurat daripada Faster
R-CNN. Faster R-CNN
dengan YOLO
mencapai akurasi 70%
– 80%
5 Limantoro, S. E.,
Kristian, Y. and
Purwanto, D. D.
(2017) ‘Deteksi
Pengendara
Sepeda Motor
Menggunakan
Deep
Convolutional
Neural Networks’,
in Seminar
Nasional
Teknologi
Informasi dan
Komunikasi, pp.
79–86.
Teknologi visi
komputer
diperlukan untuk
mendeteksi
keberadaan
pengendara
sepeda motor
CNN
(Convolution
al Neural
Networks)
Pada hasil eksperimen,
arsitektur CNN besar
memiliki akurasi yang
tertinggi sebesar 93%
dan f1-score sebesar
94,9%. Arsitektur CNN
yang kompleks dan
besar cenderung
memiliki peforma yang
lebih baik.
6 Ma’ali, A. M. and
Hendriyawan, A.
Saat ini
pengaturan lampu
Faster R-
CNN
Hasil akurasi dari
dataset yang telah
11
(2019) Rancang
Bangun Sistem
Pengendali
Lampu Lalu
Lintas
Berdasarkan
Pengenalan Citra
Digital
Kendaraan
Menggunakan
Metode Faster R-
Cnn. University of
Technology
Yogyakarta.
lalu lintas adaptif
dilakukan
berdasarkan
waktu, hal
tersebut masih
kurang efektif
dikarenakan
waktu atau jam
macet tidak selalu
sama setiap
hari.
dilakukan pelatihan
adalah 97.027% serta
persentase error
perhitungan jumlah
kendaraan adalah
sebesar 2.188%.
7 Susanto, K. N.,
Gunadi, K. and
Setyati, E. (2019)
‘Pengenalan
Karakter pada Plat
Nomor Indonesia
dengan Tilt
Correction dan
Metode Faster R-
CNN’, Jurnal
Infra, 7(1), pp. 1–
7.
Dengan
berkembangnya
teknologi, plat
nomor yang
merupakan
identitas dari
suatu kendaraan
dapat
dideteksi secara
otomatis oleh
sistem dengan
bantuan Digital
Image Processing
dan Artificial
Neural Network
Canny Edge
Detection dan
Faster R-
CNN
Hasil pengujian dari
dataset peneliti, akurasi
deteksi karakter pada
plat nomor mencapai
82,14% dan akurasi
deteksi warna mobil
mencapai 78,54%.
8 DARMA, M. D. Ruangan kelas CNN Hasil pengujian sistem
12
(2018) SISTEM
MONITORING
KURSI PADA
RUANGAN
KELAS DENGAN
METODE
CONVOLUTION
AL NEURAL
NETWORK
(CNN).
Universitas Islam
Negeri Sultan
Syarif Kasim
Riau.
perkuliahan
seharusnya selalu
memiliki kursi
yang cukup agar
proses
perkuliahan
berjalan dengan
baik. Akan tetapi
pada ruangan
kelas sering
terjadinya
kekurangan kursi.
oleh karena itu
penelitian ini
membuat sebuah
sistem yang dapat
memonitor
jumlah kursi
dalam ruangan
kelas dengan
menggunakan
metode
Convolution
Neural Network
(CNN).
(Convolution
al Neural
Networks)
dibagi menjadi 4 jenis,
masing-masing
pengujian mendapatkan
nilai akurasi pada
ruangan kelas 75, 6%,
pada pengujian hitung
jumlah kursi yang benar
mendapatkan nilai 0%,
pada pengujian jenis-
jenis kursi 100 % dan
pada pengujian tata
letak kursi 66,6 %.
9 Limantoro, S. E.,
Kristian, Y. and
Purwanto, D. D.
(2018)
‘Pemanfaatan
Deep Learning
Dash cam hanya
digunakan untuk
merekam video
saja sehingga
dash cam perlu
diberi kecerdasan
CNN
(Convolution
al Neural
Networks)
Kinerja bobot terhadap
data pengujian pada
eksperimen eksperimen
menghasilkan f1-score
masing-masing 0,977,
0,988, 0,989, dan 0,986.
13
pada Video Dash
Cam untuk
Deteksi
Pengendara
Sepeda Motor’,
Jurnal Nasional
Teknik Elektro
dan Teknologi
Informasi, 7(2),
pp. 167–173.
untuk mendeteksi
objek. Deteksi
kendaraan
merupakan hal
yang sangat
penting untuk
mengawasi lalu
lintas
10 Nugroho, H.
(2017) ‘Deteksi
Citra Objek
Lingkaran Dengan
Menggunkan
Metode Ekstraksi
Bentuk
Circularity’,
INTEGER:
Journal of
Information
Technology, 2(1).
Deteksi objek
lingkaran
dilakukan pada
citra bulan yang
memiliki bentuk
bermacam-
macam yaitu
bulan purnama
yang bentuk
lingkaran
sempurna, bulan
bentuk setengah
dan bulan sabit.
Ekstraksi
Bentuk
Circularity
Bentuk posisi citra
tidak banyak
mempengaruhi nilai
hasil ekastraksi fitur
bentuk
circularity contoh pada
citra setengah lingkaran
kiri dengan nilai
ekstraksi fitur
0.6701525 dan citra
setengah lingkaran atas
dengan nilai ekstraksi
fitur 0.681084
2.2 Landasan Teori
2.2.1 Kecerdasan Buatan (Artificial Intelligence)
Kecerdasan buatan merupakan suatu cabang dalam bidang
komputer sains yang membahas bagaimana sebuah komputer dapat
meniru cara berpikir seperti manusia. Dengan kecerdasan buatan
14
komputer dapat mengambil kesimpulan dan memutuskan suatu
permasalahan seperti layaknya manusia.
Menurut Luckin dan Colen dalam jurnal milik Ahmad Sudi
Pratikno (2017) menyatakan bahwa Artificial Intellegence sebagai
suatu sistem komputer yang dirancang untuk berinteraksi dengan
dunia melalui kemampuan-kemampuan tertentu dan perilaku
intelijen yang kita sadari seperti manusia pada umumnya. Hal
tersebut dikuatkan oleh Colen yang menyatakan bahwa Artificial
Intelligence merupakan teori yang mendasari tentang mekanisme
suatu kecerdasan serta metode empirik untuk membangun dan
menguji kemungkinan-kemungkinan model dalam mendukung
suatu teori.
Beberapa contoh penerapan Artificial Intelligence:
1. Untuk sistem kemudi otomatis pada mobil, contohnya pabrikan
mobil Tesla (Amerika) yang mempunyai sistem autopilot pada
mobil produksinya.
2. Sistem self parking atau parkir otomatis pada mobil modern
yang dapat membantu pengemudi memarkir mobilnya secara
otomatis.
3. Sistem penguncian wajah (Face Unlock) pada smartphone yang
dapat mengenali wajah pemiliknya.
4. Virtual Assistant seperti SIRI dari Apple, Cortana dari
Microsoft, dan Google Assistant dari Google yang dapat
menjadi asisten virtual sesuai dengan preferensi pengguna.
2.2.2 CNN (Convolutional Neural Network)
Convolutional Neural Network (CNN) adalah
pengembangan dari Multilayer Perceptron (MLP) yang didesain
15
untuk mengolah data dua dimensi. Convolutional Neural Network
(CNN) adalah salah satu jenis neural network yang biasa digunakan
pada data image. CNN bisa digunakan untuk mendeteksi dan
mengenali object pada sebuah image.
Hasil penelitian AlexNet memenangi kompetisi ILSVRC
2010 dan ILSVRC 2012 dengan tingkat error terendah 15,3%.
Sebanyak 1,2 juta data citra dengan 1.000 kelas dikoleksi dari situs
web dan diberi label oleh manusia menggunakan Amazon's
Mechanical Turk crowd-sourcing tool. Arsitektur CNN yang
digunakan terdiri atas lima lapisan konvolusional, lima fungsi
aktivasi relu, dua lapisan max pooling, dan tiga lapisan fully-
connected. Proses pelatihan menggunakan stochastic gradient
descent dengan parameter ukuran batch 128, learning rate 0,01,
momentum 0,9, dan decay 0,0005.
Ada beberapa bagian penting dari metode CNN yaitu:
a. Convolutional Layer
Convolution Layer melakukan operasi konvolusi pada
output dari layer sebelumnya. Layer tersebut adalah proses
utama yang mendasari sebuah CNN.
Konvolusi adalah suatu istilah matematis yang berarti
mengaplikasikan sebuah fungsi pada output fungsi lain secara
berulang. Dalam pengolahan citra, konvolusi berati
mengaplikasikan sebuah kernel pada citra disemua offset
yang memungkinkan. Kernel bergerak dari sudut kiri atas ke
kanan bawah.
Gambar input CNN selalu berbentuk kotak. Proses
untuk gambar non-rectangular masih belum diketahui. Filter
pun mengikuti karakteristik kotak tersebut. Proses
Convolutional Layer ditunjukan pada Gambar 2.1 berikut:
16
Gambar 2.1 Proses Convolutional Layer
Konvolusi pada data citra bertujuan untuk
mengekstraksi fitur dari citra input. Konvolusi akan
menghasilkan transformasi linear dari data input sesuai
informasi spasial pada data. Bobot pada layer
menspesifikasikan kernel konvolusi yang digunakan,
sehingga kernel konvolusi dapat dilatih berdasarkan input
pada CNN. Operasi konvolusi ditunjukan pada Gambar 2.2
berikut:
Gambar 2.2 Operasi Konvolusi
17
b. Pooling Layer
Fungsi dari pooling layer adalah untuk mereduksi
input secara spasial (mengurangi jumlah parameter) dengan
operasi down-sampling. Umumnya, metode pooling yang
digunakan adalah max pooling atau mengambil nilai terbesar
dari bagian tersebut. Namun terdapat metode pooling lain
yang dapat digunakan seperti average pooling atau L2-norm
pooling. Contoh Max Pooling ditunjukan pada Gambar 2.3
berikut:
Gambar 2.3 Max Pooling
2.2.3 YOLO (You Only Look Once)
YOLO (You Only Look Once) adalah sistem pendeteksian
objek yang menggunakan metode CNN. YOLO dapat memproses
gambar secara real-time pada 45 frame per second, pada versi
mininya bisa mencapai 155 frame per second (Redmon & Farhadi,
2016). YOLO menggunakan pendekatan berbeda untuk mendeteksi
objek pada suatu citra. YOLO mengaplikasikan neural network
pada suatu citra digital kemudian membaginya ke beberapa bagian
grid untuk memprediksi objek apa saja yang ada didalam suatu
citra digital. Proses prediksi YOLO ditunjukan oleh Gambar 2.4
berikut:
18
Gambar 2.4 Pendekatan YOLO untuk memprediksi objek
YOLO membagi input gambar menjadi grid berukuran
S×S, dimana nilai S adalah 7 dengan input gambar berukuran 448 x
448. Untuk memperoleh bounding box, dilakukan konvolusi dari
input gambar, sehingga hasil akhirnya akan mendapat ukuran
bounding box sebesar S×S×(B*5+C) dimana B adalah banyaknya
bounding box (umumnya 2) dalam 1 grid dan C adalah banyaknya
class yang dapat diklasifikasi. Nilai B dikalikan dengan 5 karena
sebuah bounding box memiliki 5 nilai yang perlu disimpan,
koordinat x, koordinat y, lebar (width), tinggi (height), dan
confidence score (nilai probabilitas bounding box pada sebuah
objek).
Untuk semua atribut pada bounding box akan dilakukan
normalisasi sehingga nilainya menjadi antara 0 hingga 1. Koordinat
x dan y akan dinormalisasi menyesuaikan titik kiri atas dari grid
yang bersangkutan. Tinggi dan lebar akan dinormalisasi sesuai
dengan ukuran gambar. Nilai koordinat x dan y pada sebuah
bounding box pada setiap grid merupakan titik tengah grid yang
bersangkutan.
19
2.2.4 Python
Python adalah sebuah bahasa pemrograman dinamis yang
sering digunakan dalam pengembangan aplikasi pada berbagai
domain. Salah satu fitur yang tersedia pada python adalah
sebagai pemrograman dinamis yang dilengkapi skrip meski pada
praktiknya penggunaan bahasa ini lebih luas mencakup konteks
pemanfaatan yang umumnya tidak dilakukan dengan
menggunakan bahasa skrip (Darmawan & Suwastono, 2015).
Bahasa Python mudah dimengerti (serupa dengan bahasa Inggris),
dan tidak perlu compiling, maka dari itu kita dapat menjalankan
script Python begitu kita menyimpannya tanpa memerlukan
langkah lanjutan.
2.2.5 Computer Vision
Computer vision adalah bagian dari ilmu komputer yang
membahas bagaimana sebuah komputer dapat melihat seperti
manusia, oleh karena sangat erat kaitannya dengan penglihatan,
pencahayaan menjadi faktor yang juga penting dalam hal ini
(Wahyudi & Kartowisastro, 2011).
2.2.6 OpenCV
OpenCV adalah sebuah library yang berisi fungsi-fungsi
pemograman untuk teknologi computer vision secara real-time.
OpenCV bersifat open source, bebas digunakan untuk hal-hal yang
bersifat akademis dan komersial. Di dalamnya terdapat interface
untuk C++, C, Python, dan Java yang dapat berjalan pada
Windows, Linux, Android, dan Mac. Menurut Gary, dalam jurnal
milik Tobi Markus Dwiyanto (2015), fitur-fitur yang terdapat pada
OpenCV antara lain yaitu manipulasi data image (alokasi, rilis,
20
duplikasi, pengaturan, konversi), Image dan I/O video (masukan
berbasis file dan kamera, keluaran image/ video file), manipulasi
matriks dan vektor serta aljabar linear (produk, solusi, eigenvalues,
SVD), beragam struktur data dinamis (daftar, baris, grafik), dasar
pengolahan citra (filter, deteksi tepi, deteksi sudut,
pengambilan sampel dan interpolasi, konversi warna, operasi
morfologi, histogram), analisis struktur (komponen yang
berhubungan, pengolahan kontur, transformasi jarak, variasi
momen, transformasi Hough, perkiraan polygonal,
menyesuaikan garis, delaunay triangulation, Kalibrasi kamera
(menemukan dan menelusuri pola kalibrasi, kalibrasi, dasar
estimasi matriks, estimasi homografi, korespondensi stereo),
analisis gerakan (optical flow, segmentasi gerakan,
penelusuran), pengenalan objek (metode eigen, HMM), dasar
Graphical User Interface atau GUI (menampilkan image/ video,
penanganan mouse dan keyboard, scroll-bars), pelabelan image
(garis, poligon, gambar teks).
2.2.7 LabelImg
LabelImg adalah program yang berguna untuk image
annotation atau pelabelan gambar. LabelImg adalah program open
source sehingga bebas untuk digunakan. LabelImg dapat melabeli
data gambar yang akan dijadikan dataset dengan format YOLO dan
PascalVOC. LabelImg dibuat dengan bahasa pemrograman python
3 dan Qt untuk user interfacenya, sehingga membutuhkan instalasi
python 3 dan library PyQt di komputer untuk menjalankannya.
LabelImg ditunjukan pada Gambar 2.5 berikut:
21
Gambar 2.5 LabelImg
2.2.8 CUDA
CUDA (Compute Unified Device Architecture) adalah
arsitektur pemrosesan parallel yang diimplementasikan ke dalam
GPU buatan Nvidia. CUDA dikembangkan oleh Nvidia untuk
mempermudah utilitasi GPU untuk keperluan umum (non-grafis).
Arsitektur CUDA ini memungkinkan pengembang perangkat lunak
untuk membuat program yang berjalan pada GPU buatan Nvidia
dengan syntax yang mirip dengan syntax C yang sudah banyak
dikenal
Sejak awal kemunculannya sampai saat ini, CUDA
mengalami perkembangan yang cukup pesat. Hal ini bisa dilihat
dari perbandingan banyaknya riset berbasis CUDA yang dilakukan
dan juga banyaknya CUDA SDK yang didownload.
2.2.9 cuDNN
Berdasarkan dari website nvidia, cuDNN atau CUDA Deep
Neural Network Library adalah library yang dikembangkan oleh
Nvidia yang dikhususkan untuk deep neural network. cuDNN
22
sangat berguna untuk meningkatkan performa GPU untuk
keperluan deep neural network atau jaringan saraf tiruan. cuDNN
banyak digunakan di aplikasi untuk deep learning diantaranya
adalah Tensorflow, Keras, Matlab, MxNet dan PyTorch.
2.2.10 Flowchart
Menurut Pahlevy (2010) Flowchart (bagan alir) adalah
gambaran dalam bentuk diagram alir dari algoritma-algoritma
dalam suatu program, yang menyatakan arah alur program tersebut.
Berikut beberapa simbol yang ada dalam flowchart:
Tabel 2.2 Simbol Flowchart
Simbol Keterangan
Simbol process, menyatakan suatu
tindakan yang dilakukan oleh
komputer
Simbol manual, yaitu menunjukan
suatu tindakan yang tidak
dilakukan oleh komputer
Simbol decision, yaitu menunjukan
suatu kondisi tertentu yang akan
menghasilkan 2 kemungkinan
jawaban yaitu Ya da Tidak
Simbol predefined process, yaitu
menyatakan penyediaan tempat
penyimpanan suatu pengolahan
untuk memberi harga awal
Simbol keying operation,
menyatakan segala jenis operasi
yang diproses dengan
23
menggunakan suatu mesin yang
mempunyai keyboard
Simbol terminal, yaitu menyatakan
permulaan atau akhir suatu
program
Simbol offline storage,
menunjukan bahwa data dalam
symbol ini akan disimpan ke suatu
media tertentu
Simbol manual input, memasukan
data secara manual dengan
menggunakan online keyboard
Simbol input/output, menyatakan
proses input atau output tanpa
tergantung jenis peralatannya
Simbol document, mencetak
keluaran dalam bentuk dokumen
(melalui printer)
2.2.11 Implementasi
Menurut Browne dan Wildavsky, dalam jurnal milik
Haryati, Sudarsono dan Suryana (2015), menyatakan bahwa
implementasi adalah perluasan aktivitas yang saling menyesuaikan.
Tahap implemetasi merupakan tahapan sementara dimana analisis
dan perancangan dapat digunakan. Sehingga dalam tahap ini
terdapat kemungkinan terjadinya perubahan-perubahan dan
kebutuhan-kebutuhan baru sesuai dengan permintaan dan
kebutuhan organisasi atau perusahaan.
24
2.2.12 Pengujian
Menurut standar ANSI/IEEE 1059, testing atau pengujian
adalah sebuah proses menganalisa suatu entitas software untuk
mendeteksi perbedaan antara kondisi yang ada dengan kondisi yang
diinginkan (defects/errors/bugs) dan mengevaluasi fitur-fitur dari
entitas software.
2.2.13 Black Box testing
Blackbox Testing adalah sebuah pengujian dimana proses
ini melihat kebenaran perangkat lunak yang diuji hanya dilihat
berdasarkan dari keluaran yang dihasilkan dari data atau kondisi
masukan yang diberikan untuk fungsi yang ada tanpa melihat
bagaimana proses untuk mendapatkan keluaran tersebut. (Julyana,
2016).
2.2.14 Pascal VOC (Visual Object Classes)
Pascal VOC (Visual Object Classes) adalah format untuk
image annotation atau pelabelan data. Menggunakan format xml
sebagai outputnya. PascalVOC terus diuji dan dikembangkan
melalui kompetisi klasifikasi objek (Everingham & Winn, 2011).
Contoh format PascalVOC ditunjukan Gambar 2.6 berikut:
25
Gambar 2.6 Format Pascal VOC
Berikut adalah keterangan dari setiap key yang terdapat pada
format Pascal VOC:
Tabel 2.3 Key Pascal VOC
Key Keterangan
<folder> Folder yang berisi gambar untuk
dataset
<path> Berisi tentang lokasi gambar
berada
<filename> Nama spesifik gambar yang ada di
dalam folder
26
<size> Terdiri dari beberapa atribut
gambar seperti Panjang, lebar dan
kedalaman
<object> Berisi detail objek yang ada dalam
sebuah gambar
<name> Nama dari sebuah objek didalam
gambar yang ingin diidentifikasi
<truncated> Menggambarkan sebuah objek
yang terlihat sebagian atau tertutup
oleh objek yang lain
<difficult> Menandai objek yang sulit untuk
diklasifikasikan
<pose> Menandai posisi sudut pandang
sebuah objek didalam gambar
<bndbox> Untuk menandai posisi objek di
dalam sebuah gambar, terdiri dari
xmin, ymin, xmax dan xmin
2.2.15 Epoch
Epoch adalah ketika seluruh dataset sudah melalui proses
training pada Neural Netwok sampai dikembalikan ke awal untuk
sekali putaran, karena satu Epoch terlalu besar untuk dimasukkan
(feeding) kedalam komputer maka dari itu perlu membaginya
kedalam satuan kecil (batches). Illustrasi Epoch ditunjukan oleh
Gambar 2.7:
27
Gambar 2.7 Epoch
Seiring bertambahnya jumlah epoch, semakin banyak pula
weight (bobot) yang berubah dalam Neural Network dan kurvanya
melengkung dari kurva yang kurang sesuai hingga selaras dengan
kurva yang overfitting.
2.2.16 Batch
Batch Size adalah jumlah sampel data yang disebarkan ke
Neural Network. Contohnya jika mempunyai 100 dataset dan batch
sizenya adalah 5 maka algoritma ini akan menggunakan 5 sampel
data pertama dari 100 data yang dimiliki (ke1, ke2, ke3, ke4, dan
ke5) lalu disebarkankan atau ditraining oleh Neural Network
sampai selesai kemudian mengambil kembali 5 sampel data kedua
dari 100 data (ke 6, ke 7, ke 8, ke 9, dan ke 10), dan begitu
seterusnya sampai 5 sampel data ke 20 (100⁄5=20).
2.2.17 Iterations
Iterations dalam neural network adalah jumlah batch yang
diperlukan untuk menyelesaikan satu epoch. Jumlah iteration sama
dengan jumlah batch pada satu kali epoch.
28
BAB III
ANALISA DAN PERANCANGAN SISTEM
3.1 Analisa Sistem
3.1.1 Analisa Kebutuhan Software
Untuk menjalankan program ada beberapa software yang
harus dipasang terlebih dahulu yaitu :
a. Python 3.7
b. Tensorflow 1.15.0
c. Microsoft Visual C++ Redistributable Package
(Windows 10 SDK)
d. Cython
e. CUDA 10
f. cuDNN
g. OpenCV
h. Pillow
i. YOLO (Darkflow)
j. labelImg
Sistem operasi yang digunakan untuk menjalankan program adalah
Windows 10.
3.1.2 Analisa Kebutuhan Hardware
Untuk menjalankan program penulis menggunakan
spesifikasi hardware komputer sebagai berikut :
a. Prosesor AMD Ryzen 5 2400G, 4 Cores 8 Threads
b. RAM 8GB
c. GPU Nvidia GTX 1660 Super 6GB
d. PSU 500 Watt
29
GPU (Graphic Processing Unit) untuk menjalankan program harus
memiliki CUDA Cores dan memiliki memori yang besar untuk
melakukan training dataset. Oleh karena itu penulis memilih
Nvidia GTX 1660 6GB yang memiliki 1408 CUDA Cores dan
memori sebesar 6GB.
3.1.3 Analisa Dataset
Pada implementasi sistem cerdas ini penulis menggunakan 4
class (jenis kendaraan) untuk mendeteksi jenis kendaraan, yaitu:
Tabel 3.1 Nama Kelas
Nama Kelas Gambar
Mobil
Bus
Truk
30
Sepeda Motor
Untuk mempersiapkan data untuk proses training penulis
menggunakan beberapa data dari internet dan data dari cctv yang
terdiri dari gambar jalan raya yang didalamnya terdapat mobil, bus,
truk, dan sepeda motor.
Gambar 3.1 Contoh dataset untuk training
3.2 Perancangan Sistem
3.2.1 Flowchart
Untuk mempermudah dalam pembuatan program penulis
menggunakan flowchart sebagai acuan alur program. Flowchart
alur program dan perhitungan ditunjukan oleh Gambar 3.2 dan
Gambar 3.3 berikut:
31
Gambar 3.2 Flowchart alur program
32
Gambar 3.3 Flowchart perhitungan hasil klasifikasi objek
33
3.2.2 Antarmuka (User Interface)
Penulis menggunakan software PAGE untuk membuat
tampilan antarmuka. Tampilan yang dibuat menggunakan PAGE
ditunjukan oleh Gambar 3.4 berikut:
Gambar 3.4 Desain antarmuka dengan software PAGE
34
BAB IV
IMPLEMENTASI SISTEM
4.1 Instalasi Software yang dibutuhkan
Untuk menjalankan program dan melakukan proses training data
dibutuhkan beberapa instalasi software sebagai berikut:
4.1.1 Python 3.7
Python untuk windows 10 dapat diunduh di website
https://python.org/downloads. Penulis menggunakan python versi
3.7 untuk menjalankan program. Halaman download pada website
python ditunjukan pada Gambar 4.1 berikut:
Gambar 4.1 Halaman Website Python
4.1.2 Tensorflow 1.15.0
Penulis menggunakan tensorflow versi 1.15.0, untuk
menginstall tensorflow penulis menggunakan package manager
dari python yaitu pip. Berikut langkah – langkah instalasi
tensorflow :
35
1. Buka Command Promt windows.
2. Ketik pip install tensorflow==1.15.0 pada Command
Promt.
3. Jika berhasil akan muncul pesan seperti Gambar 4.2 berikut:
Gambar 4.2 Instalasi tensorflow menggunakan pip
4.1.3 OpenCV
Penulis menggunakan OpenCV untuk mengolah citra,
menjalankan video dan menggambar garis untuk area perhitungan.
Berikut cara instalasi OpenCV menggunakan pip:
1. Buka Command Promt windows.
2. Ketik pip install opencv-python pada Command Promt.
3. Jika berhasil akan muncul pesan yang ditunjukan oleh
Gambar 4.3 berikut:
Gambar 4.3 Instalasi OpenCV menggunakan pip
36
4.1.4 Cython
Cython adalah C extensions untuk python. Instalasi cython
diperlukan untuk menjalankan sistem pendeteksian objek
menggunakan YOLO. Berikut cara instalasi cython menggunakan
pip:
1. Buka Command Promt windows.
2. Ketik pip install cython pada Command Promt.
3. Jika berhasil akan muncul pesan seperti Gambar 4.4 berikut:
Gambar 4.4 Instalasi cython menggunakan pip
4.1.5 Pillow
Penulis menggunakan Pillow (PIL) untuk manipulasi
gambar seperti resize dengan cepat. Berikut cara instalasi Pillow
mengunakan pip:
1. Buka Command Promt windows.
2. Ketik pip install pillow pada Command Promt.
3. Jika berhasil akan muncul pesan seperti Gambar 4.5 berikut:
Gambar 4.5 Instalasi pillow menggunakan pip
37
4.1.6 Windows 10 SDK
Instalasi sistem pendeteksian objek YOLO memerlukan
Microsoft Visual C++ Redistributable Package yang terdapat pada
windows 10 SDK. Agar instalasi lengkap penulis menggunakan
visual studio community yang dapat diunduh di
https://visualstudio.microsoft.com.
Berikut cara instalasi windows 10 SDK dari visual studio:
1. Install visual code community yang telah diunduh dari
https://visualstudio.microsoft.com.
2. Ketika pemilihan komponen untuk instalasi pilih Desktop
Development with C++ maka windows 10 SDK dan semua
komponen yang dibutuhkan akan terinstall secara otomatis.
Komponen instalasi ditunjukan pada Gambar 4.6 berikut:
Gambar 4.6 Instalasi komponen windows 10 SDK
4.1.7 CUDA Toolkit 10.0
Penulis menggunakan CUDA Toolkit 10.0 agar proses
pendeteksian objek berjalan pada GPU sehingga pendeteksian
38
objek dapat berjalan dengan cepat. CUDA Toolkit dapat diunduh
di https://developer.nvidia.com/cuda-downloads. CUDA Toolkit
hanya dapat diinstall di GPU Nvidia yang memiliki CUDA Cores.
Berikut cara instalasi CUDA Toolkit:
1. Double klik CUDA Toolkit yang telah diunduh dari
https://developer.nvidia.com/cuda-downloads.
2. Pilih Agree & Continue seperti Gambar 4.7 berikut:
Gambar 4.7 CUDA License agreement
3. Pilih Custom (Advance) untuk instalasi komponen yang
dibutuhkan kemudian klik Next. Instalasi komponen
ditunjukan oleh Gambar 4.8 berikut:
39
Gambar 4.8 CUDA Installation Option
4. Centang pada bagian Runtime dan Development, jika
driver gpu nvidia belum terinstall centang semua pada
bagian Driver components. Kemudian klik Next seperti
Gambar 4.9 berikut:
Gambar 4.9 Pemilihan komponen CUDA
40
5. Pada bagian installation location biarkan saja default
kemudian klik Next untuk menjalankan instalasi seperti
Gambar 4.10 berikut:
Gambar 4.10 CUDA Installation location
6. Setelah instalasi selesai akan muncul informasi komponen
apa saja yang telah terinstal. Jika ada beberapa komponen
yang tidak berhasil terinstal ulangi langkah instalasi dari
awal. Jika instalasi berhasil akan ditunjukan pada Gambar
4.11:
41
Gambar 4.11 Instalasi CUDA selesai
4.1.8 cuDNN
YOLO juga memerlukan cuDNN (CUDA Deep Neural
Network Library) untuk menjalankan proses pendeteksian objek
melalui GPU. cuDNN dapat diunduh di alamat
https://developer.nvidia.com/rdp/cudnn-download.
Berikut langkah-langkah instalasi cuDNN:
1. Unduh cuDNN untuk CUDA 10.0 dan windows 10 dari
https://developer.nvidia.com/rdp/cudnn-download.
2. Kemudian ekstrak berkas dan salin semua isinya ke
direktori instalasi CUDA toolkit di C:\Program
Files\NVIDIA GPU Computing Toolkit\CUDA\v10.0
seperti ditunjukan pada Gambar 4.12:
42
Gambar 4.12 Instalasi cuDNN
4.1.9 YOLO
YOLO untuk windows (menggunakan darkflow) dapat
diunduh di repositori https://github.com/thtrieu/darkflow. Langkah
– langkah untuk instalasi sebagai berikut:
1. Unduh kode sumber dari repositori
https://github.com/thtrieu/darkflow kemudian ekstrak
menjadi direktori darkflow-master.
2. Salin direktori darkflow-master ke direkstori kode sumber
program yang dibuat sebagai library tambahan.
3. Masuk ke dalam direktori darkflow-master kemudian buka
command promt.
4. Ketik python setup.py build_ext –inplace pada command
promt, kemudian akan muncul pesan seperti Gambar 4.13:
43
Gambar 4.13 Instalasi YOLO menggunakan Darkflow
4.1.10 labelImg
Penulis menggunakan labelImg untuk image annotation
atau pelabelan gambar. LabelImg dapat diunduh di repositori
github dengan alamat https://github.com/tzutalin/labelImg. Agar
dapat berjalan di windows labelImg membutuhkan Python, PyQt5
dan lxml. Langkah-langkah untuk instalasi labelImg adalah sebagai
berikut:
1. Unduh labelImg dari https://github.com/tzutalin/labelImg
2. Ekstrak berkas yang telah diunduh
3. Masuk ke direktori labelImg kemudian buka Command
Promt
4. Ketik python labelImg.py pada command promt
5. Kemudian akan muncul tampilan seperti Gambar 4.14:
44
Gambar 4.14 Antarmuka labelImg
4.2 Training Data
4.2.1 Pelabelan Gambar (Image Annotation)
Image annotation atau pelabelan gambar adalah proses
melabel setiap objek yang ada didalam sebuah gambar sesuai
dengan jenis kendaraan (class) yang sudah didefinisikan
sebelumnya yaitu mobil, truk, bus dan sepeda motor.
Agar traning data dapat berjalan optimal dan model yang
dihasilkan memiliki akurasi yang baik pelabelan gambar harus
dilakukan dengan memperhatikan objek yang tampak, sebaiknya
hanya melabel objek yang terlihat jelas atau tidak blur. Semakin
jelas objek semakin tinggi juga akurasinya.
Dalam melabel gambar juga harus memperhatikan berbagai
sudut pandang objek, semakin bermacam – macam sudut pandang
objek yang ada dalam dataset akan semakin tinggi juga akurasi
pendeteksian dan akan terhindar dari overfiting.
Software yang dipakai penulis dalam melabel gambar
adalah software labelImg. Berikut langkah – langkah untuk
melabel gambar dari dataset yang akan ditraining.
45
1. Buka labelImg dengan menjalankan perintah python
labelimg.py pada command promt di direktori labelImg.
2. Kemudian pilih menu File – Open Dir untuk memuat direktori
gambar yang akan ditraining.
3. Gambar bounding box pada setiap objek yang akan dideteksi
ditunjukan pada Gambar 4.15 berikut:
Gambar 4.15 Pelabelan gambar (Image Annotation)
4. Pilih format PascalVOC untuk menyimpan hasil label.
5. Contoh hasil pelabelan gambar dengan format Pascal VOC:
<annotation>
<folder>traffic_indonesia</folder>
<filename>0.jpg</filename>
<path>C:\PROJECT\SKRIPSI\Python\vehicle_classificatio
n\dataset\yolo-dataset\traffic_indonesia\0.jpg</path>
<source>
<database>Unknown</database>
</source>
<size>
<width>480</width>
46
<height>360</height>
<depth>3</depth>
</size>
<segmented>0</segmented>
<object>
<name>car</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>237</xmin>
<ymin>221</ymin>
<xmax>332</xmax>
<ymax>334</ymax>
</bndbox>
</object>
<object>
<name>motorcycle</name>
<pose>Unspecified</pose>
<truncated>1</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>317</xmin>
<ymin>308</ymin>
<xmax>355</xmax>
<ymax>360</ymax>
</bndbox>
</object>
<object>
<name>motorcycle</name>
<pose>Unspecified</pose>
47
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>416</xmin>
<ymin>231</ymin>
<xmax>425</xmax>
<ymax>264</ymax>
</bndbox>
</object>
<object>
<name>motorcycle</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>444</xmin>
<ymin>235</ymin>
<xmax>453</xmax>
<ymax>266</ymax>
</bndbox>
</object>
<object>
<name>motorcycle</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>437</xmin>
<ymin>226</ymin>
<xmax>446</xmax>
<ymax>251</ymax>
48
</bndbox>
</object>
<object>
<name>car</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>60</xmin>
<ymin>249</ymin>
<xmax>174</xmax>
<ymax>336</ymax>
</bndbox>
</object>
<object>
<name>truck</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>402</xmin>
<ymin>192</ymin>
<xmax>427</xmax>
<ymax>223</ymax>
</bndbox>
</object>
<object>
<name>car</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
49
<bndbox>
<xmin>369</xmin>
<ymin>208</ymin>
<xmax>390</xmax>
<ymax>228</ymax>
</bndbox>
</object>
<object>
<name>motorcycle</name>
<pose>Unspecified</pose>
<truncated>0</truncated>
<difficult>0</difficult>
<bndbox>
<xmin>333</xmin>
<ymin>221</ymin>
<xmax>344</xmax>
<ymax>244</ymax>
</bndbox>
</object>
</annotation>
4.2.2 Proses Training
Setelah semua dataset gambar diberi label langkah
selanjutnya adalah melakukan training untuk menghasilkan model
yang akan dipakai untuk pendeteksian objek. Lamanya proses
training tergantung dari seberapa besar dataset yang dibuat.
Semakin banyak jumlah gambar semakin lama juga proses
trainingnya, tetapi akurasi yang dihasilkan akan semakin baik.
Sebelum proses training perlu untuk mengkonfigurasi
proses konvolusi, yaitu metode CNN yang akan digunakan YOLO.
File untuk konfigurasi adalah file dengan ekstensi .cfg. YOLO
50
sudah menyediakan konfigurasi default. Untuk membuat
konfigurasi baru dapat menyalin konfigurasi yang disediakan
kemudian ubah sesuai dengan kebutuhan. Pada penelitian ini
penulis menggunakan konfigurasi sebagai berikut:
[convolutional]
size=1
stride=1
pad=1
filters=45
activation=linear
[region]
anchors = 1.08,1.19, 3.42,4.41, 6.63,11.38, 9.42,5.11,16.62,10.52
bias_match=1
classes=4
coords=4
num=5
softmax=1
jitter=.2
rescore=1
Konfigurasi yang perlu disesuaikan ada di bagian
[convolutional] dan [region] yaitu:
a. filters
Rumus untuk nilai filters adalah:
(5 + jumlah kelas) x 5
Penulis menggunakan 4 kelas untuk pendeteksian jadi
konfigurasinya adalah
filters = (5 + 4) x 5 = 45
b. classes
51
Penulis menggunakan 4 kelas untuk pendeteksian objek jadi
classes diisi dengan 4.
Konfigurasi diatas akan menghasilkan proses konvolusi
sebagai berikut:
Tabel 4.1 Proses Konvolusi
Layer Size stride Output
Input - - 416 x 416 x 3
Conv 1 3 x 3 1 416 x 416 x 16
Max Pool 1 2 x 2 2 208 x 208 x 16
Conv 2 3 x 3 1 208 x 208 x 32
Max Pool 2 2 x 2 2 104 x 104 x 32
Conv 3 3 x 3 1 104 x 104 x 64
Max Pool 3 2 x 2 2 52 x 52 x 64
Conv 4 3 x 3 1 52 x 52 x 128
Max Pool 4 2 x 2 2 26 x 26 x 128
Conv 5 3 x 3 1 26 x 26 x 256
Max Pool 5 2 x 2 2 13 x 13 x 256
Conv 6 3 x 3 1 13 x 13 x 512
Max Pool 6 2 x 2 1 13 x 13 x 512
Conv 7 3 x 3 1 13 x 13 x 1024
Conv 8 3 x 3 1 13 x 13 x 1024
Conv 9 1 x 1 1 13 x 13 x 45
Berdasarkan arsitektur yang digunakan YOLO berikut
proses prediksi terhadap dataset yang digunakan dengan konfigurasi
diatas:
1. Input gambar akan diubah menjadi 416 x 416 kemudian dibagi
menjadi grid sesuai konfigurasi yang ditentukan yaitu S x S
dimana S = 3 seperti Gambar 4.16 berikut:
52
Gambar 4.16 Grid 3 x 3
2. Kemudian setiap grid akan memprediksi B Bounding Box dan
C class probabilities dimana nilai B = 2 dan C = 4 (Jumlah
kelas yang digunakan). Prediksi bounding box ditunjukan pada
Gambar 4.17 dan Gambar 4.18 berikut:
Gambar 4.17 Class Probabilities
53
Gambar 4.18 Hasil Prediksi
3. Hasil prediksi Bounding Box akan menghasilkan 5 komponen
yaitu x, y, w, h dan confidence. x dan y adalah koordinat yang
ada ditengah box dan bersifat relatif terhadap ukuran gambar
yang ditunjukan dengan Gambar 4.19 berikut:
Gambar 4.19 Komponen Bounding Box
54
Untuk proses training membutuhkan pretrained weight dari
YOLO, Berikut adalah langkah – langkah untuk proses training
data:
1. Buka command promt dan ketik perintah:
python flow --model cfg/tiny-yolo-voc-4c.cfg --load
bin/yolov2-tiny-voc.weights –train –annotation
../labelImg/images --dataset ../labelImg/images --gpu 1.0 --
epoch 200
Keterangan parameter:
Tabel 4.2 Parameter Training
Parameter Keterangan
--model Lokasi model yang akan
digunakan untuk training
--train Mode untuk melakukan
training
--annotation Lokasi label gambar yang
akan digunakan untuk training
--dataset Dataset gambar yang akan
digunakan untuk training
--gpu Untuk mengalokasikan
seberapa besar proses GPU
dan CPU untuk menjalankan
training. Nilainya dari 0
sampai dengan 1
--epoch Nilai yang digunakan untuk
jumlah iterasi training yang
akan dilakukan
55
2. Berikut adalah proses training, semakin rendah nilai average
loss akan semakin bagus akurasi yang akan dihasilkan seperti
Gambar 4.20 berikut:
Gambar 4.20 Proses Training
Proses training akan menghasilkan weights yang akan digunakan untuk
proses pendeteksian objek seperti Gambar 4.21 berikut:
Gambar 4.21 Weights dari hasil proses training
56
4.3 Tampilan Antarmuka
Penulis menggunakan library tkinter dan software PAGE untuk membuat
dan mendesain antarmuka atau user interface program. Dengan bantuan
software PAGE desain antarmuka yang dibuat dapat langsung digenerate
menjadi kode python yang siap untuk implementasikan ke dalam program.
Desain antarmuka yang dibuat ditunjukan Gambar 4.22 berikut:
Gambar 4.22 Desain Antarmuka Program
Setiap bagian antarmuka memiliki fungsi masing-masing. Fungsi dari
setiap bagian adalah sebagai berikut:
Tabel 4.3 Fungsi Komponen
Komponen Fungsi
Video Source Untuk memilih berkas video yang
akan digunakan untuk pendeteksian
objek.
Counting Area Berguna untuk menggambar area yang
akan digunakan untuk menghitung
objek yang melewatinya
57
YOLO weights Untuk memilih file weights dari hasil
training yang telah dilakukan.
YOLO cfg Bagian ini untuk memilih berkas
konfigurasi (config) YOLO, berkas
konfigurasi yang dipilih tergantung
pada berkas weights yang digunakan.
Start Berfungsi untuk memulai video dan
proses klasifikasi kendaraan.
Stop Berfungsi untuk menghentikan video
dan proses klasifikasi
Kolom video (tengah) Untuk menampilkan berkas video
yang telah dipilih sebelumnya.
Counter Untuk menampilkan hasil perhitungan
setiap kendaraan yang lewat sesuai
dengan klasifikasinya.
4.4 Menjalankan Program
Untuk menjalankan program pendeteksian objek langkah – langkahnya
adalah sebagai berikut:
1. Masuk ke direktori program kemudian buka command promt.
2. Ketik python vehicle_classification.py
3. Kemudian akan muncul tampilan program.
4. Kemudian pilih sumber video yang akan digunakan untuk
klasifikasi dengan klik Browse pada Video Source.
5. Jika berhasil akan muncul tampilan seperti Gambar 4.23:
58
Gambar 4.23 Memilih sumber video untuk klasifikasi
6. Langkah selanjutnya adalah membuat area untuk menghitung objek
yang melewatinya. Caranya adalah klik Draw kemudian gambar
garis pada video sampai membentuk area yang diinginkan seperti
Gambar 4.24 dan Gambar 4.25 berikut:
59
Gambar 4.24 Garis untuk membentuk area perhitungan
Gambar 4.25 Area Perhitungan
60
7. Setelah memilih berkas video dan menggambar area untuk
perhitungan, tekan tombol Start untuk memulai video dan proses
klasifikasi. Program akan melakukan pendeteksian seperti Gambar
4.26 berikut:
Gambar 4.26 Hasil Pendeteksian
8. Bounding box yang melewati area perhitungan akan berubah
menjadi warna merah dan jumlah counter akan otomatis bertambah
sesuai dengan klasifikasi kendaraan yang dideteksi yang ditunjukan
pada Gambar 4.27 berikut:
61
Gambar 4.27 Bounding Box
4.5 Pegujian Program
Untuk menguji program yang telah dibuat penulis menggunakan
pengujian black box, berikut hasil pengujian yang dilakukan:
Tabel 4.4 Pengujian Black Box
Fungsi yang
diuji
Langkah uji Hasil yang
diharapkan
Hasil Aktual Hasil
pengujian
Memuat
berkas video
Memasukan
berkas video
yang akan
digunakan
Akan
menampilkan
berkas video
yang dipilih
Menampilkan
berkas video
yang dipilih
Berhasil
Menggambar
counting area
Klik Draw
Area
kemudian
gambar
Akan
menampilkan
counting area
berwarna
Menampilkan
counting area
hijau
transparan
Berhasil
62
pada
tampilan
video
hijau
transparan
Memuat
counting area
Klik browse
pada
Counting
Area
Akan memuat
counting area
Memuat
counting area
Berhasil
Memuat
YOLO
weights
Klik browse
pada YOLO
weights
Akan memuat
YOLO
weights
Memuat
YOLO
weights
Berhasil
Memuat
YOLO cfg
Klik browse
pada YOLO
cfg
Akan memuat
YOLO cfg
Memuat
YOLO cfg
Berhasil
Memulai
video
Klik tombol
start
Akan
memulai
video dan
proses
pendeteksian
objek
Memulai
video dan
proses
pendeteksian
objek
Berhasil
Menghentikan
video
Klik tombol
stop
Akan
menghentikan
video dan
proses
pendeteksian
objek
Menghentikan
video dan
proses
pendeteksian
objek
Berhasil
63
4.6 Hasil Pendeteksian
Penulis menggunakan beberapa data video untuk pendeteksian dan
mendapatkan hasil sebagai berikut:
Tabel 4.5 Hasil Pendeteksian
Video Durasi Ukuran Aktual Hasil Deteksi Akurasi
CCTV Jalan
Perintis
Kemerdekaan,
Banyumanik,
Semarang
1 menit 9
detik
640x480 Mobil: 18
Truk: 8
Bus: 0
Motor: 23
Mobil: 16
Truk: 8
Bus: 1
Motor: 22
Mobil: 88%
Truk: 100%
Bus: 0%
Motor: 95%
Sample
CCTV jalan
Tol
6 menit 24
detik
640x360 Mobil:159
Truk:20
Bus: 2
Motor: 3
Mobil: 132
Truk: 18
Bus: 2
Motor: 3
Mobil: 83%
Truk: 90%
Bus: 100%
Motor: 100%
Dari hasil pendeteksian ada beberapa penyebab pendeteksian menjadi
tidak tepat yaitu:
1. Objek yang tertutup atau saling tumpang tindih sehingga objek yang
tertutup tidak terhitung saat memasuki Counting Area.
2. Bentuk objek kurang jelas sehingga pendeteksi tidak dapat mengklasifikasi
objek dengan tepat.
3. Perubahan cayaha secara tiba-tiba misalnya saat objek tertutup bayangan
objek lain maka nilai convidence akan berkurang atau akan hilang sama
sekali.
64
BAB V
PENUTUP
5.1 Kesimpulan
Dari hasil penelitian dapat disimpulkan beberapa hal sebagai berikut:
1. Rentang nilai convidence yang dihasilkan yaitu 40% – 90% tergantung
dari sudut pandang dan kejelasan pada objek.
2. Nilai akurasi saat pengujian mendapatkan nilai antara 80% sampai
95%.
3. Akurasi pendeteksian dipengaruhi oleh beberapa hal yaitu:
a. Kualitas video yang digunakan untuk pendeteksian
b. Kualitas dataset yang digunakan untuk training
c. Sudut pandang pengambilan gambar
d. Variasi dataset yang dibuat, semakin banyak gambar objek dari
berbagai sudut pandang semakin besar juga akurasi yang akan
dihasilkan.
e. Counting area yang digambar mempengaruhi akurasi
perhitungan karena saat objek saling tumpeng tindih objek
yang tertutup tidak akan terhitung.
5.2 Saran
Berdasarkan penelitian yang sudah dilakukan, penulis memiliki beberapa
saran untuk meningkatkan hasil akurasi dan pengembangan program ke tahap
selanjutnya, yaitu:
1. Untuk mendapatkan akurasi dan nilai convidence yang tinggi
sebaiknya input menggunakan video yang memiliki objek yang jelas,
dengan video yang memiliki ketajaman gambar yang bagus sistem
akan dengan mudah mendeteksi setiap objek yang ada di dalam video.
65
2. Dataset yang digunakan untuk training sebaiknya dipersiapkan dengan
baik. Data atau gambar yang digunakan harus jelas dan terdiri dari
berbagai macam sudut pandang dari objek yang akan dideteksi.
3. Saat menggambar counting area atau area perhitungan sebaiknya
gambar di area yang tidak mungkin dilewati oleh objek yang saling
tumpang tindih. Agar setiap objek yang lewat dapat teridentifikasi
dengan baik.
66
DAFTAR PUSTAKA
DARMA, M. D. (2018). SISTEM MONITORING KURSI PADA RUANGAN
KELAS DENGAN METODE CONVOLUTIONAL NEURAL NETWORK
(CNN). Universitas Islam Negeri Sultan Syarif Kasim Riau.
Darmawan, R. S., & Suwastono, A. (2015). MODEL SISTEM ANTRIAN
BERBASIS ARDUINO UNO R3 DAN RASPBERRY PI
MENGGUNAKAN PYTHON. Universitas Gadjah Mada Yogyakarta.
Everingham, M., & Winn, J. (2011). The PASCAL visual object classes
challenge 2012 (VOC2012) development kit. Pattern Analysis, Statistical
Modelling and Computational Learning, Tech. Rep.
Haryati, Siska, Aji Sudarsono dan Eko Suryana. 2015. Implementasi Data Mining
untuk Memprediksi Masa Studi Mahasiswa Menggunakan Algoritma C4.5
(Studi Kasus: Universitas Dehasen Bengkulu). Jurnal Medi Infotama, Vol.
11, No. 2, 2015, ISSN: 1858-2680. Hal. 130-138.
Https://developer.nvidia.com/cudnn. Diakses pada 10 Oktober 2019.
Https://developer.nvidia.com/cuda-zone. Diakses pada 10 Oktober 2019.
Https://github.com/tzutalin/labelImg. Diakses pada 10 Oktober 2019.
Julyana, Gilang. 2016. Penyusunan Dokumen Pengujian Perangkat Lunak
Penjurian Wushu Taolu Menggunakan Metode Black-Box Testing (Studi
Kasus: Sasana Satria Wushu Taolu Bandung). Skripsi (S1), Fakultas
Teknik Unpas, http://repository.unpas.ac.id/14174/.
Limantoro, S. E., Kristian, Y., & Purwanto, D. D. (2017). Deteksi Pengendara
Sepeda Motor Menggunakan Deep Convolutional Neural Networks. In
Seminar Nasional Teknologi Informasi dan Komunikasi (pp. 79–86).
67
Limantoro, S. E., Kristian, Y., & Purwanto, D. D. (2018). Pemanfaatan Deep
Learning pada Video Dash Cam untuk Deteksi Pengendara Sepeda Motor.
Jurnal Nasional Teknik Elektro Dan Teknologi Informasi, 7(2), 167–173.
Ma’ali, A. M., & Hendriyawan, A. (2019). Rancang Bangun Sistem Pengendali
Lampu Lalu Lintas Berdasarkan Pengenalan Citra Digital Kendaraan
Menggunakan Metode Faster R-Cnn. University of Technology Yogyakarta.
Pahlevy, R. T. (2010). Rancang Bangun Sistem Pendukung Keputusan
Menentukan Penerima Beasiswa Dengan Menggunakan Metode Simple
Additive Weighting (SAW). Skripsi Program Studi Tehnik Informatika.
Pratikno, A. (2017). Implementasi Artificial Intelligence dalam Memetakan
Karakteristik, Kompetensi, dan Perkembangan Psikologi Siswa Sekolah
Dasar Melalui Platform Offline. Universitas Negeri Yogyakarta.
Redmon, J., Divvala, S., Girshick, R., & Farhadi, A. (2016). You Only Look
Once: Unified, Real-Time Object Detection. In The IEEE Conference on
Computer Vision and Pattern Recognition (CVPR).
Redmon, J., & Farhadi, A. (2016). YOLO9000: Better, Faster, Stronger. ArXiv
Preprint ArXiv:1612.08242.
Salawazo, V. M. P., Gea, D. P. J., Gea, R. F., & Azmi, F. (2019).
IMPLEMENTASI METODE CONVOLUTIONAL NEURAL NETWORK
(CNN) PADA PENEGANALAN OBJEK VIDEO CCTV. Jurnal Mantik
Penusa, 3(1.1).
Shianto, K. A., Gunadi, K., & Setyati, E. (2019). Deteksi Jenis Mobil
Menggunakan Metode YOLO Dan Faster R-CNN. Jurnal Infra, 7(1), 157–
163.
68
Susanto, K. N., Gunadi, K., & Setyati, E. (2019). Pengenalan Karakter pada Plat
Nomor Indonesia dengan Tilt Correction dan Metode Faster R-CNN.
Jurnal Infra, 7(1), 1–7.
Tobi, M. D. (2015). Rancang Bangun Purwarupa Sistem Pendeteksi Kendaraan
Menggunakan Pustaka Opencv. In Electro Luceat (Vol. 1).
https://doi.org/10.32531/jelekn.v1i1.3
Wahyudi, D. A., & Kartowisastro, I. H. (2011). Menghitung Kecepatan
Menggunakan Computer Vision. Universitas Binus.
70
71
72
73
74
75
76
77
78
79