MediaPipe Resim Segmentleyici görevi, önceden tanımlanmış kategorilere göre resimleri bölgelere ayırmanıza olanak tanır. Belirli nesneleri veya dokuları tanımlamak için bu işlevi kullanabilir, ardından arka plan bulanıklaştırma gibi görsel efektler uygulayabilirsiniz. Bu görev, resim verilerindeki kişileri ve ö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çları
- Kişinin saçları, yüzü, cildi, kıyafetleri ve aksesuarları
Bu görev, tek resim veya sürekli video akışı içeren bir makine öğrenimi (ML) modeliyle görüntü verilerinde çalışır. Seçtiğiniz modele bağlı olarak, bir resimdeki nesneleri veya alanları temsil eden segmentlere ayrılmış bölgelerin listesini döndürür.
Başlayın
Hedef platformunuzla ilgili bu uygulama kılavuzlarından birini uygulayarak bu görevi kullanmaya başlayın. Platforma özel bu kılavuzlar, önerilen bir model ve önerilen yapılandırma seçenekleriyle birlikte kod örneği de dahil olmak üzere bu görevin temel uygulama sürecinde size yol gösterir:
- Android - Kod örneği - Kılavuz
- Python - Kod örneği Kılavuzu
- 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 Segmentleyici, belirlediğiniz yapılandırma seçeneklerine bağlı olarak aşağıdakilerden birini veya ikisini birden içerebilen segmentlere ayrılmış resim verileri döndürür:
|
Yapılandırma seçenekleri
Bu görev için aşağıdaki yapılandırma seçenekleri vardır:
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 resim girişleri için kullanılan mod. VIDEO: Bir videonun kod çözülmüş karelerinin modu. LIVE_STREAM: Kameradan alınan giriş verilerinin canlı yayını için kullanılan mod. Bu modda, sonuçları asenkron olarak alacak bir dinleyici oluşturmak için resultListener çağrılmalıdır. |
{IMAGE, VIDEO, LIVE_STREAM } |
IMAGE |
output_category_mask |
True olarak ayarlanırsa çıkış, her piksel değerinin kazanan kategori değerini gösterdiği uint8 görüntü olarak bir segmentasyon maskesi içerir. |
{True, False } |
False |
output_confidence_masks |
True olarak ayarlanırsa çıkış, her kayan nokta değerinin kategorinin güven puanı haritasını temsil ettiği, kayan nokta değeri resmi olarak bir segmentasyon maskesi içerir. |
{True, False } |
True |
display_names_locale |
Görevin modelinin meta verilerinde sağlanan görünen adlar için kullanılacak etiketlerin dilini belirler (varsa). Varsayılan değer, İngilizce için en 'tir. TensorFlow Lite Meta Veri Yazıcı API'yi kullanarak özel bir modelin meta verilerine yerelleştirilmiş etiketler ekleyebilirsiniz |
Yer kodu | en |
result_callback |
Sonuç dinleyiciyi, resim segmentörü LIVE_STREAM modundayken segmentasyon sonuçlarını asenkron olarak alacak şekilde ayarlar.
Yalnızca çalışma modu LIVE_STREAM olarak ayarlandığında kullanılabilir. |
Yok | Yok |
Modeller
Resim Segmentleyici, birden fazla ML modeliyle kullanılabilir. Aşağıdaki segmentasyon modellerinin çoğu, insanların resimleriyle segmentasyon yapmak için oluşturulur ve eğitilir. Ancak DeepLab-v3 modeli, genel amaçlı bir görüntü segmentleyici olarak tasarlanmıştır. Uygulamanıza en uygun modeli seçin.
Selfie segmentasyon modeli
Bu model, bir kişinin 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. dizinde kişi olmak üzere iki kategori çıktısı verir. Bu modelin kare ve yatay sürümleri gibi farklı giriş şekillerine sahip sürümleri vardır. Bu sürümler, girişin her zaman aynı şekilde olduğu uygulamalar (ör. görüntülü görüşmeler) için daha verimli olabilir.
Model adı | Giriş şekli | Kesirli sayılaştırma türü | Model Kartı | Sürümler |
---|---|---|---|---|
SelfieSegmenter (kare) | 256 x 256 | float 16 | info | En son |
SelfieSegmenter (yatay) | 144 x 256 | float 16 | info | En son |
Saç segmentasyonu modeli
Bu model, bir kişinin resmini alır, kafasında saçların yerini tespit eder ve saçlarının görüntü segmentasyon haritasını oluşturur. Saçları yeniden renklendirmek veya başka saç efektleri uygulamak için bu modeli kullanabilirsiniz. Model aşağıdaki segmentasyon kategorilerini döndürür:
0 - background
1 - hair
Model adı | Giriş şekli | Kesirli sayılaştırma türü | Model Kartı | Sürümler |
---|---|---|---|---|
HairSegmenter | 512 x 512 | Yok (float32) | info | En son |
Çok sınıflı selfie segmentasyonu modeli
Bu model, bir kişinin resmini alır, saç, cilt ve giysi gibi farklı alanlar için bölgeleri tespit eder ve bu öğeler için bir resim segmentasyon haritası oluşturur. Bu modeli, resim veya videolardaki kişilere çeşitli efektler uygulamak için kullanabilirsiniz. Model aşağıdaki segmentasyon kategorilerini döndürür:
0 - background
1 - hair
2 - body-skin
3 - face-skin
4 - clothes
5 - others (accessories)
Model adı | Giriş şekli | Kesirli sayılaştırma türü | Model Kartı | Sürümler |
---|---|---|---|---|
SelfieMulticlass (256 x 256) | 256 x 256 | Yok (float32) | info | En son |
DeepLab-v3 modeli
Bu model; arka plan, kişi, kedi, köpek ve saksı bitkisi gibi çeşitli kategoriler için segmentleri tanımlar. Model, daha uzun menzilli bilgileri yakalamak için atrous spatial pyramid pooling kullanır. Daha fazla bilgi için DeepLab-v3 başlıklı makaleyi inceleyin.
Model adı | Giriş şekli | Kesirli sayılaştırma türü | Sürümler |
---|---|---|---|
DeepLab-V3 | 257 x 257 | Yok (float32) | En son |
Görev karşılaştırmaları
Yukarıdaki önceden eğitilmiş modellere dayalı olarak tüm ardışık düzenin görev karşılaştırmalarını aşağıda bulabilirsiniz. Gecikme sonucu, CPU / GPU kullanan Pixel 6'taki ortalama gecikmedir.
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 |
SelfieMulticlass (256 x 256) | 217,76 ms | 71,24 ms |
DeepLab-V3 | 123,93 ms | 103,30 ms |