Hướng dẫn về thao tác nhúng hình ảnh

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á.

Hãy dùng thử!

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:

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:
  • Hình ảnh tĩnh
  • Khung video đã được giải mã
  • Trang video trực tiếp
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:
  • Nhúng: chính vectơ đối tượng ở dạng dấu phẩy động hoặc lượng tử vô hướng.
  • Chỉ mục đầu: chỉ mục cho đầu tạo ra tính năng nhúng này.
  • Tên phần đầu (không bắt buộc): tên của phần đầu tạo ra lượt nhúng này.

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