该技能用于从扁平化视频中提取物体可见的运动。picsart_media_track_motion 恢复物体在每一帧上的位置、旋转和缩放,并拟合为场景关键帧。它不恢复作者编写的原始关键帧,而是产生能重现屏幕画面的新运动数据。
观测决定跟踪什么。跟踪器逐帧测量位置,精确到亚像素级。不要凭静帧或记忆编写运动数值,所有时间与距离都应来自跟踪结果。
工具默认返回任务回执。应先按 picsart-video-rules 的说明跟随回执,并在跟随任何步骤前先启动该步骤所需的跟踪任务。是否消耗积分以工具描述为准;若消耗,按 picsart-video-rules 的规定视为一次支出。picsart_media_track_motion_diff 同理。
方法步骤如下:
- 用 picsart_media_video_stills 查看窗口首帧,选定跟踪目标。在扁平背景上可用 {"auto": true, "max": 9} 找出 t0 时刻的独立物体并分别跟踪,按运动量排序;重叠物体会合并为一个,此时应为每个物体单独提供包围盒。
- 调用 picsart_media_track_motion,传入视频源、以视频秒计的窗口 t0/t1 以及 targets:每个目标可用 bbox(t0 时刻视频像素中的 [x, y, w, h])、points 或 auto。根据源设置 tolerance。
- 信任结果前先阅读:每个目标返回 animations(拟合关键帧或 Lua 表达式)、static(未运动的通道)、meta(各通道 maxError)以及削弱跟踪的 notes。maxError 是诚实的重建误差;误差大说明是近似,应如实说明。
- 以 timeMode: "layer" 的关键帧形式放置到图层。
- 校验:导出同一窗口的渲染,用相同目标跟踪,再用 picsart_media_track_motion_diff 对比两者。
容差按通道与单位分别设置:tolerance 是像素位置,toleranceScale 是比例(默认 0.01),toleranceRotation 是角度(默认 0.5)。不要将像素容差复用于缩放:曾出现 1.5“像素”把 57% 的缩小判定为静止。压缩参考视频约用 1.5(测量精度约 0.5–2 像素),自有渲染用 0.5 或更小。压缩源上容差过紧,关键帧会追逐编码噪声。
选择目标时:从物体实体开始;淡入期间特征弱,跟踪会在首帧失败并冻结,应等完全不透明再设 t0。包围盒要紧贴物体表面;倾斜卡片堆叠上过大的盒子会混入相邻物体运动。仅对不透明物体测旋转和缩放;半透明物体会与背后运动混合,测得的姿态会漂移,幽灵、景深淡出卡片和半透明装饰只能得到近似运动,应说明。盒子内有视频播放时,特征会跟随内容而非盒子,应设 "estimator": "segmentation" 跟踪轮廓;其中心偏向亮部内容,改跟踪同组中静止元素更精确。旋转物体用包围盒,不要用点;点只跟踪平移,原地旋转的角点在 30° 时约有 4 像素误差,相似变换模式下的包围盒可补偿。窗口应在物体被遮挡前结束;滑到某物后面时置信度下降、姿态冻结,应缩短 t1 重跟踪,不要保留冻结尾巴。物体从画面外进入时,被边缘裁剪期间中心和缩放有偏差,应等完全入画再开始。窗口要裁剪,不要手工裁剪关键帧;在冻结样本上拟合会在尾部产生假关键帧,应改用更早的 t1 重跟踪。
内容与模式对应:有纹理(照片、带文字的 UI 卡片)用相似变换+特征;扁平/纯色或盒内有视频用相似变换+分割;透视拉伸用角点+特征;只关心位置可用中心+任一模式。
解读结果:位置是物体中心,单位为视频自身像素;在图层默认锚点(除文本外所有内容类型均为其盒中心)下即图层 transform.position。文本锚点在原点,应按对齐方式放置。旋转和缩放相对 t0,t0 处为 0° 和 1.0;跟踪器无法从一个盒子得知 t0 时物体的倾斜,应自行加上图层初始姿态。旋转逆时针为正,而场景旋转顺时针,跟踪器报告 +12° 在场景中为 -12,放置时每个旋转值都要变号。缩放返回 [s, s],因为场景缩放是二维的。关键帧时间默认从 t0 计数,除非调用设 normalizeTime: "absolute"。缓动为四种预设之一(linear、ease_in、ease_out、ease_in_out),按段选择最接近的一种;有急停或长缓定的运动只是接近而非精确,maxError 说明接近程度。返回轨道表达式而非关键帧,表示路径在容差内拟合为圆;压缩参考中真实路径常非纯圆,回退到关键帧是诚实答案而非失败。跟踪器没有 alpha,无法区分淡入淡出与移动;应通过前后静帧判断淡入淡出,不得编造以掩盖姿态跳变。
将跟踪运动放到图层:结果位于参考帧与时间中。时间是关键帧的图层时间,等于跟踪时间加 t0(若从 t0 计数),加参考第0秒播放的场景秒,再减图层开始。像素:场景尺寸与参考不同时,每个位置乘以场景尺寸/参考尺寸(两轴同因子),再加参考帧在场景中的偏移。姿态:旋转等于图层初始旋转减跟踪值;缩放等于图层初始缩放乘跟踪值。缓动保持每个关键帧原位,它塑造从该帧开始的段。轨道表达式以参考像素与时间表示,不能用这些规则移动;场景与参考尺寸不同时,应将该物体重新跟踪为关键帧,或在按参考尺寸的场景中按参考尺寸放置。
对比渲染与参考:导出该片段渲染,用相同目标与模式跟踪,将两个跟踪结果连同 target 和 channel 传给 picsart_media_track_motion_diff,返回 maxDev、meanDev 和 worstT(差异最大时刻)。用数字代替“看起来差不多”,调整直到 maxDev 低于用例阈值。比较要同类:两侧相同目标、窗口和容差;渲染从自身第0秒跟踪、参考从第4秒跟踪是4秒偏移而非不匹配。偏差含义:恒定偏移是几何问题(位置或尺寸);沿运动增大又减小是缓动;在节拍开始或结束达到峰值是时序。