Chuyển đến nội dung

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

Giới thiệu

Sau khi bạn đã xác định mục tiêu của dự án thị giác máy tính và thu thập và gán nhãn dữ liệu, bước tiếp theo là tiền xử lý dữ liệu đã gán nhãn và chuẩn bị cho quá trình huấn luyện mô hình. Dữ liệu sạch và nhất quán là rất quan trọng để tạo ra một mô hình hoạt động tốt.



Xem: Cách Sử dụng Tiền xử lý và Tăng cường Dữ liệu để Cải thiện Độ chính xác của Mô hình trong các Tình huống Thực tế 🚀

Tiền xử lý là một bước trong quy trình dự án thị giác máy tính, bao gồm thay đổi kích thước hình ảnh, chuẩn hóa giá trị pixel, tăng cường bộ dữ liệu và chia dữ liệu thành các tập huấn luyện, xác thực và kiểm tra. Hãy cùng khám phá các kỹ thuật thiết yếu và các phương pháp hay nhất để làm sạch dữ liệu của bạn!

Tầm Quan Trọng của Tiền Xử Lý Dữ Liệu

Chúng ta đã 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 việc tiền xử lý dữ liệu trở nên quan trọng đối với một dự án thị giác máy tính? Chà, tiền xử lý dữ liệu là tất cả về việc đưa dữ liệu của bạn vào một định dạng phù hợp để huấn luyện, giúp giảm tải tính toán và cải thiện hiệu suất của mô hình. Dưới đây là một số vấn đề phổ biến trong dữ liệu thô mà quá trình tiền xử lý giải quyết:

  • Nhiễu: Các biến thể không liên quan hoặc ngẫu nhiên trong dữ liệu.
  • Tính không nhất quán: Các biến thể về kích thước, định dạng và chất lượng hình ả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 bộ dữ liệu.

Cá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 quá trình tiền xử lý dữ liệu là thay đổi kích thước. Một số mô hình được thiết kế để xử lý các kích thước đầu vào khác nhau, nhưng nhiều mô hình yêu cầu kích thước đầu vào nhất quán. Thay đổi kích thước hình ảnh làm cho chúng đồng nhất và giảm độ phức tạp tính toán.

Thay Đổi Kích Thước Hình Ảnh

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

  • Nội suy song tuyến: 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 giá trị pixel gần nhất.
  • Láng giềng gần nhất: Gán giá trị pixel gần nhất mà không cần tính trung bình, dẫn đến hình ảnh bị chặn nhưng tính toán nhanh hơn.

Để làm cho việc thay đổi kích thước trở thành một nhiệm vụ đơn giản hơn, bạn có thể sử dụng các công cụ sau:

  • OpenCV: Một thư viện thị giác máy tính phổ biến với các chức năng mở rộng để xử lý hình ảnh.
  • PIL (Pillow): Một Thư viện Hình ảnh Python để mở, thao tác và lưu các tệp hình ảnh.

Đối với YOLO11, tham số 'imgsz' trong quá trình huấn luyện mô hình cho phép các kích thước đầu vào linh hoạt. Khi được đặt thành một kích thước cụ thể, chẳng hạn như 640, mô hình sẽ thay đổi kích thước hình ảnh đầu vào sao cho kích thước lớn nhất của chúng là 640 pixel trong khi vẫn duy trì tỷ lệ khung hình ban đầu.

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

Chuẩn Hóa Giá Trị Pixel

Một kỹ thuật tiền xử lý khác là chuẩn hóa. Chuẩn hóa масштабирует các giá trị pixel về một phạm vi tiêu chuẩn, điều này 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 của mô hình. Dưới đây là một số kỹ thuật chuẩn hóa phổ biến:

  • Min-Max Scaling: масштабирует các giá trị pixel về phạm vi từ 0 đến 1.
  • Z-Score Normalization: масштабирует các giá trị pixel dựa trên giá trị trung bình và độ lệch chuẩn của chúng.

Đối với YOLO11, 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 quá trình huấn luyện mô hình. YOLO11 tự động thực hiện một số bước tiền xử lý, bao gồm chuyển đổi sang RGB, масштабирует các giá trị pixel về phạm vi [0, 1] và chuẩn hóa bằng cách sử dụng các giá trị trung bình và độ lệch chuẩn được xác định trước.

Chia Nhỏ Tập Dữ Liệu

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

Hãy xem xét những điều sau khi chia bộ dữ liệu của bạn:

  • Duy trì Phân phối Dữ liệu: Đảm bảo rằng phân phối dữ liệu của các lớp được duy trì trên các tập huấn luyện, xác thực và kiểm tra.
  • Tránh Rò Rỉ Dữ Liệu: Thông thường, việc 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à bất kỳ quá trình tiền xử lý nào khác chỉ nên được áp dụng cho tập huấn luyện để ngăn thông tin từ tập xác thực hoặc tập kiểm tra ảnh hưởng đến quá trình huấn luyện mô hình.
  • Cân bằng Lớp: Đối với các tập dữ liệu không cân bằng, hãy xem xét các kỹ thuật như lấy mẫu quá mức lớp thiểu số hoặc lấy mẫu dưới mức lớp đa số trong tập huấn luyện.

Tăng Cường Dữ Liệu 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 kích thước của bộ dữ liệu một cách giả tạo bằng cách tạo ra các phiên bản sửa đổi của hình ảnh. Bằng cách tăng cường dữ liệu của bạn, bạn có thể giảm thiểu quá khớp và cải thiện khả năng tổng quát hóa mô hình.

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 Bộ Dữ liệu Mạnh Mẽ Hơn: Tăng cường dữ liệu có thể làm cho mô hình 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 những thay đổi về ánh sáng, hướng và tỷ lệ.
  • Tiết Kiệm Chi Phí: Tăng cường dữ liệu là một 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 Tốt Hơn: Mọi điểm dữ liệu có sẵn đều được sử dụng tối đa tiềm năng của nó bằng cách tạo ra các biến thể mới

Các Phương Pháp Tăng Cường Dữ Liệu

Các kỹ thuật augmentation phổ biến bao gồm lật, xoay, масштабирование và điều chỉnh màu sắc. Một số thư viện, chẳng hạn như Albumentations, Imgaug và ImageDataGenerator của TensorFlow, có thể tạo ra các augmentation này.

Tổng quan về Tăng Cường Dữ Liệu

Đối với YOLO11, bạn có thể tăng cường bộ dữ liệu tùy chỉnh của mình bằng cách sửa đổi tệp cấu hình bộ dữ liệu, một tệp .yaml. Trong tệp này, bạn có thể thêm một phần tăng cường với các tham số chỉ định cách bạn muốn tăng cường dữ liệu của mình.

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

  • Cắt ngẫu nhiên
  • Lật: Hình ảnh có thể được lật theo chiều ngang hoặc chiều dọc.
  • Xoay: Hình ả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 nhiều loại dữ liệu hơn.

Nghiên Cứu Tình Huống về Tiền Xử Lý

Hãy xem xét một dự án nhằm phát triển một mô hình để phát hiện và phân loại các loại phương tiện khác nhau trong hình ảnh giao thông bằng cách sử dụng YOLO11. Chúng tôi đã thu thập hình ảnh giao thông và chú thích chúng bằng các hộp giới hạn và nhãn.

Đâ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 hình ảnh: Vì YOLO11 xử lý các 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. Mô hình sẽ điều chỉnh kích thước hình ảnh theo tham số 'imgsz' được chỉ định trong quá trình huấn luyện.
  • Chuẩn hóa giá trị pixel: YOLO11 tự động chuẩn hóa các 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 việc này.
  • Chia nhỏ tập dữ liệu: Chia tập dữ liệu thành các tập huấn luyện (70%), xác thực (20%) và kiểm tra (10%) bằ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 bộ 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 rằng bộ dữ liệu được chuẩn bị mà không có bất kỳ vấn đề tiềm ẩn nào và sẵn sàng cho Phân tích Dữ liệu Khám phá (EDA).

Các Kỹ Thuật Phân Tích Dữ Liệu Khám Phá

Sau khi tiền xử lý và tăng cường bộ dữ liệu, bước tiếp theo là thu thập thông tin chi tiết thông qua Phân tích Dữ liệu Khám phá. 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à phân phối 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 lệ và đưa ra các quyết định sáng suốt về việc tiền xử lý dữ liệu hoặc điều chỉnh huấn luyện mô hình.

Các Kỹ Thuật EDA Thống Kê

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

Các Kỹ Thuật EDA Trực Quan

Trực quan hóa là chìa khóa trong EDA cho bộ dữ liệu hình ả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 xem các lớp nhất định có bị đại diện thiếu trong bộ dữ liệu của bạn hay không. Trực quan hóa sự phân phối của các lớp hoặc danh mục hình ảnh khác nhau bằng biểu đồ thanh 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 lệ có thể được xác định bằng các công cụ trực quan hóa như biểu đồ hộp, làm nổi bật các điểm bất thường về cường độ pixel hoặc phân phối đặc trưng. Phát hiện ngoại lệ ngăn các điểm dữ liệu bất thường làm sai lệch kết quả của bạn.

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

  • Biểu đồ tần suất và biểu đồ hộp: Hữu ích để hiểu sự phân phối của các giá trị pixel và xác định các giá trị ngoại lệ.
  • Biểu đồ phân tán: Hữu ích để khám phá các mối quan hệ giữa các đặc trưng hoặc chú thích của hình ảnh.
  • Heatmaps (Bản đồ nhiệt): 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 hình ảnh.

Sử dụng Ultralytics Explorer cho EDA

Lưu ý từ Cộng đồng ⚠️

Kể từ ultralytics>=8.3.10, hỗ trợ Ultralytics Explorer đã không còn được dùng nữa. Nhưng đừng lo lắng! Giờ đây, bạn có thể truy cập các chức năng tương tự và thậm chí nâng cao thông qua Ultralytics HUB, nền tảng no-code trực quan của chúng tôi được thiết kế để hợp lý hóa quy trình làm việc của bạn. Với Ultralytics HUB, bạn có thể tiếp tục khám phá, trực quan hóa và quản lý dữ liệu của mình một cách dễ dàng mà không cần viết một dòng code nào. Hãy nhớ xem qua và tận dụng các tính năng mạnh mẽ của nó!🚀

Để có một cách tiếp cận nâng cao hơn cho EDA, bạn có thể sử dụng công cụ Ultralytics Explorer. Nó cung cấp các khả năng mạnh mẽ để khám phá bộ dữ liệu thị giác máy tính. Bằng cách hỗ trợ tìm kiếm ngữ nghĩa, truy vấn SQL và tìm kiếm tương đồng vector, công cụ này giúp bạn dễ dàng phân tích và hiểu dữ liệu của mình. Với Ultralytics Explorer, bạn có thể tạo embedding cho bộ dữ liệu của mình để tìm các hình ảnh tương tự, chạy truy vấn SQL để phân tích chi tiết và thực hiện tìm kiếm ngữ nghĩa, tất cả thông qua giao diện đồ họa thân thiện với người dùng.

Tổng quan về Ultralytics Explorer

Liên hệ và Kết nối

Thảo luận về dự án của bạn với những người đam mê thị giác máy tính khác 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:

Các kênh để Kết nối với Cộng đồng

  • Các vấn đề trên GitHub: Truy cập kho lưu trữ YOLO11 GitHub và sử dụng tab Vấn đề để đặt câu hỏi, báo cáo lỗi và đề xuất các tính năng. Cộng đồng và người bảo trì luôn sẵn sàng trợ giúp mọi vấn đề bạn gặp phải.
  • Máy chủ Ultralytics Discord: Tham gia máy chủ Ultralytics Discord để 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àBrainstorm ý tưởng.

Tài liệu Chính thức

  • Tài liệu Ultralytics YOLO11: Tham khảo tài liệu YOLO11 chính thức để có các hướng dẫn kỹ lưỡng và thông tin chi tiết có giá trị về nhiều nhiệm vụ và dự án thị giác máy tính.

Bộ 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 mô hình bằng cách giảm nhiễu và cải thiện khả năng khái quát hóa. Bằng cách tuân theo các kỹ thuật tiền xử lý và các phương pháp hay nhất được nêu trong hướng dẫn này, bạn có thể tạo một bộ dữ liệu vững chắc. Với bộ dữ liệu đã được tiền xử lý sẵn sàng, bạn có thể tự tin tiến hành các bước tiếp theo trong dự án của mình.

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

Tầm quan trọng của việc tiền xử lý dữ liệu trong các dự án thị giác máy tính là gì?

Tiền xử lý dữ liệu là rất cần thiết trong các dự án thị giác máy tính vì nó đảm bảo rằng dữ liệu sạch, nhất quán và ở định dạng tối ưu cho việc huấn luyện mô hình. Bằng cách giải quyết các vấn đề như nhiễu, tính không nhất quán và mất cân bằng trong dữ liệu thô, các bước tiền xử lý như thay đổi kích thước, chuẩn hóa, tăng cường và chia tách bộ 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. Để biết thêm chi tiết, hãy truy cập các bước của một dự án thị giác máy tính.

Làm cách nào tôi có thể sử dụng Ultralytics YOLO để tăng cường dữ liệu?

Để tăng cường dữ liệu với Ultralytics YOLO11, bạn cần sửa đổi tệp cấu hình bộ dữ liệu (.yaml). Trong tệp này, bạn có thể chỉ định các kỹ thuật tăng cường khác nhau như cắt ngẫu nhiên, lật ngang và điều chỉnh độ sáng. Điều này có thể được thực hiện hiệu quả bằng cách sử dụng các cấu hình huấn luyện được giải thích ở đây. Tăng cường dữ liệu giúp tạo ra một bộ dữ liệu mạnh mẽ hơn, giảm quá khớp và cải thiện khả năng khái quát hóa mô hình.

Các kỹ thuật chuẩn hóa dữ liệu tốt nhất cho dữ liệu thị giác máy tính là gì?

Chuẩn hóa tỷ lệ các giá trị pixel đến 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: масштабирует các giá trị pixel về phạm vi từ 0 đến 1.
  • Z-Score Normalization: масштабирует các giá trị pixel dựa trên giá trị trung bình và độ lệch chuẩn của chúng.

Đối với YOLO11, việc chuẩn hóa được xử lý tự động, bao gồm chuyển đổi sang RGB và tỷ lệ giá trị pixel. Tìm hiểu thêm về nó trong phần huấn luyện mô hình.

Tôi nên chia bộ dữ liệu đã được gán nhãn của mình như thế nào để huấn luyện?

Để chia tách bộ dữ liệu của bạn, một thông lệ phổ biến là chia nó thành 70% cho huấn luyện, 20% cho xác thực và 10% cho kiểm tra. Điều quan trọng là phải duy trì sự phân phối dữ liệu của các lớp trên các phần chia này và tránh rò rỉ dữ liệu bằng cách chỉ thực hiện tăng cường trên tập huấn luyện. Sử dụng các công cụ như scikit-learn hoặc TensorFlow để chia tách bộ dữ liệu hiệu quả. Xem hướng dẫn chi tiết về chuẩn bị bộ dữ liệu.

Tôi có thể xử lý các kích thước hình ảnh khác nhau trong YOLO11 mà không cần thay đổi kích thước thủ công không?

Có, Ultralytics YOLO11 có thể xử lý các kích thước hình ảnh khác nhau thông qua tham số 'imgsz' trong quá trình huấn luyện mô hình. Tham số này đảm bảo rằng hình ảnh được thay đổi kích thước sao cho kích thước lớn nhất của chúng khớp với kích thước được chỉ định (ví dụ: 640 pixel), đồng thời duy trì tỷ lệ khung hình. Để xử lý đầu vào linh hoạt hơn và điều chỉnh tự động, hãy xem phần huấn luyện mô hình.



📅 Đã tạo 1 năm trước ✏️ Cập nhật 3 tháng trước

Bình luận