weak ai - library binus

36
7 BAB 2 LANDASAN TEORI 2.1 Artificial intelligence Artificial intelligence (AI) adalah pengembangan dari sistem komputer yang bisa melakukan kegiatan yang biasanya dilakukan manusia dengan informasi yang diberikan kepada sistem tersebut (Russel, Norvig, & Peter, 2016). AI bisa menirukan proses cara berfikir manusia dengan melakukan modeling kepada kelakuan manusia dan melakukan proses komputasi oleh mesin sehingga mesin dapat belajar dari informasi yang didapatkan. AI dapat dikategorikan menjadi dua tipe yaitu: Weak AI Mesin dengan kekuatan AI yang lemah digunakan manusia hanya untuk membantu kegiatan manusia secara spesifik dan tidak dapat berfikir untuk dirinya sendiri. Strong AI Mesin dengan kekuatan AI yang kuat dapat berfikir selayaknya manusia biasa, dan dapat belajar dari pengalaman yang didapatkan. Jika di kembangkan lagi dapat melakukan self-decision atau pengambilan keputusan saat beberapa masalah terjadi. Pada AI terdapat proses yang dijelaskan oleh Prateek joshi (Joshi, 2017): Collecting data Pengumpulan data yang akan dilakukan untuk keperluan training data kedalam sistem kecerdasan atau AI. Preprocess Data yang dikumpulkan akan melalui proses preprocess yang akan diubah menjadi informasi. Cognition

Upload: khangminh22

Post on 23-Feb-2023

1 views

Category:

Documents


0 download

TRANSCRIPT

7

BAB 2

LANDASAN TEORI

2.1 Artificial intelligence

Artificial intelligence (AI) adalah pengembangan dari sistem komputer yang

bisa melakukan kegiatan yang biasanya dilakukan manusia dengan informasi yang

diberikan kepada sistem tersebut (Russel, Norvig, & Peter, 2016). AI bisa menirukan

proses cara berfikir manusia dengan melakukan modeling kepada kelakuan manusia

dan melakukan proses komputasi oleh mesin sehingga mesin dapat belajar dari

informasi yang didapatkan. AI dapat dikategorikan menjadi dua tipe yaitu:

• Weak AI

Mesin dengan kekuatan AI yang lemah digunakan manusia hanya untuk

membantu kegiatan manusia secara spesifik dan tidak dapat berfikir

untuk dirinya sendiri.

• Strong AI

Mesin dengan kekuatan AI yang kuat dapat berfikir selayaknya manusia

biasa, dan dapat belajar dari pengalaman yang didapatkan. Jika di

kembangkan lagi dapat melakukan self-decision atau pengambilan

keputusan saat beberapa masalah terjadi.

Pada AI terdapat proses yang dijelaskan oleh Prateek joshi (Joshi, 2017):

• Collecting data

Pengumpulan data yang akan dilakukan untuk keperluan training data

kedalam sistem kecerdasan atau AI.

• Preprocess

Data yang dikumpulkan akan melalui proses preprocess yang akan

diubah menjadi informasi.

• Cognition

8

Dari informasi yang telah diekstraksi dari data akan melalui proses

cognition yang akan menjadi suatu knowledge.

• Pattern extraction

Dari knowledge tersebut akan dilakukan pattern extraction dengan

tujuan agar dapat dimengerti oleh sistem.

• Inference

Setelah melalui pattern extraction akan dilakukan tahap terakhir yaitu

inference atau melakukan kesimpulan yang digunakan sebagai

intelligence dari sistem.

AI juga mempunyai beberapa cabang untuk menyelesaikan masalah-masalah

yang ada saat ini yaitu:

• Neural network

Tujuan pada cabang neural network ini adalah mereplikasi otak

manusia menjadi beberapa microchip, dan konsep utama dari neural

networks adalah membuat jaringan data yang saling berhubungan dan

terus-menerus saling mengirimkan data. Jaringan Saraf Tiruan (JST)

adalah cara komputasi untuk melakukan replikasi. Setiap jaringan saraf

terdiri dari neuron yang dihubungkan oleh koneksi yang di sebut

weight. Semakin banyak jaringannya maka semakin baik kemampuan

belajar sistem tersebut.

• Computer vision

Tujuan pada cabang computer vision ini adalah untuk membuat

computer memahami data visual. Memahami hal ini berarti bahwa

informasi yang diperoleh oleh computer dapat berguna untuk aplikasi

yang sedang di buat. Nilai piksel diambil sebagai fitur dari data visual

dan biasanya akan ada preprocessing untuk meningkatkan kualitas fitur.

• Robotics

9

Tujuan dari cabang robotics adalah membuat perangkat mekanik atau

biasanya disebut robot unutk melakukan pekerjaan yang ekstrem yang

tidak dapat dicapai oleh manusia atau menggantikan beberapa pekerjaan

manusia.

• Expert system

Tujuan dari cabang expert system adalah membuat AI yang dapat

membuat solusi yang biasanya membutuhkan kemampuan proses

pemikiran manusia. Konsep expert system adalah untuk mentransfer

pengetahuan dari seseorang yang mahir dalam apa yang mereka lakukan

ke dalam mesin. Tujuan utamanya adalah untuk memudahkan proses

penerimaan informasi.

• Speech recognition

Tujuan dari cabang speech recognition ini sama dengan computer vision

yaitu dengan mendapatkan informasi dari sekitar dengan data visual

dalam konteks bunyi atau percakapan manusia. Speech recognition

mengubah signal bunyi menjadi urutan kata-kata.

• Natural language processing (NLP)

Tujuan dari cabang NLP adalah untuk membuat manusia berkomunikasi

dengan mesin dengan bahasa sehari-hari. Mesin tersebut dapat

mengetahui dan menjawab dengan bahasa sehari-hari. NLP terdiri dari

syntactic analysis dan semantic analysis. Syntatic analysis akan

memecah kalimat menjadi kata kerja, kata ganti, dan sebagainya.

Sementara semantic analysis mencoba menganalisa makna kalimat.

• Machine learning

Tujuan dari cabang machine learning adalah untuk mengidentifikasi

pola dalam data dan menyesuaikan dengan sistem. Pada machine

learning sistem dapat mempelajari pola dengan informasi yang

diberikan secara otomatis.

10

2.2 Computer vision

Computer vision adalah cabang dari artificial intelligence yang khusus

menangani permasalahan data visual seperti gambar dan video. Computer vision

bertugas untuk membuat sistem mengerti lingkungan sekitar atau dunia nyata melalui

gambar atau data visual lainnya. Contohnya ketika manusia bisa mengetahui dengan

melihta objek A adalah kursi, maka computer vision akan membuat sistem mengenali

objek A adalah kursi. Computer vision sudah banyak di aplikasikan ke dalam dunia

nyata seperti (Szeliksi, 2010):

• Optical character recognition (OCR)

Membaca tulisan tangan pada surat pos seperti pada Gambar 2.1 dan

automatic number plate recognition (ANPR).

• Machine inspection

Inspeksi atau pengecekan untuk quality assurance pada sayap pesawat

atau bagian lainnya dengan menggunakan stereo vision atau mencari

kejanggalan pada proses las menggunakan x-ray vision seperti pada

Gambar 2.2.

• Fingerprint recognition and biometrics

Autentikasi otomatis menggunakan jari atau wajah manusia untuk

efisiensi waktu.

Gambar 2.1 Contoh OCR pada surat pos

(Sumber: ( (Szeliksi, 2010))

11

Gambar 2.2 Contoh machine inspection

(Sumber: ( (Szeliksi, 2010))

2.2.1 Super resolution

Secara garis besar super-resolution adalah proses mengubah gambar

resolusi rendah menjadi gambar resolusi tinggi. Super-resolution

merekonstruksi ulang gambar resolusi rendah menjadi gambar resolusi tinggi

dengan data yang sudah di sediakan (Gaidhani, 2011). Sedangkan gambar

resolusi rendah terkadang tidak tersedia untuk proses rekonstruksi sehingga

hanya bisa merekonstruksi gambar dengan informasi yang terbatas, proses ini

biasanya disebut dengan single-frame super-resolution. Super-resolution

dikategorikan menjadi multi-frame atau single-frame bergantung kepada input

daripada gambar resolusi rendah yang digunakan. Super-resolution mempunyai

cara hitung sebagai berikut:

(1)

Dimana adalah gambar resolusi rendah, adalah decimation,

adalah linear blurring, adalah geometric transformation, adalah gambar

resolusi tinggi, dan adalah additive noise. Gambar 2.3 menunjukkan

ilustrasi dari proses rekonstruksi gambar dari gambar resolusi rendah menjadi

gambar resolusi tinggi secara singkat.

12

Gambar 2.3 Ilustrasi proses rekonstruksi gambar super-resolution

2.2.2 Denoising

Denoising mempunyai peran penting dalam bidang image enhancement.

Pentingnya proses denoising ini bertujuan untuk memperoleh hasil gambar yang

lebih akurat dan mendekati aslinya. Denoising menghapus noise yang terdapat pada

citra dan dengan proses filtering. Menurut (Buades, Coll, Bartomeu, Morel, & J-M,

2005) metode denoising mempunyai proses sebagai berikut:

(2)

Dimana, adalah observed value, adalah “true” value dan

adalah noise value dalam pixel i. Lalu, ada tiga macam noise yaitu:

• Additive Noise

Additive noise adalah penambahan kadar noise secara merata pada

sebuah gambar dengan nilai yang sudah ditentukan. Contoh noise salt-

and-peppers yang menambahkan titik-titik gelap dan terang pada

gambar.

• Gaussian Noise

Noise ini memiliki intensitas yang sesuai dengan distribusi normal yang

memiliki mean dan varian tertentu.

• Speckle Noise

Speckle noise adalah noise yang muncul pada saat pengambilan gambar

yang tidak sempurna karena alasan cuaca, kamera, dan sebagainya.

Speckle noise bersifat mulipikatif yang berarti semakin besar intensitas

gambar atau semakin cerah gambar maka semakin jelas juga noise pada

gambar tersebut.

13

2.3 Machine learning

Machine learning adalah proses belajar pada sistem untuk mendapatkan ilmu

dan pengalaman dari data yang diberikan. Sistem akan beradaptasi dengan pola dari

data secara otomatis. Dari hasil adaptasi tersebut sistem dapat memproses berbagai

macam kegiatan yang bisa memudahkan manusia. Menurut (Domingos, 2012)

“ learning” memiliki komponen yang terdiri dari:

• Representation

Classifier harus dalam bahasa formal yang dimengerti oleh komputer.

Dengan memilih representation sebagai learner sama saja dengan

mengambil sebagian dari classifier yang memungkinkan untuk

dipelajari. Sebagian dari classifier ini bisa di sebut juga sebagai

hypothesis space. Jika suatu classifier tidak termasuk dalam hypothesis

space maka classifier tersebut tidak bisa untuk bahan learning.

• Evaluation

Fungsi evaluasi (objective function atau scoring function) berguna untuk

memisahkan classifier yang baik dan buruk.

• Optimization

Fungsi dari optimisasi disini adalah untuk mencari classifier yang

mempunyai kualitas yang paling baik dan membuat proses learning

menjadi lebih efisien.

Machine learning sendiri dikemukakan oleh Arthur Samuel pada tahun 1959

(Provost, 1998). Machine learning sendiri terdiri dari 3 (tiga) tipe yaitu:

• Supervised learning

Supervised learning biasanya digunakan untuk predictive modeling.

Predictive modeling adalah model dari machine learning yang dapat

memprediksi nilai dari nilai lain yang ada di input data. Supervised

learning mempunyai dua tipe yaitu:

a. Classification

b. Regression

• Unsupervised learning

Unsupervised learning biasanya digunakan untuk pattern detection dan

descriptive modeling. Algoritma ini mengubah input data untuk

14

mendeteksi pola atau mengmumpulkan data. Unsupervised learning

mempunyai dua tipe yaitu:

a. Clustering

b. Association rule learning

• Semi supervised learning

Semi supervised learning biasanya digunakan untuk descriptive

modeling, karena pada dasarnya descriptive modeling itu mahal maka

semi-supervised learning menjadi salah satu cara untuk menangani hal

tersebut.

• Reinforcement learning

Reinforcement learning menggunakan interaksi pada lingkungan untuk

memaksimalkan hasil atau meminimalisir kegagalan. Reinforcement

learning mempelajari pola-pola dari data dengan cara pengulangan,

maka dari proses tersebut reinforcement learning akan mendapatkan

suatu intelligent yang diharapkan dapat menyelesaikan masalah lain.

Gambar 2.4 Tipe-tipe machine learning

2.4 Deep learning

Deep learning adalah cabang dari machine learning yang khusus mengatasi

masalah abstraksi data dengan mengoptimalkan hierarchical architectures (Guo,

2016). Metode deep learning saat ini sedang terkenal dikalangan artificial

intelligence yang di aplikasikan pada transfer learning (Pan, Yang, Qiang, & others,

2010), computer vision, natural language processing (NLP), atau semantic parsing.

Deep learning mengoptimalkan hierarchical architecture untuk mempelajari dan

15

mengerti lingkungan. Karena metode deep learning akan mengambil informasi dari

data, jadi data tersebut tidak perlu di bagi-bagi lagi menjadi beberapa bagian. Sistem

akan memisahkan dan mengetahui mana data yang terbaik dan terburuk untuk

dijadikan bahan belajar, hal ini dinamakan high-level feature. High-level feature

adalah fitur-fitur yang terdapat pada gambar yang tidak bisa di lihat oleh manusia.

Dengan adanya high-level feature menjadikan deep learning menjadi lebih baik

daripada machine learning yang dimana machine learning belajar dengan fitur data

yang dibuat oleh manusia. Hal ini terbukti dengan banyak sekali implementasi deep

learning sedang banyak digunakan saat ini, berikut adalah keunggulan saat

menggunakan metode deep learning:

• Deep learning dapat menambah performa dari chip processing (contoh:

graphic processing unit atau GPU).

• Deep learning dapat menurunkan sumber daya penggunaan pada

hardware komputer.

• Deep learning merupakan satu tingkat lebih tinggi daripada machine

learning.

16

Gambar 2.5 Perbedaan antara rule-based system, classic machine learning dan deep learning

(Sumber: ( (Goodfellow, et al., 2016))

2.4.1 Neural network layer

Pada computer vision terdapat banyak cara untuk mengubah input agar dapat di

proses oleh model pada deep learning. Dengan menggunakan neural network layer

kita dapat mengolah data yang mempunyai banyak dimensi seperti gambar berwarna

yang mempunyai tiga dimensi untuk diolah oleh sistem. Sebelum data input tersebut

diproses maka data tersebut akan masuk kedalam layer yang akan memproses dan

mengubah dengan ukuran filter yang digunakan. Neural network mempunyai 3 (tiga)

macam layer yaitu: input layer, hidden layer, dan output layer (Smith & others,

1997).

17

Gambar 2. 6 Contoh alur dari input layer, hidden layer, dan output layer

(Sumber: ( (Smith & others, 1997))

• Input layer

Pada input layer, input gambar akan di ambil beberapa informasi atau fitur-

fitur yang akan menghasilkan sebuah nilai.

18

Gambar 2.7 Ilustrasi masuknya nilai input layer yang akan diproses oleh hidden layer

• Hidden layer

Nilai yang dihasilkan oleh input layer akan masuk kedalam hidden layer

dan akan diproses oleh hidden layer dengan melipat gandakan nilai-nilai

yang terkirim ke hidden layer. Setelah itu hidden layer akan mengubah

nilai-nilai tersebut menjadi satu nilai seperti simbol “E” pada gambar 2.7.

• Output layer

Output layer akan menerima nilai yang sudah diproses oleh hidden layer

dan akan dilanjutkan ke proses selanjutnya.

Neural network dapat mempunyai jumlah layer yang tidak terbatas

dan jumlah node pada setiap layer. Ada beberapa macam neural network

layer yang biasanya digunakan pada model, yaitu: 1-D/2-D convolutional

neural network, max pooling 1-D/2-D, batch normalization, activation

function layer, dan sebagainya.

2.4.1.1 1-D / 2-D Convolutional neural network

Layer 1-D dan 2-D convolutional neural network atau biasanya

disebut (Conv1D/Conv2D), layer konvolusi ini mempunyai parameter yang

berguna untuk mempelajari fitur-fitur yang ada pada gambar secara otomatis.

Layer konvolusi beradaptasi secara otomatis untuk mencari fitur-fitur paling

19

baik pada gambar. Biasanya multiple convolutional layers di gunakan untuk

menyaring gambar yang mempunyai informasi abstrak di setiap layernya.

Gambar 2.8 Ilustrasi layer konvolusi pada image enhancement

2.4.1.2 Max pooling 1-D / 2-D

Layer pooling atau biasanya disebut (MaxPooling1D /

Maxpooling2D), layer pooling digunakan untuk membuat input menjadi

single value (subsampling). Layer pooling biasanya mempunyai informasi

yang berguna dan sudah diringkas untuk disalurkan pada layer selanjutnya.

Semakin besar ukuran pooling maka semakin besar pula informasi yang

diringkas, hal ini dapat menyebabkan model yang dibuat menjadi ringkas

pula sehingga tidak memakan banyak memori pada GPU.

Gambar 2.9 Ilustrasi operasi maxpooling dengan filter 2 x 2

2.4.1.3 Batch normalization

Layer batch normalization (BatchNormalization) berfungsi untuk

menormalisasikan activation pada layer sebelumnya, batch normalization

20

menerapkan transformasi yang mengatur agar nilai activation mendekati nilai

0 dan nilai standar deviasi pada activation mendekati nilai 1.

2.4.1.4 Activation function layer

Activation function berfungsi untuk menetapkan nilai pada suatu neuron dari

input yang masuk kedalam activation function layer. Ada beberapa activation

function yang dapat digunakan, yaitu:

• Sigmoid

Activation sigmoid dapat mengubah nilai input negatif menjadi nilai yang

mendekati angka 0 jika nilai input tersebut bernilai negatif. Sebaliknya, saat

nilai input mempunyai nilai positif maka sigmoid akan mengubah nilai input

tersebut mendekati angka 1. Gambar 2.10 menunjukan grafik dari activation

sigmoid.

Gambar 2.10 Grafik activation sigmoid

• Rectified linear unit (ReLU)

ReLU dapat mengubah nilai input menjadi nilai maksimum antara 0 atau nilai

input itu sendiri. Gambar 2.11 menunjukan grafik dari activation ReLU.

21

Gambar 2.11 Grafik activation ReLU

2.5 Optimization function

2.5.1 Stochastic gradient descent (SGD)

SGD sering disebut sebagai incremental gradient descent. SGD mencari weight

baru dengan cara incremental yaitu mengambil sampel dari seluruh data training,

setelah itu SGD akan menganalisa setiap sampel data tersebut. Keuntungan

menggunakan SGD adalah terminimalisirnya memori yang dibutuhkan pada saat

mencari weight baru (Mitchell, 1997).

2.5.2 Adaptive gradient (AdaGrad)

AdaGrad adalah algoritma yang mengatur learning rate agar dapat

meningkatkan performa dengan menggunakan sparse gradients (Tieleman, Hinton,

& Geoffrey, 2012).

2.5.3 Root mean square propagation (RMSProp)

RMSProp adalah algoritma yang mengatur learning rate berdasarkan besaran

nilai rata-rata dari weight. RMSProp menggunakan nilai pertama dalam gradien

untuk menentukan nilai rata-rata dari weight (Duchi, Hazan, Elad, Singer, & Yoram,

2011).

2.5.4 Adam

Adam termasuk salah satu algoritma optimizer yang mudah untuk di

implementasikan, tidak memakan banyak memori, efisien, dan yang paling penting

22

adalah adam sangat cocok untuk menyelesaikan masalah yang berhubungan dengan

data dan parameter (Kingma, Ba, & Jimmy, 2014).

Adam mempunyai kelebihan daripada optimizer lain yaitu adaptive gradient

(AdaGrad) (Duchi, Hazan, Elad, Singer, & Yoram, 2011), dan root mean square

propagation (RMSProp) (Tieleman, Hinton, & Geoffrey, 2012). Dalam menentukan

nilai weight jika RMSProp menggunakan nilai pertama dalam gradien, di sisi lain

adam menggunakan nilai ke-dua dari gradien. Hal ini secara khusus dapat

menghitung rata-rata hitung eksponensial dari gradien, gradien kuadrat, dan

parameter beta1/beta2 mengontrol rata-rata decay (Kingma, Ba, & Jimmy, 2014).

2.6 Programming language dan library

Bahasa pemrograman adalah bahasa notasi buatan yang dibuat atau

dikembangkan berupa sebuah instruksi yang nantinya akan dieksekusi oleh

komputer. Bahasa pemrograman biasanya terdiri dari serangkaian aturan (syntax)

yang akan menjelaskan maksud dari aturan (semantics). Pada bahasa pemrograman

biasanya mempunyai penerjemah atau translator yang biasanya disebut interpreter

atau compiler (Lateef, et al., 2016).

2.6.1 Python

Python adalah bahasa pemrograman yang cocok untuk pembelajaran dan

pemrograman dunia nyata. Python termasuk ke dalam bahasa pemrograman high-

level, dan object-oriented. Python menjadi salah satu bahasa pemrograman yang

sangat cepat diadopsi oleh banyak orang. Python memiliki beberapa fitur yang

menjadi kelebihannya yaitu (K.R.Srinath, 2017):

• Simpel

Python termasuk kedalam bahasa pemrograman high-level yang

mempunyai banyak sumber untuk dipelajari. Python mendukung

banyak program-program lain sehingga menjadi mudah untuk

menggunakan python.

• Portable

23

Bahasa pemrograman python bisa di akses di sistem operasi apapun

seperti windows, linux, amigo, mac OS, dan sebagainya.

• Open source

Python termasuk kedalam tipe open source yang berarti bebas untuk

digunakan oleh umum.

• Mempunyai library yang besar

Python mempunyai library yang cukup luas sehingga dapat lebih

mudah menyelesaikan masalah dengan library yang ada. Contoh library

yang ada pada python adalah numpy, tensorflow, keras, MySQLdb, dan

sebagainya.

• Object oriented

Python termasuk bahasa pemrograman yang bersifat object-oriented.

Dengan pemrograman yang bersifat object oriented, python dapat

membantu menyelesaikan masalah yang kompleks.

2.6.2 Keras

Menurut website resmi keras, keras adalah high-level neural network API yang

ditulis dengan bahasa pemrograman python dan dapat dijalankan pada tensorflow,

microsoft cognitive toolkit (CNTK), atau theano. Keras mudah dimengerti dan dapat

digunakan untuk membuat prototype, mendukung penggunaan convolutional

network dan recurren networks, keras juga dapat berjalan secara mulus pada central

processor unit (CPU) dan graphics processing unit (GPU). Keras juga mendukung

penggunaan python versi 2.7 sampai 3.6.

2.6.3 OpenCV

Open source computer vision library (OpenCV) adalah library bersifat open

source yang dapat digunakan untuk computer vision dan machine learning. OpenCV

dibuat untuk melengkapi kebutuhan infrastruktur pada computer vision dan untuk

meningkatkan kinerja sistem. OpenCV mempunyai lebih dari 2.500 algoritma yang

bisa digunakan, yang terdiri dari classic dan state-of-the-art dari algoritma computer

24

vision dan machine learning. Algoritma opencv dapat mendeteksi dan mengenali

wajah manusia, mengidentifikasi objek, menggabungkan dua gambar untuk

mendapatkan gambar beresolusi tinggi.

2.6.4 PyQt

Menurut website resmi pyqt, pyqt adalah sebuah application programming

interface (API) yang dibuat oleh riverbank. Pyqt dapat berjalan di semua platform

seperti windows, OS, linux, iOS, dan android. Pyqt mengimplementasi modul-modul

yang ada pada python dan menampung lebih dari 1.000 fungsi yang ada pada pyqt.

Pyqt mengkombinasikan semua keuntungan yang ada di python, jadi semua orang

dapat menggunakan pyqt dengan mudah.

2.7 Evaluation metric

2.7.1 Peak signal-to-noise ratio (PSNR)

PSNR atau peak signal-to-noise-ratio sangat sering digunakan dalam sistem

sebagai metode untuk menilai kualitas metrik secara konsisten (Huynh-Thu,

Ghanbari, & Mohammed, 2008) PSNR memiliki cara hitung dengan menggabungkan

mean square error (MSE).

(2)

Sedangkan MSE memiliki cara hitung:

(3)

Dimana adalah gambar asli dan adalah gambar test, lalu adalah

ukuran gambar (Hore, Ziou, & Djemel, 2010). Semakin besar hasil hitung akhir dari

PSNR, maka itu berarti gambar semakin bagus dan mendekati gambar input. Jika

nilai hasil dari PSNR melebihi angka 30 maka biasanya gambar tersebut da.3pat

dikatakan gambar yang baik. Tabel 2.1 adalah contoh ilustrasi hasil akhir hitungan

PSNR yang diambil dari publikasi karya ilmiah (Wongso, Luwinda, & others, 2018).

Dalam karya ilmiah (Wongso, Luwinda, & others, 2018) gambar yang menjadi tolak

ukur untuk penghitungan PSNR adalah gambar natural image.

25

Tabel 2.1 Ilustrasi hasil PSNR di super-resolution for natural image

Model PSNR

SRCNN 32.96

VDSR 33.98

DRCN 35.05

2.7.2 Structural similarity index (SSIM)

Structural similarity index atai SSIM adalah metode untuk menilai kualitas

gambar. Gambar 2.3 menunjukkan ilustrasi diagram cara kerja SSIM.

Gambar 2.12 Ilustrasi diagram alur kerja SSIM

(Sumber: ( (Wang, et al., 2004))

Dari gambar 2.12 anggap x dan y adalah sinyal dari fitur gambar yang sudah

diekstrak. Sistem akan memisahkan cara hitung menjadi tiga bagian yaitu:

luminance, contrast, dan structure (Wang, et al., 2004). Cara hitung SSIM adalah

sebagai berikut:

(4)

Dimana , , , , dan adalah nilai rata-rata, standar deviasi, dan

covariance dari gambar dan . Gambar dikatakan mempunyai kualitas yang baik

jika hasil hitung dari SSIM mendekati angka 1. Tabel 2.2 adalah ilustrasi SSIM di

26

super-resolution yang diambil dari publikasi karya ilmiah (Wongso, Luwinda, &

others, 2018).

Tabel 2.2 Ilustrasi hasil SSIM di super-resolution for natural image

2.8 Unified modelling language (UML)

Unified modelling language (UML) adalah sekumpulan permodelan yang

digunakan untuk menggambarkan suatu sistem. Diagram UML bisa diibaratkan

seperti rancangan saat membuat aplikasi, dimana sekumpulan rancangan tersebut

menyediakan gambaran yang berbeda-beda sesuai kebutuhan developer maupun

user.

Menurut (Bentley, Whitten, & L, 2007) diagram UML memiliki 13 diagram, yaitu:

• Class diagram

Diagram yang menggambarkan objek-objek yang terdapat pada sistem.

• User case diagram

Diagram yang menggambarkan interaksi antara sistem dengan user.

• Activity diagram

Diagram yang menggambarkan urutan atau alur aktivitas dari use case.

• Object diagram

Diagram yang mirip dengan class diagram tetapi lebih menggambarkan

objek yang terdapat dalam class.

• Sequence diagram

Diagram yang menggambarkan bagaimana suatu objek berinteraksi

melalui pesan dalam pelaksanaan use case atau operasi dengan adanya

lifetime.

• State machine diagram

Model SSIM

SRCNN 0.978

VDSR 0.983

DRCN 0.986

27

Diagram yang menggambarkan bagaimana suatu kejadian dapat

mengubah status objek selama waktu hidupnya.

• Communication diagram

Diagram yang menggambarkan interaksi dari objek melalui pesan.

• Interaction overview diagram

Diagram yang mengkombinasikan fitur dari activity diagram dan

sequence diagram untuk menunjukan bagaimana objek berinteraksi

pada setiap aktivitas dari use case.

• Component diagram

Diagram yang menggambarkan pengaturan dari kode pemrograman

yang dibagi menjadi komponen-komponen, dan bagaimana komponen

tersebut berinteraksi.

• Timing diagram

Diagram interaksi yang berfokus pada kendala waktu dalam perubahan

status dari single object atau multiple object.

• Composite structure diagram

Diagram yang menguraikan struktur internal dari class, component, atau

use case.

• Deployment diagram

Diagram yang menggambarkan konfigurasi dari komponen aplikasi

dengan arsitektur fisikan dari sistem hardware.

• Package diagram

Diagram yang menggambarkan bagaimana class atau diagram lainnya

membangun sebuah package yang terorganisir.

Dengan adanya diagram-diagram pada UML diharapkan perancangan sistem

dapat lebih dipahami dan mudah digambarkan sehingga tujuan dari UML akan

tercapai.

2.8.1 Use case diagram

Use case diagram adalah diagram yang menggambarkan interaksi sistem

dengan user dan menggambarkan siapa yang akan menggunakan sistem serta

bagaimana user berinteraksi dengan sistem (Bentley, Whitten, & L, 2007).

28

Gambar 2.13 Ilustrasi use case diagram

Use case diagram memiliki komponen dasar yaitu use case, actors, dan

relationships. Use case merupakan urutan perilaku atau langkah-langkah untuk

menyelesaikan tugas. Use case menggambarkan fungsi sistem dengan cara

menggunakan simbol-simbol dan terminologi yang dipahami oleh pengguna

eksternal. Use case digambarkan dengan bentuk eclipse.

Actor yaitu pengguna eksternal yang berinteraksi dengan sistem untuk

mencapai tujuan dari use case. Terdapat 4 (empat) tipe actors, yaitu:

• Primary business actor: stakeholder yang paling diuntungkan dari

terlaksananya use case dengan menerima sesuatu yang dapat diukur.

• Primary system actor: stakeholder yang secara langsung berinteraksi

dengan sistem untuk memulai kegiatan sistem.

• External server actor: stakeholder yang merespon permintaan dari use

case.

• External receiver actor: stakeholder yang bukan merupakan actor

utama tetapi menerima sesuatu yang dapat bernilai dari use case.

Dalam use case diagram terdapat relationship yang digambarkan dengan

garis yang menghubungkan antara use case ataupun actor dengan use case. Arti dari

relationship berbeda-beda. Terdapat beberapa relationship yang digunakan yaitu:

• Asosisasi

29

Asosisasi berarti suatu hubungan antara actor dan use case. Asosiasi

dapat digambarkan dengan suatu garis yang menghubungkan actor dan use

case. Asosiasi digambarkan dengan anak panah, menunjukkan interaksi

antara use case dengan actor sebagai inisiator. Sedangkan asosiasi yang

digambarkan tanpa anak panah atau garis biasa menggambarkan interaksi

antara use case dengan actor.

Gambar 2.14 Contoh asosiasi pada use case diagram

• Extends

Suatu use case dapat terdiri dari fungsi-fungsi yang kompleks dan

menyebabkan use case sulit dimengerti. Dengan mengekstrak fungsi-fungsi

yang kompleks menjadi use case maka akan membuat use case menjadi lebih

sederhana dan mudah dipahami.

30

Gambar 2.15 Contoh extends pada use case diagram

• Uses / Includes

Fungsi pada use case diagram yang melakukan tugas yang sama akan

digabungkan menjadi use case baru yang disebut abstract use case, yang

berfungsi mengurangi redudansi dalam dalam use case diagram.

Gambar 2.16 Contoh includes pada use case diagram

• Inheritance

31

Inheritance digunakan untuk mempermudah penggambaran hubungan

antara dua atau lebih actor yang memiliki langkah yang sama dalam sistem

dengan membuat abstract actor.

2.8.2 Class diagram

Class diagram merupakan gambaran dari objek-objek yang menunjukkan kelas

objek yang ada pada suatu sistem dan hubungan antara kelas-kelas objek tersebut

(Bentley, Whitten, & L, 2007).

Gambar 2.17 Ilustrasi class diagram

(Sumber: (Bentley, Whitten, & L, 2007))

32

Setiap class dibagi menjadi 3 (tiga) bagian, yaitu:

• Class name

Class name harus unik atau dapat dibedakan antara kelas satu dengan

kelas yang lain karena class name merupakan identitas yang harus

berbeda dan dimiliki oleh setiap class.

• Attribute

Atrribute menunjukkan informasi yang di miliki oleh suatu class atau

informasi yang berhubungan dengan suatu class. Di dalam attribute

biasanya memiliki primary key (PK).

33

• Operation

Operation digunakan untuk menunjukkan fungsi yang dapat dilakukan

oleh suatu class.

Gambar 2.18 Ilustrasi struktur dari class

2.8.2.1 Visibility

Pada class diagram terdapat visibility yang digunakan untuk menentukan suatu

kelas dapat diakses oleh kelas lainnya atau tidak. Dalam visibility memiliki 3 (tiga)

jenis, yaitu (Bentley, Whitten, & L, 2007):

• Public dilambangkan dengan “+”

• Protected dilambangkan dengan “#”

• Private dilambangkan dengan “-”

Tabel 2.3 Penjelasan visibility dalam class diagram

Visibility Simbol Deskripsi

Public +

Public berarti dapat

diakses oleh semua

operasi lain di semua

class.

Protected #

Protected berarti dapat

diakses oleh operasi lain

dalam class yang hanya

mendeklarasikan atribut

34

atau operasi di

subclasses dari class

tersebut.

Private -

Private berarti hanya

dapat diakses oleh

semua operasi lain di

class yang

mendeklarasikannya.

2.8.2.2 Multiplicity

Multiplicity bisa diartikan sebagai jumlah minimum dan maksimum

kemunculan suatu objek atau class ke antar class (Bentley, Whitten, & L, 2007).

Tabel 2.4 Penjelasan multiplicity pada class diagram

Multiplicity Deskripsi

0..1 Nol atau satu

1 Hanya satu

0..* atau * Nola tau lebih

1..* Satu atau lebih

7..9 Memiliki nilai tertentu

yang spesifik

2.8.3 Activity diagram

Activity diagram adalah diagram yang digunakan untuk menggambarkan proses

antara user dan sistem, langkah-langkah dari use case atau logika dari objek. Dalam

activity diagram, lebih dari satu use case dapat digambarkan dengan satu activity

diagram, tetapi satu activity diagram dapat digambarkan untuk setiap use case jika

use case tersebut memiliki logika yang kompleks (Bentley, Whitten, & L, 2007).

Gambar 2.19 Ilustrasi activity diagram

(Sumber: (Bentley, Whitten, & L, 2007))

35

Activity diagram mempunyai beberapa notasi yang mempunyai arti yang

berbeda-beda. Berikut adalah macam-macam dan penjelasan notasi pada activity

diagram:

• Initial node: berupa lingkaran berwarna hitam yang menggambarkan

dimulainya proses pada sistem.

• Actions: berupa persegi panjang yang menggambarkan langkah

individu, langkah-langkah yang berurutan akan menampilkan aktivitas

pada activity diagram.

36

• Flow: berupa anak panah mengindikasikan kemajuan pada actions.

Kebanyakan flow tidak memerlukan keterangan, kecuali flow yang

memerlukan suatu decision.

• Decision: berupa diamond dengan satu flow yang masuk dan satu flow

yang keluar memberikan kondisi.

• Merge: berupa diamond dengan dua atau lebih flow masuk dan satu flow

keluar. Menggabungkan flow yang terpisah oleh decision.

• Fork: berupa persegi panjang hitam dengan flow masuk dan dua atau

lebih flow keluar. Menggambaran aktivitas berjalan paralel.

• Join: persegi panjang hitam dengan dua atau lebih flow masuk dan satu

flow keluar. Menggambarkan proses paralel berakhir.

• Activity final: lingkaran yang dikelilingi garis melingkar

menggambarkan berakhirnya proses.

• Subactivity indicator: simbol yang dapat memecah proses pada activity

diagram ke activity diagram lain. Sehingga dapat membuat activity

diagram tidak terlalu kompleks.

• Connector: lingkaran dengan huruf didalamnya yang dapat membantu

dalam mengatur tingkat kompleksitas. Flow yang masuk ke dalam

connector akan melompat ke aktivitas selanjutnya dengan lingkaran

yang mempunyai huruf yang sama.

2.8.4 Sequence diagram

Sequence diagram adalah diagram yang menggambarkan model logika dari

sebuah use case dengan menggambarkan interaksi pesan antar objek (message atau

reply) dalam suatu urutan waktu (Bentley, Whitten, & L, 2007).

Gambar 2. 20 Ilustrasi sequence diagram

(Sumber: (Bentley, Whitten, & L, 2007))

37

Sequence diagram mempunyai beberapa elemen yang digunakan dalam proses.

Berikut adalah macam-macam dan penjelasan elemen-elemen yang terdapat pada

sequence diagram (Bentley, Whitten, & L, 2007):

• User/Actor

User adalah suatu elemen yang digunakan pada sequence diagram

digambarkan dengan user simbol yang mewakili pengguna dalam

berinteraksi dengan interface.

• Interface class

Segi empat yang berarti kelas kode dari user interface. Untuk

membedakan class interface dengan kelas lainnya maka terdapat tulisan

<<interface>>.

• Controller class

Setiap use case akan memiliki satu atau lebih controller class,

digambarkan dengan notasi yang sama seperti interface class yaitu

<<controller>>.

• Entity classs

Gambaran entitas yang diperlukan untuk berkolaborasi dalam langkah-

langkah yang berurutan.

• Messages

Garis horizontal yang berarti pesan masuk yang dikirim ke dalam class.

Setiap pesan disebut behavioral atau method dari class yang menunjuk.

38

Penulisan messages diawali dengan huruf kecil, dan kata selanjutnya

diawali dengan huruf besar.

• Activation bars

Berbentuk sebuah bar yang menunjukan masa hidup (lifetime) dari

objek yang ada.

• Return messages

Anak panah dengan garis putus-putus yang menunjukkan pesan

pengembalian (reply). Setiap perilaku atau operasi harus

mengembalikan sesuatu yang menyatakan perilaku atau operasi sukses

dijalankan.

• Self-call

Objek dapat memanggil method milik sendiri.

• Frame

Bingkai berbentuk kotak yang berarti satu atau lebih pesan dapat

menjadi pilihan langkah. Seperti perulangan dan alternatif pilihan.

2.9 Related works

2.9.1 Image super-resolution using deep convolutional networks

Jurnal ini membahas mengenai pengembangan sebuah sistem menggunakan

metode deep learning untuk super-resolution yang disebut super-resolution

convolutional neural network (SRCNN). Metode yang merupakan end-to-end

mapping pada gambar low/high-resolution. Mapping pada sistem ini

menggambarkan convolutional neural network (CNN) yang menjadikan gambar

resolusi rendah menjadi input dan gambar resolusi tinggi akan menjadi output-nya.

Pada SRCNN terdapat tiga operasi yaitu:

• Patch extraction and representation

Dalam proses patch extraction terjadi proses pengambilan fitur pada

gambar yang akan dilanjutkan pada non-linear mapping.

• Non-linear mapping

39

Dalam proses non-linear mapping terjadi proses bicubic dan

upsampling pada fitur gambar yang sudah di ekstrak dengan proses

komputasi.

• Reconstruction

Pada proses reconstruction fitur gambar yang telah mengalami proses

bicubic dan upsampling akan mengalami proses rekosntruksi.

Dengan melewati beberapa proses konvolusi tersebut maka gambar akan

menghasilkan output yaitu gambar dengan resolusi tinggi. SRCNN membuktikan

bahwa dengan menggunakan layer konvolusi dapat menghasilkan hasil yang baik di

bidang super-resolution (Dong, et al., 2016).

Gambar 2.21 Ilustrasi arsitektur pada SRCNN

(Sumber: (Dong, et al., Image super-resolution using deep convolutional networks, 2016))

2.9.2 Accurate image super-resolution using very deep convolutional

networks

Dong mengembangkan sebuah sistem menggunakan metode deep learning

sama seperti (Dong, et al., 2016) yang disebut very deep super-resolution (VDSR).

Pada sistem ini Kim menggunakan Teknik residual, dimana residual tersebut

mempunyai notasi:

(5)

40

Dimana r adalah residual, y adalah estimasi nilai pada gambar resolusi tinggi,

dan x adalah gambar resolusi rendah. VDSR menggunakan 20-layer CNN pada

modelnya. VDSR sukses meningkatkan performa melalui metode residual learning.

Gambar 2.22 Ilustrasi arsitektur pada VDSR

(Sumber: (Kim, Lee, Jung, Lee, & Kyoung, 2016))

2.9.3 Image super-resolution via deep recursive residual network

Deep recursive residual network (DRRN) adalah model yang dikembangkan

oleh (Tai, Yang, Jian, Liu, & Xiaoming, 2017). Mereka menggunakan 52-layer

konvolusi yang menggunakan deep convolutional network, walaupun menggunakan

banyak layer DRRN juga termasuk model yang ringkas. DRRN menggunakan

metode deep learning sama seperti VDSR (Kim, Lee, Jung, Lee, & Kyoung, 2016).

Untuk mengurangi tingkat kesulitan atau waktu dalam training data DRRN

menggunakan metode recursive learning. Recursive learning berguna untuk

mengontrol parameter yang digunakan dalam DRRN pada saat training data.

2.9.4 Beyond a gaussian denoiser: residual learning of deep CNN for

image denoising

Denoising convolutional neural network (DnCNN) menggunakan

discriminative model. DnCNN menggunakan deep architecture, learning algorithm,

dan metode regularisasi pada denoising. Secara khusus metode residual dan batch

normalization digunakan untuk menghemat waktu pada proses training dan

meningkatkan hasil dari denoising. Berbeda dengan discriminative biasanya hanya

menangani additive gaussian noise dengan nilai yang sudah ditentukan, DnCNN bisa

menangani noise yang nilainya tidak diketahui atau acak. Dengan residual learning

41

DnCNN dapat memisahkan gambar bersih pada hidden layer. Hasil penelitian oleh

(Zhang, et al., 2017) membuktikan bahwa DnCNN sangat efektif dan lebih efisien

jika menggunakan GPU.

2.9.5 Enhanced deep residual networks for single image super-resolution

Bee Lim (Lim, et al., 2017) membuat deep convolutional network yang disebut

sebagai enhanced deep super resolution network (EDSR). EDSR menggunakan

residual block pada layernya yang terdiri dari layer konvolusi, activation ReLU.

EDSR mengimplementasikan residual dari SRResNet yang terdiri dari layer

konvolusi, batch normalization, dan activation ReLU. Bee (Lim, et al., 2017)

meningkatkan performa EDSR dengan cara mengubah parameter menjadi lebih

banyak, seperti menambah jumlah filter pada layer. Bee menganalisa bahwa

menambah fitur pada gambar akan membuat proses training tidak stabil, maka

residual learning di terapkan pada EDSR, hasil eksperimen Bee membuktikan bahwa

EDSR dapat melampaui hasil dari SRResNet dan state-of-the-art lainnya.

2.9.6 Wide activation for efficient and accurate image super-resolution

Model wide activation for efficient and accurate image super-resolution

(WDSR) membuktikan bahwa dengan menggunakan parameter yang sama dengan

fitur yang lebih lebar sebelum activation layer dapat menghasilkan performa yang

lebih baik daripada metode state-of-the-art. Metode ini menggunakan residual block

dari EDSR (Lim, et al., 2017) namun dengan mengubah beberapa fitur pada residual

block sebelum activation layer ReLU, WDSR mengakui bahwa banyak informasi

atau fitur yang dapat di gali lebih banyak sebelum activation layer. WDSR juga

membuktikan bahwa menggunakan batch normalization dapat membuat akurasi pada

super-resolution menurun dibandingkan dengan weight normalization yang

dikenalkan oleh WDSR. Weight normalization membuat training data dapat

menggunakan learning rate yang lebih tinggi, membuat training data lebih cepat dan

performa yang lebih baik (Yu, et al., 2018).

2.9.7 Deep back-projection networks for super-resolution

Deep back projection networks (DBPN) menjadi salah satu metode yang dibuat

oleh Haris (Haris, Shakhnarovich, Gregory, Ukita, & Norimichi, 2018) untuk

menyelesaikan masalah pada dunia super-resolution. DBPN menggunakan metode

42

iterasi up dan down pada layer sampling, cara kerja proses iterasi ini adalah

mengirimkan feedback error sehingga pada saat proses training, error yang didapat

akan di tutup oleh layer atau proses berikutnya. Dengan menggunakan metode iterasi

up dan down DBPN terbukti dapat meningkatkan performa pada super-resolution

berskala 8x lebih baik daripada metode state-of-the-art.