简介: 过去一年,阿里体育技术团队在端智能方面不断探索,特别在运动健康场景下实现了实践落地和业务赋能,这就是AI运动项目。AI运动项目践行运动数字化的理念,为运动人口的上翻提供了重要支撑,迈出了阿里体育端智能运动领域的第一步,为用户带来了更加有趣的新颖玩法。上线以来,项目受到了广泛关注。

作者 | 其声
来源 | 阿里技术公众号

一 背景

过去一年,阿里体育技术团队在端智能方面不断探索,特别地,在运动健康场景下实现了实践落地和业务赋能,这就是AI运动项目。AI运动项目践行运动数字化的理念,为运动人口的上翻提供了重要支撑,迈出了阿里体育端智能运动领域的第一步,为用户带来了更加有趣的新颖玩法。上线以来,项目受到了广泛关注。

2020年因新冠疫情,传统的线下运动受到限制,居家运动逐渐成为新趋势。基于阿里巴巴强大的技术沉淀,阿里体育团队顺应线上运动的迫切需要,开发出基于AI识别的智能运动,为用户提供了简便、好玩的新型居家运动方式。只需一部手机和3-4平米的场地,就可以开展AI运动。运动时,用户打开乐动力APP,将手机固定在场地一侧,适当设置手机角度,根据应用的自动语音提示调整身体与手机距离,直到人体完全位于识别框内,即可开始运动。

二 端智能实践

经过⼀年的探索和完善,从验证DEMO到囊括多种动作、支持能力迁移的AI运动智能平台,阿⾥体育建立了系统化的客户端运动智能体系。端智能运动体系基于阿里深度推理引擎在手机端进行推理,识别⼈体姿态和动作,分析人体姿态、运动轨迹、动作角度等,给出实时反馈并进行动作纠正,通过能力的模块化组合,现已支持十多种运动动作和数十种玩法,实现了运动与AI的有机整合,让用户的线上运动变得上手简单而又充满趣味。

三 技术支持

端智能运动的基本技术思路是运用MNN推理引擎进行推理和姿态识别。即

  • 实时检测图像及视频中的人体轮廓,定位人体14个关键骨骼点,包括头、肩、脚等重点关节部位。
  • 基于这些关键点信息,连点成线、连线形成动作,可以分析人体姿态、动作角度和运动轨迹。
  • 通过动作姿态匹配,检测用户运动动作,实现动作的计时与计数。同时,实时检测分析动作标准化程度,给出状态反馈,纠正用户动作,实现互动,提高交互体验。

传统运动方式下,用户在运动时可以及时得到现场辅助人员(教练员、考官或亲友)的实时提醒和帮助。端智能运动方式下,用户在做动作时只能与手机应用进行交互。交互的能力和识别水平会受到推理模型能力、运动场景复杂度、运动匹配识别算法等一系列因素的影响。在端智能运动能力的探索和落地过程中,会遇到一些新的问题或者难题,如人机方位匹配、骨骼点识别丢点、点误识别、二维失真、用户移动、手机晃动、场景噪声等。这些问题不一一赘述,仅选取几个有代表性的问题进行分享:

  • 动作的有效性判断及关键算法设计,以提高动作匹配精度,这是智能运动能力的基础。
  • 在保证识别效果的前提下,采取有效措施,降低移动终端的资源消耗,以提升用户体验,主要表现是费电和发热。
  • 采取更加灵活的方式,减轻移动端测试的人力和时间消耗,提高开发和测试效率,为团队的交付保障提供有力支撑。

提升识别精度

智能运动带给用户的最直观、最基础的感受就是动作计数准确性。如果动作识别计数不准,用户使用APP的积极性就会打消,参与性就不高。为此,我们要首先解决计数准不准的问题。

智能运动计数的基本原理是,把一个完整动作分解成若干个小步骤,然后对每个步骤触发识别和判断,全部步骤遍历后,对整个动作进行有效性确认。如果有效,计数加1;反之就重复上述过程。简言之,智能运动识别与计数是一个状态机。将一个运动动作离散化,抽象成N个状态机,{s(0),s(1),s(2),...,s(n-1)},状态机按照一定的顺序依次进行检测,全部检测到意味用户完成了该动作,对计数加1;若某个状态未被检测到,触发对应反馈信息,重置状态机进入新的循环。每一个状态机对应着一定的触发条件,通过实时骨骼点坐标与状态的循环匹配性检测,获取一个动作匹配结果。

不难看出,动作识别精度与动作匹配算法紧密相关,算法匹配效果好,识别精度就越高。为提高动作识别精度,可以选取影响匹配算法的因素作为切入点和突破口,骨骼点、状态机、匹配等。相应的解决办法为:

  • 提高骨骼点稳定性,确保状态匹配结果精度。
  • 选择骨骼点稳定、易识别、具有代表性的动作作为状态机。
  • 帧率要能够覆盖一个动作的所有状态机。

下面将举例进行说明。

骨骼点识别准确度对动作匹配有着重要影响。如下图所示:测试对象左手臂骨骼点识别出现错误。如果径直进行匹配,显然会得到错误的结果。针对这种情况,应当利用好用户的历史动作信息,在动作匹配算法上对动作匹配进行纠正。

还有一种情况,用户已经完成某种动作的全部动作,如下图中的开合跳,由于采样帧率低,无法捕获和识别全部开合跳运动过程中的全部姿态,造成某个状态匹配不成功,最终导致开合跳动作匹配错误。对于低帧率问题,可从模型和输入源两个方面着手。对于模型来说,在不影响动作识别精度情况下,采用精简模型,减少推理耗时。对不同的终端设备,采用不同分辨率的输入源,降低原始数据处理操作耗时。

降低性能消耗

受物理条件影响,手机端算力和存储空间有限。此外,深度学习推理本身包含大量的运算,资源消耗大。如果直接在端上进行深度学习推理,再考虑上手机端自身业务(如摄像头、录制视频、动画效果)的资源消耗,CPU和内存开销就显著增长,直观表现是手机发热明显,电量消耗很快。智能运动在端智能上落地时,要特别考虑降低性能消耗,这对于提升用户体验来说至关重要。

降低整体性能消耗,要追根溯源,从降低单帧消耗处着手。单帧处理可以划分为三个阶段:分别是推理前、推理和推理后。

这三个阶段分别起着不同的作用。推理前阶段主要完成格式转换,将摄像头获取的流数据转换为推理需要的数据格式,如YUV格式、RGBA格式。推理阶段主要完成计算输出骨骼点坐标。对输入的帧数据,经过推理引擎,执行一系列算法,输出推理结果,如姿态识别是将输入图片的RGBA数据转换成骨骼点坐标数据。推理后阶段主要完成展示,进行渲染操作和业务相关操作,如UI展示、动画效果展示。

相应地,可对上述三个阶段分别进行优化。其中,推理过程中的优化由阿里深度推理引擎MNN负责,这里不作讨论。对于推理前阶段的数据转换,应减少不必要的中间转换环节,直接将摄像头流数据转换成为需要的格式。如推理使用RGBA裸数据,就直接将摄像头流数据转换为RGBA格式。对于推理后阶段,应根据承载的平台选择合适的渲染方案,降低渲染消耗。对于iOS平台,可直接采用Metal进行渲染提效。

提高测试效率

AI智能运动是阿里体育团队在体育数字化上的一次大胆尝试。在应用开发特别是测试环节中,投入相当的人力、设备及时间,不断完善应用功能、优化应用性能、提升用户体验。此外,AI运动识别的效果测试受环境因素的影响较大,如光线、背景、距离、人物在摄像头中的成像大小等。这就对测试方式提出了考验。

以传统测试方案为例:一般是真人、实地、实时动作,测试人员手动记录结果再事后分析,如下图所示。

不难想象,AI智能运动所运行的手机有着不同的品牌、型号、系统版本和性能参数,AI智能运动的用户可能处于不同的使用环境,若采用传统的测试方式,对不同因素进行测试覆盖,对测试人员、测试时间提出了很大的挑战,测试的一致性与精度也难以保证。具体原因如下:

  • 人工成本较高:一次测试需多名同学配合,耗时耗力。
  • 测试环境较单一:无法应对线上复杂多样的环境。
  • 测试结果量化难。无法对模型的精度、算法的效率、动动匹配准确度、精度提升度、性能消耗等量化评估。
  • 问题定位难。事后分析排查,无法复现定位线上客诉问题。

传统的测试方法难以为继,为克服上述困难,阿里体育技术团队开发了一套AI运动自动测试工具,专门用于解决AI智能项目测试难题,实现了线上问题的快捷定位与回归,并对模型算法精度实现量化评估。

自动测试工具的解决思路是:批量解析视频集,模拟真实场景,获取骨骼点数据,进行业务结果测试,自动生成测试报告。具体技术方案如下图所示:

采用新的测试工具后,显著地降低了人工成本、提高了测试效率。具体测试效果如下:

需要注意的是,测试工具的效果与测试样本的数量相关,样本越丰富,测试精度越好。

四 业务结果

阿里体育智能运动现已支持数十种运动动作,开发出丰富的AI训练课程,同时通过运动能力的模块化组合,支持未来不断拓展新的动作。

自AI智能运动诞生以来,乐动力APP陆续上线了直臂开合跳、俯卧撑等上肢动作,臀桥、深蹲等下肢动作以及跳绳、开合跳等全身动作等多种运动形式,使得用户可以不受时间和场地限制,随时随地和朋友一起参与到AI运动,提升了APP的用户吸引力和趣味性。此外,AI训练课程创新引进明星资源,推进全年52周每周7天不间断的“明星陪练”课,以明星带动用户养成运动习惯、快乐运动、爱上运动。阿里体育团队也将不断地根据用户需要打造更多的运动玩法,丰富产品功能,形成阿里体育端智能的独特业务品牌和创新产品特色。

原文链接
本文为阿里云原创内容,未经允许不得转载。

AI运动:阿里体育端智能最佳实践相关推荐

  1. 【美团·北京沙龙报名】AI在外卖场景中的最佳实践

    [美团技术沙龙]由 美团技术团队 和 美团科协 主办,每期沙龙邀请美团及其他互联网公司的技术专家分享来自一线的实践经验,覆盖各主要技术领域. 活动时间:2019年12月7日 13:30-17:30 活 ...

  2. 时间、空间、对象 海量极速多维检索 - 阿里云RDS PostgreSQL最佳实践

    标签 PostgreSQL , 时间 , 空间 , 对象属性 , 多维度检索 , 海量 , 空间索引 , 数据分区 , 块级索引BRIN , 多级索引 , GIN倒排索引 , JSON索引 , 多列索 ...

  3. 【转载】破解物联网落地困境-阿里云硬件接入最佳实践

    破解物联网落地困境-阿里云硬件接入最佳实践 <剑指物联>第五期中,阿里云IoT事业部总经理库伟曾提到物联网实施过程中的困境.比如在设备厂家层面:智能设备连接不稳定,网络安全差:在ISV层面 ...

  4. Kyligence 客户案例“泰康集团精细化经营分析与运营平台”获评数据智能最佳实践案例

    近日,"2022 爱分析·中国数据智能最佳实践案例"评选结果正式揭晓.Kyligence 携手泰康集团申报的"泰康集团精细化经营分析与运营平台"项目经过多轮角逐 ...

  5. (新零售)商户网格化运营 - 阿里云RDS PostgreSQL最佳实践

    原文地址 背景 伟大的马老师说: "纯电商时代很快会结束,未来的十年.二十年,没有电子商务这一说,只有新零售这一说,也就是说线上线下和物流必须结合在一起,才能诞生真正的新零售" 线 ...

  6. 从零到一构建完整知识体系,阿里最新SpringBoot原理最佳实践真香

    Spring Boot不用多说,是咱们Java程序员必须熟练掌握的基本技能.工作上它让配置.代码编写.部署和监控都更简单,面试时互联网企业招聘对于Spring Boot这个系统开发的首选框架也是考察的 ...

  7. dubbo 无法访问消费端_Dubbo最佳实践,我整理了以下9点

    Dubbo服务化,在当前互联网后端开发中,大部分都使用了Dubbo.截止目前github dubbo上,star也将近3万,使用dubbo的公司数量也很可观,Dubbo确实也是一个比较不错的服务化框架 ...

  8. 技术分享 | 混合云模式下SaaS端前端最佳实践

    导读:集成开放平台采用的是混合云部署架构,包含两个大的组件,管理控制台和引擎.管理控制台是SaaS的,部署在公有云,按租户隔离.引擎部署在客户私有云.一套SaaS版的管理控制台如何适配不同客户的引擎, ...

  9. 运维的进击“转型”:阿里业务连续性管理最佳实践

    公众号回复:干货,领取价值58元/套IT管理体系文档 公众号回复:ITIL教材,领取最新ITIL4中文教材 说明:本文根据付来文老师在 GOPS 全球运维大会 2021 · 深圳站的演讲速记整理而成. ...

最新文章

  1. 怎么看电脑的hdmi是输出还是输入_HDMI线连接电视电脑常见问题及解决办法
  2. 并查集详解(从引入到代码)
  3. ML 05、分类、标注与回归
  4. VMware中为linux设置网络
  5. npoi 导入 winform excel_勤哲Excel服务器做影视制作企业管理系统 - 科技
  6. Requests获取连接的IP地址
  7. 腾腾流氓,云云更流氓(问微信怎样接入支付宝支付),手贱的赶紧点,你会感谢我的...
  8. MATLAB rolcus函数,自动控制原理实验报告 .doc
  9. Flutter实战之AS快键键
  10. idea新建一个java项目_创建第一个Java项目(Create First Java Project)
  11. 招聘笔试行测题之图形推理题解题思路汇总
  12. 为什么onenote一直在加载_【完美解决】11.OneNote中英文字体不统一,微软10多年未解决的Bug!...
  13. quot 云计算 quot 是计算机,云计算是什么意思?
  14. java怎么绘画坦克_坦克游戏教程一:使用java绘图功能绘制简单坦克
  15. 快速制作响应式的个人主页案列
  16. 快速工业相机镜头的选型:焦距、工作距离、视野等的计算
  17. Scrum 计划、站会、评审、回顾会议介绍
  18. 搭建Jenkins+SpringBoot+Docker的微服务持续集成框架
  19. 安装OBS搭建录屏和直播间遇到的问题及处理解决(版本24.0.3)汇总
  20. 第七届全国大学生工程训练综合能力竞赛(工训赛) 智能配送无人机赛项 省赛心得

热门文章

  1. php数组实例,php常用数组函数实例小结
  2. win7 右键计算机 服务 设备管理器,win7系统计算机右键菜单添加设备管理器的操作方法...
  3. ip访问次数统计 nginx_Linux分析Nginx日志统计IP访问次数的shell脚本
  4. 安装应用需要打开未知来源权限_打开安卓这个开关 不让流氓软件肆意妄为
  5. 1964年诞生的第一代电子计算机,世界第一台电子计算机诞生的年份是?
  6. Java面向对象基础接口和抽象的理解
  7. c语言入门经典18个程序
  8. 【LeetCode笔记】42. 接雨水(Java、动态规划)
  9. linux 集群 lvs,linux集群--LVS集群
  10. php 自定义加密算法,php自定义加密函数、解密