Meet YOLO26: next-gen vision AI.

Link to this sectionCác kỹ thuật tiền xử lý dữ liệu cho dữ liệu Computer Vision đã được gán nhãn#

Link to this sectionGiới thiệu#

After you've defined your computer vision project's goals and collected and annotated data, the next step is to preprocess annotated data and prepare it for model training. Clean and consistent data are vital to creating a model that performs well.



Watch: How to Use Data Preprocessing and Augmentation to Improve Model Accuracy in Real-World Scenarios 🚀

Preprocessing is a step in the computer vision project workflow that includes resizing images, normalizing pixel values, augmenting the dataset, and splitting the data into training, validation, and test sets. Let's explore the essential techniques and best practices for cleaning your data!

Link to this sectionTầm quan trọng của tiền xử lý dữ liệu#

Chúng ta đã và đang thu thập và gán nhãn dữ liệu một cách cẩn thận với nhiều cân nhắc. Vậy điều gì làm cho tiền xử lý dữ liệu trở nên quan trọng đối với một dự án computer vision? Thực tế, tiền xử lý dữ liệu giúp đưa dữ liệu của bạn vào định dạng phù hợp cho việc huấn luyện, từ đó giảm tải tính toán và cải thiện hiệu suất của model. Dưới đây là một số vấn đề phổ biến trong dữ liệu thô mà tiền xử lý có thể giải quyết:

  • Nhiễu: Các biến thể ngẫu nhiên hoặc không liên quan 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 đồng đều của các lớp hoặc danh mục trong tập dữ liệu.

Link to this sectionCác kỹ thuật tiền xử lý dữ liệu#

Một trong những bước đầu tiên và quan trọng nhất trong tiền xử lý dữ liệu là thay đổi kích thước (resizing). Một số model được thiết kế để xử lý các kích thước đầu vào biến đổi, nhưng nhiều model yêu cầu kích thước đầu vào nhất quán. Thay đổi kích thước ảnh giúp chúng đồng nhất và giảm độ phức tạp tính toán.

Link to this sectionThay đổi kích thước ảnh#

Bạn có thể thay đổi kích thước ảnh bằng các phương pháp sau:

  • Bilinear Interpolation: Làm mịn giá trị pixel bằng cách lấy trung bình có trọng số của bốn giá trị pixel gần nhất.
  • Nearest Neighbor: Gán giá trị pixel gần nhất mà không cần tính trung bình, dẫn đến ảnh bị vỡ khối nhưng tốc độ tính toán nhanh hơn.

Để thực hiện việc thay đổi kích thước dễ dàng hơn, bạn có thể sử dụng các công cụ sau:

  • OpenCV: Một thư viện computer vision phổ biến với các chức năng phong phú cho xử lý ảnh.
  • PIL (Pillow): Một Python Imaging Library để mở, thao tác và lưu các tệp ảnh.

With respect to YOLO26, the 'imgsz' parameter during model training allows for flexible input sizes. When set to a specific size, such as 640, the model will resize input images so their largest dimension is 640 pixels while maintaining the original aspect ratio.

Bằng cách đánh giá nhu cầu cụ thể của model và tập dữ liệu, bạn có thể xác định xem việc thay đổi kích thước có phải là bước tiền xử lý cần thiết hay liệu model của bạn có thể xử lý hiệu quả các ảnh với kích thước khác nhau hay không.

Link to this sectionChuẩn hóa giá trị pixel#

Một kỹ thuật tiền xử lý khác là chuẩn hóa (normalization). Chuẩn hóa đưa giá trị pixel về một phạm vi tiêu chuẩn, giúp hội tụ nhanh hơn trong quá trình huấn luyện và cải thiện hiệu suất model. Dưới đây là một số kỹ thuật chuẩn hóa phổ biến:

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

Đối với YOLO26, việc chuẩn hóa được xử lý liền mạch như một phần của quy trình tiền xử lý trong khi huấn luyện model. YOLO26 tự động thực hiện một số bước tiền xử lý, bao gồm chuyển đổi sang RGB, thay đổi tỷ lệ giá trị pixel về phạm vi [0, 1] và chuẩn hóa bằng các giá trị trung bình và độ lệch chuẩn định sẵn.

Link to this sectionChia tập dữ liệu#

Sau khi làm sạch dữ liệu, bạn đã sẵn sàng chia tập dữ liệu. Việc chia dữ liệu thành tập huấn luyện, validation và kiểm thử được thực hiện để đảm bảo rằng model có thể được đánh giá trên dữ liệu chưa từng thấy, nhằm đánh giá khả năng tổng quát hóa. Tỷ lệ chia phổ biến là 70% cho huấn luyện, 20% cho validation và 10% cho kiểm thử. Có nhiều công cụ và thư viện mà bạn có thể sử dụng để chia dữ liệu như scikit-learn hoặc TensorFlow.

Cân nhắc các điều sau khi chia tập dữ liệu:

  • Duy trì phân bổ dữ liệu: Đảm bảo rằng sự phân bổ của các lớp dữ liệu được duy trì đồng nhất trên các tập huấn luyện, validation và kiểm thử.
  • Tránh rò rỉ dữ liệu (Data Leakage): Thông thường, tăng cường dữ liệu được thực hiện sau khi tập dữ liệu đã được chia. Việc tăng cường dữ liệu và các thao tác tiền xử lý khác chỉ nên áp dụng cho tập huấn luyện để tránh thông tin từ tập validation hoặc tập kiểm thử ảnh hưởng đến quá trình huấn luyện model.
  • Cân bằng các lớp: Đối với các tập dữ liệu mất cân bằng, hãy cân nhắc các kỹ thuật như lấy mẫu quá mức (oversampling) lớp thiểu số hoặc lấy mẫu dưới (undersampling) lớp đa số trong tập huấn luyện.

Link to this sectionTăng cường dữ liệu (Data Augmentation) là gì?#

Bước tiền xử lý dữ liệu thường được thảo luận nhất là tăng cường dữ liệu. Tăng cường dữ liệu làm tăng quy mô 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 ảnh. Bằng cách tăng cường dữ liệu, bạn có thể giảm thiểu hiện tượng overfitting và cải thiện khả năng tổng quát hóa của model.

Dưới đây là một số lợi ích khác của việc tăng cường dữ liệu:

  • Tạo tập dữ liệu mạnh mẽ hơn: Tăng cường dữ liệu có thể làm cho model trở nên mạnh mẽ hơn trước các biến thể và biến dạng trong dữ liệu đầu vào. Điều này bao gồm thay đổi về ánh sáng, hướng và quy mô.
  • Hiệu quả về chi phí: Tăng cường dữ liệu là cách tiết kiệm chi phí để tăng lượng dữ liệu huấn luyện mà không cần 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 điểm dữ liệu hiện có đều được tận dụng tối đa tiềm năng bằng cách tạo ra các biến thể mới.

Link to this sectionCác phương pháp tăng cường dữ liệu#

Common augmentation techniques include flipping, rotation, scaling, and color adjustments. Several libraries, such as Albumentations, Imgaug, and TensorFlow's ImageDataGenerator, can generate these augmentations.

Overview of Data Augmentations

With respect to YOLO26, you can augment your custom dataset by modifying the dataset configuration file, a .yaml file. In this file, you can add an augmentation section with parameters that specify how you want to augment your data.

Kho lưu trữ Ultralytics YOLO26 hỗ trợ nhiều kỹ thuật tăng cường dữ liệu. Bạn có thể áp dụng các phép biến đổi như:

  • Cắt ngẫu nhiên (Random Crops)
  • Lật: Ảnh có thể được lật theo chiều ngang hoặc chiều dọc.
  • Xoay: Ảnh có thể được xoay theo các góc cụ thể.
  • Biến dạng

Ngoài ra, bạn có thể điều chỉnh cường độ của các kỹ thuật tăng cường này thông qua các tham số cụ thể để tạo ra sự đa dạng dữ liệu hơn.

Link to this sectionNghiên cứu điển hình về tiền xử lý#

Hãy xem xét một dự án nhằm phát triển model phát hiện và phân loại các loại phương tiện khác nhau trong ảnh giao thông sử dụng YOLO26. Chúng ta đã thu thập các ảnh giao thông và gán nhãn chúng với khung bao (bounding boxes) và nhãn.

Dưới đây là hình ảnh của từng bước tiền xử lý cho dự án này:

  • Thay đổi kích thước ảnh: Vì YOLO26 xử lý kích thước đầu vào linh hoạt và tự động thay đổi kích thước, nên không cần thay đổi kích thước thủ công. Model sẽ điều chỉnh kích thước ảnh theo tham số 'imgsz' đã chỉ định trong quá trình huấn luyện.
  • Chuẩn hóa giá trị pixel: YOLO26 tự động chuẩn hóa giá trị pixel về phạm vi từ 0 đến 1 trong quá trình tiền xử lý, vì vậy không cần thiết phải thực hiện thủ công.
  • Chia tập dữ liệu: Chia tập dữ liệu thành các tập huấn luyện (70%), validation (20%) và kiểm thử (10%) bằng cách sử dụng các công cụ như scikit-learn.
  • Tăng cường dữ liệu: Sửa đổi tệp cấu hình tập dữ liệu (.yaml) để bao gồm các kỹ thuật tăng cường dữ liệu như cắt ngẫu nhiên, lật ngang và điều chỉnh độ sáng.

Các bước này đảm bảo tập dữ liệu đã được chuẩn bị mà không có vấn đề tiềm ẩn nào và sẵn sàng cho Phân tích Dữ liệu Khám phá (EDA).

Link to this sectionCác kỹ thuật Phân tích Dữ liệu Khám phá (EDA)#

Sau khi tiền xử lý và tăng cường tập dữ liệu, bước tiếp theo là thu thập thông tin thông qua EDA. EDA sử dụng các kỹ thuật thống kê và công cụ trực quan hóa để hiểu các mẫu và sự phân bổ trong dữ liệu của bạn. Bạn có thể xác định các vấn đề như mất cân bằng lớp hoặc các giá trị ngoại lai và đưa ra các quyết định sáng suốt về tiền xử lý dữ liệu thêm hoặc điều chỉnh huấn luyện model.

Link to this sectionCác kỹ thuật EDA thống kê#

Các kỹ thuật thống kê thường bắt đầu bằng việc tính toán các chỉ số cơ bản như giá trị trung bình (mean), trung vị (median), độ lệch chuẩn và phạm vi. Các chỉ số này cung cấp cái nhìn tổng quan nhanh về các đặc tính của tập dữ liệu ảnh, chẳng hạn như sự phân bổ cường độ pixel. Việc hiểu các số liệu thống kê cơ bản này giúp bạn nắm bắt chất lượng tổng thể và các đặc điểm của dữ liệu, cho phép bạn phát hiện sớm bất kỳ sự bất thường nào.

Link to this sectionCác kỹ thuật EDA trực quan#

Trực quan hóa là yếu tố quan trọng trong EDA cho các tập dữ liệu ảnh. Ví dụ, phân tích mất cân bằng lớp là một khía cạnh quan trọng khác của EDA. Nó giúp xác định liệu các lớp nhất định có bị thiếu hụt trong tập dữ liệu của bạn hay không. Trực quan hóa sự phân bổ của các lớp hoặc danh mục ảnh khác nhau bằng biểu đồ cột có thể nhanh chóng tiết lộ bất kỳ sự mất cân bằng nào. Tương tự, các giá trị ngoại lai có thể được xác định bằng cách sử dụng các công cụ trực quan hóa như biểu đồ hộp (box plots), làm nổi bật các điểm bất thường trong cường độ pixel hoặc sự phân bổ đặc trưng. Phát hiện ngoại lai giúp ngăn các điểm dữ liệu bất thường làm sai lệch kết quả.

Các công cụ phổ biến để trực quan hóa bao gồm:

  • Biểu đồ Histogram và Box Plot: Hữu ích để hiểu sự phân bổ giá trị pixel và xác định các giá trị ngoại lai.
  • Biểu đồ Scatter Plot: Hữu ích để khám phá mối quan hệ giữa các đặc trưng ảnh hoặc chú thích.
  • Bản đồ nhiệt (Heatmaps): Hiệu quả để trực quan hóa sự phân bổ cường độ pixel hoặc sự phân bổ không gian của các đặc trưng được chú thích trong ảnh.

Link to this sectionSử dụng Ultralytics Platform cho EDA#

Để có phương pháp không cần lập trình (no-code) cho EDA, hãy tải tập dữ liệu của bạn lên Ultralytics Platform. Tab Charts của tập dữ liệu tự động tạo các bản trực quan hóa được mô tả ở trên: phân bổ chia tách, số lượng lớp hàng đầu, biểu đồ chiều rộng/chiều cao ảnh, và bản đồ nhiệt 2D của các vị trí gán nhãn và kích thước ảnh. Tab Images cho phép bạn duyệt dữ liệu của mình trong dạng lưới, tóm tắt hoặc xem 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ụ bị gán nhãn sai hoặc các lớp mất cân bằng mà không cần viết một dòng mã nào.

Link to this sectionKết nối và giao lưu#

Thảo luận về dự án của bạn với những người cùng đam mê computer vision có thể mang lại cho bạn những ý tưởng mới từ các góc độ khác nhau. Dưới đây là một số cách tuyệt vời để học hỏi, khắc phục sự cố và kết nối:

Link to this sectionCác kênh kết nối với cộng đồng#

  • GitHub Issues: Truy cập kho lưu trữ YOLO26 trên GitHub và sử dụng tab Issues để đặt câu hỏi, báo cáo lỗi và đề xuất tính năng. Cộng đồng và các nhà bảo trì luôn sẵn sàng giúp đỡ với bất kỳ vấn đề nào bạn gặp phải.
  • Máy chủ Discord của Ultralytics: Tham gia máy chủ Discord của Ultralytics để kết nối với những người dùng và nhà phát triển khác, nhận hỗ trợ, chia sẻ kiến thức và cùng thảo luận ý tưởng.

Link to this sectionTài liệu chính thức#

  • Ultralytics YOLO26 Documentation: Refer to the official YOLO26 documentation for thorough guides and valuable insights on numerous computer vision tasks and projects.

Link to this sectionTập dữ liệu của bạn đã sẵn sàng!#

Dữ liệu được thay đổi kích thước, chuẩn hóa và tăng cường đúng cách sẽ cải thiện hiệu suất của model bằng cách giảm nhiễu và tăng cường khả năng tổng quát hóa. Bằng cách làm theo các kỹ thuật tiền xử lý và phương pháp tốt nhất được nêu trong hướng dẫn này, bạn có thể tạo ra một tập dữ liệu vững chắc. Với tập dữ liệu đã được tiền xử lý, bạn có thể tự tin tiến tới các bước tiếp theo trong dự án của mình.

Link to this sectionCâu hỏi thường gặp#

Link to this sectionTầm quan trọng của tiền xử lý dữ liệu trong các dự án computer vision là gì?#

Data preprocessing is essential in computer vision projects because it ensures that the data is clean, consistent, and in a format that is optimal for model training. By addressing issues such as noise, inconsistency, and imbalance in raw data, preprocessing steps like resizing, normalization, augmentation, and dataset splitting help reduce computational load and improve model performance. For more details, visit the steps of a computer vision project.

Link to this sectionLàm thế nào để tôi có thể sử dụng Ultralytics YOLO cho tăng cường dữ liệu?#

For data augmentation with Ultralytics YOLO26, you need to modify the dataset configuration file (.yaml). In this file, you can specify various augmentation techniques such as random crops, horizontal flips, and brightness adjustments. This can be effectively done using the training configurations explained here. Data augmentation helps create a more robust dataset, reduce overfitting, and improve model generalization.

Link to this sectionCác kỹ thuật chuẩn hóa dữ liệu tốt nhất cho dữ liệu computer vision là gì?#

Chuẩn hóa đưa giá trị pixel về một phạm vi tiêu chuẩn để hội tụ nhanh hơn và cải thiện hiệu suất trong quá trình huấn luyện. Các kỹ thuật phổ biến bao gồm:

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

For YOLO26, normalization is handled automatically, including conversion to RGB and pixel value scaling. Learn more about it in the model training section.

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?#

To split your dataset, a common practice is to divide it into 70% for training, 20% for validation, and 10% for testing. It is important to maintain the data distribution of classes across these splits and avoid data leakage by performing augmentation only on the training set. Use tools like scikit-learn or TensorFlow for efficient dataset splitting. See the detailed guide on dataset preparation.

Link to this sectionTôi có thể xử lý các kích thước ảnh khác nhau trong YOLO26 mà không cần thay đổi kích thước thủ công không?#

Yes, Ultralytics YOLO26 can handle varying image sizes through the 'imgsz' parameter during model training. This parameter ensures that images are resized so their largest dimension matches the specified size (e.g., 640 pixels), while maintaining the aspect ratio. For more flexible input handling and automatic adjustments, check the model training section.

Người đóng góp

Bình luận