Augmentasi gambar adalah solusi rekayasa untuk membuat kumpulan gambar baru dengan menerapkan metode pemrosesan gambar standar pada gambar yang sudah ada.

Solusi ini sebagian besar berguna untuk jaringan saraf atau CNN ketika ukuran dataset pelatihan kecil. Meskipun demikian, augmentasi gambar juga digunakan dengan kumpulan data besar sebagai teknik regularisasi untuk membangun model yang digeneralisasi atau kuat.

Algoritme pembelajaran mendalam tidak kuat hanya karena kemampuannya meniru otak manusia. Mereka juga kuat karena kemampuannya untuk berkembang dengan lebih banyak data. Faktanya, mereka memerlukan sejumlah besar data untuk menghasilkan kinerja yang luar biasa.

Performa tinggi dengan kumpulan data kecil kemungkinannya kecil. Di sini, teknik augmentasi data gambar berguna ketika kita memiliki data gambar kecil untuk melatih suatu algoritma.

Teknik augmentasi gambar membuat variasi gambar yang berbeda dari kumpulan gambar yang ada menggunakan metode di bawah ini:

  • Pembalikan gambar
  • Rotasi
  • Perbesar
  • Pergeseran tinggi dan lebar
  • Perspektif dan kemiringan
  • Transformasi pencahayaan
  • Tanaman
  • Penambahan kebisingan
  • Guntingan atau penghapusan

Mengapa augmentasi gambar berhasil?

Seperti yang dibahas sebelumnya, jaringan neural dalam bekerja paling baik dengan data dalam jumlah besar. Jumlah data mempercepat kinerja seperti yang ditunjukkan gambar di bawah ini.

Di sini, dengan augmentasi gambar, kita dapat membuat banyak variasi gambar dengan menggabungkan beberapa transformasi yang disebutkan di atas.

Anda dapat membuat 20, 25, 30, atau lebih variasi gambar dari setiap gambar jika diperlukan. Oleh karena itu, ini memenuhi persyaratan untuk jumlah data yang cukup, karena Anda dapat menskalakan kumpulan data Anda 30 kali atau lebih (dalam arti tertentu) menggunakan teknik augmentasi.

Augmentasi data gambar sebagai teknik regularisasi

Selain penskalaan kumpulan data, augmentasi gambar dapat dianggap sebagai metode regularisasi.

Algoritme terlatih diperlukan agar dapat bekerja dengan baik pada data dunia nyata yang tidak terlihat. Gambar yang diperoleh dalam lingkungan waktu nyata bisa jadi sangat gila dibandingkan dengan gambar di set pelatihan.

Gambar dunia nyata ini memiliki kondisi pencahayaan yang berbeda, posisi bingkai, ukuran objek yang diinginkan, perspektif, dan banyak lagi.

Untuk membuat pembelajaran algoritme menjadi kuat, kita dapat menggunakan augmentasi ini saat pelatihan.

Dengan cara ini, model akhir akan dapat lebih menggeneralisasi. Saya lebih suka menggunakan augmentasi sebagian besar waktu meskipun kumpulan datanya sangat besar.

Teknik Augmentasi Gambar apa yang kita bicarakan di blog ini?

Di sini, ketika kita berbicara tentang augmentasi data, kita tidak akan membuat gambar baru dan menyimpannya ke penyimpanan yang juga dapat dicapai dengan menggunakan perpustakaan OpenCV.

Pustaka mirip OpenCV akan membantu meningkatkan jumlah gambar dalam penyimpanan tetapi performa model serupa dapat diperoleh dengan teknik augmentasi gambar dalam memori.

Tidak diragukan lagi, augmentasi gambar fisik (pembuatan gambar yang ditambah dan disimpan di disk) memberikan lebih banyak fleksibilitas untuk pemrosesan dan manipulasi gambar, tetapi augmentasi gambar virtual atau dalam memori sudah cukup untuk melatih model.

Augmentasi gambar dalam memori mengambil gambar dari penyimpanan dan memodifikasi gambar secara real-time sebelum diumpankan ke jaringan saraf sambil menjaga gambar asli apa adanya.

Kode ini didasarkan pada kelas ImageDataGenerator perpustakaan Keras. Setelah membahas semua teknik ini, kami juga akan membahas kode untuk lapisan eksperimental praproses TensorFlow untuk augmentasi gambar dan kemampuan augmentasi data gambar fastai.

Baca blog mendalam tentang kode augmentasi gambar (juga mencakup augmentasi khusus)