05 Bab 2 152016126
05 Bab 2 152016126
LANDASAN TEORI
Berikut merupakan beberapa teori dan pustaka yang digunakan dalam penelitian
yang dilakukan
5
(Qin et al. 2017) melakukan penelitian dengan judul “Research on Image
Colorization Algorith Based on Resiidual Neural network”. Tujuan penelitian ini
adalah untuk mengetahui tingkat akurasi pewarnaan citra menggunakan residual
network yang terdiri dari CNN. Kontribusi penelitian ini adalah analisis dan
penggunaan residual network pada pewarnaan citra, yang telah dimodifikasi untuk
digunakan pada arsitektur Unet. Perbedaan dengan penelitian yang dilakukan
adalah penggunaan residual network ada di dalam arsitektur Unet, penambahan
Critic dan penggunaan CLAHE sebagai pre-processing
Menurut (Yan 2016) terdapat 2 proses besar pada Deep learning yaitu,
feedforward dan backpropagation. Sama seperti machine learning, feed forward
berfungsi untuk mengambil fitur-fitur yang ada pada citra, perbedaan pada deep
2.4.4 Convolution
Convolusi adalah sebuah proses matematis yang menggabungkan dua buah
matrik menjadi matriks baru dengan cara memasukan fungsi matematis ke matriks
input dan filter atau kernel sesuai dengan rumus (2) (O’Shea and Nash 2015). Proses
ini bertujuan untuk mengambil fitur-fitur penting pada matriks input atau citra
input, itur-fitur penting pada citra terbagi menjadi beberapa kedalaman, pada
kedalaman awal fitur yang dianggap penting adalah garis horizontal dan vertical
yang ada pada citra, untuk kedalaman selanjutnya fitur yang dianggap penting lebih
kompleks dengan menggabungkan fitur-fitur sebelumnya yang sudah di dapat,
seperti fitur hidung, mata dan mulut. Hingga akhirnya kedalaman terakhir bisa
mengambil kombinasi pixel yang merepresentasikan muka dengan menggabungkan
fitur sebelumnya, yaitu mulut, mata dan hidung. Proses konvolusi terjadi dari kiri
atas bergerak ke kanan lalu kebawah jika sudah mencapai ujung kanan, Proses
pergeseran ini dinamakan stride. Ilustrasi konvolusi ada pada Gambar 2.4
konvolusi terjadi dengan rumus :
Dimana
F(x) = citra asli
g(x) = kernel konvolusi
x = nilai pixel
a = nilai pixel pada koordinat citra
(Sumber : https://miro.medium.com/)
(Sumber : http://datahacker.rs/what-is-padding-cnn/)
2.4.6 Pooling
Pooling layer bertujuan untuk mengurangi dimensi citra, sehingga
mengurangi kompleksitas komputasi model (O’Shea and Nash 2015). Salah satu
varian pooling adalah max pooling dimana diambil nilai terbesar sesuai dengan
ukuran filter, proses ini bertujuan untuk mengurangi dimensi tetapi tetap menjaga
nilai maksimum dari setiap lapisan. Ilustrasi pooling ada pada Gambar 2.6
(Sumber : embarc.org)
Dimana
g(z) = nilai setelah aktivasi
0 = nilai batas ambang
z = nilai hasil konvolusi
2.4.9 Concatenate
Concatenate adalah proses untuk menggabungkan dua buah matriks menjadi
satu buah matriks (Ronneberger et al. 2015). Proses ini dilakukan untuk
menghasilkan dimensi baru atau kanal warna baru, selain itu juga digunakan agar
proses penggabungan tidak kekurangan fitur citra lama, dengan menggabungkan
D(G(z)) : output dari descriptor atau critic untuk gambar yang palsu
dengan metode ini pewarnaan citra bisa dilakukan dengan menghasilkan citra
yang realistis.
2.6 Grayscale
(Sumber : geeksforgeeks.org)
Grayscale (Gambar 2.10) adalah proses merubah citra dari berwarna menjadi
abu-abu. Proses ini dilakukan untuk memudahkan proses komputasi pada
pengolahan citra karna nilai abu-abu akan merepresentasikan 3 kanal warna RGB
(Saravanan 2010). Proses grayscale memiliki rumus(6)
dimana :
2.7 U-Net
U-net adalah salah satu arsitektur CNN yang digunakan untuk meningkatkan
resolusi citra atau pewarnaan citra, karena memiliki kelebihan untuk membongkar
sebuah citra dengan mengambil fitur-fitur penting pada citra dan melakukan
pemasangan lagi namun dengan penambahan yang diinginkan pada citra tersebut
(Ronneberger et al. 2015). U-net terdiri dari 2 bagian yaitu, contracting path dan
expanding path.
Contracting path merupakan bagian kiri dari arsitektur yang terdiri dari
konvolusi 3x3, aktivasi Relu dan max pooling dengan stride atau pergeseran CNN
nya 2. Sedangkan pada bagian expanding path atau bagian kanan arsitektur terdiri
dari up convolution 2x2, penggabungan 2 matrik, convolusi 3x3 dan aktivasi Relu
(Ronneberger et al. 2015).
2.8 CLAHE
CLAHE (Contrast Limited Adaptive Histogram Equalization) adalah salah satu
image pre-processing yang berfungsi untuk image enhancement yang
meningkatkan nilai contrast bergantung dengan nilai pixel tetangganya sehingga
tidak akan terjadi pencerahan abnormal(Manju et al. 2019).
Input proses CLAHE adalah citra grayscale, selanjutnya citra grayscale akan
dibagi menjadi beberapa blok, pada tiap blok akan dicari nilai maksimal dari tiap
pixel yang ada di blok tersebut dan selanjutnya semua nilai pixel yang ada di blok
tersebut akan di normalisasi dengan landasan nilai maksimal yang sudah di dapat
tersebut. Normalisasi terjadi dengan mencari distribusi komulatif sesuai dengan
rumus pada (7), selanjutnya hasil distribusi komulatif akan di kalikan dengan clip
limit (8) untuk mendistribusi ulang tiap pixel, proses ini terjadi pada tiap blok. Hasil
dari proses CLAHE ada pada Gambar 2.12 & Gambar 2.13
(𝑁 − 1) 𝑛 ………(7)
𝑓𝑖,𝑗 (𝑛) = . ∑ ℎ𝑖,𝑗 (𝐾)
𝑀 𝑘=0
Dimana :
f = distribusi komulatif
N = nilai maksimum pixel
M = ukuran citra
K = frekuensi kemunculan nilai pixel
𝑀 𝛼 ………..(8)
𝛽= (1+ (𝑆 − 1))
𝑁 100 𝑚𝑎𝑥
Dimana :
M = ukuran region citra
𝜇𝑥 = rata-rata x
𝜇𝑦 = rata-rata y
𝜎𝑥 = varians x
𝜎𝑦 = varians y
𝜎𝑥𝑦 = kovarian xy
𝑐1 = (𝑘1 𝐿)2 , 𝑐2 = (𝑘2 𝐿)2 = dua variable untuk stabilisasi
L = nilai maksimum pixel
𝑘1 = 0.01 𝑑𝑎𝑛 𝑘2 = 0.03
𝑛
1
𝑀𝑆𝐸 = ∑(𝑌𝑖 − 𝑋𝑖 )2
𝑛 …….(10)
𝑖=1
√𝑀𝑆𝐸
𝑅𝑀𝑆𝐸 = …..…(12)
𝑌𝑚𝑎𝑥 − 𝑌𝑚𝑖𝑛
Dimana
N = banyaknya data
Y=nilai pixel pada citra 1
X=nilai pixel pada citra 2
MAX = nilai maksimal
Ymax = nilai maksimal pada suatu citra
Ymin = nilai minimal pada suatu citra
2.10.1 CLAHE
Pre-processing pertama yang dilakukan adalah proses histogram
equalization untuk meratakan kecerahan dan meningkatkan kualitas gambar.
Proses pertama adalah mengambil nilai pixel yang ada pada Gambar 2.14, Nilai
pixel Gambar 2.14 ada pada gambar Gambar 2.15 , proses pengambilan nilai
pixel dilakukan menggunakan python dengan cara melakukan print pada Gambar
2.14
9/256(1+10/100(196-1)) = 0.7
Perhitungan clip limit dilakukan dengan menggunakan rumus (8) dimana nilai 9
adalah besar regionnya, 256 adalah maksimal nilai pixel 8-bit, 196 adalah maksimal
nilai pixel yang ada pada region. Didapat hasil 0.7
Frekuensi Distribusi
Nilai pixel Distribusi komulatif
kemunculan probabilitas
52 1 0.11 0.11
150 1 0.11 0.11 + 0.11 = 0.22
155 1 0.11 0.11 + 0.22 = 0.33
179 1 0.11 0.11 + 0.33 = 0.44
180 1 0.11 0.11 + 0.44 = 0.55
181 1 0.11 0.11 + 0.55 = 0.66
185 1 0.11 0.11 + 0.66 = 0.77
196 2 0.22 0.22 + 0.77 = 0.99
Distribusi
Nilai pixel Hasil
komulatif
52 0.11 0.11 * 196 = 21.56
150 0.22 0.22* 196 =43.12
155 0.33 0.33* 196 =64.68
179 0.44 0.44* 196 =86.24
180 0.55 0.55* 196 =107.8
181 0.66 0.66* 196 = 129.36
185 0.77 0.77* 196 =150.92
196 0.99 0.99* 196 =194.04
Nilai Nilai
Hasil pembulatan
pixel normalisasi
52 21.56 21.56+(21.56 * 0.7) = 36.625 37
150 43.12 43.12+(43.12 * 0.7) =73.304 73
155 64.68 64.68+(64.68 * 0.7) =109.956 110
179 86.24 86.24+(86.24 * 0.7) =146.608 147
180 107.8 107.8+(107.8 * 0.7) =183.26 183
181 129.36 129.36+(129.36 * 0.7) =219.912 220
185 150.92 150.92+(150.92 * 0.7) =256.564 255
196 194.04 194.04+(194.04 * 0.7) =329.84 255
Dengan hasil perhitungan normalisasi, nilai pixel di region kiri atas akan
berubah menjadi
2.10.2 Normalisasi
Pada tahap pre-processing selanjutnya dilakukan normalisasi untuk
standarisasi nilai dengan cara merubah semua pixel menjadi nilai antara 0-1.
Proses dilakukan dengan membagi semua nilai pixel dengan nilai maksimal pixel
yaitu 255. Berikut (Gambar 2.18 & Gambar 2.19) adalah contoh perhitungan dan
hasil dari prosses normalisasi
/255
2.10.3 Padding
Proses padding yang dilakukan pada matriks hasil normalisasi dengan
menambahkan nilai 0 pada setiap sisi matriks. Nilai selain 0 adalah nilai pixel yang
akan di proses dan nilai 0 adalah nilai pixel tambahan yang digunakan agar proses
konvolusi tidak merubah dimensi pixel. Ilustrasi hasil padding ada pada Gambar
2.20
0 0 0 0 0 0 0 0
0.86274 0.57647 0.71764 0.70588 0.75294
0 5 1 7 2 1 0.74902 0
0.43137 0.28627 0.50980 0.37647
0 1 3 5 4 1 0.25098 0
0.14509 0.50196 0.43921 0.50196
0 8 1 1 1 6 1 0
0.50196 0.86274 0.37647 0.50196
0 1 5 1 0.25098 1 0.25098 0
0.37647 0.50196 0.43921 0.62745
0 1 1 6 1 0.25098 0.25098 0
0.62745 0.50196
0 1 0.25098 0.12549 1 1 1 0
0 0 0 0 0 0 0 0
Gambar 2.20 padding
2.10.4 konvolusi
Hasil dari proses convolution matriks 8x8 terhadap filter 3x3 1 stride akan
menghasilkan output matriks berukuran 7x7 seperti yang diilustrasikan pada
Gambar 2.22.
1. Untuk mendapatkan nilai pada baris 1 kolom 1 pada Gambar 2.22 maka
dilakukan proses perhitungan =
((0*0) + (0*0) + (0*0) +
(0*0) + (1*0.862745) + (0.576471*0) +
(0*0)+(0*1) + (0.431373*-1)) = 0.431373
3. Untuk mendapatkan nilai pada baris 1 kolom 3, 4,5 dan 6 lakukan hal yang
sama dengan langkah 2 dengan pergeseran 1 stride.
4. Untuk mendapatkan nilai pada baris 2 kolom 1 pada Gambar 2.25
Jumlahkan, ((0*0) + (0*862745) + (0*576471)
+ (0*0) * (1*1) + (0*0.431373) +
(0*0) + (0*0.145098) + (-1*1) = 0
2.10.6 Pooling
Operasi pooling yang dilakukan adalah max pooling dimana pada setiap size
2x2 pada citra hasil Relu diambil nilai terbesarnya. Berikut adalah hasil operasi max
pooling ditampilkan pada Gambar 2.27.