با ARCore برای Jetpack XR، ردیابی چهره را در برنامه خود بگنجانید

پس از اینکه کاربر اجازه ردیابی چهره را داد ، برنامه شما می‌تواند اطلاعات شکل چهره را از طریق ARCore برای Jetpack XR بازیابی کند. اطلاعات شکل چهره می‌تواند به برنامه شما کمک کند تا کاربر را در دنیای مجازی، مثلاً برای امتحان کردن عینک مجازی، نمایش دهد.

یک جلسه ARCore برای Jetpack XR ایجاد کنید

اطلاعات مربوط به حالت سر را از طریق یک جلسه ARCore برای Jetpack XR دریافت کنید. برای دریافت یک 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) برای بازیابی داده‌های چهره کاربر استفاده کنید که شامل موارد زیر است:

  • مقادیر ترکیب شکل چهره : حالات ممکن یک چهره ترکیبی از ۶۸ مقدار شکل ترکیبی است. هر مقدار شکل ترکیبی نشان دهنده یک حرکت یا تغییر شکل چهره است و مقدار آن شدت آن را نشان می‌دهد که از 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
تصویر مرجع چهره خنثی
خروجی زبان = 0.0
تصویر مرجع ردیابی چهره
خروجی زبان = ۱.۰
TONGUE_LEFT
تصویر مرجع چهره خنثی
زبان_چپ = 0.0
تصویر مرجع ردیابی چهره
زبان_چپ = ۱.۰
TONGUE_RIGHT
تصویر مرجع چهره خنثی
زبان_راست = 0.0
تصویر مرجع ردیابی چهره
زبان_راست = ۱.۰
TONGUE_UP
تصویر مرجع چهره خنثی
زبان_UP = 0.0
تصویر مرجع ردیابی چهره
زبان_UP = 1.0
TONGUE_DOWN
تصویر مرجع چهره خنثی
زبان_پایین = 0.0
تصویر مرجع ردیابی چهره
زبان_پایین = ۱.۰