Tugas Segmentasi Gambar MediaPipe memungkinkan Anda membagi gambar ke dalam wilayah berdasarkan kategori. Anda dapat menggunakan fungsi ini untuk mengidentifikasi objek atau tekstur, lalu menerapkan efek visual seperti pemburaman latar belakang. Tugas ini mencakup beberapa model yang dilatih khusus untuk menyegmentasi orang dan fitur-fitur dalam data gambar, termasuk:
- Orang dan latar belakang
- Rambut orang saja
- Rambut, wajah, kulit, pakaian, dan aksesori seseorang
Tugas ini beroperasi pada data gambar dengan model machine learning (ML) dengan satu gambar atau streaming video berkelanjutan. Perintah ini menghasilkan daftar region yang tersegmentasi, yang merepresentasikan objek atau area dalam gambar, bergantung pada model yang Anda pilih.
Mulai
Mulai gunakan tugas ini dengan mengikuti salah satu panduan implementasi berikut untuk platform target. Panduan khusus platform ini memandu Anda memahami implementasi tugas ini, termasuk model yang direkomendasikan, dan contoh kode dengan opsi konfigurasi yang direkomendasikan:
- Android - Kode contoh - Panduan
- Python - Contoh kode Panduan
- Web - Kode contoh - Panduan
Detail tugas
Bagian ini menjelaskan kemampuan, input, output, dan konfigurasi opsi untuk 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 disegmentasikan, yang dapat mencakup 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
moda: IMAGE: Mode untuk input gambar tunggal. VIDEO: Mode untuk frame video yang didekode. LIVE_STREAM: Mode untuk live stream input besar, seperti dari kamera. Dalam mode ini, resultListener harus dipanggil untuk menyiapkan pemroses yang akan menerima hasil secara asinkron. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
Jika ditetapkan ke True , output akan menyertakan mask segmentasi
sebagai gambar uint8, dengan setiap nilai piksel menunjukkan kategori pemenang
dengan sejumlah nilai. |
{True, False } |
False |
output_confidence_masks |
Jika ditetapkan ke True , output akan menyertakan mask segmentasi
sebagai gambar nilai {i>float<i}, dengan setiap nilai {i>float<i} mewakili tingkat keyakinan
skor kategori kategori. |
{True, False } |
True |
display_names_locale |
Menyetel bahasa label yang akan digunakan untuk nama tampilan yang diberikan di
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 pembagi gambar berada dalam mode LIVE_STREAM .
Hanya dapat digunakan saat mode lari disetel ke LIVE_STREAM |
T/A | T/A |
Model
Segmentasi Gambar dapat digunakan dengan lebih dari satu model ML. Sebagian besar hal berikut model segmentasi dibuat dan dilatih untuk melakukan segmentasi dengan gambar orang. Namun, model DeepLab-v3 dibuat sebagai pembagi gambar. Pilih model yang paling sesuai untuk aplikasi Anda.
Model segmentasi selfie
Model ini dapat menyegmentasi potret seseorang dan dapat digunakan untuk menggantikan atau mengubah latar belakang dalam gambar. Model menghasilkan dua kategori, latar belakang pada indeks 0 dan orang pada indeks 1. Model ini memiliki versi dengan bentuk input yang berbeda termasuk versi persegi dan versi lanskap yang mungkin lebih efisien untuk aplikasi di mana {i> input <i}selalu dengan bentuk itu, seperti panggilan video.
Nama model | Bentuk input | Jenis kuantisasi | Kartu Model | Versi |
---|---|---|---|---|
SelfieSegmenter (persegi) | 256 x 256 | mengambang 16 | info | Terbaru |
SelfieSegmenter (lanskap) | 144 x 256 | mengambang 16 | info | Terbaru |
Model segmentasi rambut
Model ini mengambil gambar seseorang, meletakkan rambutnya di kepalanya, dan menghasilkan peta segmentasi gambar untuk rambutnya. Anda dapat menggunakan model ini untuk mewarnai ulang rambut atau menerapkan efek rambut lainnya. Model ini menghasilkan output kategori segmentasi:
0 - background
1 - hair
Nama model | Bentuk input | Jenis kuantisasi | Kartu Model | Versi |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Tidak ada (float32) | info | Terbaru |
Model segmentasi selfie multi-kelas
Model ini mengambil gambar seseorang, menemukan area untuk berbagai area seperti rambut, kulit, dan pakaian, dan menghasilkan peta segmentasi gambar untuk item-item ini. Anda dapat menggunakan model ini untuk menerapkan berbagai efek ke 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 | Versi |
---|---|---|---|---|
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 di pot. Model ini menggunakan piramida spasial atrous untuk menangkap informasi dengan rentang yang lebih panjang. Untuk informasi selengkapnya, lihat DeepLab-v3.
Nama model | Bentuk input | Jenis kuantisasi | Versi |
---|---|---|---|
DeepLab-V3 | 257 x 257 | Tidak ada (float32) | Terbaru |
{i>Benchmark tugas<i}
Berikut adalah tolok ukur tugas untuk seluruh pipeline berdasarkan jaringan. 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 |