Hướng dẫn về phân đoạn hình ảnh

Nhiệm vụ của Trình phân đoạn hình ảnh MediaPipe cho phép bạn chia hình ảnh thành các vùng dựa trên danh mục. Bạn có thể dùng chức năng này để xác định những đối tượng hoặc hoạ tiết rồi áp dụng hiệu ứng hình ảnh như làm mờ nền. Việc cần làm này bao gồm một số mô hình được huấn luyện đặc biệt để phân khúc người dùng và trong dữ liệu hình ảnh, bao gồm:

  • Người và phông nền
  • Chỉ tóc của người
  • Mái tóc, khuôn mặt, da, quần áo và phụ kiện của người

Nhiệm vụ này hoạt động dựa trên dữ liệu hình ảnh bằng mô hình học máy (ML) với một hình ảnh hoặc luồng video liên tục. Công cụ này đưa ra danh sách các khu vực được phân đoạn, thể hiện các đối tượng hoặc vùng trong một hình ảnh, tuỳ thuộc vào mô hình bạn chọn.

Hãy trải nghiệm 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 những hướng dẫn triển khai sau cho nền tảng mục tiêu. Những hướng dẫn dành riêng cho nền tảng này sẽ hướng dẫn bạn từng bước việc triển khai tác vụ này, bao gồm mô hình được đề xuất và ví dụ về mã với các lựa 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 chức năng, dữ liệu đầu vào, đầu ra và cấu hình các tuỳ chọn của nhiệm vụ này.

Tính năng

  • Xử lý hình ảnh đầu vào – Quá trình xử lý bao gồm xoay, đổi kích thước hình ảnh, chuẩn hoá và chuyển đổi hệ màu.
Dữ liệu đầu vào của việc cần làm Kết quả đầu ra của việc cần làm
Dữ liệu đầu vào có thể là một trong những kiểu dữ liệu sau:
  • Hình ảnh tĩnh
  • Khung video đã được giải mã
  • Trang video trực tiếp
Công cụ phân đoạn hình ảnh xuất ra dữ liệu hình ảnh được phân đoạn, có thể bao gồm một hoặc cả hai điều sau, tuỳ thuộc vào tuỳ chọn cấu hình mà bạn đã đặt:
  • CATEGORY_MASK: một danh sách chứa một mặt nạ được phân đoạn dưới dạng hình ảnh định dạng uint8. Mỗi giá trị pixel cho biết liệu giá trị đó có thuộc danh mục phân khúc cụ thể mà mô hình hỗ trợ hay không.
  • CONFIDENCE_MASK: danh sách các kênh chứa mặt nạ được phân đoạn có các giá trị pixel ở định dạng float32. Mỗi giá trị pixel cho biết mức độ tin cậy rằng giá trị đó thuộc một danh mục cụ thể mà mô hình hỗ trợ.

Tuỳ chọn cấu hình

Tác vụ này có các lựa chọn cấu hình sau:

Tên lựa chọn Mô tả Khoảng giá trị Giá trị mặc định
running_mode Thiết lập chế độ chạy cho tác vụ. Có ba chế độ:

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

VIDEO: Chế độ cho các khung đã giải mã của video.

LIVE_STREAM: Chế độ phát trực tiếp đầu vào chẳng hạn như từ máy ảnh. Trong chế độ này, ResultsListener phải là để 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
output_category_mask Nếu bạn đặ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 danh mục chiến thắng giá trị. {True, False} False
output_confidence_masks Nếu bạn đặ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ị số thực, trong đó mỗi giá trị số thực biểu thị độ tin cậy bản đồ điểm số của danh mục. {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 về mô hình của công việc (nếu có). Mặc định là en cho 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 TensorFlow Lite Metadata Writer API Mã ngôn ngữ vi
result_callback Thiết lập trình nghe kết quả để nhận kết quả phân đoạn không đồng bộ khi trình phân đoạn hình ảnh đang ở chế độ LIVE_STREAM. Chỉ sử dụng được khi bạn đặt chế độ chạy thành LIVE_STREAM Không áp dụng Không áp dụng

Mô hình

Bạn có thể sử dụng Trình phân đoạn hình ảnh với nhiều mô hình học máy. Hầu hết các yêu cầu sau các mô hình phân đoạn được xây dựng và huấn luyện để thực hiện phân đoạn bằng hình ảnh của người. Tuy nhiên, mô hình DeepLab-v3 được xây dựng dưới dạng một mã tổng quát trình phân đoạn hình ảnh mục đích. Chọn mô hình phù hợp nhất với ứng dụng của bạn.

Mô hình phân đoạn ảnh chân dung tự chụp

Mô hình này có thể phân đoạn ảnh chân dung của người dùng và có thể được dùng để thay thế hoặc sửa đổi nền trong một hình ảnh. Mô hình này đưa ra 2 danh mục, nền ở chỉ mục 0 và người ở chỉ mục 1. Mô hình này có các phiên bản có hình dạng đầu vào khác nhau bao gồm phiên bản hình vuông và phiên bản ngang có thể hiệu quả hơn cho các ứng dụng mà đầu vào luôn có dạng đó, chẳng hạn như cuộc gọi video.

Tên mẫu thiết bị Hình dạng đầu vào Loại định lượng Thẻ mô hình Phiên bản
Trình phân đoạn ảnh tự chụp (hình vuông) 256 x 256 số thực dấu phẩy động 16 thông tin Mới nhất
Trình phân đoạn ảnh tự chụp (ngang) 144 x 256 số thực dấu phẩy động 16 thông tin Mới nhất

Mô hình phân đoạn tóc

Người mẫu này chụp ảnh một người, xác định vị trí tóc trên đầu và cho ra bản đồ phân đoạn hình ảnh cho kiểu tóc của họ. Bạn có thể sử dụng mô hình này cho nhuộm lại tóc hoặc áp dụng các hiệu ứng khác cho tóc. Mô hình cho ra những kết quả sau: danh mục phân khúc:

0 - background
1 - hair
Tên mẫu thiết bị Hình dạng đầu vào Loại định lượng Thẻ mô hình Phiên bản
HairSegmenter 512 x 512 Không có (float32) thông tin Mới nhất

Mô hình phân đoạn ảnh chân dung tự chụp đa lớp

Mô hình này chụp ảnh một người, xác định vị trí của các khu vực như tóc, da và quần áo rồi tạo ra bản đồ phân đoạn hình ảnh cho các mục này. Bạn có thể sử dụng mô hình này để áp dụng nhiều hiệu ứng khác nhau cho mọi người trong hình ảnh hoặc video. Mô hình sẽ đưa ra các danh mục phân đoạn sau:

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Tên mẫu thiết bị Hình dạng đầu vào Loại định lượng Thẻ mô hình Phiên bản
SelfieMulticlass (256 x 256) 256 x 256 Không có (float32) thông tin Mới nhất

Mô hình DeepLab-v3

Mô hình này xác định các phân đoạn cho một số danh mục, bao gồm nền, người, mèo, chó và cây trồng trong chậu. Mô hình này sử dụng kim tự tháp không gian ngang để thu thập thông tin có phạm vi dài hơn. Để biết thêm thông tin, hãy xem DeepLab-v3.

Tên mẫu thiết bị Hình dạng đầu vào Loại định lượng Phiên bản
DeepLab-V3 257 x 257 Không có (float32) Mới nhất

Điểm chuẩn của việc cần làm

Sau đây là điểm chuẩn cho toàn bộ quy trình dựa trên nội dung được huấn luyện trước ở trên người mẫu. Kết quả về độ trễ là độ trễ trung bình trên Pixel 6 sử dụng CPU / GPU.

Tên mô hình Độ trễ của CPU Độ trễ của GPU
Công cụ phân đoạn ảnh tự chụp (hình vuông) 33,46 mili giây 35,15 mili giây
Trình phân đoạn ảnh tự chụp (ngang) 34,19 mili giây 33,55 mili giây
HairSegmenter 57,90 mili giây 52,14 mili giây
SelfieMulticlass (256 x 256) 217,76 mili giây 71,24 mili giây
DeepLab-V3 123,93 mili giây 103,30 mili giây