एआर फ़ाउंडेशन के लिए ऑगमेंटेड फ़ेस की डेवलपर गाइड

अपने ऐप्लिकेशन में लोगों के चेहरे के ऊपर एसेट रेंडर करने के लिए, ऑगमेंटेड फ़ेस का इस्तेमाल करने का तरीका जानें.

ज़रूरी शर्तें

आगे बढ़ने से पहले, पक्का करें कि आपने बुनियादी एआर (ऑगमेंटेड रिएलिटी) सिद्धांत और ARCore सेशन को कॉन्फ़िगर करने का तरीका समझ लिया है.

चेहरे पहचानें

चेहरे ARFace ऑब्जेक्ट के ज़रिए दिखाए जाते हैं, जिन्हें ARFaceManager की मदद से बनाया जाता है, अपडेट किया जाता है, और हटाया जाता है. हर फ़्रेम के लिए एक बार, ARFaceManager facesChanged इवेंट को शुरू करता है. इस इवेंट में तीन सूचियां होती हैं: जोड़े गए चेहरे, अपडेट किए गए चेहरे, और आखिरी फ़्रेम से हटाए गए चेहरे. जब ARFaceManager, सीन में किसी चेहरे की पहचान करेगा, तो यह चेहरे को ट्रैक करने के लिए अटैच किए गए ARFace कॉम्पोनेंट के साथ, Prefab को इंस्टैंशिएट करेगा. Prefab को null छोड़ा जा सकता है.

ARFaceManager सेट अप करने के लिए, नया गेम ऑब्जेक्ट बनाएं और उसमें ARFaceManager जोड़ें.

चेहरे के बीच वाले पोज़ में, Face Prefab प्रीफ़ैब इंस्टैंशिएट होता है. Maximum Face Count से पता चलता है कि ज़्यादा से ज़्यादा कितने चेहरे ट्रैक किए जा सकते हैं.

पता लगाए गए चेहरों को ऐक्सेस करें

ARFace कॉम्पोनेंट की मदद से, पहचाने गए चेहरों को ऐक्सेस करें. यह कॉम्पोनेंट, फ़ेस प्रीफ़ैब से जुड़ा होता है. ARFace वर्टेक्स, इंडेक्स, वर्टेक्स नॉर्मल, और टेक्सचर कोऑर्डिनेट की जानकारी देता है.

पहचाने गए चेहरे के हिस्से

ऑगमेंटेड फ़ेस एपीआई से एक सेंटर पोज़, तीन जगह के पोज़, और 3D फ़ेस मेश की सुविधा मिलती है.

बीच का पोज़

उपयोगकर्ता के सिर के बीच में दिखने वाला पोज़, प्रीफ़ैब के उस ऑरिजिन पॉइंट का शुरुआती पॉइंट होता है जिसे ARFaceManager ने इंस्टैंशिएट किया है. यह खोपड़ी के अंदर, नाक के पीछे होता है.

सेंटर पोज़ के अक्ष इस तरह हैं:

  • पॉज़िटिव X-ऐक्सिस (X+), बाएं कान की ओर पॉइंट करता है
  • पॉज़िटिव Y-ऐक्सिस (Y+), चेहरे से ऊपर की ओर पॉइंट करता है
  • पॉज़िटिव Z-ऐक्सिस (Z+), सिर के केंद्र की ओर इशारा करता है

क्षेत्र के आस-पास

ये मुद्राएं, उपयोगकर्ता के चेहरे के अहम हिस्सों को मार्क करती हैं. ये पोज़िशन, बाएं माथे, दाएं माथे, और नाक के ऊपरी हिस्से पर होती हैं. ये पोज़, अपने ऐक्सिस के ओरिएंटेशन के मुताबिक होते हैं.

इलाके के पोज़ का इस्तेमाल करने के लिए, ARFaceManager के सबसिस्टम को ARCoreFaceSubsystem पर सेट करें और हर इलाके के पोज़ की जानकारी पाने के लिए subsystem.GetRegionPoses() का इस्तेमाल करें. इसे करने का उदाहरण देखने के लिए, GitHub पर Unity के इस्तेमाल का सैंपल देखें.

3D फ़ेस मेश

फ़ेस मेश में 468 पॉइंट होते हैं, जिनसे इंसान का चेहरा बनता है. यह स्थिति सेंटर पोज़ के हिसाब से भी तय की जाती है.

फ़ेस मेश को विज़ुअलाइज़ करने के लिए, Face Prefab में ARFaceMeshVisualizer लगाएं. ARFaceMeshVisualizer, पहचाने गए चेहरे के हिसाब से एक Mesh जनरेट करेगा. इसे, अटैच किए गए MeshFilter और MeshCollider में मेश के तौर पर सेट किया जाएगा. चेहरे को रेंडर करने के लिए इस्तेमाल होने वाले Material को सेट करने के लिए, MeshRenderer का इस्तेमाल करें.

AR Default Face Prefab, पहचाने गए फ़ेस मेश पर डिफ़ॉल्ट मटीरियल को रेंडर करता है.

एआर डिफ़ॉल्ट फ़ेस का इस्तेमाल शुरू करने के लिए, यह तरीका अपनाएं:

  1. ARFaceManager को सेट अप करें.
  2. नया फ़ेस ऑब्जेक्ट बनाने के लिए, Hierarchy टैब में + > XR > AR Default Face का इस्तेमाल करें. यह ऑब्जेक्ट कुछ समय के लिए है. इसे फ़ेस प्रीफ़ैब बनाने के बाद मिटाया जा सकता है.

  3. इंस्पेक्टर में जाकर AR Default Face को ऐक्सेस करें.

  4. प्रीफ़ैब बनाने के लिए, नए बनाए गए एआर डिफ़ॉल्ट फ़ेस को Hierarchy टैब से Project Assets विंडो में खींचें और छोड़ें.

  5. नए बनाए गए Prefab को ARFaceManager के Face Prefab फ़ील्ड में फ़ेस प्रीफ़ैब के तौर पर सेट करें.

  6. Hierarchy टैब में, फ़ेस ऑब्जेक्ट को मिटाएं, क्योंकि अब इसकी ज़रूरत नहीं है.

फ़ेस मेश के अलग-अलग वर्टेक्स को ऐक्सेस करें

फ़ेस मेश के सिरों की पोज़िशन को ऐक्सेस करने के लिए, face.vertices का इस्तेमाल करें. संबंधित वर्टेक्स नॉर्मल को ऐक्सेस करने के लिए, face.normals का इस्तेमाल करें.

फ़ेस मेश के अलग-अलग शीर्षों को विज़ुअलाइज़ करें

फ़ेस मेश के वर्टेक्स से जुड़े इंडेक्स नंबर को आसानी से देखने के लिए, ब्लेंडर का इस्तेमाल किया जा सकता है:

  1. ब्लेंडर खोलें और GitHub से canonical_face_mesh.fbx को इंपोर्ट करें.
  2. Edit > Preferences > Interface पर नेविगेट करें.
  3. Display मेन्यू में जाकर, Developer Extras चुनें.

  4. 3D व्यूपोर्ट में क्लिक करके चेहरे को चुनें और बदलाव मोड में जाने के लिए Tab दबाएं.

  5. Overlays व्यूपोर्ट के बगल में मौजूद ड्रॉप-डाउन मेन्यू खोलें और Indices चुनें.

    ब्लेंडर फ़ेस मेश इंडेक्स

  6. उस शीर्ष को हाइलाइट करें जिसका इंडेक्स नंबर आप तय करना चाहते हैं. सभी वर्टेक्स को हाइलाइट करने के लिए, Select > All का इस्तेमाल करें.