
NIMA 与视频质量指标3565 打分如何落地本文讲视频质量分如何设计与落地画面技术与人物可用性如何加权、如何抽样取中位数、主角锁定相似度阈值以及 A/B/C/D 等级含义。1. 总分结构总分 画面35 人物65 0100大类分值含义A 画面技术35清晰度、曝光、稳定性B 人物可用性65锁定、出镜、连续、大小、路人干扰合并100两项相加得总分图A画质15曝光12稳定8B锁定20出镜18连续15大小7路人5。2. 抽样设计上的 20 帧与实现上的 detect 帧设计文档规定对长度 N 的片段均匀抽 20 帧帧号按 k0…19 均匀取第 k 个抽样点 ≈ k×N/20图覆盖片头到片尾各子项先逐帧算再取中位数。实现上质量累加挂在 人物定位同一次解码的检测帧在检测帧上累加质量指标不另开全片解码。检测步长3 时样本间距约 3 帧长视频上样本数可多于 20评分前对各标量序列取 中位数抗偶发脏帧。设计意图「约 20 点覆盖全片」与实现「复用检测帧」在工程上等价目标稀疏、均匀、同一次 I/O。子项聚合子项分 映射(各抽样帧指标的中位数)3. NIMA technical299 输入与 batch≤8模型NIMA 技术画质模型inception_resnet_v2-koniq 技术美学头路径可用环境变量指定的模型路径覆盖。3.1 预处理对 1920×1080短边1080缩放比299/1080缩放后约 531×299再中心裁成 299×299每帧预处理后约 3×299×299 个浮点数。3.2 批推理pending 队列满 8 或 force flush 时 批量推理20 帧 → 至少 3 个 batch884。locate 结束时把 ORT 队列刷干净。3.3 MOS → 画质分本项目先把原始 MOS 统一到 [0,1]再 ×15 得到画质分staticdoublenima_mos_to_unit(doubleraw){if(raw10.0)returnstd::min(1.0,raw/100.0);if(raw1.0)returnstd::min(1.0,(raw-1.0)/9.0);returnstd::max(0.0,std::min(1.0,raw));}// median(nima_mos) → unit → image_quality_score满分 15constdoublemos_medmedian_of(accum.nima_mos);constdoublemos_unitnima_mos_to_unit(mos_med);image_quality_scoreclamp_score((int)std::lround(mos_unit*15.0),15);数值例子中位 MOS0.72已是 01例如 NIMA 原始分 0.72映射到 15 分制约为 11 分。若原始头输出 6.4110 标度先(6.4-1)/9 ≈ 0.60再 ×15 ≈ 9 分。4. 曝光 12 分对中心 ROI约 70% 画幅灰度亮度均值亮度均值坏像素占比像素 30 或 225 占比。曝光分由灰度均值映射再按过暗/过曝比例扣分结果限制在 012。其中指标取各抽样帧的中位数。数值例子mean120bad0.05例如均值 120、过曝比例很低时曝光分大约 6 左右。过暗 mean40 → map 得 0过曝坏像素 20% → 再扣约 2 分。5. 稳定性 8 分相邻抽样detect帧缩略灰度差的均值进motion再取中位数。因 stride 拉大帧距做等效把 motion 除以检测步长后再映射。稳定性先看相邻抽样帧背景位移再映射到 08 分。数值例子stride3motion18例如归一化抖动指标折合后稳定分约 5 分。剧烈抖动 m_eq12 → 得分趋 0。6. B 类人物可用性 656.1 主角锁定 20sim≥0.32满分条件ByteTrack 已锁主角且底图相似度 ≥ 0.32。6.2 出镜率 18出镜率映射到最高 18 分出镜太低接近 0足够高给满分。0.85 满分0.35 以下 0 分。6.3 轨迹连续 15用圆镜有效截止帧覆盖率连续性看有效轨迹覆盖了片段多大比例再映射到最高 15 分。轨迹点最大间隙 12 帧时额外扣分s ← s − min(8, gmax/3)6.4 主体大小 7脸短边中位 / 画幅短边 r 理想带 [0.08,0.28] → 满分 7太小map (0.03,0.08)太大按 0.40−r 惩罚脸填满画面也不利于跟拍构图。6.5 路人干扰 5从满分 5 往下扣峰值人数、多人帧占比、他人脸观测密度。7. 等级 A/B/C/D图A≥80B 65–79C 50–64D50。总分等级产品含义≥80A适合直接成片65–79B可用可优化50–64C勉强建议换片段50D不建议用于 vlog注意B 档起点 65 B 类满分意味着画面技术全挂、人物全满分时刚好贴 B要上 A 必须 A 类也贡献足够分。8. 整段数值演练假设NIMA 中位 unit0.80 → 画质 12/15曝光 10/12稳定 6/8 → A28锁定 20出镜 16连续 12大小 6路人 3 → B57Total85 → 等级 A若锁定失败sim0.25仅有轨锁定≈15B 降到 52Total80仍贴 A 边缘再差一点出镜 → 掉进 B。另一极端A10糊且抖B40 → Total50 → C。9. 与扫描流水线的衔接日志NIMA 后端标签TRT/CUDA/CPU写入画质 basis 字符串便于排查「分低是因为模型没加载」。10. 调参与误读不要把 NIMA 原始 MOS 当百分制——先做 NIMA 分数归一化再 ×15。sim0.32 是锁定满分线不是「有人脸」线。稳定性已除以 stride改 stride 后同分不代表同抖动物理量。中位数对单帧闪光灯/转场更稳看均值会误判。11. 公式卡主角锁定满分条件已锁定跟踪号且相似度≥0.32且轨迹非空。画质image_quality round(NIMA 分数归一化(median(MOS)) × 15)。按此卡读日志即可从total/grade反推是画质问题还是锁人问题。12. 线性映射函数的精确形状线性映射指标落在区间 (低,高) 时按比例映射到子项满分。出镜率例子r0.60区间 [0.35,0.85]满分 18例如出镜率指标落在区间中部时出镜分约为满分的一半。连续覆盖 c0.70区间 [0.45,0.92]满分 15连续性同理可得到约 8 分。再设最大间隙 18 帧扣 min(8, 18/3)6 → 连续得分约 2。这说明 中段丢轨对 B 类杀伤很大即使出镜帧数看起来不少。13. 为何 A35、B65产品上「能不能做成片」首先取决于有没有稳定主角糊一点、暗一点仍可能可用完全锁不住人则 lens/crop 无意义。故 B 权重大。A 仍保留 35是为了挡住严重欠曝/剧烈抖动/画质崩坏的素材进入高分档。合成启示想冲 A 档≥80大约需要 A≈15 且 B≈65或 A≈28 且 B≈57 这类组合仅刷 NIMA 高分而锁人失败B 可能只有 3040总分很难过 65。14. 采样与 stride 的耦合再例片长 N750 帧30 s25检测步长3检测帧约 250 次若每次都累加 NIMA成本过高。实现挂在 detect 帧但 ORT batch≤8长片仍可能积累很多 MOS。中位数对「偶发转场黑帧」稳健即使 250 个样本里有 10 个接近 0中位仍代表主体观感。设计文档的 20 帧均匀抽样可理解为 评分语义上的最小充分统计量实现用更多 detect 样本取中位统计上只会更稳不会改变「先帧指标、再中位、再映射到分」的结构。