如何自动化地评估 AIGC 生图的质量?

节前,我们星球组织了一场算法岗技术&面试讨论会,邀请了一些互联网大厂朋友、参加社招和校招面试的同学。

针对算法岗技术趋势、大模型落地项目经验分享、新手如何入门算法岗、该如何准备、面试常考点分享等热门话题进行了深入的讨论。

合集:

持续火爆!!!《AIGC 面试宝典》已圈粉无数!


AIGC生图需要进行质量评估以确保满足一定标准。这一评估过程非常重要,因其关系到内容的专业性、商业价值以及顾客的满意度。

然而,传统的手动评估方式既耗时又耗力,且容易受到主观偏差的影响,导致评估成本高昂而效果不佳。目前对基模型的优化效果的全面评测,包含了十多个维度,全部标注需要2~4个人日。如果涉及模型整体效果的迭代,则需要更多的人力投入。

鉴于此,自动化的质量评估方法成为一种迫切需求。通过采用算法和机器学习模型,自动化评估可以快速、准确地执行质量检查,不仅节省了大量人力资源,还提高了评估的一致性和准确性。自动化评估工具还能实现实时监控和即时反馈,从而提升整个生产流程的效率和内容的质量

总之,自动化质量评估在提高AIGC生图质量与生产效率方面发挥着不可替代的作用。本文将分享几项最新的研究进展,希望能给大家带来帮助~

APDD

主要内容

计算视觉美学是计算机视觉领域中一个非常重要的研究领域,主要涉及大型数据集训练以及神经网络模型优化,使模型能够提供对美学质量的评估。因此,构建图像美学质量评估(IAQA)基准数据集已成为推进这一方向研究的关键前提。然而,现有的数据主要关注图像的总审美得分,而对图像类别和审美属性的研究探索有限。此外,大多数现有的数据集都是在摄影领域创建的,在艺术图像领域研究不足。

本项目主要对艺术图像进行美学评估,虽然没有使用文生图模型生成的图像,但是对于图像的美学质量评估提供了一套完整的处理思路。本项目提出了一个清晰的框架来量化艺术图像中的美学分数;构建了艺术领域的多属性、多类别绘画数据集,即绘画美学数据集(APDD);提出了一种绘画图像评估网络(AANSPS),该模型在大多数指标上取得了令人满意的结果,为本方法的有效性进行了验证。

美学评分标准

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

图片

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

  • 艺术创作者的一般思维过程。

  • 艺术观察者如何进行分层观察。

  • 评价者的评分方法。

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

图片

APDD数据集

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

  • 得到了全球28位专业艺术家和数十名美术生的积极参与。

  • 数据集包括24个不同的艺术类别和10个不同的审美属性。

  • 收集了4985幅画作,其中注释计数超过31100个条目。

数据集的收集:

  • 精心挑选了几个专业的艺术网站和机构作为数据来源,以确保艺术图像的广度和多样性。

  • 从艺术学生的作业中挑选了一些审美质量较低的艺术作品。艺术家作品与学生作品比例为3:1。

  • 收集了4985幅画作,涵盖了24个类别,每个类别至少包含200幅图片。作品包括著名艺术家作品和学生作品。该图像数据集的结构旨在为后续的评分注释提供足够的代表性和多样性。

图像标注:

  • 评分团队根据所选的基准图像,开发了一个一致的、客观的评分系统,确保后续的评分工作能够遵循统一的标准。

  • 第一阶段由专家评分,耗时15天,为评分活动提供了坚实的理论基础。

  • 第二阶段由24名来自油画、素描和中国画专业的高学历学生评分。第二阶段进展得更快,总共在7天内完成。

  • 将任务分配给对应的评分者,指定艺术类别和所涉及的图像数量,确保APDD数据集中的每个图像至少由6个个体进行评估。

  • 在对所有评分进行综合评估后,我们根据所有注释者的评估计算平均分,最终收集每种属性的总分和单个属性分。

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

图片

AANSPS模型

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

图片

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

图片

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

模型评估

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

图片

本项目的一些局限性:

  • 需要进一步扩大审美分类和属性,更全面地评价审美质量。

  • 增加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进行了清洗。效果如下:

图片

图像来源:

  • 使用不同的模型和相同的prompt来生成图像。

  • 除了生成的图像,还添加了COCO数据集中对应的真实图像。

  • 训练集包含来自4个模型的生成图片以及COCO数据集的真实图像。

  • 测试集包含9个模型的生成图像以及COCO数据集的真实图像。这5个另加的模型使我们能够验证评估模型的泛化能力。

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

图片

HPS v2 数据集

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

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

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

图片

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

图片

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

图片

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

模型评估

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

图片

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

图片

本项目的一些局限性:

  • 需要包含更多的主题。

  • 依然可能有的标注偏差:chatgpt可能带来偏差;人工标注带来偏差。

  • 未考虑图像分辨率的影响,因为图像分辨率很影响人类的偏好。

Pick-a-Pic

主要内容

对于文生图模型,反映人类偏好的大型数据集,很少有公开的。为了解决这个问题,本项目创建了一个web应用程序,允许文生图模型的用户生成图像并指定他们的偏好。使用这个web应用程序,构建了一个大型的、开放的文生图数据集,并且标注有用户偏好。部分数据集如下:

图片

利用这个数据集,可以训练一个基于clip的评分函数,即PickScore,它在预测人类偏好的任务上展示了很好的性能。PickScore可以对于多张生成图像进行偏好排序,以此比较不同文生图模型的效果、以及相同模型在不同参数下的效果。

Pick-a-Pic数据集

Pick-a-Pic数据集概况:

  • 包含超过50w组信息和3.5w个不同的prompt。

  • 每组信息包含一个prompt、两张图、以及偏好标签。

  • 偏好标签有三种情况:喜欢第一张图,喜欢第二张图,两幅图都差不多。

  • 对一个图片的选择是由文生图任务的爱好者参与的,而不是完全无生图模型使用经验的人员。

如何通过web应用程序收集数据:

  • 用户首先写一个prompt,然后收到两张图片。

  • 用户做出偏好判断,选择其中一张偏好的图片。

  • 之后会呈现一个新的图像的图像来替代被拒绝的图像,用户会在这张新图和刚才喜欢的图像里做偏好选择。

  • 该流程会一直重复,直到用户改变prompt。

图片

数据集中的图像是通过采用多个模型生成的,即Stable Diffusion 2.1、Dreamlike Photoreal2.0, 以及使用不同CFG值的Stable Diffusion XL模型。同时,作者将减少数据集中包含的NSFW示例的数量,并将定期上传最新版本的数据集。在处理收集到的交互时,作者过滤了NSFW短语,并且禁止一些非法用户。每一次收集,将数据集划分为训练、验证集和测试集:

  • 采样1000个prompt,确保每个prompt都是唯一的。

  • 将这些prompt随机分成大小相同的两组,来创建验证集和测试集。

  • 每个prompt采样一组信息。

  • 确保训练集和这两个子集之间没有重复的prompt。

PickScore模型

为了训练评分函数,本项目使用人类偏好数据和类似于InstructGPT的reward模型,来微调CLIP-H。PickScore在预测用户偏好的任务中取得了SOTA表现,PickScore准确率为70.5%,人类志愿者准确率为68.0%,而原生CLIP-H为60.8%。人类偏好与PickScore有很强的相关性(0.917),而与FID指标则呈负相关(-0.900)。

PickScore遵循CLIP的架构:给定一个prompt x和一个图像y,评分函数s通过使用两个编码器计算文本和图像的相似度。

图片

计算对于两张图的偏好得分:分别计算两张图与prompt的相似度,计算函数的分母为两张图与prompt的相似度,分子为其中一张图与prompt的相似度,这个函数的目的是做归一化计算。

图片

计算loss函数:拿到模型的偏好得分后,计算与人工打分的KL散度,表示预测结果与真实结果的差距。训练过程中,通过调整模型参数来最小化KL散度。

图片

由于许多图像对来自于相同的prompt,通过对于这些图像对进行加权平均,来减轻过拟合的风险。具体来说,每个图像的权重,与它在数据集中的出现频率成反比。

模型评估

对于模型推理,如果两张图的偏好得分的差值的绝对值,小于一个超参t,即

图片

则认为这两张图偏好一致。该超参,对于不同模型效果不一样,作者采取了一个最合适的值,来用于不同模型的评估。

使用Spearman方法来计算预测得分与人类预测结果的相似度:

图片

相关效果,对于每两列,左侧为CLIP-H偏好的图像,右侧为PickScore偏好的图像,绿色框选中的图像为人类偏好的图像,可以看到,PickScore偏好和人类偏好更加接近,PickScore通常选择更美观和与prompt更一致的图像。

图片

偏好打分模型:可以对于一组生成图像,进行打分排序,并选择得分最高的那一张。PickScore优于其他评估方法。

图片

本项目的一些局限性:

  • 一些图像和提示可能包含NSFW内容,这可能会使数据产生偏差。

  • 用户的偏好可能可能反映在所收集的数据中。

总结与讨论

在AIGC生图过程中,进行图像质量的自动化评估,能快速进行打分、节省人工成本,更准确的进行模型效果比较,以促进模型迭代。对于特定场景的自动化评估,则需要建立对应的评估体系,包括评分准则、特定数据集、打分模型。我们团队正在进行家装行业AIGC的相关研发,以提高家装AI模型的效果。我们希望与对此方向感兴趣的同学一起探讨和交流。

参考文献

  • 《Paintings and Drawings Aesthetics Assessment with Rich Attributes for Various Artistic Categories》

    https://arxiv.org/abs/2405.02982

  • 《Human Preference Score v2: A Solid Benchmark for Evaluating Human Preferences of Text-to-Image Synthesis》

    https://arxiv.org/abs/2306.09341

  • 《Pick-a-Pic: An Open Dataset of User Preferences for Text-to-Image Generation》

    https://arxiv.org/abs/2305.01569

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/694557.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

【Spring Boot】异常处理

异常处理 1.认识异常处理1.1 异常处理的必要性1.2 异常的分类1.3 如何处理异常1.3.1 捕获异常1.3.2 抛出异常1.3.4 自定义异常 1.4 Spring Boot 默认的异常处理 2.使用控制器通知3.自定义错误处理控制器3.1 自定义一个错误的处理控制器3.2 自定义业务异常类3.2.1 自定义异常类3…

Cweek4+5

C语言学习 十.指针详解 6.有关函数指针的代码 代码1:(*(void (*)())0)(); void(*)()是函数指针类型,0是一个函数的地址 (void(*)())是强制转换 总的是调用0地址处的函数,传入参数为空 代码2:void (*signal(int, void(*)(int))…

AE电源pinnacle软件新款老款二款软件

AE电源pinnacle软件新款老款二款软件

高速USB转串口芯片CH343

CH343封装 截止目前,主要封装有 SOP16: CH343G QFN16: CH343P ESSOP10: CH343K,截止24年6月未生产 CH343串口速度 最高串口速度: 6Mbps,比CH340的2M,快3倍 1、概述 参考版本:1E CH343 是一个 USB 总线的转接芯片,…

国标GB/T 28181详解:校时流程详细说明

目录 一、定义 二、作用 1. 时间同步性 2. 事件记录的准确性 3. 跨平台、跨设备协作 4. 降低时间误差 5. 安全性提升 三、基本要求 四、命令流程 五、协议接口 六、校时效果 1、未校时的情况 2、校时后的效果 七、参考 一、定义 GB28181协议要求所有的监控设…

把系统引导做到U盘,实现插上U盘才能开机

前言 有个小伙伴提出了这样一个问题:能不能把U盘制作成电脑开机的钥匙? 小白稍微思考了一下,便做了这样一个回复:可以。 至于为什么要思考一下,这样会显得我有认真思考他提出的问题。 Windows7或以上系统均支持UEF…

Cannot access spring-snapshot (https://repo.spring.io/snapshot) in offline mode

Maven报错 这个选项是脱机工作,意思就是不读取远程仓库,只读取本地已有的仓库,之所以报错原因就是本地仓库是空的,然而选择了脱机工作

Android.mk文件生成的so工程文件并Debug调试native code

1.这里主要展示一下从最原始先新建一个工程 2.将hello的子工程文件放入上面新建好的工程里面,直接拷贝放置这里 3.修改根目录下的settings.gradle 加入hello 4.app工程下的build.gradle加入依赖,这样就可以识别hello中的java包文件 5.MainActivity 中来&…

Redis主从同步

master如何得知salve是否是第一次来同步呢?? 有几个概念,可以作为判断依据: Replication Id:简称replid,是数据集的标记,replid一致则是同一数据集。每个master都有唯一的replid,s…

C++初阶学习第六弹——探索STL奥秘(一)——标准库中的string类

前言: 在前面,我们学习了C的类与对象,认识到了C与C语言的一些不同,今天,我们将进入C的 关键部分——STL,学习完这部分之后,我们就可以清楚的认识到C相比于C语言的快捷与便利 目录 一、为什么有s…

【MySQL】(基础篇四) —— 检索数据

检索数据 检索数据是我们使用数据库时进行最多的操作,其中包括了检索条件、排序、过滤、分组等等。我会在后续的多篇博客中为你进行详细地介绍它们。 这次先让我们来粗略的了解一下SELECT,为了使用SELECT检索表数据,必须至少明确两点信息—…

Linux:动态库和静态库的编译与使用

目录 1.前言 2.静态链接库 3.静态链接库生成步骤 4.静态链接库的使用 5.动态链接库 6.动态链接库生成步骤 7.动态链接库的使用 8.动态链接库无法加载 9.解决动态链接库无法加载问题 前言 在《MinGW:从入门到链接库》博客中简单介绍了如何编译动态链接库和静态链接库…

python - pandas常用计算函数

文中所用数据集有需要的可以私聊我获取 学习目标 知道排序函数nlargest、nsmallest和sort_values的用法 知道Pandas中求和、计数、相关性值、最小、最大、平均数、标准偏差、分位数的函数使用 1 排序函数 导包并加载数据集 import pandas as pd ​ # 加载csv数据, 返回df对…

MySQL之多表查询—行子查询

一、引言 上篇博客学习了列子查询。 接下来学习子查询中的第三种——行子查询。 行子查询 1、概念 子查询返回的结果是一行&#xff08;当然可以是多列)&#xff0c;这种子查询称为行子查询。 2、常用的操作符 、 <> (不等于) 、IN 、NOT IN 接下来通过一个需求去演示和…

系统思考—心智模式

凯恩斯说&#xff1a;“介绍新观念倒不是很难&#xff0c;难的是清除那些旧观念。”在过去的任何一年&#xff0c;如果你一次都没有推翻过自己最中意的想法&#xff0c;那么你这一年就算浪费了。旧观念像是根深蒂固的杂草&#xff0c;即使在新知识的光照下&#xff0c;也需要时…

stream 流的一些底层实现原理

闭包 闭包的底层实现?外层的变量成为方法的一部分会生成一个lambda方法&#xff0c;将源本的2个参数转化3个参数此时变量就成为了方法的一部分值是如何传递的呢?会有一个专门的类用于存储此变量的值 流的切分后再并行 数组或者是集合&#xff0c;需要用到一个可切分的迷代器这…

如何一键拷贝PPT中的所有文字?

有时我们可能需要引用PPT的文字&#xff0c;但一个幻灯片一个幻灯片拷贝很是麻烦&#xff0c;我们想一键拷贝PPT中所有幻灯片中的内容&#xff08;最近我就遇到了这个需求&#xff09;。今天就来讲讲这个一键拷贝的技巧。因为大家可能会遇到同样的问题&#xff0c;所以在此记录…

[Vue-常见错误]浏览器显示Uncaught runtime errors

文章目录 错误描述正确写法具体如下 错误描述 当前端代码发生错误时&#xff0c;浏览器中出现以下错误提示。 正确写法 显然这不是我们所期望的&#xff0c;在vue.config.js中配置如下设置关闭Uncaught runtime errors显示 devServer: {client: {overlay: false}具体如下 …

Matlab|遗传粒子群-混沌粒子群-基本粒子群

目录 1 主要内容 2 部分代码 3 效果图 4 下载链接 1 主要内容 很多同学在发文章时候最犯愁的就是创新点创新点创新点&#xff08;重要的事情说三遍&#xff09;&#xff0c;对于采用智能算法的模型&#xff0c;可以采用算法改进的方式来达到提高整个文章创新水平的目的&…

二叉查找树详解

目录 二叉查找树的定义 二叉查找树的基本操作 查找 插入 建立 删除 二叉树查找树的性质 二叉查找树的定义 二叉查找树是一种特殊的二叉树&#xff0c;又称为排序二叉树、二叉搜索树、二叉排序树。 二叉树的递归定义如下&#xff1a; &#xff08;1&#xff09;要么二…