जब उपयोगकर्ता चेहरे को ट्रैक करने की अनुमति देता है, तब आपका ऐप्लिकेशन ARCore for Jetpack XR की मदद से, चेहरे के आकार की जानकारी पा सकता है. चेहरे के आकार की जानकारी से, आपका ऐप्लिकेशन उपयोगकर्ता को वर्चुअल दुनिया में दिखा सकता है. उदाहरण के लिए, वर्चुअल चश्मा आज़माने के लिए.
Jetpack XR के लिए ARCore सेशन बनाना
Jetpack XR Runtime Session की मदद से चेहरे की जानकारी पाएं. आपका ऐप्लिकेशन इसे बना सकता है.
सेशन कॉन्फ़िगर करना
XR सेशन में, फ़ेस ट्रैकिंग की सुविधा डिफ़ॉल्ट रूप से चालू नहीं होती. चेहरा ट्रैक करने की सुविधा चालू करने के लिए, सेशन कॉन्फ़िगर करें और FaceTrackingMode.USER मोड सेट करें:
val newConfig = session.config.copy( faceTracking = Config.FaceTrackingMode.USER, ) when (val result = session.configure(newConfig)) { is SessionConfigureSuccess -> TODO(/* Success! */) is SessionConfigureConfigurationNotSupported -> TODO(/* Some combinations of configurations are not valid. Handle this failure case. */) else -> TODO(/* The session could not be configured. See SessionConfigureResult for possible causes. */) }
चेहरे का डेटा वापस पाना
उपयोगकर्ता के चेहरे का डेटा वापस पाने के लिए, Face.getUserFace(session) का इस्तेमाल करें. इसमें यह जानकारी शामिल होती है:
- चेहरे के ब्लेंडशेप की वैल्यू: चेहरे के अलग-अलग एक्सप्रेशन, 68 ब्लेंड शेप की वैल्यू का कॉम्बिनेशन होते हैं. ब्लेंड शेप की हर वैल्यू, चेहरे की किसी गतिविधि या चेहरे के आकार में बदलाव को दिखाती है. साथ ही, वैल्यू से उसकी इंटेंसिटी का पता चलता है. यह
0.0से1.0तक होती है. हर तरह के ब्लेंड शेप के बारे में जानने के लिए, चेहरे के ब्लेंडशेप टाइप के बारे में जानकारी लेख पढ़ें. - चेहरे के अलग-अलग हिस्सों के लिए कॉन्फ़िडेंस वैल्यू: चेहरे के तीन हिस्से होते हैं. कॉन्फ़िडेंस वैल्यू से, दिए गए पोज़ के सटीक होने की संभावना का पता चलता है. यह
0.0से1.0तक होती है. इसमें1.0का मतलब सबसे ज़्यादा कॉन्फ़िडेंस होता है.
val face = Face.getUserFace(session) ?: return face.state.collect { state -> if (state.trackingState != TrackingState.TRACKING) return@collect val confidence = state.getConfidence(FaceConfidenceRegion.FACE_CONFIDENCE_REGION_LOWER) val blendShapeValue = state.blendShapes[FaceBlendShapeType.FACE_BLEND_SHAPE_TYPE_LIPS_TOWARD] }
चेहरे के ब्लेंडशेप टाइप के बारे में जानकारी
यहां दी गई टेबल में, चेहरे के हर ब्लेंड शेप टाइप की सूची दी गई है:
ऊपरी हिस्से के ब्लेंडशेप
| नाम | रेफ़रंस इमेज | |
|---|---|---|
BROW_LOWERER_L |
BROW_LOWERER_L = 0.0 |
BROW_LOWERER_L = 1.0 |
BROW_LOWERER_R |
BROW_LOWERER_R = 0.0 |
BROW_LOWERER_R = 1.0 |
EYES_CLOSED_L |
EYES_CLOSED_L = 0.0 |
EYES_CLOSED_L = 1.0 |
EYES_CLOSED_R |
EYES_CLOSED_R = 0.0 |
EYES_CLOSED_R = 1.0 |
EYES_LOOK_DOWN_L |
EYES_LOOK_DOWN_L = 0.0 |
EYES_LOOK_DOWN_L = 1.0 |
EYES_LOOK_DOWN_R |
EYES_LOOK_DOWN_R = 0.0 |
EYES_LOOK_DOWN_R = 1.0 |
EYES_LOOK_LEFT_L |
EYES_LOOK_LEFT_L = 0.0 |
EYES_LOOK_LEFT_L = 1.0 |
EYES_LOOK_LEFT_R |
EYES_LOOK_LEFT_R = 0.0 |
EYES_LOOK_LEFT_R = 1.0 |
EYES_LOOK_RIGHT_L |
EYES_LOOK_RIGHT_L = 0.0 |
EYES_LOOK_RIGHT_L = 1.0 |
EYES_LOOK_RIGHT_R |
EYES_LOOK_RIGHT_R = 0.0 |
EYES_LOOK_RIGHT_R = 1.0 |
EYES_LOOK_UP_L |
EYES_LOOK_UP_L = 0.0 |
EYES_LOOK_UP_L = 1.0 |
EYES_LOOK_UP_R |
EYES_LOOK_UP_R = 0.0 |
EYES_LOOK_UP_R = 1.0 |
INNER_BROW_RAISER_L |
INNER_BROW_RAISER_L = 0.0 |
INNER_BROW_RAISER_L = 1.0 |
INNER_BROW_RAISER_R |
INNER_BROW_RAISER_R = 0.0 |
INNER_BROW_RAISER_R = 1.0 |
LID_TIGHTENER_L |
LID_TIGHTENER_L = 0.0 |
LID_TIGHTENER_L = 1.0 |
LID_TIGHTENER_R |
LID_TIGHTENER_R = 0.0 |
LID_TIGHTENER_R = 1.0 |
OUTER_BROW_RAISER_L |
OUTER_BROW_RAISER_L = 0.0 |
OUTER_BROW_RAISER_L = 1.0 |
OUTER_BROW_RAISER_R |
OUTER_BROW_RAISER_R = 0.0 |
OUTER_BROW_RAISER_R = 1.0 |
UPPER_LID_RAISER_L |
UPPER_LID_RAISER_L = 0.0 |
UPPER_LID_RAISER_L = 1.0 |
UPPER_LID_RAISER_R |
UPPER_LID_RAISER_R = 0.0 |
UPPER_LID_RAISER_R = 1.0 |
निचले हिस्से के ब्लेंडशेप
| नाम | रेफ़रंस इमेज | |
|---|---|---|
CHEEK_PUFF_L |
CHEEK_PUFF_L = 0.0 |
CHEEK_PUFF_L = 1.0 |
CHEEK_PUFF_R |
CHEEK_PUFF_R = 0.0 |
CHEEK_PUFF_R = 1.0 |
CHEEK_RAISER_L |
CHEEK_RAISER_L = 0.0 |
CHEEK_RAISER_L = 1.0 |
CHEEK_RAISER_R |
CHEEK_RAISER_R = 0.0 |
CHEEK_RAISER_R = 1.0 |
CHEEK_SUCK_L |
CHEEK_SUCK_L = 0.0 |
CHEEK_SUCK_L = 1.0 |
CHEEK_SUCK_R |
CHEEK_SUCK_R = 0.0 |
CHEEK_SUCK_R = 1.0 |
CHIN_RAISER_B |
CHIN_RAISER_B = 0.0 |
CHIN_RAISER_B = 1.0 |
CHIN_RAISER_T |
CHIN_RAISER_T = 0.0 |
CHIN_RAISER_T = 1.0 |
DIMPLER_L |
DIMPLER_L = 0.0 |
DIMPLER_L = 1.0 |
DIMPLER_R |
DIMPLER_R = 0.0 |
DIMPLER_R = 1.0 |
JAW_DROP |
JAW_DROP = 0.0 |
JAW_DROP = 1.0 |
JAW_SIDEWAYS_LEFT |
JAW_SIDEWAYS_LEFT = 0.0 |
JAW_SIDEWAYS_LEFT = 1.0 |
JAW_SIDEWAYS_RIGHT |
JAW_SIDEWAYS_RIGHT = 0.0 |
JAW_SIDEWAYS_RIGHT = 1.0 |
JAW_THRUST |
JAW_THRUST = 0.0 |
JAW_THRUST = 1.0 |
LIP_CORNER_DEPRESSOR_L |
LIP_CORNER_DEPRESSOR_L = 0.0 |
LIP_CORNER_DEPRESSOR_L = 1.0 |
LIP_CORNER_DEPRESSOR_R |
LIP_CORNER_DEPRESSOR_R = 0.0 |
LIP_CORNER_DEPRESSOR_R = 1.0 |
LIP_CORNER_PULLER_L |
LIP_CORNER_PULLER_L = 0.0 |
LIP_CORNER_PULLER_L = 1.0 |
LIP_CORNER_PULLER_R |
LIP_CORNER_PULLER_R = 0.0 |
LIP_CORNER_PULLER_R = 1.0 |
LIP_FUNNELER_LB |
LIP_FUNNELER_LB = 0.0 |
LIP_FUNNELER_LB = 1.0 |
LIP_FUNNELER_LT |
LIP_FUNNELER_LT = 0.0 |
LIP_FUNNELER_LT = 1.0 |
LIP_FUNNELER_RB |
LIP_FUNNELER_RB = 0.0 |
LIP_FUNNELER_RB = 1.0 |
LIP_FUNNELER_RT |
LIP_FUNNELER_RT = 0.0 |
LIP_FUNNELER_RT = 1.0 |
LIP_PRESSOR_L |
LIP_PRESSOR_L = 0.0 |
LIP_PRESSOR_L = 1.0 |
LIP_PRESSOR_R |
LIP_PRESSOR_R = 0.0 |
LIP_PRESSOR_R = 1.0 |
LIP_PUCKER_L |
LIP_PUCKER_L = 0.0 |
LIP_PUCKER_L = 1.0 |
LIP_PUCKER_R |
LIP_PUCKER_R = 0.0 |
LIP_PUCKER_R = 1.0 |
LIP_STRETCHER_L |
LIP_STRETCHER_L = 0.0 |
LIP_STRETCHER_L = 1.0 |
LIP_STRETCHER_R |
LIP_STRETCHER_R = 0.0 |
LIP_STRETCHER_R = 1.0 |
LIP_SUCK_LB |
LIP_SUCK_LB = 0.0 |
LIP_SUCK_LB = 1.0 |
LIP_SUCK_LT |
LIP_SUCK_LT = 0.0 |
LIP_SUCK_LT = 1.0 |
LIP_SUCK_RB |
LIP_SUCK_RB = 0.0 |
LIP_SUCK_RB = 1.0 |
LIP_SUCK_RT |
LIP_SUCK_RT = 0.0 |
LIP_SUCK_RT = 1.0 |
LIP_TIGHTENER_L |
LIP_TIGHTENER_L = 0.0 |
LIP_TIGHTENER_L = 1.0 |
LIP_TIGHTENER_R |
LIP_TIGHTENER_R = 0.0 |
LIP_TIGHTENER_R = 1.0 |
LIPS_TOWARD |
LIPS_TOWARD = 0.0 |
JAW_DROP = 1.0 and LIPS_TOWARD = 1.0 |
LOWER_LIP_DEPRESSOR_L |
LOWER_LIP_DEPRESSOR_L = 0.0 |
LOWER_LIP_DEPRESSOR_L = 1.0 |
LOWER_LIP_DEPRESSOR_R |
LOWER_LIP_DEPRESSOR_R = 0.0 |
LOWER_LIP_DEPRESSOR_R = 1.0 |
MOUTH_LEFT |
MOUTH_LEFT = 0.0 |
MOUTH_LEFT = 1.0 |
MOUTH_RIGHT |
MOUTH_RIGHT = 0.0 |
MOUTH_RIGHT = 1.0 |
NOSE_WRINKLER_L |
NOSE_WRINKLER_L = 0.0 |
NOSE_WRINKLER_L = 1.0 |
NOSE_WRINKLER_R |
NOSE_WRINKLER_R = 0.0 |
NOSE_WRINKLER_R = 1.0 |
UPPER_LIP_RAISER_L |
UPPER_LIP_RAISER_L = 0.0 |
UPPER_LIP_RAISER_L = 1.0 |
UPPER_LIP_RAISER_R |
UPPER_LIP_RAISER_R = 0.0 |
UPPER_LIP_RAISER_R = 1.0 |
TONGUE_OUT |
|
|
TONGUE_LEFT |
|
|
TONGUE_RIGHT |
|
|
TONGUE_UP |
|
|
TONGUE_DOWN |
|
|