Tác vụ của Trình phân loại hình ảnh MediaPipe cho phép bạn phân loại hình ảnh. Bạn có thể dùng nhiệm vụ này để xác định nội dung mà một hình ảnh đại diện cho một nhóm danh mục được xác định tại thời điểm huấn luyện. Công việc này hoạt động trên dữ liệu hình ảnh với mô hình học máy (ML) dưới dạng dữ liệu tĩnh hoặc luồng liên tục, đồng thời cho ra một danh sách các danh mục tiềm năng được xếp hạng theo điểm xác suất giảm dần.
Bắt đầu
Hãy bắt đầu sử dụng tác vụ này bằng cách làm theo một trong những hướng dẫn triển khai sau cho nền tảng mục tiêu của bạn. Các hướng dẫn dành riêng cho nền tảng này sẽ hướng dẫn bạn cách triển khai cơ bản của tác vụ này, sử dụng mô hình được đề xuất và cung cấp các ví dụ về mã cùng với các tùy chọn cấu hình được đề xuất:
- Android – Ví dụ về mã – Hướng dẫn
- Python – Ví dụ về mã – Hướng dẫn
- Web – Ví dụ về mã – Hướng dẫn
- iOS – Ví dụ về mã – Hướng dẫn
Thông tin chi tiết về việc cần làm
Phần này mô tả các tính năng, dữ liệu đầu vào, đầu ra và tuỳ chọn cấu hình của tác vụ này.
Tính năng
- Xử lý hình ảnh đầu vào – Xử lý bao gồm việc xoay hình ảnh, đổi kích thước, chuẩn hoá và chuyển đổi không gian màu.
- Khu vực quan tâm – Thực hiện việc phân loại trên một vùng hình ảnh thay vì toàn bộ hình ảnh.
- Nhãn ngôn ngữ bản đồ – Đặt ngôn ngữ dùng cho tên hiển thị.
- Ngưỡng điểm số – Lọc kết quả dựa trên điểm dự đoán.
- Phân loại hàng đầu – Giới hạn số lượng kết quả phân loại.
- Gắn nhãn danh sách cho phép và danh sách từ chối – Chỉ định các danh mục đã phân loại.
Dữ liệu đầu vào của việc cần làm | Kết quả đầu ra của nhiệm vụ |
---|---|
Dữ liệu đầu vào có thể là một trong các loại dữ liệu sau:
|
Trình phân loại hình ảnh sẽ xuất ra một danh sách các danh mục chứa:
|
Lựa chọn về cấu hình
Tác vụ này có các chế độ cấu hình sau:
Tên lựa chọn | Nội dung mô tả | Khoảng giá trị | Giá trị mặc định |
---|---|---|---|
running_mode |
Đặt chế độ chạy cho tác vụ. Có 3 chế độ: IMAGE: Chế độ nhập một hình ảnh. VIDEO: Chế độ khung hình đã giải mã của video. LIVE_STREAM: Chế độ phát trực tiếp dữ liệu đầu vào, chẳng hạn như từ máy quay. Ở chế độ này, bạn phải gọi resultsListener để thiết lập trình nghe nhằm nhận kết quả không đồng bộ. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
display_names_locale |
Đặt ngôn ngữ của nhãn để sử dụng cho tên hiển thị được cung cấp trong siêu dữ liệu của mô hình của tác vụ, nếu có. Giá trị mặc định là en đối với
tiếng Anh. Bạn có thể thêm nhãn đã bản địa hoá vào siêu dữ liệu của mô hình tuỳ chỉnh bằng cách sử dụng API Trình viết siêu dữ liệu TensorFlow Lite |
Mã ngôn ngữ | vi |
max_results |
Đặt số lượng kết quả phân loại được tính điểm cao nhất (không bắt buộc) để trả về. Nếu < 0, hàm sẽ trả về tất cả kết quả hiện có. | Số dương bất kỳ | -1 |
score_threshold |
Đặt ngưỡng điểm dự đoán để ghi đè ngưỡng được cung cấp trong siêu dữ liệu mô hình (nếu có). Những kết quả bên dưới giá trị này sẽ bị từ chối. | Số thực bất kỳ | Không đặt |
category_allowlist |
Đặt danh sách các tên danh mục được phép (không bắt buộc). Nếu không để trống, kết quả phân loại có tên danh mục không có tên trong tập hợp này sẽ bị lọc ra. Tên danh mục trùng lặp hoặc không xác định sẽ bị bỏ qua.
Tuỳ chọn này loại trừ lẫn nhau với category_denylist và việc sử dụng cả hai sẽ dẫn đến lỗi. |
Chuỗi bất kỳ | Không đặt |
category_denylist |
Đặt danh sách các tên danh mục không được phép (không bắt buộc). Nếu không để trống, kết quả phân loại có tên danh mục nằm trong tập hợp này sẽ bị lọc ra. Tên danh mục trùng lặp hoặc không xác định sẽ bị bỏ qua. Tuỳ chọn này loại trừ lẫn nhau với category_allowlist và việc sử dụng cả hai sẽ gây ra lỗi. |
Chuỗi bất kỳ | Không đặt |
result_callback |
Đặt trình nghe kết quả để nhận kết quả phân loại một cách không đồng bộ khi Trình phân loại hình ảnh đang ở chế độ phát trực tiếp. Chỉ có thể sử dụng khi bạn đặt chế độ chạy thành LIVE_STREAM |
Không áp dụng | Không đặt |
Mô hình
Trình phân loại hình ảnh yêu cầu bạn tải xuống và lưu trữ một mô hình phân loại hình ảnh trong thư mục dự án. Hãy bắt đầu bằng mô hình mặc định, được đề xuất cho nền tảng mục tiêu khi bạn bắt đầu phát triển bằng tác vụ này. Các mô hình hiện có khác thường có sự đánh đổi giữa hiệu suất, độ chính xác, độ phân giải và các yêu cầu về tài nguyên, và trong một số trường hợp còn có thêm các tính năng bổ sung.
Mô hình Hiệu quả-Lite0 (nên dùng)
Mô hình Hiệu quả-Lite0 sử dụng cấu trúc Hiệu quả và được huấn luyện bằng ImageNet để nhận dạng 1.000 lớp,chẳng hạn như cây, động vật, thực phẩm, xe cộ, con người, v.v. Hãy xem danh sách đầy đủ các nhãn được hỗ trợ. Hiệu quảNet-Lite0 có sẵn dưới dạng mô hình int8 và độ chính xác đơn 32. Mô hình này được đề xuất vì nó cân bằng giữa độ trễ và độ chính xác. Thiết bị này vừa chính xác vừa đủ nhẹ cho nhiều trường hợp sử dụng.
Tên mẫu thiết bị | Hình dạng dữ liệu đầu vào | Loại lượng tử hoá | Phiên bản |
---|---|---|---|
Hiệu quảNet-Lite0 (int8) | 224 x 224 | int8 | Mới nhất |
Hiệu quả-Lite0 (float 32) | 224 x 224 | Không có (float32) | Mới nhất |
Mô hình Hiệu quả-Lite2
Mô hình Hiệu quả-Lite2 sử dụng kiến trúc EfficiencyNet và được huấn luyện bằng cách sử dụng ImageNet để nhận ra 1.000 lớp,chẳng hạn như cây, động vật, thực phẩm, phương tiện, người, v.v. Hãy xem danh sách đầy đủ các nhãn được hỗ trợ. Hiệu quảNet-Lite2 có sẵn dưới dạng mô hình int8 và độ chính xác đơn 32. Mô hình này thường chính xác hơn ActionsNet-Lite0, nhưng cũng chậm hơn và tốn nhiều bộ nhớ hơn. Mô hình này phù hợp với các trường hợp sử dụng trong đó độ chính xác được ưu tiên cao hơn tốc độ hoặc kích thước.
Tên mẫu thiết bị | Hình dạng dữ liệu đầu vào | Loại lượng tử hoá | Phiên bản |
---|---|---|---|
Hiệu quảNet-Lite2 (int8) | 224 x 224 | int8 | Mới nhất |
Hiệu quả-Lite2 (nổi 32) | 224 x 224 | Không có (float32) | Mới nhất |
Điểm chuẩn nhiệm vụ
Dưới đây là các điểm chuẩn tác vụ cho toàn bộ quy trình dựa trên các mô hình được huấn luyện trước ở trên. Kết quả về độ trễ là độ trễ trung bình trên Pixel 6 khi sử dụng CPU / GPU.
Tên mô hình | Độ trễ của CPU | Độ trễ của GPU |
---|---|---|
hiệu quả-Lite0 (số nổi 32) | 23,52 mili giây | 18,90 mili giây |
Hiệu quảNet-Lite0 (int8) | 10,08 mili giây | - |
Hiệu quả-Lite2 (số nổi 32) | 44,17 mili giây | 22,20 mili giây |
Hiệu quảNet-Lite2 (int8) | 19,43 mili giây | - |
Mô hình tuỳ chỉnh
Bạn có thể sử dụng mô hình học máy tuỳ chỉnh cùng với nhiệm vụ này nếu muốn cải thiện hoặc thay đổi khả năng của các mô hình được cung cấp. Bạn có thể sử dụng Trình tạo mô hình để sửa đổi các mô hình hiện có hoặc xây dựng một mô hình bằng các công cụ như TensorFlow. Mô hình tuỳ chỉnh sử dụng với MediaPipe phải ở định dạng TensorFlow Lite và phải bao gồm siêu dữ liệu cụ thể mô tả các tham số hoạt động của mô hình. Bạn nên cân nhắc sử dụng Model Maker để sửa đổi các mô hình được cung cấp cho nhiệm vụ này trước khi tự xây dựng.
Nếu bạn muốn tạo một thuật toán phân loại hình ảnh tuỳ chỉnh bằng tập dữ liệu của riêng mình, hãy bắt đầu với hướng dẫn Tuỳ chỉnh thuật toán phân loại hình ảnh.