دليل تنسيق الوجوه في بايثون

تتيح لك مهمة MediaPipe Face Stylizer تطبيق أنماط الوجه على الوجوه في إحدى الصور. يمكنك استخدام هذه المهمة لإنشاء صور رمزية افتراضية بأنماط مختلفة.

يتوفّر نموذج الرمز البرمجي الموضّح في هذه التعليمات على GitHub. للحصول على مزيد من المعلومات حول الإمكانيات والنماذج وخيارات الإعداد لهذه المهمة، يُرجى الاطّلاع على نظرة عامة.

مثال الرمز البرمجي

يوفر رمز المثال الخاص بأداة تمييز الوجه تنفيذًا كاملاً لهذه المهمة في بايثون كمرجع لك. تساعدك هذه التعليمات البرمجية في اختبار هذه المهمة والبدء في بناء مصمم الوجه الخاص بك. يمكنك عرض نموذج رمز نمط الوجه وتشغيله وتعديله باستخدام متصفّح الويب فقط.

ضبط إعدادات الجهاز

يصف هذا القسم الخطوات الأساسية لإعداد بيئة التطوير ومشاريع الرموز البرمجية لاستخدام "أداة تخطيط الوجه" تحديدًا. للحصول على معلومات عامة حول إعداد بيئة التطوير لاستخدام مهام MediaPipe، بما في ذلك متطلبات إصدار النظام الأساسي، راجع دليل إعداد Python.

الطرود

تتطلّب مَهمّة MediaPipe Face Stylizer استخدام حزمة MediaPy PyPI. يمكنك تثبيت هذه التبعيات واستيرادها باتّباع ما يلي:

$ python -m pip install mediapipe

عمليات الاستيراد

يمكنك استيراد الفئات التالية للوصول إلى وظائف مهمة "أداة تخطيط الوجه":

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" لعرض الاستنتاجات. ولتخطيط الوجوه، يتضمن ذلك المعالجة المسبقة لبيانات الإدخال وتصميم الوجوه في الصورة.

توضح التعليمة البرمجية التالية كيفية تنفيذ المعالجة باستخدام نموذج المهمة.

# 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 بتصميم للوجه الأكثر بروزًا في الصورة المدخلة.

ويوضح ما يلي مثالاً على بيانات المخرجات من هذه المهمة:

تم إنشاء الناتج أعلاه من خلال تطبيق نموذج الرسم البياني بالألوان على صورة الإدخال التالية: