अपने ऐप्लिकेशन में, लोगों के चेहरे के ऊपर ऐसेट रेंडर करने के लिए, ऑगमेंटेड फ़ेस सुविधा का इस्तेमाल करने का तरीका जानें.
ज़रूरी शर्तें
पक्का करें कि आपको एआर के बुनियादी सिद्धांतों के बारे में पता हो साथ ही, आगे बढ़ने से पहले 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
और MeshCollider
s में मेश के तौर पर सेट किया जाएगा. चेहरे की इमेज बनाने के लिए इस्तेमाल किए जाने वाले Material
को सेट करने के लिए, MeshRenderer
का इस्तेमाल करें.
AR Default Face Prefab, चेहरे की उन मैशों पर डिफ़ॉल्ट मटीरियल रेंडर करता है जिनका पता लगाया गया है.
एआर डिफ़ॉल्ट फ़ेस का इस्तेमाल शुरू करने के लिए, यह तरीका अपनाएं:
ARFaceManager
सेट अप करें.Hierarchy टैब में, + का इस्तेमाल करें > XR > चेहरे से जुड़ा नया ऑब्जेक्ट बनाने के लिए AR Default Face. यह ऑब्जेक्ट कुछ समय के लिए है और इसे 'फ़ेस प्रीफ़ैब' बनाने के बाद मिटाया जा सकता है.
इंस्पेक्टर में AR Default Face को ऐक्सेस करें.
प्रीफ़ैब बनाने के लिए, नए बनाए गए एआर डिफ़ॉल्ट फ़ेस को Hierarchy टैब से Project Assets विंडो में खींचें और छोड़ें.
ARFaceManager
के Face Prefab फ़ील्ड में, नए बनाए गए Prefab को फ़ेस प्रीफ़ैब के तौर पर सेट करें.Hierarchy टैब में, चेहरे की पहचान करके बनाए गए ऑब्जेक्ट को मिटा दें, क्योंकि अब उसकी ज़रूरत नहीं है.
चेहरे के जाल के अलग-अलग कोने ऐक्सेस करें
चेहरे के जाल के कोनों को ऐक्सेस करने के लिए, face.vertices
का इस्तेमाल करें. संबंधित वर्टेक्स नॉर्मल को ऐक्सेस करने के लिए face.normals
का इस्तेमाल करें.
चेहरे के जाल के अलग-अलग कोनों को विज़ुअलाइज़ करें
फ़ेस मेश के वर्टेक्स से जुड़े इंडेक्स नंबर आसानी से देखने के लिए, ब्लेंडर का इस्तेमाल करें:
- ब्लेंडर खोलें और GitHub से
canonical_face_mesh.fbx
इंपोर्ट करें. - Edit > Preferences > Interface पर नेविगेट करें.
Display मेन्यू में जाकर, Developer Extras चुनें.
3D व्यूपोर्ट में चेहरे को क्लिक करके उसे चुनें और बदलाव मोड में जाने के लिए Tab दबाएं.
Overlays व्यूपोर्ट के पास वाला ड्रॉप-डाउन मेन्यू खोलें और Indices चुनें.
उस वर्टेक्स को हाइलाइट करें जिसका इंडेक्स नंबर आपको तय करना है. सभी शीर्षों को हाइलाइट करने के लिए, Select > All का इस्तेमाल करें.