MediaPipe Etkileşimli Resim Segmenter görevi, bir görüntüdeki konumu alır ve bir nesneye karşılık gelir ve nesnenin segmentasyonunu görüntü olarak döndürür dışı verilerdir. Bu talimatlar, Python ile Etkileşimli Resim Segmenter'i nasıl kullanacağınızı gösterir dili'ne dokunun. Özellikler, modeller ve yapılandırma hakkında daha fazla bilgi için bu görevin seçenekleri için Genel Bakış'ı inceleyin.
Kod örneği
Etkileşimli Resim Segmenter için örnek kodu, bu etiketin eksiksiz bir şekilde uygulanmasını sağlar görevi görebilir. Bu kod, görevi test etmenize ve kendi etkileşimli görüntü segmentasyon uygulamanızı oluşturmaya başladınız. Şunları yapabilirsiniz: Etkileşimli Resim Segmenter'i görüntüleyin, çalıştırın ve düzenleyin örnek kod yalnızca web tarayıcınızı kullanarak.
Kurulum
Bu bölümde, geliştirme ortamınızı ve ayarlarınızı yönetmeyle ilgili kullanmak için özel olarak projeleri kodlayabilir. Şu konularda genel bilgi için: dahil olmak üzere MediaPipe görevlerini kullanmak için geliştirme ortamınızı daha fazla bilgi için Python kurulum kılavuzu. Bu örneğin kaynak kodunu şurada inceleyebilirsiniz: GitHub
Paketler
MediaPipe Etkileşimli Resim Segmenter görevi için mediapipe
paketi gerekir. Google Etiket Yöneticisi'ni kullanarak
bağımlılıklarını görmek için şu komutu kullanın:
$ python -m pip install mediapipe
İçe aktarılanlar
Etkileşimli Resim Segmenter görev işlevlerine erişmek için aşağıdaki sınıfları içe aktarın:
import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision
Model
MediaPipe Etkileşimli Resim Segmenter görevi, bu görevi görebilir. Etkileşimli Resim Segmenter için eğitilmiş modeller hakkında daha fazla bilgi için bkz. göreve genel bakış Modeller bölümüne.
Modeli seçin ve indirin, ardından proje dizininizde depolayın:
model_path = '/absolute/path/to/model.tflite'
Aşağıda gösterildiği gibi, model_asset_path
parametresi içinde modelin yolunu belirtin
aşağıda bulabilirsiniz:
base_options = BaseOptions(model_asset_path=model_path)
Görevi oluşturma
MediaPipe Etkileşimli Resim Segmenter görevi aşağıdaki işlemleri yapmak için create_from_options
işlevini kullanır:
görevi ayarlayın. create_from_options
işlevi, değerleri kabul eder
tercih edebilirsiniz. Yapılandırma hakkında daha fazla bilgi için
Yapılandırma seçenekleri bölümüne bakın.
Aşağıdaki kod, bu görevin nasıl oluşturulacağını ve yapılandırılacağını gösterir.
BaseOptions = mp.tasks.BaseOptions InteractiveSegmenter = mp.tasks.vision.InteractiveSegmenter InteractiveSegmenterOptions = mp.tasks.vision.InteractiveSegmenterOptions VisionRunningMode = mp.tasks.vision.RunningMode # Create a image segmenter instance with the image mode: options = InteractiveSegmenterOptions( base_options=BaseOptions(model_asset_path='/path/to/model.task'), running_mode=VisionRunningMode.IMAGE, output_type=InteractiveSegmenterOptions.OutputType.CATEGORY_MASK) with InteractiveSegmenter.create_from_options(options) as segmenter: # segmenter is initialized and ready to use
Yapılandırma seçenekleri
Bu görev, Python uygulamaları için aşağıdaki yapılandırma seçeneklerini içerir:
Seçenek Adı | Açıklama | Değer Aralığı | Varsayılan Değer |
---|---|---|---|
output_category_mask |
True olarak ayarlanırsa çıkışta segmentasyon maskesi bulunur.
Bu bir uint8 resmi gibi, burada her bir piksel değeri pikselin
alakalı bölgede bulunan nesne. |
{True, False } |
False |
output_confidence_masks |
True olarak ayarlanırsa çıkışta segmentasyon maskesi bulunur.
her kayan değerin güveni temsil ettiği bir kayan değer resmi olarak
pikselin ilgili alanda bulunan nesnenin parçası olduğunu doğrulayın. |
{True, False } |
True |
display_names_locale |
görev modelinin meta verileri (varsa). Şunun için varsayılan: en
İngilizce. Özel bir modelin meta verilerine yerelleştirilmiş etiketler ekleyebilirsiniz
TensorFlow Lite Metadata Writer API'yi kullanarak
| Yerel ayar kodu | en |
Verileri hazırlama
Girişinizi bir görüntü dosyası veya Numpy dizisi olarak hazırlayın ve
daha sonra bunu bir mediapipe.Image
nesnesine dönüştürün.
# Load the input image from an image file. mp_image = mp.Image.create_from_file('/path/to/image') # Load the input image from a numpy array. mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)
RegionOfInterest = vision.InteractiveSegmenterRegionOfInterest # Perform image segmentation on the provided single image. # The image segmenter must be created with the image mode. roi = RegionOfInterest(format=RegionOfInterest.Format.KEYPOINT, keypoint=NormalizedKeypoint(x, y)) segmented_masks = segmenter.segment(mp_image, roi)
Etkileşimli Resim Segmenter çıkarımları çalıştırmayla ilgili daha kapsamlı bir örnek için kod örneği hakkında daha fazla bilgi edinin.
Sonuçları işleme ve görüntüleme
Etkileşimli Resim Segmenteri için çıkış sonuçları, Image
verilerinden oluşan bir listedir ve
ayarlarınıza bağlı olarak bir kategori maskesi, güven maskesi veya her ikisini birden dahil edebilirsiniz
Görevi yapılandırdığınızda. Mevcut
output_category_mask
dilinden True
diline, çıkış tekli içeren bir liste
segmentli maskeyi uint8 resmi olarak kullanabilirsiniz. Piksel değeri,
bir nesne olacaktır. giriş resminin tanınan kategori dizinini oluşturur. Eğer
output_confidence_masks
değerini True
olarak ayarlarsanız çıkış, kanalların bir listesi olur
[0,1]
aralığında güveni temsil eden piksel değerleri içeren
ilgili alandaki nesneye ait pikselin puanı.
Aşağıdaki bölümlerde, bu görevden elde edilen çıkış verileri daha ayrıntılı olarak açıklanmaktadır:
Kategori maskesi
Aşağıdaki resimlerde, bir kategori için görev çıkışının görselleştirmesi gösterilmektedir
değer maskesi oluşturmanız gerekir. Her piksel bir uint8
pikselin, alanında bulunan nesnenin bir parçası olup olmadığını gösteren değer
ilgi alanı. İkinci resimdeki siyah beyaz daire, seçilen
önemli bir noktadır.
Orijinal resim ve kategori maskesi çıktısı. Şuradaki kaynak resim: VOC 2012'nin Paskalası veri kümesiyle birlikte kullanılamaz.
Güven maskesi
Güven maskesinin çıktısı, şunlar için [0, 1]
arasında kayan noktalı değerler içerir:
her bir resim giriş kanalına bağlanır. Daha yüksek değerler,
resim pikseli, ilgilenilen alanda bulunan nesnenin bir parçasıdır.