Fácil captura de los movimientos corporales con la detección de esqueletos HUAWEI ML Kit Giemo | Desarrolladores de Huawei | Octubre de 2020

allprojects {
repositories {
google()
jcenter()
maven { url 'https://developer.huawei.com/repo/' }
}
}
dependencies {
implementation 'com.huawei.hms:ml-computer-vision-skeleton-model:2.0.1.300'
implementation 'com.huawei.hms:ml-computer-vision-skeleton:2.0.1.300'
implementation 'com.huawei.hms:ml-computer-vision-base:2.0.1.300'
}

2.1.1 Crear un analizador de esqueletos

MLSkeletonAnalyzer   analyzer = MLSkeletonAnalyzerFactory.getInstance().getSkeletonAnalyzer();

2.1.2 Creando un MLFrame usando un mapa de bits

La resolución de la imagen no debe ser inferior a 320 x 320 píxeles ni superior a 1920 x 1920 píxeles.

//   Create an MLFrame using the   bitmap.MLFrame   frame = MLFrame.fromBitmap(bitmap);

2.1.3 Realice la detección del esqueleto llamando al método asyncAnalyseFrame

Task<List<MLSkeleton>> task =   analyzer.asyncAnalyseFrame(frame);    task.addOnSuccessListener(new   OnSuccessListener<List<MLSkeleton>>() {public void   onSuccess(List<MLSkeleton> skeletons) {// Process the detection   result.}}).addOnFailureListener(new   OnFailureListener() {public void onFailure(Exception   e) {// Detection failure.}});

2.1.4 Cuando se complete la detección, detenga el analizador y libere los recursos

try {if (analyzer != null) {analyzer.stop();}} catch   (IOException e) {// Exception handling.}

Echemos un vistazo a la demostración ahora.

2.2.1 Crear un analizador de esqueletos

MLSkeletonAnalyzer   analyzer = MLSkeletonAnalyzerFactory.getInstance().getSkeletonAnalyzer();

2.2.2 Cree una clase SkeletonAnalyzerTransactor para procesar el resultado de la detección

Esta clase implementa MLAnalyzer.MLTransactor API. Puedes usar transactResult método de obtención del resultado de detección e implementación de servicios específicos.

public   class SkeletonAnalyzerTransactor implements   MLAnalyzer.MLTransactor<MLSkeleton> {@Overridepublic void   transactResult(MLAnalyzer.Result<MLSkeleton> results) {SparseArray<MLSkeleton> items =   results.getAnalyseList();// You can process the detection   result as required. For example, calculate the similarity in this method to   perform an operation, such as taking a photo when a specific posture has been   detected.// Only the detection result is   processed. Other detection APIs provided by ML Kit cannot be called.// Convert the result encapsulated   using SparseArray to an ArrayList   for similarity calculation.List<MLSkeleton> resultsList =   new ArrayList<>();for (int i = 0; i < items.size();   i++) {resultsList.add(items.valueAt(i));}// Calculate the similarity between   the detection result and template.// templateList is a list of skeleton templates. Templates can be   generated by detecting static images. The skeleton detection service supports   single-person and multi-person template matching.float result =   analyzer.caluteSimilarity(resultsList, templateList);}@Overridepublic void destroy() {// Callback method used to release   resources when the detection ends.}}

2.2.3. Configurar el procesador de resultados de detección para vincular el analizador

analyzer.setTransactor(new   SkeletonAnalyzerTransactor());

2.2.4 Crear una clase LensEngine

Esta clase la proporciona el SDK de HMS Core ML. Captura secuencias de video dinámicas de la cámara y las envía al analizador. El tamaño de la pantalla de la cámara no debe ser menor de 320 x 320 píxeles ni mayor de 1920 x 1920 píxeles.

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

2.2.5 Abrir la cámara

Puede capturar y detectar transmisiones de video, luego detener el analizador y liberar recursos cuando se complete la detección.

if   (analyzer != null) {try {analyzer.stop();} catch (IOException e) {// Exception handling.}}if   (lensEngine != null) {lensEngine.release();}

Veamos un video dinámico.

Con la función de detección de esqueletos del HUAWEI ML Kit, puede hacer todo tipo de cosas:

  • Cree imágenes virtuales y simule acciones en vivo en juegos de detección de movimiento.
  • Proporcionar liderazgo de liderazgo para mejorar la formación y la rehabilitación.
  • Infórmese sobre comportamientos inusuales en sus videos.

Código fuente de Github

Para mas informacion contacte

Deja una respuesta

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