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

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

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

पक्का करें कि आपको एआर के बुनियादी सिद्धांतों के बारे में पता हो साथ ही, आगे बढ़ने से पहले ARCore सेशन को कॉन्फ़िगर करने का तरीका जानें.

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

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

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

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

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

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

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

Augmented Faces API से आपको सेंटर पोज़, तीन रीजन पोज़, और एक 3D फ़ेस मेश मिल जाता है.

मध्य पोज़

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

केंद्र पोज़ के ऐक्सिस इस तरह से हैं:

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

क्षेत्र की स्थितियां

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

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

3D फ़ेस मेश

चेहरे के जाल में 468 बिंदु होते हैं जो एक इंसान का चेहरा बनाते हैं. इस पोज़ को बीच वाले पोज़ के हिसाब से भी तय किया जाता है.

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

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

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

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

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

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

  5. ARFaceManager के Face Prefab फ़ील्ड में, नए बनाए गए 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 का इस्तेमाल करें.