教材总览 · 第 6 章 ← 上一章 下一章 →
6 第 6 章

人体姿态与动作迁移

让真人跳一遍,角色就会了——关键点、置信度、平滑与重定向的完整链路。

学习目标
  1. 知识:理解二维姿态估计的关键点定义(COCO 17 点、MediaPipe 33 点等)、热图与置信度的含义、三维姿态与 SMPL 类人体模型的基本概念,以及遮挡与抖动的成因与处理思路。
  2. 能力:能拍摄规范的参考视频并提取姿态数据;能用"动作参考 / 姿态条件"把真人动作迁移到生成的图像角色上;能把动作重定向到第 5 章做出的三维角色上;能用一份排查清单定位滑步、穿模、比例失真等问题。
  3. 素质:形成"身体影像先授权、再采集、后标识"的工作习惯;理解深度合成的新规与"可识别性"标准;尊重不同民族、不同群体的身体文化表达方式。
对应第 7–8 周 · 6 学时讲授 3 学时 · 实践 3 学时主线推进:捣衣 / 拂袖动作迁移

周五下午的舞蹈教室,小舟把手机架在三脚架上,请小月示范了一遍《春江花月夜》里最难处理的那个动作:捣衣——抬臂、落袖、沉肩、再回手。三十秒的素材,约 900 帧。三小时后,这段真人的动作出现在了两个地方:一处是图像工具生成的"捣衣仕女"图,人物的手臂与袖口与真人几乎同步;另一处是第 5 章做的诗人角色,他也在做同样的动作——只是脚下有点打滑,右手袖子穿过了身体。

从"真人动了一下"到"角色动了起来",中间发生的事比大多数人想象的多。模型并不是在"看视频",它是在读一串坐标:把每一帧里的人体压缩成十几个点,给每个点一个"我有多确定"的分数,把这些点连成骨架,再想办法把这套骨架搬到另一个身体上。这一章要回答三个问题:人的动作是怎么变成数据的?为什么这些数据会抖、会错、会丢?以及怎么让另一个"身体"不失真地把它演一遍?前者是姿态估计(pose estimation),后者是动作迁移(motion transfer)与动作重定向(motion retargeting)。

📌 本章的四族技术:别把它们混成一件事

本章的对象是「人的动作数据」,但围绕它站着四族完全不同的技术——输入输出、失败模式、验收标准各不相同:

本章开头的图 6-1 说的是②与③「两条去向」的区别;①②③④ 合起来,才是这份数据从拍摄到成片的完整去向。出了问题时,先定位是哪一族出的错,再谈怎么修——这正是本章反复练的排查习惯。

6.1姿态:把一个人的动作变成一串坐标

先请你做一个小实验。打开手机相册里任意一段有人物走动的视频,盯着看十秒,然后问自己:你是怎么"看懂"这个人在走路的?你大概会答"因为他的腿在交替摆动"。但请注意,你从来没见过"腿在交替摆动"这个东西本身——你看到的是像素颜色在变化,是"腿"这个概念从你的经验里被自动调用了出来。计算机没有这种经验,所以它需要一个中间层:把人体抽象成十几个关键点(keypoint),把动作抽象成这些点随时间移动的轨迹。这就是本章所有内容的起点。

一条数据,两条去向 真人视频 手机 / 相机拍摄 二维姿态估计 逐帧找人、找关节 关键点序列(时序数据) 每帧 17 个点 × (x, y, 置信度) 路线一 · 二维骨架 → 图像角色 路线二 · 三维姿态 → 三维角色 ① 骨架图(黑色底 + 彩色火柴人) ② 动作参考:把骨架当作生成条件 ① 三维姿态(SMPL 拟合 / 三角化) ② 重定向:骨架映射 + 比例适配 + 足锁 ③ 图像角色:按指定姿势生成 适合短片中的"一帧一景" ③ 三维角色:第 5 章的诗人动起来 适合需要镜头运动的连续段落 合成进《春江花月夜》短片
图 6-1 本章技术路线图。同一份关键点数据,向左走是"图"(姿态条件生成静止画面),向右走是"骨架"(重定向驱动三维角色)。两条路线的差别不在数据来源,而在"谁来解释这份数据"。

关键点:人体的"降维打击"

姿态估计(pose estimation)指的是从图像或视频中定位人体关节位置的任务。它的产物不是一张图,而是一组关键点(keypoint):每个点用一对坐标 (x, y) 表示,外加一个表示"模型有多确定"的分数。把一个人压缩成十几个点,信息量损失了 99% 以上——但剩下的 1% 恰好是"动作"本身。衣服的颜色、脸的长相、背景的陈设全被丢掉了,留下的是姿势与运动的抽象。

这个思路在生活中其实很常见。健身镜上跳动的火柴人、体感游戏里跟着你动的小人、运动 App 里的跑姿分析曲线——它们背后都是同一件事:先把人变成点,再对点做计算。对创作而言,这个"降维"带来两个直接好处:第一,它让动作可以脱离具体的人被保存和搬运(不涉及长相与身材,搬运起来没有负担);第二,它给了生成模型一个可以精确控制的把手——你想让画面里的人抬手 45 度,与其用文字描述半天,不如直接在骨架图上把那个点拖上去。

那么,一个"人"到底该用多少个点来表示?这不是可以拍脑袋决定的问题:点太少,动作表达不清(只有肩和腕两个点,就分不清手肘是弯是直);点太多,标注成本暴涨、模型也更容易出错。业界因此形成了若干套"约定"。本书需要你记住其中四套——不是因为要背数字,而是因为你在不同工具之间搬运数据时,一定会遇到"我这边是 33 点,你那边是 17 点"的转换问题。

表 6-1 四套常见的人体关键点体系
体系点数构成典型使用场景与特点
COCO17鼻、双眼、双耳、双肩、双肘、双腕、双髋、双膝、双踝学术基准与工程事实标准,被 HRNet、YOLO-pose 等广泛采用;只覆盖身体主干,不含手指与面部细节
MediaPipe Pose(BlazePose)33身体点细分,另含手部与脚部相关点面向移动端与实时场景,算力需求低;每帧输出归一化的 (x, y, z) 外加一个可见性 / 置信度字段
DWPose(COCO-WholeBody)13317 身体 + 68 面部 + 42 手部(每手 21)+ 6 脚部全身检测精度高,全身 AP 约 66.5%;手部表现明显优于早期方案;Apache-2.0 许可,可自由商用
OpenPose135身体 / 脚 / 脸 / 手开山之作,单阶段自底向上,靠"部位亲和场"连接关节点,无需单独的人体检测步骤;但技术较老、商用许可受限

四套体系的关系可以用一句话概括:COCO 的 17 点是"普通话",其他体系是带方言口音的变体。COCO 17 点只覆盖身体主干,因为它的设计目标是"一根能表达动作的骨架";MediaPipe 的 33 点在同一根主干上增加了面部与手部的粗略点,因为它的目标场景是"手机前置摄像头里的实时互动";DWPose 与 OpenPose 的 133 / 135 点则把手指的每一个关节、面部的每一个轮廓点都标了出来,因为医疗、驱动虚拟主播等高精度场景需要它们。

COCO 17 点骨架 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 点的名字(自左向右,自上向下) ① 鼻 ② 左眼 ③ 右眼 ④ 左耳 ⑤ 右耳 ⑥ 左肩 ⑦ 右肩 ⑧ 左肘 ⑨ 右肘 ⑩ 左腕 ⑪ 右腕 ⑫ 左髋 ⑬ 右髋 ⑭ 左膝 ⑮ 右膝 ⑯ 左踝 ⑰ 右踝 注意两件事: ① 躯干只有"肩—髋"的连线,   没有单独的"脊柱骨"关键点; ② 左右以被拍摄者自己的左右为准,   不是以你在画面里看到的左右为准。
图 6-2 COCO 17 点骨架。这是本章出现频率最高的一张图:后面讲热图、置信度、平滑、重定向,对象都是这 17 个点。请特别注意右下的两句话——它们分别对应 6.1 节的映射问题与 6.7 节的"镜面翻转"失败。

图上那两行小字值得展开。第一,"没有脊柱骨":COCO 只要求"肩"和"髋"两组点,从肩到髋的连线是隐含的,模型并不输出一个"腰椎"点。而多数虚拟角色的骨架是含脊柱的(颈、胸、腰若干节),所以把 17 点直接贴到虚拟角色上时,必须自己"补"出脊柱的运动——这是 6.2 节要解决的问题。第二,"左右以被拍摄者自己的左右为准":如果画面里的人背对着你,他抬起的右手出现在画面左侧。"左"永远指被拍摄者自己的左边;一旦搞混,迁移出来的动作就会左右互换,这正是"镜面翻转"这类失败的温床。

热图与置信度:模型真正输出的是什么

很多教程会告诉你"姿态估计就是输出 17 个坐标",这句话在工程上不够准确。绝大多数模型并不直接吐出坐标,而是先为每一个关键点生成一张"概率地图"——热图(heatmap)。热图是一张与原图(或降采样后的特征图)同尺寸的灰度图,图上每个位置的数值表示"这个关键点出现在这里的可能性",最高点就是模型认为的关节位置。

用一个类比:想象班里要选出"最像班长的同学",老师没有直接点名,而是给每个同学打了一个"像不像"的分。热图就是这张打分表,而最终坐标只是"分数最高的那位"。这样设计有两个好处:第一,模型学起来更容易——预测一张平滑的打分表比一步到位预测一个精确坐标要稳定得多,因为"附近也很像"这件事在打分表里可以被表达出来,而坐标只能表达一个点;第二,热图的形状本身就携带了不确定性信息——一个尖而高的峰意味着"非常确定",一个矮而扁的峰意味着"大概在这一带,但我拿不准"。

热图:每个关键点一张可能性地图 ← 峰值 = 关节点 峰越尖 = 越确定;峰越扁 = 越拿不准 置信度:给每个点打一个把握分 0.94 0.88 0.71 0.53 0.31 0.12 阈值 0.5 左肩 右肘 左腕 右膝 左踝 右腕 用途一 · 过滤 低于阈值的点直接丢弃; 覆盖不足的帧整帧排除, 交给插值或人工补上。 用途二 · 加权三角化 由多个视角推算三维时, 置信度高的点贡献更大, 低置信度的点少说话。 用途三 · 报告指标 检出率(高于约 0.3 的 点所占比例)、平均置信度、 缺失帧率三项。
图 6-3 热图与置信度的两种视角。左图看"位置从哪里来",右图看"这个位置可不可信"。注意右图 0.53 与 0.5 只差一点——阈值附近的点最危险,它们会在相邻帧之间反复跨越阈值,表现为"点时有时无"的闪烁。

图中第三个数——置信度(confidence)——是本章最容易被忽略、却最影响成品质量的一个量。它的确切含义因模型架构而异:可能来自热图的峰值高度,可能是另一个分支网络算出的分数,也可能是像 MediaPipe 那样直接给出一个"可见性"(visibility)字段。你不需要知道它内部怎么算,但必须知道它被用来做什么,否则排查问题时会对着一个"明明看得见却画错位置的点"束手无策。

表 6-2 置信度的三种用途与一条警告
用途 / 读法具体做法对你作品的直接意义
过滤置信度低于约 0.5 的关键点直接丢弃;关键点覆盖不足的帧被排除决定了"这一帧还能不能用"。丢弃之后要补插值,补得好不好直接决定动作是否连贯
加权三角化由多个二维视角推算三维时,用置信度作为权重,高置信度点对三维解的贡献更大单目 / 多目视频做三维姿态时的核心技巧;权重给错,深度就会"漂"
报告指标检出率(高于约 0.3 的关键点比例)、平均置信度、缺失帧率拍摄完成后先看这三个数,再决定要不要补拍——比肉眼逐帧检查快得多
警告 · 它不是准确率置信度只回答"模型自己有多确定",不回答"它对不对"遮挡场景里模型可能"非常自信地把手画在腰上"——高置信度的错误比低置信度的错误更危险
⚠️ 常见误解

很多同学第一次看到"置信度 0.95"就以为"这个点 95% 是对的"。不是。它表示的是模型的内部把握程度,与真实正确率没有换算关系。一只被遮挡的手,模型可能凭"人一般手在身侧"的先验给出 0.9 的置信度,位置却完全错误。判断数据是否可靠,最终仍要回看原视频——这也是本章把"对照检查"写进实践步骤的原因。

骨架图:把散落的点连成结构

有了点,还需要把它们连起来,才能表达"这是一条手臂"。连接关系不是模型猜的,而是写死在标准里的固定表:左肩连左肘,左肘连左腕,左肩连左髋,左髋连左膝,左膝连左踝,鼻连双眼、双眼连双耳……把点当作节点(node)、把这些固定的连接当作边(edge),一帧姿态就变成了一张标准的图(graph)结构——所以整套数据在论文里常被叫作骨架图(skeleton graph)。

理解"图结构"为什么重要?它解释了两件事:第一,为什么姿态数据可以被不同工具互相搬运——只要两边的连接表一致(或者能通过一张转换表对应起来),数据就能互换,这正是 DWPose 的输出能直接替换 OpenPose 输出的原因;第二,为什么时序建模可以做得比"逐个点滤波"更聪明——既然数据天然是图,就可以用在图上做卷积的模型(图卷积网络,GCN)一次处理整段动作,让"手腕的抖动"参考"手肘的变化"来判断它到底是不是真的在动。

还有一层结构值得多看一眼:连接是有方向与层级的。在骨架图里,"肩"是"肘"的父节点,"肘"是"腕"的父节点;沿着这条线一路向上,所有点最终都汇到骨盆(髋部中心)。这种层级结构在动画学里叫运动链(kinematic chain),它带来两条贯穿全章的推论。推论一:位置的误差会顺着链条传递与放大。肩点若抖动 2 个像素,肘与腕就会跟着画出一条明显放大的弧线——这解释了为什么手腕与脚踝总是全身最"不安分"的点,也解释了为什么质检时要对末梢关节单独设规则。推论二:骨长在模型里被假设不变。一个人张开手臂时,肘到腕那段"骨头"不会真的变长,但算法输出的坐标会有轻微伸缩;迁移到角色身上时,这点伸缩会被放大成可见的变形——6.5 节的比例适配要处理的,正是这件事。

最后记住一个点:髋部中心,常被当作"根节点"。它是整张骨架的立足点,动作中的移动、转身、跳跃最终都会反映为根节点的轨迹;后文的"根节点漂移"质检项与重定向的足部锁定,都要以它为参照。

一帧的姿态数据 17 个关键点 每个点存 3 个数: x、y、置信度 = 17 × 3 的数组 (若含深度则再加一列) 连接表(写死的规则) 肩—肘—腕 肩—髋—膝—踝 鼻—眼—耳 换一套体系,换一张表 对应关系就叫"映射" 连起来 = 骨架图 点 = 节点 node 连线 = 边 edge 单帧 = 一张图 连续帧 = 一串图 → 可以在"图"上做卷积 一帧是一根骨架,一段视频是一串骨架——"动作"就是关键点随时间移动的轨迹 t t+1 t+2 相邻帧之间的位移, 才是"运动"本身。
图 6-4 从一帧到一段。上半部分是数据的结构(数组 → 连接表 → 图),下半部分是同一结构在时间轴上的重复。图卷积、时序滤波、动作匹配都建立在这个结构之上。

工具定位:MediaPipe · DWPose · OpenPose

知道原理之后,选工具就变得简单了——因为每一步该用哪种工具,取决于你手上有什么、要什么。给一个极其粗略的定位口诀:要快、要能跑在手机上,用 MediaPipe;要准、尤其是手部要准,用 DWPose;要"老流程兼容"或者数据集里全是这个格式,用 OpenPose。下面这张表把三者的差别讲清楚。

表 6-3 三套主流姿态工具的能力对比(据 2026 年公开资料整理)
维度MediaPipe PoseDWPoseOpenPose
出品方GoogleIDEA ResearchCMU
点数体系33 点(BlazePose)133 点(COCO-WholeBody)135 点(身体 / 脚 / 脸 / 手)
架构思路面向移动端的轻量模型,自带内部平滑基于 RTMPose(CNN + Transformer),两阶段:先检测人,再对每个人裁剪出的区域单独跑姿态模型单阶段自底向上:整图一次处理,用部位亲和场(PAF)连接关节点,无需单独的人体检测步骤
手部表现有手部相关点,精度一般优势显著,两只手都能捕捉经常漏检手部,手指细节粗糙
精度口径面向实时与低算力,不追求最高 AP全身 AP 约 66.5%(COCO-WholeBody)开创性方案,技术较老,全身 AP 明显更低
许可开源生态,可商用Apache-2.0,可自由商用非商业 / 学术许可,商用受限
本课程用法课后自测、手机端实时试验课堂主线流程的首选提取器作为格式与历史脉络的参照

有一个非常实用的细节:DWPose 的输出兼容 OpenPose 格式的骨架,两者可以在既有工作流中直接互换节点做 A/B 对比。在 ControlNet 里,DWPose 的预处理器名为 dw_openpose_full,社区沿用了 OpenPose 的叫法,管它叫 "DW Openpose"。这意味着你不必为了换一个更准的提取器而重建整条流水线——换一个预处理器,其余照旧。这背后是一个更普遍的工程经验:选择"事实标准"的格式,等于给自己留了一条退路。

🧪 原理注 · 两阶段为什么对手部更友好

单阶段自底向上的方案(OpenPose)要在整幅图里一次性找出所有人体的所有关节,人一多、一遮挡,就难免"张冠李戴"——把 A 的手腕连到 B 的身上。两阶段方案(DWPose)先框出每个人,再在这个小框里单独跑一次姿态模型——框内的手臂相对更大、干扰更少,手部这种"小而密集"的结构自然更准。代价是速度略慢,并且在拥挤场景中依赖检测框的准确。这个"先定位再细化"的思路,与第 2 章讲的"局部重绘"、第 4 章讲的"部件级细化"是同一种工程智慧:把难题拆小,比硬解难题容易。

🎯 要点 · 6.1 节三句话

① 姿态估计的产物是关键点序列,不是图片;不同工具用不同的点数体系,转换才是常态。
② 模型先输出热图(位置的可能性地图),再从峰值取坐标;置信度回答"模型有多确定",不回答"对不对"。
③ 关键点靠固定的连接表连成骨架图——这是数据能跨工具搬运、也能被图卷积统一处理的原因。

6.2三维姿态与人体模型:从"投影"回到"身体"

二维关键点已经能做很多事了:控制生成图里人物的姿势、做动作比对、给别人演示"这个动作怎么做才对"。但它有一个硬伤:它只是一张纸上的剪影。当你要让一个三维角色完成同一个动作时,问题立刻来了——画面里那个人的手,是在身体前面,还是在身体后面?他的身体是朝左 30 度,还是朝右 30 度?二维投影有无数种三维解释,而三维角色只能接受其中一种。这一节讲的就是"从投影回到身体"的三件事:深度从哪里来、人体模型是什么、以及骨架之间怎么对应。

深度:二维投影丢掉的第三个维度

三维世界里的一个点 (X, Y, Z),投影到照片上只剩下 (x, y)。Z 去哪了?它没有被丢掉,而是被"混进了比例里"。同一个人,站得离相机近,在照片里就大;站得远,在照片里就小。也就是说,照片里那个人的大小同时受"真实身高"和"距离"两个因素影响,而照片本身无法告诉你哪个因素在起作用——这就叫尺度歧义(scale ambiguity)。

更麻烦的是关节的深度:手从身前移到身后,在正面视角的照片里,手腕的位置可能几乎没有变化(因为前后的移动被投影压扁了),但三维里这只手已经划过了半米的弧线。模型必须从"手臂看起来变短了"这种蛛丝马迹里反推出"它往画面深处伸过去了"——这是一件本质上不够确定的事。

相机看到的:一张投影 相机 图像平面 捕获的画面 注意:画面里只有"大小", 没有"远近",也没有"前后"。 可能的真实场景(都对) A · 大而远 或 B · 小而近 同一个二维投影,对应无穷多种三维解释——这正是单目三维姿态不稳的根源 也是为什么"多视角三角化"比"单目估计"可靠:多一双眼睛,就多一个约束 实用的妥协:单目 + 人体模型先验(6.2.3 节),先把"可能的身高臂长"框住
图 6-5 尺度歧义与深度歧义。左图是相机得到的证据,右图是两份都成立的解释。单目三维姿态之所以"看起来能跑但没有那么准",根子就在这张图上。

三角化:多一双眼睛,就多一个约束

摆脱歧义最直接的办法是再加一台相机。如果两个机位同时拍到同一个人,那么"这个人手腕的三维位置"必须同时满足两个相机的投影关系——两条从相机出发的视线在空间中相交,交点就是答案。这个过程叫三角化(triangulation)。两台相机不够就三台,约束越多,解越稳。

三角化的质量取决于两件事:视角差异(两台相机离得太近,"两条视线"几乎是同一条,交不出来)与关键点质量(某个机位没看到手,那个机位就提供不了约束)。这就引出了上一节表 6-2 里"加权三角化"的用途:每个二维点带着自己的置信度参与求解,高置信度的点说话更有分量。工程上更常见的简化做法是"单目 + 先验":只用一台相机,但假设"人是一个符合人体比例与关节活动范围的物体",用这个假设去补足缺失的约束——这正是下一小节要讲的人体模型。

SMPL:一个能被"拧"成任何姿势的人

SMPL(Skinned Multi-Person Linear model,多人线性蒙皮模型)是三维人体领域最著名的一个"参数化人体模型"。说人话:它是一具"可以被连续调节的人"——你给它两组数字,它就吐出一个完整的三维人体网格(带姿态、带体型),不需要任何人手工建模。

这两组数字分别控制两件事:姿态与体型。姿态用 72 个参数表示,对应 24 个关节、每个关节 3 个旋转自由度(可以想象成"每根骨头能往三个方向拧");体型用 10 个形状系数(shape coefficients)表示,控制高矮、胖瘦、肩宽这类"骨架之外的肉与骨"。除此之外,模型内部还包含一个学习得到的关节回归矩阵(把姿态和形状映射到三维关节位置)、一套混合权重(每个网格顶点受哪些关节影响)以及一组姿态相关的混合形状(blend shapes,用来模拟抬手时肩膀肌肉的鼓起、弯腰时腹部的折叠这类"随姿势变化的形变")。

表 6-4 SMPL 与 SMPL-X 的参数构成
项目SMPLSMPL-X对应到创作里的说法
关节数24含面部与手部,关节更多"身体能被拆成几节来拧"
姿态参数7216524 关节 × 3 个旋转;SMPL-X 额外加了脸与手
形状系数1010控制高矮胖瘦,与姿态无关
内部机制关节回归矩阵 + 混合权重 + 姿态相关混合形状同左,并为手 / 脸增加专门的参数与先验"它会替你补出合理的肌肉与关节形状"
典型用法把三角化后的三维关键点拟合到一张人体网格上需要手指与表情的表演级动作关键点 → 一个能进三维软件继续加工的"人"

SMPL 在姿态估计流水线里的角色,是那个"兜底的人"。三角化出来的三维关键点只是一堆散点,没有体积、没有关节连接、更没法直接驱动角色;把它们拟合到 SMPL 上,就得到了一张有拓扑、有关节、有比例的完整人体——可以直接进入第 5 章讲的那套骨骼与蒙皮体系。拟合时通常只用关键点中的一部分:比如把某个标准下三角化输出的几百个点,只取其中 24 个与 SMPL 关节对应的点去做拟合。

而"用 SMPL 把二维关键点变成三维"这条路上,有一个已经相当成熟的工程配方:先把二维关键点经 SMPL 的关节回归转成三维,再对关节角做噪声滤波,最后用贝塞尔曲线拟合来强制运动链的平滑性。也就是说,平滑这一步不是"事后美化",而是三维姿态估计流水线里的标准组成部分——这一点在 6.3 节还会展开。

骨架拓扑不匹配:一个必须提前知道的坑

看到这里你可能会想:既然 SMPL 这么好,那直接把 MediaPipe 的 33 点灌进去不就行了?还真不行。问题出在一个非常具体的差异上:BlazePose 的骨架"非常像标准的 17 点 COCO 关键点,但它缺少一根脊柱骨"。而绝大多数虚拟角色骨架(包括 SMPL、包括第 5 章自动绑定工具生成的骨架)都含有脊柱链条。

MediaPipe 的 33 点确实可以按解剖对应关系映射到 COCO 的 17 点,工程上常见做法是把输出存成 (N, 17, 3) 的数组(N 为帧数)。但"能映射"不等于"能直接驱动"——映射之后你仍然缺脊柱、缺手指、缺脚掌细节。架在这两套体系之间的,不是一根数据线,而是一张需要你自己核对与补齐的对应表。已有工具(如 Kalidokit 一类)专门做这件事:把 MediaPipe 的面部、手部、身体关键点转换成能直接驱动三维模型的数据。它们的价值,正是把这张对应表替你写好了。

MediaPipe Pose 33 点 身体:近似 COCO 17 点 面部:眼、耳、嘴轮廓 手部:每只手 21 点 脚部:脚跟 / 脚尖 优点:轻、快、手机可跑 弱点:细节少 映射 按解剖对应 COCO 17 点 鼻、眼、耳 肩、肘、腕 髋、膝、踝 常存成 (N, 17, 3) 数组 N = 帧数 对照 虚拟角色的骨架 含脊柱链条 含手指链条 含脚掌链条 ← 这里对不上 BlazePose 缺一根 脊柱骨 结论与做法 ① 能映射 ≠ 能直接驱动:映射之后仍缺脊柱、手指、脚掌细节,需要自己补齐或借助专门的转换工具; ② 反过来也成立:虚拟角色的骨架往往比 17 点更"富裕",多余的自由度必须靠约束与平滑填上。
图 6-6 映射的三个环节与一处缺口。数据从"33 点"走到"虚拟角色"要经过两次换算;右边那一列不是你的敌人,而是提醒你:任何"一键驱动"的工具,都在替你猜那些没被拍到的自由度。
深入一格 · 为什么"深度"不能从单张图唯一确定选学 · 数学直觉

相机投影可以写成一个简单的比例关系:设相机在原点,三维点 (X, Y, Z) 投到图像上的位置正比于 X/Z 与 Y/Z(Z 为深度)。现在反过来问:已知图像坐标 (x, y),求 (X, Y, Z)。这个方程有无穷多组解——只要把 X、Y 同时乘以任意倍数 k,再把 Z 也乘以 k,投影结果一模一样。用一句话说:

(X, Y, Z) 与 (kX, kY, kZ) 投影到同一个像素这就是"尺度歧义":所有的三维解构成一条从相机出发的射线,"深度"只是这条射线上的一个自由参数。要确定它,必须引入额外的信息——

额外的信息从哪里来?三条路:①多一个视角(另一台相机给出独立的另一条射线,两条射线相交即解,这就是三角化);②物体已知尺寸(比如"这是一颗直径 40 厘米的球"或"人的臂长在合理范围内",即人体模型先验);③运动(同一个人走两步,透视变化会暴露深度,这也是为什么"原地不动的单帧"最难恢复三维)。这三条路也解释了本章的一个实用结论:想让三维姿态稳,最便宜的办法是"多拍一点、多走两步、别在同一个机位一动不动"。

6.3抖动、遮挡与平滑:把毛刺磨平

现在你手上有一份关键点序列了。把它画成曲线,你会看到一件让人绝望的事:明明是一个平稳的动作,曲线却在疯狂锯齿。手腕的位置帧帧都在上下跳动十几像素,某些帧的手直接"消失"了,还有几帧里左右手突然互换了。这不是你的素材拍得差——这是所有姿态估计的常态。这一节讲三件事:抖动从哪来、怎么把它量化、以及怎么在不"糊掉"动作的前提下把它磨平。

抖动从哪来:六个来源

原始关键点序列在视频中呈现高频抖动与跳变,这不是单一原因造成的。搞清来源很重要,因为不同来源要用不同办法对付,用错药反而更糟——比如把"真实的快速动作"当成抖动滤掉,人物就会变成慢动作。

表 6-5 抖动的六个来源与对应的处理思路
来源机制处理思路
图像噪声传感器噪声与压缩伪影让每帧的像素略有不同,模型据此给出略有不同的位置时序滤波(首选);提高拍摄码率与光照可减轻
遮挡关节被身体或道具挡住,模型只能猜;遮挡解除的瞬间位置会"跳"回来减少遮挡输入;对遮挡区间做置信度标记,单独处理
模型敏感性模型对微小的姿态变化过度敏感,相邻两帧的输入几乎相同却给出不同的解时序滤波;用两端置信度都高的帧对来评估抖动
快速运动帧间位移大,出现运动模糊、肢体拖影,模型找不到清晰边界提高帧率拍摄;不要把这类"真运动"连同抖动一起滤掉
光照变化光照影响特征的一致性,背景光斑移动会让模型误判固定光源、避免逆光与闪烁的屏幕光
多人场景的 ID 切换多个人物交叉时,跟踪编号会互换,导致同一编号的"人"瞬间出现在别处只拍单人;若必须多人,事后按轨迹连续性人工分割

量化抖动:一个可以写进实验报告的公式

"抖得厉害"是主观判断,写实验报告需要数字。一个能直接引用的工程指标是归一化抖动:取每个关键点的相邻帧欧氏位移,算这些位移的中位数,再除以躯干长度归一化。两个细节让它更可靠:

除以躯干长度是为了让数字与拍摄景别无关:远景里的人整体小,位移天然小;近景里人整体大,位移天然大。归一化之后,"一个人走路的镜头"和"一个人挥袖的特写"才能放在一起比较。这个指标的最大价值不是"给抖动打分",而是给你一个对照实验的因变量——6.10 节会让你做"原始关键点 vs 平滑后"的对照,测的就是它。

四种时序滤波:延迟与平滑的取舍

滤波这件事,本质上是在做一笔交易:用"反应的及时性"换"曲线的平滑"。任何滤波都会引入某种形式的延迟,因为要判断"这一帧是不是噪声",就必须参考前后若干帧——而"参考未来"就意味着"晚一点才能给出结果"。表 6-6 是四种常见方案,图 6-7 是它们的效果示意。

表 6-6 四种时序滤波方案的取舍
方案做法直觉优点代价
简单移动平均取最近若干帧的平均实现最简单,能抑制白噪声延迟约等于窗口长度的一半;有边缘效应;对快速运动表现差
指数加权平均 EMA越近的帧权重越大,权重按指数衰减实现简单、延迟可控(调一个系数即可)对突然的真实运动仍会"拖"一下
Butterworth 双二阶级联从频域设计,把"快抖"这类高频成分整体压低通带平坦,专业滤波器设计工具支持参数不直观;阶数高时延迟明显
混合 EMA + 卡尔曼结合"惯性预测"与"测量修正",按不确定性自适应面向低延迟、自适应、边缘保持的复合策略,能在"该跟的时候跟上、该稳的时候稳住"实现与调参最复杂;过度信任预测会"过冲"
同一个关键点的横坐标随时间变化(示意) 时间(帧) 位置 原始关键点(高频抖动) 滤波之后(保留趋势) ↑ 抖动幅度 滤波的目标不是"让曲线变直",而是"把高频抖动压低,同时不改变真实运动的形状" 判断标准:平滑后画面里的动作幅度、节奏与真人是否一致——一致就对了,变慢变糊就滤过头了
图 6-7 原始抖动与滤波后曲线。绿色曲线保留了总体趋势(位置缓慢下降),红色曲线在趋势上叠加了高频噪声。滤波的正确目标是把红色压成绿色,而不是把绿色也压成直线。

还有一个容易忽略的事实:某些工具"已经替你平滑过一遍"了。MediaPipe 内部带有一个轻量的卡尔曼滤波(对应参数 smooth_landmarks=True),但明显的抖动仍会残留,通常需要外部的时序滤波再处理一轮。这也解释了一个常见困惑——"我明明用的是同一个模型,为什么两个工具的结果一个抖一个不抖?":它们的内部平滑设置不同。排查这类问题最快的方式,是找一个静止不动的镜头:如果连"人站着不动"都会有明显抖动,那一定是提取或平滑环节的问题。

遮挡:最硬的一块骨头

在姿态估计的所有难题里,遮挡(occlusion)是公认的核心挑战——甚至有专门为"预测被遮挡关键点"设计的模型架构。原因不难理解:被遮挡的关节在画面里根本没有证据,模型只能依靠"人体结构常识"去猜。它的典型表现有三种:

光照变化也会影响特征的一致性,让"没被遮挡但处于阴影里"的关节同样变得不可靠。对策的优先级非常明确:能避免遮挡就避免(调整机位、让肢体在画面里分离、用侧光而不是大平光),避免不了就标记(把低置信度区间标出来,人工确认或补拍),最后才考虑算法修复。

A 组 · 有遮挡、两侧姿势相似 ? 被遮挡 × 误判到身体另一侧 模型凭先验补全 → 左右互换 B 组 · 肢体分离、侧光、单人满框 关节各自有证据 → 位置稳定 处方:先改输入,再改算法。调整机位让肢体在画面里分开、用侧光勾勒轮廓、保证全身入框; 确实做不到的镜头,就在拍摄清单里标出来,单独重拍——这比事后修补省时间得多。
图 6-8 遮挡的 A / B 对照。两组的差别不在模型,而在输入条件。这本书反复出现同一个结论:在生成类任务里,改输入往往比调参数的收益大得多(第 2、3 章的"提示词改写"是同一个道理)。

丢帧之后:修复还是重拍

当某几帧或某个关节整段缺失时,你有两条路:补或重来。判断标准不是"能不能补",而是"补出来的东西是否影响了观众会注意到的部分"。下面这张决策表可以直接当工作清单用。

表 6-7 缺失数据的处理决策表
情况建议做法理由
缺失 1–3 帧,两端置信度都高线性或样条插值补齐时间极短,插值误差不可见;后接滤波一起做
缺失 4–15 帧,位于动作缓慢段插值 + 平滑;在记录里标注慢速段的插值仍然可信,但要在技术说明里说明"该段为补全"
缺失出现在快速动作的关键瞬间重拍该镜头快速段的插值会"编"出没有的运动,观众一眼能看出节奏不对
整段动作中某个关节持续低置信度先查原因(遮挡 / 服装 / 光线),再决定重拍或换机位持续低置信度通常意味着采集条件系统性问题,插值解决不了
左右出现互换(镜面翻转)不能靠平滑修复,必须人工标注或重拍互换是"离散错误",滤波只会把错误平滑得更自然,反而更难发现
⚠️ 一条铁律

平滑不能修复错误,只能掩盖错误。滤波的前提是"信号是真值 + 噪声",而镜面翻转、穿模、关节粘连属于系统性错误——它们不是噪声,是错误答案。把错误答案滤得更顺滑,只会让评审和观众更难发现,等到合成阶段暴露时,返工成本已经翻了几倍。先保证数据正确,再谈平滑。

时序一致性:单帧都对,连起来不一定对

到这里,我们已经会检查单帧的质量了。但对动画来说,观众看到的从来不是一帧帧静像,而是一条连续的运动——时序一致性(temporal consistency)衡量的正是"这套动作在时间上立不立得住":位置不跳(不闪烁、不抖动)、速度连续(没有凭空的急加速与急停)、关节关系稳定(骨长不忽长忽短)。一条数据完全可能每一帧单独看都没问题,连起来却像被人反复按了快进——这种失败在单帧检查里根本看不出来。

一个非常实用的技巧是把数据画出来看。任选一个关节(比如右手腕),把它的 x 坐标随帧号画成一条曲线:健康的数据是一条平滑的波浪;出现密集毛刺,那是抖动;出现阶梯状的"跳台",往往是丢帧后被插值补出来的可疑段;出现瞬时尖峰后立刻回位,常见于遮挡解除的一瞬——关键点"啪"地跳回正确位置。很多同学在电脑前把视频反复看十遍也找不出问题,把曲线一画,第一眼就暴露了。数字不撒谎,但要画出来才看得懂。这也是 6.10 节对照实验里"画一条对比曲线"这个要求的由来。

一份姿态数据的质检单

拍摄与提取完成后,先别急着进下一步。用下面这张清单过一遍,可以省掉后面大量返工。这些指标也是 6.10 节对照实验的记录项。

表 6-8 姿态数据质检单(可打印张贴)
检查项怎么看合格线(经验值)
检出率置信度高于约 0.3 的关键点所占比例核心关节(肩、肘、髋、膝)应接近全程可检出
平均置信度全部关键点置信度的平均值整体偏低说明拍摄条件有问题,优先补拍
缺失帧率关键点数量不足的帧所占比例连续缺失超过十余帧就要评估是否重拍
归一化抖动相邻帧位移中位数 ÷ 躯干长度(只用双端高置信度的帧对)平滑前后各记一次,用于对照实验报告
左右一致性回看原视频,抽查"抬手 / 转身"等易混淆帧不允许出现左右互换;出现即修复或重拍
根节点漂移观察髋部中心是否在"人没动"时缓慢平移静止段不应有明显漂移,否则重定向后会"自己走"
与画面的一致性把骨架叠加回原视频看一遍必做:这是唯一能发现"高置信度错误"的办法
深入一格 · 指数加权平均只有一行公式选学 · 数学直觉

EMA 是本章最值得动手实现一遍的算法,因为它的全部内容就是一行:

s(t) = α · x(t) + (1 − α) · s(t−1)x(t) 是这一帧的测量值,s(t) 是平滑后的输出,α 是 0 到 1 之间的系数。

读法:新的平滑值 = 一部分新测量 + 剩下的部分旧状态。α 越大,越相信当前这一帧(跟随快、平滑弱);α 越小,越相信历史(平滑强、延迟大)。取 α = 1 就退化成"不平滑",取 α → 0 就变成"几乎不动"。你可以把 α 理解为"新证据的权重",这与第 1 章讲的"注意力是加权平均"是同一类思想:几乎所有的"平滑"与"融合",骨子里都是在做加权平均,区别只在权重怎么定。卡尔曼滤波比它多做了两件事:让权重随"我对预测有多确定"自动变化;并显式地把"运动的惯性"(速度、加速度)写进模型。所以它在"该跟的时候跟得上、该稳的时候稳得住"这一点上更强,代价是调参更复杂。

🎯 要点 · 6.2–6.3 节三句话

① 二维投影丢掉的是深度与尺度:单目三维姿态的"猜",是本质性的,多视角或人体模型先验是把它变成"算"的办法。
② SMPL 是"可被拧成任意姿势的人",把散点关键点变成有拓扑、可驱动的人体网格;但骨架拓扑不匹配(缺脊柱骨)必须先解决。
③ 抖动是常态,不是失败;先量化(归一化抖动)、再滤波(EMA/卡尔曼)、最后回看原视频确认——顺序反了就会白忙。

6.4姿态条件控制:让 AI 按你指定的姿势作画

前面三节,我们把真人变成了数据。现在要让数据反向生长出一个"人"。这条路的入口在第 2 章就埋好了——ControlNet,一种给扩散模型加"空间约束"的技术;而在姿态这件事上,最常用的约束形态就是骨架图。这一节讲它怎么工作、骨架图怎么做、参数怎么调,以及国内网页工具里那些被叫作"动作参考""动作模仿"的功能,背后原理究竟是什么。

为什么文字描述姿势不够用

先看一个具体的问题。你想让画面里的人"坐在江边石头上,左手扶着膝盖,右手抬起袖子挡在脸侧"——这句话对人是清楚的,对生成模型却远远不够。提示词里的"坐着""抬着手"只能粗控人物姿势:手抬多高、肘弯多少度、身体朝哪一侧,全是随机的。跑十次得到十个不同的姿势,其中也许只有一两次接近你的想象。更糟的是,"手臂挡住了脸"这种要求,模型可能理解成"手臂在脸旁边",也可能理解成"手臂不在画面里"。

要精确锁定关节位置与肢体朝向,就得给模型一个"空间约束"——不是用文字说"手抬起来",而是直接告诉它"手在这个位置"。ControlNet 的 OpenPose 模型就是干这个的:输入一张人体骨架图(关键点连线),生成结果会与参考姿势高度接近。骨架图用的是最有名的那种视觉形态——黑色背景上的彩色火柴人,它不是给人看的漂亮图,而是一份"关节位置清单"的可视化。

一张流程图看清姿态条件生成

提示词(正向 / 负向) 服装 · 场景 · 风格 · 排除项 骨架图 PNG 黑底 + 彩色火柴人 采样参数 尺寸 · 步数 · 引导强度 扩散模型 + 条件注入 提示词决定"画什么" 骨架图决定"怎么摆" 两者冲突时: 看控制权重谁更大 输出图 人物姿势贴合参考骨架 服装与场景来自提示词 尺寸决定关节比例 三个最容易踩的坑 ① 骨架图尺寸必须与最终出图尺寸一致(或整数倍),否则关节比例失真; ② 若上传的已经是成品骨架图,预处理器可选 none 或勾选"仅使用输入图像",避免二次重绘; ③ 控制权重过低会"跑偏",过高会僵硬死板——它是本章最值得做 A/B 对照的参数。
图 6-9 姿态条件生成的流程。骨架图不是"参考图",而是约束:它不参与决定画的是谁、穿的什么,只决定关节在哪、肢体朝哪。理解这一点,你就能理解为什么"换了骨架图还是同一个人"和"换了提示词还是同一个姿势"这两件事并不矛盾。

骨架图怎么做:四步标准流程

骨架图可以"从零画"、"从照片提取"、"用软件摆"。三者的成品形态一致,难度不同。下面是被反复使用、可以直接照做的四步流程:

  1. 制作骨架图。设置画布尺寸(常见做法是 512×512,且必须与最终出图尺寸一致),加载内置预设、或拖拽关节点编辑姿势。注意手部若需要精细控制,要考虑到手部的 21 个子关键点。也可以直接用姿态估计工具从参考照片自动提取骨架,或者干脆手绘一个简易火柴人。
  2. 导出。保存为 PNG,要求单通道灰度、纯黑背景、骨骼线条清晰连续、无装饰元素,分辨率为 512×512 或其整数倍。软件通常还能同时导出 JSON 姿势数据,方便再次导入修改。
  3. 在 ControlNet 中加载。启用 ControlNet,上传骨骼图;预处理器选择 openpose(openpose_full 可同时识别手部与面部,DWPose 版为 dw_openpose_full);模型选择对应的 OpenPose 控制模型;若上传的已是骨骼图,预处理器可选 none,或勾选"仅使用输入图像",避免自动重绘干扰。
  4. 写提示词并生成。输入明确的主体描述与动作短语(例如 "kneeling on right knee, arms crossed over chest"),并设置采样参数。
表 6-9 骨架图的三条制作规范(决定成败的细节)
规范要求违反后的表现
尺寸一致骨架图画布与出图尺寸相同,或成整数倍关系关节比例失真——人变"长腿"或"短手",且往往整批图都错
画面干净纯黑背景、只有骨架线、无文字无装饰背景被当成"内容"画进结果,出现莫名的色块与纹理
线条连续骨骼连线清晰、粗细均匀、关节处不被截断肢体在关节处断开,出现"两条腿不连着"或"多出一段手臂"

你可能已经发现:这三条规范里没有一条是关于"画得好不好看"的。没错——骨架图是给模型看的,不是给人看的。它越像一个标准的"技术图纸",效果越稳定。这也是为什么很多人在这一步栽跟头:他们精心画了一张漂亮的姿势小图,结果模型理解得一塌糊涂。

参数:三个旋钮,一组参考值

姿态条件生成里真正需要调的参数不多,但每个都有明确的"过头症状"。下表是社区与教程里流传较广的参考值——请把它们当作起点而不是标准答案:不同模型、不同版本的最优值会漂移,本书一贯的态度是"用对照实验在你自己的工具上确认一遍"。

表 6-10 姿态条件生成的参数参考值(以你的工具实测为准)
参数参考范围调过头会怎样调不足会怎样
控制权重约 0.8–1.5;为了确保动作不变形,常用 1.2–1.5。含 DWPose 的社区工作流推荐 0.7–0.9姿势僵硬、动作像被"钉住",服装与风格被骨架线干扰姿势跑偏,生成结果与骨架图对不上
起止步数(介入区间)0.0–1.0 或 0.1–0.9;社区工作流常见结束步数 0.7–0.8全程强约束,画面呆板、细节损失后半程"放飞",姿势在生成后期被改写
采样方法 / 步数 / 引导强度如 DPM++ SDE Karras、30–35 步、引导强度 6–10步数过高收益递减、耗时增加;引导强度过高色彩僵硬步数过低细节不收敛;引导强度过低不听提示词
图像尺寸必须与输出一致—不一致即关节比例失真,这是最常见的"整体跑偏"原因
多 ControlNet 组合第一单元 openpose 控姿态(权重 1.2–1.5);第二单元 canny 控轮廓(0.8–1.0);手部细节可用深度图单元强化多个高权重单元"打架",画面撕裂只靠骨架,细节(服装轮廓、手)不可控
负向提示词抑制 deformed hands、extra fingers、bad anatomy过度堆砌负面词会压制正常特征手指与解剖错误率上升

网页工具里的"动作参考":同一件事的三种皮

你大概不会去搭一套 Stable Diffusion + ControlNet。没关系——同样的能力已经被包装成了网页上的若干形态,它们在原理上都属于"用姿态作为生成条件":

其中一类特别值得知道:轻量、浏览器端、支持离线、免费、无需登录也无需编程的骨架编辑器——你可以拖拽关节点、加载内置或自定义预设、整体平移姿势,再导出 PNG(黑底彩色火柴人)和 JSON 姿势数据,JSON 还能再次导入修改。它导出的骨架图与主流 ControlNet 的 OpenPose 兼容,输出可用于个人或商业作品。这类工具的价值在于"闭环":导出 → 不满意 → 导回 → 改 → 再导出,姿势可以反复微调到满意为止。

另一类是国内平台把 ControlNet 直接集成进产品,支持上传标准骨架图、在线编辑关节点。对非技术背景的同学来说,这是"够用且省事"的路径:能力一样,代价是可控性略低、参数被平台藏起来了。至于平台上的"动作参考""动作模仿"等功能,它们的完整原理会在 6.6 节讲——那已经不只是"一张图的姿势",而是"一整段动作的时间序列"。

最后补一句边界,它能帮你少走弯路:姿态条件管的只是"身体怎么摆",不管"长什么样、穿什么、在哪里、什么风格、什么情绪"。它不控制五官长相、不控制服装材质、不控制背景与光线、不控制画面风格——这些都归提示词、参考图(第 2 章讲的角色一致性工具)与随机种子管。反过来,它也不能替你修正解剖错误:如果骨架图本身就是错的(比如手部关键点粘连),生成结果会忠实地把错误"画"出来。骨架图是"逐字的稿子",模型是"照稿誊写的人"——稿子上写错了字,誊得多漂亮也还是错字。

🩺 案例 6-A捣衣仕女:从 9 秒演示到一张定妆图

背景:春江小组要把"捣衣"这个动作放进短片的一个关键镜头。小月想要一张"月色江边、仕女举杵捣衣"的画面,前后试了三轮提示词,人物的姿势每次都不同:有的像在投掷,有的像在打伞。

做法:小舟用手机拍了自己做捣衣动作的照片(单人全身、侧光、肢体分离),用姿态估计提取关键点,导出黑底彩色火柴人骨架图;把骨架图作为姿态条件送进生成,提示词只负责"汉服、月色、江边、青蓝调、水墨动画风格"这类与姿势无关的部分;控制权重从 1.0 起做对照,最后落在 1.3 附近;尺寸统一为 16:9 的输出比例,骨架图画布按同比例制作。

结果:第四轮生成时,人物的手臂角度、躯干倾斜与真人几乎一致,杵的高度与"落下"的动势也对得上。小月在这个基础上做局部重绘,把手部与袖口又修了一轮。

复盘:①把"姿势"和"内容"彻底分开是这次成功的关键——姿势交给骨架图,内容交给提示词,各司其职;②第一轮的失败并不是提示词写错了,而是要求模型用文字完成它不擅长的事;③真人演示比"摆人偶"更自然,尤其是手腕与肩部的细微角度。

6.5重定向:把动作交给另一个身体

图像路线的终点是一张张静止的画面。而一旦你要让角色连续地演一段戏,就必须把动作交给三维角色——这时你面对的是本章最核心、也最容易被低估的一步:动作重定向(motion retargeting)。第 5 章 §5.7 已经给过定义与原理(四类前置条件、"旋转可搬、位置要换算"的量纲直觉):把动画从一个角色/骨架迁移到另一个。本节不重复那部分,只做一件事——把它拆成可以逐关验收的三道关。这里我们要把它拆开,看清它到底难在哪——因为迁移失败的绝大多数原因,都能归结为下面这三道关。先从一道"看不见的关"说起:骨架之间到底是怎么对上号的?

第一关 · 骨架映射:先给关节起对名字

迁移动作的第一步不是数学,而是命名。源骨架(你提取出来的真人姿态)和目标骨架(第 5 章的角色)各自有一套关节名称,必须建立一张对应表,才能知道"源的左肘"该驱动"目标的哪一节骨头"。这张表如果没有,迁移就无从谈起。

这也解释了工程界一个看起来不起眼、实际价值巨大的事实:重定向的质量取决于源骨架与目标骨架的命名规范与比例相似度。当一个平台的骨骼采用广泛兼容的命名(例如与主流动捕库一致的命名规范),跨工具重定向就变成了一种"通用插头"——你可以把从 A 工具绑定的角色,拿到 B 工具里播 C 工具的动作库。前面第 5 章介绍过的若干自动绑定工具都特意采用了这种兼容命名,原因就在这里。

源骨架(提取的真人) 缺脊柱 17 点 · 无手指 · 体型较矮 映射表 源左肩 → 目标左肩 源左肘 → 目标左肘 源左髋 → 目标髋根 (命名规范决定 能不能自动对上) 骨长按比例缩放 身高、臂长、腿长 都不同 目标骨架(诗人角色) 含脊柱 · 含手指 · 身高更高 三道关:① 骨架映射(名字对上)→ ② 比例适配(长度对上)→ ③ 足部锁定(脚别再滑)。 任何一道关没过,成品就会出现 6.7 节要讲的滑步、穿模与比例失真。
图 6-10 重定向的三道关。左边缺一根脊柱、右边多一根脊柱——多出来的自由度不会自动"知道"该怎么动,必须由算法或人工补上。"映射表"看起来枯燥,却是整条链路上最值钱的一张纸。

第二关 · 比例适配:一米六的动作,一米八的身体

假设映射表建好了,新的问题立刻出现:源和目标的身材不一样。真人 1.6 米,角色 1.8 米;真人的腿占身高比例更小,角色的手臂更长。如果把关节旋转角度原样复制过去,会得到什么?——动作的"形"对了,但"势"错了:挥袖的幅度显得过大、迈步的步幅显得夸张,看起来像是动作"被放大"了。

比例适配要做的,是把动作从"绝对位移"翻译成"相对比例"。核心思路是归一化:先用源骨架的尺度把动作标准化(比如把"手腕移动了 0.3 米"换算成"手腕移动了 0.2 个臂长"),再用目标骨架的尺度还原("0.2 个臂长"× 目标自己的臂长)。这样,同一个动作在矮个子与高个子身上做出来,"看起来的幅度"是一致的。

但归一化会带来一个副作用:脚的位置会变。手臂短一点长一点,观众未必看得出;但如果脚的位置被改了,观众会立刻看到"这个人在冰面上滑"。于是就有了第三关。

把这件事说白了:重定向传输的不是"关节角度",而是"动作的意图"——"手臂抬起到与肩同高"是意图,"肘关节旋转 47 度"只是实现方式。同一句话由不同身材的人来执行,关节角度本就应该不同。反过来,这也是判断重定向好坏的一条经验标准:看结果像不像"同一个人在用另一种身材做同一件事",而不是看骨骼参数是否逐一对齐。工程实现上,常用做法是先做一次全身尺度的对齐(让两副骨架"身高一致"再搬运),再逐骨骼修正;对差异特别大的目标(比如人迁移到夸张的卡通体型),比例相似度的下降会让"形似"越来越难保住,此时宁可牺牲关节角度的精确,也要保住重心高度、步幅节奏这类"一看就知道像不像"的特征。

第三关 · 足部锁定:不许滑

足部锁定(foot lock / foot planting)指的是:当一只脚接触地面并且应该"踩住"时,强制它在世界坐标里保持不动,让身体从它上面"走"过去。它解决的是迁移里最刺眼的瑕疵——滑步(foot skating)。滑步的观感非常糟糕:角色像是在冰面上被拖着走,或者像一段"没配好音"的舞蹈。

这里有一个可以推广到视频生成的判断标准:脚该不该固定,取决于动作的语义。站立、踏步、踢腿、接触地面时,应当开启足部锁定;而跳跃、滑行、飞行这类"脚本来就该自由移动"的动作,则要关闭它。也就是说,足部锁定不是"永远更真实"的开关,而是一个需要按动作类型判断的语义开关——把它当成万能的修复手段,反而会把跳跃变成"粘在地上"。

A 组 · 未做足部锁定 支撑脚随身体一路漂移 → 滑步 B 组 · 开启足部锁定 同一位置,踩住不动 身体从固定的脚上方走过去 → 不打滑 语义开关:站立 / 踏步 / 踢腿 / 触地——开启;跳跃 / 滑行 / 飞行——关闭。 关错了的表现:跳跃动作被"粘"在地面上,或者走路时脚底像抹了油。
图 6-11 足部锁定的原理与边界。两组画面的身体位移完全相同,差别只在支撑脚是否被"踩住"。右下角那两行是本章最实用的一条经验——没有万能的开关,只有按语义做出的判断。

导出与落地:回到第 4 章的那张检查清单

重定向做完,还没结束。把带动画的三维角色送进引擎或交给下一环节之前,还有几个"跨章衔接"的问题要处理——它们全部来自第 4 章的导出检查清单,这里只做提醒,细节请回看那一章:

不想自己拍?还有三条"现成动作"的路

自己拍动作是本章的主线,但工程上有更省事的替代路径,值得知道它们各自的位置:

表 6-11 三条"现成动作"的来源路径
路径怎么用适合什么要注意什么
公开动捕数据集下载公开的动作捕捉数据(含走路、体育、日常活动等大类),重定向到自己的角色需要大量"通用日常动作"的场合原始数据常无引擎骨骼绑定、无循环裁剪、无脚部固定清理,需要自己做转换与重定向;部分资源的手指数据实际未采集;使用须遵守其许可与致谢要求
平台动作库从动捕动作库中挑选片段,直接用于原型制作快速验证、占位、课堂练习片段通常已预解算、循环就绪、引擎兼容;但仍需重定向到你的角色,且覆盖面有限、需细读商业许可条款
文生动作用文字描述生成三维人体动作(例如"挥手、转身、缓慢起舞")没有合适素材、需要快速构想动作时第 5 章介绍过的文生动作模型对非人形角色、情绪与外观属性、多人动作、原地循环等有明确不支持项;生成的骨架通常也需要重定向到自己角色

三者的共同点很值得记住:无论动作从哪来,最后都要经过"重定向到你的角色"这一步。这也就意味着,本章讲的三道关——映射、比例、足锁——是绕不过去的基本功。别人替你做好了动作,但没人能替你把它装到你的角色身上。

🎯 要点 · 6.4–6.5 节三句话

① 姿态条件生成的本质是分工:文字管"画什么",骨架管"怎么摆";冲突时看控制权重。
② 重定向三道关:骨架映射(名字)、比例适配(尺寸)、足部锁定(语义)——顺序不能乱。
③ 动作可以从公开数据集、动作库或文生动作三种途径获得,但"装到自己的角色上"永远是你自己的活。

6.6"参考动作驱动角色"的现状:一条视频,一次模仿

到目前为止,我们做的都是"一帧一帧"的事:一帧骨架 → 一张图;一串骨架 → 一段角色动画。但如果把这件事整体交给一个模型呢?给它一段参考动作视频和一张角色图,它直接吐出一段"角色在做这个动作"的视频——这就是"参考动作驱动角色"这条路线,也是过去两三年视频生成领域最热闹的方向之一。学这一节的目的不是让你记住哪个模型更强,而是学会判断一条技术路线"现在能不能用、能不能商用、适不适合你"。

源流:AnimateAnyone 定下的三段式

这条路线有一个被反复引用的技术源头。AnimateAnyone(2023 年 11 月公开论文)确立了后来被大量实现沿用的设计:用一个"参考网络"注入外观(保证角色还是那个角色)、用一个"姿态引导器"把动作条件化(保证动作还是那个动作)、再加一层时序模块(保证帧与帧之间不闪烁、不漂移)。这三件套解决的是同一件事的三个侧面:外观、动作、时间一致性。

但这里有一个非常现实、也非常值得作为"媒介素养"案例来讲的事实:AnimateAnyone 的代码和训练权重均未公开。它的代码仓库虽然有可观的关注度,但基本只有说明文档、许可证和演示,没有可运行的东西。后续还有 Animate Anyone 2,同样只有论文与演示。"论文里看到的能力"与"你今天能下载到的东西"之间存在一条鸿沟——这条鸿沟在本课程里必须被明确指出来。这也是本书反复强调"以官方页面为准"的原因。

开源侧:好看的路线,与难缠的许可证

开源生态里最接近"一张图 + 一段姿态序列 → 角色动画视频"的代表是 UniAnimate(由高校与产业团队合作提出)。它的输入很直白:一张参考人物图像 + 一段目标姿态序列,输出跳舞/角色动画视频。技术上有两点值得知道:它把参考图像、姿态引导与噪声视频映射到同一个特征空间,不再依赖额外的参考网络;并且支持首帧条件输入,可以迭代生成长度可观的视频(论文口径为最长约一分钟)。它还探索了用更省算力的时序建模方式来替代计算量大的时序 Transformer。

但把话说全:UniAnimate 的权重虽然公开,许可证为非商用。它的显存需求以"32 帧 768×512"为例约 12GB,整体约 12–21GB;社区对它的支持属于非官方性质。还有一个基于更强视频基座、用轻量微调方式得到的版本,分辨率更高但显存需求也水涨船高,许可证不明确,商用需自行确认。更值得注意的是,有对比研究指出:这个版本能很好地保留角色外观,但动作上可能明显偏离目标动作——外观像、动作不像,是这条路线很典型的一种失败。

那么开源侧有没有"真能商用"的选择?有:一篇 2026 年的比较文章给出的结论是,开源方案中实际可商用的是 Wan 2.2 Animate(Apache-2.0 许可);MimicMotion 质量较好;UniAnimate 省显存但非商用。请注意这类比较文章的时效性——许可证是会变的,三个月以后你读到的结论可能就不同了。

网页侧:真正能"今天就试"的入口

对通识课的同学来说,最有价值的不是论文,而是"现在打开浏览器就能用"的路径。在检索范围内,国内网页端明确对应"上传参考动作视频驱动角色"能力的平台是可灵 Kling 的 Motion Control,它提供了两代主要版本:

计费按秒计算(以平台当前定价为准,两代产品分专业版与标准版,价格不同),这意味着一件事:时长就是成本。这也解释了为什么"参考视频控制在 3–30 秒、动作不过快"既是技术要求,也是经济要求。

顺带建立一种习惯:读这类工具资料时,先看日期、再看结论。以这条产品线为例,从最早上线到本章编写时,它大致经历了"初版 → 中版本迭代并强化一致性 → 引入原生音频 → 推出旗舰版本、支持多镜头与 4K"这样一条快速演进的轨迹——平均每隔几个月就有一轮功能与定价的更新。一个功能昨天没有、今天上线,或者昨天免费、今天收费,都是常态。所以本书给的是"检索与判断的方法",而不是"功能清单":任何功能细节,请以你使用时官方页面的最新说明为准;写进报告时,注明查证日期。

另一个必须诚实交代的点:有些平台功能在本书编写时无法核实。例如有同学会问"某国内视频平台有没有'动作参考'功能"——在检索范围内我们没有获得该功能存在的直接证据。可以证实的是,该平台在 2026 年 8 月上线了三维软件的插件,并通过其新一代视频模型打通三维资产流程,其中包含"三维白模预览 / 白模参考"能力(先定角色位置、相机路径、空间尺度与动作节奏,再由模型补材质、灯光与环境)。本书宁可说"截至编写时未获证实",也不替平台编一个功能——这也是你写技术说明时应该有的态度。

由此可以总结出一套"面对陌生平台时的试跑法",四步即可判断一个动作迁移功能值不值得用:第一步,看输入约束——它接受什么(参考视频?动作库?还是只有骨架图),时长限制是多少,是否支持"角色图与视频人物比例匹配"的提示;第二步,看输出与参数——能否设置朝向匹配方式、是否有足部锁定等地板接触选项、生成时长是否可预期;第三步,跑一个 5 秒的测试用例——就用实践一拍的素材,看结果里"手指是否变形、脚下是否打滑、比例是否失真"这三项,十分钟就能得出体感结论;第四步,查许可与计费——生成内容能否商用、按什么计费、是否需要标注。四步走完,你对它的判断会比读十篇测评更靠得住。

路线一 · 网页平台 上传动作视频 + 角色图像 → 直接出角色视频 优点:门槛最低 代价:参数不可控、 按秒计费、条款受限 适合:课堂演示 与快速验证 路线二 · 开源模型 参考图 + 姿态序列 → 角色动画视频 模型权重可下载 优点:可本地、可改造 代价:显存要求高、 许可证常为非商用 适合:研究者与 有条件的小组 路线三 · 自己搭链路 提取姿态 → 骨架图 / 姿态序列 → 条件生成 或重定向到三维角色 优点:每一步都可控、 可解释、可写进报告 代价:步骤多、要动手 适合:本课程的 主线与期末作品 选择顺序的建议:先用路线一做一次"能不能成"的验证,再用路线三做一次"能不能更好"的深挖; 路线二留给有兴趣继续深入的同学——而无论走哪条路,许可证与授权都是第一步要看清的东西。
图 6-12 三条路线的定位。本章的主线走第三条:把过程拆开、每一步都留下记录——这既是为了可控,也是为了让你的期末"技术说明"有东西可写。第一、二条路线则各自对应"快"与"深"。

整体性失败:两个输入源的冲突

这条路线最常见的"整体性失败",不是某个关节画错了,而是两个输入源互相冲突:角色静态图负责外观,参考视频负责动作,当两者的差异过大时,没有任何开关能完全修复。一个胖角色去做芭蕾舞者的动作、一个穿长袍的角色去做需要大幅开腿的动作,都会撞上这堵墙。

实践中可以把这类失败拆成五个常见原因,每一个都有对应的排查动作:

  1. 参考视频时长不当。太短(短于约 3 秒)模型缺乏足够数据锁定动作模式;太长(超过约 30 秒)容易丢失主体一致性。做法:把参考切成 3–30 秒的完整动作单元。
  2. 模型渲染能力超限。一次生成十秒以上的长镜头容易丢细节、崩动作。做法:分镜生成,后期拼接。
  3. 模式选择错误。部分平台必须使用高品质模式,标准模式无法调用运动学约束模块;不加"固定机位"时,运镜会放大失真甚至导致肢体崩解。做法:读清模式说明,写明机位。
  4. 中途换模型。不同模型的潜空间偏移、时间建模逻辑与运动先验都不同,换来换去会出现动作断裂、角色形变、场景漂移。做法:一个镜头内不换模型;跨模型沿用同一段参考视频做对照。
  5. 把一次生成当成品。有记录的实践显示,平均每个可用镜头需要生成约 3 次,仅约 25% 的生成片段进入最终剪辑。做法:把"生成次数"写进项目计划,而不是当作失败。
📌 路线图 · 这一节该怎么用

你不需要记住任何版本号,需要带走的是四个问题:①这件事我今天能跑起来吗?②许可证允许我商用/公开展示吗?③失败时我从哪里查?④它是"整体一段"还是"可拆解"的?第 ⑤个问题——这条路线的成果能不能进入第 8 章的智能体工作流——会在最后一章揭晓:能被脚本调用、能被明确参数化的步骤,才容易被自动化。

6.7失败案例诊所

这一节是本章的"急诊室"。前面所有的原理,在这里都要变成"看到症状能想到成因、想到成因能开出方子"。先讲三条贯穿性的根因,再看三个具体病例。

先记住三条通用根因

  1. 模型没有持久记忆、没有三维空间、没有物理模拟。AI 视频本质上是逐帧的统计采样,微小变化会累积成漂移、漂浮、克隆等伪影——脚脱离地面、角色瞬间位移,都源于此。
  2. 你没说的部分,模型会"脑补"。未说明的关节、未交代的空间关系,模型会用默认的骨骼模板或猜测补全——"无中生有"的关节与"多出来的一段手臂"就是这么来的。
  3. 参数与模式会制造伪影。运动幅度类参数调得过高会让关节高频抖动、或"强行插入"你没要求的动作;某些"自动增强"开关会造成关节二次拉伸。

在此基础上,再给你一条排查的顺序,能省下大量时间:先查输入,再查参数,最后才考虑换工具。先看参考视频与角色图是否满足规范(时长、单人、全身、尺度一致、无明显遮挡)——本章绝大多数案例的"真凶"都在这一步;其次是参数与模式(控制强度、运动幅度、是否高品质模式、是否开了不该开的自动增强);只有在输入与参数都无懈可击时,才值得怀疑工具本身能力不足。顺序颠倒的典型症状是:换了一圈工具,问题原样复现——因为它从一开始就跟着你。

🩺 失败诊所 F6-1被"想象"出来的手:遮挡误判导致的手部畸变

症状:生成结果里,人物举手挡在脸侧,但手指粘连成一团、多出一根手指,或者手腕的位置与手臂对不上——像是手腕"悬"在半空。参考骨架图上明明标着手的位置。

成因:三层原因叠在一起。① 提取层:参考视频里手部被衣袖或头部遮挡,姿态估计只能凭先验猜,属于"高置信度的错误";手部是 21 点的密集结构,一旦漏检,剩下的点会连成解剖上不可能的姿势。② 条件层:骨架图本身缺了手指细节(17 点体系根本没有手指),模型只好自己"脑补"手——于是捏造出不存在的指节。③ 生成层:手掌与手指在画面中占比小、结构密集,属于生成模型最不擅长的"局部解剖"区域。

处方:① 提取时改用手部表现更好的姿态工具(含手部 21 点的体系),必要时让手在拍摄时不被遮挡;② 骨架图若需手部控制,采用支持手部关键点的预处理模式;③ 负向提示词抑制手部相关错误(deformed hands、extra fingers、bad anatomy 等);④ 局部畸形用只勾选手部区域的局部重绘修复——只修手,不要选全身,否则会引起整体风格偏移;⑤ 若预算允许,把手的设计"做减法":让角色袖子遮住手,是古装题材里最经济也最合理的规避方式。

🩺 失败诊所 F6-2冰面上的舞者:迁移后的滑步

症状:角色在动作迁移后脚下"打滑"——支撑脚明明应该踩住地面,却在画面里缓缓位移;或者走路时脚掌像抹了油,一步三滑。动作本身看起来是对的,但"站不住"。

成因:① 未做足部锁定:重定向只搬运关节旋转,脚的世界坐标随之漂移;② 参考片段本身不干净:镜头抖动会被误读为角色运动,模型还会自行填补缺口;③ 模型没有物理模拟:脚与地面的接触关系不是"算"出来的,而是"画"出来的,自然无法保证踩住;④ 比例适配的副作用:腿长改变后脚的位置被顺带改了,而没有任何机制把它拉回来。

处方:① 按动作语义开启足部锁定——站立、踏步、踢腿、接触地面时开启;跳跃、滑行、飞行时关闭;② 参考视频必须相机稳定、尺寸一致,必要时用三脚架与固定机位;③ 拍摄前给支撑脚留出"踩稳"的时间(这些帧是后期锁定的锚点);④ 拍摄时避免让脚被裙子、长袍或道具完全遮住——看不见的接触点无法锁定;⑤ 如果滑步出现在三维路线,检查重定向后是否做了接触约束与根节点修正。

🩺 失败诊所 F6-3被撑破的袖子:比例失真与穿模

症状:迁移到角色身上后,动作幅度显得夸张或别扭——挥袖的弧线过大、迈步像跨栏;严重时手臂直接穿透身体的袍子、道具穿进身体。人物的"比例"看起来与角色设定不符。

成因:① 首帧角色图比例失衡会让模型脑补出错误的解剖结构;② 参考视频与角色图的尺度不一致,模型只能强行拉伸;③ 未做骨骼姿态约束、缺乏物理碰撞逻辑,模型不懂人体力学;④ 大角度腾空、高速旋转、复杂肢体缠绕这类极端动作超出渲染能力,模型会用默认骨骼模板补全;⑤ 并发动作(比如"一边走一边大幅挥手")会让约束互相打架。

处方:① 角色图要全身完整、含双手双脚、服装结构清晰;② 参考视频要单人全身、相机稳定、尺度一致、肢体分离清晰;③ 明确角色、道具、场景的空间边界,开启碰撞相关选项;④ 不要设计并发动作,一个镜头只做一件事;⑤ 极端动作拆成两段,或用机位与景别规避(衣袖遮住手、侧面机位、半身景别);⑥ 运动幅度相关参数宁小勿大——幅度参数过高会直接引发手指抽搐与布料穿模。

F6-2 滑步 症状:支撑脚缓缓位移,像在冰面 成因:未做足部锁定 / 片段不干净    / 模型无物理模拟 处方:按语义开启足部锁定;    固定机位、脚别被遮住 F6-3 穿模 症状:手臂穿进袍子、道具穿进身体 成因:缺碰撞逻辑 / 极端动作越界    / 并发动作互相打架 处方:一个镜头只做一件事;    开碰撞、降幅度、拆动作 F6-1 手指畸变 症状:手指粘连、多指、腕部悬空 成因:遮挡导致提取错误 / 骨架图    无手指细节 / 模型脑补 处方:改手部更准的提取器、只修手的    局部重绘、或让袖子挡住手 镜面翻转与比例失真 症状:左右互换、动作幅度被放大 成因:遮挡 + 两侧姿势相似(镜像的    触发条件);尺度不一致 处方:避免对称姿势配遮挡;用侧光    与取景;统一两侧尺寸 四个症状的共同点:都可以通过"改输入"显著缓解——这也是本章反复出现的那句话
图 6-13 四类典型失败模式速查。把它们贴在工作台前,比记参数更管用。"改输入优先于调参数"是这四个病例共同指向的结论。
表 6-12 动作迁移失败模式总表(速查版)
症状直接成因一句话处方
滑步未做足部锁定;片段杂乱;镜头抖动被误读为运动;模型无物理模拟按语义开足部锁定;相机稳定、尺寸一致
穿模无骨骼姿态约束与碰撞逻辑;极端动作超限;并发动作开碰撞;一个镜头只做一件事;避开极端动作
手指畸变手部遮挡与比例失衡引发模型捏造指节换更准的提取器;只修手的局部重绘;负向提示词
镜面翻转单侧被遮挡 + 两侧姿势相似,是主要触发条件避免"对称姿势 + 遮挡"的输入组合;侧光与取景有助缓解
比例失真首帧比例失衡;参考与角色尺度不一致角色图全身完整;参考单人全身、尺度一致
抖动逐帧采样缺时序一致性;滤波不当时序滤波(EMA / 卡尔曼 / Butterworth);降低运动幅度参数
整体模仿失败外观与动作两个输入源冲突;时长不当;模式错;中途换模型两个输入尽量同质;参考 3–30 秒;用高品质模式;一个镜头不换模型
长袖舞动作参考:一臂高举、一臂横展
图 6-14 要被「拆成坐标」的那个动作。本章要做的,就是把这样一个动作变成一串可以计算的关键点:先拍摄(或取用)这段动作,再用姿态估计得出骨架序列,最后迁移到第 5 章的角色身上。先看清「人做了什么」,再谈「机器读到了什么」。AI 生成

6.8案例教学:从舞蹈教室到屏幕

原理与失败都讲完了,现在看三个真实的"怎么把它做成"的过程。第一个是本书的主线案例,另两个来自舞蹈教学与运动技术分析这两类把姿态估计用得很实的场景。

🩺 案例 6-B捣衣与拂袖:春江小组的动作迁移全流程

背景:短片《春江花月夜》需要三个动作段落:开头"江畔谁人初见月"里的拂袖回望、中段"玉户帘中卷不去"的捣衣、结尾"落月摇情满江树"的抬手远望。小舟决定真人拍摄 + 姿态迁移,理由是"三个人自己演的比文生动作更有味道,也更容易解释技术过程"。

做法:分四步走。第一步,定拍摄规范——教室白墙前、单人全身入框、三脚架固定机位、侧上方打一盏灯做出轮廓、穿有清晰肩线的练功服(避免宽大袖子遮住手肘);每次拍摄前先做一个"举手、张手、踩实"的标定动作,用于检查手部与脚部能否被稳定检出。第二步,拍三段各 8–15 秒(落在参考时长区间内),每段做 3 次取最好的一条;拍完立刻回放骨架叠加图,发现拂袖段右手被袖子遮住,当场重拍。第三步,双路线并行——图像侧用骨架图做姿态条件生成(用于短片的定格镜头),三维侧把姿态重定向到第 5 章的诗人角色(用于需要镜头运动的段落)。第四步,质检与记录——用表 6-8 的清单过一遍,把平滑前后的归一化抖动都记进实验记录。

结果:三段动作总共生成约 20 个候选片段,最终采用 5 个;三维侧的诗人角色在"捣衣"段出现了轻微滑步,开启足部锁定后解决;图像侧的定妆图在控制权重 1.3 时姿势最贴合,1.0 时手部开始跑偏。

复盘:①拍摄规范花的十分钟,省掉了后面两小时的返工——遮挡那一次如果没在教室发现,会在生成阶段以"手指畸变"的形式暴露,排查成本高出数倍;②"三维 + 图像"双路线共用同一份姿态数据,是有意为之:这样两条产线的一致性天然更好,也为第 8 章的合成留了接口;③把"生成次数"写进计划后,小组不再把 3 次不出片当成失败,心态与进度都稳了下来。

1 定规范 白墙 · 三脚架 侧光 · 紧袖口 标定动作自检 2 拍摄三段 各 8–15 秒 每段取 3 条 拂袖段重拍 1 次 3 提取与平滑 提取关键点 量抖动 · 做滤波 导出骨架图与数据 4 两条去向 图像:姿态条件 三维:重定向 + 足锁 互相对照 5 质检归档 清单过一遍 20 个候选 → 用 5 个 写进技术说明 第 8 章的伏笔:这五条"姿态数据 + 参数 + 判断依据"的记录,会成为智能体工作流里的知识库素材 ——能被写下来、复述出来的流程,才有可能被自动化
图 6-15 主线案例的动作迁移时间线。五个步骤里,只有第三步是"技术",其余四步都是"规范与判断"。这条经验对整门课都成立。
🩺 案例 6-C把一支非遗舞蹈"拆"给所有人看

背景:某高校舞蹈社想把一支地方非遗舞蹈做成线上教学与传播素材。传统做法的瓶颈是:请传承人录一遍完整舞蹈容易,但"分解教学"极难——讲到"第二拍手腕要往里收",光靠语言和示范,学员还是看不明白。

做法:社团做了三层工作。① 录制规范化:请传承人在固定机位、均匀光照下分段录制,每个动作单元单独录一条,并请她亲口讲解动作要领(这些讲解成为教学文案的原始素材);② 姿态提取与可视化:用姿态估计提取关键点,把"手腕往内收"这件事翻译成"手腕与手肘夹角变小、前臂相对躯干旋转"的量化描述,做成关键帧对比图;③ 动作迁移做"风格对照":把提取出的动作迁移到卡通形象上,做了一版"动作示范动画",让年轻观众先被形象吸引、再看真人讲解。

结果:分解教学的可理解度明显提升——学员反馈"看关键帧对比图,比看十遍视频有用"。迁移到卡通形象上的示范动画被用作预告片,也带来了更多报名。

复盘:①姿态数据在这里的价值不是"替换真人",而是"解释真人"——它把难以言说的动作要领变成了可测量的量;②做迁移前,社团先取得了传承人的书面授权,并明确约定"形象仅用于本教学项目、标注 AI 生成",这也让传承人更愿意配合(相关做法见 6.11 节);③真人影像始终是主教材,AI 只是辅助理解——这个主次关系不能倒过来。

🩺 案例 6-D跑姿诊断:一个人也能做的"动作实验室"

背景:一位同学在校运会前想改进自己的短跑起跑姿势,但学校没有动作分析实验室,教练也只能凭经验看。

做法:他用手机在同一条跑道、同一个机位(侧向 90 度、三脚架固定)拍下自己的起跑动作,用姿态提取工具跑一遍,然后把关键点数据画成曲线:膝角随时间的变化、重心相对支撑点的高度、两手摆动的对称性。同一段动作拍三次,比较三次的关键点曲线差异有多大——这一步很关键,它把"我今天发挥得好不好"变成了"我的动作有多稳定"。

结果:他把视频与曲线一起交给教练,教练据此指出"起跑前两步躯干抬得过快"。改进后再拍一次,曲线上的躯干角度变化明显。整个过程没有用到任何专业设备。

复盘:①姿态估计最被低估的用途,是"把主观印象变成可比较的数字";②固定机位在这里比什么都重要——机位一变,两次拍摄的数据就没法比了,这与本章反复强调的"尺度一致"是同一条原则;③这类"运动技术诊断"是姿态估计在体育与康复领域的真实应用方向,也是本课程知识的外溢价值之一。

6.9关键概念表

这一章的名词密度是全书最高的几章之一。下表把本章出现过的核心术语集中收拢,配上英文与"一句话解释"——建议在动手实践时把它当查词表用:看不懂某个步骤在做什么时,先回来查这个词到底解决什么问题。

表 6-13 本章关键概念速查表
术语英文一句话解释
姿态估计pose estimation从图像或视频中定位人体的关键点(关节、五官),把"动作"变成一串坐标。
关键点keypoint / landmark人体上被算法定位的点位,如鼻、肩、肘、腕、膝、踝;常用体系有 17 点、33 点、133 点等。
骨架图skeleton / stick figure把关键点用线段连起来的图像,是"姿态条件"最常用的输入形式。
置信度confidence / visibility / score模型对"这个点在哪"的把握程度;不同架构下含义不同(热图峰值、分类概率等),用法主要是过滤与加权。
热图heatmap每个关键点输出的一张"概率分布图",峰值位置即点位,峰值高度即置信度的来源之一。
自顶向下 / 自底向上top-down / bottom-up先检测人再定位点(准、慢)/先找所有点再组人(快、挤);两阶段混合是目前主流。
遮挡occlusion身体部位被自己、他人或物体挡住;是姿态估计最核心的困难,也是"高置信度错误"的主要来源。
抖动jitter相邻帧间关键点位置的随机跳动;成因包括噪声、遮挡、模型敏感性与运动过快。
时序平滑temporal smoothing利用相邻帧信息抑制抖动;常用移动平均、指数移动平均、巴特沃斯滤波、卡尔曼滤波。
归一化抖动指标normalized jitter metric相邻帧关键点位移中位数 ÷ 躯干长度;只用双方都过阈值且相邻的帧对计算,用于比较平滑前后。
骨架图结构skeleton graph把关节当节点、骨骼当边的图结构;时序上堆叠后成为时空图,可输入图卷积网络。
姿态条件pose conditioning把骨架图或姿态数据作为生成模型的约束条件,锁定关节位置与肢体朝向。
人体参数化模型SMPL / SMPL-X用"姿势参数 + 体型参数"描述人体的统计模型;把关键点"装"进一个完整的人体。SMPL-X 还含面部与手。
单目三维歧义monocular depth ambiguity单张图像无法唯一确定深度——同样的二维投影对应无数种三维姿势。
重定向motion retargeting把一段动作从源骨架搬到目标骨架;三道关:骨架映射、比例适配、足部锁定。
足部锁定foot lock把支撑脚钉在地面上,消除滑步;按动作语义开关(接触地面开、腾空关)。
比例适配proportion adaptation源角色与目标角色骨骼长度不同,需把关节旋转"翻译"到目标骨架,并处理由此产生的偏移。
滑步 / 穿模 / 镜像翻转foot skating / clipping / mirror flip三类典型失败:脚下打滑、肢体穿透、左右互换。处方都是"改输入优先于调参数"。
一致性consistency角色跨帧、跨镜头保持"还是同一个人"的能力;本课程中由角色设定卡、参考图与姿态数据共同保障。

6.10动手实践:从一段自拍到一个角色动作

本章的实践是一条完整链路:拍摄与提取 → 驱动图像角色 → 驱动三维角色 → 对照实验 → 故障排查。它同时也是期末作品《春江花月夜》动作段落的产线。先看全景,再逐项动手。

动笔之前提两条组织建议。其一,按角色分工而不是按步骤轮流:三人小组可以设"拍摄与素材手"(负责机位、服装、标定自检)、"提取与质检手"(负责置信度过滤、抖动测量、曲线检查)、"生成与记录手"(负责参数调整、结果归档、技术说明素材整理);每人主负责一环,但要参与全部环节的交叉验收——只做自己那一环的人,永远发现不了"上游的错误在下游长什么样"。其二,给"重拍"留出预算:本章案例里平均每个可用片段的背后是约三次生成尝试,动作拍摄同样适用"一条不行再拍一条"的预期,提前和出镜的同学约好额外的时间,比现场硬凑要体面得多。

① 拍摄与提取 固定机位 · 单人全身 · 8–15 秒 ② 检查与平滑 看置信度 · 量抖动 · 选滤波器 ③ 图像路线 骨架图 + 姿态条件 → 定妆图 ④ 三维路线 重定向 · 比例适配 · 足部锁定 ⑤ 对照实验 原始 vs 平滑,记录稳定性 ⑥ 排查与归档 症状 → 成因 → 处方 → 记录 全程保留三样东西:原始视频、关键点数据、每一次判断的理由 ——它们是"技术说明"的素材,也是第 8 章智能体工作流能被训练出来的前提
图 6-16 实践链路全景。六步里有两步(②⑤)是本章独有的"质检基因":不做质检的动作迁移,等于闭着眼睛生成。

🛠 实践一:拍一段能被"读懂"的动作(40 分钟 · 课后完成)

基础

找一面白墙或干净背景,用手机三脚架(或把手机架在书堆上)固定机位,横向拍摄自己完成一个完整动作单元——建议用"拂袖回望"或"伸臂转身",全程 8–15 秒,动作从中速开始。

拍摄前自查(对照表 6-14):① 全身入框(头顶与脚下各留一掌空隙);② 单人,画面里没有其他人;③ 光线均匀,身上没有大片阴影;④ 穿有清晰肩线、袖口不过肘的衣服;⑤ 镜头与腰同高、与身体垂直。

提取:把视频导入姿态提取工具(网页端演示工具即可,无需安装),导出关键点数据与叠加显示的视频。逐帧检查:手、脚、肘、膝是否稳定跟随;记录出现问题的帧号。

提交物:一段原始视频 + 一张姿态叠加截图 + 一份"问题帧清单"(哪几帧、哪个部位、现象一句话)。

表 6-14 拍摄与采集自查清单
项目合格标准不合格时会出现什么
取景单人全身入框,头顶与脚下各留一掌空隙脚部截断 → 无法足部锁定;头顶截断 → 头部关键点漂移
机位三脚架固定,镜头与腰同高、与身体垂直镜头晃动被误读为角色运动 → 滑步、漂浮
光线均匀光照,避免强侧光与明暗分界扫过身体特征一致性下降 → 关键点跳变
服装清晰肩线、袖口不过肘、衣摆不过膝宽大袖袍遮挡手肘 → 手部畸变;长衣摆遮挡接触点 → 无法锁定脚
动作节奏中速,动作之间有停顿与呼吸过快动作只抽到少数有效帧 → 输出短于输入、动作断裂
时长单个动作单元 3–30 秒,建议 8–15 秒过短缺数据锁定动作模式;过长丢主体一致性
标定动作开拍先做"举手、张手、踩实"各 2 秒无法快速判断手部与脚部能否被稳定检出
多人画面中只有一个人多人 ID 切换 → 关键点在两个人之间"跳"

🛠 实践二:让图像角色跟着动起来(50 分钟 · 课后完成)

基础

第一步,做骨架图。从实践一的结果里选一帧姿势最好的关键帧,导出为骨架图;按表 6-9 的三条规范检查:画布尺寸与目标出图尺寸一致(如 512×512)、纯黑背景白色骨线、没有多余装饰。若工具支持手部关键点,勾选"含手"选项。

第二步,姿态条件生成。把骨架图作为姿态条件输入(控制强度从 1.2 起步),角色图/提示词用你自己设定的角色——如果你还没定角色,用本书的诗人形象或任意一个与你期末作品一致的角色。

第三步,做三组对照。只改一个变量:控制强度依次取 1.0、1.3、1.5,其他参数不变。记录三组结果中"手部是否变形""姿势是否贴合骨架图"的差异。

提交物:三组对照图 + 一段 100 字以上的结论(你的角色适合的控制强度区间是多少,依据是什么)。

提示词姿态条件生成的提示词写法
主体明确角色:古装诗人、白色长袍、束发 动作写出动作短语:raise sleeve, turn head to look back 场景江畔、薄雾、月夜;与短片其他镜头一致 负向deformed hands, extra fingers, bad anatomy, blurry 关键姿态由骨架图锁定,提示词不要重复描述姿势细节——让条件去管姿势,让文字去管"这是什么、在哪里、什么风格"

🛠 实践三:把动作交给第 5 章的三维角色(60 分钟 · 课后完成)

进阶

准备:打开你在第 5 章完成绑定(骨骼与蒙皮)的诗人角色,以及实践一提取的动作数据(导出为 BVH 或 FBX 格式的动作文件)。

第一步,骨架映射。检查两套骨骼的对应关系:源(姿态数据)的髋、肩、肘、腕、膝、踝,能否一一映射到目标角色的对应骨骼。参考第 5 章的骨骼命名规范——命名对得上,映射就快;对不上时逐根手动画对应线。

第二步,比例适配。播放一次,重点看三处:手臂伸展时手是否戳进躯干、弯腰时头是否没入胸口、迈步时腿的弯折是否正常。发现明显别扭时,调整重定向的比例映射参数。

第三步,足部锁定。找出所有"应该踩地"的时间段(支撑脚),开启足部锁定;确认抬脚-落脚的瞬间没有打滑。如果你的动作含跳跃或滑行,请把那些时段排除在锁定之外。

提交物:一段 10 秒左右的三维角色动作预览(屏幕录制即可)+ 一段说明(你改了哪些参数、为什么)。

🛠 实践四:对照实验——原始关键点 vs 平滑后(60 分钟 · 课后完成)

进阶

目的:这是本章指定的对照实验。用同一段动作数据,验证"时序平滑"到底改变了什么——不是看谁更"好看",而是用一个可复现的数字说明差别。

做法:① 对实践一的关键点数据,先做置信度过滤(低于阈值 0.5 的点先标记为缺失);② 取一份不做任何平滑的数据作为对照组;③ 取一份用指数移动平均(EMA)或巴特沃斯滤波处理过的数据作为实验组(滤波器按表 6-6 选型);④ 对两组分别计算归一化抖动指标:相邻帧关键点位移的中位数 ÷ 躯干长度,且只用"两帧都过阈值、且帧号相邻"的帧对;⑤ 把两组的结果填进表 6-15。

观察三件事:① 平滑后抖动指标下降了多少?② 有没有"过度平滑"的代价——快速挥手、跺脚等瞬时动作变得绵软、幅度缩水?③ 把手部单独拎出来算:手部的抖动通常比躯干大得多,平滑对它的改善是否更明显?

提交物:填好的表 6-15 + 一条曲线或柱状对比图 + 一段结论:你这套参数用在你的拍摄素材上,是不是"更平滑 = 更好"?请给出证据。

表 6-15 对照实验记录表(原始关键点 vs 平滑后)
测量项对照组:未平滑实验组:平滑后变化
低置信度点比例   
缺失点帧比例   
整体归一化抖动(全部点)   
手腕等末梢点归一化抖动   
快速动作段幅度保留情况   
主观观感(三人独立打分)   
对照组:未平滑

输出保留了动作的全部细节与瞬时峰值,快速挥手时幅度真实。

代价:末梢点抖动明显,手腕与脚踝在每帧间小幅"颤动";迁移到角色上时,角色的手指与衣摆跟着颤。

适用:需要保留爆发力与写实感的短镜头,或平滑会导致动作绵软的场景。

实验组:EMA 平滑

抖动指标显著下降,末梢点明显稳定,动作整体更"顺"。

代价:引入可控延迟,快速动作峰值被削——挥手到位的瞬间幅度略减、回到中位的速度略慢。

适用:慢表演、舞蹈段落、需要"干净"输出的成片镜头。

🛠 实践五:故障排查演练(30 分钟 · 课堂讨论)

挑战

玩法:三人一组,每人从本章失败诊所中选一个症状(或由教师提供故障样本截图/视频),另外两人只看症状、不看答案,用表 6-16 的排查清单,从"症状"推到"成因"再开出"处方"。

规则:① 每次只允许改一个输入或一个参数;② 每改一项都要说出"我预期会发生什么变化";③ 结果与预期不符时,记录这条"反例"——反例比成功更值钱。

提交物:一张排查记录(症状 / 尝试 / 预期 / 实际 / 结论)。这一项也纳入期末技术说明的素材。

表 6-16 动作迁移排查清单(按症状)
看到什么先查什么(按顺序)最常见的真凶
脚在打滑足部锁定是否按语义开启 → 参考视频机位是否稳定 → 支撑脚是否被遮挡 → 比例适配参数未做足部锁定 / 机位晃动
肢体穿透身体是否开启碰撞 → 是否设计了并发动作 → 动作幅度参数 → 极端动作是否超限并发动作 / 幅度过高
手指粘连多指参考手部是否被遮挡 → 提取器是否含手部点 → 负向提示词 → 是否做了只修手的局部重绘手部遮挡引发的提取错误
左右互换是否单侧被遮挡 → 两侧姿势是否对称 → 是否误开了镜像选项遮挡 + 对称输入的组合
动作幅度失真控制强度 / 幅度参数 → 首帧角色图比例 → 参考与角色的尺度是否一致尺度不一致 / 幅度参数过高
动作整体不像参考时长是否在 3–30 秒 → 模式是否为高品质 → 是否中途换过模型 → 两个输入源是否冲突两输入源冲突 / 低质模式
动作忽快忽慢、断裂是否有丢帧 → 平滑是否过度 → 是否跨模型拼接丢帧未修复 / 过度平滑
💡 实践总提示 · 三句话

① 先把输入做干净,再开始调参数——拍摄规范省下的时间,会在生成阶段翻倍还给你;② 每次只改一个变量——这是把"试出来的"变成"说得清"的唯一方法;③ 把每一次判断的理由写下来——期末技术说明可以少些形容词,但不能少"我为什么这么选"。

6.11课程思政:身体影像的使用边界与动作文化

这一章有一个区别于全书其他章节的特殊性:我们处理的数据是"人"本身。前几章处理的是文字、图像、视频,这一章处理的是活生生的人体——他的动作、姿态、身体影像。这意味着两件事:第一,采集之前必须获得同意;第二,生成之后可能触犯的法律比别的章节更多、更新。这一节不打算给你一堆吓人的条文,而是建立一条从拍到发的思考路径。

闸门一 · 同意 拍之前问: "可以拍你、并把这段 动作用在作品里吗?" 闸门二 · 边界 问:用在哪儿、给谁看、 是否营利; 修改到什么程度? 闸门三 · 标识 发布时标明: AI 生成 / 合成; 不冒充真实记录 三道闸门与法律的关系(对应关系,不是全部依据) 同意 → 民法典第 1018、1019 条(肖像权);民法典第 994 条(逝者相关)    → 个人信息保护法第 28、29、30 条:生物识别信息属敏感个人信息,需单独同意 边界 → 深度合成管理规定第 14、15 条:人脸/声音编辑须提示取得单独同意、工具须安全评估 标识 → 深度合成管理规定第 16、17 条与《标识办法》:显式标识 + 隐式标识双轨 全流程 → 最高法意见:以"可识别性"为核心标准(相似度低不能抗辩)
图 6-17 身体影像使用的三道闸门。从拍到发,每一步都有对应的法律坐标。把它们背下来不难,难的是在"就拍一下应该没事吧"的瞬间想起它们。

一、愿意出镜 ≠ 愿意被"换身":知情同意要说清什么

一次规范的授权,至少要讲清四件事:拍什么(这段动作影像会被提取成姿态数据)、用在哪儿(课堂作业?发布到某个平台?参评比赛?)、改到什么程度(会被迁移到另一个角色形象上,可能出现在古装人物、卡通形象甚至非人类角色上)、给谁看(仅课堂、校内、公开网络)。只说一句"我拍你跳舞"是不够的——同意必须覆盖"将身体影像用于 AI 动作迁移"这件事本身。这不是过度谨慎:动作影像虽然是身体的外在表现,但当它足以指向某个人时,就已经进入了肖像权的保护范围。

为什么"足以指向某个人"这个标准这么重要?因为司法实践中反复确立的正是"可识别性"标准:判断是否侵犯肖像权,不看是否直接使用原图,而看能否通过生成的图像识别出特定自然人。北京市互联网法院审理的"AI 换脸"纠纷就是一例:一位古风汉服博主的视频被某 App 换脸模版使用,法院认定不构成"以营利为目的使用肖像"的抗辩不能成立、换脸后的形象仍具有公众可识别性,构成对肖像权的侵害。这个逻辑直接延伸到本章:把同学的动作数据迁移到一个酷似他本人的角色上,即使画面里没有他的原始影像,仍可能构成侵权。

还有一个容易被忽略的边界:逝者的身体影像。民法典第 994 条规定,如无特别规定,死者的姓名、肖像、名誉、荣誉、隐私、遗体等受到侵害的,其近亲属有权请求行为人承担民事责任。用 AI "复活"一位已故者的形象并让其做出他生前未做过的动作,正是典型的越界——近亲属可以主张民事责任。

二、从"换脸"到"换身":监管为什么专门盯着生物特征

你可能会问:既然肖像权已经管得住了,为什么还要专门出台深度合成与生成式 AI 的规定?因为这类技术发生的事,本质上是"伪造一个看起来真实的记录"。法规要处理的不只是"用了谁的脸",还有"公众会不会被误导、社会信任会不会被侵蚀"。几条关键规定,请先记住它们的功能:

  1. 谁采集谁负责。《个人信息保护法》把人脸、声纹等生物识别信息列为敏感个人信息,处理需要取得单独同意并履行告知义务(第 28、29、30 条);本章里"拍摄他人动作并提取姿态",如果数据能关联到具体个人(例如带人脸的原始视频),就属于这类处理。
  2. 工具本身要有防线。《互联网信息服务深度合成管理规定》要求:提供人脸、声音编辑功能的服务,应当提示使用者告知被编辑的个人并取得其单独同意(第 14 条);提供人脸、声音等人脸生成或编辑功能的模型、模板等工具,须进行安全评估(第 15 条)。这一条把责任从"用户"扩展到"平台"——这解释了为什么许多平台会弹窗、会要求你勾选"我已获得肖像权人授权"。
  3. 合成要能认出来。同一规定(第 16、17 条)与《人工智能生成合成内容标识办法》要求对合成内容做两类标识:隐式标识(写入文件元数据,不改变用户使用体验)与显式标识(在合理位置以文字提示呈现,用于可能引起公众混淆的合成声音、人脸生成或替换)。对应到本章的实践:你导出的角色动作视频,应在画面角落或标题中注明"含 AI 生成内容",且不要把生成工具写入的元数据清理掉。
  4. 底线条款。《生成式人工智能服务管理暂行办法》明确不得利用生成式 AI 侵害他人的肖像权、名誉权、荣誉权、隐私权——这是"红线"而不是"注意事项"。

三、2026 年最新进展:以"可识别性"为核心的最新规则

本章编写时,知识库里最重要的一条新动态是:2026 年 9 月 7 日,最高人民法院发布《关于依法审理涉人工智能纠纷案件的意见》(法发〔2026〕10 号)——这是最高法首部专门针对人工智能纠纷的司法文件,共五个部分二十四条,回应了"AI 换脸拟声""网络开盒""AI 幻觉""大数据杀熟"等社会关切。它没有推翻前面讲的法律,而是把"怎么用"讲得更明确了,其中至少有四处与本章直接相关:

  1. 人格权保护的三层结构。未经同意,用 AI 处理自然人的姓名、肖像等生成可识别的虚拟数字形象并使用、发布,构成侵害姓名权、肖像权;未经同意,以自然人声音为训练语料,模仿其音色、语调、发音风格生成可识别的合成声音,构成侵害声音权益;操控虚拟形象或合成声音实施不当行为、作虚假陈述,降低他人社会评价的,构成侵害名誉权。
  2. "AI 复活"划出明确边界。意见明确,未经授权生成逝者的虚拟数字形象,损害其姓名、肖像、名誉的,近亲属可以依据民法典第 994 条主张民事责任。
  3. 禁令可以"停服务"。意见规定人格权侵害禁令除要求行为人停止侵害外,还可以责令网络服务提供者、人工智能服务提供者采取必要措施——在符合比例原则的前提下,可以延伸到"停止提供服务"。对创作者的含义很直接:你上传的内容一旦侵权,处置速度会比过去更快。
  4. 标准是"可识别"而不是"完全一致"。这是最需要写进创作习惯的一条:判断侵权与否的核心标准是能否识别出特定自然人,而不是"是否一比一还原"。企业不能以"相似度低"作为抗辩。"我改了脸型""只用了 60% 相似度的形象"这类想法,在司法标准面前站不住。

意见同时规定了生成内容侵权的责任分配:引入了类似"通知—删除"的机制,用户恶意输入提示词导致侵权的,由用户承担责任;针对欺诈、侮辱、诽谤、侵犯公民个人信息、传播有害内容等行为,构成犯罪的依法追究刑事责任。

四、数字虚拟人:更近的一步监管

本章的主题词里天然包含"数字人"的影子。按编写时的公开信息,2026 年 4 月,国家网信部门就《数字虚拟人信息服务管理办法(征求意见稿)》公开征求意见(注:截至编写时仍为征求意见阶段,请以正式发布版本为准)。其要点与本课程直接相关:未经单独同意,不得生成可识别到特定自然人的数字虚拟人形象;不得利用虚拟人形象丑化自然人、或编造特定身份人员;提供数字虚拟人服务还需进行算法备案并定期开展算法安全评估。

同期还有一则行业自律信息值得记住:2026 年 4 月,中国广播电视社会组织联合会演员委员会发表声明,明确标注"非商用""个人二创""公益分享"等字样不构成免责事由——"我没赚钱"不能成为未经授权使用他人身体影像的理由。这条对创作心理的纠正很重要:合法性的门槛在于"有没有授权",而不是"有没有获利"。

五、动作也是文化:尊重不同民族的身体表达

本章的技术处理的是"动作",而动作从来不只是动作。一个民族的舞蹈步伐、一个地区的仪式身段、一段戏曲的水袖,都是数代人身体记忆的沉淀,有它的语法、语境与情感结构,而不是等待被提取的"免费素材库"。请把下面三句话当作创作准则:

回到本章的主线:春江小组拍的"捣衣"与"拂袖",取自古典诗词的意象。处理这类动作时,他们也做了同样的功课:查证"捣衣"是古代妇女在河边用木杵捶打衣料的劳作,动作沉稳、节奏反复,而不是"舞蹈化的道具表演";正因如此,成片里"捣衣"段落采用的是低机位、长焦的写实处理,而不是加特效。理解动作的生活语境,往往比技术参数更能决定一个镜头的成色。

🇨🇳 课程思政 · 三条可以立刻执行的习惯

① 授权优先:任何真人素材(同学、家人、路人、传承人)进入工作流之前,先取得书面或可回溯的同意,并写清楚"将用于 AI 姿态提取与角色迁移";② 标识优先:所有包含 AI 生成或合成内容的作业对外发布时,一律做显式标识并保留隐式标识;③ 克制优先:不用真人身体影像去生成可能损害他人人格尊严的内容;对他人的身体与文化表达,保持"先理解、再使用"的态度。技术会更新,这三条不会。

把这一章压缩成七句话

  1. 姿态估计是把动作变成坐标:它不"看懂"人,只在每一帧里定位关键点;17 点是通行标准,33 点多了旋转与可见性,133 点补上了手、脸与脚。
  2. 每个点都带着"把握程度":置信度的含义随架构而异(热图峰值、分类概率、可见性),用法却一致——过滤低置信点、加权三角化、用检出率与缺失率量化质量。
  3. 遮挡与抖动是两大天敌:遮挡会制造"高置信度的错误",抖动源于噪声、遮挡、快动作与光线变化;归一化抖动指标(位移中位数 ÷ 躯干长)让"有多抖"可测量、可比较。
  4. 滤波器都要付出代价:移动平均延迟大、指数移动平均更平滑、巴特沃斯通带平坦、卡尔曼可融合预测——"更平滑"不等于"更好",要看动作语义。
  5. 三维不是"再加一个坐标":单目深度歧义意味着一个投影对应无数姿势;SMPL 类模型用姿势与体型参数描述人体,帮我们把散点"装"进一个完整的人。
  6. 重定向过三关:骨架映射(名字对得上,迁移才快)、比例适配(不同的身长要重新翻译旋转)、足部锁定(接触地面开、腾空关)——滑步、穿模、比例失真都能在这三关里找到出处。
  7. 这是一条"数据流"而不是"魔法":拍摄规范、置信度过滤、时序平滑、姿态条件(ControlNet-OpenPose 及网页版"动作参考")、重定向参数——每一步都有输入、有输出、有代价,也都留下了可写进报告的记录;而全程之上的,是"先授权、再标识、后发布"的底线。
自测 1:COCO 17 点体系里没有手指尖,为什么很多"动作迁移"任务仍然强调使用含手部关键点的工具?

答案:因为"迁移的忠实度取决于条件的密度"。17 点体系只约束到手腕,手掌与手指的位置完全交给生成模型"脑补",而手恰恰是生成模型最容易出错的地方(指节粘连、多指)。含手部 21 点的体系(如 COCO-WholeBody 133 点中的手部部分、MediaPipe 的手部模型)为生成模型提供了更细的约束,因此手部更稳。但要注意两点:密度更高也意味着更容易被遮挡污染——手部点一旦出错,错误也会被"忠实"地迁移过去;以及并非所有工具都支持手部条件,此时"用袖子挡住手"这种设计层面的规避反而是最省成本的做法。

自测 2:一位同学把整段民谣歌手的视频丢进工具,提取出全身姿态后(并保留了原始视频),想把动作迁移到角色上。请指出这个流程里至少两处需要先处理的问题。

答案:① 授权问题:视频里的人是真人(公众人物),把其身体影像用于 AI 姿态提取与角色迁移,需要该人(或其权利人)的同意——公众人物不例外;若原始视频来自网络,还涉及版权问题。② 数据性质问题:原始视频含人脸,属于生物识别信息(敏感个人信息),处理需单独同意并做"最小必要"控制;只保留关键点数据、删除含人脸的原视频是个常见的降风险做法。③ 还有两个技术层面的坑可加分:整段视频太长(超出 3–30 秒的有效区间)、多人画面会引发 ID 切换。请记住:技术可行与法律可行是两条独立的线,必须分别通过。

自测 3:解释"置信度 0.9 的关键点也可能是错的",并说明这对你设计质检流程有什么影响。

答案:置信度衡量的是"模型对自己的判断有多确定",而不是"这个判断对不对"。模型见过大量人体结构,当关键点被遮挡时会依据先验"猜"一个解剖上合理的位置——它猜得很自信,于是给出高置信度。这就是"高置信度的错误"(如被袖子遮住的手腕)。对质检的影响:① 不能只看置信度,还要看时序一致性——单一帧的可信度低,但前后帧突变是可检测的信号;② 对遮挡高发部位(手、脚、被衣物覆盖的关节)单独设检查规则,例如与前后帧的位移超过阈值即报警;③ 拍摄时主动减少遮挡(紧袖口、避开身体自遮挡的角度),是从源头降低这类错误的最经济手段。

自测 4:滑步(foot skating)在三维重定向和"参考动作驱动角色"两条路线上都会出现。请分别说出各自最直接的一个成因与对策。

答案:三维重定向路线:最直接的成因是源骨架的关节旋转被"翻译"到不同腿长的目标骨架后,脚的世界坐标随之漂移,且没有任何机制把它拉回地面;对策是足部锁定——把支撑脚在接触阶段钉在地面坐标上,并按动作语义开关(跳跃/滑行关闭)。"参考动作驱动角色"路线:最直接的成因是模型没有物理模拟,脚与地面的关系是"画"出来的;对策首先在输入侧——固定机位、单人全身、尺度一致、让脚部接触点清晰可见,必要时使用平台提供的足部锁定选项。两者的共同点是:都不是靠"调大某个参数"解决的。

自测 5:小组想用一位已故诗人的形象,让他"做出"一段现代舞蹈动作,用于校园文化节。请依据本章的思政内容,指出其中的风险与可行的替代方案。

答案:风险有三层:① 逝者人格利益——民法典第 994 条保护逝者的姓名、肖像、名誉等,近亲属有权主张民事责任;让逝者"做出"其生前未做过的动作,可能构成对其形象的歪曲与不当使用。② 虚拟数字人监管方向——不得未经单独同意生成可识别到特定自然人的数字虚拟人形象,且不得用于丑化或编造特定身份人员(按征求意见稿的精神),校园文化节这类公开活动无法用"非商用"免责。③ 文化语境——把历史人物的身体表达与现代舞蹈拼贴,容易造成文化误读。可行替代:用"原创虚构角色 + 古典动作风格"的方式致敬(如本章的诗人角色本就是原创设定);或在获得逝者近亲属书面同意的前提下,仅做符合其历史形象的静态/克制呈现,并明确标识 AI 生成。核心原则:技术能"复活"一个人,但决定"该不该"的永远是人。

自测 6:为什么本书反复说"改输入优先于调参数"?请用本章的一个具体机制说明。

答案:因为大多数伪影的成因在输入侧,参数只是"放大器"。以滑步为例:若参考视频机位晃动、脚被长衣摆遮住,调任何运动参数都无法恢复"脚接触地面"这一被破坏的信息;相反,改成固定机位、穿露出脚踝的服装(输入侧两项改进),滑步的根源被消除,锁定选项才真正有效。同理,手部畸变的根源是遮挡与条件密度不足,负向提示词只能压制症状;改善拍摄与换取条件才是治本。这也解释了为什么本章的实践设计里,拍摄规范的"位置"与生成参数相当:参数决定"表现上限",输入决定"错误下限"——而通识课程作品的成色,绝大多数时候由下限决定。

拓展阅读

← 第 5 章 角色动画生成与编辑