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

Hai hình ảnh mẫu về ly kem có chứa các phần nhúng số của hình ảnh dưới dạng mảng

Tác 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, 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 hai hình ảnh bằng các kỹ thuật so sánh toán học như Cosine Similarity (Mức độ tương đồng theo cosin). 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) dưới dạng dữ liệu tĩnh hoặc luồng liên tục, đồng thời xuất ra một bản trình bày dạng số của dữ liệu hình ảnh dưới dạng danh sách các vectơ đặc điểm có chiều cao, còn gọi là vectơ nhúng, ở dạng dấu phẩy động hoặc dạng lượng tử.

Hãy dùng thử!

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 từng nền tảng này sẽ hướng dẫn bạn cách triển khai cơ bản nhiệm vụ này bằng cách sử dụng mô hình được đề xuất và cung cấp các ví dụ về mã với các tuỳ 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, 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.
  • Vùng quan tâm – Thực hiện nhúng vào một vùng của hình ảnh thay vì toàn bộ hình ảnh.
  • Tính toán độ tương đồng nhúng – Hàm tiện ích tích hợp để tính toán độ tương đồng cosin giữa hai vectơ đặc điểm
  • Lượng tử hoá – Hỗ trợ lượng tử hoá vô hướng cho các vectơ đặc điểm.
Dữ liệu đầu vào của việc cần làm Kết quả của tác 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 hình video đã giải mã
  • Nguồn cấp dữ liệu video trực tiếp
Trình nhúng hình ảnh sẽ xuất ra danh sách các phần nhúng bao gồm:
  • Nhúng: chính vectơ đặc điểm, ở dạng dấu phẩy động hoặc được lượng tử hoá theo vectơ.
  • Chỉ mục đầu: chỉ mục cho đầu đã tạo ra phần nhúng này.
  • Tên đầu (không bắt buộc): tên của đầu đã tạo ra nội dung nhúng này.

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
running_mode Đặt chế độ chạy cho tác vụ. Có 3 chế độ:

HÌNH ẢNH: Chế độ cho dữ liệu đầu vào là một hình ảnh.

VIDEO: Chế độ cho các 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 ảnh. Ở chế độ này, bạn phải gọi resultListener để thiết lập trình nghe nhận kết quả một cách không đồng bộ.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
l2_normalize Liệu có chuẩn hoá vectơ đặc điểm được trả về bằng chuẩn L2 hay không. Chỉ sử dụng tuỳ chọn này nếu mô hình chưa chứa thao tác L2_NORMALIZATION TFLite gốc. Trong hầu hết các trường hợp, đây đã là trường hợp và việc chuẩn hoá L2 được thực hiện thông qua suy luận TFLite mà không cần tuỳ chọn này. Boolean False
quantize Liệu nội dung nhúng được trả về có được lượng tử hoá thành byte thông qua lượng tử hoá vô hướng hay không. Các phần nhúng được giả định ngầm là đơn vị chuẩn và do đó, mọi phương diện đều được đảm bảo có giá trị trong [-1.0, 1.0]. Sử dụng tuỳ chọn l2_normalize nếu không phải như vậy. Boolean False
result_callback Đặt trình nghe kết quả để nhận kết quả nhúng không đồng bộ khi Trình nhúng hình ảnh ở chế độ phát trực tiếp. Chỉ có thể sử dụng khi chế độ chạy được đặt thành LIVE_STREAM Không áp dụng Chưa đặt

Mô hình

Trình nhúng hình ảnh yêu cầu tải mô hình nhúng hình ảnh xuống và lưu trữ trong thư mục dự án. Bắt đầu với 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 nhiệm vụ này. Các mô hình khác có sẵn 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 MobileNetV3

Nhóm mô hình này sử dụng cấu 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ố 0,75 cho độ sâu (số lượng đặc điểm) trong các lớp convolutional để điều chỉnh độ trễ-tính 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 đầ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 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
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