Panduan segmentasi gambar

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.

Cobalah!

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:

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:
  • Gambar diam
  • Frame video yang didekode
  • Feed video live
Image Segmenter menghasilkan data gambar yang tersegmentasi, yang dapat mencakup salah satu atau kedua hal berikut, bergantung pada opsi konfigurasi yang Anda tetapkan:
  • CATEGORY_MASK: daftar yang berisi mask tersegmentasi sebagai gambar format uint8. Setiap nilai piksel menunjukkan apakah itu merupakan bagian dari kategori segmen tertentu yang didukung oleh model.
  • CONFIDENCE_MASK: daftar saluran yang berisi mask tersegmentasi dengan nilai piksel dalam format float32. Setiap nilai piksel menunjukkan tingkat keyakinan bahwa piksel tersebut adalah bagian dari kategori tertentu yang didukung oleh model.

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