Kornia Library augmentasi berbasis PyTorch

By | April 5, 2025
122 Views

Mengenal Kornia: Framework Augmentasi dan Visi Komputer Berbasis PyTorch. Di dunia machine learning, augmentasi citra adalah salah satu teknik penting untuk memperkaya dataset dan meningkatkan performa model, khususnya dalam tugas seperti klasifikasi, deteksi objek, dan segmentasi. Meski banyak pustaka augmentasi populer seperti Albumentations, muncul satu kandidat kuat yang mengubah cara kita melakukan augmentasi: Kornia.

Apa Itu Kornia?

Kornia adalah pustaka open-source yang dikembangkan oleh komunitas AI berbasis pada PyTorch. Nama Kornia diambil dari kata “corner,” karena awalnya fokus pada algoritma deteksi sudut dalam visi komputer.

Saat ini, Kornia telah berevolusi menjadi framework lengkap untuk visi komputer berbasis tensor, yang mendukung:

  • Augmentasi Citra
  • Transformasi Geometris
  • Filtering dan Edge Detection
  • Estimation Pose
  • Optik dan Pengolahan 3D
  • Computer vision klasik dan deep learning

Kornia sangat kuat karena seluruh operasinya berjalan langsung pada PyTorch tensor, termasuk pada GPU — tanpa perlu konversi ke NumPy.

Kenapa Menggunakan Kornia?

Berikut ini beberapa alasan kenapa Kornia bisa menjadi bagian penting dari pipeline machine learning kamu:

1. Tensor-native & GPU-friendly

Berbeda dengan Albumentations (yang berbasis NumPy), Kornia bekerja langsung pada PyTorch tensor. Artinya, kamu bisa menjalankan augmentasi di GPU, dan hasilnya langsung masuk ke model — efisien dan cepat!

See also  Memahami Cara Kerja Learning Rate Scheduler pada Pytorch

2. Autograd-aware

Transformasi Kornia mendukung autograd, artinya transformasi yang kamu lakukan bisa ikut dihitung dalam backpropagation jika dibutuhkan.

3. Bersifat Modular (PyTorch Style)

Kornia dibangun dengan gaya torch.nn.Module, sehingga sangat mudah dimasukkan ke dalam nn.Sequential() atau bahkan ke dalam arsitektur model kamu.

4. Mendukung Transformasi Kompleks

Kornia tidak hanya mendukung augmentasi sederhana seperti flip dan rotate, tetapi juga transformasi geometris kompleks seperti perspective warp, affine transform, motion blur, cutmix, mixup, dll.

Instalasi Kornia

Untuk menginstal Kornia, cukup jalankan:

pip install kornia

Untuk versi lengkap (termasuk OpenCV dan tambahan lainnya):

pip install kornia[all]

Contoh Penggunaan Kornia untuk Augmentasi

1. Membuat Augmentasi Sederhana

import torch
import kornia.augmentation as K
class Augmentasi(torch.nn.Module):
    def __init__(self):
        super().__init__()
        self.augment = torch.nn.Sequential(
            K.RandomHorizontalFlip(p=0.5),
            K.RandomBrightness(0.2, p=0.5),
            K.RandomContrast(0.2, p=0.5),
        )

    def forward(self, x):
        return self.augment(x)

2. Menggunakannya

image = torch.randn(3, 224, 224)  # contoh image tensor (CHW)
image = image.unsqueeze(0)  # jadi (1, C, H, W)

aug = Augmentasi()
aug_image = aug(image).squeeze(0)

 

Komponen Utama Kornia

kornia.augmentation

Modul ini menyediakan augmentasi visual standar dan kompleks. Beberapa contohnya:

  • RandomCrop
  • RandomAffine
  • ColorJitter
  • RandomGaussianBlur
  • CutMix, MixUp, RandomErasing

kornia.geometry

Berisi operasi seperti:

  • Homografi
  • Transformasi affine
  • Estimasi pose

kornia.filters

Versi tensor dari filter klasik:

  • Sobel
  • Gaussian
  • Laplacian
  • Median blur

Kornia vs Albumentations

Fitur Kornia Albumentations
Format Tensor (CHW) NumPy (HWC)
GPU support
Dukung Autograd
Integrasi PyTorch Sempurna Tidak native
Kelebihan Real-time di GPU, clean, modular Banyak preset, sangat lengkap di CPU

Kesimpulan: Gunakan Kornia jika kamu ingin efisiensi maksimal dalam pipeline PyTorch — terutama saat training di GPU. Gunakan Albumentations jika kamu ingin augmentasi kompleks dan bekerja di CPU.

Tips Integrasi Kornia

  • Masukkan augmentasi ke dalam __getitem__ di Dataset untuk training
  • Atau, gabungkan augmentasi dengan model untuk training self-supervised
  • Uji di CPU dulu, lalu pindahkan ke GPU: image = image.to(‘cuda’)
See also  Perbandingan Hasil Segmentasi Otsu vs UNet Deep Learning

Referensi Resmi

Penutup

Kornia hadir sebagai jawaban bagi developer dan peneliti yang ingin melakukan augmentasi dan visi komputer secara efisien, modular, dan sepenuhnya PyTorch-native. Dengan kemampuannya untuk bekerja di GPU dan integrasi autograd, Kornia membawa augmentasi ke level selanjutnya.