)
)
Abstract —The main objective of this research is to develop an algoritma Artificial Neural Network (ANN) yang menerima
image recognition system for distinguishing dog breeds using input berupa gambar. Akan tetapi, pengembangan CNN
Keras’ pre-trained Convolutional Neural Network models and masih terhitung mahal, mulai dari waktu yang digunakan
to compare the accuracy between those models. Specifically, untuk training model dan hardware yang dibutuhkan untuk
the models utilized are ResNet50, Xception, and VGG16. The
system that we develop here is a web application using Flask as
menjalankan proses training tersebut.
its development framework. Moreover, this research also Untuk menghemat proses pengembangan Convolutional
explains how the deep learning approaches, such as CNN, can Neural Network (CNN) dan memang fokus kebanyakan
distinguish an object in an image. After testing the system on a pengguna adalah menggunakan Convolutional Neural
set of images manually, we learn that every model has different Network (CNN), model-model Convolutional Neural
performance, and Xception came out as the best in term of Network (CNN) yang sudah mengalami proses training
accuracy. We also test the acceptance of the user interface we disimpan dalam bentuk pre-trained model. Keras yang
develop to the end-users. merupakan high-level API untuk jaringan saraf tiruan
(neural networks) [5] menyediakan beberapa Pre-trained
Keywords— Convolutional Neural Network, Deep Learning, model seperti ResNet50 [6], Xception [7] dan VGG16 [8].
Flask, Image Recognition, Keras. Ketiga state-of-the-art pre-trained model tersebut memiliki
perbedaan pada arsitektur dan konfigurasi CNN.
Tujuan penelitian ini adalah membandingkan performa
I. PENDAHULUAN dari ketiga model Convolutional Neural Network (CNN) di
Pertumbuhan data telah berkembang secara pesat pada atas dan mengembangkan tampilan antar muka untuk
era digital dewasa ini [1]. Dengan ribuan foto diunggah tiap mempermudah penggunaan bagi end user dan menampilkan
harinya, model dan algoritma yang lebih baik untuk hasil prediksi ketiga model tersebut.
pengenalan objek di dalam gambar (image recognition) Model ResNet merupakan model yang menggunakan
dapat dikembangkan dengan bantuan data tersebut [2]. deep residual learning framework. Dengan menggunakan
Image recognition adalah kemampuan komputer dan mesin framework ini, setiap layer network memiliki referensi ke
untuk mengenali objek dalam gambar. Komputer menerima layer network sebelumnya; hal ini menjadikan proses
input berupa gambar dan memberikan output berupa hasil optimasi menjadi lebih mudah daripada layer network-layer
klasifikasi yang sesuai dengan gambar [3]. Image network yang tidak memiliki keterhubungan. Karena proses
recognition dapat berperan dalam otomatisasi klasifikasi optimasi yang lebih mudah, neural network yang dibentuk
gambar, sebagai alat surveillance dan sistem sekuritas. dapat memiliki jumlah layer yang banyak sampai dengan 34
Berbeda dengan manusia dan hewan, mesin dan layer dan akibatnya, akurasi meningkat dari neural network
komputer tidak dapat mengenali objek dengan mudah [3]. yang tidak menggunakan residual network [6].
Metode-metode berbasis machine learning merupakan Umumnya model CNN melakukan proses training
teknik yang umum digunakan untuk memecahkan masalah dengan membangun filter di dalam ruang berdimensi 3,
tersebut. Salah satu teknik yang terbukti menghasilkan hasil dengan dua dimensi (panjang dan lebar) dan satu buah
terbaik (state-of-the-art) adalah teknik dengan channel. Lebih lanjut, model Xception memanfaatkan
menggunakan Convolutional Neural Network atau lebih konsep Inception, yaitu setiap convolution layer dari suatu
dikenal dengan ConvNet atau CNN [4]. Convolutional neural network difaktorkan menjadi suatu barisan operasi
Neural Network (CNN) sendiri adalah pengembangan dari yang memanfaatkan korelasi dari cross-channel dan korelasi
337
Jurnal Teknik Informatika dan Sistem Informasi p-ISSN : 2443-2210
Volume 4 Nomor 2 Agustus 2018 e-ISSN : 2443-2229
spasial (panjang dan lebar). Dengan konsep Inception ini, akan terdapat 260×260×3 array dari angka. Angka 3 yang
akurasi model meningkat disebabkan oleh penggunaan merupakan suku ketiga dari perkalian melambangkan 3 nilai
parameter model (korelasi) yang lebih efisien [7]. RGB pada gambar. Selanjutnya, array angka-angka tersebut
VGG16 merupakan model CNN yang memanfaatkan akan diproses oleh CNN untuk dijadikan nilai kemungkinan
convolutional layer dengan spesifikasi convolutional filter suatu gambar berada pada kelas tertentu, misalnya 96%
yang kecil (3×3). Dengan ukuran convolutional filter untuk jenis Poodle, 8% untuk jenis Spaniel, dan 0.3% untuk
tersebut, kedalaman neural network dapat ditambah dengan Pomeranian.
lebih banyak lagi convolutional layer. Hasilnya, model
CNN menjadi lebih akurat daripada model-model CNN
sebelumnya. Model VGG16 mempunyai 19 layer yang
terdiri dari 16 convolutional layer dan 3 fully-connected
layer [8].
Ketiga model yang dipilih merupakan model-model CNN
state-of-the-art, yaitu keakuratan ketiga model tersebut
menjadi tolok ukur dalam pengenalan objek di dalam
gambar untuk saat ini. Gambar 1 Layer pada Convolutional Neural Network [14].
Adapun data latih untuk model CNN berasal dari basis
data gambar, ImageNet dan data uji adalah sekumpulan Pada CNN, data yang dikirimkan ke dalam jaringan adalah
gambar anjing yang sudah diberi label dari dog-project oleh data dua dimensi, sehingga bobot pada hubungan antar
Udacity [9]. neuron akan berbeda [10]. Operasi linear yang dilakukan
pada CNN pun akan berbeda yaitu akan digunakan operasi
konvolusi pada setiap layer. Tidak seperti ANN pada
II. KAJIAN TEORI umumnya, neuron pada layer CNN diatur dalam 3 dimensi
Teori yang dijelaskan meliputi: Convolutional Neural yaitu: lebar, tinggi, dan kedalaman seperti yang dijelaskan
Network, Keras sebagai library untuk membangun Artificial pada Gambar 1.
Neural Network (ANN), Tensorflow, ImageNet, dan Flask. Layer kedua setelah layer input pada Gambar 1 dapat
dibagi menjadi beberapa bagian yaitu convolution layer,
pooling layer, dan fully-connected layer [14].
A. Convolutional Neural Network Pada convolution layer, dilakukan operasi konvolusi yang
Convolutional Neural Network yang juga dikenal dengan merupakan proses utama pada CNN. Konvolusi adalah
CNN atau ConvNet adalah pengembangan dari Multilayer istilah matematis yang berarti mengaplikasikan sebuah
Perceptron (MLP) untuk mengolah data dua dimensi [10]. fungsi pada output fungsi lain secara berulang [10]. Ketika
Multilayer Perceptron sendiri adalah pengembangan dari menguji keberadaan fitur pada gambar baru, CNN akan
Artificial Neural Network (ANN) yang ditujukan untuk mencoba semua kemungkinan posisi pada gambar [15].
menutupi kekurangan Artificial Neural Network (ANN) Filter dibuat untuk menghitung kecocokan fitur pada
dengan Single-layer Perceptron dalam menyelesaikan keseluruhan gambar.
operasi logika yang kompleks [11]. Hal tersebut
dimungkinkan dengan menambahkan hidden layer yang
membuat ANN powerful untuk memecahkan operasi logika
yang kompleks (universal approximation) [12] dan sering
digunakan untuk permasalahan-permasalahan klasifikasi,
recognition, dan prediksi.
CNN dapat dibilang sangat sukses dalam video dan
image recognition berskala besar [8], Google bahkan
menggunakan CNN untuk mengambil nomor rumah dari
gambar StreetView [13]. Akan tetapi, dari sekian banyaknya
keunggulan yang ditawarkan CNN, untuk mengaplikasikan
CNN pada sekumpulan gambar dalam skala besar dan
berkualitas tinggi masih terhitung mahal secara waktu, Gambar 2 Contoh operasi konvolusi pada convolution layer [15].
dataset yang digunakan, dan hardware [4]. Namun hal
tersebut dapat diatasi saat ini dengan dataset gambar Gambar 2 adalah contoh operasi konvolusi yang membaca
berukuran besar yang telah disediakan seperti ImageNet dan matriks 3×3 dan mengalikan matriks tersebut secara
pre-trained model seperti yang disediakan oleh Keras. element-wise dengan dirinya sendiri.
Berbeda dengan manusia, komputer mengenali gambar Pada pooling layer dilakukan operasi subsampling, yaitu
dalam bentuk array dari nilai piksel-pikselnya. Bayangkan proses mereduksi ukuran sebuah data citra [10]. Pooling
untuk kasus input gambar dengan resolusi pixel 260×260, bertujuan untuk memperkecil gambar berukuran besar tetapi
338
p-ISSN : 2443-2210 Jurnal Teknik Informatika dan Sistem Informasi
e-ISSN : 2443-2229 Volume 4 Nomor 2 Agustus 2018
masih menyimpan informasi-informasi pentingnya. Salah dalam mendeteksi suatu objek, dalam hal ini anjing, di
satu pendekatan yang banyak digunakan untuk CNN adalah dalam gambar.
max pooling, max pooling membagi matriks gambar ke
dalam beberapa bagian kecil dan memilih nilai paling besar C. Keras
di dalamnya untuk digunakan ketika matriks gambar baru Keras adalah High Level Neural Network API yang dapat
yang sudah direduksi dibentuk. Gambar 3 menunjukkan dijalankan di atas framework-framework machine learning
konsep max pooling dengan filter 2×2 dan pergeseran seperti TensorFlow, CNTK, atau Theano. Keras ditulis
(stride) 2. dalam bahasa Python [5]. Lebih lanjut, Keras menyediakan
API yang mempermudah user dalam membangun arsitektur
ANN.
Keras juga menyediakan Keras Applications yang
merupakan deep learning models yang digunakan bersama
dengan pre-trained weights. Model-model tersebut dapat
digunakan untuk memprediksi, melakukan feature
extraction atau fine-tuning.
Model-model tersebut di antaranya adalah Xception,
VGG16, VGG19, ResNet50, InceptionV3,
InceptionResNetV2, MobileNet, DenseNet & NasNet.
Penelitian ini akan membandingkan tingkat akurasi dari tiga
Gambar 3 Operasi max pooling untuk mereduksi gambar [14]. Pre-trained model Keras yaitu ResNet50, Xception, dan
VGG16.
Fully-connected layer adalah layer yang biasa digunakan
pada Multilayer Perceptron (MLP) dan bertujuan untuk D. Tensorflow
melakukan transformasi pada dimensi data agar dapat TensorFlow adalah framework machine learning yang
diklasifikasi secara linear [10]. Gambar 4 menggambarkan bekerja dalam skala besar dan dalam environment yang
suatu MLP dengan 2 hidden layer yang fully-connected. heterogeneous [16]. TensorFlow digunakan untuk
Output dari layer ini adalah array dengan panjang jumlah melakukan eksperimen model deep learning, melatih model
kelas yang model harus pilih. Pada fully connected layer, pada dataset yang berukuran besar, dan membuatnya layak
bobot yang paling besar dari layer sebelumnya akan diproduksi.
menentukan fitur mana yang paling berhubungan dengan Selain itu TensorFlow juga mendukung training dan
kelas atau label tersebut. inference berskala besar dengan menggunakan ratusan
server yang menggunakan Graphic Processing Unit (GPU)
untuk training secara efisien. Penelitian ini menggunakan
TensorFlow sebagai backend framework untuk Keras.
E. ImageNet
Penelitian ini menggunakan pre-trained model dari Keras
yang dilatih pada dataset gambar berukuran besar yaitu
ImageNet. ImageNet adalah dataset gambar yang
diorganisir berdasarkan hirarki untuk setiap node dari
hirarkinya terdiri dari ratusan hingga ribuan gambar [2].
Sebagai contoh untuk subtree anjing maka akan memiliki
banyak branch yang bisa berupa gambar anjing yang telah
Gambar 4 Multi-layer Perceptron sederhana dengan 2 hidden layer [14]. dikelompokkan berdasarkan rasnya.
Proses training pada CNN untuk mendapatkan fitur-fitur Gambar yang terdapat dalam ImageNet dikumpulkan dari
serta weight dari setiap kelas adalah dengan menggunakan Web dan diberikan label atau kelas oleh manusia dengan
metode yang disebut dengan backpropagation. memanfaatkan Amazon’s Mechanical Turk. Hingga pada
tahun 2009, telah terdapat 12 subtrees yang terdiri dari 3,2
B. Hubungan dengan Penelitian Sebelumnnya juta gambar yang sudah diberikan anotasi dan terbagi dalam
Hal yang membedakan penelitian ini dengan penelitian- 5247 kategori yang berbeda. Gambar 5 adalah contoh
penelitian sebelumnya [4,6,7,8] adalah dataset yang hierarki subtree dari kelas mamalia dan kendaraan.
digunakan sebagai data uji. Penelitian ini bermaksud untuk
mengekplorasi lebih jauh kinerja ketiga model terpilih di
339
Jurnal Teknik Informatika dan Sistem Informasi p-ISSN : 2443-2210
Volume 4 Nomor 2 Agustus 2018 e-ISSN : 2443-2229
Gambar 5 Contoh hirarki dari subtree ImageNet untuk mamalia dan kendaraan [2].
1
https://bitbucket.org/MuftahAfrizal/kp2017-1572054-muftahafrizal-
deteksirasanjing/src/master/
340
p-ISSN : 2443-2210 Jurnal Teknik Informatika dan Sistem Informasi
e-ISSN : 2443-2229 Volume 4 Nomor 2 Agustus 2018
VGG16. Setelah user mengunggah gambar dan memilih anjing atau tidak dalam gambar dan dalam menentukan ras
model, sistem akan menampilkan hasil prediksi objek yang anjing pada gambar. Apabila model mengeluarkan prediksi
terdapat pada gambar. yang sesuai maka akan diberikan nilai 1 dan 0 apabila
Gambar 8 menunjukkan activity diagram dari sistem. prediksinya salah. Tabel I menunjukkan hasil pengujian
Pada saat sistem dijalankan, template_handler akan tingkat akurasi tiap model terhadap 79 gambar anjing yang
menampilkan halaman index.html yang merupakan telah diberi label. Terlihat bahwa keakuratan model
tampilan awal untuk mengunggah gambar dan memilih Xception lebih baik daripada kedua model lainnya.
model. Saat user mengklik tombol upload, sistem akan TABEL I
melakukan validasi. Ketika untuk user tidak memilih satu
HASIL PENGUJIAN TINGKAT AKURASI MODEL
pun file, sistem akan menampilkan peringatan bahwa user
tidak mengunggah file apapun. Apabila user mengunggah Model Dog/Not Dog Race
file dengan format yang tidak diterima oleh sistem, sistem Xception 98.7% 67.1%
akan menampilkan halaman exception.html. ResNet50 97.5% 62.0%
Apabila format diterima oleh sistem, gambar akan disalin VGG16 97.5% 58.2%
ke dalam server dan sistem akan mengirimkan request B. Error Analysis dengan Metode Eyeball Test
kepada request_handler.py. Setelah itu,
request_handler.py akan melakukan preprocessing Error Analysis adalah proses untuk menyelidiki kembali
contoh-contoh hasil klasifikasi salah yang dilakukan oleh
terhadap gambar yang diunggah oleh user sesuai dengan
algoritma yang dikembangkan untuk mengetahui hal-hal
model yang juga dipilih oleh user karena tiap model
yang dapat memungkinkan terjadinya error [1]. Error
menggunakan metode preprocessing gambar yang berbeda.
analysis dapat digunakan sebagai acuan untuk
Kemudian sistem akan melakukan prediksi pada gambar
pengembangan model selanjutnya. Metode yang digunakan
yang sudah di-preprocess sesuai model yang dipilih.
dalam penelitian ini untuk error analysis adalah Eyeball
Hasil prediksi kemudian akan di-decode untuk dicek
Test.
apakah hasil prediksi merupakan anjing atau bukan.
Kemudian hasil prediksi akan dikirim kepada TABEL II
template_handler.py untuk diproses ke dalam BEBERAPA SAMPEL ERROR ANALYSIS
halaman. Apabila hasil kembalian menghasilkan prediksi
Gambar Exception ResNet50 VGG16
anjing, template_handler.py akan menampilkan
American Eskimo Pomerian Pomerian Pomerian
dog.html dan apabila hasil prediksi bukanlah anjing, Dog
template_handler.py akan menampilkan halaman Keterangan American Eskimo Dog pada gambar masih
non_dog.html. berumur muda, sehingga terlihat mirip
Gambar 9 merupakan halaman utama dari sistem. dengan pomeranian.
Halaman utama terdiri dari 3 bagian, yaitu (a), (b), dan (c). Alaskan Eskimo Alaskan Alaskan
Bagian (a) adalah petunjuk penggunaan sistem. Bagian (b) Malamute Dog Malamute Malamute
adalah tempat user mengunggah file gambar dan bagian (c) Keterangan Pada gambar tidak terlalu mirip, tetapi
malamute berada pada posisi ranking
merupakan penjelasan konsep singkat mengenai
nomor dua dari hasil prediksi Xception
Convolutional Neural Network. Selain itu, Gambar 10 American Water Sussex Gordon Afghan
menggambarkan halaman hasil prediksi untuk model Spaniel Spaniel Setter Hound
Xception dan file gambar yang di-upload, yaitu ras anjing Keterangan Gambar gelap, buram & terdapat manusia.
Labrador Retriever dengan persentase 84%. Ras hasil prediksi cukup mirip dengan
hasil asli.
Anatolian Leonberg Leonberg Irish
IV. PENGUJIAN Shepherd Dog Wolfhound
Keterangan Terdapat manusia pada gambar. Ras cukup
A. Pengujian Tingkat Akurasi Pada Ketiga Model Keras mirip dengan Leonberg tetapi tidak mirip
Pengujian dilakukan pada ketiga model yang sudah dengan Irish Wolfhound.
diterapkan pada sistem yang telah dikembangkan, yaitu
ResNet50, XCeption, dan VGG16. Ketiga model tersebut Tabel II menunjukkan beberapa sampel error analisis.
akan diuji pada sekumpulan gambar yang sama dan masing- Baris pertama menunjukkan bahwa prediksi ketiga model
masing akan dihitung keakuratan prediksinya. Kumpulan adalah Pomerian sedangkan ras anjing yang benar adalah
gambar yang akan digunakan untuk pengujian adalah 79 American Eskimo Dog. Baris kedua menunjukkan bahwa
gambar anjing dari berbagai ras yang telah diberi label hanya model Xception yang memberikan prediksi yang
untuk memudahkan pengujian. salah (Eskimo Dog, yang benar adalah Alaskan Malamute)
Dalam pengujian, dihitung 2 faktor penentu yaitu akurat dan baris ketiga menunjukkan bahwa semua model
atau tidaknya model dalam menentukan apakah terdapat memberikan prediksi yang salah.
341
Jurnal Teknik Informatika dan Sistem Informasi p-ISSN : 2443-2210
Volume 4 Nomor 2 Agustus 2018 e-ISSN : 2443-2229
342
p-ISSN : 2443-2210 Jurnal Teknik Informatika dan Sistem Informasi
e-ISSN : 2443-2229 Volume 4 Nomor 2 Agustus 2018
343
Jurnal Teknik Informatika dan Sistem Informasi p-ISSN : 2443-2210
Volume 4 Nomor 2 Agustus 2018 e-ISSN : 2443-2229
344