המשימה 'סגנון פנים' ב-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 על תמונת הקלט הבאה: