Link to this sectionCác kỹ thuật tiền xử lý dữ liệu cho dữ liệu thị giác máy tính đã gán nhãn#
Tiền xử lý dữ liệu giúp chuyển đổi các hình ảnh thô, đã gán nhãn thành dữ liệu đầu vào sạch và nhất quán mà mô hình computer vision cần để huấn luyện hiệu quả. Với Ultralytics YOLO26, các thao tác pixel cốt lõi — chuyển đổi RGB, tỷ lệ hóa về [0, 1] và thay đổi kích thước — được thực hiện tự động bên trong pipeline huấn luyện, vì vậy công việc còn lại của bạn là chia tập dữ liệu chính xác, cân bằng các lớp và chọn các phép tăng cường dữ liệu. Hướng dẫn này bao gồm các kỹ thuật thiết yếu đó: thay đổi kích thước, chuẩn hóa, chia tập dữ liệu, tăng cường dữ liệu và phân tích dữ liệu khám phá (EDA).
Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀
Bước này diễn ra sau khi bạn đã xác định mục tiêu dự án và thu thập cũng như gán nhãn dữ liệu, và nó nằm ở giai đoạn đầu trong quy trình làm việc của dự án thị giác máy tính.
Link to this sectionTại sao tiền xử lý lại quan trọng#
Tiền xử lý giúp đưa dữ liệu của bạn vào định dạng giúp giảm tải tính toán và cải thiện hiệu suất mô hình. Nó giải quyết ba vấn đề phổ biến trong dữ liệu thô:
- Nhiễu: Các biến thể không liên quan hoặc ngẫu nhiên trong dữ liệu.
- Thiếu nhất quán: Các biến thể về kích thước, định dạng và chất lượng ảnh.
- Mất cân bằng: Sự phân bổ không đều các lớp hoặc danh mục trong toàn bộ tập dữ liệu.
Link to this sectionCác kỹ thuật tiền xử lý#
Các kỹ thuật chính bao gồm thay đổi kích thước, chuẩn hóa, chia tập dữ liệu và tăng cường dữ liệu. Với YOLO26, hai kỹ thuật đầu tiên là tự động, trong khi việc chia tập dữ liệu và tăng cường là nơi các lựa chọn của bạn đóng vai trò quan trọng nhất.
Link to this sectionThay đổi kích thước ảnh#
Nhiều mô hình yêu cầu kích thước đầu vào nhất quán, vì vậy việc thay đổi kích thước giúp hình ảnh đồng nhất và giảm độ phức tạp tính toán. Hai phương pháp nội suy phổ biến là:
- Nội suy song tuyến (Bilinear Interpolation): Làm mịn các giá trị pixel bằng cách lấy trung bình có trọng số của bốn pixel gần nhất.
- Láng giềng gần nhất (Nearest Neighbor): Sao chép giá trị pixel gần nhất mà không cần tính trung bình — nhanh hơn, nhưng tạo ra hình ảnh bị khối hơn.
Các thư viện như OpenCV và PIL (Pillow) cung cấp các hàm này, nhưng với YOLO26, bạn thường không cần thay đổi kích thước theo cách thủ công. Tham số imgsz trong quá trình huấn luyện mô hình sẽ xử lý việc đó: khi được đặt thành một giá trị như 640, YOLO sẽ chia tỷ lệ mỗi hình ảnh để kích thước lớn nhất của nó là 640 pixel trong khi vẫn giữ nguyên tỷ lệ khung hình, sau đó đệm cạnh ngắn hơn (mặc định là màu xám, giá trị 114) để đạt được đầu vào hình vuông 640 × 640.
Link to this sectionChuẩn hóa giá trị pixel#
Chuẩn hóa giúp đưa các giá trị pixel về một phạm vi tiêu chuẩn, điều này giúp mô hình hội tụ nhanh hơn trong quá trình huấn luyện. Hai kỹ thuật phổ biến là:
- Min-Max Scaling: Đưa giá trị pixel về phạm vi từ 0 đến 1.
- Z-Score Normalization: Chuẩn hóa giá trị pixel dựa trên giá trị trung bình và độ lệch chuẩn của chúng.
YOLO26 xử lý chuẩn hóa tự động như một phần của pipeline tiền xử lý: nó chuyển đổi hình ảnh sang RGB và chia tỷ lệ các giá trị pixel về phạm vi [0, 1] bằng cách chia cho 255 (min-max scaling). YOLO không áp dụng chuẩn hóa theo kiểu ImageNet (z-score) theo mặc định, vì vậy không cần bước chuẩn hóa thủ công.
Link to this sectionChia tập dữ liệu#
Chia dữ liệu thành các tập huấn luyện, xác thực và kiểm thử giúp bạn đánh giá mô hình trên dữ liệu chưa biết và đo lường khả năng tổng quát hóa. Một cách chia phổ biến là 70% để huấn luyện, 20% để xác thực và 10% để kiểm thử. Các công cụ như scikit-learn hoặc TensorFlow giúp việc này trở nên đơn giản.
Hãy ghi nhớ những điểm sau khi chia dữ liệu:
- Duy trì phân bổ lớp: Đảm bảo mỗi lớp được đại diện theo tỷ lệ trong các tập huấn luyện, xác thực và kiểm thử.
- Cân bằng các lớp: Đối với các tập dữ liệu bị mất cân bằng, hãy xem xét việc lấy mẫu quá mức (oversampling) lớp thiểu số hoặc lấy mẫu thiếu (under-sampling) lớp đa số — chỉ thực hiện trong tập huấn luyện.
Hãy chia tập dữ liệu trước khi áp dụng bất kỳ phép tăng cường hoặc tiền xử lý nào khác, và chỉ áp dụng các phép biến đổi đó cho tập huấn luyện. Việc tăng cường trước khi chia dữ liệu sẽ khiến thông tin từ tập xác thực hoặc tập kiểm thử ảnh hưởng đến việc huấn luyện, tạo ra các điểm số cao một cách sai lệch nhưng lại suy giảm hiệu suất trên dữ liệu thực tế.
Link to this sectionTăng cường tập dữ liệu#
Tăng cường dữ liệu làm tăng kích thước tập dữ liệu một cách nhân tạo bằng cách tạo ra các phiên bản sửa đổi của hình ảnh hiện có. Nó giúp giảm hiện tượng quá khớp (overfitting) và cải thiện khả năng tổng quát hóa với một số lợi ích:
- Mô hình mạnh mẽ hơn: Các biến thể về ánh sáng, hướng và tỷ lệ giúp mô hình có khả năng chống lại các biến dạng trong thế giới thực.
- Tiết kiệm chi phí: Bạn mở rộng tập huấn luyện mà không cần phải thu thập và gán nhãn dữ liệu mới.
- Sử dụng dữ liệu hiệu quả hơn: Mỗi hình ảnh đã gán nhãn tạo ra nhiều biến thể huấn luyện khác nhau.
Với YOLO26, việc tăng cường dữ liệu được kiểm soát thông qua các đối số huấn luyện truyền vào model.train() hoặc các cờ CLI tương đương — không phải bằng cách chỉnh sửa YAML của tập dữ liệu, nơi định nghĩa metadata của tập dữ liệu như đường dẫn, tên lớp và các phần chia. Các phép tăng cường tích hợp bao gồm:
- Mosaic, MixUp, và CutMix (
mosaic,mixup,cutmix): Kết hợp nhiều hình ảnh thành một mẫu huấn luyện. - Lật (
fliplr,flipud): Phản chiếu hình ảnh theo chiều ngang hoặc chiều dọc. - Các phép biến đổi hình học (
degrees,translate,scale,shear,perspective): Xoay, dịch chuyển, thu phóng và bóp méo hình ảnh. - Thay đổi màu sắc HSV (
hsv_h,hsv_s,hsv_v): Thay đổi màu sắc (hue), độ bão hòa (saturation) và độ sáng (brightness). - Sao chép-dán (
copy_paste): Dán các đối tượng giữa các hình ảnh để thực hiện phân đoạn (segmentation).
from ultralytics import YOLO
model = YOLO("yolo26n.pt")
# Augmentation is configured with training arguments, not the dataset YAML
model.train(data="coco8.yaml", epochs=10, hsv_h=0.015, fliplr=0.5, mosaic=1.0, degrees=10.0)Để có danh sách đầy đủ các đối số tăng cường và giá trị mặc định của chúng, hãy xem tài liệu tham khảo cài đặt tăng cường và hướng dẫn tăng cường dữ liệu YOLO chuyên biệt. Nếu gói albumentations được cài đặt, YOLO cũng sẽ tự động kích hoạt các phép tăng cường dựa trên Albumentations được tích hợp sẵn.
Link to this sectionNghiên cứu điển hình: Tiền xử lý cho việc phát hiện phương tiện#
Hãy xem xét một dự án phát hiện và phân loại phương tiện trong hình ảnh giao thông với YOLO26, bắt đầu từ các hình ảnh được gán nhãn bằng hộp bao (bounding boxes) và nhãn. Dưới đây là cách thực hiện từng quyết định tiền xử lý:
- Thay đổi kích thước: Không cần thao tác thủ công — YOLO26 tự thay đổi kích thước về
imgsztrong quá trình huấn luyện. - Chuẩn hóa: Không cần thao tác thủ công — YOLO26 tự động chia tỷ lệ các giá trị pixel về
[0, 1]. - Chia tập dữ liệu: Chia tập dữ liệu thành 70% huấn luyện, 20% xác thực và 10% kiểm thử, đảm bảo phân bổ lớp nhất quán giữa các phần chia.
- Tăng cường dữ liệu: Đặt các đối số huấn luyện phù hợp với cảnh quan giao thông — ví dụ:
fliplrcho sự bất biến về hướng,hsv_vcho ánh sáng ngày/đêm vàmosaiccho mật độ đối tượng đa dạng.
Sau khi thực hiện các quyết định này, tập dữ liệu đã sẵn sàng cho Phân tích dữ liệu khám phá (EDA).
Link to this sectionPhân tích dữ liệu khám phá (EDA)#
EDA sử dụng thống kê và trực quan hóa để tiết lộ các mẫu và sự phân bổ trong dữ liệu của bạn, giúp bạn phát hiện các vấn đề như mất cân bằng lớp hoặc các giá trị ngoại lai (outliers) trước khi huấn luyện.
Link to this sectionCác kỹ thuật EDA thống kê#
EDA thống kê bắt đầu với các số liệu cơ bản — trung bình, trung vị, độ lệch chuẩn và phạm vi — được tính toán trên các thuộc tính như phân bổ cường độ pixel. Những thông tin này cung cấp cái nhìn tổng quan nhanh về chất lượng tập dữ liệu và làm nổi bật các điểm bất thường sớm.
Link to this sectionCác kỹ thuật EDA trực quan#
Trực quan hóa tiết lộ các mẫu mà thống kê tóm tắt bỏ lỡ, chẳng hạn như sự mất cân bằng lớp và các giá trị ngoại lai. Các công cụ phổ biến bao gồm:
- Biểu đồ Histogram và Box plot: Hiển thị sự phân bổ các giá trị pixel và đánh dấu các giá trị ngoại lai trong phân bổ cường độ hoặc tính năng.
- Biểu đồ cột (Bar charts): Tiết lộ sự mất cân bằng lớp bằng cách so sánh số lượng ví dụ mỗi lớp có.
- Biểu đồ phân tán (Scatter plots): Khám phá mối quan hệ giữa các tính năng hình ảnh hoặc các gán nhãn.
- Biểu đồ nhiệt (Heatmaps): Trực quan hóa phân bổ cường độ pixel hoặc phân bổ không gian của các gán nhãn trên khắp hình ảnh.
Link to this sectionNền tảng Ultralytics cho EDA#
Để tiếp cận EDA không cần lập trình, hãy tải tập dữ liệu của bạn lên Nền tảng Ultralytics. Tab Charts của tập dữ liệu tự động tạo ra các trực quan hóa EDA chính: phân bổ tập dữ liệu, số lượng lớp hàng đầu, biểu đồ chiều rộng/chiều cao hình ảnh và biểu đồ nhiệt 2D về vị trí gán nhãn và kích thước hình ảnh. Tab Images cho phép bạn duyệt qua dữ liệu của mình dưới dạng lưới, chế độ xem rút gọn hoặc bảng với các lớp phủ gán nhãn, giúp dễ dàng phát hiện các ví dụ gán nhãn sai hoặc các lớp không cân bằng mà không cần viết mã.
Link to this sectionKết luận#
Dữ liệu được chia, chuẩn hóa và tăng cường đúng cách sẽ giảm nhiễu và cải thiện khả năng tổng quát hóa, biến một tập hợp hình ảnh thô thành một tập huấn luyện đáng tin cậy. Với tập dữ liệu đã được tiền xử lý, bước tiếp theo là huấn luyện mô hình của bạn. Nếu có thắc mắc trong quá trình thực hiện, hãy hỏi cộng đồng trên kho lưu trữ GitHub của Ultralytics hoặc máy chủ Discord của Ultralytics.
Link to this sectionCâu hỏi thường gặp#
Link to this sectionTại sao tiền xử lý dữ liệu lại quan trọng trong các dự án thị giác máy tính?#
Tiền xử lý đảm bảo dữ liệu của bạn sạch, nhất quán và ở định dạng được tối ưu hóa cho việc huấn luyện. Bằng cách giải quyết nhiễu, sự thiếu nhất quán và mất cân bằng lớp trong dữ liệu thô, các bước như thay đổi kích thước, chuẩn hóa, tăng cường và chia tập dữ liệu giúp giảm tải tính toán và cải thiện hiệu suất mô hình. Xem các bước của một dự án thị giác máy tính để biết cách nó phù hợp với quy trình làm việc rộng hơn.
Link to this sectionLàm thế nào để sử dụng Ultralytics YOLO để tăng cường dữ liệu?#
Cấu hình tăng cường dữ liệu thông qua các đối số huấn luyện, không phải thông qua YAML của tập dữ liệu. Truyền các đối số như fliplr, mosaic, hsv_h và degrees vào model.train() (hoặc các cờ CLI tương đương) để thiết lập xác suất và cường độ của mỗi phép biến đổi. Chúng được định nghĩa trong cài đặt tăng cường và được giải thích trong hướng dẫn tăng cường dữ liệu YOLO.
Link to this sectionCác kỹ thuật chuẩn hóa tốt nhất cho dữ liệu thị giác máy tính là gì?#
Hai kỹ thuật phổ biến nhất là min-max scaling (thay đổi tỷ lệ pixel về phạm vi từ 0 đến 1) và z-score normalization (thay đổi tỷ lệ dựa trên giá trị trung bình và độ lệch chuẩn). YOLO26 áp dụng min-max scaling tự động — chuyển đổi hình ảnh sang RGB và chia giá trị pixel cho 255 — vì vậy bạn không cần bước chuẩn hóa thủ công. Nó không áp dụng z-score normalization theo mặc định.
Link to this sectionTôi nên chia tập dữ liệu đã gán nhãn của mình để huấn luyện như thế nào?#
Một thông lệ phổ biến là chia 70% cho huấn luyện, 20% cho xác thực và 10% cho kiểm thử. Duy trì phân bổ lớp trên cả ba phần chia và tránh rò rỉ dữ liệu bằng cách chỉ áp dụng tăng cường cho tập huấn luyện sau khi chia. Các công cụ như scikit-learn hoặc TensorFlow xử lý việc chia tách một cách hiệu quả. Xem hướng dẫn thu thập và gán nhãn dữ liệu để chuẩn bị tập dữ liệu thượng nguồn.
Link to this sectionYOLO26 có thể xử lý các kích thước hình ảnh khác nhau mà không cần thay đổi kích thước thủ công không?#
Có. Đối số imgsz sẽ thay đổi kích thước hình ảnh trong quá trình huấn luyện và dự đoán để kích thước lớn nhất của chúng khớp với kích thước đã chỉ định (ví dụ: 640 pixel) trong khi vẫn giữ nguyên tỷ lệ khung hình, sau đó đệm cạnh ngắn hơn. Bạn không cần tự thay đổi kích thước hình ảnh — xem tài liệu huấn luyện mô hình để biết chi tiết.