YOLO Vision 2026:

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

Quá trình tiền xử lý dữ liệu biến các hình ảnh thô đã được gán nhãn thành các đầu vào sạch sẽ và nhất quán mà một 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 thành [0, 1], và thay đổi kích thước — chạy tự động bên trong pipeline huấn luyện, do đó 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ương 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 của dự ánthu thập cũng như gán nhãn dữ liệu của mình, đồng thời nó nằm ở giai đoạn đầu trong quy trình làm việc của dự án computer vision.

Tạ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.

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

Thay đổ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 thủ công. Đối số imgsz trong quá trình huấn luyện mô hình sẽ xử lý việc này: khi được đặt thành một giá trị như 640, YOLO sẽ điều chỉnh tỉ lệ từng hình ảnh sao cho 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àu xám mặc định, giá trị 114) để đạt được đầu vào vuông 640 × 640.

Chuẩ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ý việc chuẩn hóa một cách tự động như một phần của pipeline tiền xử lý: nó chuyển đổi hình ảnh sang RGB và tỉ lệ hóa các giá trị pixel về dải [0, 1] bằng cách chia cho 255 (chuẩn hóa min-max). YOLO không áp dụng việc chuẩn hóa theo giá trị trung bình/độ lệch chuẩn (z-score) kiểu ImageNet theo mặc định, do đó không cần bước chuẩn hóa thủ công nào.

Chia tập dữ liệu#

Việc chia dữ liệu thành các tập huấn luyện, validation và test cho phép bạn đánh giá mô hình trên dữ liệu chưa từng thấy và đo lường khả năng tổng quát hóa của nó. Một tỉ lệ chia phổ biến là 70% cho huấn luyện, 20% cho validation và 10% cho kiểm tra. 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.
Tránh rò rỉ dữ liệu (data leakage)

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

Tăng cường tập dữ liệu#

Tăng cường dữ liệu làm tăng kích thước của 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 đã được sửa đổi từ các hình ảnh hiện có. Nó giúp giảm thiểu tình trạng overfitting và cải thiện khả năng tổng quát hóa, mang lạ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.

Examples of data augmentation techniques including flips, rotations, scaling, and color adjustments applied to a sample image

Với YOLO26, việc tăng cường dữ liệu được điều khiển thông qua các đối số huấn luyện được 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 file YAML của tập dữ liệu, vốn định nghĩa siêu dữ liệu của tập dữ liệu như đường dẫn, tên lớp và các tập chia. Các phương 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 duy nhất.
  • Lật ảnh (Flips) (fliplr, flipud): Phản chiếu hình ảnh theo chiều ngang hoặc chiều dọc.
  • Biến đổi hình học (Geometric transforms) (degrees, translate, scale, shear, perspective): Xoay, dịch chuyển, thu phóng và biến dạng hình ảnh.
  • Chỉnh màu HSV (HSV color jitter) (hsv_h, hsv_s, hsv_v): Thay đổi sắc độ (hue), độ bão hòa (saturation) và độ sáng (brightness).
  • Sao chép-dán (Copy-paste) (copy_paste): Dán các đối tượng giữa các hình ảnh phục vụ cho bài toán phân đoạn (segmentation).
Thiết lập cường độ tăng cường khi huấn luyện
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)

Để xem danh sách đầy đủ các đối số tăng cường và giá trị mặc định của chúng, hãy tham khảo tài liệu cài đặt tăng cường dữ liệuhướ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ương pháp tăng cường dựa trên Albumentations được tích hợp sẵn.

Nghiê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 xe cộ 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 bounding boxes và các nhãn. Dưới đây là diện mạo của từng quyết định tiền xử lý:

  • Thay đổi kích thước (Resizing): Không cần thao tác thủ công — YOLO26 sẽ thay đổi kích thước thành imgsz trong quá trình huấn luyện.
  • Chuẩn hóa (Normalization): Không cần thao tác thủ công — YOLO26 tự động tỉ lệ hóa 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 (Augmentation): Đặt các đối số huấn luyện phù hợp với cảnh giao thông — ví dụ fliplr cho tính bất biến về hướng, hsv_v cho ánh sáng ban ngày/ban đêm và mosaic cho 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).

Phâ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.

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

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

Nền tảng Ultralytics cho EDA#

Đối với phương pháp tiếp cận EDA không cần viết mã (no-code), hãy tải lên tập dữ liệu của bạn lên Ultralytics Platform. Tab Charts của tập dữ liệu sẽ tự động tạo ra các biểu đồ EDA quan trọng: phân phối tập chia, số lượng lớp hàng đầu, biểu đồ tần suất chiều rộng/chiều cao hình ảnh, và biểu đồ nhiệt 2D về vị trí gán nhãn cũng như kích thước hình ảnh. Tab Images cho phép bạn duyệt qua dữ liệu của mình ở chế độ dạng lưới, gọn nhẹ hoặc dạng bảng với các lớp phủ gán nhãn, giúp dễ dàng phát hiện các mẫu bị gán nhãn sai hoặc mất cân bằng lớp mà không cần viết bất kỳ dòng mã nào.

Kết luận#

Dữ liệu được chia, chuẩn hóa và tăng cường đúng cách sẽ làm 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. Khi dữ liệu của bạn đã đượ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 phát sinh 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.

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

  • Quá trình tiền xử lý đảm bảo dữ liệu của bạn sạch sẽ, 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 tình trạng nhiễu, 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 dữ liệu và chia tập dữ liệu sẽ làm 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 computer vision để biết cách nó phù hợp với quy trình làm việc rộng lớn hơn.

  • Cấu hình tăng cường thông qua các đối số huấn luyện, chứ không phải file YAML của tập dữ liệu. Truyền các đối số như fliplr, mosaic, hsv_hdegrees vào model.train() (hoặc các cờ CLI tương đương) để thiết lập xác suất và độ mạnh của từng phép biến đổi. Chúng được định nghĩa trong cài đặt tăng cường dữ liệu và được giải thích trong hướng dẫn tăng cường dữ liệu YOLO.

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

  • Thông lệ phổ biến là 70% cho huấn luyện, 20% cho validation và 10% cho kiểm tra. Duy trì phân phối lớp trên cả ba tập chia, và tránh rò rỉ dữ liệu (data leakage) bằng cách chỉ áp dụng tăng cường dữ liệu cho tập huấn luyện sau khi đã chia tập. Các công cụ như scikit-learn hoặc TensorFlow xử lý việc chia tách này 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ị dữ liệu đầu nguồn.

  • Có. Đối số imgsz thay đổi kích thước hình ảnh trong quá trình huấn luyện và suy luận sao cho 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 phải tự thay đổi kích thước hình ảnh — hãy xem tài liệu huấn luyện mô hình để biết thêm chi tiết.

Những người đóng góp

Bình luận