AIGC生图的自动化质量评估(1)

简介: AIGC生图的自动化质量评估

AIGC生图需要进行质量评估以确保满足一定标准。这一评估过程非常重要,因其关系到内容的专业性、商业价值以及顾客的满意度。然而,传统的手动评估方式既耗时又耗力,且容易受到主观偏差的影响,导致评估成本高昂而效果不佳。目前对基模型的优化效果的全面评测,包含了十多个维度,全部标注需要2~4个人日。如果涉及模型整体效果的迭代,则需要更多的人力投入。鉴于此,自动化的质量评估方法成为一种迫切需求。通过采用算法和机器学习模型,自动化评估可以快速、准确地执行质量检查,不仅节省了大量人力资源,还提高了评估的一致性和准确性。自动化评估工具还能实现实时监控和即时反馈,从而提升整个生产流程的效率和内容的质量总之,自动化质量评估在提高AIGC生图质量与生产效率方面发挥着不可替代的作用。本文将分享几项最新的研究进展,希望能给大家带来帮助~


APDD


 主要内容


计算视觉美学是计算机视觉领域中一个非常重要的研究领域,主要涉及大型数据集训练以及神经网络模型优化,使模型能够提供对美学质量的评估。因此,构建图像美学质量评估(IAQA)基准数据集已成为推进这一方向研究的关键前提。然而,现有的数据主要关注图像的总审美得分,而对图像类别和审美属性的研究探索有限。此外,大多数现有的数据集都是在摄影领域创建的,在艺术图像领域研究不足。
本项目主要对艺术图像进行美学评估,虽然没有使用文生图模型生成的图像,但是对于图像的美学质量评估提供了一套完整的处理思路。本项目提出了一个清晰的框架来量化艺术图像中的美学分数;构建了艺术领域的多属性、多类别绘画数据集,即绘画美学数据集(APDD);提出了一种绘画图像评估网络(AANSPS),该模型在大多数指标上取得了令人满意的结果,为本方法的有效性进行了验证。

 美学评分标准


根据不同的绘画门类(油画、素描、国画)、艺术风格(象征主义、古典主义、浪漫主义、工笔、写意),题材(风景、静物、肖像、花卉和鸟类、山脉和水),我们将APDD数据集分为 24 个不同的艺术类别。

image.png

对于每张图进行审美属性的打分,审美属性的来源考虑了如下几个方面:

  • 艺术创作者的一般思维过程。
  • 艺术观察者如何进行分层观察。
  • 评价者的评分方法。


最终定义了艺术图像的10个审美属性。注:并非所有的艺术类别都包含了本文提出的10个审美属性。

image.png

 APDD数据集


绘画美学数据集(APDD)概况

  • 得到了全球28位专业艺术家和数十名美术生的积极参与。
  • 数据集包括24个不同的艺术类别和10个不同的审美属性。
  • 收集了4985幅画作,其中注释计数超过31100个条目。


数据集的收集:

  • 精心挑选了几个专业的艺术网站和机构作为数据来源,以确保艺术图像的广度和多样性。
  • 从艺术学生的作业中挑选了一些审美质量较低的艺术作品。艺术家作品与学生作品比例为3:1。
  • 收集了4985幅画作,涵盖了24个类别,每个类别至少包含200幅图片。作品包括著名艺术家作品和学生作品。该图像数据集的结构旨在为后续的评分注释提供足够的代表性和多样性。


图像标注:

  • 评分团队根据所选的基准图像,开发了一个一致的、客观的评分系统,确保后续的评分工作能够遵循统一的标准。
  • 第一阶段由专家评分,耗时15天,为评分活动提供了坚实的理论基础。
  • 第二阶段由24名来自油画、素描和中国画专业的高学历学生评分。第二阶段进展得更快,总共在7天内完成。
  • 将任务分配给对应的评分者,指定艺术类别和所涉及的图像数量,确保APDD数据集中的每个图像至少由6个个体进行评估。
  • 在对所有评分进行综合评估后,我们根据所有注释者的评估计算平均分,最终收集每种属性的总分和单个属性分。


APDD数据集包含10个美学属性,分别为:主题逻辑、创造力、布局与构图、空间与视角、秩序感、光与影、色彩、细节和质感、整体和情绪。部分数据,如图所示:

image.png

 AANSPS模型


本项目提出了一种绘画图像评估网络AANSPS,并在APDD数据集上训练。

image.png

该模型先通过EfficientNet-B4网络提取图像表征。然后将图像特征输入Efficient Channel Attention (ECA) 模块,使用global average pooling (GAP)进行处理。之后进入回归网络,该部分由一个GAP层和三个线性层组成。最后输出美学得分。loss函数使用mse函数。

image.png

训练集和验证集的比例为9:1。在训练过程中,将预训练模型加载到总美学评分分支中,并基于APDD的训练集对该分支网络进行训练,得到第一个评分模型。然后,使用第一个评分模型作为新的预训练模型,并分别训练每个属性的评分分支网络。在训练其他属性分支网络时,需要冻结其他评分分支网络的参数。在每个分支网络经过训练后,它将包括之前训练过的属性分支网络。如果连续两轮的loss没有减少,则学习率乘以0.5。一旦所有的属性分支网络都完成了训练,我们就得到了最终的评分模型。


 模型评估


本文利用均方误差(MSE)、平均绝对误差(MAE)和斯皮尔曼的秩阶相关系数(SROCC)来评价性能。

image.png


本项目的一些局限性:

  • 需要进一步扩大审美分类和属性,更全面地评价审美质量。
  • 增加APDD数据集中的图像数量。
  • 以更详细的语言为美学属性提供注释,增加数据集的易用性。


HPS v2


 主要内容


最近的文生图模型可以从文本输入中生成高保真的图像,但这些生成的图像的质量不能通过现有的评价指标进行准确的评估。Inception Score (IS) and Fréchet Inception Distance (FID)被广泛用于生图模型的评估,但是这两个指标并不能很好的反映生成图片是否符合人类偏好。人类的偏好评估是文生图模型中一个重要但有待推进的研究领域。


本项目构建了一个用人类偏好进行注释的大规模数据集,即Human Preference Dataset v2(HPD v2)。同时还在HPD v2上训练了一个基于偏好预测模型的benchmark,Human Preference Score v2(HPS v2),以测量生成式算法的发展。HPS v2在各种图像分布上比之前的指标评估性能更好,并可用于文生图模型的改进,使其成为一个更好的评估这些模型的方法。


 HPD v2数据集


Human Preference Dataset v2(HPD v2)概况:

  • 雇用了50个标注人员和7个质量控制检查人员,对数据进行注释。
  • 构建了一个大规模的、注释清晰的数据集,其中包含了人类对从文本提示中生成的图像的偏好。
  • HPD v2包含了43.4w个图像对、79.8w个人类偏好选择,使其成为同类数据中最大的数据集。
  • 每对图像包含由不同的模型使用相同的prompt生成的两个图像,并对应一组人类偏好选择。
  • 用于生成图片的prompt,按照风格分类为:动画、概念艺术、绘画和照片。


该数据集解决了在以前的数据集中出现的偏差问题:

  • 数据集多样性:HPD v2包含了从9个最近的模型中生成的图像,以及来自COCO数据集的真实图像。
  • 清洗prompt:用户编写的prompt,通常遵循一个特定的描述结构加上几个风格词。其中风格词经常包含自相矛盾的内容,使用户很难理解,风格词也有高度的偏见。为了解决这种偏差,本文使用ChatGPT来去除风格词,并将prompt重写成一个更清晰的句子。


HPD v2的prompt来自于COCO Captions、LAION、DiffusionDB三个数据集,其中DiffusionDB的prompt被chatgpt进行了清洗。效果如下:

image.png


图像来源:

  • 使用不同的模型和相同的prompt来生成图像。
  • 除了生成的图像,还添加了COCO数据集中对应的真实图像。
  • 训练集包含来自4个模型的生成图片以及COCO数据集的真实图像。
  • 测试集包含9个模型的生成图像以及COCO数据集的真实图像。这5个另加的模型使我们能够验证评估模型的泛化能力。


HPD v2的处理流程如下。首先收集HPD v2,然后在其上训练一个偏好预测模型,即Human Preference Score v2(HPS v2):

image.png


 HPS v2数据集


CLIP是一个将图像和文本对齐到相同的embedding空间的模型。它有一个图像编码器来将一个图像编码成一个视觉特征,和一个文本编码器来将一个caption编码成一个文本特征。视觉特征和文本特征之间的余弦相似度反映了输入图像和caption之间的对齐程度。然而,原生的CLIP并不能很好地反映人类偏好。


通过使用HPD v2微调CLIP,获得了Human Preference Score v2(HPS v2),这是一种可以更准确地预测人类对生成图像的偏好的评分模型。HPS v2在各种图像分布上比以前的指标评估性能更好,并可用于文生图模型的改进,使其成为一个更好的评估这些模型的方法。


训练集的每一组信息,包含prompt、一对图像,以及人类对于两张图的偏好(一张为0,一张为1)。CLIP模型主要来计算图像和prmpt之间的相似度:

image.png

HPS v2计算的偏好得分,分母为分别选择其中一张图对应的相似度得分,分子为其中一张图像对应的相似度得分。这个计算的目的是对于结果做一个归一化:

image.png


loss函数使用KL散度,计算预测打标的得分,与真实打标的得分,二者之间的差异:

image.png


模型训练:使用OpenCLIP训练的ViT-H/14作为预训练模型,对其进行微调。由于在有限的数据集上微调预训练模型,所以常规操作是freeze前面几层网络或者减少其学习率。本项目训练了CLIP的图像编码器的后20层,以及文本编码器的后11层。


 模型评估


分别在 ImageReward、HPD v2两个数据集上进行精度评估,HPS v2实现SOTA:

image.png


评估方法:计算生成图像x和prompt的相似度:

image.png


本项目的一些局限性:

  • 需要包含更多的主题。
  • 依然可能有的标注偏差:chatgpt可能带来偏差;人工标注带来偏差。
  • 未考虑图像分辨率的影响,因为图像分辨率很影响人类的偏好。
相关文章
|
4月前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【8月更文挑战第27天】在软件开发的海洋中,自动化测试是确保航船不偏离航线的关键罗盘。随着人工智能(AI)技术的兴起,这艘航船正乘风破浪,以前所未有的速度前进。本文将探索如何通过AI技术优化自动化测试流程,不仅提高测试的效率和覆盖范围,而且增强测试用例的智能生成和结果分析能力。我们将从AI在自动化测试中的应用入手,深入探讨其对测试准确性和效率的影响,以及面临的挑战与未来的发展方向。
|
16天前
|
jenkins 测试技术 持续交付
软件测试中的自动化与持续集成:提升效率与质量的关键
在快节奏的软件开发环境中,自动化测试和持续集成已经成为不可或缺的部分。本文将探讨自动化测试和持续集成的重要性,以及它们如何协同工作以提高软件开发的效率和质量。通过分析自动化测试的策略、工具选择以及持续集成的实践,我们将揭示这些技术如何帮助开发团队快速响应变化,减少错误,并加速产品上市时间。
|
20天前
|
测试技术 开发者 Python
自动化测试之美:从零构建你的软件质量防线
【10月更文挑战第34天】在数字化时代的浪潮中,软件成为我们生活和工作不可或缺的一部分。然而,随着软件复杂性的增加,如何保证其质量和稳定性成为开发者面临的一大挑战。自动化测试,作为现代软件开发过程中的关键实践,不仅提高了测试效率,还确保了软件产品的质量。本文将深入浅出地介绍自动化测试的概念、重要性以及实施步骤,带领读者从零基础开始,一步步构建起属于自己的软件质量防线。通过具体实例,我们将探索如何有效地设计和执行自动化测试脚本,最终实现软件开发流程的优化和产品质量的提升。无论你是软件开发新手,还是希望提高项目质量的资深开发者,这篇文章都将为你提供宝贵的指导和启示。
|
20天前
|
机器学习/深度学习 人工智能 自然语言处理
自动化测试的新篇章:利用AI提升软件质量
【10月更文挑战第35天】在软件开发的海洋中,自动化测试犹如一艘救生艇,它帮助团队确保产品质量,同时减少人为错误。本文将探索如何通过集成人工智能(AI)技术,使自动化测试更加智能化,从而提升软件测试的效率和准确性。我们将从AI在测试用例生成、测试执行和结果分析中的应用出发,深入讨论AI如何重塑软件测试领域,并配以实际代码示例来说明这些概念。
45 3
|
2月前
|
敏捷开发 监控 jenkins
自动化测试之美:打造高效的软件质量保障体系
【10月更文挑战第20天】在软件开发的海洋中,自动化测试如同一艘精准的导航船,引领项目避开错误的礁石,驶向质量的彼岸。本文将扬帆起航,探索如何构建和实施一个高效的自动化测试体系,确保软件产品的稳定性和可靠性。我们将从测试策略的制定、工具的选择、脚本的编写,到持续集成的实施,一步步描绘出自动化测试的蓝图,让读者能够掌握这一技术的关键要素,并在自己的项目中加以应用。
33 5
|
2月前
|
Java 测试技术 持续交付
探索自动化测试的奥秘:提升软件质量的关键
【10月更文挑战第20天】 在当今快速发展的软件行业中,自动化测试已成为确保产品质量和加速开发周期的重要工具。本文将深入探讨自动化测试的核心概念、实施策略及其对软件开发生命周期的影响,旨在为读者提供一种全面理解自动化测试的视角,并展示如何有效地将其应用于实际项目中以提高软件质量和效率。
23 2
|
2月前
|
机器学习/深度学习 人工智能 缓存
基于AIGC的自动化内容生成与应用
基于AIGC的自动化内容生成与应用
87 3
|
2月前
|
测试技术 数据安全/隐私保护 开发者
自动化测试的奥秘:如何用Selenium和Python提升软件质量
【9月更文挑战第35天】在软件开发的海洋中,自动化测试是那艘能引领我们穿越波涛的帆船。本文将揭开自动化测试的神秘面纱,以Selenium和Python为工具,展示如何构建一个简单而强大的自动化测试框架。我们将从基础出发,逐步深入到高级应用,让读者能够理解并实现自动化测试脚本,从而提升软件的质量与可靠性。
|
3月前
|
测试技术 持续交付 Python
自动化测试之美:打造高效的软件质量保障体系
【9月更文挑战第25天】在软件开发的海洋中,自动化测试是一艘能够引领我们高效航行的帆船。它不仅能帮助我们发现缺陷,更是一个持续集成和持续部署(CI/CD)过程中不可或缺的部分。本文将通过浅显易懂的语言和实际代码示例,引导读者理解自动化测试的价值,并学会如何实施它,从而提升软件的质量与开发效率。
46 4
|
3月前
|
敏捷开发 监控 测试技术
提升软件质量的利器:自动化测试的实践与反思
在软件开发的生命周期中,测试作为保障产品质量的重要环节,其重要性不言而喻。随着敏捷开发和持续集成等实践的普及,传统的手动测试方式已逐渐无法满足快速迭代的需求。因此,自动化测试作为一种提高测试效率和准确性的有效手段,正受到越来越多开发者的青睐。本文将深入探讨自动化测试的价值、实施步骤以及在实践中可能遇到的问题和解决方案,帮助读者更好地理解和应用自动化测试。
40 2