YOLO Vision 2026:

Cả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 có thể đóng vai trò lớn trong hiệu suất hoạt động của model. Albumentations cung cấp một cách nhanh chóng, linh hoạt và hiệu quả để áp dụng nhiều phép biến đổi ảnh nhằm cải thiện khả năng thích ứng của model với các kịch bản thực tế. Công cụ này tích hợp mượt mà với Ultralytics YOLO26 và giúp bạn tạo các tập dữ liệu mạnh mẽ cho các tác vụ object detection, segmentationclassification.

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ẽ tìm hiểu cách Albumentations cải thiện quá trình data augmentation và làm cho các YOLO26 projects của bạn trở nên hiệu quả hơn nữa. Hãy bắt đầu ngay!

Albumentations 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 June 2018. Thư viện này được thiết kế để đơn giản hóa và tăng tốc quá trình tăng cường ảnh trong computer vision. Được xây dựng với tiêu chí performance và tính linh hoạt, thư viện hỗ trợ nhiều kỹ thuật tăng cường khác nhau, từ các 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 detectionsegmentation.

Bạn có thể sử dụng Albumentations để dễ dàng áp dụng các phép tăng cường cho ảnh, segmentation masks, bounding boxeskey 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 cùng nhau. Thư viện này hoạt động liền mạch với các framework học sâu phổ biến như PyTorchTensorFlow, giúp người dùng dễ tiếp cận cho nhiều loại 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 dù bạn đang xử lý các tập dữ liệu nhỏ hay các computer vision tasks quy mô lớn. Thư việ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, công cụ này giúp cải thiện model performance, làm cho các model 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 ảnh phức tạp cho nhiều computer vision applications. Dưới đây là một số tính năng chính:

  • Wide Range of Transformations: Albumentations cung cấp hơn 70 different transformations, 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 Gauss). Việc có nhiều tùy chọn giúp tạo ra các tập dữ liệu huấn luyện có tính đa dạng cao và cực kỳ mạnh mẽ.

Albumentations augmentation examples

  • 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.

Overview of the Different Levels of Augmentations

  • Benchmarking Results: Khi nói đến việc đánh giá hiệu năng, Albumentations luôn vượt trội hơn 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 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:

  • Easy-to-Use API: Albumentations cung cấp một API duy nhất, đơn giản để áp dụng nhiều phép tăng cường cho ảnh, mask, bounding box và keypoint. API được thiết kế để dễ dàng thích ứng với các tập dữ liệu khác nhau, giúp quá 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.

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 đã tìm hiểu Albumentations là gì và nó có thể làm 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 model YOLO26. Quá trình 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à 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 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.

Cài đặt
# Install the required packages
pip install albumentations ultralytics

Để biết hướng dẫn chi tiết và các thực tiễn tốt nhất liên quan đến quá 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 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 của chúng tôi để tìm giải pháp và mẹo.

Các ví dụ về transform tùy chỉnh trên trang này yêu cầu Albumentations phiên bản 1.4.22 trở lên, và do đó cần Python 3.9 trở lên.

Cá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.

Cách sử 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.

Làm mờ (Blur)#

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 tính giá trị trung bình của các điểm ảnh trong một vùng hình vuông nhỏ, hoặc kernel. Quá trình này được thực hiện bằng cách sử dụ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 của ả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.

Albumentations Blur augmentation result

Median 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.

Albumentations MedianBlur augmentation

Grayscale#

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.

Albumentations grayscale conversion

Contrast 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.

Albumentations CLAHE contrast enhancement

Sử 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 tập hợp các augmentation vững chắc, 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 sử dụng tham số augmentations. Các ví dụ trong phần này yêu cầu Albumentations 1.4.22 trở lên.

Cá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 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. Thao tác này sẽ thay thế các phép biến đổi Albumentations mặc định trong khi vẫn giữ nguyên tất cả các phép tăng cường YOLO khác (như hsv_h, degrees, mosaic, v.v.).

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(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,
    ),
    # 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(num_holes_range=(1, 8), hole_height_range=(8, 32), hole_width_range=(8, 32), fill=0, p=0.2),
]

# Train with custom transforms
results = model.train(
    data="coco8.yaml",
    epochs=100,
    imgsz=640,
    augmentations=custom_transforms,
)

Nhữ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).

Cá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 phép biến đổi có sẵn và các tham số của chúng, hãy truy cập Albumentations documentation.

Để xem thêm các ví dụ chi tiết và các phương pháp hay 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 YOLO Data Augmentation guide.

Tiế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:

  • Albumentations Documentation: 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.

  • Ultralytics Albumentations Guide: 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.

  • Albumentations GitHub Repository: 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 các phép tăng cường.

Nhữ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 tìm hiểu thêm về các tích hợp khác của Ultralytics YOLO26, hãy truy cập integration guide page. 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#

  • 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.

  • Albumentations nổi bật vì nhiều lý do:

    1. 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
    2. 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
    3. Khả năng tương thích: Hoạt động mượt mà với các framework phổ biến như PyTorchTensorFlow
    4. Độ 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
    5. Dễ sử dụng: API thống nhất duy nhất cho tất cả các loại tăng cường
  • Albumentations cải thiện các computer vision tasks khác nhau bao gồm:

    • Object Detection: Nâng cao độ vững chắc của model đối với các biến động về ánh sáng, tỷ lệ và hướng
    • Instance Segmentation: Cải thiện độ chính xác khi dự đoán mask thông qua các phép biến đổi đa dạng
    • Classification: Tăng cường khả năng tổng quát hóa của model với các phép tăng cường màu sắc và hình học
    • Pose Estimation: Giúp model 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ẽ.

Bình luận