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

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

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

קוד לדוגמה

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

הגדרה

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

חבילות

כדי להשתמש במשימה MediaPipe Face Stylizer, צריך את חבילת mediapipe PyPI. אפשר להתקין ולייבא את יחסי התלות האלה באמצעות:

$ python -m pip install mediapipe

יבוא

כדי לגשת לפונקציות של המשימה Face Stylizer, מייבאים את הכיתות הבאות:

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

דגם

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

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

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

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

יצירת המשימה

המשימה 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.
  # ...

הכנת הנתונים

מכינים את הקלט כקובץ תמונה או כמערך numpy, ואז ממירים אותו לאובייקט 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 משמשת את Face Stylizer להפעלת מסקנות. בתהליך הסגנון של הפנים, המערכת מבצעת עיבוד מקדים של נתוני הקלט ומסגננת את הפנים בתמונה.

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

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

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

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

בהמשך מוצגת דוגמה לנתוני הפלט של המשימה הזו:

תקריב שנוצר של אישה שצוירה בסגנון סקיצה בעיפרון ובסמן.

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

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