AutoScript Sync 中的姿态估计

AutoScript Sync 生成 funscript 时,姿态估计由在你电脑上运行的 YOLOv8-pose 模型完成。它在采样帧中找出每个人,并在其身上标出 17 个关键点。追踪器逐帧跟随这些人,把他们的动作转化为候选位置信号。姿态是可选的:它只是几个候选信号之一,没有姿态模型时,引擎只靠光流运行。

已于 2026 年 9 月 21 日对照应用代码核实。

每个 Accuracy 档位使用哪个模型

YOLOv8-pose 共有四种尺寸。应用会自动下载 small 模型;其他模型需通过应用内的 Download best 选择器获取,它在 GPU 上推荐 large 模型,在 CPU 上推荐 small 模型。

YOLOv8-pose 模型及应用何时选用它们
模型大小在 CUDA GPU 上用于
yolov8n-pose (nano)约 13 MBFast
yolov8s-pose (small)约 45 MBBalanced;默认下载的模型
yolov8m-pose (medium)约 99 MBBalanced 和 High 的首选模型未安装时的第二选择
yolov8l-pose (large)约 168 MBHigh

此对应关系在开启 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 上运行,可以工作但慢得多。

姿态模型会向网上发送任何内容吗?

不会。它在你的电脑上运行,应用的分析模块不含任何网络代码。只有下载模型本身需要联网。

延伸阅读

用你自己的视频试试

试用期为一天,在你自己的电脑上运行;你的视频在本地分析,从不上传。