Jetpack XR için ARCore ile uygulamanıza yüz izleme özelliğini ekleme

Kullanıcı yüz takibi için izin verdikten sonra uygulamanız, Jetpack XR için ARCore aracılığıyla yüz şekli bilgilerini alabilir. Yüz şekli bilgileri, uygulamanızın kullanıcıyı sanal dünyada göstermesine yardımcı olabilir. Örneğin, sanal gözlük denemesi için bu bilgiler kullanılabilir.

Jetpack XR için ARCore oturumu oluşturma

Jetpack XR için ARCore oturumu aracılığıyla baş pozisyonu bilgilerini alma. Session elde etmek için Oturumun yaşam döngüsünü anlama başlıklı makaleyi inceleyin.

Oturumu yapılandırma

Yüz izleme, XR oturumlarında varsayılan olarak etkin değildir. Yüz takibini etkinleştirmek için oturumu yapılandırın ve FaceTrackingMode.USER modunu ayarlayın:

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. */)
}

Yüz verilerini alma

Aşağıdakileri içeren kullanıcı yüzü verilerini almak için Face.getUserFace(session) kullanın:

  • Yüz karışım şekli değerleri: Bir yüzün olası ifadeleri, 68 karışım şekli değerinin bir kombinasyonudur. Her karışım şekli değeri, yüzün bir hareketini veya deformasyonunu temsil eder. Değer, 0.0 ile 1.0 arasında değişen yoğunluğunu gösterir. Her bir karışım şekli türünün açıklaması için Yüz karışım şekli türlerini anlama başlıklı makaleyi inceleyin.
  • Bölgeler için güven değerleri: Yüzde üç bölge bulunur. Güven değerleri, verilen pozların doğruluk kesinlik derecesini gösterir. Bu değerler 0.0 ile 1.0 arasında değişir. 1.0, en yüksek güveni gösterir.

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]
}

Yüz karışım şekli türlerini anlama

Aşağıdaki tablolarda her bir yüz karışımı şekli türü listelenmektedir:

Üst bölge karışım şekilleri

Ad Referans Görseller
BROW_LOWERER_L
İfadesiz yüz referans resmi
BROW_LOWERER_L = 0.0
yüz izleme referans resmi
BROW_LOWERER_L = 1.0
BROW_LOWERER_R
İfadesiz yüz referans resmi
BROW_LOWERER_R = 0.0
yüz izleme referans resmi
BROW_LOWERER_R = 1.0
EYES_CLOSED_L
İfadesiz yüz referans resmi
EYES_CLOSED_L = 0.0
yüz izleme referans resmi
EYES_CLOSED_L = 1.0
EYES_CLOSED_R
İfadesiz yüz referans resmi
EYES_CLOSED_R = 0.0
yüz izleme referans resmi
EYES_CLOSED_R = 1.0
EYES_LOOK_DOWN_L
İfadesiz yüz referans resmi
EYES_LOOK_DOWN_L = 0.0
yüz izleme referans resmi
EYES_LOOK_DOWN_L = 1.0
EYES_LOOK_DOWN_R
İfadesiz yüz referans resmi
EYES_LOOK_DOWN_R = 0.0
yüz izleme referans resmi
EYES_LOOK_DOWN_R = 1.0
EYES_LOOK_LEFT_L
İfadesiz yüz referans resmi
EYES_LOOK_LEFT_L = 0.0
yüz izleme referans resmi
EYES_LOOK_LEFT_L = 1.0
EYES_LOOK_LEFT_R
İfadesiz yüz referans resmi
EYES_LOOK_LEFT_R = 0.0
yüz izleme referans resmi
EYES_LOOK_LEFT_R = 1.0
EYES_LOOK_RIGHT_L
İfadesiz yüz referans resmi
EYES_LOOK_RIGHT_L = 0.0
yüz izleme referans resmi
EYES_LOOK_RIGHT_L = 1.0
EYES_LOOK_RIGHT_R
İfadesiz yüz referans resmi
EYES_LOOK_RIGHT_R = 0.0
yüz izleme referans resmi
EYES_LOOK_RIGHT_R = 1.0
EYES_LOOK_UP_L
İfadesiz yüz referans resmi
EYES_LOOK_UP_L = 0.0
yüz izleme referans resmi
EYES_LOOK_UP_L = 1.0
EYES_LOOK_UP_R
İfadesiz yüz referans resmi
EYES_LOOK_UP_R = 0.0
yüz izleme referans resmi
EYES_LOOK_UP_R = 1.0
INNER_BROW_RAISER_L
İfadesiz yüz referans resmi
INNER_BROW_RAISER_L = 0.0
yüz izleme referans resmi
INNER_BROW_RAISER_L = 1.0
INNER_BROW_RAISER_R
İfadesiz yüz referans resmi
INNER_BROW_RAISER_R = 0.0
yüz izleme referans resmi
INNER_BROW_RAISER_R = 1.0
LID_TIGHTENER_L
İfadesiz yüz referans resmi
LID_TIGHTENER_L = 0.0
yüz izleme referans resmi
LID_TIGHTENER_L = 1.0
LID_TIGHTENER_R
İfadesiz yüz referans resmi
LID_TIGHTENER_R = 0.0
yüz izleme referans resmi
LID_TIGHTENER_R = 1.0
OUTER_BROW_RAISER_L
İfadesiz yüz referans resmi
OUTER_BROW_RAISER_L = 0.0
yüz izleme referans resmi
OUTER_BROW_RAISER_L = 1.0
OUTER_BROW_RAISER_R
İfadesiz yüz referans resmi
OUTER_BROW_RAISER_R = 0.0
yüz izleme referans resmi
OUTER_BROW_RAISER_R = 1.0
UPPER_LID_RAISER_L
İfadesiz yüz referans resmi
UPPER_LID_RAISER_L = 0.0
yüz izleme referans resmi
UPPER_LID_RAISER_L = 1.0
UPPER_LID_RAISER_R
İfadesiz yüz referans resmi
UPPER_LID_RAISER_R = 0.0
yüz izleme referans resmi
UPPER_LID_RAISER_R = 1.0

Alt bölge karışım şekilleri

Ad Referans Görseller
CHEEK_PUFF_L
İfadesiz yüz referans resmi
CHEEK_PUFF_L = 0.0
yüz izleme referans resmi
CHEEK_PUFF_L = 1.0
CHEEK_PUFF_R
İfadesiz yüz referans resmi
CHEEK_PUFF_R = 0.0
yüz izleme referans resmi
CHEEK_PUFF_R = 1.0
CHEEK_RAISER_L
İfadesiz yüz referans resmi
CHEEK_RAISER_L = 0.0
yüz izleme referans resmi
CHEEK_RAISER_L = 1.0
CHEEK_RAISER_R
İfadesiz yüz referans resmi
CHEEK_RAISER_R = 0.0
yüz izleme referans resmi
CHEEK_RAISER_R = 1.0
CHEEK_SUCK_L
İfadesiz yüz referans resmi
CHEEK_SUCK_L = 0.0
yüz izleme referans resmi
CHEEK_SUCK_L = 1.0
CHEEK_SUCK_R
İfadesiz yüz referans resmi
CHEEK_SUCK_R = 0.0
yüz izleme referans resmi
CHEEK_SUCK_R = 1.0
CHIN_RAISER_B
İfadesiz yüz referans resmi
CHIN_RAISER_B = 0.0
yüz izleme referans resmi
CHIN_RAISER_B = 1.0
CHIN_RAISER_T
İfadesiz yüz referans resmi
CHIN_RAISER_T = 0.0
yüz izleme referans resmi
CHIN_RAISER_T = 1.0
DIMPLER_L
İfadesiz yüz referans resmi
DIMPLER_L = 0.0
yüz izleme referans resmi
DIMPLER_L = 1.0
DIMPLER_R
İfadesiz yüz referans resmi
DIMPLER_R = 0.0
yüz izleme referans resmi
DIMPLER_R = 1.0
JAW_DROP
İfadesiz yüz referans resmi
JAW_DROP = 0.0
yüz izleme referans resmi
JAW_DROP = 1.0
JAW_SIDEWAYS_LEFT
İfadesiz yüz referans resmi
JAW_SIDEWAYS_LEFT = 0.0
yüz izleme referans resmi
JAW_SIDEWAYS_LEFT = 1.0
JAW_SIDEWAYS_RIGHT
İfadesiz yüz referans resmi
JAW_SIDEWAYS_RIGHT = 0.0
yüz izleme referans resmi
JAW_SIDEWAYS_RIGHT = 1.0
JAW_THRUST
İfadesiz yüz referans resmi
JAW_THRUST = 0.0
yüz izleme referans resmi
JAW_THRUST = 1.0
LIP_CORNER_DEPRESSOR_L
İfadesiz yüz referans resmi
LIP_CORNER_DEPRESSOR_L = 0.0
yüz izleme referans resmi
LIP_CORNER_DEPRESSOR_L = 1.0
LIP_CORNER_DEPRESSOR_R
İfadesiz yüz referans resmi
LIP_CORNER_DEPRESSOR_R = 0.0
yüz izleme referans resmi
LIP_CORNER_DEPRESSOR_R = 1.0
LIP_CORNER_PULLER_L
İfadesiz yüz referans resmi
LIP_CORNER_PULLER_L = 0.0
yüz izleme referans resmi
LIP_CORNER_PULLER_L = 1.0
LIP_CORNER_PULLER_R
İfadesiz yüz referans resmi
LIP_CORNER_PULLER_R = 0.0
yüz izleme referans resmi
LIP_CORNER_PULLER_R = 1.0
LIP_FUNNELER_LB
İfadesiz yüz referans resmi
LIP_FUNNELER_LB = 0.0
yüz izleme referans resmi
LIP_FUNNELER_LB = 1.0
LIP_FUNNELER_LT
İfadesiz yüz referans resmi
LIP_FUNNELER_LT = 0.0
yüz izleme referans resmi
LIP_FUNNELER_LT = 1.0
LIP_FUNNELER_RB
İfadesiz yüz referans resmi
LIP_FUNNELER_RB = 0.0
yüz izleme referans resmi
LIP_FUNNELER_RB = 1.0
LIP_FUNNELER_RT
İfadesiz yüz referans resmi
LIP_FUNNELER_RT = 0.0
yüz izleme referans resmi
LIP_FUNNELER_RT = 1.0
LIP_PRESSOR_L
İfadesiz yüz referans resmi
LIP_PRESSOR_L = 0.0
yüz izleme referans resmi
LIP_PRESSOR_L = 1.0
LIP_PRESSOR_R
İfadesiz yüz referans resmi
LIP_PRESSOR_R = 0.0
yüz izleme referans resmi
LIP_PRESSOR_R = 1.0
LIP_PUCKER_L
İfadesiz yüz referans resmi
LIP_PUCKER_L = 0.0
yüz izleme referans resmi
LIP_PUCKER_L = 1.0
LIP_PUCKER_R
İfadesiz yüz referans resmi
LIP_PUCKER_R = 0.0
yüz izleme referans resmi
LIP_PUCKER_R = 1.0
LIP_STRETCHER_L
İfadesiz yüz referans resmi
LIP_STRETCHER_L = 0.0
yüz izleme referans resmi
LIP_STRETCHER_L = 1.0
LIP_STRETCHER_R
İfadesiz yüz referans resmi
LIP_STRETCHER_R = 0.0
yüz izleme referans resmi
LIP_STRETCHER_R = 1.0
LIP_SUCK_LB
İfadesiz yüz referans resmi
LIP_SUCK_LB = 0.0
yüz izleme referans resmi
LIP_SUCK_LB = 1.0
LIP_SUCK_LT
İfadesiz yüz referans resmi
LIP_SUCK_LT = 0.0
yüz izleme referans resmi
LIP_SUCK_LT = 1.0
LIP_SUCK_RB
İfadesiz yüz referans resmi
LIP_SUCK_RB = 0.0
yüz izleme referans resmi
LIP_SUCK_RB = 1.0
LIP_SUCK_RT
İfadesiz yüz referans resmi
LIP_SUCK_RT = 0.0
yüz izleme referans resmi
LIP_SUCK_RT = 1.0
LIP_TIGHTENER_L
İfadesiz yüz referans resmi
LIP_TIGHTENER_L = 0.0
yüz izleme referans resmi
LIP_TIGHTENER_L = 1.0
LIP_TIGHTENER_R
İfadesiz yüz referans resmi
LIP_TIGHTENER_R = 0.0
yüz izleme referans resmi
LIP_TIGHTENER_R = 1.0
LIPS_TOWARD
İfadesiz yüz referans resmi
LIPS_TOWARD = 0.0
yüz izleme referans resmi
JAW_DROP = 1.0 and LIPS_TOWARD = 1.0
LOWER_LIP_DEPRESSOR_L
İfadesiz yüz referans resmi
LOWER_LIP_DEPRESSOR_L = 0.0
yüz izleme referans resmi
LOWER_LIP_DEPRESSOR_L = 1.0
LOWER_LIP_DEPRESSOR_R
İfadesiz yüz referans resmi
LOWER_LIP_DEPRESSOR_R = 0.0
yüz izleme referans resmi
LOWER_LIP_DEPRESSOR_R = 1.0
MOUTH_LEFT
İfadesiz yüz referans resmi
MOUTH_LEFT = 0.0
yüz izleme referans resmi
MOUTH_LEFT = 1.0
MOUTH_RIGHT
İfadesiz yüz referans resmi
MOUTH_RIGHT = 0.0
yüz izleme referans resmi
MOUTH_RIGHT = 1.0
NOSE_WRINKLER_L
İfadesiz yüz referans resmi
NOSE_WRINKLER_L = 0.0
yüz izleme referans resmi
NOSE_WRINKLER_L = 1.0
NOSE_WRINKLER_R
İfadesiz yüz referans resmi
NOSE_WRINKLER_R = 0.0
yüz izleme referans resmi
NOSE_WRINKLER_R = 1.0
UPPER_LIP_RAISER_L
İfadesiz yüz referans resmi
UPPER_LIP_RAISER_L = 0.0
yüz izleme referans resmi
UPPER_LIP_RAISER_L = 1.0
UPPER_LIP_RAISER_R
İfadesiz yüz referans resmi
UPPER_LIP_RAISER_R = 0.0
yüz izleme referans resmi
UPPER_LIP_RAISER_R = 1.0
TONGUE_OUT
İfadesiz yüz referans resmi
TONGUE_OUT = 0.0
yüz izleme referans resmi
TONGUE_OUT = 1.0
TONGUE_LEFT
İfadesiz yüz referans resmi
TONGUE_LEFT = 0.0
yüz izleme referans resmi
TONGUE_LEFT = 1.0
TONGUE_RIGHT
İfadesiz yüz referans resmi
TONGUE_RIGHT = 0.0
yüz izleme referans resmi
TONGUE_RIGHT = 1.0
TONGUE_UP
İfadesiz yüz referans resmi
TONGUE_UP = 0.0
yüz izleme referans resmi
TONGUE_UP = 1.0
TONGUE_DOWN
İfadesiz yüz referans resmi
TONGUE_DOWN = 0.0
yüz izleme referans resmi
TONGUE_DOWN = 1.0