Fakultas Ilmu Komputer
Universitas Brawijaya 1994
Rancang Bangun Sistem Pengklasifikasi Jenis Sampah Organik dan Sampah Daur Ulang menggunakan Resnet50
Paulus Ojak Parasian1, Fitri Utaminingrum2
Program Studi Teknik Komputer, Fakultas Ilmu Komputer, Universitas Brawijaya Email: 1[email protected], 2f3_ningrum @ub.ac.id
Abstrak
Sampah merupakan permasalahan universal yang dialami setiap negara. Menurut data Bank Dunia, diperkirakan timbunan sampah dapat mencapai 3,4 miliar ton pertahunnya pada tahun 2050. Untuk mengurangi timbunan sampah pada TPA di Indonesia terdapat pemulung yang memisahkan sampah untuk di daur ulang secara manual, namun kapasitas pemilahan sampah tersebut kurang mencukupi.
Maka untuk meningkatkan tingkat pemilahan sampah dibutuhkan alat yang dapat memisahkan sampah organik dan sampah daur ulang dari sumbernya, yaitu rumah masyarakat, maupun ruangan-ruangan perkantoran. Untuk menciptakan inovasi tersebut penulis menciptakan alat pengklasifikasi sampah organik dan sampah daur ulang yang menggunakan metode Resnet50. Untuk menciptakan alat tersebut penulis menggunakan dataset yang diperoleh dari Kaggle berisi 22500 data latih dan data uji. Model Resnet50 kemudian dilatih sebanyak 20 epoch dengan learning rate sebesar 0,001 pada 10 epoch pertama dan learning rate 0,0001 pada 10 epoch terakhir dan didapat model dengan akurasi 99%, loss 3%, validasi akurasi 96%, dan validasi loss 12%. Alat dengan model Resnet50 tersebut kemudian diuji mendeteksi sampah pada jarak 16 cm, 18 cm, 20 cm, 22 cm, 24 cm, dan 26 cm. Hasil akhir penelitian didapat bahwa alat bekerja paling optimal pada jarak 20 cm dan 22 cm dengan akurasi sebesar 85% dan rata-rata waktu klasifikasi 1,17 detik.
Kata kunci: sampah organik, sampah daur ulang, residual network 50, resnet50, raspberry pi Abstract
Waste is a universal problem. According to World Bank, there would be 3,4 billion tonnes of waste annually in 2050. To reduce waste in Indonesia landfills there are scavengers that sort the recyclable waste from the organic ones manually, but their capacity is limited. To increase the sorting rate there should be a sorting machine right from the source, which is civilian homes, or offices. To create such machine the writer will produce a sorting machine for organic waste and recyclable waste using the Resnet50 method. To train the Resnet50 model the writer use a dataset from Kaggle which consist of 22500 training and testing data. The Resnet50 model will be trained using 20 epochs with learning rate of 0,001 for the first 10 epoch and a learning rate of 0,0001 for the next 10 epochs, which resulted in a model with 99% accuration, 3% loss, 96% accuration validation, and 12% loss validation. The machine will then be tested with different object to camera lengths starting from 16 cm, 18 cm, 20 cm, 22 cm, 24 cm, and 26 cm. The best accuration is gained from the length of 20 cm and 22 cm with 85% accuration and overall average classification time of 1,17 seconds.
Keywords: organic waste, recyclable waste, residual network 50, resnet50, raspberry pi
1. PENDAHULUAN
Sampah merupakan permasalahan yang dialami di seluruh dunia. Sampah yang belum dapat dikelola dan menghasilkan timbunan sampah dapat mengakibatkan polusi dan dapat membahayakan kesehatan manusia. Terdapat dua jenis pembuangan sampah, yaitu landfill dan
open dumping. Di Indonesia sendiri mayoritas TPA-nya masih bersifat open dumping yang bersifat kurang ramah lingkungan. Untuk mengurangi sampah di TPA di Indonesia terdapat pemulung yang memisahkan sampah yang bisa di daur ulang untuk dijual, namun kapasitas pemilahan sampah tersebut masih kurang mencukupi. Untuk membedakan jenis
sampah terdapat berbagai macam metode klasifikasi, dimana salah satunya adalah membedakan sampah menjadi sampah organik dan sampah daur ulang. Sampah organik adalah sampah yang berasal dari sisa makhluk hidup sehingga mudah mengalami pembusukan dan pelapukan, sedangkan sampah daur ulang adalah sampah yang masih bisa digunakan maupun diolah kembali menjadi produk lain. Agar dapat mengurangi sampah maka penulis akan merancang sistem pengklasifikasian sampah berdasarkan jenis sampah organik dan sampah daur ulang. Sistem pengklasifikasian pada alat dibentuk dengan menggunakan metode deep learning Resnet50.
Seiring berkembangnya deep learning dari tahun ke tahun, performa seleksi model deep learning tersebut terkadang bahkan dapat melampaui akurasi metode manual yang dilakukan oleh manusia. Karena perkembangan performa metode deep learning yang telah berkembang pesat maka penulis memilih menggunakan metode deep learning Resnet50 sebagai pengklasifikasi sampah organik dan daur ulang. Resnet50 sendiri merupakan singkatan dari Residual neural network 50, yang diperkenalkan pada tahun 2015 silam. Sejak diperkenalkannya metode tersebut arsitektur Resnet telah memenangkan beberapa perlombaan pengklasifikasian dan deteksi objek internasional seperti ILSVRC dan COCO.
Untuk melatih model Resnet50 digunakan dataset yang diperoleh dari Kaggle berisi 22500 gambar sampah organik dan daur ulang, serta penambahan gambar latih sebanyak 839 gambar oleh penulis. Model Resnet50 dibuat dengan jumlah epoch sebanyak 20 epoch, dimana pada 10 epoch pertama learning rate yang dipakai sebesar 0,001 dan pada 10 epoch selanjutnya learning rate yang dipakai sebesar 0,0001.
Model Resnet50 yang telah dilatih tersebut kemudian akan diimplementasikan pada Raspberry Pi 4 Model B sebagai otak alat untuk mengklasifikasikan sampah.
2. PERANCANGAN DAN IMPLEMENTASI 2.1 Gambaran Umum Sistem
Pada penelitian ini terdapat 5 perangkat keras yang akan digunakan, yaitu Raspberry Pi 4 Model B, LCD, kamera, sensor infra merah, dan motor servo. Raspberry Pi tersebut akan bekerja sebagai tempat komputasi sistem dan tempat
menjalankannya model Resnet50 yang telah dilatih, sensor infra merah dan kamera sebagai input sistem, dan LCD serta motor servo sebagai aktuator output sistem. Gambaran sistem tersebut dapat dilihat pada Gambar 1. dibawah ini.
Gambar 1. Gambaran Sistem 2.2 Perancangan Perangkat Keras
Proses jalannya penggunaan perangkat keras pada sistem penelitian ini adalah sebagai berikut. Pertama, sensor infra sonik sebagai sensor input akan mendeteksi adanya sampah yang diletakkan pada sistem atau tidak dengan LCD menampilkan tulisan “Stand By”. Jika terdapat sampah, maka kamera kemudian akan mengambil gambar sampah yang di input dan LCD akan menampilkan tulisan “Gambar Diambil!” dan “Memproses..”. Setelah gambar diambil, program kemudian akan memprediksi kategori gambar sampah tersebut. Setelah selesai mengklasifikasikan gambar, tampilan LCD akan berubah menjadi “Proses Selesai” dan kemudian akan menampilkan kategori sampah yang telah di input, diikuti dengan motor servo yang akan bergerak dan menjatuhkan sampah ke kiri jika jenis sampah daur ulang dan ke kanan jika jenis sampah organik. Tampilan diagram sistem dapat dilihat pada Gambar 2. dibawah ini.
Gambar 2. Diagram Sistem
2.3 Perancangan Perangkat Lunak
Perancangan perangkat lunak adalah proses pembuatan model Resnet50 pada penelitian ini sebelum dapat diimplementasikan pada Raspberry pi. Proses perancangan perangkat
Fakultas Ilmu Komputer, Universitas Brawijaya
lunak dibagi menjadi dua bagian, yaitu proses training dan proses testing. Proses training merupakan proses pembuatan model Resnet50 berdasarkan dataset yang telah dikumpulkan.
Dataset yang digunakan pada penelitian ini merupakan dataset yang didapat dari sumber Kaggle
(https://www.kaggle.com/techsash/waste- classification-data) yang berisi 22500 gambar training dan testing sampah organik dan daur ulang. Untuk menyesuaikan dataset dengan dataset sampah domestik di Indonesia, penulis menambahkan 839 gambar sampah yang telah diaugmentasi. Setelah dataset telah terkumpul, repositori penyimpanan tersebut kemudian dijadikan sumber dataset training model. Pada saat menjalankan program, gambar pada dataset tersebut kemudian akan di ubah ukurannya menjadi ukuran 224 x 224 sebagai input model, dan kemudian akan dijalankan sebanyak 20 epoch, dimana 10 epoch pertama menggunakan learning rate sebesar 0,001 dan 10 epoch berikutnya menggunakan learning rate sebesar 0,0001. Nilai learning rate ini dapat berubah pada saat menjalankan 10 epoch tersebut untuk mengoptimisasi hasil epoch, dengan menggunakan library Adam Optimizer v2 yang dapat mengubah nilai learning rate secara otomatis demi mendapatkan nilai yang optimal.
Hasil setiap epoch tersebut kemudian akan ditampilkan dalam bentuk variabel akurasi, loss, validasi akurasi, dan validasi loss. Setelah menjalankan epoch terakhir, program akan otomatis menyimpan model Resnet50 dengan hasil nilai validasi akurasi tertinggi. Diagram flowchart proses training tersebut dapat dilihat pada Gambar 3. dibawah ini.
Gambar 3. Flowchart Proses Training
Setelah melalui proses training, model
kemudian akan melalui proses testing. Testing dilakukan dengan menjalankan model untuk memprediksi kategori gambar yang terdapat pada dataset testing yang berisi 1401 gambar sampah organik dan 1112 gambar sampah daur ulang, dimana setiap gambar tersebut sudah mempunyai label aslinya, sehingga nilai akurasi sistem dapat dihitung. Flowchart proses testing tersebut dapat dilihat pada Gambar 4. dibawah ini.
Gambar 4. Flowchart Proses Testing
Seperti pada Gambar 4. diatas, setelah proses testing dimulai, program akan membuka model Resnet50 yang telah dibuat. Selanjutnya model akan memprediksi gambar-gambar pada dataset testing, dan dengan membandingkan hasil prediksi dan label asli gambar maka performanya akan dihitung. Hasil penghitungan performa tersebut akan dihitung dalam format classification report, yaitu fungsi evaluasi hasil testing yang dapat digunakan dari library Keras.
2.4 Implementasi Perangkat Keras
Setelah model selesai dibuat dan dapat menghasilkan performa yang baik pada saat testing, maka model Resnet50 tersebut akan diimplementasikan pada perangkat keras, dengan tampilan seperti pada Gambar 5.
dibawah ini.
Gambar 5. Implementasi Perangkat Keras Sistem Pada Gambar 5. diatas, model telah diimplementasikan pada Raspberry pi dan pada pemrogramannya akan dihubungkan dengan
Mulai
Loading Dataset
Image Resize
A
Grafik Hasil
Selesai A B
Mulai
Loading Model
Mulai Testing
C
Mengatur Epoch
Mulai Training
Hasil Epoch
Sudah Akurat?
B Ya
Tidak A
input sensor infra merah dan kamera, sedangkan untuk output akan dihubungkan pada LCD dan motor servo. Perangkat keras sistem dirancang untuk ditempatkan diantara dua tempat sampah, dimana di sebelah kiri adalah tempat sampah daur ulang dan di sebelah kanan adalah tempat sampah organik.
3. PENGUJIAN DAN ANALISIS 3.1. Pengujian Epoch dan Learning Rate
Pada pengujian pertama penulis akan menguji jumlah epoch dan learning rate yang akan menghasilkan performa model yang optimal. Untuk mengukur performa model tersebut akan digunakan variabel akurasi, loss, val_accuracy, dan val_loss. Berikut merupakan pengertian variabel tersebut:
1. Akurasi
Akurasi digunakan untuk menghitung banyaknya prediksi yang benar, dengan membandingkan nilai prediksi yang benar dengan total prediksi.
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 =𝑗𝑢𝑚𝑙𝑎ℎ 𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 𝑦𝑎𝑛𝑔 𝑏𝑒𝑛𝑎𝑟
𝑗𝑢𝑚𝑙𝑎ℎ 𝑝𝑟𝑒𝑑𝑖𝑘𝑠𝑖 (1) 2. Loss
Loss merupakan nilai penyimpangan probabilitas prediksi label dengan nilai label yang sesungguhnya. Karena model menghasilkan nilai prediks biner dengan dua kelas, maka digunakan jenis loss Binary Cross Entropy.
𝐿𝑜𝑠𝑠 = −1
𝑁∑𝑁𝑖=1𝑦𝑖. 𝑙𝑜𝑔(𝑝(𝑦𝑖)) + (1 − 𝑦𝑖). 𝑙𝑜𝑔(1 − 𝑝(𝑦𝑖)) (2)
Dimana y merupakan label aktual dan p(y) merupakan probabilitas semua variabel N mempunyai label y.
3. Val_acc
Val_acc adalah nama variabel singkatan dari validasi akurasi. Validasi akurasi didapat dari penghitungan akurasi menggunakan dataset data validasi. Nilai validasi akurasi digunakan sebagai acuan pemilihan epoch, dimana model akan memakai hasil epoch dengan nilai validasi akurasi tertinggi.
4. Val_loss
Val_loss adalah singkatan dari validasi loss.
Fungsi ini digunakan untuk menghitung loss pada data validasi.
Kemudian dengan menggunakan variabel tersebut untuk mengevaluasi hasil training model, setelah menjalankan 20 epoch didapat hasil pada Tabel 1. dibawah ini.
Tabel 1. Hasil Training Program
Dari Tabel 1. diatas didapat nilai epoch terbaik pada epoch ke-16, dimana didapat nilai akurasi sebesar 99%, loss 3%, validasi akurasi 96%, dan validasi loss sebesar 12%. Kemudian model tersebut akan memasuki proses testing untuk menguji performa model dalam memprediksi kategori sampah pada dataset testing. Untuk menguji performa pada proses testing digunakan variabel perhitungan yang dihitung menggunakan nilai confusion matrix yang menampilkan hasil testing menjadi 4 output, yaitu TP(True Positive), TN(True Negative, FP(False Positive), dan FN(False Negative).
Fungsi yang digunakan untuk menguji hasil confusion matrix tersebut adalah sebagai berikut.
1. Accuracy_score
Accuracy_score merupakan nilai akurasi sistem dengan menghitung probabilitas prediksi sistem sama dengan label sebenarnya.
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦_𝑠𝑐𝑜𝑟𝑒 = 𝑇𝑃+𝑇𝑁
𝑇𝑃+𝐹𝑃+𝑇𝑁+𝐹𝑁 (3)
2. Precision_score
Precision_score merupakan nilai untuk menghitung presisi sistem. Nilai presisi adalah kemampuan sistem untuk tidak melabelkan sampel negatif sebagai sampel positif.
𝑃𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛_𝑠𝑐𝑜𝑟𝑒 = 𝑇𝑃
𝑇𝑃+𝐹𝑃 (4)
3. Recall_score
Recall_score adalah pengukur kemampuan sistem untuk mendeteksi sampel positif.
Fakultas Ilmu Komputer, Universitas Brawijaya 𝑅𝑒𝑐𝑎𝑙𝑙_𝑠𝑐𝑜𝑟𝑒 = 𝑇𝑃
𝑇𝑃+𝐹𝑁 (5)
4. F1_score
F1_score digunakan untuk menghitung rata- rata keharmonisan nilai precision_score dan nilai recall_score.
𝐹1_𝑠𝑐𝑜𝑟𝑒 = 2 ×(𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛_𝑠𝑐𝑜𝑟𝑒×𝑟𝑒𝑐𝑎𝑙𝑙_𝑠𝑐𝑜𝑟𝑒) (𝑝𝑟𝑒𝑐𝑖𝑠𝑖𝑜𝑛_𝑠𝑐𝑜𝑟𝑒+𝑟𝑒𝑐𝑎𝑙𝑙_𝑠𝑐𝑜𝑟𝑒) (6) 5. Roc_auc_score
Roc_auc_score adalah luas area yang berada dibawah grafik ROC. Nilai AUC digunakan untuk memberi gambaran nilai probabilitas bahwa model akan lebih cenderung mendeteksi objek random sebagai positif dibandingkan negatif.
6. Sensitivity
Sensitivity adalah jumlah prediksi True Positive yang benar.
𝑆𝑒𝑛𝑠𝑖𝑡𝑖𝑡𝑣𝑖𝑡𝑦 = 𝑇𝑃
𝑇𝑃+𝐹𝑁 (7)
7. Specificity
Specificity mengukur jumlah prediksi True Negative yang benar.
𝑆𝑝𝑒𝑐𝑖𝑓𝑖𝑐𝑖𝑡𝑦 = 𝑇𝑁
𝑇𝑁+𝐹𝑃 (8)
Dari hasil testing model Resnet50, kemudian didapat hasil seperti pada Tabel 2. dibawah ini.
Tabel 2. Hasil Testing Program
Dengan hasil akurasi yang cukup tinggi, model Resnet50 yang telah di testing tersebut kemudian akan diimplementasikan pada perangkat keras.
3.2. Pengujian Sistem Terhadap Jarak Kamera Kepada Objek
Setelah mengimplementasikan model Resnet50 ke Raspberry pi dan mengintegrasikan
program dan sensor serta aktuator model, didapat sistem yang mengklasifikasikan sampah dengan menggerakkan sampah ke tempat sampah di sebelah kiri atau sebelah kanan seperti Gambar 6. dibawah ini.
Gambar 6. Keluaran Sistem Untuk Sampah Organik (kiri) dan Sampah Daur Ulang (kanan) Setelah memastikan program dapat berjalan lancar, penguji kemudian menguji akurasi sistem dengan perhitungan pada Persamaan 1, dengan total percobaan sebanyak 20 percobaan, dengan 10 sampah organik dan 10 sampah daur ulang.
Variabel yang akan diubah adalah jarak objek sampah terhadap kamera yang terdapat di bagian atas sistem. Penguji kemudian mulai mencoba menguji nilai akurasi dengan jarak objek terhadap kamera yang berbeda-beda, yaitu 16 cm, 18 cm, 20 cm, 22 cm, 24 cm, dan 26 cm.
Setelah itu didapat hasil akurasi seperti pada Tabel 3.
Tabel 3. Hasil Uji Akurasi Pada Jarak Berbeda
Jarak Akurasi
16 cm 75%
18 cm 80%
20 cm 85%
22 cm 85%
24 cm 80%
26 cm 80%
Dari Tabel 3. diatas terlihat bahwa sistem memperoleh hasil akurasi tertinggi pada jarak 20 cm dan 22 cm. Kemudian penulis menghitung waktu yang diperlukan dari percobaan yang sama, dengan hasil yang ditampilkan pada Tabel 4. dibawah ini.
Tabel 4. Hasil Perhitungan Waktu Uji Coba
Jarak Model Loading Time (s)
Rata-rata Waktu Testing
(s)
16 cm 63,0 1,04
18 cm 62,7 1,1
20 cm 62,6 1,1
22 cm 63,3 1,05
24 cm 63,3 1,05
26 cm 63,3 1,7
Nilai rata-rata: 63,03 1,17
Dari hasil penghitungan waktu tersebut didapat waktu rata-rata model loading time sebesar 63,03 detik dan rata-rata waktu testing sebesar 1,17 detik.
4. PENUTUP 4.1 Kesimpulan
1. Jumlah epoch dan learning rate berpengaruh besar kepada program, dimana dengan menggunakan 20 epoch dan nilai learning rate 0,001 dan 0,0001, nilai akurasi, loss, validasi akurasi, dan validasi loss dapat dioptimalkan, dengan nilai epoch terbaik yaitu akurasi 99%, loss 3%, validasi akurasi 96%, dan validasi loss sebesar 12%.
2. Performa akurasi prototype mendapat hasil yang berbeda tergantung dengan jarak objek ke kamera, dimana didapat nilai akurasi tertinggi sebesar 85% pada jarak objek sebesar 20 cm dan 22 cm.
3. Rata-rata waktu yang diperlukan untuk menjalankan model dibagi menjadi dua, yaitu waktu Raspberry pi membuka model Resnet50 yang telah dilatih (model loading time), dan waktu sistem untuk mengklasifikasi sampah. Pada akhir penelitian didapat rata-rata waktu model loading time sebesar 63,03 detik dan waktu klasifikasi sebesar 1,17 detik.
4.2 Saran
1. Penelitian selanjutnya diharapkan menggunakan koneksi servo dan sistem yang lebih kuat agar dapat meningkatkan kapasitas berat objek.
2. Dapat menambahkan proses pre- processing agar dapat meningkatkan akurasi sistem.
3. Penambahan jumlah dataset sampah domestik yang mumpuni untuk meningkatkan akurasi sistem.
5. DAFTAR PUSTAKA
Altuntaş, Y., Cömert, Z., & Kocamaz, A. F.
(2019). Identification of haploid and diploid maize seeds using convolutional neural networks and a transfer learning approach. Computers and Electronics in Agriculture.
Andina, E. (2019). Analisis Perilaku Pemilahan Sampah di Kota Surabaya. Jurnal Masalah-Masalah Sosial, 119-137.
Bakis, R., & Tuncan, A. (2011). An Investigation of Heavy Metal and Migration Through Groundwater From The Landfill Area of Ekisehir in Turkey.
Environ Monit Assess, 87-98.
Bohm, R. A., Folz, D. H., & Kinnaman, T. C.
(2010). The Costs of Municipal Waste and Recycling Programs. Resources, Conservation and Recycling, 54(11), 864- 871.
Fadillah, I., A, L., Kamil, M. F., Shalahuddin, M., Setiawan, I., N, A., . . . Fikri, K.
(2019). Perubahan Pola Pikir Masyarakat tentang Sampah melalui Sosialisasi Pengelolahan Sampah Organik dan Non Organik di Dusun Pondok, Kecamatan Gedangsari, Kab. Gunungkidul.
Prosiding Konferensi Pengabdian Masyarakat, 1, 239-242.
He, K., Zhang, X., Ren, S., & Sun, J. (2015).
Deep Residual Learning for Image Recognition.
Kaza, S., Yao, L. C., Bhada-Tata, P., & Van Woerden, F. (2018). What a Waste 2.0: A Global Snapshot of Solid Waste Management to 2050. Washington, DC:
World Bank.