دليل كيفية تنسيق الوجوه على أجهزة Android

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

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

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

رمز مثال رمز MediaPipe Tasks هو تنفيذ أساسي لمصمّم نمط الوجه تطبيق Android. يطبق المثال نمط الوجه على الصور المقدمة في التطبيق.

يمكنك استخدام التطبيق كنقطة بداية لتطبيق Android الخاص بك، أو الرجوع إليه عند تعديل تطبيق حالي. تتم استضافة نموذج الرمز البرمجي لأداة تغيير نمط الوجه على GitHub.

تنزيل الرمز

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

لتنزيل نموذج الرمز:

  1. استنساخ مستودع git باستخدام الأمر التالي:
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. يمكنك اختياريًا ضبط مثيل git لاستخدام عملية دفع متفرقة، وبالتالي الملفات الخاصة بالتطبيق كمثال "أداة تغيير نمط الوجه" فقط:
    cd mediapipe
    git sparse-checkout init --cone
    git sparse-checkout set examples/face_stylization/android
    

بعد إنشاء نسخة محلية من نموذج الرمز، يمكنك استيراد المشروع. إلى استوديو Android وتشغيل التطبيق. للحصول على إرشادات، راجع دليل إعداد Android

المكوّنات الرئيسية

تحتوي الملفات التالية على الرمز الأساسي لمثال نمط الوجه هذا app:

  • FaceStylizationHelper.kt: يؤدي هذا الإعداد إلى إعداد نمط الوجه والتعامل مع النموذج وعملية تحديد التفويض.
  • MainActivity.kt: يقدم النتائج والمخرجات ويتعامل مع أي أخطاء.

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

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

التبعيات

تستخدم مهمة "أداة تعديل الوجه" مكتبة "com.google.mediapipe:tasks-vision". إضافة هذه التبعية إلى ملف build.gradle في تطبيق Android:

dependencies {
    implementation 'com.google.mediapipe:tasks-vision:latest.release'
}

الطراز

تتطلب مهمة "أداة تغيير نمط الوجه في MediaPipe" حِزمة نموذج مدرَّبة ومتوافقة مع هذه المهمة. لمزيد من المعلومات حول النماذج المدرَّبة المتاحة لاستخدام "أداة تغيير نمط الوجه"، يُرجى اتّباع الخطوات التالية: راجِع نظرة عامة على المهام في قسم "النماذج".

حدد النموذج ونزّله وخزّنه في دليل المشروع:

<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() قيم الإعدادات. الخيارات. لمزيد من المعلومات حول خيارات الضبط، يُرجى الاطّلاع على الإعدادات. الخيارات.

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)

التعامل مع العملاء وعرض النتائج

يعرض "أداة تغيير نمط الوجه" العنصر "FaceStylizerResult" الذي يحتوي على كائن MPImage بنمط الوجه الأكثر بروزًا في الإدخال .

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

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