Android के लिए चेहरे को बेहतर बनाने से जुड़ी गाइड

MediaPipe फ़ेस स्टाइलस टास्क की मदद से, किसी इमेज में मौजूद चेहरों पर चेहरे को बेहतर बनाया जा सकता है. इस टास्क का इस्तेमाल करके, अलग-अलग स्टाइल के वर्चुअल अवतार बनाए जा सकते हैं.

इन निर्देशों में दिया गया कोड सैंपल, GitHub पर उपलब्ध है. इस टास्क की क्षमताओं, मॉडल, और कॉन्फ़िगरेशन विकल्पों के बारे में ज़्यादा जानकारी के लिए, खास जानकारी देखें.

कोड का उदाहरण

MediaPipe Tasks का उदाहरण कोड, Android के लिए फ़ेस स्टाइलस ऐप्लिकेशन को बुनियादी तौर पर लागू करने का एक तरीका है. यह उदाहरण, ऐप्लिकेशन को दी गई इमेज पर चेहरे को बेहतर बनाने का तरीका लागू करता है.

अपने Android ऐप्लिकेशन के लिए, शुरुआत करने की जगह के तौर पर इस ऐप्लिकेशन का इस्तेमाल किया जा सकता है या किसी मौजूदा ऐप्लिकेशन में बदलाव करते समय इसका इस्तेमाल किया जा सकता है. फ़ेस स्टाइलस के उदाहरण वाले कोड को GitHub पर होस्ट किया गया है.

कोड डाउनलोड करें

नीचे दिए गए निर्देशों में git कमांड लाइन टूल का इस्तेमाल करके, उदाहरण कोड की लोकल कॉपी बनाने का तरीका बताया गया है.

उदाहरण कोड डाउनलोड करने के लिए:

  1. नीचे दिए गए निर्देश का इस्तेमाल करके, गिट रिपॉज़िटरी का क्लोन बनाएं:
    git clone https://github.com/google-ai-edge/mediapipe-samples
    
  2. इसके अलावा, स्पार्स चेकआउट का इस्तेमाल करने के लिए अपना गिट इंस्टेंस कॉन्फ़िगर करें. ऐसा करने से, आपके पास सिर्फ़ फ़ेस स्टाइलस के उदाहरण वाले ऐप्लिकेशन की फ़ाइलें हों:
    cd mediapipe
    git sparse-checkout init --cone
    git sparse-checkout set examples/face_stylization/android
    

उदाहरण कोड का स्थानीय वर्शन बनाने के बाद, प्रोजेक्ट को Android Studio में इंपोर्ट किया जा सकता है. इसके बाद, ऐप्लिकेशन को चलाया जा सकता है. निर्देशों के लिए, Android के लिए सेटअप गाइड देखें.

मुख्य कॉम्पोनेंट

इन फ़ाइलों में, फ़ेस स्टाइल के इस उदाहरण वाले ऐप्लिकेशन के लिए ज़रूरी कोड मौजूद है:

  • FaceStylizationHelper.kt: फ़ेस स्टाइलाइज़र को शुरू करता है और मॉडल और डेलिगेट की गई जानकारी को मैनेज करता है.
  • MainActivity.kt: यह नतीजे और आउटपुट देता है और किसी भी गड़बड़ी को मैनेज करता है.

सेटअप

इस सेक्शन में, डेवलपमेंट एनवायरमेंट को सेट अप करने और खास तौर पर फ़ेस स्टाइलस इस्तेमाल करने के लिए कोड प्रोजेक्ट सेट अप करने का तरीका बताया गया है. MediaPipe टास्क का इस्तेमाल करने और प्लैटफ़ॉर्म के वर्शन की ज़रूरी शर्तों के साथ-साथ अपना डेवलपमेंट एनवायरमेंट सेट अप करने के बारे में सामान्य जानकारी के लिए, Android के लिए सेटअप गाइड देखें.

डिपेंडेंसी

फ़ेस स्टाइलाइज़र टास्क में com.google.mediapipe:tasks-vision लाइब्रेरी का इस्तेमाल होता है. अपने Android ऐप्लिकेशन की 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 फ़ेस स्टाइलस टास्क, टास्क को सेट अप करने के लिए 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 ऑब्जेक्ट शामिल होता है, जो इनपुट इमेज में सबसे खास चेहरे की स्टाइल वाला होता है.

इस टास्क के आउटपुट डेटा का एक उदाहरण यहां दिया गया है:

ऊपर दिया गया आउटपुट, इस इनपुट इमेज पर कलर स्केच मॉडल लागू करके बनाया गया था: