用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍

你有没有过这种体验,拍照时对着镜头,脑子一片空白、表情僵硬、手和脚无处安放,最后拍出来的照片很是奇怪。拍照软件中的固定姿势抓拍功能可以帮助你:选择一个你想要的姿势模板,当你摆出同款姿势时,软件会进行自动抓拍,完美避开拍照时的尴尬。本文详细介绍了华为HMS ML kit人体骨骼识别技术的集成过程,该技术精准定位了14个骨骼点,可以轻松实现固定姿势抓拍。

人体骨骼检测功能开发实战

做了一个视频流骨骼识别小demo,做一次实战演练,
Github demo源码:https://github.com/HMS-Core/hms-ml-demo/tree/master/Skeleton-Camera

1. 开发前准备

您需要完成必要的开发准备工作,同时请确保您的工程中已经配置HMS Core SDK的Maven仓地址,并且完成了本服务的SDK集成。

1.1 在项目级build.gradle文件中配置maven仓地址。

buildscript {repositories {google()jcenter()maven { url 'https://developer.huawei.com/repo/' }}//配置AGC插件dependencies {classpath "com.android.tools.build:gradle:3.3.2"}
}
allprojects {repositories {google()jcenter()maven { url 'https://developer.huawei.com/repo/' }}
}

1.2 在应用级build.gradle中引入SDK。

dependencies {implementation 'com.huawei.hms:ml-computer-vision-skeleton-model:2.0.1.300'implementation 'com.huawei.hms:ml-computer-vision-skeleton:2.0.1.300'implementation 'com.huawei.hms:ml-computer-vision-base:2.0.1.300'
}

2. 开发步骤

2.1 创建人体骨骼检测器。

MLSkeletonAnalyzer analyzer = MLSkeletonAnalyzerFactory.getInstance().getSkeletonAnalyzer();

2.2 开发者创建识别结果处理类“SkeletonAnalyzerTransactor”,该类实现MLAnalyzer.MLTransactor接口,使用此类中的“transactResult”方法获取检测结果并实现具体业务。

public class SkeletonAnalyzerTransactor implements MLAnalyzer.MLTransactor<MLSkeleton> {@Overridepublic void transactResult(MLAnalyzer.Result<MLSkeleton> results) {SparseArray<MLSkeleton> items = results.getAnalyseList();// 开发者根据需要处理识别结果,例如,在此方法中进行相似度计算,从而在检测到特定姿势后进行拍照等操作。// 需要注意,这里只对检测结果进行处理,不可调用ML Kit提供的其他检测相关接口。// 将SparseArray封装的结果转换为List数组,以便进行相似度比较。List<MLSkeleton> resultsList = new ArrayList<>();for (int i = 0; i < items.size(); i++) {resultsList.add(items.valueAt(i));}// 在检测结果和模板之间进行相似度比较。// templateList表示人体骨骼模板,可以通过静态图片检测的方式生成模板,支持单人或多人模板匹配。float result = analyzer.caluteSimilarity(resultsList, templateList);}@Overridepublic void destroy() {// 检测结束回调方法,用于释放资源等。}
}

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

analyzer.setTransactor(new SkeletonAnalyzerTransactor());

2.4 创建LensEngine,该类由ML Kit SDK提供,用于捕捉相机动态视频流并传入分析器。建议设置的相机显示尺寸不小于320 * 320像素,不大于1920 * 1920像素。

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

2.5 开发者启用相机,读取视频流并进行识别,待检测完成,停止分析器,释放检测资源。

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

动态视频效果:

基于华为HMS ML kit人体骨骼识别技术,我们能做的还有很多:
a.在体感游戏中让虚拟形象模拟真人动作,增加游戏趣味性。
b.辅助健身锻炼或康复训练时的姿势矫正。
c.在监控中检测异常行为。
更详细的开发指南参考华为开发者联盟官网:
华为开发者联盟机器学习服务开发指南
欲了解更多详情,请参阅:
华为开发者联盟官网: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/hms-ml-demo/tree/master/Skeleton-Camera
解决集成问题请到Stack Overflow:https://stackoverflow.com/questions/tagged/huawei-mobile-services?tab=Newest

用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍相关推荐

  1. java人体识别_用华为HMS ML kit人体骨骼识别技术,Android快速实现人体姿势动作抓拍...

    items = results.getAnalyseList(); // 开发者根据需要处理识别结果,例如,在此方法中进行相似度计算,从而在检测到特定姿势后进行拍照等操作. // 需要注意,这里只对检 ...

  2. 美颜神器——快速集成华为HMS ML Kit人脸检测实现大眼瘦脸

    前言 生活中遇到难忘美好的瞬间,小编总是忍不住用拍照的方式来留住它,相信大家也和我一样.但我们大多数人都不是专业的摄影师或者模特,光线没选好.角度不对等等原因,导致对照片的自己不满意,该怎么办呢?这时 ...

  3. 超简单集成HMS ML Kit二代身份证识别,一键实名认证

    前言 就在近期华为HMS ML Kit 发布了1.0.3.30版本,ML Kit在原有通用OCR功能的基础上,又新增了银行卡识别(BCR)和二代身份证识别(ICR).今天小编就给大家介绍一下其中的IC ...

  4. 修图神器—超简单实现华为HMS ML Kit图像超分辨率

    前言 不知道大家有没有遇到这样的情况,图片压缩接收下载后清晰度骤降,画质模糊,更不用说放大浏览了.最近小编就遇到了啊,收到朋友发送的旅游合照压缩包,打开后,OMG,这昏暗的场景.黑黑的人像.模糊的画面 ...

  5. 不需代码 open pose多人动态人体骨骼识别,面部,手部,姿势识别

    最近在学open pose相关的东西,OpenPose是卡内基梅隆大学的开源项目,它能支持2D和3D的多人关键点识别,支持手部.面部.脚部识别,单人运动姿势估计. 用官方提供的案例实现识别图片和视频中 ...

  6. 【转载】超简单集成HMS ML Kit 人脸检测实现可爱2D贴纸

    文章目录 前言 场景 开发前准备 在项目级gradle里添加华为maven仓 在应用级的build.gradle里面加上SDK依赖 在AndroidManifest.xml文件里面申请相机.访问网络和 ...

  7. 超简单集成HMS ML套件二代身份证识别,一键实名认证

    前言 就在近期华为HMS ML Kit发布了1.0.3.30版本,ML Kit在原有通用OCR功能的基础上,又添加了银行卡识别(BCR)和二代身份识别(ICR).今天小编就给ML kit除了提供语言相 ...

  8. android 贴纸 源码,超简单集成HMS ML Kit 人脸检测实现可爱贴纸

    前言 在这个美即真理.全民娱乐的时代,可爱有趣的人脸贴纸在各大美颜软件中得到了广泛的应用,现在已经不仅局限于相机美颜类软件中,在社交.娱乐类的app中对人脸贴纸.AR贴纸的需求也非常广泛.本文详细介绍 ...

  9. android自带抓拍算法,Android | 超简单集成HMS ML Kit实现最大脸微笑抓拍

    前言 如果大家对HMS ML Kit 人脸检测功能有所了解,相信已经动手调用我们提供的接口编写自己的APP啦.目前就有小伙伴在调用接口的过程中反馈,不太清楚HMS ML Kit 文档中的MLMaxSi ...

最新文章

  1. 输入vue ui没反应
  2. scrapy软连接失效和pip软连接失效
  3. opencart导入导出export/import功能插件
  4. ubuntu 命令整合1
  5. SpringBoot集成Beetl模板引擎之入门案例
  6. 变局之际,聊聊物联网的过去、现在和未来
  7. HIVE-分桶表的详解和创建实例
  8. (zt)说说大型高并发高负载网站的系统架构
  9. linux 17 中文输入,Rethat Linux Fedora17添加中文输入法
  10. 南天打印机(NANTIAN PR2)配合税控机安装
  11. 机场安检 matlab实现,机场安检过程改进的方案.doc
  12. 0基础前端开发,html5建站教程
  13. 蓝桥杯科学素养题(2020年12月-2021年12月)
  14. (附源码)springBoot高校宿舍交电费系统 毕业设计 031552
  15. Python PYQT5中用Label控件显示以numpy表示的灰度图像
  16. hook createmutex openmutex 实现多开
  17. sja1000 c语言,基于51单片机SJA1000 CAN通讯实现
  18. DeFi演变史:区块链金融市场将迎来寒武纪大爆发?
  19. MSSQL和MYSQL数据库降权
  20. 如何用python破解热点_Python程序员:没有我蹭不成功的网。教你如何愉快的蹭到WIFI?...

热门文章

  1. 献给即将入读, 正在就读或打算报考研究生的年轻朋友们
  2. 文件/文件夹无法删除或删除后重新出现
  3. IE 报错 strict模式下不允许分配到只读属性 问题解决
  4. C语言中的atan 与atan2
  5. MATLAB高斯-勒让德积分求解
  6. 电子科学和计算机哪个好,计算机科学与技术专业和电子科学与技术专业,哪个好些?...
  7. PAT基础编程题目集 7-32 说反话-加强版
  8. 毕业设计 大数据电商用户行为分析 -python 大数据
  9. (二)Mac使用Docker来搭建Home-Assistant之安装HACS
  10. 西安有哪些java培训,西安java培训有哪些