3.4 Perancangan Sistem
3.4.2 Perancangan Perangkat Keras
Sistem pengenalan objek kera terdiri dari tiga komponen utama yang bertanggung jawab dalam menjalankan fungsi sistem, yaitu bagian input, proses, dan output. Setiap bagian ini memiliki satu komponen perangkat keras sebagai penyusunnya. Bagian input sistem menggunakan USB webcam sebagai komponen untuk menangkap citra objek kera dan manusia. Citra kera atau manusia tersebut akan diproses oleh raspberry pi sebagai unit pemrosesan dalam melakukan deteksi pada subjek. Hasil dari proses tersebut berupa data variabel klasifikasi dari pengenalan citra. Output tersebut akan dikirimkan ke database NAS hingga dapat diakses oleh Aplikasi PRANNET sebagai media monitoring.
Sistem perangkat keras memiliki tiga komponen utama dalam pembuatan sistem. Komponen Hardware yang digunakan antara lain:
1. Raspberry Pi 4B
Dalam perancangan alat ini digunakan Raspberry Pi 4B dengan spesifikasi sebagai berikut[15]:
Tabel 3. 2 Spesifikasi Raspberry 4B
No Spesifikasi Keterangan
1 Prosesor Broadcom BCM2837B0, Cortex-A53 64-bit SoC dengan clock speed 1.2GHz
2 RAM 1GB LPDDR2 SDRAM
3 GPU VideoCore IV 3D
4 Penyimpanan MicroSD card slot untuk sistem operasi dan penyimpanan data
5 Konektivitas
1. 4x USB 2.0 ports
2. 1x Ethernet port (RJ-45) 3. 1x HDMI port
4. 1x 3.5mm audio jack
5. 1x Camera Serial Interface (CSI) untuk kamera Raspberry Pi
6. 1x Display Serial Interface (DSI) untuk layar Raspberry Pi
7. 1x Micro-USB port untuk daya dan data
8. Konektivitas nirkabel melalui Wi-Fi 802.11n dan Bluetooth 4.2
6 GPIO 40-pin GPIO header untuk menghubungkan komponen dan akses ke fitur I/O
7 Sistem Operasi
Mendukung berbagai sistem operasi, termasuk Raspbian (Linux), Ubuntu, dan Windows 10 IoT Core
8 Daya Membutuhkan daya 5V melalui Micro-USB port
9 Dimensi 85mm x 56mm x 17mm
2. Webcam
Webcam atau web camera adalah suatu perangkat kamera digital yang nantinya dihubungkan dengan Raspberry Pi melalui port USB. Sama halnya dengan kamera- kamera yang lainnya, webcam berfungsi untuk mengambil gambar yang ada didepannya. Dibawah ini merupakan spesifikasi Webcam[20], [21], [39].
Tabel 3. 3 Spesifikasi Webcam
No Spesifikasi
1 1080 HD/ Camera 2MP / 30 FPS
2 Wide Angle/Dual Microphone/Plug and Play 3 Rotate 360°
4 Support Various Video Conferencing Software
3. Speaker Bluetooth Acome A16
Keluaran menjadi penting apalagi harus mumpuni untuk memutar suara yang keras dengan tujuan mendeteksi kera liar[22], hal ini dimaksud:
Tabel 3. 4 Spesifikasi Speaker Acome A16
No Spesifikasi 1. Versi Bluetooth sudah v5.2 2. Stereo Speaker.
3. Output 10W.
4. TWS Connect.
5. Daya tahan baterai hingga 6 jam.
6. Support TF Card dan AUX in.
25
Untuk design perancangan hardware sistem deteksi kera dapat terlihat pada ilustrasi Gambar 3.4 dibawah
Pada Gambar 3.4 perancangan diatas terdapat kamera webcam yang digunakan dapat langsung dihubungkan ke port USB pada raspberry. Daya yang digunakan dalam sistem terdapat dari power supply sehingga alat dapat memiliki sumber tegangan ataupun dengan charger yang ada yang dihubungkan pada port USB.
Keterangan pin dan port yang digunakan dalam perancangan model dapat dilihat pada Tabel 3.5 dibawah
Tabel 3. 5 Rancangan connector antar komponen
Rancangan komponen Raspberry
Speaker Audio jack/AUX Port Audio Jack
Webcam Kamera Port USB Port USB raspberry
Power Supply Adaptor 5v 3a Port Type C raspberry
Gambar 3. 4 Rangkaian komponen penyusun sistem
26
BAB IV
HASIL DAN PEMBAHASAN
4.1 Implementasi Sistem
Implementasi sistem merupakan tahapan yang dilakukan setelah perancangan sistem, tujuan dilakukan pengimplementasian sistem adalah untuk merealisasikan perancangan menjadi sebuah alat. Pada penelitian ini, implementasi sistem terdiri dari implementasi perangkat keras (hardware), implementasi perangkat lunak (software), implementasi internet of things, dan implementasi pada aplikasi. hal ini ditujukan untuk membuktikan bagaimana suatu kualitas dan kelayakan dari sistem yang telah dibuat.
4.1.1 Implementasi Perangkat Lunak (Software)
Proses awal dalam melakukan training model dari deteksi objek kera dan manusia yaitu menggunakan bantuan google collab dan google drive dalam menjalankan library SSD (Single Shot Multibox Detection). Proses pertama yaitu memberikan dataset sebuah label array agar proses training dapat membedakan antara kelas manusia dan kera. Dataset dimasukkan kedalam google drive dimana google drive akan dihubungkan ke google collab untuk menjalankan proses train.
Proses awal yaitu pemberian Label pada dataset yang akan dilakukan. Gambar dibawah yang ada pada set diberikan nama kelas yaitu manusia dan kera sehingga setiap image memiliki label.
Gambar 4. 1 Pemberian label Manusia
27
Pada implementasi perangkat lunak ini terdapat 2 langkah dan juga 2 perangkat lunak yang digunakan. Anaconda (Python3) label image digunakan untuk melakukan pelabelan gambar untuk 2 kelas objek. Dan juga digunakan Google Collab untuk melakukan pelatihan dataset yang telah dibuat dari Anaconda label image sebelumnya. Setelah model gambar diberi label, maka python label image akan menghasilkan file dengan format .xml yang berisikan keterangan tiap label seperti Manusia dan Kera, serta keterangan bounding box seperti xmin, ymin, xmax, dan ymax. Pada Google collab tersedia fitur open share virtual processor yang dapat digunakan setiap user untuk mengembangkan sebuah sistem. Pada tahap ini masuk ke dalam google collab dan ubah settingan processor yang dipakai dari TPU menjadi GPU agar dapat dimaksimalkan saat proses training. Terlihat pada Gambar dibawah.
Gambar 4. 3 Setelan Notebook
Setelah itu install TensorFlow Object Detection API di instance Google Colab
Gambar 4. 2 Pemberian label kera
ini. Ini memerlukan kloning repositori model TensorFlow dan menjalankan beberapa perintah instalasi. Versi terbaru TensorFlow yang telah diverifikasi untuk digunakan oleh Colab ini adalah TF v2.8.0.
Tabel 4. 1 Install Tensorflow v2.8.0 Kode Program
!pip install /content/models/research/
# Need to downgrade to TF v2.8.0 due to Colab compatibility bug with TF v2.10 (as of 10/03/22)
!pip install tensorflow==2.8.0
# Install the Object Detection API
!pip install /content/models/research/
Jalankan blok kode berikut untuk memasang dataset yang sudah diupload pada Google Drive ke Google Colab.
Tabel 4. 2 Upload Dataset
Langkah berikutnya membuat labelmap untuk detektor dan mengonversi gambar ke dalam format file data yang disebut TFRecords, yang digunakan oleh TensorFlow untuk pelatihan. Untuk membuat labelmap menggunakan skrip Python agar dapat secara otomatis mengonversi data ke dalam format TFRecord. Sebelum menjalankannya, kita perlu mendefinisikan labelmap untuk kelas kita. Bagian kode di bawah ini akan membuat file "labelmap.txt" yang berisi daftar kelas.
Tabel 4. 3 Membuat Labelmap Kode Program from google.colab import drive
drive.mount('/content/gdrive')
!cp /content/gdrive/MyDrive/images/images.zip /content
Kode Program
%%bash
cat <<EOF >> /content/labelmap.txt Manusia
Kera EOF
29
Selanjutnya memodifikasi file konfigurasi dengan beberapa parameter pelatihan tingkat tinggi. Variabel berikut digunakan untuk mengontrol langkah- langkah pelatihan:
num_steps: Jumlah total langkah yang digunakan untuk melatih model.
Jumlah total dapat menggunakan lebih banyak langkah jika masih terdapat metrik kerugian masih menurun pada saat pelatihan selesai. Semakin banyak langkah, semakin lama pelatihan akan berlangsung.
batch_size: Jumlah gambar yang akan digunakan per langkah latihan.
Ukuran batch yang lebih besar memungkinkan model dilatih dalam langkah yang lebih sedikit, tetapi ukurannya dibatasi oleh memori GPU yang tersedia untuk pelatihan.
Tabel 4. 4 Set Training Parameters
Num_steps dan batch_size pada gambar 4.4 adalah parameter yang akan dipakai untuk model pelatihan. Num_steps adalah jumlah total step atau langkah yang akan berjalan selama proses pelatihan berlangsung. Sedangkan batch_size adalah jumlah gambar yang digunakan untuk menjalankan setiap step atau langkah pada pelatihan. Pelatihan model dilakukan menggunakan skrip "model_main_tf2.py" dari TF Object Detection API. Pelatihan akan memakan waktu antara 2 hingga 6 jam, tergantung pada model, ukuran batch, dan jumlah langkah pelatihan.
Tabel 4. 5 Run Training Kode Program num_steps = 20000
if chosen_model == 'efficientdet-d0':
batch_size = 4 else:
batch_size = 4
Kode Program
!python
/content/models/research/object_detection/model_main_tf2.py \ --pipeline_config_path={pipeline_file} \
--model_dir={model_dir} \ --alsologtostderr \
File custom_model_lite.zip yang berisi model akan diunduh ke folder unduhan yang nantinya akan digunakan pada tahap pengujian secara realtime menggunakan Raspberry pi.
Tabel 4. 6 Hasil Training
Proses implementasi perancangan proses real time pada Raspberry pi. Dimana Terdapat beberapa bagian alur source code yang diproses. Proses pertama yaitu dengan melakukan inisiasilasi library yand dibutuhkan . Source code dapat dilihat pada Tabel 4.7 dibawah.
Tabel 4. 7 Library Raspberry Pi Kode Program
import os import cv2
import numpy as np import time
import importlib.util import pygame
import threading
from pydrive.auth import GoogleAuth from pydrive.drive import GoogleDrive
fromoauth2client.service_accountimport ServiceAccountCredentials
Pada Tabel 4.7 diatas terlihat beberapa Library yang di inisialisasi oleh program yang dijalankan pada python3. Library opencv2 digunakan sebagai pengolahan proses arsitektur CNN yang digunakan, lalu ada library untuk video stream dan library untuk port kabel AUX dari raspberry yang dihubungkan ke Bluetooth speaker. Setelah itu, pada Tabel 4.8 terdapat pembacaan yang digunakan untuk memberikan inisiasi output raspberry pi berupa suara dengan format .wav dan import time untuk durasi saat memutar suara pada Bluetooth speaker.
--num_train_steps={num_steps} \ --sample_1_of_n_eval_examples=1
Kode Program from google.colab import files
files.download('/content/custom_model_lite.zip')
31
Tabel 4. 8 Inisiasi Output suara Kode Program
# Inisialisasi pygame untuk pemutaran suara pygame.mixer.init()
# Load file audio ke objek Sound
audio_path = "/home/poscolar/Unduhan/DOG.wav"
# Ganti dengan jalur lengkap file audio Anda Defget_or_create_folder(drive,folder_name, parent_folder_id=None):
query = f"'{parent_folder_id}' in parents and trashed=false and mimeType = 'application/vnd.google-apps.folder' and title='{folder_name}'"
existing_folders = drive.ListFile({'q': query}).GetList() if existing_folders:
return existing_folders[0]['id']
else:
folder_metadata = {
'title': folder_name,
'mimeType': 'application/vnd.google-apps.folder', 'parents': [{'id': parent_folder_id}] if parent_folder_id else []
}
# Play audio saat objek terdeteksi
pygame.mixer.music.load(audio_path) pygame.mixer.music.play()
# Tunggu selama 5 detik (atau durasi yang Anda inginkan) time.sleep(15)
# Hentikan pemutaran audio
pygame.mixer.music.stop()
Setelah itu ada pembacaan yang mengintruksikan program untuk mengirim setiap kali terdapat hasil objek terdeteksi secara otomatis ke Google Drive melalui server Google API, serta menginisiasi pada folder file pada raspberry agar
terhubung dengan server Google API menggunakan Network Attached Storage (NAS) seperti pada tabel 4.9 dibawah.
Tabel 4. 9 Sinkronisasi ke Google Drive Kode Program
NAS_DIR = "/home/poscolar/Desktop/bogeyyy/Capture"
GOOGLE_DRIVE_DIR_ID = "1b0TmJ14_EvTJE1Rib1UKqRfQ6q0EkhSe"
SERVICE_ACCOUNT_JSON = "/home/poscolar/Desktop/bogeyyy/prannet- project-a812f2012a71.json"
def is_file_exists_in_drive(drive, parent_folder_id, file_name):
query = f"'{parent_folder_id}' in parents and trashed=false and title='{file_name}'"
existing_files = drive.ListFile({'q': query}).GetList() return len(existing_files) > 0
def upload_file_to_drive(file_path, folder_id):
gauth = GoogleAuth()
scope = ['https://www.googleapis.com/auth/drive']
creds =
ServiceAccountCredentials.from_json_keyfile_name(SERVICE_ACCOUNT_
JSON, scope)
gauth.credentials = creds drive = GoogleDrive(gauth)
file_name = os.path.basename(file_path)
# Check if the file with the same name already exists in the folder
if is_file_exists_in_drive(drive, folder_id, file_name):
print(f"File '{file_name}' already exists in Google Drive.
Skipping upload.") return
file_metadata = {"title": file_name, "parents": [{"id":
folder_id}]}
file = drive.CreateFile(file_metadata) file.SetContentFile(file_path)
file.Upload()
33
# Lakukan sinkronisasi ke Google Drive setelah mendeteksi objek
upload_file_to_drive(image_path, folder_id)
# Thread untuk deteksi objek dan sinkronisasi Google Drive thread_obj_detection_sync = threading.Thread()
thread_obj_detection_sync.start()
Tahapan berikut ini merupakan bagian terpenting pada program yang di setting agar dapat mendeteksi objek sesuai dengan kelas yang sudah di training sebelumnya. Tabel 4.10 dibawah ini saling terkait dengan tabel script selanjutnya agar dapat menjadi sebuah script utuh.
Tabel 4. 10 Deteksi Objek Kode Program
# Tangkap gambar jika objek adalah "kera" atau "manusia" dan waktu yang cukup telah berlalu sejak gambar terakhir diambil
if object_name in ["kera"] and (time.time()-last_capture_time) >= capture_interval:
# Buat path dan nama file untuk gambar yang akan disimpan
image_directory = "/home/poscolar/Desktop/bogeyyy/Capture"
# Ubah direktori penyimpanan sesuai keinginan Anda if not os.path.exists(image_directory):
os.makedirs(image_directory) image_path = os.path.join
(image_directory, f"Temen rafi_{image_count}.jpg")
# Simpan gambar
cv2.imwrite(image_path, frame)
# Tambahkan nomor urutan gambar dan catat waktu gambar diambil image_count += 1
last_capture_time = time.time()
4.1.2 Implementasi Perangkat Keras (Hardware)
Perangkat keras pada bagian utama alat adalah panel box yang merupakan tempat meletakan komponen-komponen elektronika.
Panel box mikrokontroler merupakan tempat dipasangnya sistem pada alat yang meliputi sistem tenaga listrik, mikrokontroler Raspberry Pi 4B sebagai mikrokontroler sistem instrumentasi dan kendali serta terdapat speaker Bluetooth sebagai hasil keluaran berupa suara. Pada sistem instrumentasi, terdapat beberapa komponen yang saling terintegrasi satu sama lain. Komponen-komponen tersebut adalah panel surya, solar charge control (SCC), webcam, dan Baterai.
Gambar 4. 4 Panel Box
Gambar 4. 5 Pemasangan Webcam
35
Rangka alat dibuat menggunakan besi galvanis tebal berdasarkan desain pada E3. Untuk kebutuhan daya alat digunakan Panel surya sebagai energi mandiri serta didalamnya terdapat solar charge controller yang akan secara terus mengubah energi pada panel surya untuk diteruskan ke baterai yang menampung kapasitas daya yang dibutuhkan alat saat beroperasi dilapangan. Berikut adalah implementasi rangka alat:
4.2 Hasil Pengujian Training Model
Tabel 4. 11 Data pelatihan gambar tiap 1000 Steps
Total Steps
Loss
Learnin g rate
Time Classificati (s)
on
Localizati on
Regularizati
on Total
1000 0,3486 0,4400 0,1567 0,9455 0,0800 0,097 2000 0,2909 0,1284 0,1584 0,5778 0,0799 0,097 3000 0,2449 0,1392 0,1590 0,5432 0,0796 0,114
Gambar 4. 6 Tampak Alat Kesluruhan
4000 0,3359 0,3780 0,1595 0,8735 0,0792 0,121 5000 0,1634 0,1290 0,1596 0,4521 0,0786 0,133 6000 0,4741 0,4116 0,1600 1,0459 0,0779 0,125 7000 0,2431 0,2182 0,1603 0,6217 0,0770 0,127 8000 0,1615 0,1456 0,1591 0,4663 0,0760 0,117 9000 0,2154 0,1316 0,1583 0,5054 0,0748 0,104 10000 0,1124 0,0839 0,1579 0,3543 0,0735 0,103 11000 0,2287 0,2166 0,1566 0,6020 0,0720 0,120 12000 0,1055 0,0686 0,1561 0,3303 0,0704 0,125 13000 0,2039 0,1578 0,1547 0,5435 0,0687 0,109 14000 0,2044 0,1362 0,1528 0,4935 0,0668 0,100 15000 0,0850 0,0880 0,1508 0,3239 0,0649 0,113 16000 0,1397 0,1268 0,1485 0,4152 0,0628 0,119 17000 0,0933 0,0489 0,1475 0,2898 0,0607 0,129 18000 0,0825 0,0426 0,1453 0,2705 0,0585 0,132 19000 0,1130 0,0627 0,1429 0,3186 0,0561 0,107 20000 0,0814 0,0364 0,1402 0,2580 0,0538 0,119
Classification loss adalah metrik yang digunakan untuk mengevaluasi kemampuan model dalam mengklasifikasikan objek dengan benar. Loss ini mengukur perbedaan antara label kelas yang sebenarnya dan prediksi kelas yang dihasilkan oleh model. Regularization loss digunakan sebagai metode untuk mengurangi overfitting pada model. Overfitting terjadi ketika model terlalu cocok dengan data latihan, tetapi tidak mampu menggeneralisasi dengan baik pada data baru. Tujuan dari Regularization loss adalah agar nantinya dapat model dapat mendeteksi gambar baru dan tidak terpaku pada model Latihan saja. Lalu total loss adalah jumlah loss dari keseluruhan dalam pelatihan model ini. Dimana tujuan utama dari pelatihan model ini adalah meminimalkan total loss agar nantinya pendeteksiannya lebih akurat. Dan Learning rate (tingkat pembelajaran) adalah sebuah hiperparameter yang digunakan untuk mengatur seberapa besar perubahan parameter model yang terjadi selama proses pelatihan.
37
Gambar 4. 7 Grafik Classification loss per1000 step
Gambar 4. 8 Diagram Classification Loss
Gambar 4.8 merupakan grafik classification loss keseluruhan hasil dari pelatihan model pada google colab. Apabila dilihat dari grafik yang ditunjukan pada gambar 4.7, garis grafik classification loss per 1000 step. Apabila dilihat dari grafik, angkanya sudah dibawah 0,5 dan mendekati angka nol. Rata-rata nilai classification loss ini adalah 0.1283.
0 0,1 0,2 0,3 0,4 0,5
1000 2000 3000 4000 5000 6000 7000 8000 9000 10000 11000 12000 13000 14000 15000 16000 17000 18000 19000 20000
Classification Loss
Classification Loss
Gambar 4. 9 Grafik Classification loss per1000 step
Gambar 4. 10 Grafik Localization Loss
Pada gambar 4.9 terlihat nilai localization loss mulai dari step ke 13 ribu sudah mulai melandai, hanya di step ke 16 ribu saja sedikit melonjak tinggi, Dimana nilai rata-rata mulai dari langkah ke 13 ribu sampai 20 ribu sebesar 0.0836 dan rata-rata nilai keseluruhan mulai dari awal pelatihan hingga ke step ke 20 ribu adalah 0.0974.
0 0,05 0,1 0,15 0,2 0,25 0,3 0,35 0,4 0,45 0,5
Localization Loss
Localization Loss
39
Gambar 4. 11 Grafik Regularization loss per1000 step
Gambar 4. 12 Grafik Regularization Loss
Gambar 4.12 merupakan grafik regularization loss keseluruhan hasil dari pelatihan model pada google colab. Jika dilihat dari gambar 4.11, grafik regularization loss menunjukan bahwa garisnya selalu bergerak ke bawah, yang mana artinya tiap step nilai loss nya semakin berkurang dan di step ke 20 ribu nilai loss nya sebesar 0.0832. Rata-rata nilai regularization loss adalah 0.1121. Tidak ada perbedaan antara grafik keseluruhan dari google colab dan juga grafik per 1000 step, hanya berbeda skalanya saja.
0,13 0,135 0,14 0,145 0,15 0,155 0,16 0,165
Regularization Loss
Regularization Loss
Gambar 4. 13 Grafik Total loss per1000 step
Gambar 4. 14 Grafik Total Loss
Gambar 4.14 merupakan grafik total loss keseluruhan hasil dari pelatihan model pada google colab. Gambar 4.13 merupakan grafik total loss mulai dari step 1000 ke seribu hingga 20 ribu. Terlihat bahwa dimulai dari step ke 10 ribu nilainya sidah turun dan cenderung melandai. Rata-rata nilai dari keseluruhan step adalah 0.3371.
0 0,2 0,4 0,6 0,8 1 1,2
Total Loss
Total Loss
41
Gambar 4. 15 Grafik Learning Rate per1000 step
Gambar 4. 16 Grafik Learning Rate
Gambar 4.16 merupakan grafik loearning loss keseluruhan hasil dari pelatihan model pada google colab. Pada gambar 4.15 terlihat bahwa semakin banyak langkah atau step yang dijalani pada pelatihan modelini, semakin kecil juga nilai learning rate nya. Dimana nilai learning rate pada langkah ke 20 ribu itu sebesar 0.0538.
0 0,01 0,02 0,03 0,04 0,05 0,06 0,07 0,08 0,09
Learning Rate
Learning Rate
Gambar 4. 17 Grafik Time
4.3 Hasil Pengujian Image 2D
Pengujian image 2 Dimensi merupakan hasil dari proses data training yang dilatih menjadi sebuah objek deteksi. Objek yang dideteksi merupakan sebuah gambar pada program lalu melihat apakah hasilnya akan dapat terdeteksi pada program seperti Tabel 4.12 dibawah.
Tabel 4. 12 Pengujian 2D Kelas Positif
Kelas Hasil Deteksi Kondisi
Kera
Speaker Hidup (Benar)
0 0,02 0,04 0,06 0,08 0,1 0,12 0,14
Time (s)
Time (s)
43
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Deteksi program untuk deteksi image 2 dimensi pada objek kelas manusia dapat dilihat pada Tabel 6.2 dibawah.
Tabel 4. 13 Pengujian 2D Kelas Negatif
Kelas Hasil Deteksi Kondisi
Manusia
Speaker Mati (Benar)
Manusia
Speaker Hidup (Salah)
45
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
4.4 Hasil Pengujian Live Video Stream
Pengujian Live streaming merupakan pengujian menggunakan sensor input webcam alat secara langsung apakah objek realtime yang dideteksi dapat bekerja secara baik. Proses deteksi dapat dilakukan menggunakan boneka atau video dan manusia. Pengujian kelas positif dapat dilihat pada Tabel 4.14 dibawah.
Tabel 4. 14 Pengujian Livestream Kelas Positif
Kelas Hasil Deteksi Kondisi
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
47
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
49
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
51
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
53
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Kera
Speaker Hidup (Benar)
Untuk deteksi petani akan diuji oleh penulis secara langsung apakah objek manusia dapat dikenali program. Hasil uji live stream video dapat dilihat pada Tabel 4.15 Dibawah.
Tabel 4. 15 Pengujian Livestream Kelas Negatif
Kelas Hasil Deteksi Kondisi
Manusia
Speaker Mati (Benar)
55
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
57
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
59
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
61
Manusia
Speaker Mati (Benar)
Manusia
Speaker Mati (Benar)
Manusia
Speaker Hidup (Salah)
Manusia
Speaker Hidup (Salah)
Manusia
Speaker Hidup (Salah)
Manusia
Speaker Hidup (Salah)
4.5 Hasil Pengujian Confussion Matrix Deteksi Objek
Pada sistem klasifikasi terdapat sebuah pengujian matrik dalam hasil deteksi dari nilai setiap kelas berupa True Positif (TP), False Positif( FP), True Negatif
63
(TN), False Negatif (FN). Data yang diambil didapat dari proses deteksi baik untuk image 2D dan Realtime detection pada pegujian sebelumnya. Hasil data pengujian menggunakan confussion matrix dapat dilihat pada Tabel 4.16 dibawah.
Tabel 4. 16 Data Pengujian Cofussion Matrix
Kelas Prediksi
Matriks Kera Manusia Total klasifikasi
Kelas Sebenarnya
Kera 30 0 30
Manusia 5 25 30
Berdasarkan Tabel 4.16 dari nilai masing kelas dapat disimpulkan pada data pengujian video nilai variable sebagai berikut:
Nilai TP = 30
Nilai FP = 0
Nilai TN = 25
Nilai FN = 5
Maka persamaan akurasi menggunakan confussion matrix yaitu:
Akurasi :
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 𝑇𝑃 + 𝑇𝑁
𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁 (4.1)
Hasil dari penggunaan Akurasi pada confussion matrik yaitu:
𝑇𝑃 + 𝑇𝑁
𝑇𝑃 + 𝑇𝑁 + 𝐹𝑃 + 𝐹𝑁= 30 + 25
30 + 25 + 0 + 5= 0,91
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = 0,91 𝑥 100% = 91%
Presisi:
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 𝑇𝑃
𝑇𝑃 + 𝐹𝑃 (4.2)
Hasil dari penggunaan Presisi pada confussion matrik yaitu:
𝑇𝑃
𝑇𝑃 + 𝐹𝑃 = 30
30 + 0 = 1 𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛 = 1 𝑥 100% = 100%
Recall:
𝑅𝑒𝑐𝑎𝑙𝑙 = 𝑇𝑃
𝑇𝑃 + 𝐹𝑁 (4.3)
Hasil dari penggunaan Recall pada confussion matrik yaitu:
𝑇𝑃
𝑇𝑃 + 𝐹𝑁 = 30
30 + 5 = 0,85 𝑅𝑒𝑐𝑎𝑙𝑙 = 0,85 𝑥 100% = 85%
Dari grafik diatas, dapat dilihat jika nilai pada TN dan FN mengalami perbedaan antara kelas prediksi dengan kelas sebenarnya. Walaupun berdasarkan perhitungan coffusion matrix mendapatkan nilai akurasi 91%, presisi 100%, dan recall 85% tidak menjadikan bahwa dataset yang telah di training mampu mendeteksi objek secara cepat dan akurat. Hal ini dapat terjadi karena kemampuan webcam itu sendiri yang kurang mumpuni untuk menangkap objek secara cepat dan dominan menampilkan gambar buram. Selain faktor hardware ada pula dataset training yang seharusnya diperbanyak, mulai dari jumlah dataset yang pada awalnya 2000 gambar menjadi 10000 gambar, lalu num steps yang awalnya hanya sebanyak 20000 kali pengulangan menjadi 40000 kali pengulangan sesuai yang dianjurkan oleh Tensorflow itu sendiri, penambahan jumlah batch size yang dari 4 menjadi 16 sesuai ketentuan Tensorflow.
0 5 10 15 20 25 30 35
True Positif False Positif True Negatif False Negatif
Confussion Matrix
Kelas Prediksi Kelas Sebenarnya
Gambar 4. 18 Grafik Cofussion Matrix