Tutorial Albumentations: Advanced Image Augmentation untuk Computer Vision

# Albumentations - Augmentasi Gambar Tingkat Lanjut ## Daftar Isi 1. [Pendahuluan](#pendahuluan) 2. [Prasyarat](#prasyarat) 3. [Instalasi dan Pengaturan](#instalasi-dan-pengaturan) 4. [Memahami Pipe...

By Ruby Abdullah · · tutorial
AlbumentationsImage AugmentationComputer VisionData AugmentationPyTorchTraining

Albumentations - Augmentasi Gambar Tingkat Lanjut

Daftar Isi

  • Pendahuluan
  • Prasyarat
  • Instalasi dan Pengaturan
  • Memahami Pipeline Augmentasi
  • Transformasi Geometris
  • Transformasi Warna
  • Efek Cuaca dan Lingkungan
  • Membangun Pipeline Kompleks dengan Compose
  • Integrasi dengan PyTorch DataLoader
  • Transformasi Kustom
  • A/B Testing Strategi Augmentasi
  • Benchmark: Albumentations vs torchvision
  • Praktik Terbaik
  • Kesimpulan

  • Pendahuluan

    Augmentasi gambar adalah salah satu teknik regularisasi paling efektif dalam computer vision. Dengan memperbanyak dataset pelatihan secara artifisial menggunakan versi gambar yang telah ditransformasi, kita dapat meningkatkan kemampuan generalisasi model secara signifikan dan mengurangi overfitting.

    Albumentations adalah pustaka augmentasi gambar yang cepat, fleksibel, dan kaya fitur yang dirancang untuk praktisi machine learning. Dibangun di atas OpenCV dan NumPy, pustaka ini menyediakan lebih dari 70 jenis transformasi augmentasi yang berbeda dan dioptimalkan untuk performa — seringkali 2-10 kali lebih cepat dibandingkan alternatif seperti torchvision atau imgaug.

    Keunggulan utama Albumentations:

    • Kecepatan: Sangat dioptimalkan dengan backend OpenCV
    • Kelengkapan: 70+ transformasi mencakup geometris, warna, cuaca, dan lainnya
    • Fleksibilitas: Bekerja dengan gambar, mask, bounding box, dan keypoint secara bersamaan
    • Integrasi: Kompatibel penuh dengan PyTorch, TensorFlow, dan framework lainnya
    • Reprodusibilitas: Transformasi deterministik dengan kontrol seed

    Dalam tutorial ini, Anda akan mempelajari cara membangun pipeline augmentasi berkualitas produksi, mengintegrasikannya ke dalam alur kerja deep learning, membuat transformasi kustom, dan mengukur performa.


    Prasyarat

    Sebelum memulai tutorial ini, Anda harus memiliki:

    • Python 3.8 atau lebih tinggi
    • Pemahaman dasar konsep computer vision
    • Keakraban dengan PyTorch (untuk integrasi DataLoader)
    • Pengalaman dengan dasar-dasar NumPy dan pemrosesan gambar


    Instalasi dan Pengaturan

    Instal Albumentations dan dependensinya:

    # Instal albumentations dengan semua ekstra
    

    pip install albumentations[all]

    Atau instalasi minimal

    pip install albumentations

    Dependensi tambahan untuk tutorial ini

    pip install torch torchvision matplotlib opencv-python-headless

    Verifikasi instalasi:

    import albumentations as A
    

    import cv2

    import numpy as np

    print(f"Versi Albumentations: {A.version}")

    Muat gambar sampel

    image = cv2.imread("sampel.jpg")

    image = cv2.cvtColor(image, cv2.COLORBGR2RGB)

    print(f"Bentuk gambar: {image.shape}")


    Memahami Pipeline Augmentasi

    Albumentations menggunakan pendekatan pipeline deklaratif. Anda mendefinisikan urutan transformasi, masing-masing dengan probabilitas penerapan, kemudian melewatkan data Anda melalui pipeline tersebut.

    import albumentations as A
    

    import cv2

    import numpy as np

    Definisikan pipeline sederhana

    transform = A.Compose([

    A.HorizontalFlip(p=0.5),

    A.RandomBrightnessContrast(p=0.3),

    A.Resize(height=256, width=256),

    ])

    Muat dan transformasi gambar

    image = cv2.imread("sampel.jpg")

    image = cv2.cvtColor(image, cv2.COLORBGR2RGB)

    Terapkan transformasi

    result = transform(image=image)

    augmentedimage = result["image"]

    print(f"Bentuk asli: {image.shape}")

    print(f"Bentuk setelah augmentasi: {augmentedimage.shape}")

    Pipeline juga dapat menangani mask, bounding box, dan keypoint secara bersamaan:

    # Pipeline dengan dukungan bounding box
    

    transform = A.Compose([

    A.HorizontalFlip(p=0.5),

    A.RandomCrop(height=300, width=300, p=1.0),

    Artikel Terkait

    Tutorial Ray Train & Ray Tune: Training Terdistribusi dan Tuning Hyperparameter

    Ray Train & Ray Tune: Pelatihan Terdistribusi dan Penyetelan Hiperparameter Sebagian besar proyek machine learning dimul...

    Florence-2: Model Vision Multi-Task dari Microsoft

    Florence-2: Model Vision Multi-Task dari Microsoft Daftar Isi Pendahuluan Prasyarat Instalasi Memuat Model Florence-2

    Supervision: Toolkit Computer Vision dari Roboflow

    Supervision: Toolkit Computer Vision dari Roboflow Dalam proyek computer vision, setelah model mendeteksi objek, Anda ma...

    Tutorial Image Classification dengan Transfer Learning: ResNet, EfficientNet, ViT

    Klasifikasi Gambar dengan Transfer Learning: Tutorial Komprehensif Daftar Isi Pendahuluan Prasyarat Memahami Transfer Le...