מדריך לעיצוב פנים ל-Python

המשימה 'סטיילר פנים' של MediaPipe מאפשרת לכם להחיל עיצובי פנים על פנים בתמונה. תוכלו להשתמש במשימה הזו כדי ליצור דמויות וירטואליות בסגנונות שונים.

דוגמת הקוד שמתוארת בהוראות האלו זמינה ב-GitHub. למידע נוסף על היכולות, המודלים ואפשרויות ההגדרה של המשימה הזו, קראו את הסקירה הכללית.

קוד לדוגמה

הקוד לדוגמה של Face Stylizer מספק יישום מלא של המשימה הזו ב-Python לעיונכם. הקוד הזה עוזר לכם לבדוק את המשימה הזו ולהתחיל ליצור סטיילר פנים משלכם. אפשר להציג, להריץ ולערוך את הקוד לדוגמה של סטיילר לפנים רק באמצעות דפדפן האינטרנט.

הגדרה

בקטע הזה מתוארים שלבים עיקריים להגדרת סביבת הפיתוח ופרויקטים של קוד במיוחד לשימוש בסטיילר פנים. למידע כללי על הגדרת סביבת הפיתוח לשימוש במשימות MediaPipe, כולל הדרישות לגרסת הפלטפורמה, קראו את מדריך ההגדרה של Python.

חבילות

המשימה 'סטיילר פנים' MediaPipe דורשת את חבילת mediapipe PyPI. אפשר להתקין ולייבא את יחסי התלות האלה באמצעות הדברים הבאים:

$ python -m pip install mediapipe

יבוא

אפשר לייבא את המחלקות הבאות כדי לגשת לפונקציות של המשימה 'סטיילר פנים':

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

מודל

כדי לבצע את המשימה של MediaPipe סטיילייזר פנים צריך מודל מאומן שתואם למשימה הזו. למידע נוסף על המודלים הזמינים לאימון פנים, עיינו בסקירה הכללית על משימות בקטע 'מודלים'.

בוחרים את המודל ומורידים אותו, ולאחר מכן מאחסנים אותו בספרייה מקומית:

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

השתמשו בפרמטר model_asset_path של האובייקט BaseOptions כדי לציין את הנתיב של המודל שבו יש להשתמש. דוגמה לקוד זמינה בקטע הבא.

יצירת המשימה

המשימה 'סטייטר פנים של MediaPipe' משתמשת בפונקציה create_from_options כדי להגדיר את המשימה. הפונקציה create_from_options מקבלת ערכים לאפשרויות התצורה שצריך לטפל בהן.

הקוד הבא מדגים איך ליצור ולהגדיר את המשימה הזו.

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

הכנת הנתונים

מכינים את הקלט כקובץ תמונה או כמערך numpy, ואז ממירים אותו לאובייקט mediapipe.Image. אם הקלט הוא קובץ וידאו או שידור חי ממצלמת אינטרנט, תוכלו להשתמש בספרייה חיצונית כמו OpenCV כדי לטעון את הפריימים של הקלט בתור מערכי נתונים מספריים.

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)

מריצים את המשימה.

סטילייזר הפנים משתמש בפונקציה stylize כדי להפעיל הסקת מסקנות. כדי לעצב את הפנים, נדרש עיבוד מראש של נתוני קלט ועיצוב של הפנים בתמונה.

הקוד הבא מדגים איך לבצע את העיבוד באמצעות מודל המשימה.

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

טיפול בתוצאות והצגתן

באמצעות סטיילר הפנים מחזיר אובייקט Image עם עיצוב של הפנים הבולטות ביותר בתמונת הקלט.

דוגמה לנתוני הפלט מהמשימה הזאת:

הפלט שלמעלה נוצר על ידי החלת המודל שרטוט צבע על תמונת הקלט הבאה: