直接用CNN来做图像质量评价效果是不好的,因为在物体识别方面,CNN通常用来提取局部不变特征,而对无参考图像质量评价NR-IQA来说,需要能提取自然场景统计信息NSS。
因此本文修改了CNN的网络结构,能有效的提取图像质量特征,给出精确的评估。
另外,本文的方法还能进行局部图像质量的评估,而之前的方法都是对整个图像而言的。我们可以对小到32*32的块进行评估。
在LIVE数据库上,我们的CNN方法比CORNIA和BRISQUE要好。
我们的方法把特征提取和回归集成到常规的CNN框架里面来。
具体的做法: 对于一个灰度图像,首先做对比度归一化,然后做互不重叠的分块采样,然后用CNN对每一个块做图像质量评估,最后做一个平均就得到整个图像的评估。
局部对比度归一化,我们采用正负3个像素大小的块来做归一化,也就是块的大小是7*7。局部归一化的作用是很大的,块越大效果越差。
值得注意的是,用CNN做物体识别时,通常会对图片做一个全局的对比度归一化,这样会对光照和对比度变化不敏感,
但是用于图像质量评价时,对比度归一化应该是局部的。
池化,在做物体识别时,通常是对2*2的cell做池化,但是做图像质量评价时,我们发现图像的变形(distortion)通常是局部各向同性的(locally homogeneous),也就是说,例如,同样的变形发生在整个块中(32*32),
RELU,注意,RELU只允许非负值通过,因此我们在卷积和池化层上不用RELU,而是用线性单元,因为我们采用的最小池化通常会产生负值,用RELU就会丢掉这些信息了。
https://github.com/Adnan1011/NR-IQA-CNN
https://www.zhihu.com/question/52620126