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

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

इन निर्देशों में बताया गया कोड सैंपल यहां उपलब्ध है 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.

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

चेहरे को बेहतर बनाने के इस उदाहरण के लिए, नीचे दी गई फ़ाइलों में ज़रूरी कोड शामिल है ऐप्लिकेशन:

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

सेटअप

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

डिपेंडेंसी

फ़ेस स्टाइलाइज़र टास्क के लिए, com.google.mediapipe:tasks-vision लाइब्रेरी का इस्तेमाल किया जाता है. जोड़ें यह डिपेंडेंसी आपके Android ऐप्लिकेशन की build.gradle फ़ाइल पर निर्भर करती है:

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 Face स्टाइलाइज़र टास्क में, यह सेट अप करने के लिए 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 ऑब्जेक्ट इमेज.

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

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