无监督图像质量评价--持续学习篇(一)

Continual Learning for Blind Image Quality Assessment

持续学习研究背景 

在当今图像数据爆炸性增加的同时,也出现了很多新的失真类型,这些新的失真可能是旧失真的排列组合,也可能是没有出现过的基础失真。旧的深度学习模型在旧类型的失真图像评价上已经叱诧风云,但对于新失真的加入,即新数据集的加入,则会产生灾难性遗忘的现象(新参数取代旧参数,适应新数据集却对旧数据集产生遗忘)。持续学习的提出有助于减缓或一定程度上解决这个问题,保证可塑性(表现于新失真)和稳定性(表现于旧失真)的平衡。

持续学习模型的要求

Continual Learning for Blind Image Quality Assessment 这篇文章在将持续学习用于NR-IQA的时候提出了五点要求:

1.共同的感知空间,多种图像中一些要素,如雨水密度,光照信息,模糊信息等等特征都要单调相关并与人类直观感受相关,我们认为雨水密度越大,图像体现的质量更高,MOS值理应更高;而数据集可能认为雨水密度影响了图像质量。

2.在数据集选择上,要选择部分数据明显属于不同失真类型的两个数据集,即两个数据集有明显的亚群转移。

3.有限的模型大小,新数据集需要新参数,新参数的不断加入会引起数据爆炸。

4.避免访问以前数据,即旧数据集,因为如果能够访问的话,不如直接新旧数据一起打包训练。这是从持续学习的优点来进行限制。

5.无单独训练标签,即不需要知道图像从哪个数据集来就能预测图像数据来源,这也是无监督训练的特征之一。

持续学习模型训练方法

数据集图像输入模型,经过稳定层和可塑层进行特征提取得到预测头参数,接着通过k-means聚类得到与聚类质心的欧式距离,再通过自适应权值得到图像质量预测系数。

自适应权值包含在预测头内,既有新数据预测头也有旧数据预测头,两者包含不同权值,这很好理解,因为新图像的质量预测与旧图像的质量预测在共享相同参数的情况下有所不同,新图像更需要新参数,旧图像更需要旧参数。

持续学习用于盲图像质量评价的实验方法

Model Estimation

x,y属于D_t的一部分图像数据,质量满足高斯正态分布,通过公式(5)计算x比y图像质量更好的概率

然后通过模型估计x比y图像质量更好的概率,如公式(6)

算出实际值与估计值之后,利用保真度损失计算损失,如公式(7)

对新失真数据进行计算loss后,对旧失真数据也进行保真度约束,如公式(8)

加入正则项,并进行批次随机梯度下降,如公式(9)

对稳定层和可塑层参数进行合并后,l2归一化,如公式(10)

进行了模型估计并得到参数后进行模型推演。

Model Inference

设计了一种自适应的加权机制来计算来自所有头的质量估计的加权和,作为总体质量得分。

先进行前馈扫描,如公式(11),全局平均池增加数据可比性,只用稳定层的原因是模型训练过程中稳定层参数基本固定

计算与质心的最小欧式距离,如公式(12)

经过softmin计算自适应权值,如公式(13)

最终质量分数定义为两个自适应权重向量和质量预测向量之间的内积,如公式(14)

持续学习模型代码框架

#只显示了基础的残差块代码,根据模型可以自己搭建。
class ResBlock(nn.Module):
    def __init__(self, n_chans):
        super(ResBlock, self).__init__()
        self.conv = nn.Conv2d(n_chans, n_chans,
                              kernel_size=3, padding=1,
                              bias=False)
        self.batch_norm = nn.BatchNorm2d(num_features=n_chans)  # <5>
        torch.nn.init.kaiming_normal_(self.conv.weight,
                                      nonlinearity='relu')  # <6>
        torch.nn.init.constant_(self.batch_norm.weight, 0.5)  # <7>
        torch.nn.init.zeros_(self.batch_norm.bias)

    def forward(self, x):
        out = self.conv(x)
        out = self.batch_norm(out)
        out = torch.relu(out)
        return out + x

持续学习下的图像质量评价能够在不同数据集间具有强大的鲁棒性,更有效应对爆炸式的数据图像。

实验结果

从这张表可以看出来,随着数据集的不断加入,本文方法对数据集检测的相关性较高。

接下来更换数据集顺序后用本文方法进行检测得出相关性的数据:

并用MPSR和SRCC判断稳定层与可塑层的分离点。

持续学习的展望

这项工作确立了一个新的研究方问,许多重要的课题尚未探索。首先,我们是否需要增加或删除几 多重要的课题尚未探索。首先,我们是否需要增加或删除几个迫切需要的东西,以使BIQA的持续学习更加实用,这仍然 个迫切需要的东西,以使BIQA的持续学习更加实用,这仍然是一个很大的问题。例如,添加在线学习需求可能是有用的,其中学习即时发生,任务(或数据集)之间没有明显的边界。

第二,更好的持续学习方法是可取的,以弥补当前方法和联合学习上限之间的性能差距。

第三,目前的工作只考虑了两种失真场景,即合成和现实扭曲,以构建任务序列。在未来,它将有兴趣纳入多种扭曲场景,代表更多的训练和测试 。最后,当前的工作只探索具有有限数量间的亚群转移。

最后,当前的工作只探索具有有限数量任务顺序的小长度任务序列。需要在任意长度和任意顺序的任务序列上测试当前方法。为BIQA开发更多的顺序鲁棒和长度让任务序列上测试当前方法。为BIQA开发更多的顺序鲁棒和长度鲁棒的连续学习方法也很重要。

以上是文章的最后展望。

  • 2
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值