zoukankan      html  css  js  c++  java
  • 图像质量评估 (IQA) 论文笔记: Deep Neural Networks for No-Reference and Full-Reference Image Quality Assessment

    图像质量评估 (IQA) 论文笔记: Deep Neural Networks for No-Reference and Full-Reference Image Quality Assessment

    Sebastian Bosse , Dominique Maniry, Klaus-Robert Müller, Member, IEEE,
    Thomas Wiegand, Fellow, IEEE, and Wojciech Samek, Member, IEEE

    2018年1月的IEEE TIP上的文章

    intro

    image quality measures (IQMs)分为FR和NR,以及介于两者中间的RR(reduced)。传统的做法是利用自然图像的统计特性以及HVS(人类视觉系统)的计算模型。现在的深度学习方法则是纯粹数据驱动。本文中的是10层conv,5个pooling,以及两个fc的CNN,采用了Siamese network的结构,也就是孪生网络。这种结构可以用来做FR 的IQM问题。由于IQM问题的公开数据集比较少,而 常用的augmentation方法由于打分是主观的,也不太好使用,因此这里采用的augmentation方法是,在已有的图像上进行random sample。不做归一化,从而使得luminance和contrast这类的全局特征也可以作为评价的特征。最后的全局的图像质量由local patch的平均得到。这个方法被叫做Deep Image QuAlity Measure for FR (DIQAM-FR)。由于local qualities并不是uniform的,因此简单的平均有误差,那么引入一个patchwise relative weight来处理这种影响。这种叫做Weighted Average Deep Image QuAlity Measure (WADIQAM-FR)。

    模型

    FR-IQA和NR-IQA问题的两个深度CNN模型如下图所示:


    这里写图片描述

    这里写图片描述

    先看FR 的,首先,输入(distorted和reference)通过一个孪生CNN网络(也就是权值共享的结构相同的网络,在实现的时候可以用一个网络对两个输入各处理一遍),然后得到feature vector,这个提取特征的网络是一个vgg-like的,然后得到的两个feature vector,分别表示畸变的和reference的信号,两者进行fusion,也可以再显式的加上两者的差,进行concat,得到融合的vector,用于回归。如果是对图像的patch 的Q进行平均的话,那么就只需要回归patch上的quality,而如果要加权平均,同时还要回归一个权重。然后做一个spatial pooling,得到最终的image quality。

    NR的相当于只是把孪生网络的那部分改成普通的CNN,后面的操作一样。

    对于optimize的过程,用MAE(mean absolute error)代替常规的MSE,这样可以减少对outlier的敏感程度。

    Spatial pooling 对于每个patch回归一个weight,用relu加上一个小正数epsilon作为修正项。然后用加权平均去回归image的得分。

    普通的average和weighted average的loss分别为:


    这里写图片描述
    这里写图片描述

    2018年06月15日14:47:12

    自由伴随着不安,人们用不自由换取建立规则的安心感。 —— 制作人,川村元气

  • 相关阅读:
    【C/C++开发】c++ 工具库 (zz)
    【机器学习】半监督学习
    【Python开发】Pycharm下的Anaconda配置
    【C/C++开发】emplace_back() 和 push_back 的区别
    【C/C++开发】容器set和multiset,C++11对vector成员函数的扩展(cbegin()、cend()、crbegin()、crend()、emplace()、data())
    【C/C++开发】C++11 并发指南三(std::mutex 详解)
    【C/C++开发】C++11 并发指南二(std::thread 详解)
    【C/C++开发】C++11 并发指南一(C++11 多线程初探)
    【C/C++开发】STL内嵌数据类型: value_type
    个股实时监控之综述
  • 原文地址:https://www.cnblogs.com/morikokyuro/p/13256722.html
Copyright © 2011-2022 走看看