高光与关键帧挖掘(highlight-mining v2)
1. 定位
高光不是"模型觉得好看",而是可解释的多信号结论:每一个高光条目都要能回答"为什么是这几秒"。
本技能产出 highlight_pick[] 与 keyframe_candidate[],是剪辑脚本选镜的第一优先级素材池。
2. 信号层(确定性,免费,可复现)
| 信号 | 计算口径 | 归一化 | 说明 |
|---|---|---|---|
| 语音强调 | 词级音量 × 基频变化 × 语速变化(相对该说话人基线的 z-score) | 0–1 | 重音、情绪上扬、强调句 |
| 音频能量 | 短时能量包络(20ms 窗 / 200ms 跳步)在该镜内的峰值分位 | 0–1 | 掌声、笑声、音乐高潮、撞击声 |
| 运动强度 | 光流幅度均值(镜头内分位) | 0–1 | 动作峰值;过高转惩罚而非加分 |
| 人脸与表情 | 人脸框面积占比 + 表情强度分类分 | 0–1 | 有人脸的近景更值钱 |
| 视觉显著性 | 中心区对比/色彩饱和度相对值 + 主体占比 | 0–1 | 画面"抓眼"程度 |
| 语义价值 | 多模态模型给的"信息/情绪价值"分(0–1) | 0–1 | 唯一需要模型的信号 |
| 稀缺性 | 同片内该画面特征的逆频率(越独特越高) | 0–1 | 防止同一道菜/同一个动作反复出现 |
惩罚项(单列,不混入正向分):抖动 shake、失焦 blur、遮挡 occlusion、重复 repetition。
3. 评分公式(可复现)
base = w_speech·speechEmphasis + w_audio·audioEnergy + w_motion·motion
+ w_face·faceExpression + w_salience·visualSalience + w_semantic·semanticValue
+ w_novelty·novelty
score = clamp(base − (0.5·shake + 0.6·blur + 0.4·occlusion + 0.7·repetition), 0, 1)
场景权重档案(weights.profile)
| profile | speech | audio | motion | face | salience | semantic | novelty | 适用 |
|---|---|---|---|---|---|---|---|---|
knowledge | 0.30 | 0.05 | 0.05 | 0.05 | 0.15 | 0.30 | 0.10 | 知识/科普/教学 |
travel | 0.10 | 0.15 | 0.15 | 0.10 | 0.25 | 0.10 | 0.15 | 旅行/Vlog |
review | 0.25 | 0.10 | 0.10 | 0.15 | 0.15 | 0.20 | 0.05 | 产品评测 |
drama | 0.20 | 0.15 | 0.15 | 0.30 | 0.10 | 0.05 | 0.05 | 剧情/情绪 |
talking | 0.35 | 0.05 | 0.05 | 0.25 | 0.05 | 0.20 | 0.05 | 口播/访谈 |
权重是默认美学基线,可按项目覆盖;覆盖必须写入回执(谁改的、为什么),因为它们直接影响选镜结果。
4. 三类关键帧(各司其职,不混用)
| 类型 | 定义 | 选择规则 | 典型用途 |
|---|---|---|---|
情绪峰值帧 emotion_peak | 情绪/表情张力最大的那一帧 | 表情强度分位 ≥0.9 且该帧清晰度 ≥0.6,且不处于眨眼/张嘴过渡帧 | 封面、情绪点、字幕锚点 |
动作峰值帧 action_peak | 动作完成或运动最大的那一帧 | 光流峰值且前后各 3 帧无不稳定;优先"动作落点"(手势结束/物品放稳) | 转场、卡点、定格 |
构图最优帧 composition_best | 单看最好看的一帧 | 稳定 ≥0.8、主体清晰、画面安全边距(标题/字幕区无遮挡)、三分或中心构图 | 封面底图、缩略图、静态展示 |
封面候选规则:优先 composition_best,若账号是人物向则优先 emotion_peak(人脸占比 ≥8% 且不遮挡);两者都缺时明确报"无合格封面帧",不用次优模糊帧凑数。
5. 切点对齐规则(高光"能剪"才算高光)
- 语音气口对齐:区间端点必须先贴近句末停顿(≥120ms 静音);落在句子中间的音节一律外扩到词边界。
- 节拍对齐:若该片有 BGM 节拍网格,端点优先吸附到最近节拍(±80ms 内),供卡点剪辑使用。
- 镜头边界对齐:区间必须完整落在某个镜头内;跨镜头的高光要拆成两条(便于分别选择与转场)。
- 安全边距:情绪峰值取帧时刻避开首末 0.3s(进场/出场不稳),除非该镜时长 <1s。
6. 去重与多样性
- 相似度判据:画面直方图距离 + 语义标签重合度 + 时间邻近度(同镜内 <1.5s 视为同一候选)。
- 同一"事件"(同一动作的同一次完成)只保留分数最高的一条;被合并的候选写入
repetition惩罚说明。 - 一组高光内至少覆盖 2 种
kind(例如情绪峰值 + 信息节点),避免全片都是同一类画面。
7. 输出契约
遵循 schemas/highlight-pick.schema.json 与 schemas/keyframe-candidate.schema.json:
- 每条高光带
score与分信号明细signals、惩罚penalties、权重档案、evidence[]、confidence。 - 每个关键帧带
kind、帧级timecode、frame、reasons[]、技术指标与usage[]。 - 分数低于 0.45 的候选不进入主池(可留在"备选池",供素材缺口时兜底)。
决策原则(含阈值与失败关闭)
- 分数必须可复算:回执里给出权重、信号值与惩罚项,复算偏差 >0.01 即视为口径不一致,重算后再输出。
- 质量门槛先于打分:清晰度 <0.5 或稳定度 <0.4 的候选直接出池(不允许"高分掩盖糊帧")。
- 端点必须能剪:高光端点落在句末停顿(≥120ms)或节拍点(±80ms)上;落不进就外扩到词边界,不许切在音节中间。
- 失败关闭:无合格关键帧时如实报
gaps,默认不使用次优帧(allowFallback=false)。 - 去重优于堆量:同镜内峰值间隔 <1.5s 视为同一事件;主池候选分数下限 0.45。
打法库(场景 → 动作序列 → 判据)
- 主线·多信号融合:信号归一化 → 加权求和 → 扣惩罚 → 端点对齐 → 去重(判据:Top-10 人工认可率 ≥70%)。
- 分支·人像向内容:提高
faceExpression权重并把emotion_peak关键帧提到封面首选(判据:封面可用率 ≥60%)。 - 分支·风景/空镜向:提高
visualSalience与novelty,动作峰值帧退居次选(判据:同片画面重复率 ≤15%)。 - 分支·长素材(>30min):先按 20s 分段配额筛候选,再全局排序,防"开头通吃"(判据:候选时间分布覆盖全片 ≥60%)。
SOP(每步带触发/回执/失败路径)
- 触发(镜头理解完成)→ 读取信号表与镜头清单 → 回执:候选池(含分项信号);失败:信号缺失(如无人脸信号)时按 0 计并在回执标注,不臆造分数。
- 触发(候选池就绪)→ 打分与惩罚计算 → 回执:每条高光的
signals/penalties/weights/score;失败:权重档案未知或信号越界即报错,不静默钳制。 - 触发(打分完成)→ 关键帧选择与去重 → 回执:三类关键帧 +
gaps+ 合并记录;失败:门槛未过时输出缺口清单交人审,不用次优帧凑数。
关键指标(含基准与护栏)
| 指标 | 口径 | 基准/阈值 | 类型 | 来源 |
|---|---|---|---|---|
| 高光认可率 | 人审认可的高光 / Top-10 | ≥70% | 质量 | 人工抽检 |
| 关键帧可用率 | 可用关键帧 / 三类应有帧数 | ≥60% | 质量 | 人工抽检 + 技术门槛 |
| 端点合规率 | 落在停顿/节拍/镜头边界内的端点 / 全部端点 | 100% | 护栏 | 对齐校验器 |
| 重复候选率 | 被判重复合并的候选 / 总候选 | ≤10% | 质量 | 去重回执 |
| 复算一致率 | 复算分数一致的条目 / 抽查条目 | 100% | 护栏 | 复算脚本 |
失败模式(症状 → 检测器 → 处置)
| 症状 | 检测器 | 处置 |
|---|---|---|
| 高光全是开头 10 秒 | 候选时间分布统计 | 按时长分段配额,并提高 novelty 权重 |
| 选出的"高光"是抖动片段 | 清晰度/稳定度门槛未过 | 加 shake 惩罚;清晰度 <0.5 直接出池 |
| 封面帧全是糊的 | composition_best 门槛未生效 | 强制清晰度 ≥0.7、稳定 ≥0.8,否则报缺口 |
| 两条高光其实是同一动作 | 去重阈值过松 | 收紧时间邻近度(同镜 <1.5s 合并)+ 提高重复惩罚 |
| 模型给分全在 0.9 以上 | 打分未校准 | 用同片分位标定替代绝对值,并在回执记录标定方式 |
8. 自检清单
- 每个高光端点都落在镜头边界内且贴近语音气口或节拍点
- 分数可复算:用回执里的权重与信号值能算出同一个
score - 惩罚项与正向分分列,未被"平均掉"
- 三类关键帧都有候选(或明确说明该类无合格帧及原因)
- 无重复事件;同事件只保留最高分
- 每条都带证据帧与置信度(G-ED4)