【IQA技术专题】 无参考自然图像IQA:NIQE

在这里插入图片描述

无参考自然图像IQA:NIQE:Making a “Completely Blind” Image Quality Analyzer(2012 IEEE)

  • 专题介绍
  • 一、研究背景
  • 二、NIQE方法
    • 2.1 NSS model
    • 2.2 Patch Selection
    • 2.3 Characterizing Image Patches
    • 2.4 Multivariate Gaussian Model
  • 三、实验
  • 四、总结

本文将围绕《Making a “Completely Blind” Image Quality Analyzer》展开完整解析。NIQE实现了无参考的图像质量评价指标,可以有效地对图像的感知(Fidelity)质量进行评估。本文提出了一种完全盲目的图像质量评估(IQA)模型 —— 自然图像质量评估器(NIQE),它基于自然场景统计(NSS)模型,通过提取自然图像的统计特征构建多元高斯(MVG)模型,再计算测试图像特征与该模型的距离来评估质量。与需训练的现有模型不同,NIQE 无需依赖失真图像或人类主观评分,在 LIVE IQA 数据库上的性能优于 PSNR、SSIM 等全参考模型,且与顶级无参考模型相当。参考资料如下:
[1]. 论文地址
[2]. 代码地址

论文整体结构思维导图如下:
在这里插入图片描述


专题介绍

图像质量评价(Image Quality Assessment, IQA)是图像处理、计算机视觉和多媒体通信等领域的关键技术之一。IQA不仅被用于学术研究,更在影像相关行业内实现了完整的商业化应用,涉及影视、智能手机、专业相机、安防监控、工业质检、医疗影像等。IQA与图像如影随形,其重要程度可见一斑。

但随着算法侧的能力不断突破,AIGC技术发展火热,早期的IQA或已无法准确评估新技术的能力。另一方面,千行百业中各类应用对图像质量的需求也存在差异和变化,旧标准也面临着适应性不足的挑战。

本专题旨在梳理和跟进IQA技术发展内容和趋势,为读者分享有价值、有意思的IQA。希望能够为底层视觉领域内的研究者和从业者提供一些参考和思路。

系列文章如下:
【1】🔥IQA综述
【2】PSNR&SSIM
【3】Q-Insight
【4】VSI
【5】LPIPS
【6】DISTS
【7】Q-align
【8】GMSD


一、研究背景

盲IQA目的是设计一个尽可能少的用先验退化知识来对图像进行评估的方法,通俗来说就是不清楚什么退化方法会影响图像质量的前提下来评估图像质量。当然,无参考图像方法里面还有一些是已知很多图像和他们的评分来进行设计的,且都达到了sota。该论文的NIQE(Natural Image Quality Evaluator)方法更加纯粹,不需要人为打分的数据集,属于完全盲方法,即连模型的建立过程也不需要人类评分和参考图像。NIQE方法基于space domain natural scene数据模型,特征来源于自然未经退化的图像,实验结果相比较一些需要训练的方法也有优势。

opinion-aware OA 指模型已经在一个由人类评定的扭曲图像和相关的主观意见分数组成的数据库上进行了训练;相对应的是 opinion unaware’ (OU) 不需要在扭曲图像的人类判断数据库上进行训练的模型;distortion unaware’ (DU)和distortion aware’ (DA) 指是不是清楚扭曲的类型。

依据上面的分类,我们可知例如PSNR和SSIM等属于是FR中的DU,该论文的方法是一个NSS(natural scene statistic)-based的OU-DU NRIQA方法,即基于NSS模型,不需要人类判断数据打分,不需要已知扭曲类型的一种无参考图像评估方法。

二、NIQE方法

评估方法大致可以分为以下4个步骤,用下图表示。
在这里插入图片描述

  1. 提取quality aware的特征,这个特征来源于空间域自然场景统计模型(NSS模型)。
  2. 在图中选取合适的块来进行评估,作者设计了一种方法来选取图像中更能代表图像质量的块,而非全部使用。
  3. 从补丁中提取到的NSS特征使用零均值广义高斯分布(GGD)来进行拟合,拟合的分布参数作者会进一步送给多元高斯模型拟合使用。
  4. 使用步骤3的分布参数特征fit in一个multivariate Gaussian (MVG) model 多元高斯分布。

这样是完成了一次MVG模型的拟合。

为进一步得到NIQE指标,作者会首先选取来自Flickr无版权数据与Berkeley图像分割数据库的125张自然图像,分辨率范围480×320至1280×720,进行一次上述的过程得到一个标准的多元高斯分布。在测试时,只需要对待评估图像重复一次上述的过程并计算两个分布之间的马氏距离即可。

2.1 NSS model

首先,对图像进行局部标准化,即下式:I^(i,j)=I(i,j)−μ(i,j)σ(i,j)+1\hat{I}(i, j) = \frac{I(i, j) - \mu(i, j)}{\sigma(i, j) + 1}I^(i,j)=σ(i,j)+1I(i,j)μ(i,j)其中iiijjj是二维图像的indices,而μ\muμσ\sigmaσ的计算如下:μ(i,j)=∑k=−KK∑l=−LLwk,lI(i+k,j+l)\mu(i, j) = \sum_{k=-K}^{K} \sum_{l=-L}^{L} w_{k, l} I(i + k, j + l)μ(i,j)=k=KKl=LLwk,lI(i+k,j+l) σ(i,j)=∑k=−KK∑l=−LLwk,l[I(i+k,j+l)−μ(i,j)]2\sigma(i, j) = \sqrt{\sum_{k=-K}^{K} \sum_{l=-L}^{L} w_{k, l} \left[ I(i + k, j + l) - \mu(i, j) \right]^{2}}σ(i,j)=k=KKl=LLwk,l[I(i+k,j+l)μ(i,j)]2是在kernel大小为(K,L)中计算的μ\muμσ\sigmaσ,这里的wk,lw_{k,l}wk,l是2D圆对称高斯,各向同性的权重。

基于前面提到的NSS模型,作者发现了如果一个图像没有发生明显的退化的话,提取的NSS特征会满足一个高斯分布,当然作者给出了特殊的情况,比如图像不是自然图像,或者遭受了一些非自然的退化。因此这个特征是可以用于我们去感知图像质量的变化。

2.2 Patch Selection

这里作者将图像分为PxP个patch,但是只会使用一小部分的patch,原因在于,作者分析了人类判断质量的一些准则,人类判断会更倾向于去给到图像边缘处更高的权重,which means如果一个边缘更锐利的图像,会认为更清晰,这里作者举了一个散焦模糊的例子,也提到了这种准则也是需要撇开美学来谈的(美学里面可能不是这样),任何散焦模糊都是意味着信息的丢失。

作者首先提到下式可以有效衡量这个梯度边缘信息,就是平均方差:
δ(b)=∑(i,j)∈patch bσ(i,j)\delta(b) = \sum_{\substack{(i, j) \in \text{patch } b}} \sigma(i, j)δ(b)=(i,j)patch bσ(i,j)通过对patch b进行累加,获取到patch b的平均方差场,计算了之后,就选择大于阈值T的块就行了,T的计算是通过计算最大块锐度的0.75来获取的。

2.3 Characterizing Image Patches

这里用到了一个叫零均值广义高斯分布的东西来拟合NSS模型:f(x;α,β)=α2βΓ(1/α)exp⁡(−(∣x∣β)α)f(x ; \alpha, \beta) = \frac{\alpha}{2 \beta \Gamma(1 / \alpha)} \exp\left(-\left( \frac{|x|}{\beta} \right)^{\alpha} \right)f(x;α,β)=2βΓ(1/α)αexp((βx)α) Γ(a)=∫0∞ta−1e−tdt(a>0)\Gamma(a) = \int_{0}^{\infty} t^{a-1} e^{-t} \, dt \quad (a > 0)Γ(a)=0ta1etdt(a>0)其中零均值广义高斯分布中的参数α\alphaαβ\betaβ可以用moment-matching的方法来进行计算。
接着再提取了4个特征是I^(i,j)I^(i,j+1)\hat{I}(i, j) \hat{I}(i, j+1)I^(i,j)I^(i,j+1)I^(i,j)I^(i+1,j)\hat{I}(i, j) \hat{I}(i+1, j)I^(i,j)I^(i+1,j), I^(i,j)I^(i+1,j+1)\hat{I}(i, j) \hat{I}(i+1, j+1)I^(i,j)I^(i+1,j+1)I^(i,j)I^(i+1,j−1)\hat{I}(i, j) \hat{I}(i+1, j-1)I^(i,j)I^(i+1,j1),即NSS模型的变种。这几个特征使用asymmetric generalized Gaussian distribution (AGGD),不对称高斯分布拟合:f(x;γ,βl,βr)={γ(βl+βr)Γ(1/γ)exp⁡(−(−xβl)γ)∀x≤0,γ(βl+βr)Γ(1/γ)exp⁡(−(xβr)γ)∀x≥0.f(x; \gamma, \beta_l, \beta_r) = \begin{cases} \frac{\gamma}{(\beta_l + \beta_r) \Gamma(1/\gamma)} \exp\left(-\left( \frac{-x}{\beta_l} \right)^{\gamma} \right) & \forall \, x \leq 0, \\ \frac{\gamma}{(\beta_l + \beta_r) \Gamma(1/\gamma)} \exp\left(-\left( \frac{x}{\beta_r} \right)^{\gamma} \right) & \forall \, x \geq 0. \end{cases}f(x;γ,βl,βr)=(βl+βr)Γ(1/γ)γexp((βlx)γ)(βl+βr)Γ(1/γ)γexp((βrx)γ)x0,x0.其中分布的均值为:η=(βr−βl)Γ(2/γ)Γ(1/γ)\eta = (\beta_r - \beta_l) \frac{\Gamma(2/\gamma)}{\Gamma(1/\gamma)}η=(βrβl)Γ(1/γ)Γ(2/γ)这几个参数的估计还是矩匹配方法。
经过上面这么多操作,可以得到了总共18个特征(α\alphaα+β\betaβ+4*(Γ\GammaΓ+βl\beta_lβl+βr\beta_rβr+η\etaη)),再对图像低通滤波加降采样,就可以得到总共36个特征。

2.4 Multivariate Gaussian Model

前面提取了众多的特征,然后将这些特征使用一个多元高斯拟合,作者选择了125幅大小从480 × 320到1280 × 720不等的自然图像来获得多变量高斯模型。这样得到了高质量图的一个模型,模型如下:fX(x1,…,xk)=1(2π)k/2∣∑∣1/2×exp⁡(−12(x−ν)T∑−1(x−ν))\begin{aligned} f_{X}(x_{1}, \ldots, x_{k}) &= \frac{1}{(2 \pi)^{k/2} \left| \sum \right|^{1/2}} \times \exp\left( -\frac{1}{2} (x - \nu)^T \sum^{-1} (x - \nu) \right) \end{aligned}fX(x1,,xk)=(2π)k/21/21×exp(21(xν)T1(xν))其中x1,...,xkx_1,...,x_kx1,...,xk是刚才提取的特征。
然后就自然而然的给出了NIQE的指数:D(ν1,ν2,∑1,∑2)=(ν1−ν2)T(∑1+∑22)−1(ν1−ν2)\begin{aligned} D\left(\nu_{1}, \nu_{2}, \sum_{1}, \sum_{2}\right) &= \sqrt{ \left( \nu_{1} - \nu_{2} \right)^{T} \left( \frac{\sum_{1} + \sum_{2}}{2} \right)^{-1} \left( \nu_{1} - \nu_{2} \right) } \end{aligned}D(ν1,ν2,1,2)=(ν1ν2)T(21+2)1(ν1ν2)

其中v1v_1v1v2v_2v2以及协方差矩阵是前面的多元高斯模型的参数。

三、实验

首先是定量实验。测试主要在LIVE IQA 数据库上进行,含 5 类失真(JPEG、JPEG2000、高斯噪声、高斯模糊、Rayleigh fast fading channel distortion),用 DMOS 表示主观质量。
在LIVE IQA数据集上的SROCC指标是最高的。
在这里插入图片描述
后续对比了线性相关度,也是最高的。
在这里插入图片描述

选用建立标准模型的图像数量
如下图所示,仅需约 20 张自然图像即可构建稳定模型,性能随图像数量增加趋于稳定。
在这里插入图片描述

四、总结

NIQE 是首个 OU-DU 型盲 IQA 模型,无需失真图像或主观评分,通过自然图像统计规律评估质量,性能优异,适用于无约束环境。NIQE在学术界和比赛中也会经常使用来作为客观评价图像质量的指标。

后续会更新代码讲解。


感谢阅读,欢迎留言或私信,一起探讨和交流,如果对你有帮助的话,也希望可以给博主点一个关注,谢谢。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/web/95450.shtml
繁体地址,请注明出处:http://hk.pswp.cn/web/95450.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

变位齿轮:分度圆、节圆与中心距的 “特殊关联”

接着上回的话题,在标准齿轮中,我们追求的是“节圆与分度圆重合”的理想状态。但当实际工程提出更苛刻的要求时,比如:需要避免齿轮根切(齿数过少时)。要配凑一个非标准的中心距。需要大幅提高小齿轮的强度和…

Spring Boot集成Kafka常见业务场景最佳实践实战指南

一、基础集成与核心组件解析 &#xff08;一&#xff09;环境搭建与依赖配置 在 Spring Boot 项目中集成 Kafka&#xff0c;首先需通过 Maven 添加核心依赖&#xff1a; <dependency> <groupId>org.springframework.kafka</groupId> <artifactId>…

黑芝麻智能与云深处科技达成战略合作,共推具身智能平台全球市场应用

8月28日&#xff0c;智能汽车计算芯片引领者黑芝麻智能与具身智能创新技术与行业应用引领者云深处科技达成战略合作。双方将围绕具身智能控制平台开发、行业智能解决方案共建与国际市场拓展三大方向展开深度合作&#xff0c;携手推进高性能机器人在多行业场景的规模化落地与应用…

AI零售创业公司:零眸智能

零眸智能公司分析 引言 “这次融资与合作&#xff0c;让我们的全球化节奏更坚实也更有确定性。秉持‘让热爱与科技成就无限可能’&#xff0c;我们坚持真诚合作、长期主义与价值共享&#xff0c;把行业垂直AI能力按里程碑推进并沉淀为可复制的标准。” —— 零眸智能CEO樊凌云①…

学习插入排序+希尔排序并使用java写代码

目录 插入排序 例子时间复杂度java代码 希尔排序&#xff08;缩小增量排序&#xff09; 例子时间复杂度java代码 相关文章 学习数据结构理论算法时间复杂度学习有序二叉树平衡二叉树红黑树学习冒泡排序选择排序并使用java写代码学习插入排序希尔排序并使用java写代码学习堆…

win10虚拟机报错打不开和ubuntu空间不足

ubuntu主机安装的win10虚拟机报错如下&#xff0c;导致虚拟机无法打开解决办法 如上图&#xff0c;找到ubuntu主机home目录中win10的路径&#xff0c;将红色框的文件删除&#xff0c;然后将绿色框中的文件.prev后缀去掉&#xff0c;如下图所示。重新打开虚拟机就可以了 ubuntu空…

指纹手机技术:破解亚马逊多账号运营痛点的底层逻辑与实践

在亚马逊平台运营中&#xff0c;账号关联、行为异常、网络不合规是卖家绕不开的三大核心风险。随着亚马逊反作弊系统&#xff08;如 A9 算法&#xff09;对设备指纹、操作轨迹、网络特征的识别精度持续提升&#xff0c;传统 “普通手机 VPN” 的多账号运营模式已频繁触发风控&…

《UE5_C++多人TPS完整教程》学习笔记46 ——《P47 蹲伏行走(Crouching Walking)》

本文为B站系列教学视频 《UE5_C多人TPS完整教程》 —— 《P47 蹲伏行走&#xff08;Crouching Walking&#xff09;》 的学习笔记&#xff0c;该系列教学视频为计算机工程师、程序员、游戏开发者、作家&#xff08;Engineer, Programmer, Game Developer, Author&#xff09; S…

TiDB v8.5.3 单机集群部署指南

前言 最近在做 TiDB 的恢复演练&#xff0c;需要在单台 Linux 服务器上部署一套 TiDB 最小的完整拓扑的集群&#xff0c;本文记录一下安装过程。 环境准备 开始部署 TiDB 集群前&#xff0c;准备一台部署主机&#xff0c;确保其软件满足需求&#xff1a; 推荐安装 CentOS 7…

ClickHouse常见问题——ClickHouseKeeper配置listen_host后不生效

ClickHouseKeeper配置listen_host后不生效ClickHouseKeeper配置listen_host后不生效ClickHouseKeeper配置listen_host后不生效 3节点部署ClickHouse集群后&#xff0c;ClickHouse Server执行报错&#xff1a; Poco::Exception. Code: 1000, e.code() 111, Connection refuse…

《Python × MongoDB 实战指南:从连接到查询,构建高效数据操作流程》

《Python MongoDB 实战指南:从连接到查询,构建高效数据操作流程》 一、引言:当 Python 遇上 MongoDB 在当今数据驱动的开发世界里,MongoDB 以其灵活的文档结构、强大的查询能力和良好的扩展性,成为 NoSQL 数据库中的佼佼者。而 Python,作为一门简洁优雅、生态丰富的编…

【Flask + Vue3 前后端分离管理系统】

Flask Vue3 前后端分离管理系统 项目概述 本项目是一个基于 Flask 后端和 Vue3 前端的前后端分离管理系统。项目实现了用户管理、角色管理、菜单管理、权限控制等完整的后台管理功能。 技术栈 后端技术栈&#xff1a; Flask 3.0.0 - Python Web框架Flask-SQLAlchemy 3.1.1 - O…

51c视觉~3D~合集5

自己的原文哦~ https://blog.51cto.com/whaosoft/14165531 #AnimateAnyMesh 文本驱动通用网格动画新范式&#xff0c;实现高效高质量4D内容生成 4D 内容生成&#xff0c;即包含时间维度信息的 3D 内容创建&#xff0c;在 VR/AR、游戏等领域具有广阔的应用前景。…

开悟篇Docker从零到实战一篇文章搞定

目录 一:概述 1:why docker 2:Docker是什么? 3:Docker核心概念 二:初步体验 1:Docker核心架构图 2:准备工作 1:服务器 2:Docker安装 3:阿里云docker安装 4:镜像加速 三:Docker命令和帮助文档的使用 1:帮助文档 2:镜像的基本操作 1:查看本地…

LINUX驱动篇(二)驱动开发

系列文章目录 文章目录系列文章目录总结介绍字符设备驱动工作原理驱动框架加载卸载注册注销设备号详解打开关闭等操作实例分析led驱动编写地址映射LED驱动改进驱动方式总结自动注册注销设备号自动创建设备节点设备树设备树LED驱动实验pinctrl和gpio并发和竞争原子操作自旋锁块设…

【工具】开源大屏设计器 自用整理

【工具】开源大屏设计器 自用整理 GoView低代码数据可视化 GoView 说明文档 | 低代码数据可视化开发平台 JimuReport积木报表(免费报表工具) https://github.com/jeecgboot/JimuReport 「数据可视化&#xff1a;报表、大屏、数据看板」积木报表是一款类Excel操作风格&#xf…

.NetCore MVC

这个是我自己记得笔记&#xff0c;最好有点基础看我的。 html 辅助标签 Html.DropList 分布视图 使用 RenderPartialAsync 呈现分部视图。 此方法不返回 IHtmlContent。 它将呈现的输出直接流式传输到响应。 因为该方法不返回结果&#xff0c;所以必须在 Razor 代码块内调用它…

@GitLab 介绍部署使用详细指南

文章目录**GitLab 介绍&部署&使用详细指南****1. GitLab 介绍与核心概念****1.1 什么是 GitLab&#xff1f;****1.2 核心特性****1.3 版本区别****2. 部署指南 (以 Ubuntu 22.04 LTS 为例)****2.1 环境准备****2.2 安装步骤****2.3 重要配置文件****3. 基本使用入门***…

如何通过 AI IDE 集成开发工具快速生成简易留言板系统

在当今快速迭代的软件开发环境中&#xff0c;AI 辅助编程工具已经成为开发者提高效率的重要手段。本文将详细介绍如何利用 AI IDE 集成开发工具快速构建一个功能完整的简易留言板系统&#xff0c;涵盖从需求分析到部署上线的全过程&#xff0c;并提供完整代码、流程图、Prompt …

机器学习:从技术原理到实践应用的深度解析

目录引言一.什么是机器学习&#xff08;ML&#xff09;&#xff1f;——从技术本质到核心目标1.与传统编程的本质区别&#xff1a;规则的“来源不同”2.核心目标&#xff1a;在“偏差-方差权衡”下优化性能指标二.机器学习的核心分类——基于“数据标签”与“学习范式”的技术划…