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à thu thập và chú thích dữ liệu , bước tiếp theo là xử lý trước dữ liệu đã 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 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 giá trị pixel, tăng cường tập 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 việc xử lý dữ liệu trước
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 trong đầu. Vậy thì, điều gì khiến việc xử lý trước dữ liệu trở nên quan trọng đối với một dự án thị giác máy tính? Vâng, xử lý trước 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. Sau đây là một số vấn đề phổ biến trong dữ liệu thô mà việc xử lý trước giải quyết:
- Tiếng ồn : Sự thay đổi không liên quan hoặc ngẫu nhiên trong dữ liệu.
- Không nhất quán : Sự khác biệt 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á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 xử lý trước 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 bằng các phương pháp sau:
- Nội suy song tuyến tính : Làm mịn các giá trị pixel bằng cách lấy giá trị 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 tính trung bình, dẫn đến hình ảnh bị khối nhưng tính toán nhanh hơn.
Để việc thay đổi kích thước trở nên đơ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 nhiều chức năng mở rộng để xử lý hình ảnh.
- PIL (Gối) : A Python Thư viện hình ảnh để mở, xử lý và lưu tệp hình ảnh.
Đối với YOLO11 , 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 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 gốc.
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 liệu việc thay đổi kích thước có phải là bước xử lý trước cần thiết hay không hoặc liệu mô hình của bạn có thể xử lý hiệu quả các 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 sẽ chia tỷ lệ các giá trị pixel thành một phạm vi 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. Sau đây là một số kỹ thuật chuẩn hóa phổ biến:
- Tỷ lệ Min-Max : Tỷ lệ các giá trị pixel trong phạm vi từ 0 đến 1.
- Chuẩn hóa điểm Z : Điều chỉnh 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 , quá trình 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. YOLO11 tự động thực hiện một số bước xử lý trước, bao gồm chuyển đổi sang RGB, điều chỉnh giá trị pixel theo 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 tách tập dữ liệu
Sau khi bạn đã làm sạch dữ liệu, bạn đã sẵn sàng để chia tách tập dữ liệu. Việc chia tách 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 tổng quát hóa của nó. Một cách chia tách phổ biến là 70% để huấn luyện, 20% để xác thực và 10% để 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 tách dữ liệu của mình như scikit-learn hoặc TensorFlow .
Hãy cân nhắc những điều sau khi chia 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 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 tách. Việc tăng cường dữ liệu và bất kỳ quá trình xử lý trước nào khác chỉ nên được áp dụng cho tập huấn luyện để ngăn thông tin từ các tập xác thực hoặc kiểm tra ảnh hưởng đến quá trình huấn luyện mô hình. - Các lớp cân bằng : Đố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 lớp thiểu số hoặc lấy mẫu quá ít 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 đượ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 ra các phiên bản hình ảnh đã sửa đổi. Bằng cách tăng cường dữ liệu, bạn có thể giảm tình trạng quá khớp và cải thiện tổng quát hóa mô hình.
Sau đây là một số lợi ích khác của việc tăng cường dữ liệu:
- Tạo một tập dữ liệu mạnh mẽ hơn : Việc 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à sự bóp méo trong dữ liệu đầu vào. Điều này bao gồm các 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 đào tạo mà không cần thu thập và dá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 khả dụng đều được sử dụng hết tiềm năng của nó bằng cách tạo ra 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à TensorFlow ImageDataGenerator có thể tạo ra những phần tăng cường này.
Đối với YOLO11 , 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.
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 nhiều 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 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ể.
- Sự 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 thông số cụ thể để tạo ra nhiều dữ liệu đa dạng hơn.
Một nghiên cứu trường hợp về tiền xử lý
Hãy xem xét một dự án nhằm mục đích 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 hộp giới hạn và nhãn.
Sau đây là mô tả chi tiết từng bước xử lý trước của dự án này:
- Thay đổi kích thước hình ảnh: Kể từ YOLO11 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 tham số 'imgsz' được chỉ định trong quá trình đào tạo.
- Chuẩn hóa giá trị pixel: YOLO11 tự động chuẩn hóa các giá trị pixel trong phạm vi từ 0 đến 1 trong quá trình xử lý trước, do đó không bắt buộc.
- Chia 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à thử nghiệm (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 xử lý trước và tăng cường tập dữ liệu của bạn, 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 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 hoặc giá trị ngoại lệ và đưa ra quyết định sáng suốt về việc xử lý trước dữ liệu hoặc điều chỉnh đào tạo mô hình tiếp theo.
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ư trung bình, trung vị, độ lệch chuẩn và phạm vi. Các số liệu 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 của bạn, 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 chung của dữ liệu, cho phép bạn phát hiện bất kỳ sự bất thường nào ngay từ đầu.
Kỹ thuật EDA trực quan
Hình ảnh hóa là chìa khóa trong EDA cho các tập 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 một số lớp nhất định có bị đại diện không đầy đủ trong tập dữ liệu của bạn hay không. Hình ảnh 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 biểu đồ thanh có thể nhanh chóng phát hiện ra bất kỳ sự mất cân bằng nào. Tương tự như vậy, các giá trị ngoại lệ có thể được xác định bằng các công cụ hình ảnh hóa như biểu đồ hộp, làm nổi bật các điểm bất thường trong cường độ pixel hoặc phân phối tính năng. Phát hiện giá trị 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ụ trực quan hóa phổ biến bao gồm:
- Biểu đồ histogram và biểu đồ hộp: Hữu ích để hiểu sự phân bố giá trị pixel và xác định giá trị ngoại lai.
- Biểu đồ phân tán: Hữu ích để khám phá mối quan hệ giữa các đặc điểm hình ảnh hoặc chú thích.
- Bản đồ nhiệt: Hiệu quả trong việc trực quan hóa sự phân bố cường độ điểm ảnh hoặc sự phân bố không gian của các đặc điểm được chú thích trong hình ảnh.
Sử dụng Ultralytics Trình khám phá cho EDA
Ghi chú cộng đồng ⚠️
Tính đến ultralytics>=8.3.10
, Ultralytics hỗ trợ explorer đã bị loại bỏ. Nhưng đừng lo lắng! Bây giờ bạn có thể truy cập chức năng tương tự và thậm chí được cải tiến thông qua Ultralytics TRUNG TÂM, nền tảng trực quan không cần mã 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, tất cả mà không cần viết một dòng mã nào. Hãy chắc chắn kiểm tra và tận dụng các tính năng mạnh mẽ của nó!🚀
Đối với 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. Công cụ này cung cấp khả năng mạnh mẽ để khám phá các tập 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ự vectơ, 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 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.
Tiếp cận và kết nối
Việc 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ừ nhiều góc nhìn khác nhau. Sau đâ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 đề của GitHub: Truy cập YOLO11 Kho lưu trữ GitHub và sử dụng tab Sự cố để nêu 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 bạn giải quyết mọi sự cố bạn gặp phải.
- Máy chủ Discord Ultralytics : Tham gia máy chủ Discord 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à đưa ra ý tưởng.
Tài liệu chính thức
- Tài liệu YOLO11 Ultralytics : Tham khảo tài liệu YOLO11 chính thức để biết hướng dẫn chi tiết và thông tin chi tiết có giá trị về nhiều nhiệm vụ và dự án về thị giác máy tính.
Bộ dữ liệu của bạn đã sẵn sàng!
Dữ liệu được định cỡ lại, 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 làm theo các kỹ thuật tiền xử lý và các biện pháp thực hành tốt 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 tiền xử lý của bạn đã 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 xử lý dữ liệu trước 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 dữ liệu sạch, nhất quán và ở định dạng tối ưu cho việc đà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à chia 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 YOLO11 , 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 nhiều 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 tại đâ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 tình trạng quá khớp và cải thiện tổng quát hóa mô hình.
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 sẽ chia tỷ lệ các giá trị pixel thành một phạm vi 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:
- Tỷ lệ Min-Max : Tỷ lệ các giá trị pixel trong phạm vi từ 0 đến 1.
- Chuẩn hóa điểm Z : Điều chỉnh giá trị pixel dựa trên giá trị trung bình và độ lệch chuẩn của chúng.
Vì YOLO11 , 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 đào tạo mô hình .
Tôi nên chia tập dữ liệu chú thích của mình để đào tạo như thế nào?
Để chia tách tập dữ liệu của bạn, một thông lệ phổ biến là chia thành 70% để đào tạo, 20% để xác thực 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 chia 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 tập đào tạo. Sử dụng các công cụ như scikit-learn hoặc TensorFlow để chia 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 YOLO11 không cần thay đổi kích thước thủ công?
Đúng, 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 đà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 đã 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 .