疯狂购物车-快速集成华为HMS ML Kit 手部关键点检测轻松操控你的购物车

前言


双十一即将来临不知道各位的购物是不是已经塞满了东西呢?小编也想将自己的购物车塞得满满的,奈何钱包不想,于是就只能通过游戏虚拟购物来满足自己的购物欲了。没曾想到竟然被我发现了一款集成了华为HMS ML Kit手部关键点检测的小游戏-疯狂购物车,下面就跟小编一起看看这个游戏是怎么实现的吧!


应用场景

疯狂购物车小游戏是通过集成华为HMS ML Kit手部关键点检测服务来实现的,通过手势检测可以控制购物车左右移动,从而接住掉落下来的各类商品,每隔15秒将提一次速,给玩家带来不一样的购物游戏体验。


怎么样,这么有趣的游戏还不心动吗?那就一起来看看开发步骤吧!


开发实战

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'后添加applyplugin: 'com.huawei.agconnect'


3.创建手部关键点分析器

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


4.创建识别结果处理类“HandKeypointTransactor”

public class HandKeypointTransactorimplements MLAnalyzer.MLTransactor> {

   @Override

   public voidtransactResult(MLAnalyzer.Result> results) {

       SparseArray> analyseList =results.getAnalyseList();

       //开发者根据需要处理识别结果,需要注意,这里只对检测结果进行处理。

       //不可调用ML Kit提供的其他检测相关接口。

    }

   @Override

   public void destroy() {

       //检测结束回调方法,用于释放资源等。

    }

}


4.设置识别结果处理器,实现分析器与结果处理器的绑定

analyzer.setTransactor(newHandKeypointTransactor());


5.创建LensEngine

LensEngine lensEngine = newLensEngine.Creator(getApplicationContext(), analyzer)

    .setLensType(LensEngine.BACK_LENS)

   .applyDisplayDimension(1280, 720)

   .applyFps(20.0f)

   .enableAutomaticFocus(true)

   .create();


6.调用run方法,启动相机,读取视频流,进行识别

// 请自行实现SurfaceView控件的其他逻辑。

SurfaceView mSurfaceView =findViewById(R.id.surface_view);

try {

   lensEngine.run(mSurfaceView.getHolder());

} catch (IOException e) {

   //异常处理逻辑。

}


7.检测完成,停止分析器,释放检测资源

if (analyzer != null) {

   analyzer.stop();

}

if (lensEngine != null) {

   lensEngine.release();

}


结束语

看完主要开发步骤是不是觉得集成简单又快速,除了上述的疯狂购物车小游戏,手部关键点识别技术在生活中有很多的应用场景。比如拍摄短视频的软件在集成了这种技术后,可以根据手部关键点生成一些可爱或者搞笑的特效,增加短视频的趣味性。或者是在面向智能家居的场景中,可以自定义一些手势作为智能家电的远距离操控指令,进行一些更加智能的人机交互方式。快来试试吧,一起开发好玩又有趣的应用吧!


Github Demo Code

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

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

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

参与开发者讨论请到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

©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容