HUAWEI ML Kit支持检测人体骨骼及多部位关键点,如:头顶、脖子、肩、肘、手腕、髋、膝盖、脚踝等,同时能够返回骨骼关键点的位置数据。您可以充分利用这些信息来开发自己的应用。
在这个codelabs中,您将完成一个人体骨骼的demo工程。
您可以学会如何使用HUAWEI ML Kit SDK。
解压下载的压缩包到本地磁盘(比如D:\mlkit-demo)。
如果显示以下信息,表示工程同步成功:
如果提示"Unknown Device"或者"No device",请在CMD命令窗口执行以下命令重启adb服务:
adb kill-server
and adb start-server
.
(备注1:adb默认的安装路径是C:\Users\USER_NAME\AppData\Local\Android\Sdk*platform-tools*\adb
备注2:如果demo仍然启动失败,您需要用以下命令终止占用5037端口的进程:kill PORT_NUMBER
备注3:执行命令Netstat –ano|findstr 5037可以查询占用5037端口的进程)
如果工具栏显示了如下手机图标,说明您的配置已经生效。
在此步骤中,我们将给APP设置摄像头权限。将以下配置内容添加至AndroidManifest.xml文件:
AndroidManifest.xml
<!--todo step 1: add authorization of camera -->
<uses-feature android:name="android.hardware.camera" />
<uses-permission android:name="android.permission.CAMERA"/>
在此步骤中,我们将在APP中创建骨骼分析器。将以下内容添加至LiveSkeletonAnalyseActivity类中的createSkeletonAnalyzer方法:
LiveSkeletonAnalyseActivity.java
// todo step 2: add on-device skeleton analyzer
this.analyzer = MLSkeletonAnalyzerFactory.getInstance().getSkeletonAnalyzer();
在此步骤中,我们将创建一个处理器,处理分析器得到的结果。
// todo step 3: set transactor of result
this.analyzer.setTransactor(new SkeletonAnalyzerTransactor(this, this.graphicOverlay));
在此步骤中,我们将在APP中增加启动摄像头的功能。将以下内容添加至LiveSkeletonAnalyseActivity类的createLensEngine方法中:
LiveSkeletonAnalyseActivity.java
// todo step 4: add on-device lens engine
Context context = this.getApplicationContext();
// Create LensEngine.
this.mLensEngine = new LensEngine.Creator(context, this.analyzer)
.setLensType(this.lensType)
.applyDisplayDimension(1280, 720)
.applyFps(20.0f)
.enableAutomaticFocus(true)
.create();
在此步骤中,我们将在APP中增加显示人体骨骼检测结果的功能。将以下内容添加至LiveSkeletonAnalyseActivity类的SkeletonAnalyzerTransactor内部类的transactResult方法:
LiveSkeletonAnalyseActivity.java
// todo step 5: add on-device skeleton graphic
SkeletonGraphic graphic = new SkeletonGraphic(mGraphicOverlay, list);
this.mGraphicOverlay.add(graphic);
点击Android Studio工具栏的 Run ()图标,运行APP。
将手机摄像头对焦到人体,骨骼的轮廓和特征点就可以正确的显示出来:
恭喜您,您已经成功完成了此次codelab任务,并学到了以下技能:
请访问我们的官方网站,以进一步了解HUAWEI ML Kit:
本文介绍的工程仅用于简单演示,实际开发过程中应严格遵循开发指南。访问以下链接可以获取详细信息: