En ocaciones el circulo de su cara no deja ver bien lo que está escribiendo.
Introducción a HMS Core
Pasos para el desarrollo de aplicaciones con Huawei
Debugging en la nube con Huawei
¿Qué es HMS Core?
Creación del proyecto en Android Studio
Creación de la aplicación en App Gallery Connect
Configuración de firma SHA-256
Configuración de APIs
Configuración de Android Studio y Gradle
Probando la sincronización de la aplicación
Autenticación con HMS Account Kit
Diseñando nuestra pantalla de login
Agregando los métodos de autenticación
Verificando la autenticación
Agregando el método de logout
Construyendo nuestra cámara de selfies con HMS ML Kit
Machine Learning con Huawei
Agregando los permisos para acceder a la cámara
Diseñando la pantalla personalizada de la cámara
Creando la capa de gráficos de la cámara
Creando el layout para nuestro rostro
Creando el layout del lente de la cámara
Creando nuestra actividad de cámara
Agregando nuestra cámara personalizada a la actividad
Agregando los métodos de verificación de rostro
Agregando la detección de rostro y sonrisa individual
Agregando la detección de rostro y sonrisa grupal
Tomar nuestra imagen y agregar un método de re-toma de foto
Guardar la foto en nuestra galeria
Aplicando notificaciones push con HMS Push kit
Crear el servicio de push notifications
Agregar el servicio de HMS Push kit
Verificar la conectividad de las notificaciones en App Gallery Connect
Conclusiones y consejos
Tips y solución de inconvenientes frecuentes
¿Qué más tiene Huawei?
No tienes acceso a esta clase
¡Continúa aprendiendo! Únete y comienza a potenciar tu carrera
En el mundo del desarrollo de aplicaciones, integrar características de detección de rostros y sonrisas puede añadir una capa significativa de interacción y utilidad. En esta sección, aprenderás a implementar estas funciones, explorando cómo configurar y verificar la detección de emociones para tomar una foto cuando un sujeto sonríe.
Para lograr la detección de sonrisas, primero necesitamos definir ciertas variables clave:
El siguiente paso implica retirar el analizador actual del motor y crear una función para el análisis de los rostros:
fun createFaceAnalyzer() {
val faceAnalyzerSetting = FaceAnalyzerSetting.Builder()
.setFeatureType(TypeFeatures.KEYPOINTS)
.setMinFaceProportion(0.1f)
.setTracingAllowed(true)
.build()
val analyzer = FaceAnalyzerFactory.getInstance(context).getFaceAnalyzer(faceAnalyzerSetting)
if (detectionMode == 1003) { // Modo fotografía individual
val faceTransactor = MLFaceTransactor(analyzer, object : MLResult.Callback<MLFace> {
override fun onSuccess(result: List<MLFace>?) {
if (result != null && result.isNotEmpty()) {
val face = result[0]
if (face.emotions.smilingProbability > smilingPossibility) {
saveToTakePicture = true
}
}
}
// Otros métodos override para manejo de errores, etc.
})
}
}
Los callbacks juegan un rol crucial en el manejo de eventos dentro de la app. Aquí configuras las acciones a realizar una vez que el reconocimiento facial detecta una sonrisa:
override fun onFaceDetected(itemId: String?, face: MLFace?) {
overlay.clear()
if (face == null) return
// Pintar el quadro en la cara detectada
val faceGraphic = LocalFaceGraphic(overlay, context, face)
overlay.add(faceGraphic)
if (face.emotions.smilingProbability > smilingPossibility) {
saveToTakePicture = true
}
}
Durante el desarrollo y pruebas de la aplicación, es común encontrarse con errores que afectan la visualización o la precisión de la detección:
Este enfoque modular y detallado no solo facilita la implementación, sino que también optimiza la detección de rostros y sonrisas, mejorando así la experiencia de usuario. Con el conocimiento adquirido, estás más preparado para aplicar estas técnicas y explorar nuevas funcionalidades en tus proyectos. ¡Sigue aprendiendo y explorando más posibilidades en el mundo del desarrollo de interfaces de usuario!
Aportes 3
Preguntas 2
En ocaciones el circulo de su cara no deja ver bien lo que está escribiendo.
De acuerdo con la documentacion oficial
objectCreateCallback se llama cuando se detecta un nuevo objeto (rostro)
objectUpdateCallback se llama cuando el objeto (rostro) del FRAME actual es el mismo del FRAME anterior
lostCallback se llama cuando se ha perdido el rastreo de un objeto (rostro) y aun no ha superado la cantidad de FRAMES de perdido
completeCallback se llama cuando se ha perdido el rastreo de un objeto (rostro) y se superó la cantidad de FRAMES de perdido
Excelente hasta que se ven resultados visuales 😃
¿Quieres ver más aportes, preguntas y respuestas de la comunidad?