Nhiệm vụ Trình nhúng hình ảnh MediaPipe cho phép bạn tạo một bản trình bày dạng số của hình ảnh. Tính năng này rất hữu ích trong việc hoàn thành nhiều tác vụ hình ảnh dựa trên công nghệ học máy. Chức năng này thường được dùng để so sánh mức độ tương đồng của 2 hình ảnh bằng các kỹ thuật so sánh toán học, chẳng hạn như Độ tương đồng Cosin. Tác vụ 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, và xuất ra một bản trình bày số của dữ liệu hình ảnh dưới dạng danh sách vectơ tính năng nhiều chiều, còn gọi là vectơ nhúng, ở dạng dấu phẩy động hoặc lượng tử hoá.
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 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
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 nhúng vào một vùng của hình ảnh thay vì toàn bộ hình ảnh.
- Nhúng phép tính độ tương đồng – Hàm hiệu dụng tích hợp sẵn để tính độ tương đồng cos giữa hai vectơ đặc trưng
- Lượng tử hoá – Hỗ trợ lượng tử vô hướng cho các vectơ đối tượng.
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 nhúng hình ảnh sẽ xuất ra một danh sách các hoạt động nhúng bao gồm:
|
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 |
l2_normalize |
Liệu có chuẩn hoá vectơ tính năng được trả về với chuẩn L2 hay không. Chỉ sử dụng lựa chọn này nếu mô hình chưa chứa thành phần TFLite Op L2_NORMALIZATION gốc. Trong hầu hết các trường hợp, trường hợp này đã được chuẩn hoá và do đó, việc chuẩn hoá L2 có thể đạt được thông qua khả năng dự đoán TFLite mà không cần đến tuỳ chọn này. | Boolean |
False |
quantize |
Liệu hoạt động nhúng được trả về có phải được lượng tử hoá thành byte thông qua lượng tử hoá vô hướng hay không. Các hoạt động nhúng được ngầm giả định là chuẩn đơn vị và do đó, mọi thứ nguyên đều đảm bảo có giá trị trong [-1.0, 1.0]. Hãy sử dụng tuỳ chọn l2_normalize nếu bạn không muốn làm vậy. | Boolean |
False |
result_callback |
Thiết lập trình nghe kết quả để nhận kết quả nhúng một cách không đồng bộ khi Trình nhúng 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 nhúng hình ảnh yêu cầu bạn tải xuống và lưu trữ mô hình nhúng 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 của bạn khi bắt đầu phát triển bằng tác vụ này. Các mô hình có sẵn khác thường cân bằng 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 MobileNetV3
Nhóm mô hình này sử dụng kiến trúc MobileNet V3 và được huấn luyện bằng dữ liệu ImageNet. Mô hình này sử dụng hệ số nhân là 0,75 cho độ sâu (số tính năng) trong lớp tích chập để điều chỉnh sự đánh đổi độ trễ chính xác. Ngoài ra, MobileNet V3 có hai kích thước khác nhau, nhỏ và lớn, để điều chỉnh mạng cho các trường hợp sử dụng tài nguyên thấp hoặc cao.
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 |
---|---|---|---|
MobileNet-V3 (nhỏ) | 224 x 224 | Không có (float32) | Mới nhất |
MobileNet-V3 (lớn) | 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 |
---|---|---|
MobileNet-V3 (nhỏ) | 3,94 mili giây | 7,83 mili giây |
MobileNet-V3 (lớn) | 9,75 mili giây | 9,08 mili giây |