博客
关于我
图像质量评价(二):VSI
阅读量:539 次
发布时间:2019-03-09

本文共 1478 字,大约阅读时间需要 4 分钟。

图像质量评价(二):Visual Saliency-Induced Index (VSI)

Visual Saliency-Induced Index(VSI)是一种基于图像显著性特征的全参考(FR)图像质量评价标准。与基于几何/相互洁度失真(GSM/SSIM)方法不同,VSI主要关注图像失真对视觉显著性(Visual Saliency, VS)的影响。

研究表明,图像质量的失真会显著影响视觉显著性特征图(VS map),且这种影响与失真程度有着强烈的相关性。为了验证这一假设,我们对TID2013数据集的VS maps进行了分析。该数据集包含25个参考图像,24种不同类型的失真,5个失真水平。每种失真类型和水平对应25个失真图像。首先,使用GBVS模型对数据集中所有图像计算VS maps。然后,对每个失真图像计算其与对应参考图像的VS maps的均方误差(MSE)。对同一类型同一水平失真的MSE求均值,结果显示出显著的相关性。

实验结果表明,大多数失真类型的VS maps中MSE值越大,对应的主观质量评分越低。如上图所示,c和e两种不同类型的失真,主观质量评分分别为5.05和2.40,对应的MSE值分别为4.49和198.36。结果显示,颜色饱和度改变(CCS)类型失真在VS maps中表现较差,这是由于VS计算过程中的归一化操作导致的。例如,对比度改(Contrast Change, CTC)类型失真因归一化操作影响了VS值的表现,使得VS maps无法准确反映对比度失真。

为应对这种问题,研究采用了梯度模流量(Gradient Modulus, GM)来补充VS的不足。例如,使用Scharr operator计算图像的水平和垂直梯度。如上图所示,ab两个图像的VS maps分别为cd和ef。通过对比Prosecutor检验结果表明,f相较于e有更明显的失真,说明GM map能够较为准确地反映对比度失真。

此外,由于颜色失真(如色度改变)无法通过单通道梯度值得以准确度量,研究进一步引入了M/N通道的信息,结合RGB空间变换。通过实验验证,这种方法能够有效补充颜色失真检测。

基于上述特征,VSI可以通过以下公式定义:

MS-x(x, y) = α * VS_s(x, y)/max(VS_i) + β * GM_map(x, y)/max(GM_j) + γ * M_map(x, y)/max(M_k) + δ * N_map(x, y)/max(N_l)

其中,α, β, γ, δ均为正权重常数。最终,图像的VSI值计算为各个像素的加权平均,具体公式如下:

VSI = avg( VS_map × VS_squared + GM_map × GM_squared + M_map × M_squared + N_map × N_squared )

通过实验验证,VSI与多个标准数据库(如TID2013,TID2008,CSIQ,LIVE)得出的指标表现优异。如下表所示:

数据集 SROCC KROCC PLCC RMSE
TID2013 0.8965 0.7183 0.9000 0.5404
TID2008 0.8979 0.7123 0.8762 0.6466
CSIQ 0.9423 0.7857 0.9279 0.0979
LIV 0.9524 0.8058 0.9482 8.6816
加权平均值 0.9100 0.7366 0.9033

这表明VSI在多个标准下均展现出良好的性能,具有广泛的应用价值。

转载地址:http://sgaiz.baihongyu.com/

你可能感兴趣的文章
Python 入门教程(2)搭建环境 2.4、VSCode配置Node.js运行环境
查看>>
Python 八大排序算法合集
查看>>
python 关于epoll的学习
查看>>
Python 内存管理
查看>>
Python 内嵌函数:它们有什么用处?
查看>>
Python 内置 sum 函数 vs. for 循环性能
查看>>
Python 内置时间模块
查看>>
python 内部如何实现命名元组?
查看>>
python 写入json数据到数据库
查看>>
Python 列表删除相同的元素
查看>>
Python 初学者需要知道的四条建议
查看>>
Python 判断字符串是否包含子字符串
查看>>
python 判断当前时间是否为零点
查看>>
python 利用pandas读取本地中CSV文件的指定列 列名重命名 并保存回本地
查看>>
python 利用pyspark读取HDFS中CSV文件的指定列 列名重命名 并保存回HDFS
查看>>
python 利用pyttsx3文字转语音
查看>>
python 利用已有Ner模型进行数据清洗合并
查看>>
python 到大数据开发工程师_如何成为一个大数据开发工程师?
查看>>
python 加密解密(base64, AES)
查看>>
Python 和Java 哪个更适合做自动化测试?
查看>>