راهنمای استایل سازی چهره برای اندروید

وظیفه MediaPipe Face Stylizer به شما امکان می‌دهد استایل‌سازی‌های صورت را روی چهره‌های یک تصویر اعمال کنید. می توانید از این کار برای ایجاد آواتارهای مجازی در سبک های مختلف استفاده کنید.

نمونه کد شرح داده شده در این دستورالعمل ها در GitHub موجود است. برای اطلاعات بیشتر در مورد قابلیت‌ها، مدل‌ها و گزینه‌های پیکربندی این کار، به نمای کلی مراجعه کنید.

نمونه کد

کد مثال MediaPipe Tasks یک پیاده سازی اساسی از یک برنامه Face Stylizer برای اندروید است. مثال، سبک‌سازی چهره را برای تصاویر ارائه شده به برنامه اعمال می‌کند.

می‌توانید از برنامه به‌عنوان نقطه شروع برای برنامه اندرویدی خود استفاده کنید یا هنگام تغییر برنامه موجود به آن مراجعه کنید. کد نمونه Face Stylizer در GitHub میزبانی می شود.

کد را دانلود کنید

دستورالعمل های زیر به شما نشان می دهد که چگونه با استفاده از ابزار خط فرمان git یک کپی محلی از کد مثال ایجاد کنید.

برای دانلود کد نمونه:

  1. با استفاده از دستور زیر مخزن git را کلون کنید:
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. به صورت اختیاری، نمونه git خود را برای استفاده از پرداخت پراکنده پیکربندی کنید، بنابراین فقط فایل‌های برنامه نمونه Face Stylizer را داشته باشید:
    cd mediapipe
    git sparse-checkout init --cone
    git sparse-checkout set examples/face_stylization/android
    

پس از ایجاد یک نسخه محلی از کد نمونه، می توانید پروژه را به اندروید استودیو وارد کرده و برنامه را اجرا کنید. برای دستورالعمل‌ها، به راهنمای راه‌اندازی برای Android مراجعه کنید.

اجزای کلیدی

فایل‌های زیر حاوی کد حیاتی برای این نرم‌افزار نمونه استایل‌سازی چهره هستند:

  • FaceStylizationHelper.kt : حالت دهنده چهره را راه اندازی می کند و مدل و انتخاب نماینده را مدیریت می کند.
  • MainActivity.kt : نتایج و خروجی ها را ارائه می دهد و هر گونه خطا را مدیریت می کند.

برپایی

این بخش مراحل کلیدی را برای راه‌اندازی محیط توسعه و پروژه‌های کد مخصوصاً برای استفاده از Face Stylizer توضیح می‌دهد. برای اطلاعات کلی در مورد تنظیم محیط توسعه خود برای استفاده از وظایف MediaPipe، از جمله الزامات نسخه پلت فرم، به راهنمای راه اندازی برای Android مراجعه کنید.

وابستگی ها

وظیفه Face Stylizer از کتابخانه com.google.mediapipe:tasks-vision استفاده می کند. این وابستگی را به فایل build.gradle برنامه اندروید خود اضافه کنید:

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 Face Stylizer از تابع 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

داده ها را آماده کنید

Face Stylizer با تصاویر ثابت کار می کند. این وظیفه، پیش پردازش ورودی داده، از جمله تغییر اندازه، چرخش و نرمال سازی مقدار را انجام می دهد. کد زیر نحوه واگذاری داده ها را برای پردازش نشان می دهد.

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 با یک سبک‌سازی از برجسته‌ترین چهره در تصویر ورودی است.

شکل زیر نمونه ای از داده های خروجی از این کار را نشان می دهد:

خروجی بالا با اعمال مدل Color sketch در تصویر ورودی زیر ایجاد شد: