Jurnal 7 - Penyakit Daun Mangrove (SSD)
Jurnal 7 - Penyakit Daun Mangrove (SSD)
SKRIPSI
MUHAMMAD RAIHAN
161402066
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana
Teknologi Informasi
MUHAMMAD RAIHAN
161402066
PERNYATAAN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Muhammad Raihan
iii
Puji dan syukur penulis panjatkan ke hadirat Allah SWT, karena berkat rahmat dan
karunia-Nya penulis dapat menyelesaikan skripsi sebagai syarat untuk memperoleh
gelar Sarjana Komputer, pada Program Studi S1 Teknologi Informasi Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Ucapan terima kasih juga penulis ucapkan kepada seluruh pihak yang terlibat
serta telah membantu penulis dalam menyelesaikan skripsi baik. Pada kesempatan ini
penulis ingin mengucapkan terima kasih kepada:
1. Keluarga penulis, Ayahanda Raja Inal Siregar dan Ibunda Asmahan Abdul
Razzak yang tidak pernah lelah merawat, memberikan semangat, mendoakan,
membesarkan, memberikan ilmu, memberikan dukungan moral yang tiada
batasnya. Kepada kakak penulis, Eva Soraya Murtaza dan abang ipar penulis,
Benny Saputra yang menjadi penyemangat, pelengkap dan sekaligus teman
dalam setiap waktu.
2. Bapak Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc. selaku Dosen Pembimbing 1
dan Ibu Sarah Purnamawati ST., MSc. selaku Dosen Pembimbing 2 yang telah
memberikan penulis ilmu, kritik yang membangun, saran, dukungan, motivasi,
dan juga bimbingan yang tidak ternilai harganya.
3. Ibu Dr. Maya Silvi Lydia B.Sc., M.Sc. selaku Dekan Fasilkom-TI Universitas
Sumatera Utara.
4. Bapak Romi Fadillah Rahmat, B.Comp.Sc.,M.Sc., selaku Ketua Program Studi
S1 Teknologi Informasi Universitas Sumatera Utara.
5. Ibu Sarah Purnamawati, ST., MSc., selaku Sekretaris Program Studi S1
Teknologi Informasi Universitas Sumatera Utara.
6. Seluruh Dosen Program Studi S1 Teknologi Informasi yang telah memberikan
ilmu yang bermanfaat bagi penulis selama masa perkuliahan.
7. Pegawai dan staff Fakultas Ilmu Komputer dan Teknologi Informasi
Universitas Sumatera Utara yang mendukung segala urusan administrasi selama
menyelesaikan skripsi.
iv
Penulis menyadari bahwa skripsi ini masih terdapat kekurangan. Oleh karena itu,
penulis mengharapkan kritik dan saran untuk penyempurnaan skripsi ini.
Penulis
v
ABSTRAK
Kata Kunci: Hutan Mangrove, Penyakit Daun, Tensorflow Lite, MobileNet SSD
vi
ABSTRACT
DAFTAR ISI
PERSETUJUAN Error! Bookmark not defined.
PERNYATAAN ii
UCAPAN TERIMA KASIH iii
ABSTRAK v
ABSTRACT vi
DAFTAR ISI vii
DAFTAR TABEL ix
DAFTAR GAMBAR x
BAB 1 1
PENDAHULUAN 1
1.1 Latar Belakang 1
1.2 Rumusan Masalah 2
1.3 Tujuan Penelitian 2
1.4 Batasan Masalah 2
1.5 Manfaat Penelitian 3
1.6 Metodologi Penelitian 3
1.7 Sistematika Penulisan 4
BAB 2 7
LANDASAN TEORI 7
2.1 Mangrove 7
2.2 Penyakit Daun Mangrove 7
2.3 MobileNet 8
2.4 Single Shot Multibox Detector (SSD) 9
2.5 Tensorflow Lite 9
2.6 Penelitian Terdahulu 10
BAB 3 14
ANALISIS DAN PERANCANGAN SISTEM 14
3.1 Data yang digunakan 14
3.2 Analisis Sistem 16
3.2.1 Pre-Processing 17
3.2.2 Image Classification 22
3.2.3 Learned Model 23
viii
DAFTAR TABEL
Tabel 2.1 Ukuran Parameter dan Komputasi pada Depthwise Separable Convolution. 8
DAFTAR GAMBAR
Gambar 3.4 Contoh citra data sebelum (kiri) dan setelah di resize (kanan) 17
Gambar 3.5 Membuka directory gambar untuk mengambil data yang akan di label 18
PENDAHULUAN
Hutan Mangrove yang biasa disebut juga hutan payau atau hutan bakau ini tumbuh
diatas substrat yang dialiri campuran air laut dan air tawar. Hutan Mangrove juga
merupakan bentuk ekosistem yang unik, dikarenakan sebagian tanaman ini dapat
ditemukan di seluruh garis pantai yang tanah nya bertekstur lumpur . sampai dengan
saat ini spesies tanaman mangrove yang sudah diketahui spesiesnya di Indonesia ada
sekitar 202 jenis spesies. Salah satunya yang bernama Avicennia marina yang hidup di
pesisir pantai Indonesia(Noor et al., 2006).
Tanaman mangrove juga memiliki kegunaan yang cukup berperan untuk
kelangsungan pantai. Antara lain untuk penyambang serta penyeimbang pantai. Sebagai
tanaman yang hidup di pesisir pantai, nutrisi yang terdapat pada tanaman mangrove ini
akan dialirkan atau diteruskan ke lautan dan daratan. Dilihat dari sudut pandang
ekonomi, tanaman ini sangat berperan bagi masyarakat pesisir dalam kegiatan
ekonominya (Strategi Nasional Mangrove, 2003). Dan jika dilihat dari segi ekologis,
tanaman mangrove ini juga sangat berguna untuk daerah pembesaran dan pemijahan
segala jenis hewan (Sediadi, 1991). Selain itu, bagian-bagian tanaman mangrove yang
jatuh seperti ranting, daun, dan sebagainya akan berguna untuk bahan makanan
hewan(Zamroni & Rohyani, 2008).
Perubahan karakter yang paling menonjol di tanaman mangrove terletak pada
daunnya. Daun mangrove sendiri dapat mengalami perubahan fisik tergantung pada
kondisi tanamannya (Nurakhman, 2002).
Penelitian terdahulu yang pernah dilakukan terkait penyakit pada daun adalah
“Automatic Grape Leaf Diseases Identification via UnitedModel Based on Multiple
Convolutional Neural Networks”. Penelitian ini dilakukan untuk mengidentifikasi
penyakit pada daun anggur dengan menggunakan model UnitedModel (Miaomiao et
al., 2019).
Ada pula penelitian tentang “Smart mobile application to recognize tomato leaf diseases
using Convolutional Neural Networks” penelitian ini juga dilakukan untuk
2
Saat ini untuk mendeteksi penyakit pada daun mangrove masih menggunakan website
yang belum bekerja secara real time, sedangkan para petani atau masyarakat
membutuhkan hasil yang cepat dan dengan keakuratan yang tinggi agar dapat
mengetahui secara pasti penyakit apa yang ada pada daun mangrove tersebut. Oleh
karena itu, diperlukannya suatu aplikasi yang bisa menampilkan data penyakit pada
daun secara realtime agar bisa dengan mudah membantu para petani mengetahui
penyakit pada daun tersebut.
Tujuan dilkakukannya penelitian ini untuk menghasilkan sebuah aplikasi yang mampu
mengklasifikasi penyakit pada daun Mangrove menggunakan metode MobileNet SSD
berbasis android secara realtime.
b. Latar belakang citra masih terdapat objek lain seperti pasir, daun, serta tangan
peneliti.
c. Spesies mangrove dan penyakitnya yang didapat masih terbatas.
d. Klasifikasi yang dihasilkan berupa penyakit daun rusak dan daun berulat.
e. Jarak pengambilan saat klasifikasi terbatas, tidak bisa terlalu jauh atau pun terlalu
dekat.
f. Kondisi cahaya tidak dapat terletak didepan kamera saat akan melakukan
klasifikasi.
Pada tahap studi literatur ini merupakan proses pengumpulan data penyakit daun
mangrove serta memahami bahan refrensi yang berkaitan dengan penelitian
mengenai MobileNet SSD yang diperoleh dari sumber-sumber seperti artikel,
buku, jurnal, skripsi, serta refrensi yang berhubungan dengan penelitian ini
2. Analisis Permasalahan
Pada tahap analisis permasalahan, akan menganalisis informasi yang didapat dari
tahapan sebelumnya, agar peneliti dapat memahami mengenai metode yang
digunakan yaitu MobileNet SSD untuk mengklasifikasi penyakit pada daun
mangrove
3. Perancangan Sistem
4
Tahap ini merupakan alur rancangan arsitektur. Rancangan metode dan algoritma
yang digunakan dari permasalahan analisi yang didapat pada tahap sebelumnya
4. Implementasi
Tahap ini merupakan implementasi yang didapat dari hasil analisis dalam bentuk
codingan menggunakan bahasa python dan java
5. Pengujian
Pada tahap pengujian ini merupakan tahapan pengujian untuk dapat melihat
tingkat akurasi yang diperoleh dari penerapan metode MobileNet SSD dan
melihat apakah sistem ini dapat berjalan menggunakan teori, algoritma, serta
tujuan yang sudah diterapkan dari penelitian ini.
Sistematika penulisan dari skripsi ini terdiri dari lima bagian utama sebagai berikut:
BAB 1. PENDAHULUAN
Pada bab pendahuluan akan berisi tentang latar belakang pilihan judul skripsi
“Klasifikasi Penyakit Pada Daun Mangrove Menggunakan Metode MobileNet SSD
Berbasis Mobile Secara Real Time", rumusan masalah, tujuan penelitian, batasan
masalah, manfaat penelitian, metodologi penelitian dan sistematika penulisan.
Bab ini berisi teori mengenai MobileNet, SSD, Mangrove, Penyakit Daun, Tensorflow
Lite, Android Studio dan pada penelitian yang telah dilakukan dahulu.
5
Bab ini membahas tentang analisis arsitektur umum dari metode MobileNet-SSD yang
digunakan pada Citra daun untuk mengklasifikasi penyakit pada daun mangrove
menjadi 2 clasess.
Pada bab ini akan membahas soal implementasi sistem yang sudah dirancang untuk
memaparkan hasil dari pengujian sistem.
Pada bab ini akan membahas tentang kesimpulan beserta saran yang dapat digunakan
untuk penelitian selanjutnya.
BAB 2
LANDASAN TEORI
2.1 Mangrove
mangrove atau yang dikenal juga sebagai tanaman bakau mempunyai karakter yang
unik, dimana tanaman ini memiliki akar yang melengkung serta pohon yang jumlahnya
relative sedikit. Ekosistem yang dimiliki tanaman mangrove cukup kompleks,
dikarenakan hutan mangrove ini menjadi habitat para satwa (kusmana,2010).
Penyakit pada daun mangrove terbagi dari 2 penyakit, yaitu daun rusak, dan daun yang
terkena hama. Daun rusak dapat ditandai dengan adanya bercak atau lubang pada daun.
Sedangkan daun yang terkena hama mempunyai gejala yang hampir sama dengan daun
rusak, namun dibelakang daun yang terkena hama terdapat adanya kepompong ulat
8
yang berbentuk kerucut. Penyebab penyakit pada daun mangrove ini juga disebabkan
oleh serangan serangga.
Khusunya di kawasan Asia Tenggara ada beberapa jenis hama dari ordo
Lepidoptera yang bisa menyerang tanaman mangrove, antara lain Streblote lipara,
Zeuzera conferta, Bagworms, dan Leaf miners (Su Ping et al., 2010). Hama-hama
tersebut akan menyerang buah, daun dan batang pada tanaman mangrove.
2.3 MobileNet
MobileNet adalah metode yang termasuk dalam salah satu bagian arsitektur
Convolutional Neural Network yang biasa digunakan untuk komputasi berlebih.
MobileNet sendiri dibangun oleh para peneliti untuk kebutuhan memasukkan arsitektur
CNN ke dalam ponsel. Perbedaan diantara kedua arsitektur MobileNet dan CNN ini
terletak pada penggunaan layernya. MobileNet juga terbagi menjadi 2 konvolusi yaitu
pointwise convolution dan depthwise convolution. Arsitektur MobileNet memanfaatkan
Batch Normalization (BN) dan Reactified-Linier unit (ReLU) untuk depthwise
convolution dan pointwise convolution. MobileNet dibangun di atas arsitektur jaringan
yang efisien dengan menggunakan konvolusi yang dapat dipisahkan secara mendalam
untuk menghasilkan Deep Neural Network yang ringan.
Tabel 2.1 Ukuran Parameter dan Komputasi pada Depthwise Separable Convolution
9
Model Deep Learning pada penelitian ini menggunakan konvolusi 3x3 dan mampu
menghemat daya komputasi dan ukuran model hingga 9 kali lebih efesien (Zhang et
al., 2017)
Perbedaan utama antara pelatihan detektor klasik seperti R-CNN dengan pelatihan SSD
adalah detektor objek klasik menggunakan proposal wilayah dan metode SSD
menggunakan data groundtruth yang harus ditetapkan untuk hasil yang ditentukan
dalam rangkaian hasil detektor yang jelas. Setelah penugasan ini ditentukan, loss
function dilakukan dari ujung ke ujung. Metode SSD melakukan pencocokan terhadap
objek dengan default bounding box melalui beragam skala dan rasio untuk setiap feature
map location. Setiap elemen dari feature map memiliki sejumlah kotak yang saling
berhubungan. Setiap bounding box dengan IoU lebih besar dari 0,5 dianggap cocok
terhadap objek dan akan diproses.
Tensorflow Lite merupakan sebuah library yang berguna untuk membantu developer
sehingga mampu menjalankan mode Tensorflow pada perangkat mobile. Tensorflow
Lite akan memanggil sebuah model Tensorflow yang sudah dibuat sebelumnya dan
akan diubah kedalam format tflite.
10
Pada penelitian ini, belum pernah dilakukannya penelitian terhadap penyakit pada daun
mangrove, namun beberapa peneliti banyak yang melakukan penilitian terhadap
penyakit pada daun tumbuhan serta sayur sayuran, seperti yang diteliti oleh (Bhatt P et
al., 2019) terkait “Identification of Diseases in Corn Leaves using Convolutional Neural
Networks and Boosting”. Pada penelitian ini melalui system yang diusulkan
memanfaatkan metode CNN peneliti mendapatkan akurasi 98% dengan skor klasifikasi
{precision, recall, f1-score} = {0.97, 0.98, 0.97}.
Selanjutnya pada penelitian (Miaomiao et al., 2019) terkait “Identifikasi
Penyakit Daun Anggur Otomatis Menggunakan UnitedModel Mutiple Convolutional
Neural Network”. Berdasarkan penelitian ini peneliti telah mengembangkan solusi
efektif untuk identifikasi penyakit pada daun anggur menggunakan UnitedModel yang
merupakan gabungan arsitektur dari CNN. Gambar daun anggur akan dibagi menjadi 4
kelas, termasuk 3 gambar gejala yang berbeda yaitu busuk hitam, esca, bercak daun
isariopsis, dan gambar daun yang sehat. Akurasi dari metode ini mencapai rata-rata
akurasi validasi 99,17% dan akurasi uji 98,57%.
Selanjutnya pada penelitian oleh (Chowdhury et al., 2020) terkait Identifikasi
Penyakit Padi dan Hama Menggunakan Metode Convolutional Neural Netwok. Pada
penelitian ini dibagi 2 arsitektur, dimana arsitektur pertama untuk skala besar seperti
VGG16 dan InceptionV3. Dan yang kedua arsitektur untuk perangkat mobile dengan
menggunakan model seperti MobileNet, Nasnet Mobile, dan SqueezeNet. Tingkat
akurasi pada penelitian ini mencapai 97,12%.
Selanjutnya pada penelitian yang dilakukan (Gensheng et al., 2019) terkait
Identifikasi Penyakit Daun Teh Menggunakan Improved Deep Convolutional Neural
Network. Dalam penelitian ini peneliti menggunakan modul ekstraksi yang
ditambahkan ke DCNN yang lebih baik dari model CIFAR10 untuk meningkatkan
kemampuan secara otomatis mengekstrak daun teh yang berpenyakit. Akurasi pada
penelitian ini mencapai 92,25%
Selanjutnya pada penelitian yang dilakukan oleh (Sharma et al., 2019) terkait Analisis
Kinerja Model Pembelajaran CNN untuk Mendeteksi Penyakit yang Mendalam pada
Tanaman Menggunakan Image Segmentation. Dalam penelitian ini peneliti melakukan
penelitian untuk meningkatkan metode yang dilakukan para peneliti sebelumnya dari
FCNN menjadi SCNN, menurut peneliti, SCNN mendapatkan akurasi mencapai 98,6%.
11
Selanjutnya pada penelitian yang dilakukan oleh (Azeddine & Florentine, 2019) terkait
“Smart Mobile Application to Recognize Tomato Leaf Disease Using Convolutional
Neural Network”. Dalam penelitian ini peneliti membuat model yang terinspirasi dari
MobileNet Model CNN yang dimana bisa membuat akurasi dari penelitian ini jauh
meningkat. Peneliti juga mengupulkan data sebanyak 7176 gambar daun tomat untuk
di training. Serta akurasi yang didapat dari penelitian ini 88,4% .
Penelitian terdahulu yang telah dijelaskan diatas dapat dilihat pada Tabel 2.2.
Convolutional Neural
1 (Miomiao ji Peneliti menggunakan metode
Network (CNN)
et.al 2019) terintegrasi UnitedModel yang
dirancang untuk membedakan
daun dengan penyakit anggur
yang umum seperti bercak hitam,
dan bercak daun esca. Serta
memiliki akurasi 98,57%
Deep Convolutional
4 (Gensheng et Penelitian ini menggunakan
Neural Network
al., 2019) model CIFAR10-quick model,
(DCNN). dan mendapatkan akurasi 92,25%
Convolutional Neural
5 (Sharma et al., Penelitian ini membandingkan 2
Network (CNN).
2019) model F-CNN dan S-CNN dan
mendapatkan akurasi yang
awalnya 42,3% menjadi 98,6%
Perbedaan penelitian yang dilakukan oleh (Miaomiao et al., 2019) dengan (Chowdhury
et al., 2020) terletak pada metode penelitiannya, dimana penelitian (Miaomiao et al.,
2019) menggunakan metode UnitedModel Multiple Convolutional Neural Network
yang dimana metode ini sebenarnya adalah gabungan dari metode Convolutional Neural
Network itu sendiri. Sedangkan penelitian yang dilakukan (Chowdhury et al., 2019)
menggunakan metode CNN biasa namun penelitiannya di implementasikan ke
perangkat mobile menggunakan 3 metode, yaitu MobileNet, Nasnet Mobile, dan
Squeeze Net.
Selanjutnya, perbedaan pada penelitian (Bhatt et al., 2019) dengan (Gensheng
et al., 2019) terletak pada metodenya juga, yang dimana pada penelitian (Bhatt et al.,
2019) menggunakan metode Contvolutional Neural Network, sendangkan penelitian
(Gensheng et al., 2019) menggunakan metode Deep Convolutional Neural Network.
Dan pada penelitian (Gensheng et al.,2019) juga menggunakan model CIFAR10-quick.
Sedangkan, perbedaan keseluruhan dari penelitian terdahulu dengan penelitian
ini terletak dari objek yang di teliti, seperti pada yang dilakukan oleh (Miaomiao et al.,
2020) peneliti tersebut meneliti penyakit pada daun anggur, dan (Bhatt et al., 2019)
meneliti penyakit pada tanaman jagung, dan (Gensheng et al., 2019) meneliti penyakit
pada daun teh. Sedangkan yang objek yang diteliti pada penelitian ini adalah
mengklasifikasi penyakit pada daun mangrove. Perbedaan juga terletak pada metode
13
Data yang digunakan pada penelitian ini adalah berupa citra daun mangrove dengan
format file JPG yang diperoleh dari Pantai Wisata Mangrove di Kecamatan Perbaungan
Kabupaten Serdang Bedagai Sumatera Utara. Data citra daun mangrove diambil
menggunakan kamera pada perangkat Samsung Galaxy S9 dengan spesifikasi sebagai
berikut :
1. Chipset Exynos 9810 .
2. OS Android 10 (Quince Tart).
3. RAM 4 GB.
4. Kamera Belakang 12 MegaPixel.
Pengambilan data dilakukan dengan rentang jarak 7-45 cm, dengan jarak
terdekat dari kamera sekitar 7 cm dan jarak terjauh sekitar 45 cm. Pengambilan data
dilakukan dengan tidak menghadap ke sumber cahaya untuk hasil yang lebih optimal,
Sehingga jarak dan cahaya cukup berpengaruh pada tingkat akurasi saat sistem ini
diimplementasikan.
Terdapat dua penyakit pada daun yang digunakan pada penelitian ini yaitu
penyakit daun rusak dan penyakit daun berulat yang berjumlah 1390 data citra.
Contoh dari data citra yang diperoleh dapat dilihat pada Gambar 3.1 dan Gambar 3.2.
Pemabagian dataset menjadi data latih bertujuan untuk melatih tingkat akurasi
dengan merubah parameter yang ada untuk menyesuaikan dengan data yang diberikan
sehingga dapat memahami informasi-informasi pada data tersebut. Sedangkan, data uji
bertujuan untuk melakukan pengujian terhadap performa algoritma yang telah dilatih.
Tetapi data pengujian sendiri tidak diambil dari jumlah dataset, dikarenakan penelitian
ini realtime, sehingga data pengujian langsung diambil saat implentasi ke objeknya
langsung.
16
adapun proses klasifikasi yang dilakukan pada penelitian ini memiliki beberapa tahap.
Beberapa tahapannya yaitu Image Pre-Processing, Image Classification menggunakan
MobileNet SSD, convert to TFLite, dan output yang dihasilkan dari penyakit pada daun
mangrove berupa daun rusak atau daun berulat. Tahapan diatas dapat dilihat di
arsitektur umum pada Gambar 3.3.
Image Acquisition
Data Training
Testing
Image Pre-Processing
Data Training
Resizing Images
Testing
Labeling Images
Convert
Image Classification
Learned Model
MobileNet SSD
TFLite Model
Output
Hasil Klasifikasi
Penyakit Daun
Mangrove
3.2.1 Pre-Processing
Sebelum memasuki proses klasifikasi, data penyakit daun mangrove perlu dilakukannya
proses pre-processing yang dimana proses ini akan melewati 3 tahap yaitu
Pada tahap ini, dilakukannya Resizing Images pada data daun mangrove menjadi 640 x
640. Dikarenakan saat data diambil, hasil gambar memiliki ukuran 1440 x 2560 atau
16:9 dikarenakan data diambil menggunakan ponsel. Maka dari itu, data yang diambil
harus di resize terlebih dahulu agar nantinya data yang dimiliki bisa masuk kedalam
TF-Lite Model.
Gambar 3.4 Contoh citra data sebelum (kiri) dan setelah di resize (kanan)
Kemudian, Langkah-langkah dalam proses Resizing Image dapat dilihat pada
pseudocode berikut.
Langkah pertama yang dilakukan adalah mengambil data dari folder path data_train
yang berisi data yang akan di resize. Kemudian data yang sudah diambil tersebut akan
di resize menjadi ukuran 1:1 atau 640x640 menggunakan OpenCV untuk meringankan
18
saat proses training data. Kemudian hasil data yang sudah di resize akan dimasukkan
kedalam path folder bernama train.
Pada tahap ini, setelah data berhasil di resize, selanjutnya akan dilakukan proses
Labeling Images menggunakan aplikasi LabelImg yang berfungsi untuk memberikan
label kalsifikasi pada citra berdasarkan penyakitnya. Hasil pelabelan tersebut akan
tersimpan dalam format xml. Informasi yang terdapat dalam file tersebut berupa
koordinat label pada citra dan nama label yang nantinya akan berguna pada proses
selanjutnya. Contoh proses Labeling Images menggunakan aplikasi LabelImg dapat
dilihat pada gambar 3.5, gambar 3.6 dan gambar 3.7.
Gambar 3.5 Membuka directory gambar untuk mengambil data yang akan di label
19
dan xmlnya yang telah dibuat. Dan hasil xml yang sudah dibuat dapat dilihat di folder
yang sama dimana data tersebut diambil.
Pada tahap ini, setelah data selesai di label, proses selanjutnya yaitu melakukan proses
Convert TF Record dimana data yang sudah selesai di label akan di convert menjadi file
berformat Tensorflow Record File (TFRecord). Seluruh data xml dan citra yang telah
kita dapatkan dari proses sebelumnya akan di convert menjadi file TFRecord dengan
nama train.record. namun sebelumnya, seluruh data xml akan diconvert terlebih dahulu
ke dalam format csv seperti yang dapat dilihat pada gambar 3.8.
Langkah Langkah yang dilalui saat mengconvert yaitu image yang akan di proses akan
dipanggil melalui path dimana folder image berada, kemudian menyimpan berapa
tinggi dan lebar dari gambar tersebut serta menghitung koordinat label yang sudah
dibuat sebelumnya, yang kemudian akan disimpan dalam file bernama tfrecord.
Pada tahap ini file yang sudah terbagi sebelumnya akan dimasukkan ke dalam model
MobileNet SSD untuk diklasifikasi. SSD akan berperan untuk mengatur pendeteksian
objek melalui bounding box, sedangan MobileNet akan berperan untuk mengklasifikasi
objek yang sudah terdeteksi.
Pada tahap ini, sebelum memulai tahap training, pipeline yang ada dalam model
MobileNet SSD v2 FPNLite 640x640 harus dikonfigurasi terlebih dahulu. Yang dimana
didalam konfigurasi tersebut dapat mengatur berapa banyak epoch serta batch yang
dibutuhkan saat men-training data.
Sebelum menkonfirgursi pipeline, pembuatan labelmap diperlukan sebagai label
klasifikasi objek yang nantinya akan digunakan saat output di aplikasi. File tersebut
bernama labelmap.txt yang berisi banyaknya kategori data yang dimiliki dari kategori
sistem. Dalam penelitian ini file labelmap.txt berisi id 1 daun rusak dan id 2 daun
berulat. Lalu sistem akan menilai setiap kelas dari objek daun mangrove menjadi 2
kategori yaitu daun rusak dan daun berulat.
Setelah pembuatan labelmap usai, selanjutnya mengkonfigurasi pipeline yang
berisi berapa jumlah steps, batch size, serta epoch. Dan mengatur beberapa lokasi data
seperti labelmap dan TFRecords. Lalu pipeline akan dijalankan di dalam anaconda
untuk memulai proses training.
23
Proses training pada penelitian ini menggunakan metode MobileNet SSD serta
Tensorflow. Proses training memerlukan waktu lebih kuran 8-9 jam dengan jumlah citra
1390 data.
Hasil dari training yang didapat pada proses sebelumnya akan menjadi sebuah file
Bernama savemodel dengan format PB. PB merupakan singkatan dari protobuf pada
tensorflow. File tersebut berisi weight(bobot) model hasil training dimana objek daun
mempunyai 2 klasifikasi yaitu daun rusak dan daun berulat. Hasil klasifikasi data
training akan menjadi learned model sebagai data latih. Nantinya output yang
dihasilkan dari proses Image Classification disebut dengan learned model. Dan data
tersebut akan di convert ke TFLite Model agar bisa digunakan ke dalam ponsel android.
Pada tahap ini, savedmodel yang sudah kita dapatkan pada proses sebelumya akan
diubah menjadi Tensorflow Lite. Tensorflow Lite menyediakan framework untuk model
tensorflow yang sudah dilatih untuk dikompresi dan diterapkan pada perangkat ponsel
android agar nantinya model tersebut bisa masuk kedalam ponsel android.
24
Tahap ini merupakan tahap pengujian yang sudah melewati tahap training. Proses ini
dilakukan untuk mengetahui apakah sistem yang datanya sudah ditraining sebelumnya
dapat mengklasifikasi objek menjadi 2 kategori, yaitu daun rusak dan daun berulat.
Serta untuk menghitung akurasi yang didapat setelah menggunakan metode MobileNet
SSD.
3.2.6 Output
Output merupakan tahap terakhir dari dari sistem. Yang dimana pada tahap ini akan
menampilkan boundingbox serta akurasi dari objek yang sedang disorot, dan
mengklasifikasi apakah daun tersebut terjangkit penyakit daun rusak atau daun berulat.
Pada tahap ini menjelaskan tentang perancangan antarmuka sistem aplikasi klasifikasi
penyakit pada daun mangrove yang bertujuan untuk memberikan gambaran umum dan
memudahkan pengguna dalam mengoperasikan aplikasi. Sistem dalam aplikasi ini
menggunakan aplikasi Tensorflow Lite sehingga hanya terdiri dari 1 tampilan utama
saja. Pada tampilan utama ini aplikasi akan langsung mengklasifikasi objek saat
diarahkan ke objek yang dituju beserta munculnya bounding box yang berisi informasi
penyakit dari daun mangrove yang di sorot. Perancangan antar muka aplikasi dapat
dilihat pada Gambar 3.5.
25
BAB 4
Pada tahap ini, klasifikasi penyakit pada daun mangrove menggunakan metode
MobileNet SSD memerlukan perangkat keras dan perangkat lunak, yaitu:
Citra data daun mangrove yang diperoleh menggunakan Samsung Galaxy S9 ini dibagi
menjadi 2 jenis klasifikasi, yaitu daun rusak dan daun berulat. Beberapa contoh data
pada masing-masing jenis klasifikasi dapat dilihat secara berurut pada Gambar 4.1, 4.2.
Hasil rancangan yang dilakukan berdasarkan hasil yang sebelumnya sudah dibahas di
bab 3, yaitu:
Halaman awal aplikasi akan menjadi tampilan utama dari aplikasi ini. Dimana pada
tampilan utama akan menampilkan kamera pada ponsel. Tampilan utama dapat dilihat
pada Gambar 4.3.
Tampilan sistem yang dibangun berupa halaman utama yang berisi informasi mengenai
objek daun beserta tingkat akurasi keakuratan penyakit yang dialami daun mangrove
tersebut.
29
Tahap awal, user akan memasuki aplikasi dengan menekan ikon aplikasi pada
ponsel. Lalu user perlu mengarahkan ponsel kearah daun mangrove yang ingin di
deteksi. Lalu aplikasi akan mengeluarkan bounding box beserta informasi penyakit
daun tersebut dan akurasi nya.
Proses pengujian sistem akan dilakukan untuk melihat hasil kinerja dari klasifikasi
menggunakan metode MobileNet SSD dalam mengklasifikasikan penyakit pada daun
mangrove menjadi 2 kategori yaitu penyakit daun rusak dan penyakit daun berulat.
Beberapa hasil dapat dilihat dari Tabel 4.1.
30
Daun Rusak
Daun Rusak &
2 & Daun Berhasil
Daun Berulat
Berulat
31
Daun Janda
Daun Rusak Gagal
Bolong
16
Daun Rusak
17 & Daun Daun Berulat Berhasil
Berulat
36
Daun Rusak
19 & Daun Daun Berulat Berhasil
Berulat
Daun Rusak
23 & Daun Daun Berulat Berhasil
Berulat
38
Untuk menghitung persentase akurasi secara manual dapat dilihat pada persamaan
4.1.
Tabel 4.2 menjelaskan bahwa Citra daun rusak tidak mempunyai kesalahan
dalam mendeteksi, sedangkan daun berulat mengalami beberapa kesalahan dalam
mendeteksi objek.
Penelitian dengan judul Klasifikasi Penyakit Daun Mangrove Menggunakan
Metode MobileNet SSD Berbasis Mobile Secara Realtime ini mampu mengklasifikasi
penyakit daun dengan akurasi 93,4%. Sistem dapat mengklasifikasi penyakit daun
mangrove secara real time menggunakan ponsel android. Adapun penyebab kesalahan
tersebut dikarenakan dataset daun berulat yang diperoleh tidak sebanyak dataset daun
rusak. Penyebab lain kesalahan sistem disebabkan oleh banyaknya kemiripan bentuk
antara daun rusak dengan daun berulat sehingga sistem terkadang salah mendeteksi
apakah objek tersebut daun berulat atau daun rusak.
Setelah melakukan percobaan lain dengan menggunakan 2 perangkat yaitu
Samsung J3 Pro dan Samsung A32 didapatkan hasil yang berbeda saat menjalankan
aplikasi, dimana di perangkat Samsung J3 pro yang memiliki RAM 2GB dan resolusi
45
kamera 8 MP, aplikasi dapat terbuka dengan baik namun proses klasifikasi tidak dapat
berjalan. Sedangkan percobaan menggunakan perangkat Samsung A32 yang memiliki
RAM 6 GB dan resolusi kamera 64 MP mampu berjalan dengan sangat baik dan
mengklasifikasi dengan sangat baik. Maka dengan hasil ini dapat disimpulkan
bahwasannya spesifikasi minimum untuk aplikasi ini harus memiliki RAM 4 GB dan
resolusi kamera 12 MP.
BAB 5
5.1 Kesimpulan
5.2 Saran
Anna Ida Sunaryo Purwiyanto. (2013). Daya Serap Akar dan Daun Mangrove Terhadap
Logam Tembaga (Cu) di Tanjung Api-Api, Sumatera Selatan. Jurnal Maspari, 5
(1)(1), 1–5.
Bhatt, P., Sarangi, S., Shivhare, A., Singh, D., & Pappula, S. (2019). Identification of
diseases in corn leaves using convolutional neural networks and boosting.
ICPRAM 2019 - Proceedings of the 8th International Conference on Pattern
Recognition Applications and Methods, Icpram, 894–899.
https://doi.org/10.5220/0007687608940899
Elhassouny, A., & Smarandache, F. (2019). Smart mobile application to recognize
tomato leaf diseases using Convolutional Neural Networks. Proceedings of 2019
International Conference of Computer Science and Renewable Energies, ICCSRE
2019, 1–4. https://doi.org/10.1109/ICCSRE.2019.8807737
Hu, G., Yang, X., Zhang, Y., & Wan, M. (2019). Identification of tea leaf diseases by
using an improved deep convolutional neural network. Sustainable Computing:
Informatics and Systems, 24, 100353.
https://doi.org/10.1016/j.suscom.2019.100353
Ji, M., Zhang, L., & Wu, Q. (2019). Automatic grape leaf diseases identification via
UnitedModel based on multiple convolutional neural networks. Information
Processing in Agriculture. https://doi.org/10.1016/j.inpa.2019.10.003
Purnobasuki, H., Pengajar, S., Fmipa, B., Airlangga, U., Mulyorejo, J., & Unair, K. C.
(2001). Potensi Mangrove Sebagai Tanaman Obat Prospect of Mangrove as
Herbal Medicine Daftar Pustaka. 1998.
Rahman, C. R., Arko, P. S., Ali, M. E., Iqbal Khan, M. A., Apon, S. H., Nowrin, F., &
Wasif, A. (2020). Identification and recognition of rice diseases and pests using
convolutional neural networks. Biosystems Engineering, 194, 112–120.
https://doi.org/10.1016/j.biosystemseng.2020.03.020
Sardogan, M., Tuncer, A., & Ozen, Y. (2018). Plant Leaf Disease Detection and
Classification Based on CNN with LVQ Algorithm. UBMK 2018 - 3rd
International Conference on Computer Science and Engineering, 382–385.
https://doi.org/10.1109/UBMK.2018.8566635
Sharma, P., Berwal, Y. P. S., & Ghai, W. (2019). Performance analysis of deep learning
49
CNN models for disease detection in plants using image segmentation. Information
Processing in Agriculture. https://doi.org/10.1016/j.inpa.2019.11.001
Sladojevic, S., Arsenovic, M., Anderla, A., Culibrk, D., & Stefanovic, D. (2016). Deep
Neural Networks Based Recognition of Plant Diseases by Leaf Image
Classification. Computational Intelligence and Neuroscience, 2016.
https://doi.org/10.1155/2016/3289801
Zhang, S., Zhang, S., Zhang, C., Wang, X., & Shi, Y. (2019). Cucumber leaf disease
identification with global pooling dilated convolutional neural network.
Computers and Electronics in Agriculture, 162(April), 422–430.
https://doi.org/10.1016/j.compag.2019.03.012.
50
1. Resizing
# Importing os and cv2 module
import cv2
import os
for i in os.listdir(path):
print(i)
2. XML To CSV
import os
import glob
import pandas as pd
import xml.etree.ElementTree as ET
def xml_to_csv(path):
xml_list = []
for xml_file in glob.glob(path + '/*.xml'):
tree = ET.parse(xml_file)
root = tree.getroot()
for member in root.findall('object'):
value = (root.find('filename').text,
int(root.find('size')[0].text),
int(root.find('size')[1].text),
51
member[0].text,
int(member[4][0].text),
int(member[4][1].text),
int(member[4][2].text),
int(member[4][3].text)
)
xml_list.append(value)
column_name = ['filename', 'width', 'height',
'class', 'xmin', 'ymin', 'xmax', 'ymax']
xml_df = pd.DataFrame(xml_list, columns=column_name)
return xml_df
xml_df.to_csv('images/data/{}_labels.csv'.format(directory),
index=None)
print('Successfully converted xml to csv.')
main()
3. Generate TFRecord
from __future__ import division
from __future__ import print_function
from __future__ import absolute_import
import os
import io
import pandas as pd
import tensorflow.compat.v1 as tf
import sys
import os.path
sys.path.append("D:\\foto\\models\\research\\")
sys.path.append("D:\\foto\\models\\research\\object_detectio
n\\utils")
flags = tf.app.flags
52
flags.DEFINE_string('csv_input', '',
'D:\\foto\\images\\data')
flags.DEFINE_string('output_path', '',
'D:\\foto\\images\\data')
flags.DEFINE_string('image_dir', '',
'D:\\foto\\images\\test')
FLAGS = flags.FLAGS
filename = group.filename.encode('utf8')
height = 640
width = 640
image_format = b'jpg'
xmins = []
xmaxs = []
ymins = []
ymaxs = []
classes_text = []
classes = [2]
53
tf_example =
tf.train.Example(features=tf.train.Features(feature={
'image/height': dataset_util.int64_feature(height),
'image/width': dataset_util.int64_feature(width),
'image/filename':
dataset_util.bytes_feature(filename),
'image/source_id':
dataset_util.bytes_feature(filename),
'image/encoded':
dataset_util.bytes_feature(encoded_jpg),
'image/format':
dataset_util.bytes_feature(image_format),
'image/object/bbox/xmin':
dataset_util.float_list_feature(xmins),
'image/object/bbox/xmax':
dataset_util.float_list_feature(xmaxs),
'image/object/bbox/ymin':
dataset_util.float_list_feature(ymins),
'image/object/bbox/ymax':
dataset_util.float_list_feature(ymaxs),
'image/object/class/text':
dataset_util.bytes_list_feature(classes_text),
'image/object/class/label':
dataset_util.int64_list_feature(classes),
}))
return tf_example
def main(_):
writer = tf.python_io.TFRecordWriter(FLAGS.output_path)
path = os.path.join(FLAGS.image_dir)
examples = pd.read_csv(FLAGS.csv_input)
grouped = split(examples, 'filename')
for group in grouped:
tf_example = create_tf_example(group, path)
writer.write(tf_example.SerializeToString())
writer.close()
54
output_path = os.path.join(os.getcwd(),
FLAGS.output_path)
print('Successfully created the TFRecords:
{}'.format(output_path))
if __name__ == '__main__':
tf.app.run()
4. Data Training
from absl import flags
import tensorflow.compat.v2 as tf
from object_detection import model_lib_v2
FLAGS = flags.FLAGS
def main(unused_argv):
flags.mark_flag_as_required('model_dir')
flags.mark_flag_as_required('pipeline_config_path')
tf.config.set_soft_device_placement(True)
if FLAGS.checkpoint_dir:
model_lib_v2.eval_continuously(
pipeline_config_path=FLAGS.pipeline_config_path,
model_dir=FLAGS.model_dir,
train_steps=FLAGS.num_train_steps,
sample_1_of_n_eval_examples=FLAGS.sample_1_of_n_eval_example
s,
sample_1_of_n_eval_on_train_examples=(
FLAGS.sample_1_of_n_eval_on_train_examples),
checkpoint_dir=FLAGS.checkpoint_dir,
wait_interval=300, timeout=FLAGS.eval_timeout)
else:
if FLAGS.use_tpu:
# TPU is automatically inferred if tpu_name is None
and
# we are running under cloud ai-platform.
56
resolver =
tf.distribute.cluster_resolver.TPUClusterResolver(
FLAGS.tpu_name)
tf.config.experimental_connect_to_cluster(resolver)
tf.tpu.experimental.initialize_tpu_system(resolver)
strategy =
tf.distribute.experimental.TPUStrategy(resolver)
elif FLAGS.num_workers > 1:
strategy =
tf.distribute.experimental.MultiWorkerMirroredStrategy()
else:
strategy = tf.compat.v2.distribute.MirroredStrategy()
with strategy.scope():
model_lib_v2.train_loop(
pipeline_config_path=FLAGS.pipeline_config_path,
model_dir=FLAGS.model_dir,
train_steps=FLAGS.num_train_steps,
use_tpu=FLAGS.use_tpu,
checkpoint_every_n=FLAGS.checkpoint_every_n,
record_summaries=FLAGS.record_summaries)
if __name__ == '__main__':
tf.compat.v1.app.run()