“体重管理年”AI运动应用开发解决方案推荐

简介: 为响应国家“体重管理年”号召,单位可借助AI运动识别技术,通过小程序或APP开展职工健身管理。支持日常锻炼记录、线上打卡、竞赛比拼等场景,实现运动自动计数、数据可视化与榜单激励。利用“AI运动识别插件”,可快速开发定制系统;也可选用成熟SaaS平台,低成本高效落地,助力全民健康行动。

引言: 又是一年年末了,距国家提出“体重管理年”健康促进活动已过去一年了,您的体重达标了吗?今天,就让我们一同深入探讨单位、部门组织职工响应国家“体重管理年”活动时,在相关应用开发方面的实用解决方案。

一、「体重管理年」健康促进活动

体重管理年是由国家卫生健康委联合教育部、体育总局等16个部门于2024年6月共同发起的健康促进活动,旨在应对居民因超重肥胖引发的慢性病问题,开展为期三年的全民体重管理专项行动。

借助移动互联网与AI运动识别技术的APP、小程序,组织全体职工参与健身锻炼,积极响应国家“体重管理年”号召,具备操作简便、成效显著、数据可量化等优势,是企业、单位及各级工会组织的上佳之选。
115969-20251203100451383-389124091.png

二、体重管理年适应的那些AI运动场景

3.1、日常运动锻炼

职工借助AI运动小程序与APP,能够突破时间与空间的限制,随时随地开启锻炼记录之旅。在整个运动过程中,无需繁琐地手动录入运动量数据,职工只需全身心地沉浸于运动锻炼之中。待运动结束后,应用便会自动精准记录运动量,并生成包含热量消耗、BMI等各项指数的详细锻炼报告,以及直观反映锻炼情况的锻炼曲线。如此一来,职工可随时清晰掌握自身锻炼效果与历史数据,为科学规划后续锻炼提供有力依据。

3.2、运动打卡活动

通过精心策划并组织线上运动打卡活动,引导职工以周期性的方式积极参与到各类运动打卡项目中来,此举能够进一步激发并提升职工参与“体重管理年”活动的热情与积极性。线上运动打卡活动具备高度的灵活性与多样性,可组织涵盖多种运动类型的丰富项目,如跳绳、开合跳、高抬腿、俯卧撑、卷腹、仰卧起坐、深蹲(深蹲起)、平板支撑、马步蹲、坐位体前屈等,满足不同职工的个性化运动需求。活动过程中,系统将自动生成团体榜单、个人榜单、单项运动榜单以及综合运动榜单,这些榜单不仅全面反映了职工的运动参与情况与成果,更为活动的评优工作以及激励奖品的精准发放提供了坚实有力的数据支撑,确保整个活动公平、公正、公开且富有成效。

3.3、运动竞赛活动

为有效激励职工踊跃参与体重管理年活动,借助小程序、APP搭建线上运动会比拼竞赛平台不失为一个绝佳策略。这种线上运动会打破了传统体育活动的时空局限,职工无需受地域和时间的严格束缚,在活动设定的时间范围内,能够随时随地投身于运动比拼之中,充分展现个人运动风采。活动结束后,依托系统生成的详细竞赛榜单,通过科学合理的评优、评先机制,并为表现优异的职工发放具有纪念意义的激励物品,以此进一步点燃广大职工参与体重管理年活动的热情,推动活动取得更为显著的成效。

三、开发定制解决方案

如需量身打造一套自己的职工健身系统,可以选择深度开发定制或者委托第三方开发,要实现上面的AI运动锻炼、线上运动打卡、线上运动竞赛的小程序或APP,要解决的核心功能便是通过视觉识别运动,即通过手机相机捕捉用户运动画面,来实现各种运动计时、计数能力。

3.1、体重管理年小程序解决方案

小程序为作为依托微信的即来即用的轻量应用,有着开发周期短、易传播、易使用的特点,是用来承载职工健身运动系统客户端的一项不错选择,在此向您推荐通过「AI运动识别插件」来快速获得AI运动识别能力,件插件内置有跳绳、开合跳、高抬腿、俯卧撑、卷腹、仰卧起坐、深蹲(深蹲起)、平板支撑、马步蹲、坐位体前屈等运动的识别检测计时、计数分析,还能实现自定义姿态和扩展新运动项目,是快速开发AI运动小程序的最佳选择。

115969-20251203095134202-1505879638.png

插件托管在微信小程序平台的服务市场,简单配置项目即可引入,然后通过完善的demo进行二次开发即可。

"plugins": {
   
    "aiSport": {
   
        "version": "1.0.12",
        "provider": "wx6130e578c4a26a1a"
    }
}

3.2、体重管理年APP解决方案

若追求更高的性能和用户体验,也可以选择开发AI运动APP来承载职工健身系统客户端,APP端也可以通过集成现有AI运动识别插件来快速获得AI运动识别能力,插件基于跨平台移动应用开发框架uni-app实现,可以为您的APP提供人体检测、运动识别的AI能力,插件内置有跳绳、开合跳、高抬腿、俯卧撑、卷腹、仰卧起坐、深蹲(深蹲起)、平板支撑、马步蹲、坐位体前屈等运动的识别检测计时、计数分析,更多的运动类型正在丰富中;同时插件提供了规则检测配置和姿态相似度比较两个能力,帮助您自定义扩展新运动、新姿态的识别检测。助力您快速实现AI健身、线上运动赛事、云上运动会、AI学生体测、AI美体、AI康复锻炼等应用场景的APP。
115969-20251203100411822-1963358216.png

  • 使用代码片段
<template>
    <view class="human-detection">
        <camera id="preview" class="preview" :style="videoStyles" flash="off" :device-position="deviceKey"
            resolution="high" frame-size="low" @initdone="onCameraReady">
        </camera>
        <canvas v-if="poseDrawEnabled" class="preview graphs" type="2d" id="graphics" :style="videoStyles"></canvas>
    </view>
</template>

<script>

    const AiSports = requirePlugin("aiSport");
    const PoseGraphs = AiSports.PoseGraphs;
    const humanDetection = AiSports.humanDetection;

    export default {
    
        data() {
    
            return {
    
                zoom: 1,
                deviceKey: "back",
                previewWidth: 480,
                previewHeight: 640,
                previewRate: 1,

                frameWidth: 480,
                frameHeight: 640,
                status: 'unknown',
                fps: 0,
                poseFps: 0,

                isHumanBody: false
            };
        },
        computed: {
    
            videoStyles() {
    
                const style = `width:${
      this.previewWidth}px;height:${
      this.previewHeight}px;`;

                return style;
            }
        },
        mounted() {
    
            this.autoFitPreview(480, 640);
            this.initCanvas();
        },
        methods: {
    
            autoFitPreview(width, height) {
    
                const sifno = uni.getSystemInfoSync();
                let rate = sifno.windowWidth / width;

                this.previewWidth = width * rate;
                this.previewHeight = height * rate;
                this.previewRate = rate;
                this.frameWidth = width;
                this.frameHeight = height;
            },
            initCanvas() {
    

                const that = this;
                const query = uni.createSelectorQuery().in(that);
                query.select('#graphics')
                    .fields({
    
                        node: true,
                        size: true
                    })
                    .exec((res) => {
    

                        if (utils.isEmptyArray(res))
                            return;

                        const canvas = res[0].node;
                        const ctx = canvas.getContext('2d');
                        const dpr = uni.getSystemInfoSync().pixelRatio;
                        canvas.width = res[0].width * dpr;
                        canvas.height = res[0].height * dpr;
                        ctx.scale(dpr, dpr);

                        that.canvas = canvas;
                        that.ctx = ctx;

                        that.poseGraphs = new PoseGraphs(ctx, canvas.width, canvas.height, 1);
                        that.poseGraphs.lineColor = "#FF8E148C";//线条颜色

                    });
            },

            async detection(frame) {
    

                const human = await humanDetection.detectionAsync(frame);
                //无结果
                if (!human)
                    this.poseGraphs.clear();
                else
                    this.poseGraphs.drawing(human.keypoints);

            },

            initVideo() {
    

                if (this.camera)
                    return;

                const that = this;
                this.camera = new CameraDevice();
                this.camera.onFrame = frame => {
    

                    that.fps = that.camera.fps;

                    //重新自适应
                    if (frame.width != that.frameWidth || frame.height != that.frameHeight) {
    
                        that.autoFitPreview(frame.width, frame.height);
                        that.initCanvas();
                    }

                    that.detection(frame);
                };
            }
        }
    }
</script>

<style lang="scss">
    .human-detection {
    
        width: auto;
        height: auto;

        .preview {
    
            margin: auto;
            width: 480px;
            height: 640px;
        }

        .graphs {
    
            position: absolute;
            top: 0;
            left: 0;
            z-index: 9999;
            box-shadow: 0 0 14.4928rpx #CCC;
            background-color: rgba(0, 0, 0, 0.01);
        }
    }
</style>

四、采购成熟的AI运动系统

若不想进行开发或者只是短时间举办赛事活动,也可以采用成熟的Ai运动系统,比如「Ai乐运动系统」,支持AI运动健身、免费举办打卡赛、比拼赛、个人赛、团组赛等形式多样的线上运动赛事活动,支持多维度的排行榜,活动数据支持批量导出。如果有运营自己的AI运动小程序需求,还支持SaaS托管或私有部署的方式快速上线属于自己的AI运动系统,且提供基于现有功能进行深度定制服务。

115969-20251203101312490-1517391575.jpg

115969-20250828114253867-901130529.png

相关文章
|
11月前
|
人工智能 JSON 小程序
【一步步开发AI运动APP】七、自定义姿态动作识别检测——之规则配置检测
本文介绍了如何通过【一步步开发AI运动APP】系列博文,利用自定义姿态识别检测技术开发高性能的AI运动应用。核心内容包括:1) 自定义姿态识别检测,满足人像入镜、动作开始/停止等需求;2) Pose-Calc引擎详解,支持角度匹配、逻辑运算等多种人体分析规则;3) 姿态检测规则编写与执行方法;4) 完整示例展示左右手平举姿态检测。通过这些技术,开发者可轻松实现定制化运动分析功能。
|
Oracle 关系型数据库 数据库
Oracle系列之四:用户管理
Oracle系列之四:用户管理
|
2月前
|
人工智能 小程序 JavaScript
【一步步开发AI运动小程序】十四、插件内置的运动项目,如何进行微调,以适配多场景?
云智「AI运动识别引擎」支持人体姿态识别与多种运动计时计数,适用于AI体育、全民健身等场景。针对大众化应用识别门槛高问题,开放内置分析器参数微调功能,开发者可调整检测规则,适配“初学”到“专业”多级别需求,提升用户体验,助力AI运动应用灵活落地。
|
4月前
|
人工智能 固态存储 Linux
树莓派这种“玩具级”设备,真能跑大模型吗?
本期教程带你用树莓派5部署Qwen3模型,打造完全离线、自带屏幕与键盘的“AI小终端”。基于C语言实现,不依赖Python或llama.cpp,支持多尺寸Qwen3模型,实现本地化私有推理。跟随步骤,轻松搭建属于你的端侧AI助手。
1405 168
|
2月前
|
人工智能 搜索推荐 数据库
从零搭建RAG系统:原理剖析+代码实践,解锁大模型“记忆力”新姿势
RAG(检索增强生成)为大模型配备“外接大脑”,通过连接专属知识库,提升回答准确性。广泛应用于医疗、法律、客服等领域,兼具专业性与可解释性。本文详解其原理、实战步骤与优化技巧,助你快速构建个性化AI助手。
707 11
|
3月前
|
人工智能 算法 小程序
AI运动识别插件-APP版新版特性速览
云智AI运动识别插件APP版1.0.6发布:新增相机直接拍照、帧图保存至临时文件功能,优化关键点追踪与跳绳算法,并推出Windows姿态调试工具,支持真机帧回放与关键点分析,提升开发调试效率。
|
运维 Prometheus 监控
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
如何在测试环境中保持操作系统、浏览器版本和服务器配置的稳定性和一致性?
|
人工智能 自然语言处理 语音技术
简介阿里云大模型的基本概况和产品矩阵
阿里云在大模型领域深入研究,推出了通义千问、通义万相、通义听悟等产品,涵盖自然语言处理、图像生成、语音识别等多个方面,同时提供行业专属模型和MaaS平台,致力于为企业和个人用户提供高效、智能的服务。
2451 0
|
人工智能 并行计算 算法
LLM-04 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(准备环境) 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
LLM-04 大模型 15分钟 FineTuning 微调 ChatGLM3-6B(准备环境) 3090 24GB实战 需22GB显存 LoRA微调 P-TuningV2微调
551 0
AspectJ的工作原理
【5月更文挑战第1天】AspectJ的工作原理
436 3