Merry Christmas

Stella981
• 阅读 501

前言

We wish you a Merry Christmas, We wish you a Merry Christmas, We wish you a Merry Christmas and Happy New Year。圣诞节来临是不是大街小巷已经想起了这首熟悉的圣诞歌曲了呢?铺天盖地的圣诞树,圣诞玩偶,和雪花都在提醒着你圣诞节的到来,一款集成了华为HMS ML Kit手部关键点检测的圣诞小游戏就非常应景啦,一起来体验看看吧!

应用场景

圣诞小游戏是通过手势识别来控制雪橇车左右移动,从而接住从天掉落下来的各类圣诞礼物,每隔15秒将提一次速,给玩家带来不一样的购物游戏体验,快来接住圣诞老人的礼物吧!

Merry Christmas

开发实战

1.配置Maven仓地址
打开Android Studio项目级“build.gradle”文件

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.Full 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后,在文件头添加配置。 在apply plugin: 'com.android.application'后添加apply plugin: 'com.huawei.agconnect'

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.调用run方法,启动相机,读取视频流,进行识别

// 请自行实现SurfaceView控件的其他逻辑。
SurfaceView mSurfaceView = findViewById(R.id.surface_view);
try {
    lensEngine.run(mSurfaceView.getHolder());
} catch (IOException e) {
    // 异常处理逻辑。
}
  1. 检测完成,停止分析器,释放检测资源

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

结束语

手部关键点识别支持识别包括手指指尖,手腕等21个手部关键点,并返回关键点的位置数据。这款圣诞小游戏就是通过识别手部动态轨迹而控制雪橇车的移动,来接住各类从天而降的礼物,增加游戏的可玩性和趣味性。手部关键点识别还可以广泛应用在其它类别的APP上,大家一起来打开脑洞开发试试吧!

了解更多

欲了解更多详情,请参阅:

华为开发者联盟官网:https://developer.huawei.com/consumer/cn/hms?ha_source=hms1

获取开发指导文档:https://developer.huawei.com/consumer/cn/doc/development?ha_source=hms1

参与开发者讨论请到Reddit社区:https://www.reddit.com/r/HMSCore/

下载demo和示例代码请到Github:https://github.com/HMS-Core

解决集成问题请到Stack Overflow:https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest


原文链接:https://developer.huawei.com/consumer/cn/forum/topic/0202442756764380482?fid=18

原作者:timer

点赞
收藏
评论区
推荐文章
blmius blmius
3年前
MySQL:[Err] 1292 - Incorrect datetime value: ‘0000-00-00 00:00:00‘ for column ‘CREATE_TIME‘ at row 1
文章目录问题用navicat导入数据时,报错:原因这是因为当前的MySQL不支持datetime为0的情况。解决修改sql\mode:sql\mode:SQLMode定义了MySQL应支持的SQL语法、数据校验等,这样可以更容易地在不同的环境中使用MySQL。全局s
前端尾随者 前端尾随者
2年前
sourceTree 添加 ssh key 方法
1.使用git客户的生成公私钥:id\rsa、id\rsa.pub1.1设置Git的username和email:$gitconfigglobaluser.name"xxx"$gitconfig\globaluser.email"xxx.mail@xxx.com"1.2.生成SSH密钥过程:1.2.1.检查是不是已经存在密钥(
待兔 待兔
4个月前
手写Java HashMap源码
HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程HashMap的使用教程22
Stella981 Stella981
3年前
GreenPlum tidb 性能比较
主要的需求  针对大体量表的OLAP统计查询,需要找到一个稳定,高性能的大数据数据库,具体使用  数据可以实时的写入和查询,并发的tps不是很高建立数据仓库,模式上主要采用星星模型、雪花模型,或者宽表前端展示分为3类 saiku、granafa、c代码开发数据体量:事实表在35亿、维度表大的在500
Stella981 Stella981
3年前
Day01——Python简介
一、Python简介python的创始人为吉多·范罗苏姆(GuidovanRossum)。1989年的圣诞节期间,吉多·范罗苏姆为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承,Python通过C语言开发。TIOBE开发语言排名(20180117),python排名第四https:/
Stella981 Stella981
3年前
Python 基础知识(一)
1.Python简介1.1、Python介绍     python的创始人为吉多·范罗苏姆(GuidovanRossum)。1989年的圣诞节期间,吉多·范罗苏姆(中文名字:龟叔)为了在阿姆斯特丹打发时间,决心开发一个新的脚本解释程序,作为ABC语言的一种继承。  (龟叔:2005年加入谷歌至2012年,2013年加
Stella981 Stella981
3年前
OSChina 圣诞节乱弹 ——程序员看圣诞节真相!
【今日歌曲】@小小编辑(https://my.oschina.net/xxiaobian) : 最爱的乐队之一,《WeWishYouAMerryChristmas》Weezer!(https://static.oschina.net/uploads/space/2016/1224/165759_OqEu_142833
Wesley13 Wesley13
3年前
35岁是技术人的天花板吗?
35岁是技术人的天花板吗?我非常不认同“35岁现象”,人类没有那么脆弱,人类的智力不会说是35岁之后就停止发展,更不是说35岁之后就没有机会了。马云35岁还在教书,任正非35岁还在工厂上班。为什么技术人员到35岁就应该退役了呢?所以35岁根本就不是一个问题,我今年已经37岁了,我发现我才刚刚找到自己的节奏,刚刚上路。
为什么mysql不推荐使用雪花ID作为主键
作者:毛辰飞背景在mysql中设计表的时候,mysql官方推荐不要使用uuid或者不连续不重复的雪花id(long形且唯一),而是推荐连续自增的主键id,官方的推荐是auto_increment,那么为什么不建议采用uuid,使用uuid究