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.
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:
- Android - Kod örneği - Kılavuz
- Python - Kod örneği Kılavuz
- Web - Kod örneği - Kılavuz
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:
|
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:
|
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. |