Görüntü segmentasyon kılavuzu

MediaPipe Resim Segmenter görevi, görüntüleri önceden tanımlanmış kategorilere göre bölgelere ayırmanızı sağlar. Bu işlevi belirli nesneleri veya dokuları tanımlamak ve ardından arka plan bulanıklaştırma gibi görsel efektler uygulamak için kullanabilirsiniz. Bu görev, insanları ve kişilerin resim verilerindeki özelliklerini segmentlere ayırmak için özel olarak eğitilmiş çeşitli modelleri içerir. Örneğin:

  • Kişi ve arka plan
  • Yalnızca kişinin saçı
  • Kişinin saçı, yüzü, cildi, kıyafeti ve aksesuarları

Bu görev, tek görüntüler veya sürekli video akışı içeren bir makine öğrenimi (ML) modeliyle görüntü verileri üzerinde çalışır. Seçtiğiniz model bağlı olarak bir resimdeki nesneleri veya alanları temsil eden segmentlere ayrılmış bölgelerin bir listesini oluşturur.

Deneyin!

Başlayın

Hedef platformunuz için bu uygulama rehberlerinden birini izleyerek bu görevi kullanmaya başlayın. Bu platforma özel kılavuzlar, önerilen bir model ve önerilen yapılandırma seçenekleriyle birlikte kod örneği dahil olmak üzere, bu görevin temel bir şekilde uygulanmasında size yol gösterir:

Görev ayrıntıları

Bu bölümde, bu görevin özellikleri, girişleri, çıkışları ve yapılandırma seçenekleri açıklanmaktadır.

Özellikler

  • Giriş resmi işleme: İşleme resim döndürme, yeniden boyutlandırma, normalleştirme ve renk alanı dönüştürme işlemlerini içerir.
Görev girişleri Görev çıkışları
Giriş, aşağıdaki veri türlerinden biri olabilir:
  • Hareketsiz resimler
  • Kodu çözülmüş video kareleri
  • Canlı video feed'i
Resim Segmenter, ayarladığınız yapılandırma seçeneklerine bağlı olarak aşağıdakilerden birini veya ikisini birden içerebilen segmentlere ayrılmış resim verileri sunar:
  • CATEGORY_MASK: uint8 biçimli resim olarak segmentlere ayrılmış maske içeren bir liste. Her piksel değeri, modelin desteklediği belirli bir segment kategorisinin parçası olup olmadığını gösterir.
  • CONFIDENCE_MASK: float32 biçiminde piksel değerlerine sahip segmentlere ayrılmış bir maske içeren kanalların listesi. Her piksel değeri, modelin desteklediği belirli bir kategorinin parçası olduğuna dair güven düzeyini gösterir.

Yapılandırma seçenekleri

Bu görev aşağıdaki yapılandırma seçeneklerine sahiptir:

Seçenek Adı Açıklama Değer Aralığı Varsayılan Değer
running_mode Görevin çalışma modunu ayarlar. Üç mod vardır:

RESİM: Tek resimli girişler için mod.

VİDEO: Bir videonun kodu çözülmüş karelerine yönelik mod.

LIVE_STREAM: Kamera gibi giriş verilerini içeren bir canlı yayın modu. Bu modda, sonuçları eşzamansız olarak almak üzere bir işleyici ayarlamak için resultListener çağrılmalıdır.
{IMAGE, VIDEO, LIVE_STREAM} IMAGE
output_category_mask True olarak ayarlanırsa çıkış, uint8 görüntüsü olarak bir segmentasyon maskesi içerir. Her piksel değeri, kazanan kategori değerini gösterir. {True, False} False
output_confidence_masks True olarak ayarlanırsa çıktı, kayan değer resmi olarak bir segmentasyon maskesi içerir. Burada her kayan değer, kategorinin güven puanı haritasını temsil eder. {True, False} True
display_names_locale Varsa görev modelinin meta verilerinde sağlanan görünen adlar için kullanılacak etiketlerin dilini ayarlar. İngilizce için varsayılan değer en şeklindedir. TensorFlow Lite Metadata Writer API'yi kullanarak özel modelin meta verilerine yerelleştirilmiş etiketler ekleyebilirsiniz Yerel ayar kodu en
result_callback Sonuç işleyiciyi, görüntü segmentleyici canlı yayın modundayken segmentasyon sonuçlarını eşzamansız olarak alacak şekilde ayarlar. Yalnızca çalıştırma modu LIVE_STREAM olarak ayarlandığında kullanılabilir Yok Yok

Modeller

Görüntü Segmenter, birden fazla ML modeliyle kullanılabilir. Aşağıdaki segmentasyon modellerinin çoğu, kişi görüntüleriyle segmentasyon yapmak üzere oluşturulmuş ve eğitilmiştir. Ancak DeepLab-v3 modeli, genel amaçlı bir resim segment oluşturucusu olarak geliştirilmiştir. Uygulamanıza en uygun modeli seçin.

Selfie segmentasyon modeli

Bu model, kişi portresini segmentlere ayırabilir ve bir resimdeki arka planı değiştirmek veya değiştirmek için kullanılabilir. Model, 0. dizinde arka plan ve 1. dizindeki kişi olmak üzere iki kategori sağlar. Bu modelde, kare sürüm ve yatay sürüm de dahil olmak üzere farklı giriş şekillerine sahip sürümler bulunur. Bu, video görüşmeleri gibi girişlerin her zaman böyle olduğu uygulamalar için daha verimli olabilir.

Model adı Giriş şekli Nicelleştirme türü Model Kartı Sürümler
SelfieSegmenter (kare) 256 x 256 kayan nokta 16 bilgi En son
SelfieSegmenter (yatay) 144 x 256 kayan nokta 16 bilgi En son

Saç segmentasyon modeli

Bu model, bir kişinin resmini çeker, kafasındaki saçın yerini belirler ve saçı için bir görüntü segmentasyon haritası oluşturur. Bu modeli saçları yeniden renklendirmek veya diğer saç efektlerini uygulamak için kullanabilirsiniz. Model aşağıdaki segmentasyon kategorilerini verir:

0 - background
1 - hair
Model adı Giriş şekli Nicelleştirme türü Model Kartı Sürümler
HairSegmenter 512 x 512 Yok (float32) bilgi En son

Çok sınıflı selfie segmentasyon modeli

Bu model, bir kişinin resmini çeker, saç, cilt ve kıyafet gibi farklı alanlara ait bölgeleri tespit eder ve bu öğeler için bir görüntü segmentasyon haritası oluşturur. Bu modeli, resimlerdeki veya videolardaki kişilere çeşitli efektler uygulamak için kullanabilirsiniz. Model aşağıdaki segmentasyon kategorilerini verir:

0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Model adı Giriş şekli Nicelleştirme türü Model Kartı Sürümler
SelfieMulticlass (256 x 256) 256 x 256 Yok (float32) bilgi En son

DeepLab-v3 modeli

Bu model, arka plan, kişi, kedi, köpek ve saksı bitkisi gibi çok sayıda kategori için segmentleri tanımlar. Model, daha uzun menzilli bilgileri yakalamak için atröz uzamsal piramit havuzu kullanır. Daha fazla bilgi için DeepLab-v3 konusuna bakın.

Model adı Giriş şekli Nicelleştirme türü Sürümler
DeepLab-V3 257 x 257 Yok (float32) En son

Görev karşılaştırmaları

Yukarıda önceden eğitilmiş modellere dayalı olarak ardışık düzenin tamamı için görev karşılaştırmaları aşağıda verilmiştir. Gecikme sonucu, CPU / GPU kullanılarak Pixel 6'daki ortalama gecikme sonucunu verir.

Model Adı CPU Gecikmesi GPU Gecikmesi
SelfieSegmenter (kare) 33,46 ms. 35,15 ms.
SelfieSegmenter (yatay) 34,19 ms. 33,55 ms.
HairSegmenter 57,90 ms. 52,14 ms.
Çok Sınıflı Selfie (256 x 256) 217,76 ms. 71,24 ms.
DeepLab-V3 123,93 ms. 103,30 ms.