×

Mencari ukuran Ideal Gambar untuk Deep Learning

Mencari ukuran Ideal Gambar untuk Deep Learning

1,595 Views

Mencari Ukuran Ideal Gambar untuk Deep Learning – Dimension / Ukuran dari sebuah object/gambar untuk proses deep learning merupakan hal sulit kita tentukan. Dalam dataset tertentu untuk ukuran 32×32 sudah lebih dari cukup tapi tidak untuk gambar yang kompleks, dengan mengubah ukuran 100 x 100 saja itu akan terasa sekali waktu yang dibutuhkan untuk melakukan kalkulasi rumit. Tadinya hanya ribuan paramater akan melonjak menjadi belasan ribu paramater apalagi kalau menggunakan ukuran deep layer nya semakin banyak tentu RAM komputer kalian akan habis duluan sebelum melakukan kalkulasi.

Ukuran Ideal Gambar untuk Deep Learning setidaknya ada 2 cara yaitu Downscaling dan UpScaling. Efek setiap kegiatan tersebut ada yaitu fitur dan time calculation sehingga menciptakan trade off alias mana yang akan diinginkan. Downscaling  yaitu gambar yang lebih besar akan diperkecil, ini mempersulit CNN untuk mempelajari fitur yang diperlukan untuk klasifikasi atau deteksi karena jumlah piksel di mana fitur vital akan ada berkurang secara signifikan sedangkan Upscaling yaitu Ketika gambar kecil ditingkatkan dan diisi dengan nol, maka NN harus mengetahui bahwa bagian yang diisi tidak berdampak pada klasifikasi. Gambar yang lebih besar juga lebih lambat untuk dilatih dan mungkin memerlukan lebih banyak VRAM.

Solusi terbaik untuk mengetahui ukuran ideal gambar untuk deep learning

Lantas apa solusi terbaik untuk mengetahui ukuran ideal gambar untuk deep learning? Kita gunakan saja sebuah ratio antara ratio = \frac{width}{height} sebagai dasar untuk mengetahui dataset yang kita punya mempunyai kombinasi ratio seperti apa sih? Tentu melihat ratio untuk ribuan gambar bukan hal menarik bila kita kerjakan satu-persatu. Yup kita butuh yang namanya sebuah visualisasi scatter plot untuk mengetahui sebaran ratio dataset yang kita punyai. Yuk kita pelajari dataset dari https://www.kaggle.com/c/dogs-vs-cats/data. Berikut isi gambaran dataset tersebut.

See also  Pytorch Membuat Dataset untuk Training Deep Learning

Hem.. kalau saya lihat sih ukuran dimensi 400 sampai dengan 500 dan ternyata ada pencilan data! Kita buang saja pencilan datanya menjadi seperti berikut

Ukuran Scatter akan mengikuti nilai ratio nya sehingga kalian bisa melihat ukuran ideal diatas yaitu 400 sd 500 pixel. Rekomendasi saya untuk kumpulan data ini adalah mulai melatih jaringan saraf dengan ukuran gambar 400 dan secara bertahap meningkatkannya menjadi 500 dan menyelesaikannya dengan ukuran 500. Dengan cara ini, model harus dapat menggeneralisasi dengan baik untuk resolusi gambar yang berbeda. Tapi umumnya untuk deep learning ukuran gambar seperti 256 x 256 itu sudah sangat ideal sih terlalu besar itu akan menjadi samar nantinya karena kebanyakan fitur yang dihasilkan. Gimana menurut kalian Mencari ukuran Ideal Gambar untuk Deep Learning? ada saran lain

Berikut kode lengkapnya

import pandas as pd
import matplotlib.pyplot  as plt
from PIL import Image
import glob

files = glob.glob('D:/CNN Cats and DOG/train/*.*')

meta_file_list = list()
for i,file in enumerate(files,0):
    if (i%1000)==0: #buat nampilkan progress
        print(i,file)
    img = Image.open(file).convert("RGB")
    tinggi,lebar = img.size
    if tinggi<600 and lebar <600: #buang pencilan data
        meta_file_list.append({'No':(i+1),
                               'File':file,
                               'Width':lebar,
                               'Height':tinggi,
                               'Ratio':(lebar/tinggi)})


meta_df = pd.DataFrame(meta_file_list)

print(meta_df.head(5))


fig = plt.figure(figsize=(8, 8))
ax = fig.add_subplot(111)
points = ax.scatter(meta_df.Width, meta_df.Height, color='blue', alpha=0.5, s=meta_df["Ratio"]*100, picker=True)
ax.set_title("Image Resolution")
ax.set_xlabel("Width", size=14)
ax.set_ylabel("Height", size=14)

 

You May Have Missed