Anda di halaman 1dari 12

18

BAB III
PERANCANGAN DAN REALISASI

Dalam bab ini membahas tentang perancangan dan realisasi sistem


yaitu meliputi rancangan pembuatan program dan juga meliputi realisasi
sistem dengan merealisasikan rancangan yang telah dibuat.
3.1 Waktu dan Tempat Penelitian
Perancangan dan penelitian ini dilakukan pada Februari sampai
Juli 2019. Perancangan dan penelitian dilakukan di Gerbang Tol
Srondol, Jl. Tol Tembalang-Banyumanik, Pedalangan Kec.
Banyumanik Semarang
3.2 Alat dan Bahan Penelitian
Spesifikasi alat dan bahan yang digunakan dalam perancangan dan
penelitian adalah sebagai berikut :
 GPU : Nvidia GeForce GTX1050 4GB GDDR5
Nvidia Geforce 930MX
 CPU : Intel® Core™ i5-8300H Processor 2.8GHz
Intel Core i3-5005U 2.0GHz
 RAM : 8GB DDR4
4GB DDR3
 Windows : Windows 10 Home
Windows 10 Pro
 Webcam : HD
Selanjutnya adalah beberapa software dan library yang
digunakan pada penelitian ini adalah :
 Python 3.7.3
Sebuah aplikasi (Software) Bahasa pemrograman yang
digunakan untuk menjalankan script perintah.
 Numpy
Pustaka python untuk melakukan operasi matriks.
 Tensorflow 1.13.1

18
19

Pustaka python untuk melakukan deep learning.


 LabelImg
Pustaka python yang digunakan untuk melakukan labeling pada
gambar.
3.3 Deskripsi Sistem
Perancangan ini dilakukan untuk mengimplementasikan Deep
Learning untuk klasifikasi golongan kendaraan pada gerbang tol dengan
menggunakan algoritma Convolutional Neural Network. Hal ini bertujuan
untuk meningkatkan efisiensi pendeteksi golongan kendaraan hanya
dengan menggunakan kamera dan PC/Laptop sebagai pemrosesan dan
pengoperasian program.
Pada pengambilan dan pengumpulan data menggunakan kamera pada
smartphone dengan resolusi 13 megapixel. Pengolahan data ini melakukan
proses training (Machine Learning) sehingga membutuhkan hardware
seperti laptop/computer dengan high quality untuk mendapatkan suatu
hasil yang dapat memprediksi objek dengan baik. Dalam sistem ini
menggunakan CPU untuk melatih model dimana data relatif kecil. Output
dalam system ini berupa citra/gambar golongan kendaraan yang diambil
dengan menggunakan kamera.
Prinsip kerja secara umum dapat dijelaskan sebagai berikut. Alat ini
akan bekerja apabila kendaraan melintasi gerbang, dimana pada saat
kendaraan melintasi gerbang maka kendaraan akan mengurangi
kecepatannya sehingga kamera akan memproses dan mendeteksi golongan
kendaraan tersebut dari penempatan sudut kamera yang tepat. Desain
sistem berikut ini dapat dilihat pada Gambar 3.1.
20

Gambar 3.1 Desain Sistem

3.4 Diagram Blok Sistem


Blok diagram menggambarkan perancangan dari keseluruhan system,
seperti yang terlihat pada Gambar 3.2 Rancangan system ini menggunakan
kamera yang digunakan untuk menangkap gambar golongan kendaraan
yang melewati gerbang tol. Data gambar golongan kendaraan akan
diproses oleh CPU yang dimana berfungsi untuk memproses data dimana
pada CPU yang baik dengan banyak core dapat meningkatkan kinerja
secara signifikan. Dalam CPU ini terdapat inti yang dapat melakukan
intruksi (arsitektur) yang berbeda dan memuat mini-batch untuk
menyebarkan sejumlah dataset ke neural network. Penggunaan PC/Laptop
disini untuk mengenali dan mengklasifikasikan golongan kendaraan
menggunakan Convolutional Neural Network melalui kamera. Diagram
blok sistem berikut ini dapat dilihat pada Gambar 3.2.

Gambar 3.2 Diagram Blok Sistem


21

3.5 Cara Kerja Sistem


Sistem dalam penelitian ini dimulai dari pengumpulan data.
Pengambilan data menggunakan kamera smartphone kemudian
dikumpulkan dalam folder Images yang didalamnya terdapat folder
terpisah yaitu train dan test dengan perbandingan 80:20. Kemudian
melakukan pelabelan gambar yang merupakan tahap awal dimana
dataset input diberikan label atau tanda dengan tujuan untuk
menyimpan informasi gambar yang selanjutnya pelabelan dilakukan
secara manual terhadap 3.320 dataset golongan mobil menggunakan
aplikasi labelimg yang menghasilkan file berupa XML dengan format
PASCAL VOC.
Setelah melakukan pelabelan kemudian melakukan konversi dari
XML ke CSV. Selanjutnya adalah membuat konfigurasi labelmap untuk
mendefinisikan golongan1, golongan 2, golongan 3, golongan 4, dan
golongan 5. Ketika sudah dikonversi menjadi file CSV kemudian
konversi ke TFRecord yang digunakan untuk feeding data pada proses
training.
Setelah melakukan konversi file kemudian akan melakukan
konfigurasi Object Detection Training Pipeline yaitu melakukan
konfigurasi untuk proses pelatihan dimana mengatur beberapa
parameter dan lokasi penyimpanannya. API deteksi objek Tensorflow
menggunakan protobuf untuk mengkonfigurasi proses pelatihan dan
evaluasi.
Setelah mendapat data dalam bentuk TFRecord, kemudian
memasukan data ke dalam arsitektur neural network untuk dilakukan
proses pelatihan (training). Pada tahap pelatihan ini adalah tahap utama
dimana Neural Network dilatih mempelajari pola yang menghasilkan
suatu deteksi objek dengan tingkat akurasi yang tinggi. Pada saat proses
training ini maka akan menghasilkan checkpoint otomatis oleh
Tensorflow dalam bentuk graph tensor untuk menyimpan informasi
proses training. Ketika proses training selesai, kemudian mengekspor
22

graph tensor sehingga menjadi model yang akan siap dipakai guna
untuk mendeteksi objek. Pendeteksian objek akan menghasilkan
gambar yang dilakukan pada proses testing yang diambil melalui
kamera dan ditampilkan pada PC/Laptop. Diagram alir (flowchart) bias
dilihat pada Gambar 3.3.

Gambar 3.3 Flowchart Sistem


23

3.6 Pemrograman
Program ini dimulai dari pengumpulan data yang diambil dengan
kamera smartphone yang kemudian dikumpulkan dalam folder images
yang didalamnya sudah dipisahkan pada folder train dan test. Pelabelan
gambar menggunakan aplikasi labelimg. Output pelabelan berupa file
XML (Xtensible Markup Language) dan dalam format PASCAL VOC.
Proses pelabelan klasifikasi kendaraan dapat dilihat pada Gambar 3.4,
Gambar 3.5, Gambar 3.6, Gambar 3.7, dan Gambar 3.8.

Gambar 3.4 Proses pelabelan golongan 1

Gambar 3.5 Proses pelabelan golongan 2

Gambar 3.6 Proses pelabelan golongan 3


24

Gambar 3.7 Proses pelabelan golongan 4

Gambar 3.8 Proses pelabelan golongan 5

Setelah dilakukan pelabelan lalu konversi dari XML ke


CSV(Comma Sepparated Value) untuk mengkonversi dataset ke
TFRecord. Kode konversi XML to CSV dapat dilihat pada Gambar 3.9.

Gambar 3.9 Kode konversi XML ke CSV


25

Pada proses konversi yang menggunakan python code dengan


bantuan package os, package glob, dan package pandas akan
menghasilkan konversi ke csv yang dibuat dengan 8 variabel yaitu
'filename', 'width', 'height', 'class', 'xmin', 'ymin',
'xmax', 'ymax'. Pada width dan height digunakan untuk menandai

sebuah objek sehingga untuk pelabelannya sesuai dengan objek. Pada


kolom class adalah klasifikasi objeknya. Pada kolom xmin dan ymin adalah
nilai awal dari matriks, dan pada kolom xmax dan ymax adalah nilai akhir
dari matriks. Tampilan data hasil konversi dari xml ke csv bisa dilihat
pada Gambar 3.10.

Gambar 3.10 Hasil konversi XML ke CSV

Setelah program ini selesai keseluruhan, dilakukan pengujian


program untuk mengetahui apakah sudah berfungsi dengan baik sesuai
dengan sistem yang diinginkan. Pengujian program dimulai ketika
memasukan perintah pada command prompt untuk menjalankan
program. Untuk mejalankan kode program yang sudah dibuat kemudian
konversi xml to csv terlebih dahulu.
26

python xml_to_csv.py
Setelah proses konversi XML ke CSV kemudian konversi ke TFRecord
yang digunakan untuk feeding data pada proses training, pada gambar
3.11 dibawah ini merupakan kode pembuatan TFRecord :

Gambar 3.11 Kode pembuatan TFRecord

Setelah konversi ke csv selanjutnya adalah menjalankan code perintah


untuk membuat TFRecord data training dan testing sebagai berikut.
Python generate_tfrecord.py--type=train --
csv_input=data/train_labels.csv --
output_path=data/train.record
// dan
python generate_tfrecord.py --type=test --
csv_input=data/test_labels.csv --
output_path=data/test.record

Selanjutnya adalah mendefinisikan labelmap disimpan dengan format


“.pbtxt”, pada labelmap ini merupakan definisi numerik dari kategori
objek. Jika objek yang dideteksi ada lebih dari satu objek maka buatlah
item sebanyak yang akan di deteksi dan id maupun name harus
menyesuaikan objek yang sudah diberi label sebelumnya. Kode
konfigurasi Labelmap bisa dilihat pada Gambar 3.12.
27

Gambar 3.12 Kode konfigurasi Labelmap

Langkah selanjutnya adalah mengatur beberapa parameter yang ada pada


konfigurasi object detection training pipeline. API Object detection
Tensorflow menggunakan file protobuf utuk konfigurasi proses pelatihan
dan evaluasi. File konfigurasi dibagi menjadi 5 bagian yaitu :
1. Model: mendefinisikan jenis model apa yang akan dilatih (yaitu meta-
architecture, feature extractor)

2. Training_config: menentukan parameter apa yang harus digunakan


untuk melatih parameter model (misalnya parameter SGD, input
preprocessing dan nilai inisialisasi extractor fitur).

3. Eval_config: menentukan metrik pengukuran apa yang akan


dilaporkan untuk evaluasi.

4. Train_input_config: mendefinisikan dataset apa yang harus dilatih


modelnya.

5. Eval_input_config: mendefinisikan dataset apa yang akan dievaluasi


model. Biasanya ini harus berbeda dari dataset masukan pada training.
28

Kode konfigurasi pipeline dapat dilihat pada gambar 3.13.

Gambar 3.13 Kode Konfigurasi Pipeline

Konfigurasi pipeline yang dipakai adalah SSD mobilenet. Berikut ini


adalah parameter yang harus diatur :
Tabel 3.1 Parameter konfigurasi object detection pipeline

Parameter Nilai Keterangan


num_classes 5 Banyak kelas
batch_size 32 Jumlah data yang diproses pada
setiap langkah
learning_rate 0,004 Tingkat pembelajaran
decay_steps 800720 Jadwal peluruhan langkah, yaitu
menurunkan tingkat pembelajaran
dengan faktor setiap beberapa waktu
num_steps 100.000 banyaknya langkah pada proses
training
kernel_size 3 Jumlah lapisan untuk menghitung
dan mendeteksi suatu pola yang
digunakan pada saat proses
convolution.
29

Tahap selanjutnya adalah tahap pelatihan Neural Network, pada tahap ini
Neural Network dilatih untuk mempelajari pola yang menghasilkan suatu
pengenalan deteksi objek dengan akurasi yang tinggi. Kode program pada
proses Training bisa dilihat pada Gambar 3.14.

Gambar 3.14 Kode pada proses training

Setelah kode pada proses training dan disimpan pada file object detection
kemudian proses memanggil training pada command prompt.
python train.py \ --logtostderr \ --
train_dir=training \ --
pipeline_config_path=training/sign_label_v1.config
Jika proses training selesai, maka selanjutnya adalah mengekspor
inference graph dan akan menjadikan model yang akan siap untuk dipakai.
Kemudian setelah diekspor akan tampak visualisasi rancangan output yang
menandakan sebuah objek yang disertai label dan tingkat akurasi dari
pendeteksian tersebut.

Anda mungkin juga menyukai