4.1. Implementasi Sistem
Pada tahapan ini penulis mengimplementasikan metode deep learning yaitu SSD-MobileNet v2 sebagai proses klasifikasi jenis ras kucing ke dalam sistem yang dibangun. Pada implementasi sistem yang dibuat menggunakan pemrograman Python.
4.1.1 Perangkat Keras
Spesifikasi lengkap perangkat keras yang digunakan pada sistem dapat lihat pada tabel 4.1.
Tabel 4.1 Spesifikasi Perangkat Keras
Nama Perangkat Keras Spesifikasi
Komputer Rakit OS: Windows 10 Home
Laptop ASUS TUF Gaming FX504 OS: Windows 10 64-Bit
32
4.1.2 Perangkat Lunak
Perangkat lunak yang digunakan pada sistem dapa dilihat pada tabel 4.2
Tabel 4.2 Perangkat Lunak
Nama Perangkat Keras Nama Perangkat Lunak
Komputer Rakit Windows 10 Home 64-Bit
Contextlib2 Pandas, Pillow, Lxml,
Jupyter, Matplotlib, Tf_slim, Pycocotools, Scipy, Dataclasses,
Pyyaml
Laptop ASUS TUF Gaming FX504 OS: Windows 10 64-Bit dikumpulkan yang berjumlah 2500 akan dilabeli nama berdasarkan jenisnya, tahapan ini merupakan tahapan yang penting agar pada saat tahap testing maka sistem akan
33
mengklasifikasi berdasarkan jenis kucing yang ditangkap oleh kamera smartphone.
Sebelum dilakukannya proses labeling citra, terlebih dahulu dipisah berdasarkan folder data training dan data evaluasi, data training berjumlah 1950 sementara data evaluasi berjumlah 550 data citra. Tujuan dilakukannya data annotation adalah mendapatkan ground truth box pada setiap objek untuk proses training. Aplikasi yang digunakan untuk melabeli objek adalah LabelImg. Gambar 4.1 adalah gambaran proses data annotation.
Gambar 4.1 Data Annotation
Setelah dilakukannya proses data annotation atau pelabelan objek maka hasilnya terbentuk dalam format .xml yang apabila dibuka akan meliputi path folder, nama file, ukuran piksel nama jenis kucing dan bounding box (xmin, ymin, xmax, ymax). Setiap citra yang dilabeli pastinya memiliki isi informasi yang berbeda-beda. Contoh isi file .xml dapat dilihat pada gambar 4.2.
34
Gambar 4.2 Isi File XML
4.1.4 Training Data
Sebelum melakukan proses training ada beberapa tahapan yang dilakukan, sebelumnya hasil dari data annotation yaitu format .xml akan terlebih dahulu diubah kedalam satu file berformat .csv, karena datasetnya dibagi menjadi 2 yaitu training dan evaluasi maka akan ada 2 file format .csv. training_labels.csv dan testing_label.csv. Untuk pada training_labels.csv berisi 1950 objek jenis kucing berbeda yang sudah dilabeli, sementara pada testing_labels.csv berisi 550 objek jenis kucing berbeda yang sudah dilabeli. Isi lengkap kedua file .csv tersebut meliputi namefile, width, height, class dan bounding box (xmin, ymin, xmax, ymax). Gambar 4.3 adalah contoh dari isi file .csv
Gambar 4.3 Isi File CSV
35
Tahap berikutnya file CSV yang telah dibuat akan diubah formatnya menjadi format .record yang bertujuan agar dapat dibaca oleh library tensorflow. Isi dari file format record tidaklah dapat dibaca oleh manusia dikarenakan isinya merupakan kode-kode yang hanya dimengerti oleh library tensorflow. Dikarenakan file .csv yang sebelumnya memiliki 2 file, maka pada tahap ini akan ada 2 file berformat .record juga yaitu test.record dan train.record. File format .record dapat dilihat pada gambar 4.4.
Gambar 4.4 Isi File Record
Tahap selanjutnya yaitu membuat file dengan format .pbtxt yang berisi tentang informasi jumlah kelas objek yang akan diklasifikasikan pada penelitian ini. Dalam hal ini penulis akan mengguanakan 5 jenis kelas objek diantaranya yaitu persia, sphynx, himalaya, moggy, dan bengal. Kemudian filenya diberi nama “label_map.pbtxt”. File label_map.pbtxt dapat dilihat pada gambar 4.5
36
Gambar 4.5 Isi File Pbtxt
Sebelum dilakukannya proses training pada data yang sudah ada, hal yang dilakukan adalah menentukan berapa banyak jumlah step yang dilakukan, batch size, jumlah class yang digunakan, serta menyamakan posisi path dimana record file, file pbtxt, lokasi path checkpoint dan lain-lain. Dalam melakukan proses training menggunakan komputer Rakitali yang berspesifikasi pada tabel 4.1. karena SSD-MobileNet yang digunakan adalah versi 2 maka tensorflow-gpu 2.3.0 diinstal pada Anaconda Virtual environtment. Tensorflow-gpu diinstal agar pada saat proses training, komputer akan menggunakan GPU tertinggi dari komputer. Jika tidak melakukan instalasi tensorflow-gpu maka komputer secara default hanya akan menggunakan tensorflow-gpu utama komputer, yang tergolong rendah mengakibatkan proses training menjadi lebih lama jika dibandingkan dengan menggunakan GPU tertinggi (Nvidia). Parameter konfigurasi utama saat training dapat dilihat pada tabel 4.3
Tabel 4.3 Parameter Proses Training
Paramater Keterangan
Num Classes 5
Bath Size 2
Loss 0.308
Total Step 30.000
37
Dengan parameter yang ditunjukkana pada tabel 4.3, proses training yang dilakukan dengan menggunakan komputer Rakit dengan spesifikasi yang sebagaimana terlihat pada tabel 4.1 memakan waktu kurang dari 5 jam untuk dapat menghasilkan learned model SSD-MobileNet v2. Gambaran proses training data dapat dilihat pada gambar 4.6.
Gambar 4.6 Proses Training
Pada gambar 4.6 menampilkan proses training dimana setiap step yang dilakukan menghasilkan loss dan per-step-time. Jumlah loss akan dijadikan tolak-ukur dari error atau kesalahan dari suatu model sehingga loss berbanding terbalik dengan akurasi hasil. Semakin besar jumlah loss maka akurasi hasilnya akan kecil sementara semakin kecil jumlah loss maka akurasinya akan semakin baik yang tentunya menghasilkan nilai akurasi yang tinggi pada saat pendeteksian objek.
Setelah proses training selesai maka akan menghasilkan sebuah learned model SSD-MobileNet v2. Untuk menghasilkan sebuah learned model dilakukan lagi proses exported agar model yang telah dilatih dapat digunakan. Learned model yang telah diekport akan menjadi file format saved_model.pb. Format inilah yang akan digunakan untuk klasifikasi kucing. Proses export model hasilnya terdiri dari 2 file yaitu saved_model.pb dan file checkpoint yang dapat digunakan jika ingin melanjutkan dan menambah jumlah step pada proses training.
38
4.1.5 Implementasi Tampilan Aplikasi
Sistem yang dibangun oleh penulis akan dijalankan melalui desktop dengan Python sebagai bahasa pemrogramannya. Tampilan aplikasi berupa tab berukuran 600 x 600 Tampilan aplikasi berupa tab berukuran 600 x 600 piksel. Tampilan tersebut dapat dilihat pada gambar 4.7
Gambar 4.7 Tampilan Program
4.1.6 Implementasi Data
Pengambilan data citra kucing menggunakan kamera ponsel dengan resolusi 12MP.
Pengambilan foto jenis kucing dilakukan pada setiap sisinya, baik itu bagian depan, samping kanan dan kiri dengan mengambil segala kemungkinan yang ada. Setiap jenis kucing yang diambil citranya tentunya memiliki bentuk-bentuk yang berbeda, penulis terlebih dahulu memilih jenis kucing yang berbeda-beda dengan tujuan pada saat pendeteksian dan pengklasifikasian sistem dapat membaca segala macam bentuk kucing berdasarkan jenisnya. Data citra yang diambil untuk penelitian ini yaitu data citra kucing ras sphynx, kucing ras persia, kucing ras bengal, kucing ras bengal dan kucing ras moggy.
Total jumlah data yang diambil berjumlah 2500 (1950 data training dan 550 data testing),
39
setiap citra memiliki ukuran piksel sebesar 4032 x 3024 dan ukuran file sebesar 2MB (sebelum memasuki proses resizing). Data citra kucing dapat dilihat pada gambar 4.8
Gambar 4.8 Data Citra
4.2 Prosedur Operasional
Pada Tahapan ini akan menjelaskan bagaimana prosedur operasional untuk menjalankan sistem yang telah dibangun. Langkah pertama dalam menjalankan sistem yaitu dengan masuk kedalam Anaconda Virtual Environtment untuk mengakses sistem. Selanjutnya mencari lokasi direktori dimana program disimpan dan menjalankannya melalui anaconda prompt run as administrator.
Pertama buka anaconda prompt as administrator dan kemudian aktifkan virtual environtment yang telah dibuat, dalam hal ini penulis menamai virtualenv dengan nama
“fadlilbs”
(base) C:\WINDOWS\System32>cd..
(base) C:\WINDOWS>cd..
(base) C:\>activate fadlilbs
Selanjutnya setelah masuk kedalam virtual env yang sudah dibuat kemudian masuk kedalam localdisk :C tempat dimana sistem dibuat, dalam hal ini penulis membuat direktori bernama “skripsi”
(fadlilbs) C:\WINDOWS\System32>cd c:\Skripsi
Tahap selanjutnya yaitu menjalankan program dengan cara masuk kedalam direktori dimana program tersebut disimpan
40
(fadlilbs)c:\skripsi>cd models
(fadlilbs)C:\skripsi\models\cd research
(fadlilbs)c:\skripsi\models\research>python object_detection.py
Dan sebuah proses akan berjalan, sistem akan otomatis mengaktifkan sebuah kamera dan akan muncul tampilan tab 600 x 600, seperti terlihat pada gambar 4.9
Gambar 4.9 Tampilan Program
4.3 Pengujian Sistem
Tahapan ini melakukan pengujian sistem guna mengetahui jumlah akurasi klasifikasi objek kucing. Pengujian dilakukan dengan menggunakan laptop ASUS TUF Gaming FX504 dengan memanfaatkan aplikasi DroidCam menggunakan kamera smartphone Iphone XR untuk menangkap citra sebanyak 750 kali terhadap 5 jenis kucing yang diambil secara real-time. Hasil pelatihan terhadap pendeteksian objek ini dapat dilihat pada tabel 4.6.
41
Tabel 4.4 Hasil Pengujian sistem
Persentase
No Data Pengujian Hasil Benar Salah
Klasifikasi
1 Kucing Ras Benar
-Persia 87%
2 Kucing Ras Benar
-Persia 90%
3 Kucing Ras
-Bengal Benar 87%
42
4 Kucing Ras Benar
-Persia 84%
5 Kucing Ras Benar
-Persia 85%
6 Kucing Ras - salah
Persia 51%
7 Kucing Ras benar
-Moggy 77%
43
8 Kucing Ras Benar
-Bengal 84%
9 Kucing Ras Benar
-Bengal 87%
10 Kucing Ras Benar
-Bengal 91%
11 Kucing Ras Benar
-Bengal 93%
44
12 Kucing Ras Benar
-Moggy 74%
13 Kucing Ras Benar
-Himalaya 81%
14 Kucing Ras Benar
-moggy 72%
15 Kucing Ras Benar
-Himalaya 80%
45
16 Kucing Ras Benar
-Moggy 72%
17 Kucing Ras Benar
-Sphynx 91%
18 Kucing Ras Benar
-Himalaya 80%
19 Kucing Ras Benar
-Sphynx 78%
46
20 Kucing Ras - Salah
Persia 52% dan Kucing Ras Sphynx 61%
21 Kucing Benar
-Ras Sphynx
88%
22 Kucing Ras - Salah
Bengal 63% dan Kucing Ras
Sphynx 59%
23 Kucing Ras Benar
-Persia 91%
47
24 Kucing Ras Benar
-Himalaya 73%
25 Kucing Ras - Salah
Persia 60% dan Kucing Ras
Bengal 61%
26 Kucing Ras Benar
-Himalaya 87%
Kucing
27 Ras - Salah
Persia 63 % dan Kucing Ras
Bengal 71%
48
28 Kucing Ras Benar
-Himalaya 87%
29 Kucing Ras Benar
-Bengal 88%
30 Kucing Ras Benar
-Himalaya 71%
31 Kucing Ras Benar
-Persia 86%
49
32 Kucing Ras Salah
-Persia 71%
33 Kucing Ras Benar
-Moggy 69%
34 Kucing Ras Benar
-Moggy 78%
Pengujian juga dilakukan pada berbagai keadaan intensitas cahaya hal ini dapat dilihat pada tabel 4.5 dan tabel 4.6.
Tabel 4.5 Intensitas Cahaya
Intensitas Cahaya Objek tidak Objek terdeteksi Objek terdeteksi
terdeteksi benar salah
10 lux ✓
50
20 lux
30 lux
50 lux
70 lux
✓
✓
✓
✓
Tabel 4.6 Hasil pengujian sistem melalui Intensitas cahaya
Intensitas Data pengujian Hasil pegujian
Cahaya
10 lux Objek terdeteksi
benar
20 lux Objek terdeteksi
benar
51
30 lux
50 lux
70 lux
Objek terdeteksi benar
Objek terdeteksi benar
Objek terdeteksi benar
Pengujian juga dilakukan pada berbagai keadaan jarak objek dari kamera hal ini dapat dilihat pada tabel 4.7 dan tabel 4.8.
52
Tabel 4.7 Jarak objek dari kamera
Jarak objek Objek tidak Objek terdeteksi Objek terdeteksi
dari kamera terdeteksi benar salah
Tabel 4.8 Hasil pengujian sistem melalui jarak objek dari kamera
Jarak Data pengujian Hasil pegujian
objek dari
50 cm
70 cm
80 cm
100 cm
53
Objek terdeteksi
benar
Objek terdeteksi
benar
Objek tidak terdeteksi
Objek tidak terdeteksi
54
Selanjutnya pengujian dilakukan pada objek yang tidak termasuk dalam penelitian ini. Pengujian dapat dilihat pada tabel 4.9.
Tabel 4.9 Pengujian sistem pada objek yang tidak termasuk dalam penelitian
Objek yang Data pengujian Hasil
di deteksi pengujian
Kucing Objek tidak
Anggora terdeteksi
Anjing jenis Objek tidak
Buldog terdeteksi
Anjing jenis Objek tidak
golden terdeteksi
retriever
55
Berdasarkan pengujian sistem yang telah dilakukan pada data testing kucing menggunakan metode Mobilenet-SSD, diperoleh nilai akurasi mencapai 93%, terdapat beberapa kesalahan yang dilakukan oleh sistem dalam melakukan klasifikasi jenis ras kucing dari total 750 data testing yang ada dikarenakan latar belakang pada objek kucing yang sama yaitu lantai sehingga membuat sistem memiliki kesulitan lebih saat melakukan proses klasifikasi.
Tabel 4.10 Confusion Matrix
Sphynx Persia Bengal Himalaya Moggy Total
Sphynx 134 7 4 5 0 150
Persia 0 150 0 0 0 150
Bengal 0 28 120 2 0 150
Himalaya 0 0 0 150 0 150
Moggy 0 0 0 0 150 150
Total 134 185 124 157 150 750
Tabel 4.10 diatas menjelaskan bahwa dari total 3250 data terbagi sebesar 2500 data latih dan 750 data pengujian. Sistem mengalami beberapa kesalahan saat mendeteksi kucing ras Bengal dan Sphynx. Berbanding sebaliknya ketika mendeteksi kucing ras Persia, Moggy, dan Himalaya sistem tidak terjadi kesalahan. Selanjutnya akan dijelaskan nilai TP, FP dan FN pada tabel 4.11.
Tabel 4.11 Nilai TP, FP dan FN dari Jenis Kucing
TP FP FN Positive, dimana data positif terklasifikasi oleh sistem dengan benar. Selanjutnya, 46 data FP yaitu False Positive dimana data benar namun sistem mendeteksinya salah, dan FN sebanyak 0 data yaitu sistem salah mendeteksi objek sehingga
56
sistem mendeteksinya dengan nilai yang lain.
Kemudian pada hasil training yang telah dilakukan, didapatkan nilai akurasi dari hasil klasifikasi, yaitu precission, recall, F-Score. Penjelasan ada pada tabel 4.12.
Tabel 4.12 Nilai Precission, Recall dan F-Score
Precision Recall F1-Score
Pada tabel di atas terdapat Precission yaitu perbandingan antara nilai prediksi benar dengan seluruh hasil yang benar. Adapun rumusnya yaitu :
(TP) / (TP+FP).
Recall yaitu perbandingan antara nilai prediksi yang benar dengan seluruh data benar. Adapun rumusnya yaitu
Recall = (TP) / (TP + FN)
F1-Score merupakan perbandingan rata-rata antara nilai presisi dengan nilai recall.
Adapun rumus F1-Score yaitu :
F1 Score = 2 * (Recall*Precission) / (Recall + Precission)
Berikut persamaan yang digunakan untuk menghitung akurasi dari pengujian data.
ℎ
Akurasi =
x 100Akurasi =704 100= 93,8%
750
57
BAB 5