FORM CHECK

带证据帧的 AI 动作分析

上传一组正式动作。每条发现都会尽量附上对应帧和可拖动核对的时间码,最终整理成一份可以分享的报告链接。

MP4 · MOV · WebM · 单个 50MB / 30 分钟以内 · 每分析分钟 10 积分 · 需登录后运行

就在这一页跑一次

动作分析方向已经选好。上传文件或粘贴 YouTube 链接即可开始。

SOURCE
分析方向
动作检查本页固定检查动作阶段、每次重复的一致性、可见技术问题和逐帧证据。

默认私有——你的视频和报告仅自己可见,除非你主动分享。

拿不准值不值这些积分?已登录账号可以在积分弹层里选「只分析前 60 秒」,价格更低。

这样拍

机位、帧率和音轨会直接影响管线能验证什么,以及时间码能够精确到什么程度。

  1. 机位高度

    髋部到胸部之间,放在三脚架或任何不是你手的东西上。机位一晃,每一个相位边界都变成主观判断。

  2. 角度

    深蹲:从身后 45°。硬拉、卧推、推举:正侧位。球拍球棒类:正对击球点的侧位,让接触瞬间是一个剪影而不是一团被压缩的模糊。

  3. 重量

    用有挑战性的重量。一组从头到尾都不掉形的动作,会让「首次 vs 末次」那组对比无从对起。

  4. 帧率

    手机支持就用 60fps。我们的抽帧上限就是 60fps,所以这是你能拿到的最细视频网格——约每帧 17ms;30fps 则约 33ms。拍 240fps 慢动作在这里买不到比 60fps 上限更细的东西。

  5. 别静音

    接触类问题上那个毫秒来自声音,不是画面。没有音轨就没有 onset,接触检查和呼吸检查就没有东西可以锚定,会安静地不触发。

为什么是网页工具而不是 App

你的报告是一条链接。这就是全部要点。

多数动作分析 App 把结果留在应用内部。这里的产出是一条带标注帧和时间码的报告链接,可以直接发给教练或训练伙伴。

  1. 01

    跑完一次

    分析完成时,浏览器会直接落在这份报告自己的网址上。你不需要发布、不需要切换开关、不需要生成什么——这个网址从任务创建的那一刻就存在了。

  2. 02

    复制链接

    点报告页顶部的「复制链接」。这条链接对你发给的任何人都能打开:不需要账号、不需要登录、不需要装 App。

  3. 03

    贴回去

    贴进 r/formcheck 的帖子、群聊、或者教练的私信。对方打开看到的,是和你眼前一模一样的标注帧和时间码——于是他能对着某一帧提出异议,而不是凭感觉说两句。

报告使用 16 位随机 id,也不会出现在公开列表中。搜索引擎同时被要求不要收录报告页。任何拿到链接的人仍然可以打开,因此只应分享给你信任的人。

我们测什么,不测什么。

单机位视频缺少深度数据和标定,无法可靠测出关节角度或 3D 运动学。因此这里只报告能够绑定到证据的定性问题。下面两列与每份 form-check 报告底部使用的是同一组代码常量。

我们测

  • Phase timing from ffmpeg frame timestamps
  • Defect evidence frames
  • Rep-to-rep rhythm consistency

我们不声称

  • Joint angle measurements
  • Bar/ball speed
  • 3D kinematics
  • Injury diagnosis

报告里的每个毫秒都能追溯到物理帧或音频 onset。模型只提供整秒窗口,亚秒级时间由代码根据 ffmpeg 帧索引或 DSP onset 计算。找不到锚点的发现不显示时间码,缺少两个边界帧的相位行则不进入报告。

一次分析到底怎么跑

一共三轮;中间的钻取环节负责把接触瞬间精确到毫秒。

  1. 01

    先扫全片

    低帧率过一遍全部内容:这是什么动作、几个正式组、大概几次、有没有教练在说话、每一次撞击声落在哪里。这一轮只被允许用整秒回答——它在找「等下要回来细看的地方」,不是在产出最终数字。

  2. 02

    回到可疑窗口钻取

    我们在每个窗口重新打开视频抽真实的帧——最高 60fps、每窗最多 16 帧、最多 8 个窗口。撞击类窗口在切帧之前,会先按窗口内最近的音频 onset 重新定中心:模型说的「大概 0:42」偏出去的量可能比整个窗口还宽。然后把 onset 毫秒匹配到模型选定的那张接触帧上,容差 50ms;容差内没有东西落进来时,这一轮会被记为 unbound,而不是凑一个数。

  3. 03

    组装报告

    问题清单、相位计时表、标注证据帧。组装是确定性的,而且对自己的模型保持怀疑:任何带着「不在我们物理产出的毫秒集合里」的时间码的内容,在送到你面前之前就被剥掉了。

一次 form check 可能触发的检查

这五项就是管线使用的检查标识。静音片段只能触发其中两项;能听到口令与呼吸的正式组可以触发全部五项。

检查何时触发产出什么
S1_IMPACT扫描轮听到的每一次撞击声——杠片触地、球棒/球拍击球、脚掌落地。接触可见的第一张帧,接触点上画框,并带着钉到这张帧上的音频 onset 毫秒;容差内没有 onset 时如实标为 unbound。
S2_CUE只有片子里能听到教练或训练搭子说话时。每条口令一行:口令原文照抄、是否被执行、在第几帧做出的判断。
S3_BREATH只有呼吸声可闻时——实际操作里这需要麦克风贴近人,而不是三米开外。呼吸节律与相位是否吻合的判定:match / mismatch / inconclusive。这是唯一一个拿到真实音视频片段(而不是静帧)的检查。
FATIGUE_FIRST总是触发——第一组的头几次正式次数。相位分解与可对比的标记:躯干角度倾向、下蹲深度、杠铃或器械轨迹漂移、以每相位帧数计的节奏。
FATIGUE_LAST总是触发——最后一组的末几次正式次数。同一组标记取在这次训练的另一端,好让两端能互相对读。需要说明的是:这个对比会汇入问题清单,报告目前不会单独印一张「首组 vs 末组」的表。

五个里有两个完全依赖你的音轨。把片子静音,或者站得远到麦克风什么都听不见,S1 和 S3 就没有可锚定的东西——你仍然会拿到报告,只是它会失去「比一段慢放回放更值钱」的那部分。

分动作拍摄备注

管线不是按动作写死的——扫描轮自己认这是什么动作。真正随动作变化的,是你该站在哪,以及有没有一个值得去钉的接触声。

动作机位接触声相位词汇
杠铃深蹲身后 45°弱——只有折返时杠片轻响setup / descent / bottom / ascent / lockout
硬拉正侧位,全身入画强——每次都有杠片触地setup / pull / lockout / descent
卧推正侧位,略高于杠铃中等——杠铃触胸setup / descent / chest / press / lockout
网球正手 / 发球正对击球点的侧位强且干净——球打在拍线上backswing / contact / follow-through
篮球跳投侧位或 45°出手是无声的——只有篮筐才有声音gather / rise / release / follow-through

相位名来自模型自己的分解,所以你那份读起来可能略有不同。不让步的规则只有一条:一行相位只有在它的两个边界都确实是我们抽出来的帧时才会出现;钉不住的边界会让整行被丢掉,而不是被估出来。

这一页跑出来的真实报告

这些卡片来自已经完成的管线运行。点开即可查看完整报告和对应证据。

查看完整报告
SOURCE 2160pSTOCK FOOTAGE

Barbell deadlift · form check

Barbell deadlift · form check00:00:00.000

Controlled conventional deadlift execution with stable spinal neutrality and clean lockout throughout the repetition.

FINDINGS

  • 00:00:03.180infoSynchronized Concentric Pull

    Torso angle opens smoothly as the barbell tracks vertically close to the shins past the knees with synchronized hip and knee extension.

  • 00:00:04.700infoUpright Lockout Posture

    Athlete reaches complete hip and knee extension at the top of the pull with upright spinal alignment and no excessive lumbar hyperextension.

  • 00:00:06.251infoControlled Eccentric Lowering and Impact

    Barbell achieves floor contact under controlled eccentric tension while maintaining braced trunk positioning and neutral spine alignment.

PHASE TIMING

setup (rep 1)00:00:00.48400:00:00.984
concentric (rep 1)00:00:03.18000:00:03.780
ascent (rep 1)00:00:04.18000:00:04.700

EVIDENCE

During this first-set sample of the deadlift concentric…
00:00:03.180
The suspicion of form breakdown during descent is refuted…
00:00:06.251
DURATION
00:06
DRILLS
4
FRAMES
12
FINDINGS
4
SOURCE
3840x2160

Pexels License · Tima Miroshnichenko / Pexels

查看完整报告
SOURCE 2160pSTOCK FOOTAGE

Golf drive · form check

Golf drive · form check00:00:00.000

Clean driver swing mechanics highlighted by stable spine angle and complete weight transfer onto lead side.

FINDINGS

  • 00:00:02.967infoClean Club-to-Ball Contact Off Tee

    The clubhead struck the teed golf ball cleanly with the golfer retaining forward trunk lean and head position behind the strike zone as the trail heel lifted into weight transfer.

  • 00:00:05.467infoControlled Post-Shot Balance and Club Lowering

    Following swing completion, the golfer held a balanced finish on the lead leg and lowered the club with upright posture without stepping out of stance.

PHASE TIMING

downswing (rep 1)00:00:02.68000:00:02.960
follow-through (rep 1)00:00:02.96000:00:03.280
post-shot balance (rep 1)00:00:05.46700:00:06.467

EVIDENCE

Suspicion refuted: the golfer demonstrates clean swing…
00:00:02.680
Impact is confirmed at frame 6, where the clubhead strikes…
00:00:02.967
DURATION
00:06
DRILLS
4
FRAMES
12
FINDINGS
3
SOURCE
4096x2160

Pexels License · Ryan Parkland / Pexels

查看完整报告
SOURCE 1080pSTOCK FOOTAGE

Barbell squat · form check

Barbell squat · form check00:00:00.000

Consistent squat depth and torso stability maintained across all repetitions.

FINDINGS

  • 00:00:01.180infoConsistent Full Depth and Controlled Ascent

    During the first repetition, the athlete hits full depth with the hip crease below knee level and completes a stable concentric ascent to full lockout with vertical bar tracking.

  • 00:00:05.480infoStable Footing and Torso Angle on Final Repetition

    On the final repetition descent, the athlete maintains a neutral spine, stable torso inclination, and firmly planted heels without ankle collapse or forward torso drop into the hole.

PHASE TIMING

concentric (rep 1)00:00:01.18000:00:01.780
descent (rep 3)00:00:05.48000:00:06.080

EVIDENCE

First repetition baseline established: the athlete reaches…
00:00:01.180
Suspicion of fatigue-induced form breakdown is refuted as…
00:00:05.480
DURATION
00:06
DRILLS
2
FRAMES
6
FINDINGS
2
SOURCE
1920x1080

Pexels License · Harvey Tan Villarino / Pexels

样例报告 —— 每张卡都链接到它出处的真实报告,均由本工具分析产出。

动作分析常见问题

有免费的 AI 动作分析吗?
新账号注册即送积分,足够你在付费之前先看到一份带真实证据帧的真报告。之后每分析分钟 10 积分——如果这次只能交付扫描级发现、拿不出证据帧,则按 4 积分计。不足一分钟向上取整,没有订阅,也没有什么需要取消。
你们会给出膝关节角度、杠铃速度这类度数和米每秒吗?
不会,也不打算会。用一台手持相机测关节角度,需要手机后摄不会交出来的深度信息,还需要一个没人会去做的标定步骤。那些从卧室视频里印出「膝屈 142°」的工具,是在印数字,不是在测数字。我们只做定性描述——「膝盖内扣」「杠铃前移」——并把每一句钉在一张你可以自己去看的帧上。
能传什么样的视频?
MP4、MOV 或 WebM,50MB 以内、30 分钟以内。实践中一到两个正式组是合适的量:整场训练的视频,积分大多花在了组间休息上。
需要用 240fps 慢动作拍吗?
不需要——而且它带来的好处也没你想的那么多。我们的抽帧上限是 60fps,所以 60fps 就是一次分析能用到的最细视频网格,约每帧 17ms。接触类问题上那个更锐利的数字本来也不来自画面:它来自音频 onset,检测分辨率约 23ms,然后被钉到接触帧上。
支持哪些动作——深蹲、硬拉、卧推、网球、高尔夫?
不存在「支持/不支持某个动作的模型」这回事。第一轮从视频本身认出动作,钻取问题是围绕它认出的东西写的,所以杠铃深蹲、网球正手、拳击组合拳走的是同一套机器。真正的差别是「有多少东西可钉」:有清晰接触声的动作,时间码会比无声动作锐利得多。
能把报告发给教练吗?
可以——点报告页顶部的「复制链接」发给他。任何拿到链接的人都能打开,不需要账号也不需要 App,看到的就是你眼前这些标注帧和时间码。
视频没有声音还能用吗?
能跑,但它会失去最拿手的一招。撞击检测和呼吸检查都由音轨驱动——没有音轨就没有 onset,这两个检查不触发,报告里所有毫秒都只能来自帧网格。如果你只能提供无声视频,请尽量用 60fps 拍,把网格保持在最细。
这和直接去 r/formcheck 发帖有什么区别?
它不是替代——它就是你要发的那个东西。与其发一段生片外加一句「我蹲得够深吗」,不如发一条链接:深度这个问题上面已经有了时间码、有了帧、还有一个框。别人于是能对着具体的东西表示不同意。而且它几分钟就回来,不用等谁哪天有空看一眼。
它能告诉我是不是受伤了、会不会受伤吗?
不能。伤病诊断就写在上面那张「我们不声称」的清单里,而且会一直待在那儿。报告描述的是视频在那些你能核对的帧上呈现了什么。这对你的身体意味着什么,是一个该找有资质、并且能真正看到你本人(而不是只看 40 秒素材)的人去聊的问题。
可以贴 YouTube 链接代替上传吗?
可以,而且它走的是和上传同一套抽帧。但做 form check 我们仍然更希望你上传文件:取回的副本上限是 480p,看杠铃轨迹漂移够用,再细的东西就单薄了。如果取回彻底失败,这次分析会退化成扫描级发现,并按更低的扫描价计费。

一组动作,一份有证据的报告。

页面顶部已经选好动作分析方向,上传视频即可开始。

跑一次动作分析