Jurnal 10 - Klasifikasi Daun Mangrove (SSD)
Jurnal 10 - Klasifikasi Daun Mangrove (SSD)
SKRIPSI
SKRIPSI
Diajukan untuk melengkapi tugas dan memenuhi syarat memperoleh ijazah Sarjana
Teknologi Informasi
PERNYATAAN
SKRIPSI
Saya mengakui bahwa skripsi ini adalah hasil karya saya sendiri, kecuali beberapa
kutipan dan ringkasan yang masing-masing telah disebutkan sumbernya.
Puji dan juga syukur kepada Allah SWT, karena berkat rahmat, ridho juga karunia-Nya
penulis mampu untuk dapat menyelesaikan skripsi sebagai sebuah syarat untuk meraih
gelar Sarjana Komputer, pada Program Studi S1 Teknologi Informasi Fakultas Ilmu
Komputer dan Teknologi Informasi Universitas Sumatera Utara.
Penulis juga mengucapkan terimakasih dan menyampaikan kepada semua pihak
yang selama ini telah membantu penulis dalam proses menyelesaikan skripsi. Penulis
ini berterimakasih kepada :
1. Keluarga dari penulis, Ayahanda Drs Nasrul Aziz Siregar dan Ibunda Linda
Asmita Nasution S.Pd yang senantiasa sedari dulu mendoakan, membesarkan,
merawat, memberikan semangat, memberikan ilmu, memberikan kasih sayang
yang tiada batasnya kepada penulis. Kemudian juga kepada adik dari penulis,
Nazla Asria Ulfa Siregar 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.,M.Sc 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 Universias Sumatera Utara.
5. Ibu Sarah Purnamawati, ST., MSc., selaku Sekretaris Program Studi S1
Teknologi Informasi Universitas Sumatera Utara.
6. Kepada semua dosen S1 Teknologi Informasi yang sudah memberikan banyak
ilmu yang bermanfaat bagi penulis selama berada di perkuliahan.
7. Staff dan pegawai Fasilkom-TI Universitas Sumatera Utara yang membantu
segala urusan administrasi dalam menyelesaikan skripsi.
8. Marisa Raudiah yang telah menemani penulis sejak awal perkuliahan hingga
sekarang, selalu ada dalam situasi senang maupun susah, memberikan semangat
yang tak henti-henti, dan membantu penulis dalam perkuliahan hingga penulisan
skripsi.
iv
Penulis menyadari di dalam skripsi ini masih terdapat kekurangan. Untuk itu,
penulis berharap adanya sebuah kritik maupun saran untuk dapat menyempurnakan
skripsi ini.
Penulis
v
ABSTRAK
Mangrove merupakan kumpulan atau individu dari tumbuhan yang hidup pada sebuah
komunitas yang berada di daerah pasang dan surut. Hutan mangrove sendiri terdiri dari
berbagai jenis pohon dan semak yang terbagi atas 8 famili yang berbeda. Tumbuhan
mangrove terdiri dari beberapa bagian utama seperti pada bagian tubuh tumbuhan
umumnya, seperti batang, akar, bunga, daun dan juga buah. Data daun mangrove
diambil di pantai mangrove yang ada di Kecamatan Perbaungan Kabupaten Serdang
Bedagai yang menyediakan dua jenis mangrove yaitu Rhizopora Mucronata dan
Avicennia Alba. Pada penelitian ini, data daun mangrove berjumlah sebanyak 2124
data. Kemudian, data melalui dua tahap proses pre-processing yaitu resizing untuk
mengubah ukuran data citra daun menjadi 640 x 640 dan labeling menggunakan aplikasi
labellmg untuk menandakan objek khusus pada citra dan agar citra mampu dibaca oleh
sistem. Proses classification menggunakan metode Mobilenet-SSD untuk
mengklasifikasi data citra daun menjadi 2 Classes, yaitu Rhizophora Mucronata dan
Avicennia Alba. Sistem yang dibangun mampu menghasilkan tingkat akurasi sebesar
93,3%.
ABSTRACT
Mangroves are a group or individual plant species that live and form a community in
the tidal and low tide areas. Mangrove forest itself consists of various types of trees and
shrubs which are divided into 8 different families. Mangrove plants consist of several
main parts in general plant body parts, such as stems, roots, flowers, leaves and fruit.
Mangrove leaf data was taken on the mangrove beach in Perbaungan District, Serdang
Bedagai Regency, which provides two types of mangroves, namely Rhizopora
Mucronata and Avicennia Alba. In this study, there were 2124 mangrove leaf data.
Then, the data goes through two stages of the pre-processing process, namely resizing
to resize the leaf image data to 640 x 640 and labeling using the labellmg application
to indicate special objects in the image and so that the image can be read by the system.
The classification process uses the Mobilenet-SSD method to classify leaf image data
into 2 classes, namely Rhizophora Mucronata and Avicennia Alba. The system built is
able to produce an accuracy rate of 93.3%.
DAFTAR ISI
PERSETUJUAN i
PERNYATAAN ii
ABSTRAK v
ABSTRACT vi
DAFTAR TABEL x
DAFTAR GAMBAR xi
BAB 1 PENDAHULUAN 1
2.2 Mangrove 9
2.6 Mobilenet 12
2.6 SSD 14
2.7.1 Accuracy 16
2.7.2 Precision 16
2.7.3 Recall 17
3.2.2.1 Resizing 26
3.2.2.2 Labeling 27
3.2.5 Output 36
BAB 5 PENUTUP 56
5.1 Kesimpulan 56
5.2 Saran 56
DAFTAR PUSTAKA 57
x
DAFTAR TABEL
DAFTAR GAMBAR
Mangrove merupakan kumpulan dari atau individu tumbuhan yang hidup dan juga
membentuk sebuah komunitas yang berada di daerah pasang dan surut (Kusmana,
2002). Mangrove juga merupakan sebuah model hutan yang hidup secara alami dengan
dipengaruhi pasang surutnya air laut. Mangrove bisa tergenang saat keadaan pasang dan
bisa bebas dari genangan saat terjadinya surut. Hutan mangrove terbagi atas 8 famili
yang berbeda.
Meski memiliki wilayah penyebaran yang cukup luas, mangrove daerah tropis
termasuk yang memiliki paling banyak spesies. Dikarenakan Asia Tenggara berada di
daerah tropis, sepertiga luasan mangrove dunia berada di Asia Tenggara. Dari jumlah
itu, sekitar 80 persennya berada di wilayah Indonesia. Hal itu kemudian membuat
Indonesia memiliki wilayah mangrove paling luas di seluruh dunia. Disamping itu,
terdapat sangat banyak fungsi yang penting untuk alam, meliputi fungsi fisik seperti
menjaga garis pantai dari abrasi, fungsi biologis seperti tempat pembenihan ikan, udang
dan biota air lainnya, fungsi ekonomi sebagai sumber bahan bakar, pertambakan dan
tempat pembuatan garam (Naamin, 1977).
Tumbuhan mangrove terdiri dari beberapa bagian utama seperti pada bagian
tubuh tumbuhan umumnya, seperti batang, akar, bunga, daun, dan buah. Daun
merupakan satu dari beberapa bagian mangrove yang bisa dimanfaatkan untuk dapat
membedakan spesies mangrove yang beraneka ragam.
Namun, dikarenakan begitu banyaknya spesies mangrove yang ada,
pengklasifikasian jenis mangrove melalui daun menjadi cukup sulit untuk dilakukan,
terlebih jika diantara spesies mangrove tersebut memiliki bentuk daun yang hampir
sama. Untuk itu diperlukan sebuah sistem klasifikasi yang bisa membedakan jenis
spesies mangrove berdasarkan daun sehingga mampu memudahkan masyarakat atau
petani yang ada.
Belum ada penelitian terkait mengenai klasifikasi daun mangrove secara
realtime. Namun, ada beberapa penelitian yang telah dilakukan dalam pengklasifikasian
jenis-jenis daun pada tumbuhan lain.
2
Daun merupakan salah satu bagian tubuh utama yang dapat digunakan untuk
membedakan jenis spesies tumbuhan mangrove. Dikarenakan begitu banyaknya spesies
yang ada, disertai dengan banyaknya bentuk daun yang hampir serupa menyebabkan
proses identifikasi jenis mangrove berdasarkan daun tanpa alat khusus atau pengetahuan
yang cukup menjadi sulit dilakukan. Oleh karena itu, dibutuhkan suatu sistem
pengolahan citra berbasis aplikasi mobile yang mampu mengklasifikasikan jenis
tumbuhan mangrove berdasarkan daunnya secara realtime sehingga membantu
masyarakat untuk lebih mudah mengetahui jenis tumbuhan mangrove.
Tujuan dilakukannya penelitian ini adalah untuk menghasilkan suatu sistem yang
mampu mengklasifikasikan jenis mangrove dari citra daun menggunakan metode
Mobilenet-SSD berbasis mobile secara realtime.
Adapun tahap atau langkah yang digunakan dalam penulisan penelitian ini yaitu:
1. Studi Literatur
4
Tahap ini merupakan proses melakukan pengambilan data citra daun dan
mempelajari bahan referensi yang berkaitan dengan penelitian mengenai daun
mangrove dan metode Mobilenet-SSD yang diperoleh dari berbagai jurnal,
artikel, skripsi dan juga sumber lainnya.
2. Analisis Permasalahan
Tahap ini adalah tahap dimana akan dilakukan proses menganalisis informasi
yang didapat pada tahapan sebelumnya agar mendapatkan pengetahuan dan juga
pemahaman mengenai metode yang akan diterapkan yakni Mobilenet-SSD untuk
mengklasifikasi jenis mangrove dari citra daun.
3. Perancangan Sistem
Tahap ini merupakan tahapan dimana kemudian dilakukan proses perancangan
bentuk arsitektur pengaplikasian pada sistem, perancangan algoritma dan juga
metode yang akan digunakan oleh penulis yang didapatkan dari analisis masalah-
masalah yang ada di tahap sebelumnya
4. Implementasi
Tahap ini merupakan tahap lanjutan yang akan menerapkan hasil analisis
sebelumnya untuk diimplementasikan ke dalam bentuk pembuatan program
menggunakan bahasa pemrograman Java.
5. Pengujian
Tahap ini merupakan tahapan dimana kemudian akan dilakukan pengujian untuk
dapat mengetahui tingkat akurasi dari penerapan metode Mobilenet-SSD. Pada
tahap ini diharapkan perancangan aplikasi yang telah dilakukan berjalan sesuai
dengan teori, metode, algoritma dan juga sesuai sesuai dengan tujuan.
6. Dokumentasi dan Penyusunan Laporan
Tahap ini adalah tahapan untuk melakukan penyusunan dokumentasi dan laporan
yang sistematis agar dapat dengan mudah dipahami dan untuk kemudian
digunakan pada penelitian selanjutnya.
BAB 1. PENDAHULUAN
5
Bab ini berisikan latar belakang dalam melakukan pemilihan judul skripsi “Klasifikasi
Daun Mangrove Menggunakan Metode Mobilenet-SSD Berbasis Mobile Secara
Realtime".
Bab ini berisi teori mengenai Android Studio, Mobilenet-SSD, Mangrove, Daun
Mangrove, Tensorflow Lite dan penelitian yang telah dilakukan dahulu.
Bab ini membahas tentang analisis pada arsitektur umum sistem yang dibuat untuk
mengklasifikasi daun mangrove menjadi 2 jenis.
Bab ini membahas tentang implementasi analisis yang sudah dibuat. Kemudian
dilakukan pemaparan pada hasil pengujian yang dilakukan terhadap sistem yang ada.
Bab ini berisikan kesimpulan dan saran dari penelitian untuk dapat digunakan pada
pengembangan penelitian berikutnya.
BAB 2
LANDASAN TEORI
Adalah sebuah jaringan saraf tiruan yang merupakan suatu pengembangan dari Multi
Layer Perceptron (MLP) yang dibuat untuk mampu mengelola dan melakukan
pengolahan pada data dalam bentuk dua dimensi dan pertama kali diperkenalkan oleh
(LeCun, 1988). CNN juga termasuk ke dalam jenis Deep Neural Network dikarenakan
memiliki tingkatan yang mampu diimplementasikan ke banyak citra. Berbeda dengan
jaringan saraf tiruan lainnya, Convolutional Neural Network mampu melakukan ekstrak
fitur beserta penyajian data berupa sinyal dan gambar dalam banyak tingkat abstraksi
(Al Rahhal et al., 2018). Convolutional Neural Network memiliki 3 tipe layer. Layer-
layer tersebut adalah Convolutional Layer, Pooling Layer, dan Fully-Connected Layer
yang dapat dilihat pada Gambar 2.
Dimana
h(f,i) = hasil kali matriks feaure detector dengan input layer,
A sampai dengan I = nilai matriks feature detector,
P1 sampai dengan P9 = nilai matriks input layer.
b. Pooling layer
Setelah operasi lapisan konvolusi, selanjutnya merupakan tahap lanjutan
dari layer yang pertama, yaitu tahap Pooling Layer. Pada tahapan ini
dilakukan proses pengurangan fitur dimensi dengan melihat dan
membandingkan nilai yang ada di sekitarnya (Lu et al, 2019). Pada tahapan
ini, Max Pooling dan juga Average Pooling merupakan dua layer yang
paling banyak digunakan. Pooling yang sering digunakan adalah operasi
max-pooling yang diterapkan pada peta fitur (feature map) dengan
melakukan pembagian output dari layer convolution menjadi beberapa
9
2.2 Mangrove
Mangrove adalah semak atau pohon kayu yang hidup di sepanjang garis pantai di daerah
tropis atau subtropis. Mangrove juga dapat digunakan sebagai istilah yang mengacu
pada keseluruhan komunitasnya.
Pohon dan dedaunan semak belukar yang ada akan menciptakan sebuah habitat
yang akan kehidupan tanaman dan hewan, melalui akar bercabang yang berada di
10
bawah air sehingga menciptakan tempat berlindung bagi banyak ikan, terutama untuk
predator yang mudah memangsa anak ikan (Feller, 2018).
Mangrove tumbuh di daerah pantai tropis dan subtropic yang berada di seluruh
dunia. Umumnya, daerah ini berada di antara garis lintang 25 derajat utara dan 25
derajat selatan, namun geografisnya sangat bervariasi tergantung pada iklim setempat
(Feller, 2018). Hutan mangrove sendiri didominasi oleh spesies-spesies berupa pohon
ataupun berupa semak yang punya sebuah kemampuan agar bisa terus tumbuh di dalam
perairan yang asin.
Di Indonesia sendiri, mangrove menyebar di banyak pesisir sepanjang
Kalimantan, Sulawesi, Papua, Sumatera, Jawa dan beberapa pulau-pulau kecil lainnya
dengan total mencapai angka 3,7 juta hektare.
Daun merupakan salah satu struktur utama yang ada pada tumbuhan. Fungsi
penting yang ada pada daun antara lain adalah pemecahan, pengolahan makanan
11
melalui fotosintesis, serta sebagai alat penguapan air atau transpirasi pertukaran gas.
Daun juga merupakan organ yang mampu membuat makanan, berbentuk pipih, dan
dapat melakukan tugas utamanya, yaitu fotosintesis secara efisien dan efektif
(Tjitrosomo, 2007). Mangrove memiliki banyak jenis spesies yang tersebar di seluruh
dunia yang membuat banyaknya struktur dan bentuk daun yang berbeda-beda. Berikut
adalah beberapa jenis daun mangrove.
Rhizophora Mucronata adalah merupakan satu dari begitu banyak jenis mangrove yang
dapat kita temukan di dekat sungai atau daerah pantai yang mengalami peristiwa pasang
dan surut. Spesies ini termasuk ke dalam kelompok inti yang memiliki peran besar
dalam susunan formasi mangrove (Kusmana et al, 2003). Rhizophora Mucronata sendiri
merupakan spesies tumbuhan yang dapat tumbuh mencapai tinggi 27 m, batang yang
berdiameter hingga 70 cm, akar tunjang maupun udara yang tumbuh dari cabang bagian
bawah (Harianto et al, 2015). Bentuk daun Rhizophora Mucronata adalah dapat dilihat
pada gambar 2.6.
Merupakan jenis tumbuhan utama yang umumnya selalu ada pada sebuah habitat
mangrove. Tumbuhan ini biasanya berada di daerah pantai yang cukup aman dan
terlindungi, juga menyukai bagian teluk. Akar Avicennia Alba juga dapat berfungsi
dalam suatu proses tahapan dimana sedimen akan diikat untuk dapat mempercepat
12
proses pembuatan suatu daratan. Tumbuhan ini juga dikenal bersifat vivipar, dimana
terkadang buah berbiak saat masih menempel di sebuah pohon (Noor et al, 2006). Daun
Avicennia Alba dapat dilihat di gambar 2.7.
Avicennia Alba dapat tumbuh hingga mencapai ketinggian 30 meter. Daunnya tunggal,
memiliki tangkai, dan mempunyai tepi daun yang cukup rata, namun memiliki ujung
yang meruncing. Panjang daun Avicennia Alba mencapai 18cm dan lebar 5 cm.
2.4 Mobilenet
Mobilenet adalah salah satu metode yang merupakan bagian dari arsitektur
Convolutional Neural Network yang dapat memenuhi keperluan komputasi yang
berlebih. Mobilenet dibangun oleh para arsitektur google atas dasar memenuhi
kebutuhan CNN dalam membangun arsitektur yang dapat digunakan pada sistem
mobile. Perbedaan yang cukup mendasar di antara arsitektur Mobilenet dengan CNN
adalah saat menggunakan layer konvolusi yang ketebalan filternya dibuat sesuai dengan
ketebalan input citra daun yang ada. MobileNet terbagi menjadi depthwise convolution
dan pointwise convolution. Arsitektur MobileNet memanfaatkan Batch Normalization
(BN) dan Rectified-Linear 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.
13
Gambar 2.9 Konvolusi Depthwise (2-5) dan Pointwise (6-7) (Atul, 2018)
(2)
(2.1)
Perbedaan mendasar antara detector klasik seperti RCNN dan SSD adalah bahwasanya
RCNN menggunakan proposal wilayah sedangkan SSD menggunakan data groundtruth
yang harus ditentukan dalam rangkaian hasil detektor yang lebih jelas. Setelah proses
tersebut 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.
Tensorflow Lite merupakan kumpulan alat yang berguna untuk membantu para
developer hingga dapat menjalankan model Tensorflow pada perangkat mobile dan juga
IoT. Tensorflow lite memiliki kemampuan untuk dapat memanfaatkan model yang akan
diimplementasikan ke dalam sebuah perangkat yang memiliki batasan ruang
penyimpanan. Tflite akan mengambil sebuah model tensorflow yang sudah tersedia dan
akan mengubahnya sekaligus mengoptimalkannya kedalam bentu file .tflite. Model
tflite ini akan menjadi bentuk sederhana yang cukup kecil untuk disimpan pada
15
perangkat namun cukup akurat dalam melakukan inferensi yang sesuai. Arsitektur Tflite
dapat dilihat pada gambar 2.10.
Positif TP FN
Aktual
Negatif FP TN
2.7.1 Accuracy
Akurasi merupakan metode pengujian berdasarkan tingkat kedekatan antara nilai
prediksi dengan nilai aktual. Dengan mengetahui jumlah data yang diklasifikasikan
secara benar maka dapat diketahui akurasi hasil prediksi. Persamaan akurasi seperti
pada persamaan berikut.
N𝐵𝑒𝑛𝑎𝑟
𝐴𝑐𝑐𝑢𝑟𝑎𝑐𝑦 = x100% (2.2)
N
2.8.2 Precision
Presisi merupakan metode pengujian dengan melakukan perbandingan jumlah
informasi relevan yang didapatkan sistem dengan jumlah seluruh informasi yang
17
terambil oleh sistem baik yang relevan maupun tidak. Persamaan presisi ditunjukkan
pada persamaan berikut.
TP
Precision = (2.3)
TP+FP
2.8.3 Recall
Recall merupakan metode pengujian yang membandingkan jumlah informasi
relevan yang didapatkan sistem dengan jumlah seluruh informasi relevan yang ada
dalam koleksi informasi (baik yang terambil atau tidak terambil oleh sistem).
Persamaan recall ditunjukkan pada persamaan berikut.
TP
Recall = (2.4)
TP+FN
Dalam perkembangan penelitian, belum ada penelitian terkait yang meneliti dan
membahas tentang klasifikasi daun mangrove secara realtime, namun ada beberapa
yang sudah pernah dilakukan sebelumnya mengenai klasifikasi daun-daun pada
tumbuhan lain. Seperti yang telah dilakukan oleh (Dani et al, 2016) mengenai klasifikasi
pada daun philodendron menggunakan metode KNN. Setiap piksel citra pada penelitian
ini melalui tahap pengkonversian RGB ke dalam bentuk HSV. Hasil yang didapat akan
diklasifikasi menggunakan metode KNN. Data yang digunakan sebagai sampel
berjumlah 5 kategori dengan data latih pada setiap data uji sebanyak 10 citra. Hasil
akurasi yang diperoleh sebesar 92% dari total data citra uji yaitu 50 data citra. Dalam
penelitian ini juga dilakukan preprocessing dengan metode Gray Level Co-Occuerrenes
Matrices (GLCM) untuk mendapatkan intensitas cahaya yang sesuai sehingga hasil
yang didapatkan diharap akan lebih akurat.
K-Nearest Neigbor
1 (Dani et al., Penelitian ini menggunakan data
2016) yang berjumlah 5 kategori dengan
data latih pada setiap data uji
sebanyak 10 citra. Piksel RGB
yang ada akan dikonversi ke
dalam bentuk HSV sebelum
dilakukan proses klasifikasi
menggunakan KNN. Akurasi
yang dihasilkan mencapai 92%.
Convolutional Neural
4 (Iffat & Saiful, Penelitian ini mengklasifikasikan
Network (CNN).
2019) berbagai pohon seperti mangga,
neem, hibiscus, jambu biji, lemon,
Ashoka, curry, sheesham, Cachia,
dan henna. Dataset yang
digunakan pada penelitian ini
berjumlah 10 ribu citra yang
dibagi menjadi 8000 data training
dan 2000 data uji. Dan berhasil
menghasilkan tingkat akurasi
sebesar 99,40%.
K-Nearest Neighbor
5 (Yahya et al., Dalam penelitian ini, digunakan
2019) 339 gambar daun aprikot dari 10
jenis varietas tumbuhan apricot.
Metode yang ada terdiri dari 3
tahapan utama yaitu, segmentasi,
kemudian tahapan ekstraksi fitur,
dan pada tahap klasifikasi, fitur
21
Perbedaan penelitian penulis dengan (Dani et al, 2016) adalah terletak pada
metode yang menggunakan KNN. Penelitian yang dilakukan menggunakan 5 klasifikasi
pada data citra sementara penulis hanya memiliki 2 klasifikasi. Penelitian tersebut juga
melakukan proses konversi RGB ke dalam bentuk HSV. Namun sistem yang dibangun
masih berbentuk web, sementara pada penelitian ini berbasis android dan realtime,
dimana akan membuat sistem lebih cepat dan juga efisien.
Penelitian selanjutnya dilakukan oleh (Casanova et al, 2009) dan (Javed &
Ahsraful, 2010) dimana penelitian tersebut menggunakan metode Gabor Wavelets dan
Probabilistic Neural Network (PNN), sedangkan pada penelitian ini menggunakan
metode Mobilenet-SSD. Perbedaan penelitian tersebut terhadap penelitian penulis
adalah, pada penelitian tersebut citra daun diekstrak dari backgroundnya dan dilakukan
konversi menjadi gambar biner. Kemudian fitur seperti luas, keliling, poros besar, dan
kecil, diameter ekuivalen juga turut diekstrak, sementara pada penelitian penulis hanya
22
melakukan perubahan ukuran pada data citra yang ada. Kemudian penelitian tersebut
berbentuk web, sementara penelitian penulis berbasis android.
Selanjutnya, penelitian dilakukan oleh (Iffat & Saiful, 2019), penelitian tersebut
menggunakan metode Convolutional Neural Network (CNN). Perbedaan penelitian
tersebut dengan penulis menggunakan berbagai data pohon seperti mangga, jambu biji,
lemon, curry, dan henna. Penelitian tersebut menunjukkan tingkat akurasi mencapai
99,40% sementara penelitian penulis menghasilkan tingkat akurasi sebesar 93,3%.
Perbedaan lainnya, adalah penelitian tersebut berbasis web sementara penelitian penulis
berbasis android.
Data berupa daun mangrove yang diperoleh dari Pantai Wisata Mangrove di Kecamatan
Perbaungan Kabupaten Serdang Bedagai dengan format file jpg. Data diambil
menggunakan kamera Samsung Galaxy S10 dengan jarak pengambilan yang cukup
dekat. Pengambilan data dilakukan dalam keadaan cahaya matahari yang cukup. Contoh
dari data citra daun mangrove pada Gambar 3.
Terdapat 2 jenis data citra daun mangrove yang diolah pada penelitian ini, yaitu
Avicennia Alba dan Rhizopora Mucronata. Sebanyak 2124 data digunakan yang dapat
dilihat pada Tabel 3.
Tabel 3 Jumlah data
Data training digunakan untuk melatih algoritma yang dipakai untuk dapat
memahami informasi-informasi yang ada pada data tersebut.
24
Tahap ini adalah tahap dimana dilakukan pengambilan data citra daun mangrove yang
akan digunakan sebagai input untuk sistem yang akan dibangun. Citra daun mangrove
diambil menggunakan kamera smartphone. Data daun mangrove yang ada diambil di
pantai mangrove Kecamatan Perbaungan Kabupaten Serdang Bedagai. Citra
berekstensi JPG dengan ukuran 640 x 640 piksel.
26
3.2.2.1 Resizing
Proses pertama yang akan dilakukan pada tahap preprocessing adalah resizing. Pada
tahap ini, dilakukan proses sederhana mengubah ukuran citra daun menjadi berukuran
640 x 640 piksel. Hal ini dilakukan agar citra yang ada dapat diinput ke dalam sistem
dan mengurangi besaran data supaya sistem tidak terlalu berat. Proses resizing akan
direpresentasikan pada gambar 3.2 dibawah ini.
Proses perhitungan resizing pada citra 4x4 piksel dapat juga dilakukan pada citra daun.
Citra daun sebelum dan setelah melalui tahap resizing dapat dilihat pada Gambar 3.3.
Gambar 3. 3 Citra daun sebelum resizing (kiri), citra daun setelah resizing (kanan)
27
Proses dari resizing ini dapat dilihat pada pseudocode dibawah ini:
FUNCTION resize(path):
img <- cv2.imread(path)
r_img <- cv2.resize(img, (640, 640))
cv2.imwrite(path_save, r_img)
ENDFUNCTION
Langkah pertama adalah melakukan pemanggilan citra daun yang sebelumnya telah
dikumpulkan menjadi satu folder. Setelah itu, citra daun yang ada pada folder tersebut
akan melalui proses resize dengan ukuran 640x640 untuk dapat memperingan proses
pada saat training. Hasil dari proses resize tersebut akan dikumpulkan ke dalam suatu
folder yang baru.
3.2.2.2 Labeling
Tahapan selanjutnya setelah citra selesai melalui tahap resizing adalah labeling. Pada
tahap ini, dilakukan proses memberikan sebuah label kepada citra untuk mendapat
objek khusus yang akan mampu dibaca oleh sistem. Labeling yang dilakukan pada citra
dibuat menggunakan aplikasi Labellmg yang berfungsi untuk memberikan label pada
citra daun mangrove berdasarkan kategori yang sudah ditentukan. Output yang
dikeluarkan adalah citra daun yang sudah dilabel akan tersimpan dalam bentuk xml.
Informasi yang tersimpan dalam file xml tersebut berupa klasifikasi dari objek khusus
yang sudah ditandai beserta koordinat dari objek yang berguna pada proses selanjutnya.
Adapun proses melakukan labeling dapat dilihat pada gambar dibawah ini.
Pada Gambar pertama proses yang terjadi adalah pemberian rectbox yang berguna
untuk menandai citra daun yang sudah diimport ke dalam aplikasi labelimg.
Selanjutnya, citra yang objeknya sudah ditandai menggunakan rectbox akan
diklasifikasi berdasarkan kategori daun mangrove yang ada. Pada contoh diatas adalah
daun Avicennia Alba. Setelahnya, hasil citra yang sudah diklasifikasi akan ditandai
dengan nama kategorinya di kolom sebelah kanan. Data akan diexport dalam bentuk
xml yang sudah menyimpan informasi jenis klasifikasi daun, serta titik koordinat
objek berupa daun yang ada pada citra.
Tahapan selanjutnya adalah Convert TFRecord. Pada tahap ini, data pelabelan berupa
xml selanjutnya akan diubah ke dalam bentuk File Tensorflow Record (TFRecord). Hal
ini dilakukan akibat data yang ada cukup banyak dan mengakibatkan ukuran yang
cukup besar. Melalui TFRecord, data yang ada akan disimpan ke dalam bentuk string
biner. Sehingga akan berdampak terhadap kecepatan proses training yang akan
dilakukan selanjutnya. Data xml dan citra berupa daun mangrove akan diconvert
menjadi file TFRecord. Data yang sudah diconvert menjadi file TFRecord ini akan
menggunakan lebih sedikit ruang pada disk sehingga proses yang akan dilakukan sistem
akan membutuhkan waktu yang lebih sedikit pula.
Gambar 3.9 Sebelum convert TFRecord (kiri), setelah convert TFRecord (kanan)
Langkah-langkah dalam convert ke bentuk TFRecord dapat dilihat pada
pseudocode dibawah ini:
30
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':
31
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_exampl
ENDFUNCTION
Selanjutnya pada tahap ini, data training yang sudah ada akan melalui tahap klasifikasi
jenis daun mangrove dengan menggunakan Mobilenet-SSD. Mobilenet-SSD terdiri dari
SSD yang berperan sebagai base model, dan Mobilenet sebagai network model. SSD
akan mengatur pendeteksian objek dengan bounding box sementara Mobilenet akan
bekerja untuk mengekstrak fitur yang nantinya akan diklasifikasi. Dua fitur utama
dalam Mobilenet-SSD adalah sebagai berikut.
default box dengan IoU > 0.5 dikategorikan cocok. Setiap sel atau lokasi yang ada, akan
terbuat 4 objek prediksi. Setiap prediksi terdiri dari kotak batas sebagai kelas untuk
objek yang dibatasi.
Gambar 3.11 Foto Asli (Kiri), 4 Objek Prediksi tiap sel atau lokasi (kanan)
Proses memberikan objek prediksi ini disebut dengan multibox (Szegedy et al, 2016).
SSD akan membuat banyak prediksi berisi bounding box dan confidence scores.
Setelah proses training, kita akan mendapatkan sebuah file learned model yang bernama
savedmodel dengan ekstensi .pb dikarenakan menggunakan Tensorflow versi 2.
Informasi yang ada di dalam file tersebut berupa sebuah grafik serta weights (bobot)
model hasil training, dimana objek daun mempunyai 2 klasifikasi yaitu Mucronata dan
Avicennia. Hasil klasifikasi data training yang ada akan menjadi learned model.
Learned model tersebut merupakan sebuah data yang sudah dilatih untuk selanjutnya
akan di convert ke dalam bentuk Tensorflow Lite agar bisa digunakan pada aplikasi
mobile berbasis android.
Proses convert ke dalam bentuk TFLite dapat dilihat pada code dibawah ini:
Langkah pertama yang dilakukan adalah memanggil file saved_model yang telah
selesai ditraining pada tahap sebelumnya. Kemudian menggunakan syntax yang telah
disediakan oleh tflite dilakukan proses convert ke dalam bentuk tflite agar bisa masuk
ke dalam sistem mobile. File yang telah diconvert akan disimpan dengan nama
modeldaun.tflite.
Setelah semua data untuk proses training telah ada, maka selanjutnya adalah
menentukan nilai seperti nilai input citra, bobot, batch size, dan jumlah steps maksimal
yang akan diatur dalam konfigurasi pipeline. Sebelum melakukan konfigurasi,
diperlukan sebuah labelmap sebagai data klasifikasi objek yang akan digunakan oleh
sistem. File tersebut bernama labelmap.txt yang berisikan banyaknya kategori dan nama
dari kategori tersebut.
35
Setelah proses training selesai, akan menghasilkan sebuah model dengan ekstensi .pb
yang kemudian akan dikonversi ke dalam bentuk tflite agar dapat digunakan pada
perangkat mobile.
3.2.8 Output
Adalah hasil akhir dari sistem yang telah dibuat yaitu berupa informasi akurasi dan
bounding box yang menunjukkan hasil klasifikasi daun mangrove dengan 2 kategori
yaitu Mucronata dan Avicennia yang dilakukan pada saat proses testing.
Perancangan pada sistem serta menampilkan juga mendeskripsikan sistem yang ada
berupa gambaran klasifikasi jenis daun mangrove dilakukan pada tahapan ini. Sistem
yang dibangun menggunakan Tensorflow Lite sehingga hanya terdiri dari satu tampilan
yang dijalankan pada android, tampilan tersebut memuat hasil dari klasifikasi daun
mangrove, disertai dengan bounding box yang akan langsung melakukan pengkotakan
38
ke objek yang ada pada saat kamera bekerja. Rancangan antarmuka ini dapat dilihat
pada gambar dibawah.
BAB 4
IMPLEMENTASI DAN PENGUJIAN SISTEM
Proses melakukan klasifikasi pada daun mangrove menggunakan citra daun mangrove
menggunakan metode Mobilenet-SSD memerlukan beberapa perangkat yang akan
mendukung proses penelitian, yaitu:
Data daun mangrove diambil menggunakan Samsung Galaxy S10. Pengambilan data
dilakukan di Kecamatan Perbaungan Kabupaten Serdang Bedagai dalam dua waktu
yang berbeda. Data yang diambil terdiri dari 2 jenis klasifikasi, yaitu daun Rhizphora
Mucronata dan daun Avicennia Alba. Ujicoba sistem akan dilakukan menggunakan
sistem mobile menggunakan Tensorflow Lite. Foto berukuran 640 x 640 piksel dengan
bentuk JPG. Klasifikasi data dapat dilihat pada gambar di bawah ini.
40
Merupakan tampilan yang pertama kali muncul saat aplikasi sudah mendapatkan izin
untuk mengakses kamera, sistem akan langsung mendeteksi objek dan
mengklasifikasikan objek jika berada di jangkauan kamera, dan akan menampilkan
bounding box untuk output klasifikasinya. Tampilan tersebut dapat dilihat pada Gambar
4.2.
41
Tampilan sistem yang dibangun adalah halaman utama sistem deteksi daun, halaman
tersebut berisikan kamera untuk mendeteksi objek daun mangrove yang terlihat dan
mengklasifikasikannya menjadi daun mangrove rhizophora mucronata atau avicennia
alba.
Pertama, user akan menekan aplikasi deteksi daun untuk membukanya, sistem
akan meminta izin hak akses kamera untuk menggunakannya, kemudian sistem akan
mulai menjalankan proses deteksi secara realtime. Objek daun mangrove yang
terdeteksi akan langsung menghasilkan bounding box yang menunjukkan hasil
klasifikasi daun mangrove dan juga persen untuk menandakan tingkat keakuratan
sistem dalam mendeteksi objek tersebut. Adapun tampilan saat aplikasi digunakan
dapat dilihat pada gambar 4.3.
42
Pada tahap ini dilaksanakan tes uji kepada sistem yang sudah dibuat untuk melihat
kemampuan untuk dapat mendeteksi dan mengklasifikasikan objek daun mangrove.
Pengujian dilakukan terhadap 424 gambar daun mangrove. Beberapa hasil deteksi daun
mangrove dapat dilihat pada tabel 4.
Actual Desired
No Data Daun Keterangan
Output Output
a. Jarak 5 cm
b. Jarak 10 cm
c. Jarak 20 cm
d. Jarak 40 cm
Tabel 4.1 diatas menjelaskan bahwa sistem mengalami beberapa kesalahan saat
mendeteksi daun Rhizophora Mucronata, namun sedikit kesalahan saat melakukan
deteksi pada daun Avicennia Alba.
53
Dari pengujian data pada tabel 4.2 didapatkan sebanyak 396 data TP yaitu True
Positive, dimana data positif terklasifikasi oleh sistem dengan benar. Selanjutnya,
24 data FP yaitu False Positive dimana data tidak tepat namun sistem
mendeteksinya benar, dan FN sebanyak 4 data yaitu sistem salah mendeteksi objek
sehingga 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.3.
Tabel 4.3 Nilai Precission, Recall dan F-Score
Precision Recall F1-Score
Rhizophora 0,91 0,98 0,94
Mucronata
Avicennia Alba 0,96 0,99 0,97
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.
396 X 100%
𝐴𝑘𝑢𝑟𝑎𝑠𝑖 = = 93,3 %
424
Gambar 4.4 Avicennia Alba setelah resizing (kiri), Rhizopora Mucronata asli (kanan)
55
Gambar 4.4 Mucronata setelah resizing (atas kiri dan bawah), Avicennia Alba asli
(atas kanan)
Hal diatas terjadi dikarenakan pada saat pengambilan data, ada beberapa daun
avicennia alba yang datanya diambil dengan posisi terlalu dekat, sehingga saat
melakukan resizing, foto yang mengalami downscale menjadi melebar sehingga
menyerupai bentuk asli daun mucronata. Faktor lainnya adalah pada saat melakukan
pengambilan data daun mucronata, beberapa daun diambil dalam keadaan datar
menyamping sehingga nyaris berbentuk pipih, daun tersebut kemudian mengalami
proses downscale dan mengakibatkan bentuk yang mirip dengan daun avicennia alba
yang asli.
56
BAB 5
PENUTUP
5.1 Kesimpulan
5.2 Saran
Aji, A. F., Munajat, Q., Pratama, A. P., Kalamullah, H., Aprinaldi, Setiyawan, J., &
Arymurthy, A. M. (2013). Detection of Palm Oil Leaf Disease with Image
Processing and Neural Network Classification on Mobile Device. International
Journal of Computer Theory and Engineering, 5(3), 528–532.
Casanova, D., De Mesquita Sá, J. J., & Bruno, O. M. (2009). Plant leaf identification
using gabor wavelets. International Journal of Imaging Systems and Technology,
19(3), 236–243. https://doi.org/10.1002/ima.20201
Casanova, D., De Mesquita Sá, J. J., & Bruno, O. M. (2009). Plant leaf identification
using gabor wavelets. International Journal of Imaging Systems and Technology,
19(3), 236–243. https://doi.org/10.1002/ima.20201
Hossain, J., & Amin, M. A. (2010). Leaf shape identification based plant biometrics.
Proceedings of 2010 13th International Conference on Computer and Information
Technology, ICCIT 2010, Iccit, 458–463.
https://doi.org/10.1109/ICCITECHN.2010.5723901
Ilahiyah, S., & Nilogiri, A. (2018). Implementasi Deep Learning Pada Identifikasi
Jenis Tumbuhan Berdasarkan Citra Daun Menggunakan Convolutional Neural
Network. JUSTINDO (Jurnal Sistem Dan Teknologi Informasi Indonesia), 3(2),
49–56.
Liantoni, F., & Nugroho, H. (2015). Klasifikasi Daun Herbal Menggunakan Metode
Naïve Bayes Classifier Dan Knearest Neighbor. Jurnal Simantec, 5(1), 9–16.
Muchtar, M., & Cahyani, L. (2016). Klasifikasi Citra Daun dengan Metode Gabor Co-
Occurence. Jurnal ULTIMA Computing, 7(2), 39–47.
https://doi.org/10.31937/sk.v7i2.231
Ni’mah, F. S., Sutojo, T., & Setiadi, D. R. I. M. (2018). Identifikasi Tumbuhan Obat
Herbal Berdasarkan Citra Daun Menggunakan Algoritma Gray Level Co-
58
Prasetyo, E., Studi, P., Informatika, T., Teknik, F., & Bhayangkara, U. (n.d.).
Berdasarkan Tekstur Daun Menggunakan Svm Dan Fk-Nnc. 121–128.
Syahid, D., Jumadi, J., & Nursantika, D. (2016). Sistem Klasifikasi Jenis Tanaman
Hias Daun Philodendron Menggunakan Metode K-Nearest Neighboor (KNN)
Berdasarkan Nilai Hue, Saturation, Value (HSV). Jurnal Online Informatika,
1(1), 20. https://doi.org/10.15575/join.v1i1.6
Zarrin, I., & Islam, S. (2019). Leaf Based Trees Identification Using Convolutional
Neural Network. 2019 IEEE 5th International Conference for Convergence in
Technology, I2CT 2019, 1–4. https://doi.org/10.1109/I2CT45611.2019.9033914
59
Resizing
import cv2
import os
for i in os.listdir(path):
print(i)
cv2.imwrite('Mucronataresize/{}'.format(i), r_img) #
saving the resized image in other folder
# replace 'resize_folder' with the path of the folder
# in which you want to save the resized images.
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),
member[0].text,
int(member[4][0].text),
60
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(direc
tory), index=None)
print('Successfully converted xml to csv.')
main()
Generate TFRecord
import os
import io
import pandas as pd
import tensorflow.compat.v1 as tf
import sys
import os.path
61
sys.path.append("C:\\users\\user\\tensorflow\\models\\res
earch\\")
sys.path.append("C:\\users\\user\\tensorflow\\models\\res
earch\\object_detection\\utils")
flags = tf.app.flags
flags.DEFINE_string('csv_input', '',
'C:\\users\\user\\tensorflow\\training_demo\\images\\data
')
flags.DEFINE_string('output_path', '',
'C:\\users\\user\\tensorflow\\training_demo\\images\\data
')
flags.DEFINE_string('image_dir', '',
'C:\\users\\user\\tensorflow\\training_demo\\images\\test
')
FLAGS = flags.FLAGS
def class_text_to_int(row_label):
if row_label == 'mucronata':
print('row_label====' + row_label)
return 1
print('row_label====' + row_label)
return 2
62
else:
None
gb = df.groupby(group)
with tf.gfile.GFile(os.path.join(path,
'{}'.format(group.filename)), 'rb') as fid:
encoded_jpg = fid.read()
encoded_jpg_io = io.BytesIO(encoded_jpg)
image = Image.open(encoded_jpg_io)
filename = group.filename.encode('utf8')
height = 640
width = 640
image_format = b'jpg'
xmins = []
xmaxs = []
ymins = []
ymaxs = []
classes_text = []
classes = [2]
xmins.append(row['xmin'] / width)
xmaxs.append(row['xmax'] / width)
ymins.append(row['ymin'] / height)
ymaxs.append(row['ymax'] / height)
classes_text.append(row['class'].encode('utf8'))
classes.append(class_text_to_int(row['class']))
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),
64
'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)
writer.write(tf_example.SerializeToString())
writer.close()
output_path = os.path.join(os.getcwd(),
FLAGS.output_path)
if __name__ == '__main__':
tf.app.run()
65
Data Training
import tensorflow.compat.v2 as tf
'file.')
flags.DEFINE_integer('sample_1_of_n_eval_examples', None,
'Will sample one of '
flags.DEFINE_integer('sample_1_of_n_eval_on_train_example
s', 5, 'Will sample '
'`eval_training_data` is True.')
flags.DEFINE_string(
flags.DEFINE_string(
flags.DEFINE_string(
'tpu_name',
default=None,
flags.DEFINE_integer(
'MirroredStrategy.')
flags.DEFINE_integer(
67
flags.DEFINE_boolean('record_summaries', True,
' training.'))
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_exam
ples,
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:
68
if FLAGS.use_tpu:
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)
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,
69
record_summaries=FLAGS.record_summaries)
if __name__ == '__main__':
tf.compat.v1.app.run()