Сканируя Moments, вы всегда будете обновлены интересными играми. Эти игры просты в использовании, подходят для всех возрастов и очень быстро распространяются, и они доминируют в кругу друзей за считанные минуты. Вы тоже хотите сделать взрывную и интересную маленькую игру? В этом вам помогут функции распознавания лиц и ключевых точек руки, предоставляемые сервисом машинного обучения Huawei.
Crazy Rockets - эта игра объединяет распознавание лиц и ключевых точек руки. Было разработано два игровых процесса: один - управлять ракетой, которая летит через Стоунхендж, перемещая лицо вверх и вниз. Другой - управление движением вверх и вниз жестами. Оба метода предназначены для получения обратной связи путем определения ключевых точек лица и рук, а затем для управления движением ракеты, что очень весело!
Сумасшедшая игра с тележкой для покупок реализована за счет интеграции функции определения ключевых точек руки. Благодаря обнаружению жестов тележка для покупок может перемещаться влево и вправо, чтобы ловить все виды падающих товаров. Она будет ускоряться каждые 15 секунд для игрока Принесите другой опыт покупок.
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