Tác vụ Trình phân đoạn hình ảnh tương tác MediaPipe cho phép bạn chia một hình ảnh thành hai vùng: một đối tượng đã chọn và mọi thứ khác. Tác vụ này lấy một vị trí trong hình ảnh, ước tính ranh giới của một đối tượng tại vị trí đó và trả về dữ liệu hình ảnh xác định diện tích của đối tượng. Bạn có thể sử dụng tác vụ này để chọn một đối tượng trong hình ảnh theo cách tương tác và sử dụng kết quả để áp dụng hiệu ứng cho hình ảnh, chẳng hạn như lớp phủ màu làm nổi bật đối tượng hoặc làm mờ nền xung quanh đối tượng đó. Tác vụ này hoạt động trên dữ liệu hình ảnh bằng mô hình học máy (ML) và bạn có thể sử dụng tác vụ này trên một hình ảnh, tệp video hoặc luồng video liên tục.
Bắt đầu
Bắt đầu sử dụng tác vụ này bằng cách làm theo một trong các hướng dẫn triển khai sau đây 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 cho tác vụ này, bao gồm cả mô hình được đề xuất và ví dụ về mã với các tuỳ 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
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, dữ liệu đầ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 – Quá trình xử lý bao gồm xoay hình ảnh, đổi kích thước, chuẩn hoá và chuyển đổi không gian màu.
Dữ liệu đầu vào của việc cần làm | Kết quả của tác vụ |
---|---|
|
Trình phân đoạn hình ảnh tương tác sẽ xuất dữ liệu hình ảnh được phân đoạn, dữ liệu này có thể bao gồm một hoặc cả hai thành phần sau, tuỳ thuộc vào các tuỳ chọn cấu hình mà bạn đặt:
|
Tuỳ chọn cấu hình
Tác vụ này có các tuỳ chọn cấu hình sau:
Tên tuỳ chọn | Mô tả | Phạm vi giá trị | Giá trị mặc định |
---|---|---|---|
output_category_mask |
Nếu được đặt thành True , kết quả sẽ bao gồm một mặt nạ phân đoạn dưới dạng hình ảnh uint8, trong đó mỗi giá trị pixel cho biết liệu pixel đó có phải là một phần của đối tượng nằm trong khu vực quan tâm hay không. |
{True, False } |
False |
output_confidence_masks |
Nếu được đặt thành True , kết quả sẽ bao gồm một mặt nạ phân đoạn dưới dạng hình ảnh giá trị dấu phẩy động, trong đó mỗi giá trị dấu phẩy động thể hiện độ tin cậy rằng pixel là một phần của đối tượng nằm trong khu vực quan tâm. |
{True, False } |
True |
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 tác vụ, nếu có. 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 ghi siêu dữ liệu TensorFlow Lite
| Mã ngôn ngữ | vi |
Mô hình
Bạn có thể sử dụng Trình phân đoạn hình ảnh tương tác với nhiều mô hình học máy. Bắt đầu với mô hình mặc định, được đề xuất cho nền tảng mục tiêu của bạn khi bạn bắt đầu phát triển bằng tác vụ này. Các mô hình khác hiện có thường đánh đổi giữa hiệu suất, độ chính xác, độ phân giải và yêu cầu về tài nguyên, đồng thời trong một số trường hợp, bao gồm cả các tính năng bổ sung.
Mô hình MagicTouch (nên dùng)
Mô hình này xác định các phân đoạn được cung cấp toạ độ hình ảnh cho một khu vực quan tâm. Mô hình này sử dụng một Mạng nơron tích chập, tương tự như cấu trúc MobileNetV3, với một bộ giải mã tuỳ chỉnh.
Tên mẫu thiết bị | Hình dạng đầu vào | Loại lượng tử hoá | Thẻ mô hình | Phiên bản |
---|---|---|---|---|
MagicTouch | 512 x 512 x 4 | Không có (float32) | info | Mới nhất |
Điểm chuẩn tác vụ
Dưới đây là đ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ễ CPU | Độ trễ GPU |
---|---|---|
MagicTouch | 130,11 mili giây | 67,25 mili giây |