Integre el servicio de aprendizaje automático de Huawei (ML Kit) para crear fácilmente minijuegos explosivos

Cuando escanee Moments, siempre se actualizará con algunos juegos interesantes. Estos juegos son fáciles de operar, aptos para todas las edades, se difunden muy rápido y dominan el círculo de amigos en minutos. ¿También quieres hacer un pequeño juego explosivo e interesante? Las funciones de reconocimiento facial y reconocimiento de puntos clave de la mano proporcionadas por el servicio de aprendizaje automático de Huawei pueden ayudarlo a lograrlo.

Crazy Rockets: este juego integra la detección de reconocimiento facial y el reconocimiento de puntos clave de la mano. Se han desarrollado dos juegos, uno es controlar el cohete para volar a través de Stonehenge moviendo la cara hacia arriba y hacia abajo. La otra es controlar moviendo gestos hacia arriba y hacia abajo. Ambos métodos son para retroalimentar la información detectando los puntos clave de la cara y las manos, y luego controlar el movimiento del cohete, ¡que está lleno de diversión!

Integre el servicio de aprendizaje automático de Huawei (ML Kit) para crear fácilmente minijuegos explosivos

El loco juego del carrito de compras se realiza integrando la función de detección de puntos clave de la mano. A través de la detección de gestos, el carrito de compras se puede controlar para que se mueva hacia la izquierda y hacia la derecha, a fin de atrapar todo tipo de mercancías que caen. Se acelerará cada 15 segundos para el jugador Trae una experiencia de compra diferente.

Integre el servicio de aprendizaje automático de Huawei (ML Kit) para crear fácilmente minijuegos explosivos

Combate de desarrollo de Crazy Rockets

(1) Rostro humano

1. Configurar el almacén de maven

  • Configure la dirección del repositorio de Maven de HMS Core SDK en "allprojects> repositories".
allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}
  • Configure la dirección del almacén de Maven del HMS Core SDK en "buildscript> repositories".
buildscript {   
    repositories {       
       google()       
       jcenter()       
       maven {url 'https://developer.huawei.com/repo/'}   
    }
}
  • Agregue la configuración de agcp en "buildscript> dependencias".
dependencies {
        ...       
        classpath 'com.huawei.agconnect:agcp:1.3.1.300'   
     }   
}

2. SDK integrado

Implementation  'com.huawei.hms:ml-computer-vision-face:2.0.1.300'

3. Crea un analizador facial

MLFaceAnalyzer analyzer = MLAnalyzerFactory.getInstance().getFaceAnalyzer();

4. Crea una clase de procesamiento

public class FaceAnalyzerTransactor implements MLAnalyzer.MLTransactor<MLFace> {
    @Override
    public void transactResult(MLAnalyzer.Result<MLFace> results) {
        SparseArray<MLFace> items = results.getAnalyseList();
        // 开发者根据需要处理识别结果,需要注意,这里只对检测结果进行处理。
        // 不可调用ML Kit提供的其他检测相关接口。
    }
    @Override
    public void destroy() {
        // 检测结束回调方法,用于释放资源等。
    }
}

5. Cree LensEngine para capturar el flujo de video dinámico de la cámara y pasarlo al analizador

LensEngine lensEngine = new LensEngine.Creator(getApplicationContext(), analyzer)
    .setLensType(LensEngine.BACK_LENS)
    .applyDisplayDimension(1440, 1080)
    .applyFps(30.0f)
    .enableAutomaticFocus(true)
    .create();

6. Llame al método de ejecución, inicie la cámara, lea la transmisión de video e identifique

// 请自行实现SurfaceView控件的其他逻辑。
SurfaceView mSurfaceView = findViewById(R.id.surface_view);
try {
    lensEngine.run(mSurfaceView.getHolder());
} catch (IOException e) {
    // 异常处理逻辑。
}

7. Liberar recursos de detección

if (analyzer != null) {
    try {
        analyzer.stop();
    } catch (IOException e) {
         // 异常处理。
    }
}
if (lensEngine != null) {
    lensEngine.release();
}

(2) Reconocimiento de gestos

1. Configurar el repositorio de maven

Configure la dirección del repositorio de Maven de HMS Core SDK en "allprojects> repositories".

allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

Configure la dirección del almacén de Maven del HMS Core SDK en "buildscript> repositories".

buildscript {   
    repositories {       
       google()       
       jcenter()       
       maven {url 'https://developer.huawei.com/repo/'}   
    }
}

Agregue la configuración de agcp en "buildscript> dependencias".

dependencies {
        ...       
        classpath 'com.huawei.agconnect:agcp:1.3.1.300'   
     }
 }

2. SDK integrado

// 引入基础SDK
implementation 'com.huawei.hms:ml-computer-vision-handkeypoint:2.0.4.300'
// 引入手部关键点检测模型包
implementation 'com.huawei.hms:ml-computer-vision-handkeypoint-model:2.0.4.300'

3. Cree un analizador de gestos predeterminado

MLHandKeypointAnalyzer analyzer =MLHandKeypointAnalyzerFactory.getInstance().getHandKeypointAnalyzer();

4. Crea una clase de procesamiento

public class HandKeypointTransactor implements MLAnalyzer.MLTransactor<List<MLHandKeypoints>> {
@Override
public void transactResult(MLAnalyzer.Result<List<MLHandKeypoints>> results) {
SparseArray<List<MLHandKeypoints>> analyseList = results.getAnalyseList();
// 开发者根据需要处理识别结果,需要注意,这里只对检测结果进行处理。
// 不可调用ML Kit提供的其他检测相关接口。
}
@Override
public void destroy() {
// 检测结束回调方法,用于释放资源等。
}
}

5. Establecer la clase de procesamiento

analyzer.setTransactor(new HandKeypointTransactor());

6. Cree Lengengine

LensEngine lensEngine = new LensEngine.Creator(getApplicationContext(), analyzer)
.setLensType(LensEngine.BACK_LENS)
.applyDisplayDimension(1280, 720)
.applyFps(20.0f)
.enableAutomaticFocus(true)
.create();

7. Llame al método de ejecución, inicie la cámara, lea la transmisión de video e identifique

// 请自行实现SurfaceView控件的其他逻辑。
SurfaceView mSurfaceView = findViewById(R.id.surface_view);
try {
lensEngine.run(mSurfaceView.getHolder());
} catch (IOException e) {
// 异常处理逻辑。
}

8. Liberar recursos de detección

if (analyzer != null) {
analyzer.stop();
}

if (lensEngine != null) {
lensEngine.release();
}

(3) Combate real del loco desarrollo de carritos de compras

1. Configurar la dirección del almacén de Maven

buildscript {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
    dependencies {
        ...
        classpath 'com.huawei.agconnect:agcp:1.4.1.300'
    }
}

allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}

2. Integración completa con SDK

dependencies{
    // 引入基础SDK
    implementation 'com.huawei.hms:ml-computer-vision-handkeypoint:2.0.4.300'
    // 引入手部关键点检测模型包
    implementation 'com.huawei.hms:ml-computer-vision-handkeypoint-model:2.0.4.300'
}

Después de integrar el SDK de una de las dos formas anteriores, agregue la configuración en el encabezado del archivo.

Agregue el complemento de aplicación: 'com.huawei.agconnect' después de aplicar el complemento: 'com.android.application'

3. Cree un analizador de puntos clave de mano

MLHandKeypointAnalyzer analyzer =MLHandKeypointAnalyzerFactory.getInstance().getHandKeypointAnalyzer();

4. Cree la clase de procesamiento de resultados de reconocimiento "HandKeypointTransactor"

public class HandKeypointTransactor implements MLAnalyzer.MLTransactor<List<MLHandKeypoints>> {
    @Override
    public void transactResult(MLAnalyzer.Result<List<MLHandKeypoints>> results) {
        SparseArray<List<MLHandKeypoints>> analyseList = results.getAnalyseList();
        // 开发者根据需要处理识别结果,需要注意,这里只对检测结果进行处理。
        // 不可调用ML Kit提供的其他检测相关接口。
    }
    @Override
    public void destroy() {
        // 检测结束回调方法,用于释放资源等。
    }
}

5. Configure el procesador de resultados de reconocimiento para realizar la vinculación del analizador y el procesador de resultados.

analyzer.setTransactor(new HandKeypointTransactor());

6. Cree LensEngine

LensEngine lensEngine = new LensEngine.Creator(getApplicationContext(), analyzer)
    .setLensType(LensEngine.BACK_LENS)
    .applyDisplayDimension(1280, 720)
    .applyFps(20.0f)
    .enableAutomaticFocus(true)
    .create();

7. Llame al método de ejecución, inicie la cámara, lea la transmisión de video e identifique

// 请自行实现SurfaceView控件的其他逻辑。
SurfaceView mSurfaceView = findViewById(R.id.surface_view);
try {
    lensEngine.run(mSurfaceView.getHolder());
} catch (IOException e) {
    // 异常处理逻辑。
}

8. Una vez completada la detección, detenga el analizador y libere los recursos de detección.

if (analyzer != null) {
    analyzer.stop();
}
if (lensEngine != null) {
    lensEngine.release();
}

Después de leer los principales pasos de desarrollo, ¿crees que la integración es simple y rápida? Además de los dos minijuegos anteriores, las tecnologías de reconocimiento facial y reconocimiento de puntos clave tienen muchos escenarios de aplicación en la vida. Por ejemplo, después de que el software para grabar videos cortos integra esta tecnología, puede generar algunos efectos especiales lindos o divertidos según los puntos clave de la mano, y aumentar el interés del video corto. O en un escenario orientado al hogar inteligente, puede personalizar algunos gestos como instrucciones de control remoto para que los electrodomésticos inteligentes realicen algunos métodos más inteligentes de interacción humano-computadora. ¡Ven y prueba y desarrolla aplicaciones divertidas e interesantes juntos!

Para obtener más detalles, consulte:

Sitio web oficial de Huawei Developer Alliance , obtenga documentos de orientación de desarrollo

Para participar en las discusiones de los desarrolladores, vaya a Reddit

Para descargar la demostración y el código de muestra, vaya a Github

Para resolver problemas de integración, vaya a Stack Overflow


Enlace original:
https://developer.huawei.com/consumer/cn/forum/topic/0204406585449080270?fid=18&pid=0304406585449080230

Autor: Pepper

Supongo que te gusta

Origin blog.51cto.com/14772288/2562480
Recomendado
Clasificación