Tugas MediaPipe Image Segmenter memungkinkan Anda membagi gambar menjadi region berdasarkan kategori yang telah ditentukan. Anda dapat menggunakan fungsi ini untuk mengidentifikasi objek atau tekstur tertentu, lalu menerapkan efek visual seperti pemburaman latar belakang. Tugas ini mencakup beberapa model yang secara khusus dilatih untuk menyegmentasikan orang dan fiturnya dalam data gambar, termasuk:
- Orang dan latar belakang
- Hanya rambut orang
- Rambut, wajah, kulit, pakaian, dan aksesori orang
Tugas ini beroperasi pada data gambar dengan model machine learning (ML) dengan satu gambar atau streaming video nonstop. Class ini menghasilkan daftar region tersegmentasi, yang mewakili objek atau area dalam gambar, bergantung pada model yang Anda pilih.
Mulai
Mulai gunakan tugas ini dengan mengikuti salah satu panduan penerapan ini untuk platform target Anda. Panduan khusus platform ini akan memandu Anda dalam menerapkan dasar tugas ini, termasuk model yang direkomendasikan, dan contoh kode dengan opsi konfigurasi yang direkomendasikan:
- Android - Contoh kode - Panduan
- Python - Contoh kode Panduan
- Web - Contoh kode - Panduan
Detail tugas
Bagian ini menjelaskan kemampuan, input, output, dan opsi konfigurasi tugas ini.
Fitur
- Pemrosesan gambar input - Pemrosesan mencakup rotasi gambar, pengubahan ukuran, normalisasi, dan konversi ruang warna.
Input tugas | Output tugas |
---|---|
Input dapat berupa salah satu jenis data berikut:
|
Image Segmenter menghasilkan data gambar yang tersegmentasi, yang dapat mencakup salah satu atau kedua hal berikut, bergantung pada opsi konfigurasi yang Anda tetapkan:
|
Opsi konfigurasi
Tugas ini memiliki opsi konfigurasi berikut:
Nama Opsi | Deskripsi | Rentang Nilai | Nilai Default |
---|---|---|---|
running_mode |
Menetapkan mode berjalan untuk tugas. Ada tiga
mode: IMAGE: Mode untuk input gambar tunggal. VIDEO: Mode untuk frame video yang didekode. LIVE_STREAM: Mode untuk livestream data input, seperti dari kamera. Dalam mode ini, resultListener harus dipanggil untuk menyiapkan pemroses yang menerima hasil secara asinkron. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
Jika ditetapkan ke True , output-nya akan menyertakan mask segmentasi sebagai gambar uint8, dengan setiap nilai piksel menunjukkan nilai kategori
yang menang. |
{True, False } |
False |
output_confidence_masks |
Jika ditetapkan ke True , output akan menyertakan mask segmentasi sebagai gambar nilai float, dengan setiap nilai float mewakili peta skor keyakinan
dari kategori tersebut. |
{True, False } |
True |
display_names_locale |
Menetapkan bahasa label yang akan digunakan untuk nama tampilan yang diberikan dalam
metadata model tugas, jika tersedia. Defaultnya adalah en untuk bahasa Inggris. Anda dapat menambahkan label yang dilokalkan ke metadata model kustom menggunakan TensorFlow Lite Metadata Writer API
| Kode lokal | id |
result_callback |
Menetapkan pemroses hasil untuk menerima hasil segmentasi secara asinkron saat segmentasi gambar berada dalam mode live stream.
Hanya dapat digunakan saat mode lari disetel ke LIVE_STREAM |
T/A | T/A |
Model
Image Segmenter dapat digunakan dengan lebih dari satu model ML. Sebagian besar model segmentasi berikut dibuat dan dilatih untuk melakukan segmentasi dengan gambar orang. Namun, model DeepLab-v3 dibuat sebagai segmener gambar untuk tujuan umum. Pilih model yang paling cocok untuk aplikasi Anda.
Model segmentasi selfie
Model ini dapat mengelompokkan potret seseorang, dan dapat digunakan untuk mengganti atau mengubah latar belakang dalam gambar. Model ini menghasilkan dua kategori, latar belakang di indeks 0 dan orang di indeks 1. Model ini memiliki versi dengan bentuk input yang berbeda, termasuk versi persegi dan versi lanskap yang mungkin lebih efisien untuk aplikasi yang inputnya selalu berbentuk tersebut, seperti panggilan video.
Nama model | Bentuk input | Jenis kuantisasi | Kartu Model | Versions |
---|---|---|---|---|
SelfieSegmenter (persegi) | 256 x 256 | float 16 | info | Terbaru |
SelfieSegmenter (lanskap) | 144 x 256 | float 16 | info | Terbaru |
Model segmentasi rambut
Model ini mengambil gambar seseorang, menemukan rambut di kepalanya, dan menghasilkan peta segmentasi gambar untuk rambutnya. Anda dapat menggunakan model ini untuk mewarnai rambut atau menerapkan efek rambut lainnya. Model ini menghasilkan kategori segmentasi berikut:
0 - background
1 - hair
Nama model | Bentuk input | Jenis kuantisasi | Kartu Model | Versions |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Tidak ada (float32) | info | Terbaru |
Model segmentasi selfie multi-class
Model ini mengambil gambar seseorang, menemukan area untuk berbagai area seperti rambut, kulit, dan pakaian, serta menampilkan peta segmentasi gambar untuk item tersebut. Anda dapat menggunakan model ini untuk menerapkan berbagai efek kepada orang dalam gambar atau video. Model ini menghasilkan kategori segmentasi berikut:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Nama model | Bentuk input | Jenis kuantisasi | Kartu Model | Versions |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | Tidak ada (float32) | info | Terbaru |
Model DeepLab-v3
Model ini mengidentifikasi segmen untuk sejumlah kategori, termasuk latar belakang, orang, kucing,, dan tanaman dalam pot. Model ini menggunakan kumpulan piramida spasial yang mengerikan untuk menangkap informasi dengan rentang yang lebih panjang. Untuk mengetahui informasi selengkapnya, lihat DeepLab-v3.
Nama model | Bentuk input | Jenis kuantisasi | Versions |
---|---|---|---|
DeepLab-V3 | 257 x 257 | Tidak ada (float32) | Terbaru |
Tolok ukur tugas
Berikut adalah benchmark tugas untuk seluruh pipeline berdasarkan model terlatih di atas. Hasil latensi adalah latensi rata-rata di Pixel 6 yang menggunakan CPU / GPU.
Nama Model | Latensi CPU | Latensi GPU |
---|---|---|
SelfieSegmenter (persegi) | 33,46 md | 35,15 md |
SelfieSegmenter (lanskap) | 34,19 md | 33,55 md |
HairSegmenter | 57,90 md | 52,14 md |
SelfieMulticlass (256 x 256) | 217,76 md | 71,24 md |
DeepLab-V3 | 123,93 md | 103,30 md |