ব্যবহারকারী ফেস ট্র্যাকিংয়ের অনুমতি দেওয়ার পর, আপনার অ্যাপটি Jetpack XR-এর জন্য ARCore-এর মাধ্যমে ফেস শেপ তথ্য পুনরুদ্ধার করতে পারে। ফেস শেপ তথ্য আপনার অ্যাপটিকে ভার্চুয়াল জগতে ব্যবহারকারীকে প্রদর্শন করতে সাহায্য করতে পারে, উদাহরণস্বরূপ, ভার্চুয়াল চশমা ট্রাই-অনের জন্য।
Jetpack XR সেশনের জন্য একটি ARCore তৈরি করুন
জেটপ্যাক এক্সআর সেশনের জন্য ARCore এর মাধ্যমে হেড পোজ তথ্য পান। একটি 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 | ![]() | ![]() |