Panduan segmentasi gambar

Contoh berdampingan dari foto close-up seorang pria di samping mask gambar yang menguraikan bentuk pria tersebut

Tugas MediaPipe Image Segmenter memungkinkan Anda membagi gambar menjadi beberapa area 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 dilatih secara khusus untuk menyegmentasikan orang dan fitur mereka 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 gambar tunggal atau streaming video berkelanjutan. Fungsi ini menghasilkan daftar area yang tersegmentasi, yang mewakili objek atau area dalam gambar, bergantung pada model yang Anda pilih.

Coba sekarang.

Mulai

Mulai gunakan tugas ini dengan mengikuti salah satu panduan penerapan ini untuk platform target Anda. Panduan khusus platform ini akan memandu Anda dalam penerapan 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 satu atau dua 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 nilai tersebut merupakan bagian dari kategori segmen tertentu yang didukung oleh model.
  • CONFIDENCE_MASK: daftar saluran yang berisi mask yang tersegmentasi dengan nilai piksel dalam format float32. Setiap nilai piksel menunjukkan tingkat keyakinan bahwa nilai 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:

GAMBAR: Mode untuk input gambar tunggal.

VIDEO: Mode untuk frame video yang didekode.

LIVE_STREAM: Mode untuk live stream data input, seperti dari kamera. Dalam mode ini, resultListener harus dipanggil untuk menyiapkan pemroses guna 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 nilai kategori pemenang. {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 kategori. {True, False} True
display_names_locale Menetapkan bahasa label yang akan digunakan untuk nama tampilan yang diberikan dalam metadata model tugas, jika tersedia. Default-nya adalah en untuk bahasa Inggris. Anda dapat menambahkan label yang dilokalkan ke metadata model kustom menggunakan TensorFlow Lite Metadata Writer API Kode lokalitas id
result_callback Menetapkan pemroses hasil untuk menerima hasil segmentasi secara asinkron saat pemisah gambar berada dalam mode LIVE_STREAM. Hanya dapat digunakan jika mode berjalan 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 manusia. Namun, model DeepLab-v3 dibuat sebagai segmentator gambar umum. Pilih model yang paling sesuai untuk aplikasi Anda.

Model segmentasi selfie

Model ini dapat menyegmentasikan potret seseorang, dan dapat digunakan untuk mengganti atau memodifikasi 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 dengan input yang selalu berbentuk seperti itu, seperti panggilan video.

Nama model Bentuk input Jenis kuantisasi Kartu Model Versi
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 mengubah warna rambut atau menerapkan efek rambut lainnya. Model menghasilkan kategori segmentasi berikut:

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-class

Model ini mengambil gambar seseorang, menemukan area untuk berbagai area seperti rambut, kulit, dan pakaian, serta menghasilkan peta segmentasi gambar untuk item ini. Anda dapat menggunakan model ini untuk menerapkan berbagai efek pada orang dalam gambar atau video. Model 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 dalam pot. Model ini menggunakan pooling piramida spasial atrous untuk menangkap informasi 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

Tolok ukur tugas

Berikut adalah benchmark tugas untuk seluruh pipeline berdasarkan model pre-trained 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 mdtk 71,24 md
DeepLab-V3 123,93 md 103,30 md