Python için yüz biçimlendirme kılavuzu

MediaPipe Yüz Biçimlendirici görevi, bir resimdeki yüzlere yüz stilleri uygulamanıza olanak tanır. Bu görevi kullanarak çeşitli stillerde sanal avatarlar oluşturabilirsiniz.

Bu talimatlarda açıklanan kod örneğini GitHub'da bulabilirsiniz. Özellikler, modeller ve yapılandırma seçenekleri hakkında daha fazla bilgi Bu görev hakkında daha fazla bilgi için Genel Bakış'ı inceleyin.

Kod örneği

Yüz Şekillendirici için örnek kod, bu özelliğin eksiksiz bir şekilde uygulanmasını sağlar. görevi görebilir. Bu kod, görevi test etmenize ve kendi yüz stilinizi oluşturmaya başladınız. Şurayı görüntüleyebilir, çalıştırabilir ve düzenleyebilirsiniz: Yüz Stilisti örnek kodu 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 ve Yüz Şekillendirici'yi kullanmak için özel olarak kod projeleri. Şu konularda genel bilgi için: dahil olmak üzere MediaPipe görevlerini kullanmak için geliştirme ortamınızı platform sürümü gereksinimleri hakkında daha fazla bilgi için Python'da kullanılabilir.

Paketler

MediaPipe Yüz Biçimlendirici görevi, mediapipe PyPI paketini gerektirir. Bu uygulamaları yükleyebilir ve bu bağımlılıkları aşağıdaki şekilde içe aktarın:

$ python -m pip install mediapipe

İçe aktarılanlar

Yüz Stylizer 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 Yüz Stilizatör görevi, bu yazılımla uyumlu olan eğitilmiş bir model gerektiriyor görevi görebilir. Yüz Şekillendirici için eğitilen modeller hakkında daha fazla bilgi için göreve genel bakış Modeller bölümü.

Modeli seçin ve indirin, ardından yerel bir dizinde depolayın:

model_path = '/absolute/path/to/face_stylizer.task'

Şunun yolunu belirtmek için BaseOptions nesnesi model_asset_path parametresini kullanın: modele göre belirleniyor. Kod örneği için sonraki bölüme bakın.

Görevi oluşturma

MediaPipe Yüz Stylizer görevi, create_from_options işlevini kullanarak görevi görebilir. create_from_options işlevi, yapılandırma için değerleri kabul eder pek çok seçeneği vardır.

Aşağıdaki kod, bu görevin nasıl oluşturulacağını ve yapılandırılacağını gösterir.

import mediapipe as mp

BaseOptions = mp.tasks.BaseOptions
Facestylizer = mp.tasks.vision.face_stylizer
FacestylizerOptions = mp.tasks.vision.FaceStylizerOptions

# Create a face stylizer instance with the image mode:
options = FacestylizerOptions(
    base_options=BaseOptions(model_asset_path=model_path),
with Facestylizer.create_from_options(options) as stylizer:
  # The stylizer is initialized. Use it here.
  # ...

Verileri hazırlama

Girişinizi bir görüntü dosyası veya Numpy dizisi olarak hazırlayın ve daha sonra mediapipe.Image nesne algılandı. Girişiniz bir video dosyası veya şunun gibi harici bir kitaplık kullanabilirsiniz: Giriş çerçevelerinizi numpy olarak yüklemek için OpenCV dizi'dir.

import mediapipe as mp

# 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)

Görevi çalıştırma

Yüz Oluşturucu, çıkarımları tetiklemek için stylize işlevini kullanır. Yüz için stilizasyon, giriş verilerinin önceden işlenmesini ve görüntüsüdür.

Aşağıdaki kod, görevle işlemin nasıl yürütüleceğini gösterir modeli.

# Perform face stylization on the provided single image.
# The face stylizer must be created with the image mode.
face_stylizer_result = stylizer.stylize(mp_image)

Sonuçları işleme ve görüntüleme

Yüz Stilisti, en yüksek stile sahip Image nesnesini döndürür. giriş görüntüsünde belirgin yüz.

Aşağıda, bu görevdeki çıkış verilerinin bir örneği gösterilmektedir:

Yukarıdaki çıktı, Renk çizimi uygulanarak oluşturulmuştur modelini aşağıdaki giriş resmine ekleyerek: