前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >图像质量评估论文 | rank-IQA | ICCV2017

图像质量评估论文 | rank-IQA | ICCV2017

作者头像
机器学习炼丹术
发布2021-01-18 11:20:09
2.6K0
发布2021-01-18 11:20:09
举报

参考目录:

  • 0 综述
  • 1 流程
    • 1.1 预处理
    • 1.2 训练孪生网络
    • 1.3 efficient siamese backpropagation
    • 1.4 微调
  • 2 评估方法
  • 3 总结
  • 论文名称:"RankIQA: Learning from Rankings for No-reference Image Quality Assessment"
  • 论文链接:https://arxiv.org/abs/1707.08347

0 综述

这一篇文章感觉是不错的,大概的流程是,对好的图像经过不同级别的失真操作,得到一系列的图像,然后把不同失真程度的图像对输入到siamese net中训练。是一个non-reference的框架。

1 流程

包含三个部分:1,人工生成不同质量的序列图片;2,训练孪生网络,使用作者提出的efficient Siamese backpropation technique 3,训练好的孪生网络被认为是可以正确提取图像特征的,然后取出孪生网络的一个胞胎,在标注确切的质量分数的数据集上微调。

1.1 预处理

❝As an example, given a reference image we can apply various levels of Gaussian blur. The set of images which is thus generated can be easily ranked because we do know that adding Gaussian blur (or any other distortion) always deteriorates the quality score.

这个就是作者扩大数据集,构建图像对的关键。作者可以对图像做高斯模糊、高斯噪音等各种各样的扭曲操作,而且这个质量分数是很好判断的,因为这种扭曲操作必然会降低分数。在这样的数据集中,我们并不知道任何图像的确切的质量分数,但是是知道一对图像中哪一个有着较高的分数

作者提到,这样我们可以从大量的没有标注的数据中,得到更多的图像对数据,然后把这个数据用孪生网络训练。在训练之后,再拿来标有质量分数的小数据集来做一个微调。这样因为使用了大数据集,所以可以使用更深的网络,提高精度

作者采用了JPEG压缩,高斯噪音,高斯模糊三种失真方法。

1.2 训练孪生网络

这个孪生网络我刚好之前已经度过了相关的论文并且做了笔记,所以我看这个rank-IQA的论文就很快并且不吃力。这个孪生网络的输入是一张图片,然后输出是一个scalar标量,表示对这个图片的打分。然后在损失函数中体现了孪生网络的核心思想,两个图片为一组训练

这个叫做pairwize ranking hinge loss,hinge loss好像是梯度下降SVM中提到的,也很简单,就是类似于relu的一个函数,两个图像的打分,x1的级别高于x2,那么说明x1的图像的质量高于x2.

  • 如果
f(x_2;\theta)

高于

f(x_1;\theta)

,那么说明模型学的不好,那么loss=

f(x_2;\theta)-f(x_1;\theta)+\epsilon

;

  • 如果
f(x_2;\theta)

小于

f(x_1;\theta)

,那么说明模型学的好,那么loss=

0

;

  • 这个epsilon是为了拉大这个
x_2

x_1

之间的差距,要是在

\epsilon=0

的情况下

f(x_2;\theta)

=0.1,

f(x_1;\theta)

=0.1001,那么损失也应该是0,但是这种情况下模型并没有很好的分清楚这两个不同等级的图像。

1.3 efficient siamese backpropagation

之前的话,如果n个图片,可以组成

n^2-n

个图片对,然后每一个图片对都需要进入到网络中,非常消耗时间;现在efficient siamese backpropagation应该是先计算出n个图像的输出结果,然后再交叉计算损失,计算出

n^2-n

个损失,然后做反向传播。

1.4 微调

就是从孪生网络中取出一个分支,然后用MSE损失函数训练有确切质量分数的数据集。

2 评估方法

有两个评价指标常常被用在评估IQA任务中:

  • the Linear Correlation Coefficient (LCC)

其中N是样本数量,

y_i

是真实的标签,

\hat{y}_i

是模型给出的预测值。看起来有点像是统计学中的相关系数哈哈。

  • the Spearman Rank Order Correlation Coefficient (SROCC)

其中

v_i

是标注的真实样本的级别,

p_i

是预测的样本的级别。

3 总结

这个rank-IQA实现了NF的任务,然后感觉从结构上来看,这个实现方法是符合直觉的,应该是可以make sense的。回头要是有类似的项目,我会先用这个方式来做一做。从论文中我也知道了,孪生网络对于ranking有这重要意义,而ranking也对无监督学习的有着重要意义。

<<小白学PyTorch>>

本文参与 腾讯云自媒体分享计划,分享自微信公众号。
原始发表:2021-01-12,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 机器学习炼丹术 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体分享计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
目录
  • 0 综述
  • 1 流程
    • 1.1 预处理
      • 1.2 训练孪生网络
        • 1.3 efficient siamese backpropagation
          • 1.4 微调
          • 2 评估方法
          • 3 总结
          相关产品与服务
          大数据
          全栈大数据产品,面向海量数据场景,帮助您 “智理无数,心中有数”!
          领券
          问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档