AI运动:阿里体育端智能最佳实践

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

image.png

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

一 背景

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

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

1.gif

二 端智能实践

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

三 技术支持

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

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

image.png

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

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

提升识别精度

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

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

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

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

下面将举例进行说明。

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

image.png

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

image.png

降低性能消耗

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

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

image.png

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

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

提高测试效率

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

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

image.png

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

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

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

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

image.png

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

2.gif

3.gif

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

四 业务结果

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

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

4.gif

5.gif

6.gif

7.gif

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/512922.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

网站攻击软件_如何防止网站建设中出现安全问题?

在信息时代,网络安全变得越来越重要了,个人信息,企业信息对安全的要求也越来越高。网页上的漏洞,木马,病毒等层出不穷,这可能导致公司网站或个人网站上披露的信息泄露。那么如何防止网站建设中出现安全问题…

[JDBC] Kettle on MaxCompute 使用指南

简介: Kettle是一款开源的ETL工具,纯Java实现,可以在Windows、Unix和Linux上运行,提供图形化的操作界面,可以通过拖拽控件的方式,方便地定义数据传输的拓扑 。基本讲介绍基于Kettle的MaxCompute插件实现数据…

飞桨企业版重磅发布智能边缘控制台 5分钟零代码自动化模型部署

12月12日,由深度学习技术及应用国家工程实验室主办的WAVE SUMMIT 2021深度学习开发者峰会在上海召开。此次峰会,最让开发者惊艳的是飞桨开源框架v2.2的重磅发布。百度深度学习技术平台部高级总监马艳军与百度AI产品研发部总监忻舟,就飞桨新版…

Flink 1.12 资源管理新特性回顾

简介: 介绍 Flink 1.12 资源管理的一些特性,包括内存管理、资源调度、扩展资源框架。 本文由社区志愿者陈政羽整理,Apache Flink Committer、阿里巴巴技术专家宋辛童,Apache Flink Contributor、阿里巴巴高级开发工程师郭旸泽分享…

openoffice转化太慢且不能多线程_专访橙光卿蓝蓝:多线程IP如何赢在起跑线?丨制鲜者IP作者...

这是鲜喵的第 1353 篇吐血原创喵族码字员:郭小蝈编者按纵观这几年的爆款剧集和电影,无不是IP改编而来。我们认为一部IP改编影视作品的成功,首先是文学IP作品的成功,是一个鲜活、打动人心“故事”的成功,是背后原著作者…

Dubbo 跨语言调用神兽:dubbo-go-pixiu

简介: Pixiu 是基于 Dubbogo 的云原生、高性能、可扩展的微服务 API 网关。作为一款网关产品,Pixiu 帮助用户轻松创建、发布、维护、监控和保护任意规模的 API ,接受和处理成千上万个并发 API 调用,包括流量管理、 CORS 支持、授权…

微软亚洲研究院成立理论中心,以理论研究打破AI发展瓶颈

微软亚洲研究院成立理论中心,以理论研究打破AI发展瓶颈微软亚洲研究院成立理论中心,以理论研究打破AI发展瓶颈12月11日,微软亚洲研究院举办了2021理论学术研讨会,来自学术界和产业界的理论研究专家齐聚一堂,分享了最新…

Serverless 时代下大规模微服务应用运维的最佳实践

简介: 原来的微服务用户需要自建非常多的组件,包括 PaaS 微服务一些技术框架,运维 IaaS、K8s,还包括可观测组件等。SAE 针对这些方面都做了整体的解决方案,使用户只需要关注自己的业务系统,这极大地降低了用…

极光推送 请检查参数合法性_极光小课堂 | 极光推送在人脸识别终端管理系统中的应用...

项目背景最近开发的一款人脸识别终端管理系统,主要包括运营平台、企业后台管理系统、APP 端、智能人脸识别终端模块。下图是系统的架构图:其中各个模块之间都需要即时通讯,比如:APP 端用户注册完成之后,企业管理员在后…

实时数仓入门训练营:Hologres性能调优实践

简介: 《实时数仓入门训练营》由阿里云研究员王峰、阿里云资深技术专家金晓军、阿里云高级产品专家刘一鸣等实时计算 Flink 版和 Hologres 的多名技术/产品一线专家齐上阵,合力搭建此次训练营的课程体系,精心打磨课程内容,直击当下…

re:Invent大会第十年,亚马逊云科技推出了哪些底层自研技术

编辑 | 宋慧 出品 | CSDN云计算 头图 | 付费下载于视觉中国 一转眼, 亚马逊云科技的云计算已经推出了十五年,亚马逊云科技的年度大会 re:Invent 也举办到了第十年。 今年 re:Invent全球 大会上,亚马逊云科技继续向前,发布系列重…

微信小程序(uniapp)api讲解

Uniapp是一个基于Vue.js的跨平台开发框架,可以同时开发微信小程序、H5、App等多个平台的应用。下面是Uniapp常用的API讲解: Vue.js的API Uniapp采用了Vue.js框架,因此可以直接使用Vue.js的API。例如:v-show、v-if、v-for、comput…

mysql 5.7 binlog 压缩_mysql binlog压缩处理

前一段时间系统mysql压力较大,产生大量binlog,大量的binlog删除后又担心后期出现问题难以调查,保存后又占用本身的空间存储。每天产生的binlog可以多达5-6G。因此考虑是否扩容机器达到目的?经过运维同学 建议,可以压缩…

高度为5的3阶b树含有的关键字个数_第15期:索引设计(索引组织方式 B+ 树)

谈到索引,大家并不陌生。索引本身是一种数据结构,存在的目的主要是为了缩短数据检索的时间,最大程度减少磁盘 IO。任何有数据的场景几乎都有索引,比如手机通讯录、文件系统(ext4xfsntfs)、数据库系统(MySQL…

ARMS企业级场景被集成场景介绍

简介: ARMS企业级场景被集成场景介绍 通过本次最佳实践内容,您可以看到ARMS OpenAPI可以灵活的被集成到客户链路监控场景,并对其进行可视化图形展示监控信息。 1. 背景信息 应用实时监控服务ARMS(Application Real-Time Monitor…

千万并发连接下,如何保障网络性能

过去几十年互联网呈爆发式的增长,内容的丰富以及层出不穷的DDoS攻击等,对网络性能提出了极大的挑战,也同样促进了网络基础设施的快速发展。运营商的带宽越来越大,CPU/网卡等硬件的性能也会越来越强。但在很长时间内,软…

kafka window 启动_Apache Flink结合Kafka构建端到端的Exactly-Once处理

Apache Flink自2017年12月发布的1.4.0版本开始,为流计算引入了一个重要的里程碑特性:TwoPhaseCommitSinkFunction(相关的Jira)。它提取了两阶段提交协议的通用逻辑,使得通过Flink来构建端到端的Exactly-Once程序成为可…

浅谈云原生架构的 7 个原则

简介: 作为一种架构模式,云原生架构通过若干原则来对应用架构进行核心控制。这些原则可以帮助技术主管和架构师在进行技术选型时更加高效、准确,下面将展开具体介绍。 服务化原则 在软件开发过程中,当代码数量与开发团队规模都扩…

深入浅出FlatBuffers原理

简介: FlatBuffers 是一个开源的、跨平台的、高效的、提供了多种语言接口的序列化工具库。实现了与 Protocal Buffers 类似的序列化格式。主要由 Wouter van Oortmerssen 编写,并由 Google 开源。本文将基于高德地图数据编译增量发布使用了FlatBuffers序…

java 反编译class文件_用Java实现JVM第三章《解析class文件》

解析class文件案例介绍本案例主要介绍通过java代码从class文件中解析;class文件、常量池、属性表;作为类(或者接口)信息的载体,每个class文件都完整地定义了一个类。为了使java程序可以“编写一次,处处运行”,Java虚拟…