Abstrak
Pengenalan, klasifikasi dan deteksi pada bidang keilmuan Machine Learning merupakan suatu terobosan yang
terbaik pada kemampuan komputer visi. Mengimplementasikan salah satu metode machine learning yang dapat
digunakan untuk klasifikasi suatu objek yaitu Convolutional Neural Network (CNN) pada perangkat Mobile
merupakan salah satu solusi efektif dalam melakukan proses pengenalan, klasifikasi, dan deteksi objek tertentu.
Metode CNN terdiri dari dua tahap. Tahap pertama adalah klasifikasi objek menggunakan feedforward dan tahap
kedua merupakan tahap pembelajaran dengan metode backpropagation. Sebelum dilakukan klasifikasi, terlebih
dahulu dilakukan pra-proses dengan metode wrapping dan cropping untuk memfokuskan objek yang akan
diklasifikasi. Selanjutnya dilakukan training menggunakan metode feedforward dan backpropagation. Terakhir
adalah tahap klasifikasi menggunakan metode feedforward dengan bobot dan bias yang diperbarui. Hasil uji coba
dari klasifikasi citra objek dengan tingkat confusion yang berbeda pada database (tensorflow_inception_graph.pb)
dengan menggunakan struktur JSON. Menghasilkan nilai rata-rata 29.75% untuk pengenalan, klarifikasi, dan
deteksi pada ratusan objek yang memberikan hasil yang cukup memuaskan.
Kata kunci: Android, Tensorflow, Convolution Neural Network (CNN), Real-Time, Deteksi dan Pengenalan
Objek.
Abstract
Introduction, classification and detection in the field of science Learning Machine is a breakthrough that is best
on the computer vision capabilities. Implementing one machine learning method that can be used for classification
of an object that is Convolutional Neural Network (CNN) on Mobile device is one of effective solution in
conducting process of recognition, classification, and detection of certain object. The CNN method consists of two
stages. The first stage is the classification of the object using feedforward and the second stage is the learning
stage with backpropagation method. Prior to classification, pre-process is done by the method of wrapping and
cropping to focus the object to be classified. Further training is done using feedforward and backpropagation
methods. Last is the classification stage using the feedforward method with the weight and bias being updated.
Trial results from object image classification with different confusion level in database
(tensorflow_inception_graph.pb) using JSON structure.
Keywords: Android, Tensorflow, Convolution Neural Network (CNN), Real-Time, Object Detection and
Introduction.
I. PENDAHULUAN signifikan dalam memodelkan berbagai data
Sebuah sistem autentikasi identitas manusia, kompleks seperti citra dan suara.
hewan, tumbuhan, benda, dan lain-lain yang
Metode Deep Learning yang saat ini memiliki
memiliki akurasi tinggi sangat diperlukan saat ini
hasil paling signifikan dalam pengenalan citra
karena meningkatnya perkembangan Deep Machine
adalah Convolutional Neural Network (CNN) [4].
Learning di Dunia. Secara luas sistem saat ini
Hal tersebut dikarenakan CNN berusaha meniru
menggunakan sistem biometrik seperti kontrol
sistem pengenalan citra pada visual cortex manusia
akses, identifikasi kriminal, autonomous vending,
[5] sehingga memiliki kemampuan mengolah
dan automated banking karena keunikan fitur
informasi citra. Namun CNN, seperti metode Deep
biometrik dan karakteristik yang tidak dapat
Learning lainnya, memiliki kelemahan yaitu proses
dipindah tangankan (non-transferable
pelatihan model yang lama. Dengan perkembangan
characteristic)[1]. Biometrik dibagi menjadi dua
perangkat keras, hal tersebut dapat diatasi
kategori yaitu berdasarkan perilaku seseorang
menggunakan teknologi General Purpose Graphical
seperti ritme mengetik, gaya berjalan atau suara dan
Processing Unit (GPGPU).
berdasarkan fisiologis seperti sidik jari, wajah, iris,
atau tanda tangan.
II. TINJAUAN PUSTAKA
Bagaimana menduplikasi kemampuan manusia
dalam memahami informasi citra, agar komputer A. Convolutional Neural Network
dapat mengenali objek pada citra selayaknya Convolutional Neural Network (CNN) adalah
manusia. Proses feature engineering yang digunakan pengembangan dari Multilayer Perceptron (MLP)
pada ummumnya sangat terbatas dimana hanya yang didesain untuk mengolah data dua dimensi.
dapat berlaku pada dataset tertentu saja tanpa CNN termasuk dalam jenis Deep Neural Network
kemampuan generalisasi pada jenis citra apapun. Hal karena kedalaman jaringan yang tinggi dan banyak
tersebut dikarenakan berbagai perbedaan antar citra diaplikasikan pada data citra. Pada kasus klasifikasi
antara lain perbedaan sudut pandang, perbedaan citra, MLP kurang sesuai untuk digunakan karena
skala, perbedaan kondisi pencahayaan, deformasi tidak menyimpan informasi spasial dari data citra
objek, dan sebagainya. dan menganggap setiap piksel adalah fitur yang
independen sehingga menghasilkan hasil yang
Kalangan akademisi yang telah lama bergelut
kurang baik. CNN pertama kali dikembangkan
pada problem ini. Salah satunya pendekatan yang
dengan nama NeoCognitron oleh Kunihiko
berhasil digunakan adalah menggunakan Jaringan
Fukushima, seorang peneliti dari NHK Broadcasting
Syaraf Tiruan (JST) yang terinspirasi dari jaringan
Science Research Laboratories, Kinuta, Setagaya,
syaraf pada manusia. Konsep tersebut kemudian
Tokyo, Jepang [4]. Konsep tersebut kemudian
dikembangkan lebih lanjut dalam Deep Learning.
dimatangkan oleh Yann LeChun, seorang peneliti
Pada tahun 1989, Yann LeCun dan teman- dari AT&T Bell Laboratories di Holmdel, New
temannya berhasil melakukan klasifikasi citra kode Jersey, USA. Model CNN dengan nama LeNet
zip menggunakan kasus khusus dari Feed Forward berhasil diterapkan oleh LeChun pada penelitiannya
Neural Network dengan nama Convolution Neural mengenai pengenalan angka dan tulisan tangan [1].
Network (CNN)[1]. Karena keterbatasan perangkat Pada tahun 2012, Alex Krizhevsky dengan
keras, Deep Learning tidak dikembangkan lebih penerapan CNN miliknya berhasil menjuarai
lanjut hingga pada tahun 2009 dimana Jurgen kompetisi ImageNet Large Scale Visual Recognition
mengembangkan sebuah Recurrent Neural Network Challenge 2012. Prestasi tersebut menjadi momen
(RNN) yang mendapatkan hasil signifikan pada pembuktian bahwa metode Deep Learning,
pengenalan tulisan tangan [2]. Semenjak itu, dengan khususnya CNN. Metode CNN terbukti berhasil
berkembangnya komputasi pada perangkat keras mengungguli metode Machine Learning lainnya
Graphical Processing Unit (GPU), pengembangan seperti SVM pada kasus klasifikasi objek pada citra.
DNN berjalan dengan pesat. Pada tahun 2012,
B. Konsep CNN
sebuah CNN dapat melakukan pengenalan citra
dengan akurasi yang menyaingi manusia pada Cara kerja CNN memiliki kesamaan pada MLP,
dataset tertentu [3]. Dewasa ini, Deep Learning telah namun dalam CNN setiap neuron dipresentasikan
menjadi salah satu topik hangat dalam dunia dalam bentuk dua dimensi, tidak seperti MLP yang
Machine Learning karena kapabilitasnya yang setiap neuron hanya berukuran satu dimensi.
Pada kasus MLP, sebuah jaringan tanpa hidden
layer dapat memetakan persamaan linear apapun,
sedangkan jaringan dengan satu atau dua hidden
layer dapat memetakan sebagian besar persamaan
pada data sederhana.
1) Convolution Layer
Convolution Layer melakukan operasi
Gambar.2. Proses Konvolusi pada CNN
konvolusi pada output dari layer sebelumnya.
C. Arsiterktur Jaringan CNN Layer tersebut adalah proses utama yang
JST terdiri dari berbagai layer dan beberapa mendasari sebuah CNN.
neuron pada masing-masing layer. Kedua hal Konvolusi adalah suatu istilah matematis yang
tersebut tidak dapat ditentukan menggunakan aturan berati mengaplikasikan sebuah fungsi pada output
yang pasti dan berlaku berbeda-beda pada data yang fungsi lain secara berulang. Dalam pengolahan citra,
berbeda [7]. konvolusi berati mengaplikasikan sebuah
kernel(kotak kuning) pada citra disemua offset yang
memungkinkan seperti yang ditunjukkan pada
Gambar.3. Kotak hijau secara keseluruhan adalah
citra yang akan dikonvolusi. Kernel bergerak dari
sudut kiri atas ke kanan bawah. Sehingga hasil
konvolusi dari citra tersebut dapat dilihat pada
gambar disebelah kanannya.
Tujuan dilakukannya konvolusi pada data citra
adalah untuk mengekstraksi fitur dari citra input. Gambar.4. Operasi Max Pooling
Konvolusi akan menghasilkan transformasi linear
dari data input sesuai informasi spasial pada data. Menurut Springenberg et al. [10], penggunaan
Bobot pada layer tersebut menspesifikasikan kernel pooling layer pada CNN hanya bertujuan untuk
konvolusi yang digunakan, sehingga kernel mereduksi ukuran citra sehingga dapat dengan
konvolusi dapat dilatih berdasarkan input pada mudah digantikan dengan sebuah convolution layer
CNN. dengan stride yang sama dengan pooling layer yang
bersangkutan.
M u la i
In p u t D a ta
S e le s a i
: Input gambar
Mulai
2 : Bias filter pooling layer ke-2 4 : Bias filter pooling layer ke-
2 : Filter pooling layer ke-2 4
2 : Index baris feature map ke-2 4 : Filter pooling layer ke-4
2 : Index kolom feature map ke-2 4 : Index baris feature map ke-
2 : Panjang baris feature map ke-2 4
2 : Panjang kolom feature map ke- 4 : Index kolom feature map
2 ke-4
: Panjang baris feature map ke-4
c. Convolutional Layer C3
3((3,2)3) = : Panjang kolom feature map ke-4
11 31 31
(3(2) + 3((31,,3)2) 2 e. Hidden Layer H5
((31+ )3,3+3) ) (3)
1=0 3=0 3=0 (5)
Keterangan variabel dan index pada 1
Convolutional Layer C3 adalah sebagai berikut:
(7)
: Bilangan acak (random)
: Standar deviasi