AutoScript Sync 中的姿态估计
AutoScript Sync 生成 funscript 时,姿态估计由在你电脑上运行的 YOLOv8-pose 模型完成。它在采样帧中找出每个人,并在其身上标出 17 个关键点。追踪器逐帧跟随这些人,把他们的动作转化为候选位置信号。姿态是可选的:它只是几个候选信号之一,没有姿态模型时,引擎只靠光流运行。
已于 2026 年 9 月 21 日对照应用代码核实。
每个 Accuracy 档位使用哪个模型
YOLOv8-pose 共有四种尺寸。应用会自动下载 small 模型;其他模型需通过应用内的 Download best 选择器获取,它在 GPU 上推荐 large 模型,在 CPU 上推荐 small 模型。
| 模型 | 大小 | 在 CUDA GPU 上用于 |
|---|---|---|
yolov8n-pose (nano) | 约 13 MB | Fast |
yolov8s-pose (small) | 约 45 MB | Balanced;默认下载的模型 |
yolov8m-pose (medium) | 约 99 MB | Balanced 和 High 的首选模型未安装时的第二选择 |
yolov8l-pose (large) | 约 168 MB | High |
此对应关系在开启 Auto-pick model tier from Accuracy 时适用,这是默认设置。应用只能选择已经安装的模型,因此在默认安装下,每个档位都运行 small 模型,直到你下载其他模型。在 CPU 上的上限是刻意设定的:Fast 只用 nano,Balanced 和 High 最多用 small 模型。你也可以自己为应用指定一个模型文件。
模型看到的内容:每人 17 个关键点
默认情况下,姿态会在每个采样帧上运行,使用的是引擎其他部分同样使用的 320 px 宽分析图像。该帧会加黑边缩放到模型的输入尺寸:ONNX 模型使用导出时的尺寸(标准导出为 640 px),通过自带 Ultralytics 包运行的 .pt 模型则以 320 px 工作。
置信度高于 0.35 的每个人都会被保留,带有 17 个标准 COCO 关键点:头部各点、肩、肘、腕、髋、膝和踝。姿态运行的频率由 config.json 中的步长(pose_every_n)决定,出厂设置为每个采样帧都运行。
人物追踪器如何保持身份
只有在整个场景中持续跟随同一个人,检测结果才有用。AutoScript Sync 为此使用的是自己的追踪器,而不是现成的。它根据框中心之间的距离和框的大小在帧之间匹配人物,优先采用最近的匹配。
它从被追踪的人物身上构建出几个候选信号:髋部的垂直运动,以及成对身体区域的相对运动(髋部对髋部、头部对髋部、手部对髋部),每项都除以身体尺寸。每个候选信号按三个方面打分:
- 重复性有多强:其功率落在 0.2 到 4 Hz 之间最强峰值上的比例;
- 覆盖率:它在场景中实际被测量到的比例,低于 40% 的记为零;
- 幅度:它移动的程度。
得分最高的候选信号在每个场景章节中分别胜出,因此场景之间体位的变化,可能会改变姿态所提供的是哪个身体区域的信号。
姿态为脚本带来了什么
姿态不会单独写出脚本。最终的位置轨迹由约束到锚点上的光流构建而成,姿态只是锚点候选之一,另外两个是运动区域的中心和深度。只有当姿态覆盖视频的至少 25%,且其按质量加权的得分超过区域中心得分的 0.6 倍时,它才能成为该视频唯一选中的锚点。未被选中时,它仍会参与默认的所有可读通道逐样本混合,而该混合只有在得分不低于选中通道时才会被采用。每个候选的选举得分都会写入脚本的元数据,你可以看到是谁胜出。
姿态也有助于标注动作类型。关键点的几何关系和面部位置会作为每个 2 秒窗口标签的依据,并可以推翻或调整分类器的判断。
姿态对行程轨迹的改善程度尚未得到证明。在一部测试影片上,开关姿态只让与参考脚本的行程一致性(F1)在 0.607 和 0.610 之间变化,低于开发者视为有意义的 0.01 差值(每次运行之间的噪声约为 ±0.005)。该参考是由手绘追踪框引导的引擎输出,而不是手工制作的脚本;轻量和重量级姿态模型在行程准确度上的对比也没有记录。
在 GPU 上运行,以及 CPU 备用方案
姿态模型在本地运行:ONNX 格式通过 ONNX Runtime 运行,.pt 文件则通过自带的 Ultralytics 和 PyTorch 运行。加速仅支持 NVIDIA CUDA;模型没有 AMD 或 Intel 加速,也不使用 TensorRT。
当 CUDA 无法使用时,ONNX Runtime 可能会悄无声息地在 CPU 上加载,因此应用会检查会话实际获得的是哪个执行提供程序,而不是想当然。如果请求了 CUDA GPU 但无法使用,姿态会退回到 CPU,应用会报告正在使用的提供程序。Check GPU 按钮可随时执行这项检查;它显示的 ms/帧是姿态模型自身的自检结果,而不是整个分析的速度。
默认情况下,应用还会关闭 cuDNN 自动调优,让 GPU 推理在每次运行时给出相同的数值,代价是一定的速度。但这并不保证重新生成时得到完全相同的脚本,因为应用会在两次运行之间学习。
局限
- 身体被遮挡。模型看不到的关键点不会被测量。在场景中测量覆盖不到 40% 的候选信号记为零分,而覆盖视频不到 25% 时姿态无法成为选中的锚点,因此在遮挡严重的场景中,脚本会转而依赖光流和区域中心。
- 画面拥挤。追踪器只根据框的位置和大小匹配人物。它没有外观模型,所以当人物重叠或交叉时,身份可能会在帧之间互换。
- 人物过小。姿态在 320 px 的分析帧上运行,所以在广角镜头中只占画面一小部分的人,只能给模型很少的像素。
- 速度。在开发者的测量中,姿态一直占分析时间的最大份额,这就是为什么各档位在 Fast 下选用更小的模型,并在 CPU 上限制模型大小。
常见问题
制作脚本需要姿态模型吗?
不需要。没有姿态模型时,引擎只靠光流运行,Inference 状态栏会明确显示。除非你关闭自动下载,small 姿态模型会自动下载。
我应该下载 large 姿态模型吗?
在 NVIDIA GPU 上,Download best 会推荐它,High 也会使用它。我们没有测量过它是否比 small 模型生成更好的脚本,所以这是一个选择,而不是解决方案。
姿态能在 AMD 或 Intel 显卡上运行吗?
没有加速。AI 模型只使用 NVIDIA CUDA;在其他硬件上,姿态在 CPU 上运行,可以工作但慢得多。
姿态模型会向网上发送任何内容吗?
不会。它在你的电脑上运行,应用的分析模块不含任何网络代码。只有下载模型本身需要联网。
延伸阅读
- AI funscript 生成的原理完整的处理流程,以及姿态在其中的位置。
- 光流动作追踪与姿态相互权衡的那个信号。
- 基于 MiDaS 的深度估计另一个可选模型,以及它补回的那条轴。
- 在 Windows 上运行 AutoScript SyncGPU、CPU、安装程序会带来什么,以及模型存放在哪里。