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

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

ज़रूरी बातें

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

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

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

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

Face Prefab को चेहरे के बीच वाले पोज़ेशन में सेट किया गया है: 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 जनरेट किए गए चेहरे से जुड़ा एक 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 व्यूपोर्ट में क्लिक करके चुनें और बदलाव मोड में जाने के लिए 'टैब' दबाएं.

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

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

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