全参考图像质量评价方法整理与实用性探讨

全参考图像质量评价方法整理与实用性探讨

一方面,在图像质量评价(评估)领域,一篇2004年TIP(该领域顶刊)至今已经被引用17652次(数据来谷歌学术2018.3.13),成为至今为止图像处理和视频工程领域引用量最高的论文之一,于2009年获得IEEE Signal Processing Society Best Paper Award;文章的第一作者Zhou Wang和第二作者Alan Bovik的论文引用总数分别高达42203次和72236次(数据来谷歌学术2018.3.13,绝大部分文章都是质量评价),两位作者于2015年均获Television Academy的Primetime Engineering Emmy Award(以上内容翻译自维基百科,奖项的重量级请自行百度)。

另一方面,该领域的科研人员纷纷表示“质量评价就是灌水的”;研究生也因被导师强迫做该方向而恐慌:"图像质量评价新生,开学研一,导师不让做项目,我该怎么做才能够保证自己将来找到一份好工作?",好心人士献计献策“依你的情况最好的选择是不要读研了,直接去工作”;一个IQA方向快被老板逼疯了的人表示“我觉得(图像质量评价)没什么意义”;大众对质量评价实际意义的质疑声此起彼伏:“我们为什么要评价图像的质量?或者说,我们评价图像的质量有什么实际应用?首先,现阶段,学术上评价的都是各种数据库和失真图像,已提出的方法成百上千,然而即使是面对自然图像Challenge数据库仍然倍感无力;其次,人类的评价标准是很复杂的,数据库隐藏的评价体系只代表那些被调查者的评价,并不一定契合整个人类的视觉一致性。那么,既没有一个完全正确的参考标准,又没有推而广之的实际应用,每年成千上万篇的评价图像质量核心期刊有何意义?”(以上内容均来自知乎)

同一个领域为什么会有这么大的反差,这一切究竟是人性的扭曲还是道德的沦丧?是教育的缺失还是现实的无奈?请跟随本文的脚步,一起探究这一切背后的不可告人的秘密。

背景介绍

为了保持完整性,首先介绍一点背景知识,如果有不熟悉该领域也方便了解,以下是每篇文章都会看到的一段话:质量评价有图像质量评价(Image Quality Assessment, IQA)和视频质量评价(Video Quality Assessment, VQA) (Image based Question and Answer和Visual Question Answering也叫IQA和VQA,而且比质量评价火多了,这很尴尬),QA分主观方法(人力来做,最大的用处就是建立数据库)和客观方法(人设计算法,算法来做),客观质量评价方法又分为全参考方法(Full-Reference, FR),半参考方法(Reduced-Reference, RR)和无参考方法(你以为是No-Reference, NR吧,但更常用的叫法是Blind, BIQA)。

FR同时有原始(无失真、参考)图像和失真图像难度较低,核心是对比两图像的信息量或特征相似度,是研究比较成熟的方向,NR只有失真图像难度较高,是近些年的研究热点,RR只有原始图像的部分信息,这类方法就无视吧,意义不明灌水居多(由于信息数量没有明确限制,有些文章提取的特征数量比原始图像的所有像素还多,且任何FR和NR方法经过适当加工都可以转换成RR方法,神奇吧)。

介绍完分类,再来看看IQA和VQA有什么用,主要归纳为以下三点:

  • 评价和指导图像和视频编码压缩。无损压缩方法能力非常有限,主流图像视频编码压缩方法都是以有损压缩为主以无损压缩为辅,一方面,编码框架中每个模块的选择和参数设置都以图像质量为依据,另一方面,从H.263到H.264再到H.265,每一代标准同等质量码率降低一半,压缩性能已经十分惊人,到现在想再进一步提升压缩性能已经越来越难,图像质量评价方法也是制约因素之一。
  • 评价和指导图像处理算法。论文都是王婆卖瓜自卖自夸,我们有时需要比较或选择图像处理算法,评价指标就是公平比较各种算法(是骡子是马拉出来溜溜), IQA是部分图像处理算法的评价指标之一,如图像去雾,去噪,合成等,再者,工业中很多问题,如人脸检测与识别系统,如果辅以高性能质量评价做预处理,系统会稳定高效很多(下图仅表达膜拜与仰慕,没有其他意思)。
  • 用户终端的视频质量监控。在远程服务相关应用,如视频会议,远程教育,网络直播等应用场合中,实时监控用户端的视频质量,以便及时应对设备故障,网络不稳定等状况,做到运筹帷幄之中,决胜千里之外。

全参考方法介绍

终于到正文了,本文以研究比较成熟的FR IQA方法为主要研究对象,各方法的详细流程和优点请看原论文,这里简要介绍各方法,后重点探讨论文里打死都不会说的缺点,下面掌声有请各位主角依次登台亮相:

  • Mean Square Error(MSE) / Peak Signal to Noise Ratio(PSNR)是图像/视频处理领域目前应用最广的性能量化指标,简单易用速度快,在目前应用最广泛的视频编码标准H.264/AVC和最新的H.265/HEVC中,PSNR依然是最主要的客观评价方法。众所周知,MSE/PSNR与主观感知的一致性很低,如下图中的情况,圆内是原始图像,圆外6幅加入不同失真,明显主观质量相差很大,但它们的MSE完全一样,即PSNR也完全一样。失真图像按照SSIM(下一位主角)排列,SSIM的表现要好得多。可见,只要像素值有变化,不论这种变化是超好的方向还是坏的方向,也不论这种变化是否会被察觉到,都会改变PSNR,此外,PSNR越大图像质量越高,但取值范围不一定,最大值与图像分辨率有关。
  • 挖坑之作,图像质量评价神作,04年TIP的Structural SIMilarity(SSIM) ece.uwaterloo.ca/~z70wa(OpenCV中有PSNR和SSIM的实现),奠定了质量评价的标准姿势,养活了一大批科研人员。SSIM认为人类视觉感知能高度自适应提取场景中的结构信息,主要有三大创新:1) 虽然都是以逐点方式对比,PSNR只对比当前点的像素值,而SSIM以每个像素点为中心的小块(11\times 11)为单位,对比小图像块反映的结构信息;2) PSNR只能对比像素值,而SSIM对比图像块的三种统计特征,即亮度(均值)、对比度(方差)和结构(协方差)信息;3) 对比方式的差异,PSNR采用差的平方,而SSIM采用下式:q = \frac{2ab+C}{a^{2}+b^{2}+C} ,a和b的相似度取值范围是[0,1],C是常数用于是防止分母为0和调节各种特征之间的相对重要性(某些方法过分调节该参数造成过拟合,出现某个库效果很好,其他库很差的现象)。最后平均所有点的质量就是SSIM值,取值范围也是[0,1],之后又推出了MS-SSIM(Multi-Scale Structural SIMilarity) Multi-scale Structural Similarity for Image Quality Assessment和11年TIP的IW-SSIM(Information content weighting Structural SIMilarity) ece.uwaterloo.ca/~z70wa,总的来说效果越来越好,速度越来越慢。
  • 接下来要出场的两位06年TIP的VIF(Visual Information Fidelity)Laboratory for Image and Video Engineering(LIVE实验室主页,有数据库和很多开源代码,赞)和10年JEI的MAD(Most apparent distortion)MAD: Most Apparent Distortion Algorithm for IQA,这两位不用太在意,他们出来就是露个脸,虽然曾经也效果超群,但现在来看很一般了,且致命弱点是速度慢,慢的要命的那种慢,目前常用于衬托其他算法,就不隆重介绍了。
  • 下一位隆重登场的是11年TIP的FSIM(Feature SIMilarity)Feature SIMilarity Index for IQA,同济Lin Zhang大神,是质量评价领域11年以后引用量最高的论文(谷歌学术1680次)。FSIM强调人类视觉系统理解图像主要根据图像低级特征,以图像特征代替SSIM中的统计特征,选择了相位一致性和梯度(3\times 3)幅值两种特征建立FSIM,又加入颜色特征建立FSIMc,并用相位一致性信息做加权平均,评价准确性尤其在TID2008库上有大幅提升,但速度比较慢。
  • 低级特征哪个效果最好呢?12年TIP的GSM(Gradient SiMilarity)Associate Professor Lin Weisi (主页),强调梯度能传达重要的视觉信息,对场景理解至关重要,梯度(5\times 5)特征和像素值结合就能达到不错的效果,虽然性能比FSIM差一点,但算法计算速度快很多。
  • 另一篇Lin Zhang大神的文章,14年TIP的VSI(Visual Saliency-based Index)A Visual Saliency based IQA Index超阈值的失真很大程度上会影响图像的显著图,把FSIMc中的相位一致性特征换成了显著图,类似地同时作为特征和加权值,一次性将两大灌水领域结合(显著图原来真的有用,恍然大悟),但效果到目前为止都是
    state-of-the-art ,依然,速度很慢。GSM已经证明梯度很重要,而这篇文章保留了FSIMc中的梯度和颜色,有理由相信颜色信息也很重要,TID库中也有专门的颜色失真类型,考虑颜色可以提高算法在TID库的效果。
  • 下面出场的要重点推荐了,Wufeng Xue大神14年TIP的GMSD(
    Gradient Magnitude Similarity Deviation)
    Publication | Wufeng Xue's homepage,相当高效,目测会成为下一篇引用量爆表的论文(谷歌学术331次)。图像梯度对图像失真敏感,失真图像中不同局部结构的质量下降程度不同,只用梯度作为特征,pooling采用标准差代替以前的均值,就达到了 state-of-the-art 性能,打脸了一票看起来高大上的水文,后面会看到,GMSD的速度比SSIM还要快,虽然标准差pooling不像均值pooling有规整的取值范围[0,1],且质量值是越小质量越高,但后面我们会讨论,规整的取值范围也没多大用。至于标准差pooling为什么work,作者并没有给出合理解释,我也没想通,难道是类似Dropout,代码写错误打误撞。。
  • 还有些群演和新秀也介绍一下。13年TIP的SFF(Sparse Feature Fidelity)SFF: Sparse Feature Fidelity,16年TIP的SCQI(Structural Contrast-Quality Index)和16年TBC的ADD-GSIM(Analysis of Distortion Distribution GSIM) (代码地址论文中都有,就不贴出主页了),毕业后就再没读过相关论文,这几篇不做评价。
  • 最后一位,是一篇等级比较低(4区)的文章,16年IEEE Access的MDSI(Mean Deviation Similarity Index),除了少数training-based FR方法,是目前综合性能最高的。training-based FR如13‘TIP的MMF(Multi-Method Fusion)和15'TIP的DOG-SSIMc,用其他全参考方法的结果作为特征,机器学习方法训练回归模型,效果都不错(虽然这样做并没有错,为何隐隐有种耍流氓的感觉)。回到MDSI,前面已经提到了颜色特征的必要性,于是MDSI在GMSD中加入了颜色特征,集齐了梯度、颜色和方差pooling这三颗龙珠,两个字,高效,虽然创新度并不高。

常用数据库及算法性能评价指标

主角依次都见过了,接下来就是舞台、灯光、MUSIC。在进行分析探讨之前,有必要介绍下IQA的常用测试数据库,评价图像质量评价指标的指标(其实这个指标也可以评价一下,如PLCC和SRCC真的靠谱吗等)和本文的分析立场即视频编码。

图像质量评价的数据库很多,各种失真类型针对各种图像,但公认度最高的还是前四个,即LIVE, CSIQ, TID2008和TID2013,这些库都提供了每幅失真图像的主观评分值MOS,也就是ground truth。原始图像数量都差不多,前两个库都是针对常见失真类型为主,即加性高斯白噪声、高斯模糊、JPEG压缩和JPEG2000压缩,而TID2013包含失真图像数量有3000幅,主观实验打分人数是917人,权威性当然是最高的,但由于失真类型数量高达25种,同时也是最难的。LIVE和CSIQ两个库可以做到很高了,目前FR IQA的主要战场是TID的两个库(BIQA还是只能在LIVE和CSIQ上玩玩,TID就惨不忍睹了)。下面两个表分别是数据库大致情况,和分别包括的失真类型,这里提到失真类型,是因为后面要用到。

接下来我们就来简单介绍并评价一下用于评价图像质量评价指标的指标,推荐看看这个,Lin Zhang大神业界良心 IQA Research WebpageSRCC(Spearman Rank order Correlation Coefficient)和KRCC(Kendall Rank order Correlation Coefficient)评价方法的单调性,只考虑排列顺序,高质量图像的得分是不是都比低质量图像高(或低),范围[-1,1]绝对值越大越好PLCC(Pearson Linear Correlation Coefficient)和RMSE(Root Mean Squared Error)评价方法的准确性,图像的得分与MOS值是不是一样,PLCC范围[-1,1]绝对值越大越好,RMSE越小越好,没有上限,最小是0。


着重强调,由于MOS值的范围各不相同,如LIVE是[0,100],TID是[0,9],不同质量评价方法给出的质量值也各不相同,如PSNR通常小于50dB(非事实),SSIM在[0,1],所以在计算PLCC和RMSE之前需要经过一个五参数非线性拟合(SRCC和KRCC不需要),将客观质量值(IQA算法得到质量值)映射到主观质量值(主观实验得到的MOS)。所以四个指标中SRCC最重要,因为SRCC和KRCC类似,PLCC和RMSE类似,而经非线性拟合后PLCC与SRCC大小相当(VQA中常用的是四参数拟合)

接下来以最热门的H.264编码框架为例,聊聊失真问题,H.265编码框架与H.264变化不大,失真问题也类似(很好奇H.266会怎么进化)。首先,编码器之前是视频采集和预处理,这部分虽然也会带来很小失真,通常忽略认为输入图像就是无失真的原始图像。然后,在下图的H.264编码框架中,帧间预测和帧内预测都是以宏块为单位进行的,且空间相邻宏块的模式有可能不一样,这导致块效应,需要注意一点,虽然运动估计有可能错误,但只会导致残差变大码率升高,并不会带来失真。次之,是整数DCT变换和量化,整数DCT变换也是有误差的,但相对与量化来说可以忽略,整个编码框架中最重要的失真就是量化失真,由量化系数QP控制。再次之,熵编码是无损压缩,没有失真。最后,是解码重建的参考图像和解码过程中的去块滤波器,虽然是为了平滑块边界,但它毕竟是滤波器,在减少块效应的同时也会引入其他失真,如模糊,整体来看去块滤波器利大于弊。之所以会提到很多看起来无关紧要的失真,是因为编码后的图像会同时包含这些失真,多重失真叠加,也叫做混合失真,情况就复杂的多了。编码系统中还有颜色失真,编码系统的输入一般是YUV420格式,这表示两个色度分量只有亮度分量的1/4,这相当于下采样失真,而编码系统中色度分量继承亮度分量的编码方式,这意味着下采样失真叠加了混合失真,即使色度分量冗余度很高也会影响,编码失真严重的视频中明显能感受到颜色失真(由于本人对编码框架的了解有限,可能有错误和疏漏,欢迎指正)。在这种复杂情况下,基于像素点信息的PSNR就显得更加无力了,虽然PSNR越高代表与原始图像越像,但编码系统都是有损压缩,我们的目标是:码率尽可能低同时图像质量尽可能高,即只要能降低码率还看不出来,怎么改变像素值都可以,这就需要更准确的IQA方法代替PSNR。

算法性能分析

压轴戏登场,这里才是本文的主要目的,分析目前IQA方法的实用性和问题所在,探讨一开始提出的几个疑问,这里再次提问:

1. 众所周知PSNR不好,而2004年就提出的SSIM作为引用量达13000+次的方法,表明公认度很高了,为什么H.264和H.265的主要客观评价标准依然是PSNR?为什么不以SSIM为主,舍弃主观一致性很低的PSNR呢?
2. 连SSIM都没有成为主流标准,每年成千上万篇的质量评价论文究竟意义何在?研究图像质量评价真的有用吗?看起来更好的FSIMc和GMSD又怎么样?
  • 综合性能对比,下表是各经典和state-of-the-art算法在四个库上的性能,数据来自MDSI论文,补充数据,在TID2008和TID2013上,PSNR的SRCC是0.5245和0.6869,SSIM的SRCC是0.7749和0.7417(这两个应用最广泛的都不比较,怎么想的),综合性能LIVE库在0.96以上,CSIQ库在0.95以上,这两个库已经非常高了,但TID两个库都在0.90左右,还有很大提升空间,VSI、SCQI和MDSI三种方法这TID库的表现比较好,整体来看MDSI最好,而SSIM最好改进版本IW-SSIM也差了一大截,更别说SSIM和PSNR的效果了,这么说来FR IQA这些年来还是有很大发展的
  • 算法速度对比,速度很大程度也决定了算法实用性。下表结果也来自文章MDSI论文,给出了两种分辨率图像的算法速度,单位ms,电脑配置:Corei7 3.40GHz CPU,16 GB RAM,软件:Windows 7, MATLAB 2013b。速度决定了FSIMc和VSI不太实用(人生苦短,不能浪费在等算法跑)而PSNR和SSIM比较受欢迎。综合评价准确性和速度,GMSD和MDSI的实用性比较高,但两者都不是规整范围,从前面两个方向来看,FR IQA总体来说算法性能和速度都在提高,看起来好像这些工作都是很有意义

美好的看完了,再来看看黑暗面。不同失真类型的性能对比,下表是各算法在各数据库上针对不同失真类型的SRCC数据,结果来自FSIM论文(14年TIP),因为之后论文都没有给出各失真类型的评价性能数据,我补充了VSI和GMSD的数据,缺少MDSI数据有兴趣可以试试。

  • 首先来看LIVE和CSIQ,所有算法对常见失真类型都比较准确,平均准确度都在提升。再注意看CSIQ中的VIF,有4种失真类型进入前三,但对比前面的表格,整体性能却排在倒数第二,也就是说,各失真类型的SRCC高,并不意味着总体SRCC也高,这点就很奇怪了,因为总体SRCC是所有失真类型图像一起排序,其实PSNR对各失真类型的评价也比较准确,虽然只有一种进入前三。
  1. 接下来看看TID2008的17种失真类型,各算法差异很大有好有坏,这里再次证明总体SRCC高并不代表对各种失真类型都准确,更加惊人的是在这么多算法中(包括VSI和GMSD),PSNR竟然有7种失真类型SRCC排在前三,这其中还包括量化噪声QN(与编码中最重要的量化失真有关系吗),并没有我们预想的碾压之势。
  2. SSIM只有两种排在前三(blur和block),且后面几种失真类型所有算法都不好,这么来看PSNR也没那么差,这就很让人怀疑质量评价的意义了,因为在实际应用中,我们更多情况面对的是单一失真类型,或像H.264中固定的混合失真类型,较少会遇到不同失真类型的图像需要比较质量,我们更加需要单一类型评价比较准确的算法。再单独比较下SSIM和PSNR,宣称与主观感知一致性很高的SSIM,17种失真类型中有8种的SRCC比PSNR低,敢问SSIM凭什么代替PSNR
  • 下面是各算法在TID2013数据库上不同失真类型的SRCC数据,结果来自VSI论文,之后的其他论文没有找到相关数据,但VSI竟然没有把PSNR列为比较算法表示很惊讶。SSIM现在来看算比较差的,作为这个库上顶尖算法代表的VSI各失真类型都比较高,但局部块失真Block类型只有0.1713,而CTC的0.4754和MN、MS的0.7,看起来格外扎眼,而FSIMc比较均衡,还有两者速度都很慢。

简单总结下:数据库上总体的SRCC突飞猛进,而各失真类型的SRCC平均都在提到,但各方法都参差不齐,没有哪个算法对每种失真类型都能达到0.9以上。近两年的算法有没有能胜任编码系统中的图像质量评价任务,还需要在专门针对编码失真的数据库上实验验证。

最后再谈谈VQA:有人可能会说VQA用在编码系统中是不是更合适?其实VQA的基础就是IQA,目前研究的失真类型也差不多,无非就是考虑在时域质量有波动时的处理策略,但是,1) 现有的这些时域模型并不靠谱和完全普适,都是为了提高SRCC而提高的,2) 视频质量评价数据库的视频都在10s左右,这并不是一般情况,这些库上得到的结论要经过实践检验,3) 质量波动较大的情况并不常见,网络状况波动没有那么严重,而且一个固定的编码系统输出的视频质量相对稳定,研究质量波动时域模型的意义不大,所以,还是应该研究能准确快速评价编码失真的FR IQA方法并在相应数据库上验证,这样更具有说服力

总结和探讨

最后总结并探讨实用性,表明几个观点:

1. 两篇论文证明SSIM并不比PSNR优秀

[1] Hore A, Ziou D. Image quality metrics: PSNR vs. SSIM [C]// IEEE ICPR, 2010.

[2] Dosselmann R, Yang X D. A comprehensive assessment of the structural similarity index [J]. Signal, Image and Video Processing, 2011.

第一篇通过实验证明PSNR和SSIM可以互相预测,且PSNR对加性高斯噪声更加敏感,而SSIM对JPEG压缩更加敏感。第二篇SSIM与MSE直接相关,效果接近且存在代数关系,具体请看论文。但这里需要指出,SSIM原始论文只在JPEG和JPEG2000压缩失真数据库上测试,那你也不能强迫它对其他失真也敏感,也可能是后面灌水的文章把SSIM吹的太厉害了,但我们也不能说SSIM比PSNR好很多,更不能把SSIM作为编码系统的主要客观评价方法。

2. 就单一失真类型来看,暂时还没有一种方法(也许还有我不知道的NB方法)在所有失真类型上都能达到比较准确的水平(0.9以上),这也证明目前还没有方法真的与主观感知一致性很高,总体的SRCC水分很大,仅就编码系统来说,能准确评价相关失真也就够用了,但这也需要实验验证。

3. 单一质量值的意义问题。关于PSNR我们有个经验值:一般情况下,PSNR 的值高的图象质量相对较高,通常,当PSNR 值在28以上时,图象质量差异不太显著,当高于35~40时,则肉眼分辨不出差异。虽然我们已经讨论了PSNR并不靠谱(如图像直方图增强,PSNR也变化很大),但毕竟我们用了这么多年了,虽然PSNR的数值范围非常大,但我们也总结出了前面这个经验值。可对于SSIM,或者更新的算法,即使它们有确定范围[0,1],那SSIM=0.8表示图像质量比较高吗?下面是FSIM论文中给出的TID2008上各方法的散点图,x轴算法评分(客观评分),y轴是MOS值(主观评分),散点的拟合曲线越接近对角直线越好。而事实是散点分布不均匀,拟合曲线不是对角直线,SSIM=0.8对应的主观得分只有0.35+,而MOS范围是0~8,这表示0.8的失真图像质量较差,相应的,其他算法也都是这样,如果没有经验,给你单一质量值根本没有意义。这就是计算PLCC和RMSE要先五参数拟合的必要性。对于SSIM,质量值在0.95以上我们才能说图像质量高(貌似是,不确定),这就是为什么前面说规整的质量值范围并没有什么用。建议是不是应该把五参数拟合也固定在算法之后,这样的评价值与MOS的意义更相关,至于用哪个数据库来做五参数拟合,是个问题。

4. 非线性问题。紧接前面质量值问题,我们提出下一个问题:PSNR质量值下降1dB的图像质量变化大吗?SSIM质量值下降0.003呢?回到我们的根本需求,视频编码为了压缩,质量是一定会下降的,核心问题是尽量压缩而图像质量下降不明显。好了,问题就在这里,怎么样就是不明显?PSNR从38下降到37或者从20下降到19的\Delta PSNR=1dB一样吗?还是看上面SSIM的散点图,这里主要考虑拟合曲线的斜率,如SSIM斜率是变化的,说明即使SSIM下降大小固定,不同范围的主观质量下降也是不一样的,即主观图像质量变化不一样,其他算法包括PSNR也是一样。需要提醒的是,曲线拟合是所有图像一起,如果单一类型拟合曲线会更加妖娆。

5.方法的可靠性。再强调一遍,视频编码系统非常复杂但也相对稳定,仅四种常见图像失真评价准确是远远不够的,还是应该研究能准确快速评价编码相关失真的FR IQA方法并在相应数据库上验证,这样更具有说服力,现有算法有没有能胜任的也不确定,需要实验验证,但SSIM大概也许可能是不行的。

END

感谢您认真读完,到这里相信您对开始的问题也有了答案,探讨部分还是要以数据和实验结果为准,我的看法可能比较片面,如果有不同看法欢迎讨论。如果您有更好的算法适合编码系统的,或者有可用的编码相关质量评价数据库,最好包括H.264和H.265失真类型,以便验证这些方法的可行性,感谢您的分享。

郑重申明:水平有限,难免错误和疏漏,尤其是对编码框架一知半解,也不知道TID的25种失真类型所对应的具体产生原因和用途,仅是对来自论文的方法和数据讨论,个人看法不一定正确,无参考质量评价部分不会写了,谢谢!

编辑于 2018-03-13