Tác vụ 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 các danh mục được xác định trước. Bạn có thể sử dụng chức năng này để xác định các đối tượng hoặc hoạ tiết cụ thể, sau đó áp dụng các hiệu ứng hình ảnh như làm mờ nền. Tác vụ này bao gồm một số mô hình được huấn luyện riêng để phân đoạn người và các đặc điểm của họ trong dữ liệu hình ảnh, bao gồm:
- Người và nền
- Chỉ có tóc của người
- Tóc, mặt, da, quần áo và phụ kiện của người
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ới hình ảnh đơn hoặc luồng video liên tục. Hàm này sẽ xuất ra danh sách các vùng được phân đoạn, đại diện cho các đối tượng hoặc khu vực trong hình ảnh, tuỳ thuộc vào mô hình mà bạn chọn.
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ụ |
---|---|
Dữ liệu đầu vào có thể là một trong các loại dữ liệu sau:
|
Trình phân đoạn hình ảnh 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 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 |
---|---|---|---|
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 |
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 giá trị danh mục chiến thắ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ị float, trong đó mỗi giá trị float đại diện cho bản đồ điểm số tin cậy 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 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 |
result_callback |
Đặt trình nghe kết quả để nhận kết quả phân đoạn một cách không đồng bộ khi trình phân đoạn hình ảnh ở chế độ LIVE_STREAM .
Chỉ có thể sử dụng khi chế độ chạy được đặt 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 mô hình phân đoạn sau đây được tạo và huấn luyện để phân đoạn hình ảnh của con người. Tuy nhiên, mô hình DeepLab-v3 được xây dựng dưới dạng một trình phân đoạn hình ảnh dùng cho nhiều 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 chân dung của một người và có thể được dùng để thay thế hoặc sửa đổi nền trong hình ảnh. Mô hình này sẽ xuất ra hai 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 với nhiều hình dạng đầu vào, bao gồm phiên bản hình vuông và phiên bản ngang. Các phiên bản này có thể hiệu quả hơn cho các ứng dụng mà đầu vào luôn có hình 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 lượng tử hoá | Thẻ mô hình | Phiên bản |
---|---|---|---|---|
SelfieSegmenter (hình vuông) | 256 x 256 | float 16 | info | Mới nhất |
SelfieSegmenter (ngang) | 144 x 256 | float 16 | info | Mới nhất |
Mô hình phân đoạn tóc
Mô hình này chụp ảnh một người, xác định vị trí tóc trên đầu và xuất ra bản đồ phân đoạn hình ảnh cho tóc của người đó. Bạn có thể sử dụng mô hình này để nhuộm lại tóc hoặc áp dụng các hiệu ứng tóc khác. Mô hình này sẽ xuất ra các danh mục phân đoạn sau:
0 - background
1 - hair
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 |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Không có (float32) | info | Mới nhất |
Mô hình phân đoạn ảnh chân dung tự chụp theo nhiều 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, đồng thời xuất 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 cho người trong hình ảnh hoặc video. Mô hình này sẽ xuất 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 lượng tử hoá | Thẻ mô hình | Phiên bản |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | Không có (float32) | info | 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 cảnh. Mô hình này sử dụng tính năng gộp kim tự tháp không gian atrous để thu thập thông tin ở phạm vi xa hơn. Để biết thêm thông tin, hãy xem bài viết về DeepLab-v3.
Tên mẫu thiết bị | Hình dạng đầu vào | Loại lượng tử hoá | Phiên bản |
---|---|---|---|
DeepLab-V3 | 257 x 257 | 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ả độ 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 |
---|---|---|
SelfieSegmenter (hình vuông) | 33,46 mili giây | 35,15 mili giây |
SelfieSegmenter (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 |