MediaPipe Face Stylizer görevi, bir resimdeki yüzlere yüz stilizasyonları uygulamanıza olanak tanır. Çeşitli stillerde sanal avatarlar oluşturmak için bu görevi kullanabilirsiniz.
Bu talimatlarda açıklanan kod örneğini GitHub'da bulabilirsiniz. Bu görevin özellikleri, modelleri ve yapılandırma seçenekleri hakkında daha fazla bilgi için Genel bakış bölümüne bakın.
Kod örneği
Yüz stilleştirici örnek kodunda, bu görevin JavaScript'de eksiksiz bir şekilde uygulanmasına referans olarak yer verilmiştir. Bu kod, bu görevi test etmenize ve kendi yüz stilleştirme uygulamanızı oluşturmaya başlamanıza yardımcı olur. Yüz stilleştirici örnek kodunu yalnızca web tarayıcınızı kullanarak görüntüleyebilir, çalıştırabilir ve düzenleyebilirsiniz.
Kurulum
Bu bölümde, geliştirme ortamınızı özellikle Face Stylizer'ı kullanmak için ayarlamayla ilgili temel adımlar açıklanmaktadır. Platform sürümü koşulları da dahil olmak üzere web ve JavaScript geliştirme ortamınızı ayarlama hakkında genel bilgi için Web için kurulum kılavuzu başlıklı makaleyi inceleyin.
JavaScript paketleri
Yüz stilize etme kodu, MediaPipe @mediapipe/tasks-vision
NPM paketi üzerinden kullanılabilir. Platformun Kurulum Kılavuzu'ndaki talimatları uygulayarak bu kitaplıkları bulup indirebilirsiniz.
Gerekli paketleri NPM üzerinden yüklemek için aşağıdaki komutu kullanabilirsiniz:
npm install @mediapipe/tasks-vision
Görev kodunu bir içerik yayınlama ağı (CDN) hizmetiyle içe aktarmak istiyorsanız HTML dosyanızdaki <head> etiketine aşağıdaki kodu ekleyin:
<!-- You can replace JSDeliver with another CDN if you prefer -->
<head>
<script src="https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision/vision_bundle.js"
crossorigin="anonymous"></script>
</head>
Model
MediaPipe Face Stylizer görevi, bu görevle uyumlu bir eğitimli model gerektirir. Face Stylizer için kullanılabilen eğitilmiş modeller hakkında daha fazla bilgi edinmek istiyorsanız göreve genel bakıştaki Modeller bölümüne bakın.
Bir model seçip indirin ve ardından proje dizininizde saklayın:
<dev-project-root>/app/shared/models/
Görevi oluşturun
Görevi çıkarım çalıştırmaya hazırlamak için Yüz Stilizörü createFrom...()
işlevlerinden birini kullanın. Eğitilmiş model dosyasının göreli veya mutlak yolu ile createFromModelPath()
işlevini kullanın. Modeliniz zaten belleğe yüklenmişse createFromModelBuffer()
yöntemini kullanabilirsiniz.
Aşağıdaki kod örneğinde, görevi ayarlamak için createFromOptions()
işlevinin kullanımı gösterilmektedir. createFromOptions
işlevi, Yüz Stilisti'ni yapılandırma seçenekleriyle özelleştirmenize olanak tanır.
Aşağıdaki kodda, görevin özel seçeneklerle nasıl oluşturulacağı ve yapılandırılacağı gösterilmektedir:
const vision = await FilesetResolver.forVisionTasks(
// path/to/wasm/root
"https://cdn.jsdelivr.net/npm/@mediapipe/tasks-vision@latest/wasm"
);
const facestylizer = await FaceStylizer.createFromOptions(
vision,
{
baseOptions: {
modelAssetPath: "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
},
});
Verileri hazırlama
Yüz Stilleştirici, barındıran tarayıcı tarafından desteklenen tüm biçimlerdeki resimlerdeki yüzleri stilize edebilir. Görev, yeniden boyutlandırma, döndürme ve değer normalleştirme dahil olmak üzere veri girişi ön işleme işlemlerini de yönetir.
Görevi çalıştırma
Yüz Stilleştirici, çıkarım yapmak için stylize()
yöntemini kullanır. Görev, verileri işler, yüzleri stilize etmeye çalışır ve ardından sonuçları raporlar.
Yüz stilleştirici stylize()
yöntemine yapılan çağrılar eşzamanlı olarak çalışır ve kullanıcı arayüzü mesaj dizisini engeller.
Aşağıdaki kodda, işleme işleminin görev modeliyle nasıl yürütüleceği gösterilmektedir:
const image = document.getElementById("image") as HTMLImageElement;
const faceStylizerResult = faceStylizer.stylize(image);
Sonuçları işleme ve görüntüleme
Yüz Stilize Etme işlevi, giriş resmindeki en belirgin yüzün stilize edilmiş halini içeren bir MPImage
nesnesi döndürür.
Aşağıda, bu görevin çıkış verilerine örnek verilmiştir:
Yukarıdaki çıkış, Renk taslağı modeli aşağıdaki giriş resmine uygulanarak oluşturulmuştur: