Bỏ để qua phần nội dung

Kỹ thuật tiền xử lý dữ liệu cho dữ liệu thị giác máy tính được chú thích

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à dữ liệu được thu thập và chú thích, bước tiếp theo là xử lý trước dữ liệu được chú thích và chuẩn bị cho việc đào tạo 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.

Tiền xử lý là một bước trong quy trình làm việc của 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 các giá trị pixel, tăng cường tập dữ liệu và chia dữ liệu thành các bộ đào tạo, xác thực và kiểm tra. Hãy cùng khám phá các kỹ thuật cần thiết 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 tôi đã thu thập và chú thích dữ liệu của mình một cách cẩn thận với nhiều cân nhắc. Sau đó, điều gì làm cho quá trình 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 để đào tạo giúp giảm tải tính toán và giúp cải thiện hiệu suất mô hình. Dưới đây là một số vấn đề thường gặp trong dữ liệu thô mà quá trình tiền xử lý giải quyết:

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

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 thay đổi, 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 tuyến tính: 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.
  • Hàng xóm gần nhất: Chỉ định giá trị pixel gần nhất mà không tính trung bình, dẫn đến hình ảnh khối nhưng tính toán nhanh hơn.

Để thay đổi kích thước một tác 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 (Gối): A Python Thư viện hình ảnh để mở, thao tác và lưu các tệp hình ảnh.

Đối với YOLOv8, tham số 'imgsz' trong quá trình đào tạo mô hình cho phép 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 để 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á nhu cầu cụ thể của mô hình và tập dữ liệu, bạn có thể xác định xem thay đổi kích thước có phải là bước tiền xử lý cần thiết hay 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à bình thường hóa. Chuẩn hóa chia tỷ lệ các giá trị pixel thành một phạm vi tiêu chuẩn, giúp hội tụ nhanh hơn trong quá trình đào tạo và cải thiện hiệu suất mô hình. Dưới đây là một số kỹ thuật chuẩn hóa phổ biến:

  • Min-Max Scaling: Chia tỷ lệ các giá trị pixel thành phạm vi từ 0 đến 1.
  • Chuẩn hóa Z-Score: Chia tỷ lệ 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 YOLOv8, 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 đào tạo mô hình. YOLOv8 tự động thực hiện một số bước tiền xử lý, bao gồm chuyển đổi sang RGB, chia tỷ lệ giá trị pixel thành 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.

Tách tập dữ liệu

Khi bạn đã làm sạch dữ liệu, bạn đã sẵn sàng để chia tập dữ liệu. Chia dữ liệu thành các bộ đào tạo, xác nhận 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 vô hình để đánh giá hiệu suất tổng quát hóa của nó. Sự phân chia phổ biến là 70% cho đào tạo, 20% cho xác nhận và 10% cho thử nghiệm. Có nhiều công cụ và thư viện khác nhau mà bạn có thể sử dụng để chia nhỏ dữ liệu của mình như scikit-learn hoặc TensorFlow.

Hãy xem xét những điều sau đây khi tách tập dữ liệu của bạn:

  • Duy trì phân phối dữ liệu: Đảm bảo rằng việc phân phối dữ liệu của các lớp được duy trì qua các bộ đào tạo, 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 nhỏ. Tăng cường dữ liệu và bất kỳ tiền xử lý nào khác chỉ nên được áp dụng cho tập huấn để ngăn thông tin từ bộ xác thực hoặc bộ kiểm thử ảnh hưởng đến việc đào tạo mô hình. Các lớp cân bằng: Đối với các bộ dữ liệu mất 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 lớp đa số trong bộ đào tạo.

Tăng cường dữ liệu là gì?

Bước tiền xử lý dữ liệu được thảo luận phổ biế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 tập dữ liệu một cách giả tạo bằng cách tạo các phiên bản hình ảnh đã sửa đổi. Bằng cách tăng cường dữ liệu của bạn, bạn có thể giảm overfitting và cải thiện khái 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 tập 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 đối với 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ệ.
  • Hiệu quả về chi phí: Tăng cường dữ liệu là một cách hiệu quả về chi phí để tăng lượng dữ liệu đào tạo 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 với tiềm năng tối đa của nó bằng cách tạo các biến thể mới

Phương pháp tăng cường dữ liệu

Các kỹ thuật tăng cường phổ biến bao gồm lật, xoay, chia tỷ lệ và điều chỉnh màu sắc. Một số thư viện, chẳng hạn như Albumentations, Imgaug, và TensorFlowImageDataGenerator của ImageDataGenerator, có thể tạo ra các phần tăng cường này.

Tổng quan về tăng cường dữ liệu

Đối với YOLOv8, bạn có thể tăng cường tập dữ liệu tùy chỉnh của mình bằng cách sửa đổi tệp cấu hình tập dữ liệu, tệp .yaml. Trong tệp này, bạn có thể thêm 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.

Các Ultralytics YOLOv8 Kho lưu trữ hỗ trợ một loạt các 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ây trồng ngẫu nhiên
  • Lật: Hình ảnh có thể được lật ngang hoặc dọc.
  • Xoay: Hình ảnh có thể được xoay theo các góc cụ thể.
  • Méo

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 dữ liệu đa dạng hơn.

Một nghiên cứu điển hình về tiền xử lý

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 YOLOv8. 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 và nhãn giới hạn.

Dưới đây là mỗi bước tiền xử lý sẽ như thế nào cho dự án này:

  • Thay đổi kích thước hình ảnh: Kể từ YOLOv8 Xử lý kích thước đầu vào linh hoạt và thực hiện thay đổi kích thước tự động, 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 thông số 'imgsz' được chỉ định trong quá trình đào tạo.
  • Chuẩn hóa giá trị pixel: YOLOv8 Tự động chuẩn hóa các giá trị pixel thành phạm vi từ 0 đến 1 trong quá trình xử lý sơ bộ, vì vậy không bắt buộc.
  • Chia tập dữ liệu: Chia tập dữ liệu thành các bộ đào tạo (70%), xác nhận (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 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ó bất kỳ vấn đề tiềm ẩn nào và sẵn sàng cho Phân tích dữ liệu thăm dò (EDA).

Kỹ thuật phân tích dữ liệu thăm dò

Sau khi tiền xử lý và tăng cường tập dữ liệu của bạn, bước tiếp theo là hiểu rõ hơn thông qua Phân tích dữ liệu thăm dò. 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 học hoặc ngoại lệ và đưa ra quyết định sáng suốt về tiền xử lý dữ liệu tiếp theo hoặc điều chỉnh đào tạo mô hình.

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 số liệu cơ bản như trung bình, trung vị, độ lệch chuẩn và phạm vi. Các chỉ số này cung cấp tổng quan nhanh về các thuộc tính của tập dữ liệu hình ảnh, chẳng hạn như phân phối cường độ pixel. Hiểu các số liệu thống kê cơ bản này giúp bạn nắm bắt được 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 sớm bất kỳ sự bất thường nào.

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ó được trình bày dưới mức 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 hình ảnh khác nhau bằng cách sử dụ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 ngoại lệ 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, làm nổi bật sự bất thường về cường độ pixel hoặc phân phối tính nă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 bố các giá trị pixel và xác định các ngoại lệ.
  • Biểu đồ phân tán: Hữu ích cho việc khám phá mối quan hệ giữa các tính năng hình ảnh hoặc chú thích.
  • Bản đồ nhiệt: Hiệu quả để hình dung sự phân bố cường độ pixel hoặc phân bố không gian của các đối tượng địa lý được chú thích trong hình ảnh.

Sử dụng Ultralytics Explorer dành cho EDA

Để có cách tiếp cận nâng cao hơn đối với EDA, bạn có thể sử dụng Ultralytics Công cụ Explorer. Nó cung cấp 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 tự 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 nhúng cho tập dữ liệu của mình để tìm các hình ảnh tương tự, chạy các 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

Tiếp cận 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ể cung cấp cho bạn những ý tưởng mới từ những quan điểm khác nhau. Dưới đây là một số cách tuyệt vời để tìm hiểu, khắc phục sự cố và kết nối mạng:

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

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

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

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

Tậ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 giúp 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ái quát hóa. Bằng cách làm 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 tập dữ liệu vững chắc. Với tập dữ liệu được xử lý sẵn sàng của bạn, bạn có thể tự tin tiến hành các bước tiếp theo trong dự án của mình.

FAQ

Tầm quan trọng của 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à điều 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 sẽ, nhất quán và ở định dạng tối ưu cho đào tạo mô hình. Bằng cách giải quyết các vấn đề như nhiễu, 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à tách 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. Để biết thêm chi tiết, hãy truy cập các bước của dự án thị giác máy tính.

Tôi có thể sử dụng như thế nào Ultralytics YOLO để tăng cường dữ liệu?

Để tăng cường dữ liệu với Ultralytics YOLOv8, bạn cần sửa đổi tệp cấu hình tập 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 đào tạo được giải thích ở đây. Tăng cường dữ liệu giúp tạo ra một tập dữ liệu mạnh mẽ hơn, giảm overfitting và cải thiện 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 chia tỷ lệ các giá trị pixel thành 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 đào tạo. Các kỹ thuật phổ biến bao gồm:

  • Min-Max Scaling: Chia tỷ lệ các giá trị pixel thành phạm vi từ 0 đến 1.
  • Chuẩn hóa Z-Score: Chia tỷ lệ các giá trị pixel dựa trên giá trị trung bình và độ lệch chuẩn của chúng.

Cho YOLOv8, chuẩn hóa được xử lý tự động, bao gồm chuyển đổi sang RGB và chia tỷ lệ giá trị pixel. Tìm hiểu thêm về nó trong phần đào tạo mô hình.

Tôi nên tách tập dữ liệu có chú thích của mình để đào tạo như thế nào?

Để chia tập dữ liệu của bạn, một thực tế phổ biến là chia nó thành 70% để đào tạo, 20% để xác nhận và 10% để thử nghiệm. Điều quan trọng là duy trì phân phối dữ liệu của các lớp trên các phân tách 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 bộ đào tạo. Sử dụng các công cụ như scikit-learn hoặc TensorFlow để phân tách tập dữ liệu hiệu quả. Xem hướng dẫn chi tiết về chuẩn bị tập dữ liệu.

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

Có Ultralytics YOLOv8 Có thể xử lý các kích thước hình ảnh khác nhau thông qua thông số 'imgsz' trong quá trình đào tạo mô hình. Tham số này đảm bảo rằng hình ảnh được thay đổi kích thước để 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), trong khi vẫn 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 kiểm tra phần đào tạo mô hình.



Đã tạo 2024-05-31, Cập nhật 2024-07-05
Tác giả: Glenn-Jocher (4), Abirami-Vina (1)

Ý kiến