Paper | Making a "Completely Blind" Image Quality Analyzer
质量评估大佬AC Bovik的作品,1200+引用。
目标问题:提出一些普适的、与主观质量接近的客观评估指标。普适意味着:无失真先验。
背景:现有的普适NR-IQA方法需要训练集(图像包含预期的失真,且需要人类评分数据)。这种方法泛化能力差,且要求高。
解决思路:从自然图像中获取一些统计数据(natural scene statistic, NSS),用来刻画图像质量。即不再需要人类评分数据用于训练。基于此的方法称为Natural Image Quality Evaluator (NIQE)。
效果:与SOTA的、基于训练的NR-IQA方法平起平坐。
意义:这种方法才是真正的blind。因为如果我们有合适的数据集,就说明我们对失真有了一定的预判,使得训练集和测试集的失真模式是一致的。虽然测试阶段是盲的,但训练显然非盲。
1. 技术细节
作者称之为no reference opinion-unaware distortion-unaware IQA model。一句话概括:将一系列quality-aware的特征,用一个多元高斯(multivariate Gaussian MVG)模型进行建模。那么,有损图像的质量就是其MVG 以及 自然图像的MVG 的距离。
1.1 NSS特征
第一步,图像归一化:减去局部均值,除以标准差+1:

这一步即计算了本文选择的NSS!根据参考文献[10]【这个文献很重要】,无损自然图像的式(1)遵循高斯分布。如果是非自然图像(如计算机渲染图像)或受损图像,那么分布就不像高斯分布。
注意:该指标在BRISQUE[3]中已经被用过。但BRISQUE方法没有NIQE好?
1.2 选择锐利块来计算NSS
第二步,我们选择块,来计算以上的NSS。注意,我们只考虑那些显著性高的区域,一般是锐利的区域[12]。前面我们计算了每个像素点邻域的标准差,因此我们可以据此估算该区域的锐利程度:

如图即选出的区域示例:

然后,我们简单设一个阈值,该阈值为整个图像峰值锐利度的75%。超过阈值即锐利块,被选出计算NSS。
1.3 一张图像得到36个特征
第三步,我们用零均值的广义高斯分布(generalized Gaussian distribution, GGD)来建模自然图像的NSS:


和[3]一样,本文通过相邻像素NSS的相乘,来检测该NSS指标的异常。
建模时,我们考虑4个方向、2种块的尺度。每一个GGD模型有4个参数,一共能产生36个特征。产生方法要看[3]。
1.4 用MVG建模这36个特征
第四步,我们用MVG建模自然图像的这36个特征。

1.5 NIQE指标
最后,我们计算目标MVG和自然MVG的距离,即NIQE得分:

2. 实验
我们只看一个实验:我们需要多少自然图像进行训练,模型才会收敛?

可见,当超过100张图像时,模型的稳定性就很好了。
Paper | Making a "Completely Blind" Image Quality Analyzer的更多相关文章
- Paper | No-reference Quality Assessment of Deblocked Images
目录 故事背景 本文方法(DBIQ) 发表在2016年Neurocomputing. 摘要 JPEG is the most commonly used image compression stand ...
- How to implement an algorithm from a scientific paper
Author: Emmanuel Goossaert 翻译 This article is a short guide to implementing an algorithm from a scie ...
- {ICIP2014}{收录论文列表}
This article come from HEREARS-L1: Learning Tuesday 10:30–12:30; Oral Session; Room: Leonard de Vinc ...
- Data Visualization – Banking Case Study Example (Part 1-6)
python信用评分卡(附代码,博主录制) https://study.163.com/course/introduction.htm?courseId=1005214003&utm_camp ...
- How To Improve Deep Learning Performance
如何提高深度学习性能 20 Tips, Tricks and Techniques That You Can Use ToFight Overfitting and Get Better Genera ...
- CodeForces 219B Special Offer! Super Price 999 Bourles!
Special Offer! Super Price 999 Bourles! Time Limit:1000MS Memory Limit:262144KB 64bit IO For ...
- Apache 'mod_accounting'模块SQL注入漏洞(CVE-2013-5697)
漏洞版本: mod_accounting 0.5 漏洞描述: BUGTRAQ ID: 62677 CVE ID: CVE-2013-5697 mod_accounting是Apache 1.3.x上的 ...
- Play XML Entities
链接:https://pentesterlab.com/exercises/play_xxe/course Introduction This course details the exploitat ...
- Generic XXE Detection
参考连接:https://www.christian-schneider.net/GenericXxeDetection.html In this article I present some tho ...
随机推荐
- celery定时器
Celery 1.什么是Clelery Celery是一个简单.灵活且可靠的,处理大量消息的分布式系统 专注于实时处理的异步任务队列 同时也支持任务调度 Celery架构 Celery的架构由三部分组 ...
- java之运算符的优先级
优先级 运算符 结合性 1 () [] 从左往右 2 ! +(正) -(负) ++ -- 从右往左 3 * / % 从左往右 4 << >> >>> 从左往 ...
- 手把手教你如何用 OpenCV + Python 实现人脸检测
配好了OpenCV的Python环境,OpenCV的Python环境搭建.于是迫不及待的想体验一下opencv的人脸识别,如下文. 必备知识 Haar-like Haar-like百科释义.通俗的来讲 ...
- pyqt5多线程-简单例子
一.主要代码逻辑 from PyQt5 import QtWidgets, QtCore from testqt.TEST_QT_FROM import Ui_Dialog import sys fr ...
- 1+X证书web前端开发中级对应课程分析
官方QQ群 1+x 证书 Web 前端开发 JavaScript 专项练习 http://blog.zh66.club/index.php/archives/198/ 1+x 证书 Web 前端开发初 ...
- httpclient超时时间设置及代理设置
超时时间 设置HttpClient的超时时间,非常有必要性,因为httpclient 默认超时时间很长,自己可以测试一下是多久,设置超时时间否则会影响自己系统的业务逻辑,例如阻塞系统,影响系统的吞吐量 ...
- Springboot 打包自带启动脚本
一直以来,我都是 gradlew build java -jar xxx.jar 来启动springboot项目的.今天突然发现,springboot自动封装了一个bootJar的任务脚本. demo ...
- 315道Python常见面试题
第一部分,Python基础篇 为什么学习Python? 通过什么途径学习的Python? Python和Java.PHP.C.C#.C++等其他语言的对比? 简述解释型和编译型编程语言? Python ...
- Python 内置函数补充匿名函数
Python3 匿名函数 定义一个函数与变量的定义非常相似,对于有名函数,必须通过变量名访问 def func(x,y,z=1): return x+y+z print(func(1,2,3)) 匿名 ...
- 用canvas画一个时钟
<!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...