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

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

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

קוד לדוגמה

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

הגדרה

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

חבילות

למשימה של MediaPipe Face Stylizer נדרשת חבילת 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'

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

יצירת המשימה

במשימה של MediaPipe Face Stylizer נעשה שימוש בפונקציה 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.
  # ...

הכנת נתונים

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

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 עם עיצוב ברמה הגבוהה ביותר פנים בולטות בתמונת הקלט.

כך רואים דוגמה לנתוני הפלט מהמשימה:

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