تتيح لك مهمة "تجميل الوجه" من MediaPipe تطبيق أنماط على الوجوه في الصورة. يمكنك استخدام هذه المهمة لإنشاء صور رمزية افتراضية بأنماط مختلفة.
يتوفّر نموذج الرمز البرمجي الموضّح في هذه التعليمات على GitHub. لمزيد من المعلومات عن الإمكانات والنماذج وخيارات الضبط لهذه المهمة، اطّلِع على نظرة عامة.
مثال على الرمز البرمجي
مثال التعليمات البرمجية لمهام MediaPipe هو تطبيق أساسي لتطبيق Face Stylizer لنظام التشغيل Android. يطبّق المثال أسلوبًا على الوجه في الصور المقدَّمة إلى التطبيق.
يمكنك استخدام التطبيق كنقطة بداية لتطبيق Android الخاص بك، أو الرجوع إليه عند تعديل تطبيق حالي. يتم استضافة مثال رمز Face Stylizer على GitHub.
تنزيل الرمز
توضِّح لك التعليمات التالية كيفية إنشاء نسخة محلية من مثال الرمز البرمجي باستخدام أداة سطر الأوامر git.
لتنزيل نموذج الرمز البرمجي:
- استنسِخ مستودع git باستخدام الأمر التالي:
git clone https://github.com/google-ai-edge/mediapipe-samples
- يمكنك اختياريًا ضبط مثيل git لاستخدام ميزة "الفحص الخفيف"، بحيث تتوفّر لديك
فقط ملفات مثال تطبيق Face Stylizer:
cd mediapipe git sparse-checkout init --cone git sparse-checkout set examples/face_stylization/android
بعد إنشاء نسخة محلية من رمز المثال، يمكنك استيراد المشروع إلى Android Studio وتشغيل التطبيق. للحصول على التعليمات، اطّلِع على دليل الإعداد لنظام Android.
المكونات الرئيسية
تحتوي الملفات التالية على الرمز البرمجي المهم لتطبيق مثال تنسيق الوجه هذا:
- FaceStylizationHelper.kt: تُستخدَم هذه الفئة لإعداد أداة تحسين مظهر الوجه ومعالجة اختيار النموذج والمفوّض.
- MainActivity.kt: يعرض النتائج والمخرجات ويعالج أي أخطاء.
ضبط إعدادات الجهاز
يصف هذا القسم الخطوات الرئيسية لإعداد بيئة التطوير و مشاريع الرموز البرمجية لاستخدام Face Stylizer على وجه التحديد. للحصول على معلومات عامة حول إعداد بيئة التطوير لاستخدام مهام MediaPipe، بما في ذلك requirements لإصدار النظام الأساسي، يُرجى الاطّلاع على دليل الإعداد لنظام Android.
التبعيات
تستخدِم مهمة "تجميل الوجه" مكتبة com.google.mediapipe:tasks-vision
. أضِف
هذه التبعية إلى ملف build.gradle
لتطبيق Android:
dependencies {
implementation 'com.google.mediapipe:tasks-vision:latest.release'
}
الطراز
تتطلّب مهمة "تجميل الوجه" من MediaPipe حِزمة نموذج مدرَّب متوافقة مع هذه المهمة. لمزيد من المعلومات عن النماذج المدربة المتاحة لتطبيق Face Stylizer، اطّلِع على النظرة العامة على المهمة في قسم "النماذج".
اختَر النموذج ونزِّله واحفظه في دليل مشروعك:
<dev-project-root>/src/main/assets
حدِّد مسار النموذج ضمن المَعلمة ModelAssetPath
.
val modelName = "https://storage.googleapis.com/mediapipe-models/face_stylizer/blaze_face_stylizer/float32/latest/face_stylizer_color_sketch.task"
baseOptionsBuilder.setModelAssetPath(modelName)
إنشاء المهمة
تستخدِم مهمة "تجميل الوجه" من MediaPipe الدالة createFromOptions()
لإعداد
المهمة. تقبل الدالة createFromOptions()
قيمًا لإعدادات options. لمزيد من المعلومات حول خيارات الضبط، يُرجى الاطّلاع على خيارات
الضبط.
val baseOptionsBuilder = BaseOptions.builder().setModelAssetPath(modelName)
val baseOptions = baseOptionBuilder.build()
val optionsBuilder =
FaceStylizer.FaceStylizerOptions.builder()
.setBaseOptions(baseOptionsBuilder.build())
val options = optionsBuilder.build()
FaceStylizer =
FaceStylizer.createFromOptions(context, options)
خيارات الضبط
تتضمّن هذه المهمة خيارات الضبط التالية لتطبيقات Android:
اسم الخيار | الوصف | نطاق القيمة | القيمة التلقائية |
---|---|---|---|
errorListener |
تُستخدَم لضبط مستمع أخطاء اختياري. | N/A |
Not set |
إعداد البيانات
تعمل ميزة "تجميل الوجه" مع الصور الثابتة. تعالج المهمة معالجة مقدمات إدخال البيانات، بما في ذلك تغيير الحجم والدوران وتسويّة القيم. توضِّح الرمز البرمجي التالي كيفية تسليم البيانات لمعالجتها.
import com.google.mediapipe.framework.image.BitmapImageBuilder
import com.google.mediapipe.framework.image.MPImage
// Convert the input Bitmap object to an MPImage object to run inference
val mpImage = BitmapImageBuilder(image).build()
تنفيذ المهمة
استخدِم طريقة FaceStylizer.stylize()
على صورة الإدخال لتشغيل أداة تنسيق الصور:
val result = FaceStylizer.stylize(mpImage)
معالجة النتائج وعرضها
تعرِض أداة Face Stylizer عنصرًا من النوع FaceStylizerResult
يحتوي على عنصر
MPImage
يتضمّن أسلوبًا للوجه الأكثر بروزًا في
الصورة المُدخلة.
في ما يلي مثال على بيانات الإخراج من هذه المهمة:
تم إنشاء الصورة أعلاه من خلال تطبيق نموذج رسم ألوان على صورة الإدخال التالية: