Panduan segmentasi gambar

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.

Cobalah!

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:

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