图像质量评估-NIMA(Neural Image Assessment)「建议收藏」

1.背景图像质量和美学的量化一直是图像处理和计算机视觉长期存在的问题。技术质量评估测量的是图像在像素级别的损坏,例如噪声、模糊、人为压缩等等,而对艺术的评估是为了捕捉图像中的情感和美丽在语义级别的特征。通常情况下,图像的质量评估一般分为两种:有参照(Full-Reference,FR):PSNR(峰值信噪比)、SSIM(标准-结构相似度)等图像质量评分系统无参照(No-Referen…

大家好,又见面了,我是你们的朋友全栈君。

图像质量评估-NIMA(Neural Image Assessment)「建议收藏」

1. 背景

图像质量和美学的量化一直是图像处理和计算机视觉长期存在的问题。技术质量评估测量的是图像在像素级别的损坏,例如噪声、模糊、人为压缩等等,而对艺术的评估是为了捕捉图像中的情感和美丽在语义级别的特征。

通常情况下,图像的质量评估一般分为两种:

  • 有参照(Full-Reference,FR):PSNR(峰值信噪比)、SSIM(标准-结构相似度)等图像质量评分系统
  • 无参照(No-Reference,NR):需要依靠模型来进行评估

但无论是哪种方式,都是为了得到的评分结果接近人类评分。

传统的基于深度卷积神经网络的图像质量评价方法中,一般都是先用一套经典图像数据库(如ImageNet等)训练系统,初始化权重,然后利用人工分类后的不同质量图像进行微调,进一步训练系统。然而,这些方法通常简单地将图像分为低质量和高质量的两类,范围有些狭窄。为了得到更准确的图像质量预测,我们提出的方法可以得不出同的预测评级,更接近于真实的评级,更适用于一般图像。

2. NIMA

NIMA基于最新的深度物体识别(object detection)神经网络,能够从直接观感(技术角度)和吸引程度(美学角度)预测人类对图像的评估意见的分布。文中提出的神经网络的打分具有与人类主观打分很相近的优点,因此可以用于图像质量评估工作。

在训练数据集中,每张图像都与人类直方图相连接,但是传统的美感评分系统还是只能将图像质量分为好或者不好两种。NIMA算法没有采用这种分类方法,也没有使用回归平均分的方法,而是对任意图像都生成评分直方图–即对图像进行1-10分的打分,并直接比较同一主题的图像。 这种设计跟人类评分系统产生的直方图在形式上吻合,且评估效果更接近人类评估的结果。

3. 论文贡献

论文的主要目的是通过CNN预测图像质量得分的分布,将分数的分布作为直方图来预测。同时根据人类对图像的评价概率分布,计算出EMD-based loss,进行反向传播。之所以这样做的原因是,EMD在有序分类上有很好的表现,因此将其作为损失。不用回归而用分类是因为根据相关文献指出,基于分类的做法的效果更好些而这个分类也不是纯粹的相互独立地分类,因为类与类之间也有比较关系,而EMD-based loss可以做到这点。

4. 本文方法

本文方法基于图像分类架构,试过VGG16,Inception-v2(Rethinking那篇,不是BN),MobileNet。
在这里插入图片描述
baseline网络用ImageNet预训练权重。训练时图像首先被缩放到256×256,然后随机裁剪224×224。值得注意的是,本文也试过不缩放直接随机裁剪的训练方法,不过结果不行。还有个数据增强方法是水平翻转crop。

本文的目的是预测图片评分的分布。简单来说,最后一层 FC 层的10个 unit 分别输出该图片获得 1 ~ 10 分的概率。然后平均值和标准差这么计算:

在这里插入图片描述
在这里插入图片描述

5. 损失函数

在这里插入图片描述
其中, C D F p ( k ) CDF_p(k) CDFp(k),【也就是预测评分的概率的累加值,而不是独立的预测获得每一个评分的概率。以此代替分布。在 label 中,评分越高,累计概率越大。在 predictions 中,因为用了 softmax 确保每个独立概率都大于零 (且和为1),因此 predictions 的累加概率也能随评分单调递增。】

在本文中 r 取值为 2. 作者表示这样可以使梯度下降收敛的更快。

5. 数据集

5.1 AVA dataset

25万张图,美感分数由业余摄影师给出。每张图平均有200个人打分。分数范围从1到10。
在这里插入图片描述
平均分在5.5分左右。平均标准差在1.4。越靠近中间的分数分歧越小,越靠近两边的分数分歧越大。
在这里插入图片描述

5.2 Tampere(TID2013)数据集

属于全参考这种。以柯达提供的25张图作为参考,每张图有5个级别,24种类型(噪声,模糊,颜色扰动。。)共120个扰动,最后得到3000张图。分数范围从0-9。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

5.3 LIVE IN the Wild Image Quality Challenge Database

包含1162张由移动设备捕获的照片,每张照片的平均从175个不同的主题来打分,分数范围是1-10.不像AVA数据集,每张图都有分数分布,TID2013和LIVE只提供平均分和标准差
在这里插入图片描述
在这里插入图片描述
不像AVA数据集,每张图都有分数分布,TID2013和LIVE只提供平均分和标准差。

6. 实验

6.1 照片排序

评估的时候按类别分别排序,而不是全部统一排序。 下图说明除了图像本身的内容外,其他如色调,对比度和照片组成物也是美学质量的重要因素。
在这里插入图片描述
下图说明除了图像语义,框架和调色板也是关键因素。
在这里插入图片描述

6.2 图像增强

以最大化NIMA得分作为先验,可以增加似然度,它是增强感知质量的似然度。通常通过在各种摄影条件下的大量实验来选择增强算子的参数,例如图像去噪和对比度增强,需要耗费大量的人力物力。本文提出的模型用来增强的更多细节可见作者发表的另一篇文章『Learned perceptual image enhancement』NIMA模型可以指导多层拉普拉斯滤波器找到其参数在美学上接近最佳的设置。

在这里插入图片描述
在这里插入图片描述

7. 论文复现

在 Github 上找到了本文方法的非官方复现代码:https://github.com/titu1994/neural-image-assessment/

这位小哥不仅提供了复现代码,复现结果,还很友好地把训练完成的模型上传了。

下面先展示下复现小哥的复现结果:
在这里插入图片描述
看起来挺棒的对不对?我和模型得出了一样的结论——第二行中间的图片最好看。然后我就很开心地拿自己的图片上来做测试了。用的是复现小哥最为推荐的 Nasnet Mobile 结构 + 小哥提供的训练好的 weights

结果如下。在下图中,最右上角的是我的原始图片,然后通过修正对比度得到一系列的图片(按对比度从小到大进行排序,即对比度越小越倾向于黑白)。然后模型就炸了…… 从黑白照到高对比度的彩照,模型得出的分数都是差不多的。
在这里插入图片描述
我认为本文的方法在我的对比度测试中表现较差的原因可能有2个:

  • 审美有很多层面,比如构图,色彩等。本文提出的方法是对照片整体进行评分,因此当照片的某个特定层面 (或细节) 被改变时,模型不能正确工作。
  • 我的这张图片与训练模型所用的数据集(AVA Dataset)的分布相去甚远。

8. 最后

图像质量评估-NIMA(Neural Image Assessment)「建议收藏」

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/125571.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • QCustomPlot运用

    QCustomPlot运用日常记录学习QCustomPlot的配置和编码过程。1.结构QCustomPlot类的命名规则是QCP加xxx。类的组织有很强的区分性,就如图Qt中的模块分类。  Class Name QCPPlotTitle 图表标题 QCPAxis 坐标轴、上下左右四个坐标轴 …

    2022年10月17日
    4
  • 让你的Ubuntu 7.10支持Frame Buffer

    让你的Ubuntu 7.10支持Frame Buffer

    2021年5月1日
    115
  • JAVA虚拟机、Dalvik虚拟机和ART虚拟机简要对比

    简单介绍JAVA虚拟机,安卓Dalvik虚拟机和ART虚拟机,并做简单对比。

    2022年3月11日
    49
  • 安卓四大组件面试题_android常见面试题

    安卓四大组件面试题_android常见面试题1、Activity与Fragment之间常见的几种通信方式答:1.使用Bundle:在activity中建一个bundle,把要传的值存入bundle,然后通过fragment的setArguments(bundle)传到fragment,在fragment中,用getArguments接收。这个方法能保证在fragment销毁重建后依然能获取到传递过来的数据。2.采用接口回调的方式。3.EventBus。2.谈谈Android中几种LaunchMode的特点和应用场景?

    2022年8月26日
    7
  • kafka与rocketmq优劣势_kafka rocketmq rabbitmq

    kafka与rocketmq优劣势_kafka rocketmq rabbitmq前言:公司采用了两种消息队列,一种是阿里云的rocketMQ,一种是kafka.分别用在了两种不同的场景.这里做个记录.rocketMQ使用场景:1.异步解耦:拿我们的项目举例,有一个场景,是需要pc端触发派单接口,然后发送给app端消息通知.此时要求能够做到每个app都能收到消息,但是又希望这个发送的过程尽量的短,也就是派单接口尽量快.那么这个派送的过程可以采用rocketM…

    2022年8月31日
    6
  • 黑盒测试的测试方法有哪些_黑盒测试包含哪些测试内容

    黑盒测试的测试方法有哪些_黑盒测试包含哪些测试内容一般我们在做软件测试的时候,会遇到黑盒测试,白盒测试,我们今天主要说的是黑盒测试的主要测试方法有那些。接下来就是干货了。最常见的是  边界值 等价类 错误推测法 场景法 因果图法判定表组成法 正交实验设计 下面是详细的解释:前言:在期末考到来的时候复习下黑盒测试。文章copy&paste了很多别人的东西。文章里有很多不足之处。欢迎拍砖!!!!!

    2022年10月21日
    2

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号