无参考评价图像质量(主观评价客观化)
影像测评
0. 前言
关于无参考评价图像质量的方法,学术上有很多论文,但是真正能用到产品却比较少。本文所提及的方法,均为目前本人在探索的方法,这里只是提供一个思路,具体的实现过程还有较多细节,例如去除噪声等。如果有人在做这个方面,可以跟我探讨。
此外,还有一种思路是利用深度学习来评价图像,但是目前比较缺少数据集,做出来的模型效果不好,就不放在这里了。
1. 综述
目前常用的图像客观评价方法分为3 类:1. 全参考质量评价(
Full-Reference QA)。该方法需要将失真图像与参考图像进行比较得到评价结果;2. 弱参考质量评价( Reduced-Reference QA)。该方法从参考图像中得到部分特征信息, 并利用这些信息完成对失真图像质量的评价;3. 无参考质量评价( No-Reference QA)。该方法不借助任何参考图像的信息, 独立完成对图像质量的评价。
前两类方法都必须借助原始的非失真图像作为参考进行质量评价, 而在很多实际应用中, 特别对于sensor成像的Camera产品, 原始参考图像很难或无法获得, 因此如果要对此类产品的图像质量进行客观的评价,则必须使用无参考的评价方法。
如下表格为评价算法思路:
2. 清晰度相关
2.1. 清晰度
可以使用边缘检测算子(Tenengrad或Laplacian)来评价清晰度。具体算法如下:
1.获取一张图片(jpg或bmp格式)
2.将图片转换成YUV格式,提取Y分量矩阵
3.使用边缘检测算子卷积Y分量矩阵,得到边缘特征矩阵
4.求取边缘特征矩阵中所有元素的平均值,以该平均值作为一幅图像的清晰度指标
3. 噪声相关
3.1. 动态噪声
可以使用亮度分量的方差来评价动态噪声。具体算法如下:
1.保证camera的拍摄场景中没有运动物体,获取一段时间的视频(假设有n秒)
2.提取视频中的每一帧图像,将图片转换成YUV格式,提取Y分量矩阵,这样我们就得到了n个Y分量矩阵
3.计算这n个Y分量矩阵中每一个元素的方差,得到Y分量方差矩阵
4.求取Y分量方差矩阵中所有元素的平均值,以该平均值作为一幅图像的动态噪声指标
将上述中的Y分量改为UV分量,则可以计算色度动态噪声。
3.2. 静态噪声
可以使用图像中18度灰墙面部分的方差作为静态噪声的评价方法。该方法与Imatest中评价静态噪声的方法一致。具体算法如下:
1.获取一张图片(jpg或bmp格式),选取图片中18度灰平坦的墙面区域或者24色卡最底下一排的中间色块或者灰阶卡的M色块作为ROI区域
2.将ROI区域转换成YUV格式,提取Y分量矩阵
3.求取Y分量矩阵中所有元素的均值和方差,求其比值得到信噪比,该数值表征亮度静态噪声
将上述中的Y分量改为UV分量,则可以计算色度静态噪声。
4. 亮度相关
4.1. 亮度
可以使用整幅画面的平均亮度来表征。
4.2. AE收敛
画出一段视频中每一帧的亮度变化即可。
4.3. 局部过曝和欠曝
统计一幅图片中所有像素中亮度高于160或者低于70的像素个数即可。
部分AE算法会考虑到做这个统计来防止画面过曝。
4.4. 对比度
采用整幅图像Y值的方差即可。
5. 色彩相关
5.1. 白平衡
可以采用整幅画面的s值。具体算法如下:
1.获取一张图片(jpg或bmp格式)
2.将图片转换成HSV格式,提取S分量矩阵
3.求取S分量矩阵中所有元素的平均值,以该平均值作为一幅图像的白平衡指标
上述这种算法的本质是灰色世界理论,因此具有灰色世界法的缺陷,但优点是能够分析整个图像,不需要人工参与。此外还可以手动框选画面中的18度灰区域,这种方法更准确一些。
5.2. 饱和度
饱和度的计算只能采用相对值,因为我们无法获取拍摄物体的色彩信息,故饱和度的指标只有跟竞品比较才有意义。具体算法如下:
1.获取一张图片(jpg或bmp格式)
2.将图片转换成Lab格式,提取a、b分量矩阵
3.将a、b分量矩阵平方后相加再开根号,得到饱和度矩阵
4.求取饱和度矩阵中所有元素的平均值,以该平均值作为一幅图像的饱和度指标