硬件交互 · 动作帧 MotionFrame —— 让任何人获得专业级羽毛球指导

硬件交互 · 动作帧 MotionFrame —— 让任何人获得专业级羽毛球指导


(如果你想快速了解欢迎访问网页版https://correction.xin/story/)

一、关于我

我叫 Kyle,也可以叫我重构者。高二,vibe coding 三个月。

做这个东西的起点很具体:我自己打球时的困惑——和高手的差距肉眼可见,但到底差在哪?教练说的「不转体」「击球点太低」我点头,下场还是老样子。因为我看不到自己。

我不是科班出身。我的开发方式是把想法拆清楚,让 AI 写代码,我来做产品判断、技术选型和真机验证。这三个月里我在探索 AI 能做的一切——生图、生视频、数据分析,也在尝试做 up 主,把踩过的坑讲给同样想动手的人听。

动作帧是我第一个真正上架 App Store 的作品,也是我第一次把 iPhone、Apple Watch 和 AirPods 串成一套东西。

性格标签:想到就做、对「能真正被用起来」有执念、宁可砍功能也不糊弄。停在 Demo 阶段的东西,对我来说等于没做完。

团队两个人

成员 分工
Kyle(重构者) iOS / watchOS 开发、基地与俱乐部合作、用户调研、视频后期
小粥 真机体验、功能测评、视频拍摄。第一个真实用户,也是最挑剔的那个

二、产品简介(复赛版)

是什么

一个装在手机里的羽毛球私人教练,加一个羽毛球社区。

业余球友有三个真问题:看不见自己的动作、看不懂问题出在哪、不知道接下来该练什么。请教练一小时两三百,不是谁都请得起。动作帧把这三件事接成一条线——手机往场边一放,剩下的它来。

面向谁

  • 想进步但请不起、或请不到教练的业余球友
  • 有教练但训练时间有限,希望课后自己也能练对的人
  • 想知道自己到底几级、想看到自己在变好的人

典型场景:一个人到球馆练球,把手机架在场边,戴上手表,练完就有一份逐拍的报告和下一节课。

完整功能

① 教你 —— 按你的身体条件排一套课

不是通用教程。性别、持拍手、身高体重、每周能打几次,都会改变课程安排。

  • 3 阶段 12 课,每课约 60 分钟,从握拍架拍重塑一路到攻防衔接
  • 100 套训练方法 · 110 种常见错误,每条都配图,错误还有「错 / 对」对照
  • 30 讲知识库 · 12 张战术卡

② 看你 —— 每一拍都被量化

录完自动跑骨架分析,把每一次挥拍对齐到视频时间轴。

  • 逐拍测肘角、击球点高度、挥拍速度、节奏密度
  • 中羽 1–7 级定级——把球友争了多年的「你几级」变成可复算的分数
  • 趋势页看方向:动作稳定性(肘角波动,10° 定型线)、动作质量(击球点过肩率 / 手臂伸展达标率)、训练节奏、AI 定级曲线

③ 陪你练 —— 真人声全程带练

报动作、讲要领、计时、组间休息、倒数鼓点,全部预录真人配音,离线也能用。

  • 练组时前置镜头随机录几秒,端上算幅度与节奏,组间给一句针对性反馈
  • 手表读心率:热身没上来提醒加大幅度,过高了让你稳住呼吸
  • 说不准就沉默——反馈全部来自语料库,宁可不说也不瞎点评

④ 一起玩 —— 球友圈

  • 晒战报、求指点、约球
  • 球馆五维点评:地胶、灯光、净高、风、人流
  • 每日收藏卡:金 / 银 / 限定三档,训练获得的才是金卡

完整用户路径

下载 → 引导三幕(性别 / 持拍手 / 目标)→ 生成专属课程
  ↓
球馆:手机架场边 + 戴表 → 按录制 → 打球
  ↓
后台自动分析(Vision 骨架 + 手表 IMU 对齐)→ 推送通知
  ↓
报告:骨架回放 / 逐拍指标 / AI 点评 / 中羽定级
  ↓
毛病自动排进下一节课 → 戴耳机带练 → 组间反馈
  ↓
趋势页看长期变化 · 球友圈晒战报 · 收藏卡打卡

硬件联动(硬件交互赛道)

不用买任何专业器材,三个你本来就有的设备凑成一套训练系统:

设备 角色
iPhone 场边的眼睛。录像 + Vision 骨架识别,逐帧算肘角、击球点、挥拍速度,全部在本机完成,视频不上传
Apple Watch 手腕上的传感器。100Hz 采集角速度,实时识别每一次挥拍并震动反馈,同步记录整场心率
AirPods 组间的那句话。休息的 30 秒里,把刚才那一组的问题说给你听,不用低头看屏幕

这里最难的不是调 API,是对时。 手表和手机是两块独立的芯片,各自跑着自己的时钟。要让「手表记的第七拍」和「视频里的第 214 帧」对上,必须先做时钟换算;信号断了手表先存着,连上自动补传,一拍都不能丢。这是单设备产品不会遇到的问题。

相比初赛 Demo 的升级

初赛 Demo 复赛完整作品
功能 只有挥拍识别 + 一段指导建议 教 / 看 / 练 / 玩四条完整链路
内容 无内容库 100 套训练方法 + 110 种错误 + 30 讲知识 + 12 张战术卡
标准来源 AI 网上调研 真人教练现场采集的 27 条标准 / 错误原片
硬件 手表 + 手机 手表 + 手机 + 耳机三端闭环
交付形态 可演示 App Store 已上架,陌生人可直接下载
合规 无 ICP 备案已下发,Apple 审核通过

三、产品演示视频

2.87 复制打开抖音,看看【重构者的作品】一个高中生,做了个能上架app store的软件?… https://v.douyin.com/FV0pBmwmn4o/ 04/28 y@g.bN :7pm qEh:/


四、产品创作历程

帧 01 · 7 月 11 日晚:一个念头,当晚建了工程

起点就是我自己的困惑:我看不到自己。

帧 02 · 初赛:一个只有「分析」的 Demo

能识别挥拍、能给一段指导建议。足够拿去演示,但我很清楚——它帮不到任何一个真的想进步的人。

帧 03 · 复赛初期:差点把项目做废的那几天

过了初赛我想把它做大:多机位专业版卖给机构,3 台手机模拟三维重建,用高斯泼溅提高稳定性。写了几天,效果并不好。

更要命的是我后来才发现——一个教练本来就能同时盯 4 个场的球员。我在花大力气解决一个不存在的问题。

这段代码全部封存。多机位、三维重建、教练端,一行都没进上架版本。留在仓库里当留档,提醒我别再犯。

帧 04 · 7 月 23–25 日:三天,泡在市羽毛球基地

我不是去演示的,是去被质疑的。连着三天和教练、球员待在一起,拍了大量数据来验证分析到底准不准,一条一条对。

带回来的不是一张功能清单,是一个定位:个人私教 + 羽球社区。

帧 05 · 想明白了

不是要做多厉害的作品,而是要做一个有用的作品。

帧 06 · 7 月 26 – 8 月 3 日:检查代码、修 bug、加功能

最难的其实是 UI。每一次让 AI 改界面都是惊喜和惊吓参半——你永远不知道这次回来的是精致还是灾难。

帧 07 · 导师反馈:「用户凭什么相信 AI 的判断?」

这句话戳中了要害。如果没有一个标准示例摆在旁边,AI 说你「抬肘不足」,用户根本没有参照物——分析再准也没人信。

帧 08 · 8 月 6 日晚:连夜找专业教练,拍标准动作

当晚紧急联系本地羽毛球俱乐部的专业教练,开展标准动作样本采集,同时把常见错误动作也一并拍下来。

在这之前,软件的核心参数是 AI 从网上调研来的;从这天起,是我们自己一帧一帧测出来的。 它同时也成了课程里的真实示例。

帧 09 · 7 月底 → 8 月 5 日:ICP 备案下发

在 TRAE 的提醒下,7 月底就把备案提交了——这一步很多人会漏,而它要排很久。8 月 5 日拿到号。

帧 10 · 8 月 5–7 日:Apple 连着退了我三次

三天里被打回三次,前后修了数十个问题:登录失败静默、权限说明、合规标识、崩溃路径……第三次提交之后,它通过了。

这个过程逼着我把「能跑」和「稳定可靠」之间的差距补完。

比赛规则其实不要求备案,也不要求上架。但我想要的不是一个能演示的作品,是一个陌生人可以直接下载、并且不会崩的产品。

帧 11 · 上架

从 7 月 11 日晚上的一个念头,到一个陌生人可以下载并真的用起来的产品。这是我第一次把想法送到真实用户手里。

完整图文版创作历程(含现场照片、开发记录): 动作帧 MotionFrame · 30 天,一格一格


五、TRAE 实践过程

开发流程

全程是我在对话框里描述需求 → TRAE 写代码 → 我在 iPhone 和 Apple Watch 真机上验证 → 把问题反馈回去让它修。

分工其实很清楚:

  • 我的角色:定方向、做取舍、真机验证
  • TRAE 的角色:把想清楚的东西变成代码
  • 硬约束:每一条修复都要能在真机上复现验证,不接受「应该没问题」

AI 不会替你思考「要做什么、为什么这么做」。去基地、被教练质疑、砍掉做不扎实的功能、决定产品定位——这部分只能自己扛。但一旦想清楚了,它能把实现速度提到以前不敢想的程度。

三个真实片段

① 上百张配图,几个小时全部生成

软件里要用上百张配图。我一开始以为得一张一张对话生成,后来问清楚之后,把火山方舟的 API Key 交给它——几个小时,上百张配图全部生成完,配图问题一次解决。

② 9 个问题,2 小时 54 分交回逐条对账

我提了 9 个实测发现的问题,TRAE 在 2 小时 54 分后拿回全部修复 + 编译 + 门禁验证的逐条对账表。

③ UI 改造:惊喜与惊吓

界面调整是整个项目里最不可预测的部分,也是我学会怎么把需求描述清楚的地方。

关键截图

研究复赛方向:2785489203770856:2c33e5fba6270b470394557b0160f774_6a7326dae147bdde56ef4bbb.6a733e93e147bdde56ef4c6a.6a733e93e147bdde56ef4c68:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/8/5 21:45:55)

市里交流回来与trae沟通:2785489203770856:d689956d34b76f575c93671261478364_6a5202b0ef662c9616526dbd.6a6a4b9aa58086dbffd7274e.6a6a4b9aa58086dbffd7274c:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/7/30 02:51:06)

总结前段时间的开发,自定复赛开发路径:2785489203770856:382dbb192076bd4029c33bcea62560fd_6a5202b0ef662c9616526dbd.6a6aeebda58086dbffd75051.6a6aeebda58086dbffd7504f:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/7/30 14:27:09)

导师锐评,来改方向:2785489203770856:5d7fe2c3d54ea296bdd0794b96031d1d_6a7326dae147bdde56ef4bbb.6a734b69e147bdde56ef5286.6a734b69e147bdde56ef5284:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/8/5 22:40:41)

参考图片生成:有apikey就不上传id了

最后的微调:2785489203770856:41a4e7a6c9e7a4335e982f0388d15578_6a761c35f7386b9759b966ca.6a762d9ef7386b9759b96775.6a762d9ef7386b9759b96773:TraeWork CN.0.1.47.no_sid.no_ppe.T(2026/8/8 03:10:22)

补充:我今天才发现我把一个对话框不知道是不是删除了(还是没有找到),有版本开发的重要信息,如果老师需要补充更多细节,欢迎联系,实在没有时间继续截图了。。。


六、技术方案分享

四层架构

Apple Watch  →  CoreMotion 100Hz 采集 + 心率 + 震动反馈
      ↓ WatchConnectivity 双通道(实时消息 + 断连补传)
iPhone       →  Vision 逐帧姿态检测 → 挥拍切分 → 逐拍指标
      ↓
AI 层        →  点评生成 + 中羽定级
      ↓
本地内容库    →  训练方法 / 错误库 / 知识讲堂 / 战术卡

姿态计算全部在端上完成,服务端只处理登录、社区与云备份。这带来两个结果:视频不出设备,隐私上更干净;服务端压力极低,2 核 2G 就能跑。

AI 可靠性:四道锁

用户凭什么信 AI 的判定?我们做了四层校验:

  1. 关键帧门禁——抽不到关键帧,直接拒绝生成,不允许没看图就点评
  2. 索引约束——AI 只能从内容库的编号里挑,不能自己编动作
  3. 回查过滤——展示前再查一次,查不到的直接丢弃
  4. 覆盖声明——定级必须说明本段覆盖了什么、没覆盖什么,级别名以本地表为准

离线评测管线

我们自己搭了一条离线评测管线,直接编译 App 的生产代码来跑,保证离线算出来的和线上跑出来的逐位一致。下面那些数字就是这么来的。


七、诚实的部分:它还不完美,而这些我们都量过

知道差距在哪,比假装没有差距重要。

问题 现状
挥拍误检率 29.2% 严口径下 20.8%,漏检率 19%。已量化,未解决——需要补带干扰(捡球、擦汗、路人)的实战素材
AI 定级波动 ±7 分 同一段素材连跑 4 次,分数最多差 7 分。已改成多次取截尾均值缓解,但单次结果仍不该当权威
双打会跟错人 画面里两个人以上时可能跟丢目标。App 内有明确提示,但双打场景分析结果不可信
实时陪练封存 边打边纠还有 3 个音频会话架构问题没解决,入口直接关掉——不做没把握的功能

主动砍掉的功能:

  • 球轨迹追踪——实测检出率侧面 24% / 左后 7%,一半以上的球看不见。下线后包体从 51.7MB 降到 32.6MB
  • 击球种类自动分类——单人单场地素材训不出能用的分类器。自信地判错比不判更糟
  • 多机位 / 教练端——转向大众版后主动收缩,代码留档

八、社会价值与迭代规划

社会价值

2026 年 7 月 22 日,经国务院批复同意,国家体育总局印发《体育强国建设「十五五」规划》——首个以「体育强国」为主题的国家级专项规划。规划锚定 2030 年目标,设定了 5 项主要发展指标,其中一项是:经常参加体育锻炼人数比例达到 40% 左右;全文围绕全民健身等方面提出 38 项重点任务。

要让更多人真正「练起来」,在场地和赛事之外还有一个绕不开的环节:科学健身指导。

羽毛球是国内参与人数最多的运动之一,但专业指导始终是稀缺资源——教练贵、排不上、城市之间差距大。大多数业余球友的真实状态是:想练,但没人告诉他哪里不对;练了很久,也不知道自己有没有变好。

动作帧把「有人看着你打、告诉你哪里不对」这件事的门槛,从一小时两三百降到一部手机加一块手表。 它不替代教练——它填的是教练覆盖不到的那些时间:一个人加练的晚上、下课之后的那两小时、没有教练的小城市球馆。

中羽定级的意义也在这里:把一个长期靠主观争论的问题,变成可复算、可追溯的分数。有了客观标尺,普通人才知道自己站在哪、该往哪走。

而每日收藏卡、连续打卡、球友圈这些看起来「不技术」的设计,指向的是同一件事——让人练下去。指导解决「练得对不对」,社区和正反馈解决「还练不练」。后者才是全民健身真正的难点。

下一步

  1. 与专业教练持续合作扩充样本库,做练前练后的阶段性对比报告
  2. 补带干扰的实战素材,把 29.2% 的误检率压下去
  3. 趋势维度继续扩展,加入更多可量化指标
  4. 青少年方向:探索监护人数据报告与身心健康评估,并针对未成年人重新设计社区的社交边界——我自己就是高中生,这件事我有真实的视角

动作帧 MotionFrame · 让任何人获得专业级羽毛球指导

从 7 月 11 日晚上的一个念头,到今天。30 天,一格一格。

4 个赞

做的确实不错,很有意义的项目。想请问你的视觉算法用的是哪个?

1 个赞