版本核对
背景
在实际媒体计算的业务场景中,如何确定计算后的图片 or 音频 or
视频符合上线标准?最简单的办法:手动跑图,然后,人眼看,主观判断是否符合上线标准。这种方法,随着核对算法越来越多,跑图张数越来越多以后,会变得越来越吃力。
核对流程
对于用户而言,其整体工作流程如下:
概念定义
1、版本核对,以某个版本的算法的跑图结果作为基准,新开发的算法的跑图结果 与 此基准跑图,做差异性检测。如果有差异,则人工介入分析。
其中,两个版本的算法,跑图必须一样 + 算法入参也必须一样,注意:必须2种结果:以其中一个为基准,确定另一个是否满足预期。
2、版本择优:同一个算法,入参图片一样,但是,算法入参不一样,计算出多种结果,然后,主观选择最好的一种上线。注意:2种以上的结果。
3、画质评测:同一个算法、入参图片一样,算出一种结果,通过人眼主观评测,得出当前结果的画质值,注意:可以只有一种结果。
4、自主跑图:自动调用手机 or 电脑 or api,自动跑出一批图片 or 视频出来。
分类
按照跑图媒介进行分类:
名称 | 分类 | 说明 | 备 注 |
---|---|---|---|
安卓跑图 | 手机客户端跑图 | 调度安卓机器,触发跑图 | |
ios跑图 | 手机客户端跑图 | 调度ios机器,触发跑图 | |
mac跑图 | PC客户端跑图 | 调度mac机器,触发跑图 | |
windows跑图 | pc客户端跑图 | 调度windows机器,触发跑图 | |
api跑图 | 服务端跑图 | 直接调用api触发服务端跑图 |
算法,可跑在客户端上,也可跑在服务端上,也可客户端 + 服务端相互配合。基于此:核对算法的分类,也可分为:
分类 | 说明 | 备 注 |
---|---|---|
UI跑图 | 模拟用户行为,触发跑图 | 客户端跑图,当然,也有可能服务端也参与其中一步 |
机器人跑图 | 屏蔽掉UI影响,获取算法入参,触发客户端跑图 | 客户端跑图,当然,也有可能服务端也参与其中一步 |
api跑图 | 摈弃客户端,直接触发服务端跑图 | 只有跑在服务端的算法才有,当然,也有可能服务端也参与其中一步 |
备注:
1、UI的本质:方便用户灵活、快速构建:算法、模型的入参。
2、有些算法是跑在客户端上,有些算法是跑在服务端上,有些算法是:客户端+服务端配合起来一起处理的。
从输出对象的类型分类:
分类 | 说明 | 评分指标 | 备 注 |
---|---|---|---|
图片核对 | 找出两个图片的差异度 | 是否有差异 | 需落地:差异度检测算法 |
视频核对 | 找出两个视频的差异度 | 是否有差异 | 需落地:差异度检测算法 |
图片画质评测 | 从清晰度、亮度、色彩、噪点等指标,分别对不同的图片进行评分 | 三分制 or 五分制 | |
视频画质评测 | 从清晰度、亮度、色彩、噪点等指标,分别对不同的视频进行打分 | 三分制 or 五分制 | 可通过计算:psnr、ssim、vmaf指标,协助打分 |
图片择优 | 同一个输入,不同的算法入参,选择最好的输出图片 | 选出最好的 | 可通过计算:psnr、ssim、vmaf指标,协助择优 |
视频择优 | 同一个输入,不同的算法入参,选择最好的输出视频 | 选出最好的 | 可通过计算:psnr、ssim、vmaf指标,协助择优 |
从跑图时机上分类:
分类 | 说明 | 备 注 |
---|---|---|
立即跑图 | 人工触发,只要有机器,立马跑图 | |
延时跑图 | 人工触发,非紧急任务,可延迟到:凌晨跑 | |
定时跑图 | 定时触发,每周六早上10点跑图 |
自主跑图
结果比对
差异度检测
差异度检测是版本核对中的关键环节,主要包含以下几个方面:
- 像素级别比对
- 逐像素比较两个版本的输出结果
- 计算像素差异率和差异分布
- 设定差异阈值,判定是否需要人工介入
- 特征级别比对
- 提取图像关键特征(边缘、纹理等)
- 比较特征向量的差异程度
- 评估特征差异对视觉效果的影响
- 感知级别比对
- 使用PSNR(峰值信噪比)评估图像质量
- 采用SSIM(结构相似性)衡量结构差异
- 对于视频还可使用VMAF等评价指标
- 差异可视化
- 生成差异热力图
- 标注主要差异区域
- 输出差异统计报告
通过多维度的差异度检测,可以更客观地评估算法版本间的差异,为版本迭代决策提供依据。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来源 朝花夕拾!!