Интегрируйте сервис машинного обучения Huawei (ML Kit), чтобы легко создавать взрывные мини-игры

Сканируя Moments, вы всегда будете обновлены интересными играми. Эти игры просты в использовании, подходят для всех возрастов и очень быстро распространяются, и они доминируют в кругу друзей за считанные минуты. Вы тоже хотите сделать взрывную и интересную маленькую игру? В этом вам помогут функции распознавания лиц и ключевых точек руки, предоставляемые сервисом машинного обучения Huawei.

Crazy Rockets - эта игра объединяет распознавание лиц и ключевых точек руки. Было разработано два игровых процесса: один - управлять ракетой, которая летит через Стоунхендж, перемещая лицо вверх и вниз. Другой - управление движением вверх и вниз жестами. Оба метода предназначены для получения обратной связи путем определения ключевых точек лица и рук, а затем для управления движением ракеты, что очень весело!

Интегрируйте сервис машинного обучения Huawei (ML Kit), чтобы легко создавать взрывные мини-игры

Сумасшедшая игра с тележкой для покупок реализована за счет интеграции функции определения ключевых точек руки. Благодаря обнаружению жестов тележка для покупок может перемещаться влево и вправо, чтобы ловить все виды падающих товаров. Она будет ускоряться каждые 15 секунд для игрока Принесите другой опыт покупок.

Интегрируйте сервис машинного обучения Huawei (ML Kit), чтобы легко создавать взрывные мини-игры

Crazy Rockets разработка боя

(1) человеческое лицо

1. Настроить склад maven

  • Настройте адрес репозитория Maven для HMS Core SDK в «allprojects> repositories».
allprojects {
    repositories {
        google()
        jcenter()
        maven {url 'https://developer.huawei.com/repo/'}
    }
}
  • Настройте адрес хранилища Maven для HMS Core SDK в «buildscript> repositories».
buildscript {   
    repositories {       
       google()       
       jcenter()       
       maven {url 'https://developer.huawei.com/repo/'}   
    }
}
  • Добавьте конфигурацию agcp в "buildscript> dependencies".
dependencies {
        ...       
        classpath 'com.huawei.agconnect:agcp:1.3.1.300'   
     }   
}

2. Встроенный SDK

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

3. Создайте анализатор лица.

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

4. Создайте класс обработки.

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. Создайте LensEngine для захвата динамического видеопотока камеры и передачи его анализатору.

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

6. Вызвать метод запуска, запустить камеру, прочитать видеопоток и определить

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

7. Освободите ресурсы обнаружения

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

(2) Распознавание жеста

1. Настройте репозиторий maven.

Настройте адрес репозитория Maven для HMS Core SDK в «allprojects> repositories».

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

Настройте адрес хранилища Maven для HMS Core SDK в «buildscript> repositories».

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

Добавьте конфигурацию agcp в "buildscript> dependencies".

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

2. Встроенный SDK

// 引入基础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. Создайте анализатор жестов по умолчанию.

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

4. Создайте класс обработки.

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. Установите класс обработки.

analyzer.setTransactor(new HandKeypointTransactor());

6. Создайте Lengengine

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

7. Вызовите метод запуска, запустите камеру, прочтите видеопоток и определите

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

8. Ресурсы для обнаружения выпуска

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

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

(3) Актуальная борьба с безумным развитием тележек для покупок

1. Настройте адрес хранилища 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. Полная интеграция с 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'
}

После интеграции SDK одним из двух указанных выше способов добавьте конфигурацию в заголовок файла.

Добавьте плагин применения: 'com.huawei.agconnect' после применения плагина: 'com.android.application'

3. Создайте ручной анализатор ключевых точек.

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

4. Создайте класс обработки результатов распознавания 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. Настройте процессор результатов распознавания для реализации привязки анализатора и процессора результатов.

analyzer.setTransactor(new HandKeypointTransactor());

6. Создайте LensEngine.

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

7. Вызовите метод запуска, запустите камеру, прочтите видеопоток и определите

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

8. После завершения обнаружения остановите анализатор и освободите ресурсы обнаружения.

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

Прочитав основные этапы разработки, почувствуете ли вы, что интеграция проста и быстра? В дополнение к двум вышеупомянутым мини-играм технологии распознавания лиц и ключевых точек руки имеют множество сценариев применения в жизни. Например, после того, как программное обеспечение для съемки коротких видеороликов интегрирует эту технологию, оно может создавать симпатичные или забавные спецэффекты в соответствии с ключевыми моментами руки и повышать интерес к короткому видеоролику. Или в сцене, ориентированной на умный дом, вы можете настроить некоторые жесты в качестве инструкций по дистанционному управлению для умных бытовых приборов, чтобы выполнять более умные методы взаимодействия человека с компьютером. Приходите и попробуйте вместе разрабатывать веселые и интересные приложения!

Для получения более подробной информации, пожалуйста, обратитесь к:

Официальный сайт Huawei Developer Alliance , получите руководства по разработке

Чтобы участвовать в обсуждениях разработчиков, перейдите на Reddit.

Чтобы загрузить демонстрацию и образец кода, перейдите на Github

Чтобы решить проблемы интеграции, перейдите в раздел Stack Overflow


Исходная ссылка:
https://developer.huawei.com/consumer/cn/forum/topic/0204406585449080270?fid=18&pid=0304406585449080230

Автор: Pepper

рекомендация

отblog.51cto.com/14772288/2562480