[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"solution-scenes-menu":3,"tech-detail-2594":4},true,{"id":5,"title":6,"content":7,"picUrl":8,"tagIds":9,"keyWords":10,"htmlDescribe":11,"htmlUrl":12,"gmtCreate":13,"gmtModified":13,"articleInfoId":14},"2594","畅联云平台丨09-NIMA与视频质量指标","\u003Ch1 style=\"line-height:2\">NIMA 与视频质量指标：35+65 打分如何落地\u003C\u002Fh1>\u003Cp style=\"line-height:2\">本文讲视频质量分如何设计与落地：画面技术与人物可用性如何加权、如何抽样取中位数、主角锁定相似度阈值，以及 A\u002FB\u002FC\u002FD 等级含义。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">一、总分结构\u003C\u002Fh1>\u003Cp style=\"line-height:2\">总分 = 画面35 + 人物65 （0～100）\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F09\u002F04\u002Ffd6639c8-5dcb-4ca5-a59e-11b9ac6a7122.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F09\u002F04\u002Fa908899c-e8c3-4a1f-b0b9-73f5d8c1f417.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cspan style=\"font-size:12px\">图：A=画质15+曝光12+稳定8；B=锁定20+出镜18+连续15+大小7+路人5。\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cbr \u002F>\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">二、 抽样：设计上的 20 帧与实现上的 detect 帧\u003C\u002Fh1>\u003Cp style=\"line-height:2\">设计文档规定：对长度 N 的片段均匀抽 20 帧：\u003C\u002Fp>\u003Cp style=\"line-height:2\">帧号按 k=0…19 均匀取：第 k 个抽样点 ≈ k×N\u002F20\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F09\u002F04\u002Fc540bf0f-c23d-46b5-b870-7fb3826b7fbe.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cspan style=\"font-size:12px\">图：覆盖片头到片尾；各子项先逐帧算，再取中位数。\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">实现上，质量累加挂在 人物定位同一次解码的检测帧（在检测帧上累加质量指标），不另开全片解码。检测步长=3 时，样本间距约 3 帧，长视频上样本数可多于 20；评分前对各标量序列取 中位数，抗偶发脏帧。设计意图「约 20 点覆盖全片」与实现「复用检测帧」在工程上等价目标：稀疏、均匀、同一次 I\u002FO。\u003C\u002Fp>\u003Cp style=\"line-height:2\">子项聚合：\u003C\u002Fp>\u003Cp style=\"line-height:2\">子项分 = 映射(各抽样帧指标的中位数)\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">三、NIMA technical：299 输入与 batch≤8\u003C\u002Fh1>\u003Cp style=\"line-height:2\">模型：NIMA 技术画质模型（inception_resnet_v2-koniq 技术美学头），路径可用环境变量指定的模型路径覆盖。\u003C\u002Fp>\u003Ch2 style=\"line-height:2\">3.1 预处理 \u003C\u002Fh2>\u003Cp style=\"line-height:2\">对 1920×1080：\u003C\u002Fp>\u003Cp style=\"line-height:2\">短边=1080，缩放比=299\u002F1080，\u003C\u002Fp>\u003Cp style=\"line-height:2\">缩放后约 531×299，再中心裁成 299×299\u003C\u002Fp>\u003Cp style=\"line-height:2\">每帧预处理后约 3×299×299 个浮点数。\u003C\u002Fp>\u003Ch2 style=\"line-height:2\">3.2 批推理\u003C\u002Fh2>\u003Cp style=\"line-height:2\">pending 队列满 8 或 force flush 时 批量推理：\u003C\u002Fp>\u003Cp style=\"line-height:2\">20 帧 → 至少 3 个 batch（8+8+4）。locate 结束时把 ORT 队列刷干净。\u003C\u002Fp>\u003Ch2 style=\"line-height:2\">3.3 MOS → 画质分\u003C\u002Fh2>\u003Cp style=\"line-height:2\">本项目先把原始 MOS 统一到 [0,1]，再 ×15 得到画质分：\u003C\u002Fp>\u003Cpre>\u003Ccode>static double nima_mos_to_unit(double raw) {\n if (raw &gt; 10.0) return std::min(1.0, raw \u002F 100.0);\n if (raw &gt; 1.0) return std::min(1.0, (raw - 1.0) \u002F 9.0);\n return std::max(0.0, std::min(1.0, raw));\n}\n\u002F\u002F median(nima_mos) → unit → image_quality_score（满分 15）\nconst double mos_med = median_of(accum.nima_mos);\nconst double mos_unit = nima_mos_to_unit(mos_med);\nimage_quality_score = clamp_score((int)std::lround(mos_unit * 15.0), 15);\u003C\u002Fcode>\u003C\u002Fpre>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>数值例子\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">中位 MOS=0.72（已是 0～1）：\u003C\u002Fp>\u003Cp style=\"line-height:2\">例如 NIMA 原始分 0.72，映射到 15 分制约为 11 分。\u003C\u002Fp>\u003Cp style=\"line-height:2\">若原始头输出 6.4（1～10 标度）：先 \u003Cspan style=\"color:rgb(225, 60, 57)\">(6.4-1)\u002F9 ≈ 0.60\u003C\u002Fspan>，再 ×15 ≈ 9 分。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">四、曝光  12 分\u003C\u002Fh1>\u003Cp style=\"line-height:2\">对中心 ROI（约 70% 画幅）灰度：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">亮度均值：亮度均值；\u003C\u002Fli>\u003Cli style=\"line-height:2\">坏像素占比：像素 &lt;30 或 &gt;225 占比。\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">曝光分：由灰度均值映射，再按过暗\u002F过曝比例扣分，结果限制在 0～12。\u003C\u002Fp>\u003Cp style=\"line-height:2\">其中指标取各抽样帧的中位数。\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>数值例子\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">mean=120，bad=0.05：\u003C\u002Fp>\u003Cp style=\"line-height:2\">例如均值 120、过曝比例很低时，曝光分大约 6 左右。\u003C\u002Fp>\u003Cp style=\"line-height:2\">过暗 mean=40 → map 得 0；过曝坏像素 20% → 再扣约 2 分。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">五、稳定性 8 分\u003C\u002Fh1>\u003Cp style=\"line-height:2\">相邻抽样（detect）帧缩略灰度差的均值进 motion，再取中位数。因 stride 拉大帧距，做等效：把 motion 除以检测步长后再映射。\u003C\u002Fp>\u003Cp style=\"line-height:2\">稳定性：先看相邻抽样帧背景位移，再映射到 0～8 分。\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cspan style=\"font-size:19px\">\u003Cstrong>数值例子\u003C\u002Fstrong>\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">stride=3，motion=18：\u003C\u002Fp>\u003Cp style=\"line-height:2\">例如归一化抖动指标折合后，稳定分约 5 分。\u003C\u002Fp>\u003Cp style=\"line-height:2\">剧烈抖动 m_eq=12 → 得分趋 0。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">六、B 类：人物可用性 65\u003C\u002Fh1>\u003Ch2 style=\"line-height:2\">6.1 主角锁定 20（sim≥0.32）\u003C\u002Fh2>\u003Cp style=\"line-height:2\">满分条件：ByteTrack 已锁主角且底图相似度 ≥ 0.32。\u003C\u002Fp>\u003Ch2 style=\"line-height:2\">6.2 出镜率 18\u003C\u002Fh2>\u003Cp style=\"line-height:2\">出镜率映射到最高 18 分：出镜太低接近 0，足够高给满分。\u003C\u002Fp>\u003Cp style=\"line-height:2\">0.85 满分；0.35 以下 0 分。\u003C\u002Fp>\u003Ch2 style=\"line-height:2\">6.3 轨迹连续 15\u003C\u002Fh2>\u003Cp style=\"line-height:2\">用圆镜有效截止帧覆盖率：\u003C\u002Fp>\u003Cp style=\"line-height:2\">连续性看有效轨迹覆盖了片段多大比例，再映射到最高 15 分。\u003C\u002Fp>\u003Cp style=\"line-height:2\">轨迹点最大间隙 &gt;12 帧时额外扣分：\u003C\u002Fp>\u003Cp style=\"line-height:2\">s ← s − min(8, gmax\u002F3)\u003C\u002Fp>\u003Ch2 style=\"line-height:2\">6.4 主体大小 7\u003C\u002Fh2>\u003Cp style=\"line-height:2\">脸短边中位 \u002F 画幅短边 r ：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">理想带 [0.08,0.28] → 满分 7；\u003C\u002Fli>\u003Cli style=\"line-height:2\">太小：map (0.03,0.08)；\u003C\u002Fli>\u003Cli style=\"line-height:2\">太大：按 0.40−r 惩罚（脸填满画面也不利于跟拍构图）。\u003C\u002Fli>\u003C\u002Ful>\u003Ch2 style=\"line-height:2\">6.5 路人干扰 5\u003C\u002Fh2>\u003Cp style=\"line-height:2\">从满分 5 往下扣：峰值人数、多人帧占比、他人脸观测密度。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">七、等级 A\u002FB\u002FC\u002FD\u003C\u002Fh1>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F09\u002F04\u002F705288bc-ed6c-4e34-acc7-b78bd0dbac60.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cspan style=\"font-size:12px\">图：A≥80；B 65–79；C 50–64；D&lt;50。\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cbr \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cimg src=\"https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F09\u002F04\u002Fb12d8a72-4691-49fb-b7e2-f09b44132c24.png\" alt=\"\" loading=\"lazy\" \u002F>\u003C\u002Fp>\u003Cp style=\"text-align:center;line-height:2\">\u003Cspan style=\"font-size:12px\">注意：B 档起点 65 = B 类满分，意味着画面技术全挂、人物全满分时刚好贴 B；要上 A 必须 A 类也贡献足够分。\u003C\u002Fspan>\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cbr \u002F>\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">八、整段数值演练\u003C\u002Fh1>\u003Cp style=\"line-height:2\">假设：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">NIMA 中位 unit=0.80 → 画质 12\u002F15\u003C\u002Fli>\u003Cli style=\"line-height:2\">曝光 10\u002F12，稳定 6\u002F8 → A=28\u003C\u002Fli>\u003Cli style=\"line-height:2\">锁定 20，出镜 16，连续 12，大小 6，路人 3 → B=57\u003C\u002Fli>\u003Cli style=\"line-height:2\">Total=85 → 等级 A\u003C\u002Fli>\u003C\u002Ful>\u003Cp style=\"line-height:2\">若锁定失败（sim=0.25，仅有轨）：锁定≈15，B 降到 52，Total=80，仍贴 A 边缘；再差一点出镜 → 掉进 B。\u003C\u002Fp>\u003Cp style=\"line-height:2\">另一极端：A=10（糊且抖），B=40 → Total=50 → C。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">九、与扫描流水线的衔接\u003C\u002Fh1>\u003Cp style=\"line-height:2\">日志：\u003C\u002Fp>\u003Cp style=\"line-height:2\">NIMA 后端标签（TRT\u002FCUDA\u002FCPU）写入画质 basis 字符串，便于排查「分低是因为模型没加载」。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十、调参与误读\u003C\u002Fh1>\u003Cp style=\"line-height:2\">不要把 NIMA 原始 MOS 当百分制——先做 NIMA 分数归一化再 ×15。\u003C\u002Fp>\u003Cp style=\"line-height:2\">sim=0.32 是锁定满分线，不是「有人脸」线。\u003C\u002Fp>\u003Cp style=\"line-height:2\">稳定性已除以 stride：改 stride 后同分不代表同抖动物理量。\u003C\u002Fp>\u003Cp style=\"line-height:2\">中位数对单帧闪光灯\u002F转场更稳；看均值会误判。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十一、公式卡\u003C\u002Fh1>\u003Cp style=\"line-height:2\">主角锁定满分条件：已锁定跟踪号，且相似度≥0.32，且轨迹非空。\u003C\u002Fp>\u003Cp style=\"line-height:2\">画质：image_quality = round(NIMA 分数归一化(median(MOS)) × 15)。\u003C\u002Fp>\u003Cp style=\"line-height:2\">按此卡读日志，即可从\u003Cspan style=\"color:rgb(225, 60, 57)\"> total\u002Fgrade \u003C\u002Fspan>反推是画质问题还是锁人问题。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十二、线性映射函数的精确形状\u003C\u002Fh1>\u003Cp style=\"line-height:2\">线性映射：指标落在区间 (低,高) 时，按比例映射到子项满分。\u003C\u002Fp>\u003Cp style=\"line-height:2\">出镜率例子：r=0.60，区间 [0.35,0.85]，满分 18：\u003C\u002Fp>\u003Cp style=\"line-height:2\">例如出镜率指标落在区间中部时，出镜分约为满分的一半。\u003C\u002Fp>\u003Cp style=\"line-height:2\">连续覆盖 c=0.70，区间 [0.45,0.92]，满分 15：\u003C\u002Fp>\u003Cp style=\"line-height:2\">连续性同理，可得到约 8 分。\u003C\u002Fp>\u003Cp style=\"line-height:2\">再设最大间隙 18 帧：扣 min(8, 18\u002F3)=6 → 连续得分约 2。这说明 中段丢轨对 B 类杀伤很大，即使出镜帧数看起来不少。\u003C\u002Fp>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十三、 为何 A=35、B=65\u003C\u002Fh1>\u003Cp style=\"line-height:2\">产品上「能不能做成片」首先取决于有没有稳定主角；糊一点、暗一点仍可能可用，完全锁不住人则 lens\u002Fcrop 无意义。故 B 权重大。A 仍保留 35，是为了挡住严重欠曝\u002F剧烈抖动\u002F画质崩坏的素材进入高分档。\u003C\u002Fp>\u003Cp style=\"line-height:2\">合成启示：\u003C\u002Fp>\u003Cul>\u003Cli style=\"line-height:2\">想冲 A 档（≥80）：大约需要 A≈15 且 B≈65，或 A≈28 且 B≈57 这类组合；\u003C\u002Fli>\u003Cli style=\"line-height:2\">仅刷 NIMA 高分而锁人失败：B 可能只有 30～40，总分很难过 65。\u003C\u002Fli>\u003C\u002Ful>\u003Chr \u002F>\u003Ch1 style=\"line-height:2\">十四、采样与 stride 的耦合再例\u003C\u002Fh1>\u003Cp style=\"line-height:2\">片长 N=750 帧（30 s@25），检测步长=3，检测帧约 250 次；若每次都累加 NIMA，成本过高。实现挂在 detect 帧，但 ORT batch≤8，长片仍可能积累很多 MOS。中位数对「偶发转场黑帧」稳健：即使 250 个样本里有 10 个接近 0，中位仍代表主体观感。\u003C\u002Fp>\u003Cp style=\"line-height:2\">设计文档的 20 帧均匀抽样，可理解为 评分语义上的最小充分统计量；实现用更多 detect 样本取中位，统计上只会更稳，不会改变「先帧指标、再中位、再映射到分」的结构。\u003C\u002Fp>\u003Cp style=\"line-height:2\">\u003Cbr \u002F>\u003C\u002Fp>","https:\u002F\u002Fqu-link.oss-cn-hangzhou.aliyuncs.com\u002F2026\u002F09\u002F04\u002F1dacbe9f-bd5f-4d57-89b6-c592baa622a1.jpg","85,84","美畅，美畅物联，畅联，畅联云平台，视频监控云平台，云视频监控，视频云平台，视频开放平台，视频感知云，视频接入网关，AIoT综合接入网关，视频中台，物联网中台，视频上云网关，Ehome，I连锁行业，智慧交通，AI算法","原创技术分享丨美畅物联向工","https:\u002F\u002Fwww.24hlink.cn\u002Ftech\u002F2594","2026-09-04 16:28:42","870"]