Implemente la ampliación de ojos y el modelado de rostros con ML Kit | detección de rostros Giemo | Desarrolladores de Huawei | Octubre de 2020

A veces no podemos evitar fotografiar para mantener nuestros momentos memorables de la vida. Pero la mayoría de nosotros no somos fotógrafos o modelos profesionales, por lo que nuestras fotos pueden no cumplir con nuestras expectativas. Entonces, ¿cómo creamos imágenes más impresionantes? Si tiene una aplicación de procesamiento de imágenes en su teléfono, esta puede detectar rostros automáticamente en una foto y luego puede editar la imagen hasta que esté satisfecho con ella. Entonces, después de la inspección en línea, encontré la capacidad de detectar la cara del kit HUAWEI ML. Al integrar esta función, puede agregar funciones de embellecimiento a sus aplicaciones. ¡Intentalo!

El ML Face Detection Kit detecta hasta 855 puntos faciales clave y devuelve las coordenadas del contorno de la cara, cejas, ojos, nariz, boca y oídos, así como el ángulo de la cara. Una vez integrado, puede crear rápidamente aplicaciones de belleza y permitir a los usuarios agregar efectos divertidos y rasgos faciales a sus imágenes.

La detección de rostros también detecta si el sujeto tiene los ojos abiertos, si lleva gafas o sombrero, si tiene barba e incluso su sexo y edad. Esto es útil si desea agregar una función de control parental a su aplicación que evite que los niños se acerquen demasiado al teléfono o miren la pantalla demasiado tiempo.

Además, la detección de rostros puede detectar hasta siete expresiones faciales, incluidas las caras sonrientes, neutrales, enojadas, disgustadas, asustadas, tristes y sorprendidas. Esto es genial si desea crear aplicaciones como Smile Shutter.

Puede integrar cualquiera de estas funciones según sea necesario. La detección de rostros también admite la detección de secuencias de imágenes y video, el seguimiento de rostros de imágenes cruzadas y la detección de múltiples rostros. ¡Es realmente fuerte! Ahora veamos cómo integrar esta habilidad.

Se puede encontrar información detallada sobre los preparativos a realizar en el sitio web. Desarrolladores – proceso de desarrollo de HUAWEI. Aquí solo veremos los procedimientos más importantes.

buildscript {repositories {...maven {url 'https://developer.huawei.com/repo/'}}}dependencies {...classpath 'com.huawei.agconnect:agcp:1.3.1.300'}allprojects {repositories {...maven {url 'https://developer.huawei.com/repo/'}}}

Después de integrar el SDK, agregue la siguiente configuración al encabezado del archivo:

apply plugin: 'com.android.application'apply plugin: 'com.huawei.agconnect'
dependencies{// Import the base SDK.implementation 'com.huawei.hms:ml-computer-vision-face:2.0.1.300'// Import the contour and keypoint detection model package.implementation 'com.huawei.hms:ml-computer-vision-face-shape-point-model:2.0.1.300'// Import the facial expression detection model package.implementation 'com.huawei.hms:ml-computer-vision-face-emotion-model:2.0.1.300'// Import the facial feature detection model package.implementation 'com.huawei.hms:ml-computer-vision-face-feature-model:2.0.1.300'}
<manifest...<meta-dataandroid:name="com.huawei.hms.ml.DEPENDENCY"android:value= "face"/>...</manifest>
<uses-permission android:name="android.permission.CAMERA" /><uses-feature android:name="android.hardware.camera" />
analyzer   = MLAnalyzerFactory.getInstance().getFaceAnalyzer();
MLFrame   frame = MLFrame.fromBitmap(bitmap);
Task<List<MLFace>>   task = analyzer.asyncAnalyseFrame(frame);task.addOnSuccessListener(new   OnSuccessListener<List<MLFace>>() {@Overridepublic void onSuccess(List<MLFace>   faces) {// Detection success.   Obtain the face keypoints.}}).addOnFailureListener(new   OnFailureListener() {@Overridepublic void onFailure(Exception e) {// Detection failure.}});

2.4 Utilice la barra de progreso para procesar la cara en la imagen

Llamada agrandar el ojo y smallFaceMesh métodos para implementar el algoritmo de aumento del ojo y el algoritmo de modelado del rostro.

private   SeekBar.OnSeekBarChangeListener onSeekBarChangeListener = new   SeekBar.OnSeekBarChangeListener() {@Overridepublic void   onProgressChanged(SeekBar seekBar, int progress, boolean fromUser) {switch   (seekBar.getId()) {case   R.id.seekbareye: // When the progress bar of the eye enlarging changes, ...case   R.id.seekbarface: // When the progress bar of the face shaping changes, ...}}
try {if   (analyzer != null) {analyzer.stop();}} catch (IOException e) {Log.e(TAG,   "e=" + e.getMessage());}

Ahora veamos qué puede hacer. Bastante genial, ¿no?

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *