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

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

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

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

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

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

يصف هذا القسم الخطوات الرئيسية لإعداد بيئة التطوير و مشاريع الرموز البرمجية لاستخدام Face Stylizer على وجه التحديد. للحصول على معلومات عامة حول إعداد بيئة التطوير لاستخدام مهام MediaPipe، بما في ذلك requirements لإصدار النظام الأساسي، يُرجى الاطّلاع على دليل الإعداد ل IDE 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'

استخدِم المَعلمة BaseOptions عنصر model_asset_path لتحديد مسار النموذج المطلوب استخدامه. للاطّلاع على مثال على الرمز، يُرجى الاطّلاع على القسم التالي.

إنشاء المهمة

تستخدِم مهمة "تجميل الوجه" من MediaPipe الدالة create_from_options لإعداد المهمة. تقبل الدالة create_from_options قيمًا لإعدادات 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)

تنفيذ المهمة

يستخدم Face Stylizer الدالة 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 يتضمّن أسلوبًا للوجه الأكثر بروزًا في صورة الإدخال.

في ما يلي مثال على بيانات الإخراج من هذه المهمة:

صورة مقرّبة تم إنشاؤها لامرأة مرسومة بأسلوب رسم بقلم الرصاص والماركر

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

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