Cải thiện Dataset của Bạn để Huấn luyện YOLO26 bằng Albumentations#
Khi xây dựng model computer vision, chất lượng và sự đa dạng của dữ liệu huấn luyện có thể ảnh hưởng đáng kể đến hiệu suất của model. Albumentations cung cấp phương pháp nhanh, linh hoạt và hiệu quả để áp dụng nhiều phép biến đổi ảnh, giúp cải thiện khả năng thích ứng của model với các tình huống thực tế. Thư viện dễ dàng tích hợp với Ultralytics YOLO26 và có thể giúp bạn tạo dataset mạnh mẽ cho các tác vụ phát hiện đối tượng, phân đoạn và phân loại.
Với Albumentations, bạn có thể tăng cường dữ liệu huấn luyện YOLO26 bằng các kỹ thuật như biến đổi hình học và điều chỉnh màu sắc. Trong bài viết này, chúng ta sẽ tìm hiểu cách Albumentations cải thiện quy trình tăng cường dữ liệu và giúp các dự án YOLO26 của bạn hiệu quả hơn nữa. Hãy bắt đầu!
Albumentations để tăng cường ảnh#
Albumentations là thư viện mã nguồn mở dùng để tăng cường ảnh, được tạo vào tháng 6 năm 2018. Thư viện được thiết kế để đơn giản hóa và tăng tốc quá trình tăng cường ảnh trong thị giác máy tính. Được phát triển chú trọng hiệu năng và tính linh hoạt, thư viện hỗ trợ nhiều kỹ thuật tăng cường đa dạng, từ các phép biến đổi đơn giản như xoay và lật đến những điều chỉnh phức tạp hơn như thay đổi độ sáng và độ tương phản. Albumentations giúp nhà phát triển tạo ra các dataset phong phú, đa dạng cho những tác vụ như phân loại ảnh, phát hiện đối tượng và phân đoạn.
Bạn có thể dùng Albumentations để dễ dàng áp dụng phép tăng cường lên ảnh, mask phân đoạn, bounding box và keypoint, đồng thời đảm bảo mọi thành phần trong dataset được biến đổi đồng bộ. Thư viện hoạt động liền mạch với các framework deep learning phổ biến như PyTorch và TensorFlow, phù hợp với nhiều loại dự án.
Ngoài ra, Albumentations là lựa chọn tăng cường tuyệt vời dù bạn xử lý dataset nhỏ hay tác vụ computer vision quy mô lớn. Thư viện đảm bảo xử lý nhanh và hiệu quả, giảm thời gian chuẩn bị dữ liệu. Đồng thời, thư viện giúp cải thiện hiệu suất model, giúp model hoạt động hiệu quả hơn trong các ứng dụng thực tế.
Các tính năng chính của Albumentations#
Albumentations cung cấp nhiều tính năng hữu ích giúp đơn giản hóa các phép tăng cường ảnh phức tạp cho nhiều ứng dụng computer vision. Dưới đây là một số tính năng chính:
- Nhiều loại phép biến đổi: Albumentations cung cấp hơn 70 phép biến đổi khác nhau, bao gồm thay đổi hình học (ví dụ: xoay, lật), điều chỉnh màu sắc (ví dụ: độ sáng, độ tương phản) và thêm nhiễu (ví dụ: nhiễu Gaussian). Nhiều tùy chọn cho phép tạo dataset huấn luyện đa dạng và mạnh mẽ.
-
Tối ưu hiệu năng cao: Được xây dựng trên OpenCV và NumPy, Albumentations sử dụng các kỹ thuật tối ưu nâng cao như SIMD (Một lệnh, nhiều dữ liệu), xử lý đồng thời nhiều điểm dữ liệu để tăng tốc quá trình xử lý. Thư viện xử lý nhanh các dataset lớn, trở thành một trong những lựa chọn tăng cường ảnh nhanh nhất hiện có.
-
Ba cấp độ tăng cường: Albumentations hỗ trợ ba cấp độ tăng cường: biến đổi cấp pixel, biến đổi cấp không gian và biến đổi cấp trộn. Biến đổi cấp pixel chỉ ảnh hưởng đến ảnh đầu vào mà không thay đổi mask, bounding box hoặc keypoint. Trong khi đó, biến đổi cấp không gian áp dụng lên cả ảnh và các thành phần của ảnh, như mask và bounding box. Ngoài ra, biến đổi cấp trộn là cách tăng cường dữ liệu độc đáo vì kết hợp nhiều ảnh thành một.

- Kết quả benchmark: Trong các bài benchmark, Albumentations luôn vượt trội hơn những thư viện khác, đặc biệt với dataset lớn.
Vì sao nên dùng Albumentations cho các dự án Vision AI?#
Trong lĩnh vực tăng cường ảnh, Albumentations nổi bật là công cụ đáng tin cậy cho các tác vụ computer vision. Dưới đây là một số lý do chính để cân nhắc sử dụng thư viện cho các dự án Vision AI:
-
API dễ sử dụng: Albumentations cung cấp một API đơn giản, nhất quán để áp dụng nhiều phép tăng cường lên ảnh, mask, bounding box và keypoint. API được thiết kế để dễ dàng thích ứng với các dataset khác nhau, giúp chuẩn bị dữ liệu đơn giản và hiệu quả hơn.
-
Kiểm thử lỗi nghiêm ngặt: Lỗi trong pipeline tăng cường có thể âm thầm làm sai lệch dữ liệu đầu vào, thường không được phát hiện nhưng cuối cùng làm giảm hiệu suất model. Albumentations giải quyết vấn đề này bằng bộ kiểm thử toàn diện, giúp phát hiện lỗi sớm trong quá trình phát triển.
-
Khả năng mở rộng: Albumentations giúp dễ dàng thêm các phép tăng cường mới và sử dụng chúng trong pipeline computer vision thông qua một giao diện duy nhất cùng với các phép biến đổi tích hợp sẵn.
Cách dùng Albumentations để tăng cường dữ liệu khi huấn luyện YOLO26#
Giờ đây, khi đã tìm hiểu Albumentations là gì và có thể làm gì, hãy xem cách dùng thư viện để tăng cường dữ liệu khi huấn luyện model YOLO26. Việc thiết lập rất dễ dàng vì thư viện tích hợp trực tiếp vào chế độ huấn luyện của Ultralytics và tự động áp dụng nếu bạn đã cài đặt package Albumentations.
Cài đặt#
Để dùng Albumentations với YOLO26, trước tiên hãy đảm bảo bạn đã cài đặt các package cần thiết. Nếu chưa cài Albumentations, các phép tăng cường sẽ không được áp dụng trong quá trình huấn luyện. Sau khi thiết lập, bạn có thể tạo dataset đã tăng cường để huấn luyện; Albumentations được tích hợp để tự động cải thiện model.
# Install the required packages
pip install albumentations ultralyticsĐể biết hướng dẫn chi tiết và các phương pháp tốt nhất về quy trình cài đặt, hãy xem hướng dẫn cài đặt Ultralytics. Nếu gặp khó khăn khi cài đặt các package cần thiết cho YOLO26, hãy tham khảo hướng dẫn khắc phục sự cố thường gặp để tìm giải pháp và mẹo hữu ích.
Các ví dụ về phép biến đổi tùy chỉnh trên trang này cần Albumentations 1.4.22 trở lên, do đó cũng cần Python 3.9 trở lên.
Cách sử dụng#
Sau khi cài đặt các package cần thiết, bạn có thể bắt đầu dùng Albumentations với YOLO26. Khi huấn luyện YOLO26, một tập hợp phép tăng cường sẽ tự động được áp dụng thông qua tích hợp với Albumentations, giúp bạn dễ dàng cải thiện hiệu suất model.
from ultralytics import YOLO
# Tải model pretrained
model = YOLO("yolo26n.pt")
# # Huấn luyện model với các phép tăng cường mặc định
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Tiếp theo, hãy cùng xem kỹ hơn các phép tăng cường cụ thể được áp dụng trong quá trình huấn luyện.
Làm mờ#
Phép biến đổi Blur trong Albumentations áp dụng hiệu ứng làm mờ đơn giản cho ảnh bằng cách lấy trung bình giá trị pixel trong một vùng vuông nhỏ, hay kernel. Phép biến đổi này sử dụng hàm OpenCV cv2.blur, giúp giảm nhiễu trong ảnh nhưng cũng làm giảm nhẹ chi tiết ảnh.
Dưới đây là các tham số và giá trị được sử dụng trong tích hợp này:
-
blur_limit: Tham số này kiểm soát phạm vi kích thước của hiệu ứng làm mờ. Phạm vi mặc định là (3, 7), nghĩa là kích thước kernel làm mờ có thể thay đổi từ 3 đến 7 pixel; chỉ cho phép số lẻ để giữ hiệu ứng làm mờ ở vị trí trung tâm.
-
p: Xác suất áp dụng hiệu ứng làm mờ. Trong tích hợp này, p=0.01, tức là có 1% khả năng phép làm mờ được áp dụng cho mỗi ảnh. Xác suất thấp giúp thỉnh thoảng tạo hiệu ứng làm mờ, bổ sung một chút biến thiên để model khái quát hóa tốt hơn mà không làm ảnh bị mờ quá mức.
Làm mờ trung vị#
Phép biến đổi MedianBlur trong Albumentations áp dụng hiệu ứng làm mờ trung vị lên ảnh, đặc biệt hữu ích để giảm nhiễu mà vẫn bảo toàn các cạnh. Khác với các phương pháp làm mờ thông thường, MedianBlur sử dụng bộ lọc trung vị, đặc biệt hiệu quả trong việc loại bỏ nhiễu muối tiêu đồng thời giữ cho các cạnh sắc nét.
Dưới đây là các tham số và giá trị được sử dụng trong tích hợp này:
-
blur_limit: Tham số này kiểm soát kích thước tối đa của kernel làm mờ. Trong tích hợp này, giá trị mặc định là phạm vi (3, 7), nghĩa là kích thước kernel làm mờ được chọn ngẫu nhiên từ 3 đến 7 pixel; chỉ cho phép giá trị lẻ để đảm bảo căn chỉnh chính xác.
-
p: Thiết lập xác suất áp dụng hiệu ứng làm mờ trung vị. Ở đây, p=0.01, tức là phép biến đổi có 1% khả năng được áp dụng cho mỗi ảnh. Xác suất thấp này đảm bảo hiệu ứng chỉ được dùng thưa thớt, giúp model khái quát hóa bằng cách thỉnh thoảng xử lý ảnh đã giảm nhiễu nhưng vẫn giữ được các cạnh.
Ảnh bên dưới minh họa ví dụ áp dụng phép tăng cường này.
Ảnh xám#
Phép biến đổi ToGray trong Albumentations chuyển ảnh sang thang xám, giảm ảnh xuống định dạng một kênh và tùy chọn nhân bản kênh này để khớp với số kênh đầu ra được chỉ định. Có thể sử dụng các phương pháp khác nhau để điều chỉnh cách tính độ sáng ảnh xám, từ lấy trung bình đơn giản đến các kỹ thuật nâng cao hơn nhằm mô phỏng chân thực cảm nhận về độ tương phản và độ sáng.
Dưới đây là các tham số và giá trị được sử dụng trong tích hợp này:
-
num_output_channels: Thiết lập số kênh trong ảnh đầu ra. Nếu giá trị này lớn hơn 1, kênh ảnh xám duy nhất sẽ được nhân bản để tạo ảnh xám nhiều kênh. Mặc định, giá trị này là 3, tạo ảnh xám có ba kênh giống hệt nhau.
-
method: Xác định phương pháp chuyển đổi ảnh xám. Phương pháp mặc định, "weighted_average", áp dụng công thức (0.299R + 0.587G + 0.114B), gần với cảm nhận của con người và tạo hiệu ứng ảnh xám tự nhiên. Các tùy chọn khác như "from_lab", "desaturation", "average", "max" và "pca" cung cấp những cách thay thế để tạo ảnh xám, tùy theo nhu cầu về tốc độ, mức độ nhấn mạnh độ sáng hoặc khả năng bảo toàn chi tiết.
-
p: Kiểm soát tần suất áp dụng phép biến đổi ảnh xám. Với p=0.01, mỗi ảnh có 1% khả năng được chuyển sang thang xám, giúp tạo ra tập ảnh kết hợp cả ảnh màu và ảnh xám để model khái quát hóa tốt hơn.
Ảnh bên dưới minh họa ví dụ áp dụng phép biến đổi ảnh xám này.
Cân bằng histogram thích ứng giới hạn tương phản (CLAHE)#
Phép biến đổi CLAHE trong Albumentations áp dụng cân bằng histogram thích ứng giới hạn tương phản (CLAHE), một kỹ thuật tăng cường độ tương phản ảnh bằng cách cân bằng histogram trong các vùng cục bộ (tile) thay vì trên toàn bộ ảnh. CLAHE tạo hiệu ứng tăng cường cân bằng, tránh khuếch đại độ tương phản quá mức như phương pháp cân bằng histogram tiêu chuẩn, đặc biệt ở những vùng ban đầu có độ tương phản thấp.
Dưới đây là các tham số và giá trị được sử dụng trong tích hợp này:
-
clip_limit: Kiểm soát phạm vi tăng cường độ tương phản. Giá trị mặc định là phạm vi (1, 4), xác định mức tương phản tối đa cho phép trong mỗi tile. Giá trị cao hơn tạo độ tương phản mạnh hơn nhưng cũng có thể gây thêm nhiễu.
-
tile_grid_size: Xác định kích thước lưới tile, thường biểu diễn dưới dạng (hàng, cột). Giá trị mặc định là (8, 8), nghĩa là ảnh được chia thành lưới 8x8. Tile nhỏ hơn tạo điều chỉnh cục bộ hơn, còn tile lớn hơn tạo hiệu ứng gần với cân bằng toàn cục.
-
p: Xác suất áp dụng CLAHE. Ở đây, p=0.01 chỉ tạo hiệu ứng tăng cường với xác suất 1%, đảm bảo điều chỉnh độ tương phản được áp dụng thưa thớt để thỉnh thoảng tạo biến thiên cho ảnh huấn luyện.
Ảnh bên dưới minh họa ví dụ áp dụng phép biến đổi CLAHE.
Sử dụng các transform Albumentations tùy chỉnh#
Mặc dù tích hợp Albumentations mặc định cung cấp một bộ phép tăng cường dữ liệu hữu ích, bạn có thể muốn tùy chỉnh các transform cho trường hợp sử dụng cụ thể của mình. Với Ultralytics YOLO26, bạn có thể dễ dàng truyền các transform Albumentations tùy chỉnh thông qua Python API bằng tham số augmentations. Các ví dụ trong phần này yêu cầu Albumentations phiên bản 1.4.22 trở lên.
Cách định nghĩa các transform tùy chỉnh#
Bạn có thể định nghĩa danh sách transform Albumentations của riêng mình và truyền chúng vào hàm training. Thao tác này thay thế các transform Albumentations mặc định trong khi vẫn giữ các phép tăng cường dữ liệu YOLO khác (như hsv_h, degrees, mosaic, v.v.) hoạt động.
Dưới đây là ví dụ sử dụng các transform nâng cao hơn:
import albumentations as A
from ultralytics import YOLO
# Tải model
model = YOLO("yolo26n.pt")
# Định nghĩa các transform tùy chỉnh với nhiều kỹ thuật tăng cường dữ liệu
custom_transforms = [
# Các biến thể làm mờ
A.OneOf(
[
A.MotionBlur(blur_limit=7, p=1.0),
A.MedianBlur(blur_limit=7, p=1.0),
A.GaussianBlur(blur_limit=7, p=1.0),
],
p=0.3,
),
# Các biến thể nhiễu
A.OneOf(
[
A.GaussNoise(std_range=(0.0124, 0.0277), p=1.0),
A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
],
p=0.2,
),
# Điều chỉnh màu sắc và độ tương phản
A.CLAHE(clip_limit=4.0, tile_grid_size=(8, 8), p=0.5),
A.RandomBrightnessContrast(brightness_limit=0.3, contrast_limit=0.3, p=0.5),
A.HueSaturationValue(hue_shift_limit=20, sat_shift_limit=30, val_shift_limit=20, p=0.5),
# Mô phỏng hiện tượng che khuất
A.CoarseDropout(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]
# Training với các transform tùy chỉnh
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
augmentations=custom_transforms,
)Các điểm cần lưu ý#
Khi sử dụng các transform Albumentations tùy chỉnh, hãy lưu ý những điểm sau:
- Cấu hình: Tạo các đối tượng transform tùy chỉnh thông qua Python API. Bạn cũng có thể truyền các transform đã tuần tự hóa thông qua CLI hoặc tệp cấu hình YAML, kể cả khi tiếp tục training.
- Thay thế mặc định: Các transform tùy chỉnh của bạn sẽ thay thế hoàn toàn các transform Albumentations mặc định. Các phép tăng cường dữ liệu YOLO khác vẫn hoạt động.
- Xử lý nhãn: Các transform không gian, bao gồm những transform được lồng trong
A.OneOfhoặcA.Compose, sẽ dịch chuyển bounding box, polygon, keypoint và mask độ sâu hoặc ngữ nghĩa cùng với ảnh.A.RandomGridShufflekhông thể giữ nguyên cấu trúc liên kết của polygon hoặc keypoint và sẽ báo lỗi với các mẫu segmentation, pose và OBB. - Hiệu năng: Một số transform tiêu tốn nhiều tài nguyên tính toán. Hãy theo dõi tốc độ training và điều chỉnh cho phù hợp.
- Khả năng tương thích với tác vụ: Các transform Albumentations tùy chỉnh hoạt động với tác vụ detection, segmentation, segmentation ngữ nghĩa, độ sâu, pose và training OBB, nhưng không hoạt động với classification (vốn sử dụng pipeline tăng cường dữ liệu khác).
Các trường hợp sử dụng transform tùy chỉnh#
Các ứng dụng khác nhau sẽ hưởng lợi từ những chiến lược tăng cường dữ liệu khác nhau:
- Ảnh y tế: Sử dụng biến dạng đàn hồi, biến dạng lưới và các dạng nhiễu chuyên biệt
- Ảnh hàng không/vệ tinh: Áp dụng các transform mô phỏng độ cao, điều kiện thời tiết và góc chiếu sáng khác nhau
- Điều kiện thiếu sáng: Tăng cường thêm nhiễu và điều chỉnh độ sáng để training các model vững chắc trong điều kiện chiếu sáng khó khăn
- Kiểm tra công nghiệp: Bổ sung các biến thể kết cấu và khuyết tật mô phỏng cho các ứng dụng kiểm soát chất lượng
Để xem danh sách đầy đủ các transform hiện có và tham số của chúng, hãy truy cập tài liệu Albumentations.
Để xem các ví dụ chi tiết hơn và các phương pháp thực hành tốt nhất khi dùng transform Albumentations tùy chỉnh với YOLO26, hãy tham khảo hướng dẫn tăng cường dữ liệu YOLO.
Tìm hiểu thêm về Albumentations#
Nếu muốn tìm hiểu thêm về Albumentations, hãy xem các tài nguyên sau để tham khảo hướng dẫn và ví dụ chuyên sâu hơn:
-
Tài liệu Albumentations: Tài liệu chính thức cung cấp đầy đủ các phép biến đổi được hỗ trợ và kỹ thuật sử dụng nâng cao.
-
Hướng dẫn Albumentations của Ultralytics: Tìm hiểu kỹ hơn về chi tiết của hàm hỗ trợ tích hợp này.
-
Kho GitHub Albumentations: Kho lưu trữ bao gồm các ví dụ, benchmark và thảo luận giúp bạn bắt đầu tùy chỉnh phép tăng cường dữ liệu.
Điểm chính cần lưu ý#
Trong hướng dẫn này, chúng ta đã tìm hiểu các khía cạnh chính của Albumentations, một thư viện Python hữu ích để tăng cường dữ liệu ảnh. Chúng ta đã thảo luận về phạm vi rộng các phép biến đổi, hiệu năng được tối ưu hóa và cách sử dụng thư viện trong dự án YOLO26 tiếp theo của bạn.
Ngoài ra, nếu muốn tìm hiểu thêm về các tích hợp Ultralytics YOLO26 khác, hãy truy cập trang hướng dẫn tích hợp. Tại đó, bạn sẽ tìm thấy các tài nguyên và thông tin hữu ích.
Câu hỏi thường gặp#
Albumentations tích hợp liền mạch với YOLO26 và tự động áp dụng trong quá trình training nếu bạn đã cài đặt package. Sau đây là cách bắt đầu:
# Cài đặt các package cần thiết # !pip install albumentations ultralytics from ultralytics import YOLO # Tải và training model với các phép tăng cường dữ liệu tự động model = YOLO("yolo26n.pt") model.train(data="coco8.yaml", epochs=100)Tích hợp này bao gồm các phép tăng cường dữ liệu được tối ưu hóa như làm mờ, làm mờ trung vị, chuyển đổi sang ảnh xám và CLAHE với xác suất được tinh chỉnh cẩn thận nhằm cải thiện hiệu năng model.
Albumentations nổi bật nhờ một số lý do:
- Hiệu năng: Được xây dựng trên OpenCV và NumPy, với tối ưu hóa SIMD để đạt tốc độ vượt trội
- Tính linh hoạt: Hỗ trợ hơn 70 phép biến đổi ở cấp độ pixel, không gian và trộn dữ liệu
- Khả năng tương thích: Hoạt động liền mạch với các framework phổ biến như PyTorch và TensorFlow
- Độ tin cậy: Bộ kiểm thử toàn diện giúp ngăn ngừa lỗi hỏng dữ liệu không được phát hiện
- Dễ sử dụng: Một API thống nhất cho mọi loại phép tăng cường dữ liệu
Albumentations cải thiện nhiều tác vụ computer vision, bao gồm:
- Object Detection: Tăng độ vững chắc của model trước các biến thiên về ánh sáng, tỷ lệ và hướng
- Instance Segmentation: Nâng cao độ chính xác dự đoán mask thông qua các phép biến đổi đa dạng
- Pose Estimation: Giúp model thích ứng với các góc nhìn và điều kiện chiếu sáng khác nhau
- Phát hiện Oriented Bounding Box: Bổ sung biến thể màu sắc và nhiễu cho ảnh hàng không và ảnh vật thể xoay
Các tùy chọn tăng cường dữ liệu đa dạng của thư viện này rất hữu ích cho những tác vụ thị giác cần hiệu năng model vững chắc. Trong Ultralytics YOLO26, training classification sử dụng pipeline tăng cường dữ liệu riêng dựa trên torchvision và không áp dụng các transform Albumentations.