Chuyển đến nội dung

Nâng cao Bộ dữ liệu của bạn để Huấn luyện YOLO11 bằ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 có thể đóng một vai trò lớn đến hiệu suất của mô hình. Albumentations cung cấp một cách nhanh chóng, linh hoạt và hiệu quả để áp dụng một loạt các phép biến đổi hình ảnh có thể 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ế. Nó dễ dàng tích hợp với Ultralytics YOLO11 và có thể giúp bạn tạo ra các bộ dữ liệu mạnh mẽ cho các tác vụ phát hiện đối tượng, phân đoạnphâ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 YOLO11 của mình 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ẽ xem Albumentations có thể cải thiện quy trình tăng cường dữ liệu của bạn như thế nào và làm cho các dự án YOLO11 của bạn thậm chí còn có tác động hơn. Hãy bắt đầu nào!

Albumentations để Tăng cường Ả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à tăng tốc quá trình tăng cường hình ảnh trong thị giác máy tính. Được tạo ra với hiệu suất và tính linh hoạt, 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 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 bộ 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ượngphân đoạn.

Bạn có thể sử dụng Albumentations để dễ dàng áp dụng các phương pháp tăng cường cho hình ảnh, mặt nạ phân đoạn, hộp giới hạncác điểm chính, đồng thời đảm bảo rằng tất cả các thành phần của bộ dữ liệu của bạn được chuyển đổi cùng nhau. Nó hoạt động liền mạch với các framework deep learning phổ biến như PyTorchTensorFlow, giúp nó có thể truy cập được cho nhiều loại dự án.

Ngoài ra, Albumentations là một lựa chọn tuyệt vời để tăng cường dữ liệu, cho 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 xử lý nhanh chóng và hiệu quả, giảm thời gian 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 mô hình của bạn 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 việc tăng cường ảnh phức tạp cho nhiều loại ứng dụng thị giác máy tính. Dưới đây là một số tính năng chính:

  • Nhiều phép biến đổi: Albumentations cung cấp hơn 70 phép biến đổi khác nhau, bao gồm các 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). 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ẽ.

Ví dụ về Tăng cường Hình ảnh

  • 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), xử lý đồng thời nhiều điểm dữ liệu để tăng tốc độ xử lý. Nó xử lý nhanh chóng các tập dữ liệu lớn, 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. Biến đổi cấp độ pixel chỉ ảnh hưởng đến ảnh đầu vào mà không làm thay đổi mặt nạ, hộp giới hạn hoặc điểm chính. Trong khi đó, cả ảnh và các thành phần của ảnh, như mặt nạ và hộp giới hạn, đều được biến đổi bằng biến đổi cấp độ không gian. Hơn nữa, biến đổi cấp độ trộn là một cách độc đáo để tăng cường dữ liệu khi chúng kết hợp nhiều ảnh thành một.

Tổng quan về Các Cấp độ Tăng cường Khác nhau

  • Kết quả điểm chuẩn: Khi nói đến điểm chuẩn, 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?

Đối với việc 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ụ 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 duy nhất, đơn giản để áp dụng nhiều loại phép tăng cường cho hình ảnh, mặt nạ, hộp giới hạn và các đ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 cho việc 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ể â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à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 tra 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 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 tích hợp.

Cách Sử Dụng Albumentations để Tăng Cường Dữ Liệu cho Huấn Luyện YOLO11

Bây giờ chúng ta đã đề cập đến 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 của bạn cho quá trình huấn luyện mô hình YOLO11. Nó rất dễ thiết lập 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 YOLO11, hãy bắt đầu bằng cách đả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ương 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 một bộ 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 phương pháp hay 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 YOLO11, 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 để biết các giải pháp và mẹo.

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 YOLO11. Khi bạn huấn luyện YOLO11, một tập hợp các phương pháp tăng cường dữ liệu sẽ tự động được áp dụng thông qua tích hợp với Albumentations, giúp bạn dễ dàng nâng cao hiệu suất mô hình.

Cách sử dụng

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

# Train the model with default augmentations
results = model.train(data="coco8.yaml", epochs=100, imgsz=640)
import albumentations as A

from ultralytics import YOLO

# Load a pre-trained model
model = YOLO("yolo11n.pt")

# Define custom Albumentations transforms
custom_transforms = [
    A.Blur(blur_limit=7, p=0.5),
    A.GaussNoise(var_limit=(10.0, 50.0), p=0.3),
    A.CLAHE(clip_limit=4.0, p=0.5),
    A.RandomBrightnessContrast(brightness_limit=0.2, contrast_limit=0.2, p=0.5),
]

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

Tiếp theo, chúng ta hãy xem xét kỹ hơn các phần tăng cường cụ thể được áp dụng trong quá trình đào tạo.

Làm mờ

Phép biến đổi Blur trong Albumentations áp dụng một hiệu ứng làm mờ đơn giản cho hình ảnh bằng cách tính trung bình các giá trị pixel trong một vùng hình vuông nhỏ, hoặc kernel. Điều này được thực hiện bằng OpenCV cv2.blur function, giúp giảm nhiễu trong ảnh, mặc dù nó cũng làm giảm nhẹ các 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: Điều 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 độ mờ có thể thay đổi từ 3 đến 7 pixel, chỉ các số lẻ được phép để giữ cho độ mờ được căn giữa.

  • p: Xác suất áp dụng độ mờ. Trong tích hợp, p=0.01, vì vậy có 1% cơ hội độ mờ này sẽ được áp dụng cho mỗi ảnh. Xác suất thấp cho phép các hiệu ứng mờ thỉnh thoảng, giới thiệu một chút biến thể để giúp mô hình tổng quát hóa mà không làm mờ ảnh quá mức.

Một Ví dụ về Tăng cường Làm mờ

Làm mờ trung vị

Phép biến đổi MedianBlur trong Albumentations áp dụng hiệu ứng làm mờ trung vị cho ảnh, đặc biệt hữu ích để giảm nhiễu trong khi vẫn giữ được các cạnh. Không giống như các phương pháp làm mờ điển hình, MedianBlur sử dụng bộ lọc trung vị, đặc biệt hiệu quả trong việc loại bỏ nhiễu hạt 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 kernel làm mờ. Trong tích hợp này, nó mặc định là một phạm vi (3, 7), có nghĩa là kích thước kernel cho độ mờ được chọn ngẫu nhiên giữa 3 và 7 pixel, chỉ các giá trị lẻ được phép để đảm bảo căn chỉnh thích hợp.

  • p: Đặt xác suất áp dụng độ 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 độ mờ trung vị được sử dụng một cách 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 ảnh có độ nhiễu giảm và các cạnh được bảo toàn.

Hình ảnh bên dưới 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.

Một Ví dụ về Tăng cường MedianBlur

Thang độ xám

Phép biến đổi ToGray trong Albumentations chuyển đổi một hình ảnh thành thang độ xám, giảm nó thành định dạng một kênh và tùy chọn sao chép kênh này để khớp với một 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ừ tính trung bình đơn giản đến các kỹ thuật tiên tiến hơn để nhận biết thực tế 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: Đặt số lượng kênh trong ả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 một ảnh thang độ xám đa kênh. Theo mặc định, nó được đặt thành 3, tạo ra một ảnh thang độ xám với ba kênh giống hệt nhau.

  • method: Xác định phương pháp chuyển đổi thang độ xám. Phương pháp mặc định, "weighted_average", áp dụng một công thức (0.299R + 0.587G + 0.114B) phù hợp chặt chẽ với nhận thức của con người, cung cấp 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 ảnh thành thang độ xám, giúp có thể có một hỗn hợp các ảnh màu và thang độ xám để giúp mô hình tổng quát hóa tốt hơn.

Hình ảnh bên dưới cho thấy một ví dụ về phép biến đổi thang độ xám này được áp dụng.

Một Ví dụ về Tăng cường ToGray

Cân bằng biểu đồ (Contrast Limited Adaptive Histogram Equalization - CLAHE)

Phép biến đổi CLAHE trong Albumentations áp dụng Cân bằng hóa biểu đồ 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 của hình ảnh bằng cách cân bằng hóa 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 tăng cường cân bằng, tránh độ tương phản được khuếch đại quá mức có thể là kết quả của việc cân bằng hóa 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 tăng cường độ tương phản. Được đặt ở phạm vi mặc định là (1, 4), nó xác định độ tương phản tối đa được phép trong mỗi ô. Giá trị càng cao được sử dụng cho độ tương phản lớn hơn nhưng cũng có thể gây ra nhiễu.

  • tile_grid_size: Xác định kích thước của lưới ô, 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ỉ giới thiệu hiệu ứng tăng cường 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 để thay đổi ngẫu nhiên trong hình ảnh huấn luyện.

Hình ảnh bên dưới hiển thị một ví dụ về phép biến đổi CLAHE đã được áp dụng.

Ví dụ về Tăng cường CLAHE

Sử dụng 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 chuyển đổi cho trường hợp sử dụng cụ thể của mình. Với Ultralytics YOLO11 , bạn có thể dễ dàng chuyển đổi Albumentations tùy chỉnh thông qua Python API sử dụng augmentations tham số.

Cách xác định chuyển đổi tùy chỉnh

Bạn có thể tự định nghĩa danh sách các phép biến đổi Albumentations và truyền chúng cho 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 biến đổi khác. YOLO sự gia tăng (như hsv_h, degrees, mosaic, v.v.) đang hoạt động.

Sau đâ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("yolo11n.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,
)

Những 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ỉ API Python : Các chuyể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ế mặc định : Các chuyển đổi tùy chỉnh của bạn sẽ thay thế hoàn toàn các chuyển đổi Albumentations mặc định. Khác YOLO sự tăng cường vẫn còn hoạt động.
  • Xử lý hộp giới hạn : Ultralytics tự động xử lý các điều chỉnh hộp giới hạn 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ể cần phải thử nghiệm bổ sung.
  • Hiệu suất : Một số phép biến đổi tốn kém về mặt tính toán. Hãy theo dõi tốc độ đào tạo 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 quy trình tăng cường khác).

Các trường hợp sử dụng cho Chuyể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ụp ảnh y tế : Sử dụng biến dạng đàn hồi, biến dạng lưới và các mẫu nhiễu chuyên dụng
  • 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 ánh sáng yếu : Nhấn mạnh việc thêm nhiễu và điều chỉnh độ sáng để đào tạo các mô hình mạnh mẽ cho điều kiện ánh sáng khó khăn
  • Kiểm tra công nghiệp : Thêm các biến thể kết cấu và các khuyết tật mô phỏng cho các ứng dụng kiểm soát chất lượng

Để biết 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 tài liệu Albumentations .

Để biết 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 YOLO11 , hãy xem hướng dẫn Tăng cường dữ liệu YOLO .

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ụ chi tiết:

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ề nhiều phép biến đổ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 YOLO11 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 Ultralytics YOLO11 khác, 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ị ở đó.

Câu hỏi thường gặp

Làm cách nào tôi có thể tích hợp Albumentations với YOLO11 để cải thiện khả năng tăng cường dữ liệu?

Albumentations tích hợp liền mạch với YOLO11 và tự động áp dụng trong quá trình huấn luyện nếu bạn đã cài đặt gói. 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("yolo11n.pt")
model.train(data="coco8.yaml", epochs=100)

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 bình, chuyển đổi thang độ xám và CLAHE với các xác suất được điều 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:

  1. Hiệu suất: Được xây dựng trên OpenCV và NumPy với khả năng tối ưu hóa SIMD để có 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 mức pixel, mức không gian và mức trộn
  3. Khả năng tương thích: Hoạt động liền mạch với các framework phổ biến như PyTorchTensorFlow
  4. Độ tin cậy: Bộ kiểm tra mở rộng ngăn chặn 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

Những loại tác vụ thị giác máy tính nào có thể hưởng lợi từ việc tăng cường Albumentations?

Albumentations tăng cường các tác vụ thị giác máy tính khác nhau bao gồm:

  • Phát hiện đối tượng: Cải thiện độ mạnh mẽ của mô hình đối với các biến thể về ánh sáng, tỷ lệ và hướng
  • Phân đoạn thể hiện: 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 khả năng tổng quát hóa của mô hình với các phép tăng cường hình học và màu sắc
  • Ước tính tư thế: Giúp mô hình thích ứng với các điểm 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ó có giá trị cho bất kỳ tác vụ thị giác nào đòi hỏi hiệu suất mô hình mạnh mẽ.



📅 Được tạo cách đây 1 năm ✏️ Cập nhật cách đây 5 ngày
glenn-jocherRizwanMunawaronuralpszrabirami-vina

Bình luận