Trong học máy, đặc biệt là các bài toán thị giác máy tính (computer vision), số lượng và chất lượng dữ liệu ảnh đóng vai trò cực kỳ quan trọng. Tuy nhiên, việc thu thập đủ một bộ dữ liệu lớn, đa dạng trong thực tế không phải lúc nào cũng khả thi. Điều này dẫn đến tình trạng mô hình dễ bị overfitting và kém khả năng tổng quát hóa.
Augmentation (tăng cường dữ liệu) là một giải pháp mạnh mẽ để khắc phục vấn đề trên. Bằng cách áp dụng các phép biến đổi ngẫu nhiên như xoay, lật, dịch chuyển, thay đổi độ sáng, chúng ta có thể tạo ra nhiều phiên bản khác nhau từ ảnh gốc, giúp mô hình “thấy” nhiều dạng dữ liệu hơn trong quá trình huấn luyện. Bài viết này sẽ hướng dẫn bạn từ cơ bản đến nâng cao về kỹ thuật augmentation ảnh, đảm bảo người mới học cũng làm được.
Mô tả bài toán
Mục tiêu của bài viết là xây dựng một pipeline augmentation ảnh đầy đủ để chuẩn bị dữ liệu đầu vào cho mô hình học sâu. Pipeline này sẽ:
- Áp dụng các kỹ thuật augmentation cơ bản như flip, rotation, zoom, brightness adjustment.
- Kết hợp nhiều phép biến đổi để tạo dữ liệu đa dạng.
- Sử dụng các thư viện phổ biến: Keras ImageDataGenerator, Albumentations, và OpenCV.
- Thử nghiệm với một bộ dữ liệu ảnh thật để thấy sự khác biệt khi huấn luyện.
Bộ dữ liệu mẫu
Sử dụng bộ dữ liệu Cats vs Dogs từ Kaggle:
📥 Tải tại đây
Hoặc bộ Oxford-IIIT Pet Dataset từ TensorFlow Datasets:
import tensorflow_datasets as tfds
dataset, info = tfds.load('oxford_iiit_pet', with_info=True)

