今天是1024程序员的节日,也是许久没有更新博客了,特地百忙抽空记录一篇博文。
解读之前,论文链接就不放了,网上有比较多的下载资源,先放上该论文的引用信息:
Hosu V, Lin H, Sziranyi T, et al. KonIQ-10k: An ecologically valid database for deep learning of blind image quality assessment[J]. IEEE Transactions on Image Processing, 2020, 29: 4041-4056.
不难看出,该论文《KonIQ-10k: An ecologically valid database for deep learning of blind image quality assessment》发表于图像处理顶级期刊 TIP,是今年比较新的关于无参考图像质量评估的权威科研产出。发表至今还没有在网络上找到相应的论文解读, 笔者也是许久没有更新博客了,借着周末闲暇,目前也正在参与图像质量评估相关项目,特意对该论文总结于此,希望对该领域的科研和工作人员有所帮助,同时也作为自身积累沉淀。以下将论文拆分成几个部分,分模块对核心内容进行解读。
1. 论文贡献及创新点
本文的主要贡献及创新点体现在两个方面:
(1)本文提出了一种系统的、可扩展的方法用于创建目前为止最大的 IQA(Image Quality Assessment)数据集——KonIQ-10k。
- 该数据集共包含10073张图片样本,且确保图像内容和失真多样性。
- 对于每一张图片样本,由1459名工作者通过众包的方式给出120个较可靠的质量评级标注。
(2)本文提出了一种基于端到端深度学习的BIQA方法——KonCept512。
- 运用迁移学习的方式微调CNN
- 与5种目前最先进的CNN结构进行效果对比
- 比较了五个损失函数的性能,其中两个用于直接预测MOS,另外三个用于预测评级分布。
- 探讨了训练集大小对所提出的模型——KonCept512 性能的影响。
- 显示了 KonCept512 模型在 KonIQ-10k 训练,在其他的 IQA 数据集上也表现良好,即跨数据集测试效果优异。
2. 数据集构建
源数据为一个叫 YFCC100m 的大型多媒体公开数据库,随机选择了接近1千万张(9974030条)图像,通过以下两个步骤进行筛选过滤以得到最终的实验所需数据集:
(1)从 YFCC100m 选择可以编辑和二次分发的具有合适知识共享许可证且分辨率在960X540到6000X6000之间的图像样本,符合条件的样本总数为4807816张,采用启发式采样算法从中选出100万个图像样本。
(2)将所有规格大于1024X768的图像缩放并保持原有的长宽比作裁剪,并使用 Viola-Jones 人脸检测算子将脸部的突出部分保留在画面中。然后对13000张图像进行采样,同时在8个图像指标上执行均匀分布操作,删除重复数据并手动过滤掉一些内容不合适的图像样本,形成最终的 KonIQ-10k 数据集,样本总量为10073张。
3. 图像质量主观标注
本次调研邀请了11名专业的摄影从业者用于辅助问卷的设计,筛选出较主观标注较可靠的众包人员,总共有2302名众包人员参加到此次主观标注实验,通过层层数据分析与筛选,剩余1459名通过了所有的筛选步骤,可进一步参与到整个数据集(KonIQ-10k)的主观质量评分。采用5分类评分方式,每张图片平均被120人评分,总共生成了近120万人次的评分记录。
通过以下方式将5分类的评分映射到 [1, 100] 区间:
其中,
s
i
j
s_{ij}
sij 表示第
i
i
i个工人对第
j
j
j张图片的主观评分。
然后用线性模型拟合众包与专业摄影摄影师的 MOS(平均主观得分)分布,得到的拟合关系如下所示,众包与专家的分数的校准对齐并不用于最终分数的转换以此作为数据集中部分数据的修改,并进行了相应的误差分析,具体分析这里不再赘述。
M
O
S
e
x
p
e
r
t
s
=
1.12
∗
M
O
S
c
r
o
w
d
−
10.43
MOS_{experts}=1.12*MOS_{crowd}-10.43
MOSexperts=1.12∗MOScrowd−10.43
并且,引入 ICC(intra-class correlation coefficient, 类内相关系数)和平均组间一致性(mean inter-group agreement)来衡量人群的可靠性。
4. 设计合适的端到端深度BIQA网络
设计一个合适的端到端BIQA(Blind Image Quality Assessment)深度神经网络需要遵循以下四点:
(1)图像的输入规格形式;
(2)基础网络架构的选择;
(3)最小化损失函数;
(4)最终结果的聚合策略。
尽管已有的几项研究已经表现出较好的结果,但是在端到端的训练中,哪种因素的组合最适合 BIQA 还没有明确的答案。
本文提出的端到端网络架构如下图所示。给定一个图像,它通过一个 CNN 主体(卷积层,不包含全连接层),然后是一个全局平均池化层(GAP),与四个全连接层(FC)相连:前三层分别有2048、1024、256个输出单元,最终输出层有一个单元来预测MOS,或者有五个单元来预测得分分布。
所有三个 FC 层都使用 ReLU作 为激活函数,然后加入 dropout 避免过度拟合。当直接预测 MOS 时,最后一层是线性的,当预测得分的分布时,使用 softmax。预测 MOS 时使用 MSE 损失函数,当预测得分分布时,使用了交叉熵损失、Huber 损失和 EMD 损失函数。
5. 实验结果
5.1 网络细节确定
文章分别分析了不同规格的图像输入对实验结果的影响,如下图所示,发现512X384能获得相对更好的 SROCC,224X224的输入规格丢失了过多的图像信息,而512X384较1024X768更好,分析原因可能是所有的CNN都针对小图像输入做了优化,而对于太大的图像输入性能反而不尽人意。另一个可能的原因是,大尺寸的图像因GPU显存的限制,往往只能输入较小的 batch_size,而较小的 batch_size 可能从一定程度上限制了网络的性能。
于是以512X384的规格送入网络进行训练,并对比了不同基础网络的选择对实验结果的影响,从下图对比可以看出,InceptionResNetV2 体现出相对更优的性能,且与其他损失函数相比,MSE 最佳。由此确定了最终的模型细节:KonCept512 网络以 InceptionResNetV2 为基础模型,使用 MSE 损失函数,在规格为512X384的 KonIQ-10k 数据集上进行训练和测试。
5.2 与 state-of-the-art BIQA 方法对比
由上表不难看出,与其他 BIQA 方法相比,KonCept512 在 PLCC 与 SROCC 上都表现出最优的结果,即使是跨数据集的测试也是如此。
5.3 训练集大小对实验结果的影响
保持验证集(1000张图片)与测试集(2000张图片)数量不变,使训练集的大小分别处于 [1000, 2000, … , 7000],得到的结果如下表所示。
上述三点是相对较核心的实验结果分析,本文还从其他几个方面进行了实验分析,期刊论文内容丰富细致,这里不一字一句详细描述解读了,有兴趣的老板可以再仔细研读一下原文。
总体来说,该论文方法上的创新只能说是 so-so,但整个研究工作包括数据集的构建和结果分析等都是十分规范和完整的,在实际工程落地中有可借鉴之处。