MediaPipe Resim Segmenter görevi, görüntüleri önceden tanımlanmış öğelere göre bölgelere bölmenizi sağlar. kategorilerden en iyi şekilde yararlanabilirsiniz. Bu talimatlarda, Düğüm ve web uygulamaları için Resim Segmenter'ın nasıl kullanılacağı gösterilmektedir. Örneğin, özellikleri, modelleri ve yapılandırma seçenekleri hakkında Bu görev için Genel Bakış'ı inceleyin.
Kod örneği
Resim Segmenter'ın örnek kodu, bu etiketin eksiksiz bir şekilde uygulanmasını sağlar. görevi aşağıda bulabilirsiniz. Bu kod, görevi test etmenize Kendi görüntü segmentasyon uygulamanızı oluşturmaya başlayın. Bu projeleri görüntüleyebilir, çalıştırabilir, Resim Segmenter aracını düzenleyerek örnek kod yalnızca web tarayıcınızı kullanarak. Bu örneğin kodunu şuradan da inceleyebilirsiniz: GitHub'a gidin.
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 Web için kurulum kılavuzu.
JavaScript paketleri
Resim Segmenter kodu MediaPipe @mediapipe/tasks-vision
üzerinden kullanılabilir
NPM paketi. Şunları yapabilirsiniz:
bu kitaplıkları, platformda sağlanan bağlantılardan bulup indirin
Kurulum kılavuzu.
Yerel hazırlık için gerekli paketleri aşağıdaki kodla yükleyebilirsiniz kullanabilirsiniz:
npm install --save @mediapipe/tasks-vision
Görev kodunu içerik yayınlama ağı (CDN) aracılığıyla içe aktarmak istiyorsanız hizmetini kullanmak için, HTML dosyanızdaki etikete aşağıdaki kodu ekleyin:
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision/vision_bundle.js"
crossorigin="anonymous"></script>
</head>
Model
MediaPipe Resim Segmenter görevi bu görevi görebilir. Resim Segmenter için eğitilmiş mevcut modeller hakkında daha fazla bilgi için göreve genel bakış Modeller bölümü.
Bir model seçip indirin ve ardından bu modeli proje dizininizde depolayın:
<dev-project-root>/app/shared/models/
Görevi oluşturma
Resim Segmenter createFrom...()
işlevlerinden birini kullanarak
çıkarımları yapmaya hazır hale getirebilirsiniz. createFromModelPath()
kullanın
işlevi, eğitilen model dosyasına giden göreli veya mutlak bir yolla
Modeliniz belleğe zaten yüklenmişse aşağıdakileri kullanabilirsiniz:
createFromModelBuffer()
yöntemini çağırın.
Aşağıdaki kod örneğinde, createFromOptions()
işlevinin
görevi ayarlayın. createFromOptions
işlevi,
Yapılandırma seçenekleri içeren Resim Segmenter'ı. Görevle ilgili daha fazla bilgi için
Yapılandırma seçenekleri bölümüne bakın.
Aşağıdaki kod, görevin özel seçenekler:
runningMode = "IMAGE";
async function createImageSegmenter() {
const vision = await FilesetResolver.forVisionTasks(
"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/wasm"
);
imageSegmenter = await ImageSegmenter.createFromOptions(vision, {
baseOptions: {
modelAssetPath:
"https://storage.googleapis.com/mediapipe-assets/deeplabv3.tflite?generation=1661875711618421",
},
outputCategoryMask: true,
outputConfidenceMasks: false
runningMode: runningMode
});
}
createImageSegmenter();
Resim Segmenter görevi oluşturmanın daha kapsamlı bir uygulaması için bkz. kod örneği hakkında daha fazla bilgi edinin.
Yapılandırma seçenekleri
Bu görev, web 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 |
---|---|---|---|
outputCategoryMask |
True olarak ayarlanırsa çıkışta segmentasyon maskesi bulunur.
her piksel değeri kazanan kategoriyi gösteren bir uint8 resmi olarak
değer. |
{True, False } |
False |
outputConfidenceMasks |
True olarak ayarlanırsa çıkışta segmentasyon maskesi bulunur.
her kayan değerin güveni temsil ettiği bir kayan değer resmi olarak
ve puan eşlemesini seçin. |
{True, False } |
True |
displayNamesLocale |
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 |
resultListener |
Sonuç işleyiciyi segmentasyon sonuçlarını alacak şekilde ayarlar
Resim segmentleyici LIVE_STREAM modundayken eşzamansız olarak.
Yalnızca koşu modu LIVE_STREAM olarak ayarlandığında kullanılabilir |
Yok | Yok |
Verileri hazırlama
Resim Segmenti, resimlerdeki nesneleri ana tarayıcı tarayıcısı. Görev ayrıca aşağıdakiler de dahil olmak üzere veri girişi ön işlemesini: yeniden boyutlandırma, döndürme ve değer normalleştirmesi gibi.
Resim Segmenter segment()
ve segmentForVideo()
yöntemlerine yapılan çağrılar çalıştırılır
senkronize edin ve kullanıcı arayüzü ileti dizisini engelleyin. Nesneleri
kameradan alınan video kareleri varsa her segmentasyon görevi ana
ileti dizisi. Web çalışanlarını kullanarak bu durumu önleyebilirsiniz.
segment()
ve segmentForVideo()
başka bir ileti dizisinde.
Görevi çalıştırma
Resim Segmenter, resim modu ile segment()
yöntemini ve
Çıkarımları tetiklemek için video
modunda segmentForVideo()
yöntemi. İlgili içeriği oluşturmak için kullanılan
Resim Segmenter, algılanan segmentleri bir geri çağırmaya resim verisi olarak döndürür
işlev için bir çıkarım çalıştırırken belirlediğiniz işlevdir.
Aşağıdaki kod, görev modeliyle işlemenin nasıl yürütüleceğini gösterir:
Resim
const image = document.getElementById("image") as HTMLImageElement; imageSegmenter.segment(image, callback);
Video
async function renderLoop(): void { const video = document.getElementById("video"); let startTimeMs = performance.now(); imageSegmenter.segmentForVideo(video, startTimeMs, callbackForVideo); requestAnimationFrame(() => { renderLoop(); }); }
Resim Segmenter görevi çalıştırmanın daha kapsamlı bir uygulaması için bkz. kod örneği hakkında daha fazla bilgi edinin.
Sonuçları işleme ve görüntüleme
Çıkarım çalıştırıldıktan sonra Resim Segmenter görevi, segment resim verilerini bir
geri çağırma işlevinden yararlanırız. Çıkışın içeriği, ayarladığınız outputType
değerine bağlıdır
Görevi yapılandırdığınızda.
Aşağıdaki bölümlerde, bu görevden elde edilen çıkış verilerine örnekler gösterilmektedir:
Kategori güveni
Aşağıdaki resimlerde, bir kategori için görev çıkışının görselleştirmesi gösterilmektedir
güven maskesi oluşturabilirsiniz. Güven maskesi çıkışı,
[0, 1]
Orijinal resim ve kategori güven maskesi çıktısı. Şuradaki kaynak resim: VOC 2012'nin Paskalası veri kümesiyle birlikte kullanılamaz.
Kategori değeri
Aşağıdaki resimlerde, bir kategori için görev çıkışının görselleştirmesi gösterilmektedir
ve değer maskeniz olsun. Kategori maskesi aralığı [0, 255]
ve her piksel değeri
model çıkışının kazanan kategori dizinini temsil eder. Kazanan kategori
indeks, modelin tanıyabileceği kategoriler arasında en yüksek puana sahiptir.
Orijinal resim ve kategori maskesi çıktısı. Şuradaki kaynak resim: VOC 2012'nin Paskalası veri kümesiyle birlikte kullanılamaz.
Resim Segmenter örnek kodu, segmentasyonun nasıl görüntüleneceğini gösterir. daha fazla bilgi edinmek için kod örneği inceleyebilirsiniz.