Nâng cao Tập dữ liệu để Huấn luyện YOLO26 Sử dụng Albumentations
Khi bạn xây dựng các mô hình thị giác máy tính, chất lượng và sự đa dạng của dữ liệu huấn luyện đóng vai trò quan trọng đối với hiệu suất của mô hình. Albumentations cung cấp một phương thức nhanh chóng, linh hoạt và hiệu quả để áp dụng nhiều loại biến đổi hình ảnh, giúp cải thiện khả năng thích ứng của mô hình với các tình huống thực tế. Công cụ này tích hợp dễ dàng với Ultralytics YOLO26 và hỗ trợ bạn tạo ra các tập dữ liệu 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.
Bằng cách sử dụng Albumentations, bạn có thể tăng cường dữ liệu huấn luyện YOLO26 với 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ẽ thấy cách Albumentations cải thiện quy trình tăng cường dữ liệu và làm cho các dự án YOLO26 của bạn trở nên hiệu quả hơn. Hãy bắt đầu thôi!
Albumentations để Tăng cường Hình ảnh
Albumentations là một thư viện tăng cường hình ảnh mã nguồn mở được tạo ra vào tháng 6 năm 2018. Nó được thiết kế để đơn giản hóa và đẩy nhanh quy trình tăng cường hình ảnh trong thị giác máy tính. Được tạo ra với mục tiêu tối ưu hiệu suất và tính linh hoạt, thư viện này 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 các điều chỉnh phức tạp hơn như thay đổi độ sáng và độ tương phản. Albumentations giúp các nhà phát triển tạo ra các tập dữ liệu phong phú, đa dạng cho các tác vụ như phân loại hình ảnh, phát hiện đối tượng và phân đoạn.
You can use Albumentations to easily apply augmentations to images, segmentation masks, bounding boxes, and key points, and make sure that all elements of your dataset are transformed together. It works seamlessly with popular deep learning frameworks like PyTorch and TensorFlow, making it accessible for a wide range of projects.
Ngoài ra, Albumentations là một lựa chọn tuyệt vời cho việc tăng cường dữ liệu dù bạn đang xử lý các tập dữ liệu nhỏ hay các tác vụ thị giác máy tính quy mô lớn. Nó đảm bảo quá trình xử lý nhanh chóng và hiệu quả, giảm thiểu thời gian dành cho việc chuẩn bị dữ liệu. Đồng thời, nó giúp cải thiện hiệu suất mô hình, làm cho các mô hình của bạn 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 hình ảnh phức tạp cho nhiều ứng dụng thị giác máy tính. Dưới đây là một số tính năng chính:
- Phạm vi biến đổi rộng: Albumentations cung cấp hơn 70 phép biến đổi khác nhau, bao gồm các thay đổi về 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). Việc có nhiều tùy chọn cho phép tạo ra các tập dữ liệu huấn luyện đa dạng và mạnh mẽ.
-
Tối ưu hóa hiệu suất cao: Được xây dựng trên OpenCV và NumPy, Albumentations sử dụng các kỹ thuật tối ưu hóa tiên tiến như SIMD (Single Instruction, Multiple Data), cho phép xử lý đồng thời nhiều điểm dữ liệu để tăng tốc độ xử lý. Nó xử lý các tập dữ liệu lớn một cách nhanh chóng, trở thành một trong những lựa chọn nhanh nhất hiện nay cho việc tăng cường hình ảnh.
-
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 kết hợp. Các phép biến đổi cấp pixel chỉ ảnh hưởng đến hình ảnh đầu vào mà không làm thay đổi mặt nạ, hộp bao hoặc điểm chính. Trong khi đó, cả hình ảnh và các thành phần đi kèm như mặt nạ và hộp bao đều được biến đổi khi sử dụng cấp độ không gian. Ngoài ra, các phép biến đổi cấp kết hợp là một cách độc đáo để tăng cường dữ liệu bằng cách kết hợp nhiều hình ảnh thành một.

- Kết quả đánh giá hiệu năng: Khi nói đến việc đánh giá, Albumentations luôn vượt trội so với các thư viện khác, đặc biệt là với các tập dữ liệu lớn.
Tại sao bạn nên sử dụng Albumentations cho các Dự án AI Thị giác của mình?
Liên quan đến tăng cường hình ảnh, Albumentations nổi bật như một công cụ đáng tin cậy cho các tác vụ thị giác máy tính. Dưới đây là một vài lý do chính tại sao bạn nên cân nhắc sử dụng nó cho các dự án Vision AI của mình:
-
API dễ sử dụng: Albumentations cung cấp một API đơn giản và duy nhất để áp dụng nhiều loại tăng cường lên hình ảnh, mặt nạ, hộp bao và điểm chính. Nó được thiết kế để dễ dàng thích ứng với các tập dữ liệu khác nhau, giúp quy trình chuẩn bị dữ liệu trở nên đơn giản và hiệu quả hơn.
-
Kiểm tra lỗi nghiêm ngặt: Lỗi trong quy trình tăng cường có thể làm hỏng dữ liệu đầu vào một cách âm thầm, thường không bị phát hiện nhưng cuối cùng lại làm giảm hiệu suất của mô hình. Albumentations giải quyết vấn đề này bằng một bộ kiểm thử kỹ lưỡng 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 có thể được sử dụng để dễ dàng thêm các phép tăng cường mới và sử dụng chúng trong các quy trình xử lý thị giác máy tính thông qua một giao diện duy nhất, cùng với các phép biến đổi có sẵn.
Cách sử dụng Albumentations để tăng cường dữ liệu cho việc Huấn luyện YOLO26
Bây giờ chúng ta đã biết Albumentations là gì và nó có thể làm được gì, hãy cùng xem cách sử dụng nó để tăng cường dữ liệu cho việc huấn luyện mô hình YOLO26. Việc thiết lập rất dễ dàng vì 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 gói Albumentations.
Cài đặt
Để sử dụng Albumentations với YOLO26, hãy bắt đầu bằng việc đảm bảo bạn đã cài đặt các gói cần thiết. Nếu Albumentations chưa được cài đặt, 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 sẽ sẵn sàng tạo ra một tập dữ liệu đã tăng cường để huấn luyện, với Albumentations được tích hợp để tự động nâng cao mô hình của bạn.
# Install the required packages
pip install albumentations ultralyticsĐể biết hướng dẫn chi tiết và các phương pháp thực hành tốt nhất liên quan đến quy trình cài đặt, hãy xem hướng dẫn Cài đặt Ultralytics của chúng tôi. Trong quá trình cài đặt các gói cần thiết cho YOLO26, nếu gặp bất kỳ khó khăn nào, hãy tham khảo hướng dẫn về các vấn đề phổ biến để tìm giải pháp và mẹo xử lý.
Cách sử dụng
Sau khi cài đặt các gói cần thiết, bạn đã sẵn sàng bắt đầu sử dụng Albumentations với YOLO26. Khi bạn huấn luyện YOLO26, một bộ các phép tăng cường sẽ tự động được áp dụng thông qua sự tích hợp với Albumentations, giúp việc nâng cao hiệu suất mô hình của bạn trở nên dễ dàng.
from ultralytics import YOLO
# Load a pretrained model
model = YOLO("yolo26n.pt")
# Train the model with default augmentations
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)Tiếp theo, hãy xem xét 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.
Blur
Phép biến đổi Blur (Làm mờ) trong Albumentations áp dụng hiệu ứng làm mờ đơn giản lên hình ảnh bằng cách tính trung bình các giá trị pixel trong một khu vực hình vuông nhỏ, hoặc hạt nhân. Quá trình này được thực hiện bằng hàm cv2.blur của OpenCV, giúp giảm nhiễu trong hình ảnh, mặc dù nó cũng làm giảm nhẹ độ chi tiết của hình ả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 hạt nhân cho việc làm mờ có thể thay đổi từ 3 đến 7 pixel, chỉ chấp nhận các số lẻ để giữ cho hiệu ứng làm mờ được căn giữa.
-
p: Xác suất áp dụng hiệu ứng làm mờ. Trong tích hợp này, p=0.01, vì vậy có 1% cơ hội hiệu ứng làm mờ này sẽ được áp dụng cho mỗi hình ảnh. Xác suất thấp cho phép các hiệu ứng làm mờ thỉnh thoảng xảy ra, tạo ra một chút biến thể để giúp mô hình tổng quát hóa tốt hơn mà không làm mờ quá mức hình ảnh.
Median Blur (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 hình ảnh, đặc biệt hữu ích để giảm nhiễu trong khi vẫn bảo toàn được các cạnh. Không giống như các phương pháp làm mờ thông thường, MedianBlur sử dụng bộ lọc trung vị, rất hiệu quả trong việc loại bỏ nhiễu muối tiêu trong khi vẫn duy trì độ sắc nét xung quanh các cạ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 kích thước tối đa của hạt nhân 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 hạt nhân cho việc làm mờ được chọn ngẫu nhiên từ 3 đến 7 pixel, chỉ các giá trị lẻ mới được cho phép để đảm bảo căn chỉnh phù hợp.
-
p: Đặt xác suất áp dụng làm mờ trung vị. Ở đây, p=0.01, nghĩa là phép biến đổi này có 1% cơ hội được áp dụng cho mỗi hình ảnh. Xác suất thấp này đảm bảo rằng làm mờ trung vị được sử dụng tiết kiệm, giúp mô hình tổng quát hóa bằng cách thỉnh thoảng nhìn thấy các hình ảnh đã giảm nhiễu và bảo toàn cạnh.
Hình ảnh dưới đây hiển thị ví dụ về phép tăng cường này được áp dụng lên một hình ảnh.
Grayscale (Thang độ xám)
Phép biến đổi ToGray trong Albumentations chuyển đổi hình ảnh sang thang độ xám, rút gọn nó về định dạng một kênh và tùy chọn sao chép kênh này để khớp với số lượng kênh đầu ra được chỉ định. Các phương pháp khác nhau có thể được sử dụng để điều chỉnh cách tính toán độ sáng thang độ xám, từ lấy trung bình đơn giản đến các kỹ thuật tiên tiến hơn để cảm nhận độ tương phản và độ sáng một cách thực tế.
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ố lượng kênh trong hình ảnh đầu ra. Nếu giá trị này lớn hơn 1, kênh thang độ xám đơn lẻ sẽ được sao chép để tạo ra hình ảnh thang độ xám đa kênh. Theo mặc định, nó được đặt là 3, cho ra một hình ảnh thang độ xám với ba kênh giống hệt nhau.
-
method: Định nghĩa phương pháp chuyển đổi thang độ xám. Phương pháp mặc định, "weighted_average", áp dụng công thức (0.299R + 0.587G + 0.114B) rất sát với nhận thức của con người, mang lại hiệu ứng thang độ xám tự nhiên. Các tùy chọn khác như "from_lab", "desaturation", "average", "max" và "pca" cung cấp các cách thay thế để tạo hình ảnh thang độ xám dựa trên nhiều nhu cầu khác nhau về tốc độ, nhấn mạnh độ sáng hoặc bảo toàn chi tiết.
-
p: Kiểm soát tần suất áp dụng phép biến đổi thang độ xám. Với p=0.01, có 1% cơ hội chuyển đổi mỗi hình ảnh sang thang độ xám, giúp tạo ra sự kết hợp giữa hình ảnh màu và thang độ xám để hỗ trợ mô hình tổng quát hóa tốt hơn.
Hình ảnh dưới đây hiển thị ví dụ về phép biến đổi thang độ xám này đã được áp dụng.
Contrast Limited Adaptive Histogram Equalization (CLAHE)
Phép biến đổi CLAHE trong Albumentations áp dụng Cân bằng Biểu đồ Thích ứng Giới hạn Độ tương phản (CLAHE), một kỹ thuật nâng cao độ tương phản của hình ảnh bằng cách cân bằng biểu đồ trong các vùng (ô) cục bộ thay vì trên toàn bộ hình ảnh. CLAHE tạo ra hiệu ứng nâng cao cân bằng, tránh hiện tượng độ tương phản bị khuếch đại quá mức có thể xảy ra từ việc cân bằng biểu đồ tiêu chuẩn, đặc biệt là ở những vùng có độ tương phản ban đầu 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 nâng cao độ tương phản. Được đặt ở phạm vi mặc định (1, 4), nó xác định độ tương phản tối đa cho phép trong mỗi ô. Các giá trị cao hơn được sử dụng để tăng độ tương phản nhưng cũng có thể tạo ra nhiễu.
-
tile_grid_size: Định nghĩa kích thước của lưới các ô, thường là (hàng, cột). Giá trị mặc định là (8, 8), nghĩa là hình ảnh được chia thành lưới 8x8. Kích thước ô nhỏ hơn cung cấp các điều chỉnh cục bộ hơn, trong khi kích thước lớn hơn tạo ra các 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ỉ đưa hiệu ứng nâng cao vào 1% thời gian, đảm bảo rằng các điều chỉnh độ tương phản được áp dụng tiết kiệm cho sự biến đổi thỉnh thoảng trong các hình ảnh huấn luyện.
Hình ảnh dưới đây hiển thị ví dụ về phép biến đổi CLAHE đã được áp dụng.
Sử dụng các Phép biến đổi Albumentations Tùy chỉnh
Mặc dù tích hợp Albumentations mặc định cung cấp một tập hợp các phép tăng cường vững chắc, bạn có thể muốn tùy chỉnh các phép biến đổi 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 phép biến đổi Albumentations tùy chỉnh thông qua Python API sử dụng tham số augmentations.
Cách Định nghĩa các Phép biến đổi Tùy chỉnh
Bạn có thể định nghĩa danh sách các phép biến đổi Albumentations của riêng mình và truyền chúng vào hàm huấn luyện. Điều này thay thế các phép biến đổi Albumentations mặc định trong khi vẫn giữ tất cả các phép tăng cường YOLO khác (như hsv_h, degrees, mosaic, v.v.) hoạt động.
Dưới đây là một ví dụ với các phép biến đổi nâng cao hơn:
import albumentations as A
from ultralytics import YOLO
# Load model
model = YOLO("yolo26n.pt")
# Define custom transforms with various augmentation techniques
custom_transforms = [
# Blur variations
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,
),
# Noise variations
A.OneOf(
[
A.GaussNoise(var_limit=(10.0, 50.0), p=1.0),
A.ISONoise(color_shift=(0.01, 0.05), intensity=(0.1, 0.5), p=1.0),
],
p=0.2,
),
# Color and contrast adjustments
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),
# Simulate occlusions
A.CoarseDropout(
max_holes=8, max_height=32, max_width=32, min_holes=1, min_height=8, min_width=8, fill_value=0, p=0.2
),
]
# Train with custom transforms
results = model.train(
data="coco8.yaml",
epochs=100,
imgsz=640,
augmentations=custom_transforms,
)Các Cân nhắc Quan trọng
Khi sử dụng các phép biến đổi Albumentations tùy chỉnh, hãy ghi nhớ những điểm sau:
- Chỉ Python API: Các phép biến đổi tùy chỉnh chỉ có thể được truyền thông qua Python API, không thông qua CLI hoặc các tệp cấu hình YAML.
- Thay thế mặc định: Các phép biến đổi tùy chỉnh của bạn sẽ thay thế hoàn toàn các phép biến đổi Albumentations mặc định. Các phép tăng cường khác của YOLO vẫn hoạt động.
- Xử lý Hộp bao: Ultralytics tự động xử lý các điều chỉnh hộp bao cho hầu hết các phép biến đổi, nhưng các phép biến đổi không gian phức tạp có thể yêu cầu kiểm tra thêm.
- Hiệu suất: Một số phép biến đổi rất tốn kém về mặt tính toán. Hãy theo dõi tốc độ huấn luyện và điều chỉnh cho phù hợp.
- Khả năng tương thích tác vụ: Các phép biến đổi Albumentations tùy chỉnh hoạt động với các tác vụ phát hiện và phân đoạn nhưng không hoạt động với phân loại (sử dụng một quy trình tăng cường khác).
Các trường hợp sử dụng cho các Phép biến đổi Tùy chỉnh
Các ứng dụng khác nhau được hưởng lợi từ các chiến lược tăng cường khác nhau:
- Chẩn đoán hình ảnh y tế: Sử dụng các biến dạng đàn hồi, méo lưới và các mẫu nhiễu chuyên biệt.
- Hình ảnh trên không/vệ tinh: Áp dụng các phép biến đổi mô phỏng các độ cao, điều kiện thời tiết và góc chiếu sáng khác nhau.
- Kịch bản thiếu sáng: Nhấn mạnh việc thêm nhiễu và điều chỉnh độ sáng để huấn luyện các mô hình mạnh mẽ cho điều kiện ánh sáng thách thức.
- Kiểm tra công nghiệp: Thêm các biến thể bề mặt và các khiếm khuyết mô phỏng cho các ứng dụng kiểm soát chất lượng.
Để có danh sách đầy đủ các phép biến đổi có sẵn và tham số của chúng, hãy truy cập tài liệu Albumentations.
Để biết thêm các ví dụ chi tiết và các phương pháp thực hành tốt nhất về việc sử dụng các phép biến đổi Albumentations tùy chỉnh với YOLO26, hãy xem hướng dẫn Tăng cường dữ liệu YOLO.
Tiếp tục Học hỏi về Albumentations
Nếu bạn quan tâm đến việc tìm hiểu thêm về Albumentations, hãy kiểm tra các tài nguyên sau để có các 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à các kỹ thuật sử dụng nâng cao.
-
Hướng dẫn Ultralytics Albumentations: Tìm hiểu sâu hơn về các chi tiết của hàm hỗ trợ việc tích hợp này.
-
Kho lưu trữ GitHub Albumentations: Kho lưu trữ bao gồm các ví dụ, kết quả đánh giá hiệu năng và các thảo luận để giúp bạn bắt đầu tùy chỉnh các phép tăng cường.
Những Điểm Chính
Trong hướng dẫn này, chúng ta đã khám phá các khía cạnh chính của Albumentations, một thư viện Python tuyệt vời để tăng cường hình ảnh. Chúng ta đã thảo luận về phạm vi biến đổi rộng rãi, hiệu suất được tối ưu hóa và cách bạn có thể sử dụng nó trong dự án YOLO26 tiếp theo của mình.
Ngoài ra, nếu bạn muốn biết thêm về các tích hợp YOLO26 khác của Ultralytics, hãy truy cập trang hướng dẫn tích hợp của chúng tôi. Bạn sẽ tìm thấy các tài nguyên và thông tin chi tiết hữu ích ở đó.
Câu hỏi thường gặp (FAQ)
Làm thế nào tôi có thể tích hợp Albumentations với YOLO26 để tăng cường dữ liệu tốt hơn?
Albumentations tích hợp liền mạch với YOLO26 và tự động áp dụng trong quá trình huấn luyện nếu bạn đã cài đặt gói. Đây là cách để bắt đầu:
# Install required packages
# !pip install albumentations ultralytics
from ultralytics import YOLO
# Load and train model with automatic augmentations
model = YOLO("yolo26n.pt")
model.train(data="coco8.yaml", epochs=100)Việc tích hợp bao gồm các phép tăng cường được tối ưu hóa như làm mờ, làm mờ trung vị, chuyển đổi thang độ xám và CLAHE với các xác suất được tinh chỉnh cẩn thận để nâng cao hiệu suất mô hình.
Những lợi ích chính của việc sử dụng Albumentations so với các thư viện tăng cường khác là gì?
Albumentations nổi bật vì một số lý do:
- Hiệu suất: Được xây dựng trên OpenCV và NumPy với tối ưu hóa SIMD cho tốc độ vượt trội
- Tính linh hoạt: Hỗ trợ hơn 70 phép biến đổi trên các cấp độ pixel, không gian và kết hợp
- Khả năng tương thích: Hoạt động liền mạch với các khung làm việc phổ biến như PyTorch và TensorFlow
- Độ tin cậy: Bộ kiểm thử mở rộng ngăn ngừa hỏng dữ liệu âm thầm
- Dễ sử dụng: API thống nhất duy nhất cho tất cả các loại tăng cường
Những loại tác vụ thị giác máy tính nào có thể được hưởng lợi từ việc tăng cường bằng Albumentations?
Albumentations tăng cường nhiều tác vụ thị giác máy tính bao gồm:
- Phát hiện Đối tượng: Cải thiện tính mạnh mẽ của mô hình đối với các biến thể về ánh sáng, quy mô và hướng
- Phân đoạn Thực thể: Nâng cao độ chính xác dự đoán mặt nạ thông qua các phép biến đổi đa dạng
- Phân loại: Tăng cường khả năng tổng quát hóa của mô hình với các phép tăng cường màu sắc và hình học
- Ước tính Tư thế: Giúp mô hình thích nghi với các góc nhìn và điều kiện ánh sáng khác nhau
Các tùy chọn tăng cường đa dạng của thư viện làm cho nó trở nên có giá trị đối với bất kỳ tác vụ thị giác nào đòi hỏi hiệu suất mô hình mạnh mẽ.