图片美观度模型

360图片搜索—图片美观度模型

code和数据集地址

一、背景

在图片搜索中,用户希望搜索的图片不但和自己的查询相关,并且在视觉感官、图片质量等方面也要比较满意。此时,就需要我们计算图片图片的在美学上的特征分值,加到排序模型中,将高相关性、高美学质量的图像排在检索结果的前面。

但是现有的图片质量模型主要考虑图像的质量,如像素,清晰度、有无噪声,在图像的美学特征,如构图、色彩、内容和谐等考虑的权重偏低。

二、相关研究

大部分的工作将这种美观度评估的任务形式化为回归或者分类问题。开源的数据集有 AVA【1】, AADB【2】等。代表的工作有 NIMA模型【3】和DARN模型【4】。360美观度模型正是在DARN模型的基础上改进得到的。

NIMA模型利用了AVA数据集,AVA数据集包含了约 25w张图像,由业余摄影师根据审美品质进行评分,200人评分的平均分就是该张图像的最终的分数。

NIMA模型目标是预测与人类评分的相关性,而不是将图片分类或者回归到平均分。提出了EMD loss,它显示了有序类分类的性能提升。下面是模型结构。

image-20231026144748579

开源的数据集AVA、AADB图像与图片搜索的图像在种类和美学质量分布上有很大的差异,所以不能再公开的数据集上训练模型。最好的方式使构建自己的数据集,但是像AVA数据集的构建,需要一批具有美学专业知识的标注人员对每张图片进行标注。标注成本和难度都有很大

Microsoft提出了《An Universal Image Attractiveness Ranking Framework》,很好的解决美学数据集构建难的问题,并提出了新的美学模型——DARN模型。下面介绍DARN模型以及360美观度模型在此之上的改进。

三、基于DARN的美观度模型

1、数据集构建

数据集的构建过程如下:

1、在图片搜索中高中低频queey中各选择2000条query。

2、根据query在图片搜索返回结果中,top20里面,top40-60里面各抽取两张图片。

3、根据Swiss-system tournament规则、对这4张图像进行三轮标注。

4、每一轮标注,将同一query下4张图片组成两对,每一对图像由7个人标注人员去进行投票:

左边更好,左边好一点,一样好,右边好一点,右边更好。

具体标注可以参考下图:

image-20231026154542693

这样标注的好处是,标注人员无需掌握专业知识,“比较”相对于给出一个直接的分值更简单,多人投票也降低主观偏好带来的偏差。7个标注人员对image1和image2进行投票的结果中,左边更好,左边好一点,一样好,右边好一点,右边更好的人数分别为0、1、1、4、1,则这对图像的label为:

2、DARN模型

我们的标注数据是pair对,模型结构如下:

image-20231026163835872

左边的网络和右边的网络是参数共享的,图像对输入到网络中,经过 Deep CNN(如resnet50)的特征抽取,再经过三个fc层,然后计算最终输出的方差和均值。

假设每张图像都是由很多的专业的美学专家评分得到的,那么根据中心极限定理,图像美观度分值$X$服从正态分布,AVA数据基本就符合正态分布。所以最终计算得到的均值和方差就可以看作是模型计算的该图像的平均美观度分值和方差

对于一个pair对 $[x_i,x_j]$, 它们的 label 记为${0,1,2,3,4}$ 分别对应着左边更好,左边好一点,一样好,右边好一点,右边更好。对于我们的标注数据有:

直觉上,图像通过模型得到的美观度分值有以下两个特点:

  • 图像越美观,模型得到美观度分数均值越大。
  • 图像对的label应该与美观度分数一致。如,$u_i>>u_j$,那么标注图像 $i$ 好一点或者更好的人数应该更多。如果 $u_i=u_j$,则大部分人标注的 label 是 “一样好”。

上面说到我们假设美观度分值服从正态分布,那么两个美观度分值的差也服从正态分布,记$x_{i}^{left}$,$x_{j}^{right}$分别表示图像对中左边图像美观度和右边图像美观度(左边和右边只是为了对应我们数据的标注label),他们美观度的差值 $\Delta X$ 服从 $N(x,u_i-u_j,\sigma_{1}^{2}+\sigma_{2}^{2})$。

然后我们定义4个可以学习的边界值 ${b_i}_{i=0}^{3}$,这4个boundaries将 x 轴分成5部分,也就将正态分布和x轴围成的区域分成了5个部分,这5个部分就对应了 我们设定的 五个label {左边更好,左边好一点,一样好,右边好一点,右边更好},我们定义 $p_{i}^{j},j={0,1,2,3}$表示第$i$对图像对被标注lable $j$ 的概率。$\Delta u_i $和 $\Delta \sigma_i$ 表示第$i$对图像对美观度分值差的均值和方差。于是我们有:

形象点可以看下图:

image-20231026175218691

上面这张图显示了标签如何随着图像对的分数差值系统的变化。当右侧图像的平均得分远高于左侧图像时,得分差的分布将向右移动,导致标签“右侧更好”的概率更高。当左右之间的分数差异变小时,分布向左移动并导致标签发生变化。因此,当两个图像的分数相等时,中间桶中的面积最大,这意味着这对图像最有可能被标记为“一样好”。

至此我们可以计算出模型对第 $i$ 对图像对的美观度分值的差的分布 $p_i=(p_{i}^{0},p_{i}^{1},p_{i}^{2},p_{i}^{3},p_{i}^{4})$ ,而我们

图像对的真实label 为 $l=(n_{i}^{0},n_{i}^{1},n_{i}^{2},n_{i}^{3},n_{i}^{4})$, 因此我们可以定义一个对数最大似然损失函数:

image-20231026180559585

从上面的过程可以看出,由于预先假设图像的美学评分服从正态分布,而正态分布可以由均值和方差两个参数控制,所以严格的说,DARN模型预测的不是美学评分,而是美学评分分布。在实际应用时,可以直接用均值作为该图像的美学评分

3、实验改进

实验的过程中,根据我们的数据集和训练情况对DARN模型做了一些改进和调整。

1、 原始DARN模型中,deep CNN以及以后所有FC层,激活函数都是 Relu。缺少带有归一化能力的激活函数和norm操作,则很可能随着W方差的增大,出现个别节点数值过大的问题,导致训练时loss很可能出现nan的情况。所以将第一个FC层的激活函数改为 tanh。

2、在计算均值之前加上softplus激活函数。使得最后推理的结果都是正的,且减小方差。模型中计算正态分布在某一个区间的积分,需要保证 $\sigma >0$,才能让正态分布函数有意义,但是原始论文中:

image-20231026182412236

使用的是Relu激活函数,有可能训练得到 $\sigma = 0$。

3、训练中对边界值进行截断,防止训练中部分 $\Delta u$过大,产生nan值。

4、最后一层维度通过实验调整为 16。

5、边界值的初始化值对于模型训练影响很大,我们数据集下初始化值为(-0.75,-0.25, 0.25, 0.75)

6、deep CNN 由 resnet50 调整为 swin transformer。

四、结果展示

image2022-11-3_15-17-31

image2022-11-3_15-21-28

image2022-11-3_15-19-28

该美观度模型计算的特征应用在360图片搜索的排序中,离线ndcg指标和在线Ctr均得到了提升。

参考文献

【1】N. Murray, L. Marchesotti, and F. Perronnin. Ava: A large-scale database for aesthetic visual analysis. In Computer Vision and Pattern Recognition (CVPR), pages 2408–2415,Providence, RI, USA, 2012. IEEE.

【2】S. Kong, X. Shen, Z. Lin, R. Mech, and C. Fowlkes. Photo aesthetics ranking network with attributes and content adapta-tion. In European Conference on Computer Vision (ECCV),
page 662679, Amsterdam, The Netherlands, 2016. Springer.

【3】H. Talebi and P . Milanfar. Nima: Neural image assess-ment. IEEE Transactions on Image Processing, 27:3998–4011, 2017