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

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

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

कोड का उदाहरण

फ़ेस स्टाइलस के लिए दिए गए कोड में, आपके रेफ़रंस के लिए, Python में इस टास्क को पूरी तरह से लागू किया जा सकता है. इस कोड से, इस टास्क को टेस्ट करने और अपना फ़ेस स्टाइलाइज़र बनाने में मदद मिलती है. सिर्फ़ वेब ब्राउज़र का इस्तेमाल करके, फ़ेस स्टाइलस के उदाहरण कोड को देखा जा सकता है, चलाया जा सकता है, और उसमें बदलाव किया जा सकता है.

सेटअप

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

पैकेज

MediaPipe फ़ेस स्टाइलस टास्क के लिए MediaPipe PyPI पैकेज की ज़रूरत होती है. इन डिपेंडेंसी को इनके साथ इंस्टॉल और इंपोर्ट किया जा सकता है:

$ python -m pip install mediapipe

इंपोर्ट

फ़ेस स्टाइलस के टास्क के फ़ंक्शन ऐक्सेस करने के लिए, नीचे दी गई क्लास इंपोर्ट करें:

import mediapipe as mp
from mediapipe.tasks import python
from mediapipe.tasks.python import vision

मॉडल

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

मॉडल चुनें और उसे डाउनलोड करें. इसके बाद, उसे किसी लोकल डायरेक्ट्री में सेव करें:

model_path = '/absolute/path/to/face_stylizer.task'

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

टास्क बनाएं

MediaPipe फ़ेस स्टाइलस टास्क, टास्क को सेट अप करने के लिए create_from_options फ़ंक्शन का इस्तेमाल करता है. create_from_options फ़ंक्शन, हैंडल करने के लिए कॉन्फ़िगरेशन विकल्पों की वैल्यू स्वीकार करता है.

नीचे दिया गया कोड इस टास्क को बनाने और कॉन्फ़िगर करने का तरीका बताता है.

import mediapipe as mp

BaseOptions = mp.tasks.BaseOptions
Facestylizer = mp.tasks.vision.face_stylizer
FacestylizerOptions = mp.tasks.vision.FaceStylizerOptions

# Create a face stylizer instance with the image mode:
options = FacestylizerOptions(
    base_options=BaseOptions(model_asset_path=model_path),
with Facestylizer.create_from_options(options) as stylizer:
  # The stylizer is initialized. Use it here.
  # ...

डेटा तैयार करना

अपने इनपुट को इमेज फ़ाइल या संख्यात्मक कलेक्शन के तौर पर तैयार करें. इसके बाद, उसे mediapipe.Image ऑब्जेक्ट में बदलें. अगर आपका इनपुट किसी वेबकैम से कोई वीडियो फ़ाइल या लाइव स्ट्रीम है, तो आपके पास OpenCV जैसी बाहरी लाइब्रेरी का इस्तेमाल करने का विकल्प है. इस लाइब्रेरी से इनपुट फ़्रेम को सुन्न कलेक्शन के तौर पर लोड किया जा सकता है.

import mediapipe as mp

# Load the input image from an image file.
mp_image = mp.Image.create_from_file('/path/to/image')

# Load the input image from a numpy array.
mp_image = mp.Image(image_format=mp.ImageFormat.SRGB, data=numpy_image)

टास्क चलाएं

फ़ेस स्टाइलाइज़र, अनुमान को ट्रिगर करने के लिए stylize फ़ंक्शन का इस्तेमाल करता है. चेहरे को बेहतर बनाने के लिए, इसमें इनपुट डेटा को प्री-प्रोसेस किया जाता है. साथ ही, इमेज में चेहरों को बेहतर बनाया जाता है.

नीचे दिया गया कोड बताता है कि टास्क मॉडल से प्रोसेसिंग को कैसे एक्ज़ीक्यूट करें.

# Perform face stylization on the provided single image.
# The face stylizer must be created with the image mode.
face_stylizer_result = stylizer.stylize(mp_image)

नतीजे मैनेज करें और दिखाएं

फ़ेस स्टाइलस की मदद से, इनपुट इमेज में सबसे खास चेहरे के स्टाइलाइज़ेशन के साथ Image ऑब्जेक्ट दिखाया जाता है.

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

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