Designing A Generative Adversarial Network For Image Reconstruction

Mfatchur Rahman
Nodeflux
Published in
5 min readSep 14, 2018

A. Purpose
Mengembangkan teknik rekonstruksi gambar beresolusi kecil menjadi resolusi besar dengan mempertahankan kualitasnya.

B. Related Works
Penelitian tentang image reconstruction telah banyak dilakukan. Dalam image processing klasik, Theodoro AM (2016) mengembangkan teknik restorasi gambar dengan menggunakan gaussian mixture model. Selain menggunakan image processing, Kim J (2016) mengembangkan teknik perbaikan gambar dengan menggunakan convolutional neural network. Metode yang dikembangkan Kim J bekerja dengan cara me-resize gambar input menjadi seukuran gambar output. Gambar tersebut kemudian di-input ke dalam neural network. Arsitektur yang digunakan oleh Kim J hanyalah operasi konvolusi dengan relu sebagai aktivasinya yang disusun berulang-ulang. Adapun sistem pembelajaran yang digunakan adalah fully supervised learning dengan RMSE sebagai loss. Metode yang sama dilakukan oleh Dong C (2014) yang populer disebut FSRCNN, Bruna J (2016), Gu Z (2015), Wang Y (2015), dan Wang Z (2015). Sub-pixel convolutional network juga telah dikembangkan oleh Shi W (2016) untuk menangani hal ini.

Khusus untuk generative adversarial network, Ledig C (2017) mengembangkan image reconstruction dengan menggunakan generative network. Kebaruan yang ditawarkan oleh Ledig C adalah penentuan loss dari generator yang dibangun. Umumnya penelitian sebelumnya menggunakan mean squared error antara gambar target dengan gambar hasil generator. Ledig C menghitung loss dengan cara menghitung eucledian distance antara feature vektor gambar target dan gambar asli jika diinput ke dalam VGG. Desovitsky A (2016) mengembangkan hal yang serupa. Dia menghindari least absolute deviations (L1) dan least square error (L2) dengan alasan menghasilkan gambar yang agak kabur. Sebagai ganti, Desovitsky A mengajukan formula loss baru yang disebut deep perceptual similarity loss.

C. Proposed Method
Untuk merekonstruksi image dengan resolusi rendah, kita menggunakan generative adversarial model. Model Adversarial yang digunakan merupakan model umum yang terdiri dari generator dan diskriminator. Generator berfungsi sebagai penghasil gambar beresolusi tinggi, sedang discriminator berfungsi untuk memeriksa kualitas gambar hasil generator.

C.1 Generator Architecture
Arsitektur generator yang kita ajukan pada penelitian ini merupakan kombinasi antara architecture inception dan resnet. Gambar input yang berukuran kecil tak langsung di-resize menjadi besar kemudian dikonvolusikan seperti Dong C (2014), Bruna J (2016), Gu Z (2015) dan Ledig C (2017). Pada metode ini, gambar kecil di-upscale perlahan-lahan menggunakan operasi deconvolution atau convolution transpose. Proses deconvolution dilakukan dengan mengadopsi konsep inception, yaitu men-deconvolution fitur input dengan beberapa ukuran filter kemudian digabungkan kembali dengan operasi concatenate. Melalui deconvolution dengan ukuran filter yang berbeda, diharapkan model mampu melihat gambar dari space yang berbeda. Pada penelitian ini, untuk mencapai ukuran gambar target dilakukan dua kali langkah deconvolution. Tiap operasi deconvolution, digunakan tiga macam filter dengan ukuran 9x9, 7x7, dan 5x5 dengan padding SAME, serta stride 2 untuk vertikal maupun horizontal.

Generator Arc

Setelah ukuran gambar sama dengan gambar target melalui operasi deconvolution, dilakukan operasi dua kali convolution dan batch-normalization secara berulang-ulang. Pola yang digunakan pada bagian ini adalah pola resnet. Strides yang digunakan pada operasi convolution ini adalah satu untuk vertical maupun horizontal. Sedang padding yang digunakan adalah padding SAME dengan ukuran filter 3x3 sejumlah 64 macam.

C.2 Discriminator Architecture

Discriminator Architecture

C.2 Model Objective (Loss)
Objective dari model ini adalah menghasilkan generator yang mampu menghasilkan gambar serealistik mungkin, dan discriminator yang mampu memberikan penilaian seberapa realistik gambar yang dihasilkan generator. Arsitektur dari generative adversarial network digambarkan secara sederhana sebagai berikut.

GAN Global Flow

X adalah input image, Z adalah fake image yang dihasilkan oleh generator. Objective dari discriminator adalah menghasilkan output Fake atau Nol untuk gambar hasil generator dan True untuk gambar asli melalui objective function berikut.

Pada kenyataannya, persamaan tersebut sulit diaplikasikan. Jika output dari discriminator adalah negatif, maka log dari negatif menghasilkan nilai NAN (not a number). Untuk mengatasi hal tersebut, pada penelitian ini dilakukan modifikasi objective function dari discriminator dengan tetap mempertahankan tujuannya menjadi,

Secara tujuan, loss dari discriminator baru ini tetap sama. Loss dihitung dari seberapa jauh jarak discriminator dalam mengenali gambar hasil generator sebagai gambar fake atau unrealistic, dan seberapa jauh jarak gambar real dikenali sebagai asli.

Untuk generator, tujuannya adalah menghasilkan gambar serealistik mungkin sehingga discriminator tertipu. Untuk mencapai hal tersebut, dalam penelitian ini disusun dua macam loss generator. Loss yang pertama merupakan adversarial loss, dan yang kedua adalah image loss. Adversarial loss menggambarkan seberapa dekat gambar hasil generator untuk dikenali sebagai asli oleh discriminator. Dengan kata lain, adversarial loss menggambarkan seberapa realistik image yang dihasilkan oleh generator. Image loss menggambarkan seberapa dekat gambar hasil generator terhadap gambar target.

Pada penelitian ini, nilai alpha diset 0.001. Hal ini dikarenakan adversarial loss nilainya jauh lebih besar dibanding image loss, sehingga diperlukan nilai alpha sebagai penyeimbang.

Result and Discussion
Hasil dari project ini ditunjukkan oleh gambar di bawah ini. Berdasarkan hasil tersebut, gambar rekonstruksi menggunakan GAN terlihat jauh realistik dibanding open cv-resize.

GAN Result

References
Bruna J, Super-Resolution With Deep Convolutional Sufficient Statistic (2016)
Desovitsky A, Generating Images with Perceptual Similarity Metrics based on Deep Networks (2016)
Dong C, Image Super-Resolution Using Deep Convolutional Networks (2014)
Gu Z, Convolutional Sparse Coding for Image Super-resolution (2015)
Kim J, Accurate Image Super-Resolution Using Very Deep Convolutional Networks (2016)
Ledig C, Photo-Realistic Single Image Super-Resolution Using a Generative Adversarial Network (2017)
Shi W, Real-Time Single Image and Video Super-Resolution Using an Efficient Sub-Pixel Convolutional Neural Network (2016)
Theodoro AM, Image Restoration And Reconstruction Using Variable Splitting And Class-Adapted Image Priors (2016)
Wang Y, End-to-End Image Super-Resolution via Deep and Shallow Convolutional Networks (2015)
Wang Z, Deep Networks for Image Super-Resolution with Sparse Prior (2015)

--

--