
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?
Contents
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!
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’)
Referensi Resmi
- GitHub Kornia
- Dokumentasi Kornia
- Paper: “Kornia: an Open Source Differentiable Computer Vision Library for PyTorch”
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.