Link to this sectionCải thiện tập dữ liệu của bạn để huấn luyện YOLO26 bằng Albumentations#
Khi bạn xây dựng các computer vision models, chất lượng và sự đa dạng của training data đó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 phép biến đổi ảnh, giúp cải thiện khả năng thích ứng của mô hình với các kịch bản thực tế. Nó tích hợp dễ dàng với Ultralytics YOLO26 và có thể giúp bạn tạo ra các tập dữ liệu mạnh mẽ cho các tác vụ object detection, segmentation và classification.
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ẽ xem cách Albumentations cải thiện quy trình data augmentation và giúp các YOLO26 projects của bạn đạt hiệu quả cao hơn. Hãy bắt đầu ngay!
Link to this sectionAlbumentations cho tăng cường ảnh#
Albumentations là một thư viện tăng cường ả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à tăng tốc quy trình tăng cường ảnh trong computer vision. Được tạo ra với tiêu chí performance và 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ư image classification, object detection và segmentation.
Bạn có thể sử dụng Albumentations để dễ dàng áp dụng các phép tăng cường lên hình ảnh, segmentation masks, bounding boxes và key points, đồng thời đảm bảo rằng tất cả các thành phần trong tập dữ liệu của bạn được biến đổi đồng nhất. Nó hoạt động trơn tru với các framework deep learning phổ biến như PyTorch và TensorFlow, giúp nó trở nên dễ tiếp cận cho nhiều dự án khác nhau.
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, bất kể bạn đang xử lý các tập dữ liệu nhỏ hay các computer vision tasks quy mô lớn. Nó đảm bảo xử lý nhanh 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 model performance, giúp các mô hình của bạn hiệu quả hơn trong các ứng dụng thực tế.
Link to this sectionCá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 computer vision applications. 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 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 hóa nâng cao như SIMD (Single Instruction, Multiple Data), giúp xử lý nhiều điểm dữ liệu đồng thời để 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, khiến nó trở thành một trong những lựa chọn nhanh nhất hiện có để tăng cường ả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 độ trộn. Các 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 key point. Trong khi đó, cả hình ảnh và các phần tử của nó như mask và bounding box đều được biến đổi bằng các phép biến đổi cấp độ không gian. Hơn nữa, các phép biến đổi cấp độ trộn là một cách độc đáo để tăng cường dữ liệu vì chúng kết hợp nhiều hình ảnh thành một.

- Kết quả kiểm chuẩn: Khi nói đến kiểm chuẩn, Albumentations luôn vượt trội hơn các thư viện khác, đặc biệt là với các tập dữ liệu lớn.
Link to this sectionTại sao bạn nên sử dụng Albumentations cho các dự án Vision AI của mình?#
Liên quan đến tăng cường ảnh, Albumentations nổi bật như một công cụ đáng tin cậy cho các tác vụ computer vision. 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à thống nhất để áp dụng nhiều phép tăng cường lên hình ảnh, mask, bounding box và keypoint. 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 data preparation trở nên đơn giản và hiệu quả hơn.
-
Kiểm tra lỗi nghiêm ngặt: Các lỗi trong quy trình tăng cường có thể âm thầm làm hỏng dữ liệu đầu vào, thường không được chú ý nhưng cuối cùng lại làm giảm hiệu suất 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 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 có sẵn.
Link to this sectionCá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 đã tìm hiểu Albumentations là gì và nó có thể làm gì, hãy 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 Ultralytics' training mode và áp dụng tự động nếu bạn đã cài đặt gói Albumentations.
Link to this sectionCà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 không đượ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 xong, bạn sẽ sẵn sàng tạo 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 cải thiện 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 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 khi cài đặt các gói cần thiết cho YOLO26, nếu bạn gặp bất kỳ khó khăn nào, hãy tham khảo Hướng dẫn các vấn đề thường gặp để tìm giải pháp và mẹo.
Link to this sectionCách sử dụng#
Sau khi cài đặt các gói cần thiết, bạn đã sẵn sàng sử dụng Albumentations với YOLO26. Khi bạn huấn luyện YOLO26, một tập hợp các phép tăng cường sẽ được áp dụng tự động thông qua khả năng tích hợp với Albumentations, giúp việc cải thiện hiệu suất mô hình 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, chúng ta 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.
Link to this sectionLàm mờ (Blur)#
Phép biến đổi Blur trong Albumentations áp dụng hiệu ứng làm mờ đơn giản lên hình ảnh bằng cách lấy trung bình giá trị pixel trong một khu vực nhỏ (kernel). Điều này được thực hiện bằng hàm cv2.blur của OpenCV, giúp giảm nhiễu trong ảnh, mặc dù nó cũng làm giảm nhẹ chi tiết 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), có nghĩa là kích thước kernel cho hiệu ứng làm mờ có thể thay đổi từ 3 đến 7 pixel, chỉ cho phép 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 được áp dụng cho mỗi ảnh. Xác suất thấp cho phép các hiệu ứng làm mờ không thường xuyên, giới thiệu một chút biến đổi để giúp mô hình tổng quát hóa tốt hơn mà không làm mờ quá mức các hình ảnh.
Link to this sectionMedian Blur#
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ạ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ị, cực kỳ hiệu quả trong việc loại bỏ nhiễu muối tiêu (salt-and-pepper) 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 kernel làm mờ. Trong tích hợp này, nó mặc định là phạm vi (3, 7), có nghĩa là kích thước kernel cho việc làm mờ được chọn ngẫu nhiên từ 3 đến 7 pixel, chỉ các giá trị lẻ được cho phép để đảm bảo căn chỉnh đúng.
-
p: Thiết lập xác suất áp dụng làm mờ trung vị. Ở đây, p=0.01, vì vậy phép biến đổi có 1% cơ hội được áp dụng cho mỗi ả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 thấy các hình ảnh đã giảm nhiễu và bảo toàn cạnh.
Hình ảnh dưới đây cho thấy một ví dụ về phép tăng cường này được áp dụng cho một hình ảnh.
Link to this sectionGrayscale#
Phép biến đổi ToGray trong Albumentations chuyển đổi hình ảnh sang thang độ xám (grayscale), giảm 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 độ sáng thang độ xám, từ lấy trung bình đơn giản đến các kỹ thuật nâng cao 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 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, tạo ra 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) tương tự như cảm nhận của con người, mang lại hiệu ứng thang độ xám trông 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 các 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 mô hình tổng quát hóa tốt hơn thông qua việc kết hợp ảnh màu và ảnh thang độ xám.
Hình ảnh dưới đây cho thấy một ví dụ về phép biến đổi thang độ xám này được áp dụng.
Link to this sectionContrast Limited Adaptive Histogram Equalization (CLAHE)#
Phép biến đổi CLAHE trong Albumentations áp dụng kỹ thuật Contrast Limited Adaptive Histogram Equalization (CLAHE), một kỹ thuật giúp tăng cường độ tương phản hình ảnh bằng cách cân bằng biểu đồ trong các vùng cục bộ (tile) thay vì trên toàn bộ hình ảnh. CLAHE tạo ra hiệu ứng tăng cường 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 thấp ban đầu.
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. Được đặt theo mặc định trong khoảng (1, 4), nó xác định độ tương phản tối đa cho phép trong mỗi tile. Các giá trị cao hơn được sử dụng để có độ tương phản cao hơn nhưng cũng có thể gây nhiễu.
-
tile_grid_size: Định nghĩa kích thước của lưới các tile, thường là (số hàng, số cột). Giá trị mặc định là (8, 8), có nghĩa là hình ảnh được chia thành lưới 8x8. Kích thước tile nhỏ hơn cung cấp các điều chỉnh mang tí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 việc cân bằng toàn cục.
-
p: Xác suất áp dụng CLAHE. Ở đây, p=0.01 giới thiệu hiệu ứng tăng cường chỉ 1% thời gian, đảm bảo rằng các điều chỉnh độ tương phản được áp dụng một cách tiết kiệm để tạo ra sự biến đổi không thường xuyên trong các hình ảnh huấn luyện.
Hình ảnh dưới đây cho thấy một ví dụ về phép biến đổi CLAHE được áp dụng.
Link to this sectionSử dụng các biến đổi Albumentations tùy chỉnh#
Mặc dù tích hợp Albumentations mặc định cung cấp một bộ tăng cường vững chắc, bạn có thể muốn tùy chỉnh các 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 biến đổi Albumentations tùy chỉnh thông qua Python API bằng cách sử dụng tham số augmentations.
Link to this sectionCách định nghĩa các biến đổi tùy chỉnh#
Bạn có thể định nghĩa danh sách các 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 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 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,
)Link to this sectionNhững lưu ý quan trọng#
Khi sử dụng các biến đổi Albumentations tùy chỉnh, hãy ghi nhớ những điểm sau:
- Chỉ dành cho Python API: Các biến đổi tùy chỉnh chỉ có thể được truyền qua Python API, không thông qua CLI hoặc các tệp cấu hình YAML.
- Thay thế các mặc định: Các biến đổi tùy chỉnh của bạn sẽ thay thế hoàn toàn các biến đổi Albumentations mặc định. Các phép tăng cường YOLO khác vẫn hoạt động.
- Xử lý Bounding Box: Ultralytics tự động xử lý việc điều chỉnh bounding box cho hầu hết các biến đổi, nhưng các biến đổi không gian phức tạp có thể cần kiểm tra thêm.
- Hiệu năng: Một số biến đổi 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.
- Tính tương thích của tác vụ: Các biến đổi Albumentations tùy chỉnh hoạt động với các tác vụ detection và segmentation nhưng không hoạt động với classification (sử dụng một pipeline tăng cường khác).
Link to this sectionCác trường hợp sử dụng cho 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 đổi đàn hồi, biến dạng lưới và các mẫu nhiễu chuyên dụng
- Ảnh hàng không/vệ tinh: Áp dụng các 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 các điều kiện ánh sáng khó khăn
- Kiểm tra công nghiệp: Thêm các biến đổi kết cấu và các lỗi mô phỏng cho các ứng dụng kiểm soát chất lượng
Để có danh sách đầy đủ các biến đổi khả dụng và tham số của chúng, hãy truy cập tài liệu Albumentations.
Để có các ví dụ chi tiết hơn và các thực tiễn tốt nhất về việc sử dụng các biến đổi Albumentations tùy chỉnh với YOLO26, xem hướng dẫn tăng cường dữ liệu YOLO.
Link to this sectionTiếp tục tìm hiểu về Albumentations#
Nếu bạn muốn tìm hiểu thêm về Albumentations, hãy xem các tài nguyên sau để biết thêm hướng dẫn và ví dụ chuyên sâu:
-
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 kỹ 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ả kiểm chuẩn 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.
Link to this sectionNhững điểm chính cần ghi 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 ảnh. Chúng ta đã thảo luận về phạm vi biến đổi rộng, hiệu năng tối ưu 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 khác của Ultralytics YOLO26, 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 có giá trị ở đó.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionLà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 trơn tru 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 này. Dướ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 để cải thiện hiệu suất mô hình.
Link to this sectionNhữ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ì nhiều lý do:
- Hiệu năng: Đượ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à cấp độ trộn
- Tính tương thích: Hoạt động trơn tru với các framework phổ biến như PyTorch và TensorFlow
- Độ tin cậy: Bộ kiểm thử mở rộng ngăn chặn hiện tượng 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
Link to this sectionNhững loại tác vụ computer vision nào có thể hưởng lợi từ việc tăng cường bằng Albumentations?#
Albumentations cải thiện nhiều computer vision tasks bao gồm:
- Object Detection: Cải thiện khả năng chống chịu của mô hình đối với các biến đổi về ánh sáng, tỷ lệ và hướng
- Instance Segmentation: Tăng cường độ chính xác dự đoán mask thông qua các phép biến đổi đa dạng
- Classification: Tă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
- Pose Estimation: Giúp các mô hình thích ứng 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 này làm cho nó trở nên có giá trị đối với bất kỳ tác vụ thị giác nào yêu cầu hiệu suất mô hình mạnh mẽ.