VQAScore:文本到视觉生成模型的评估工具,用于衡量模型生成图像、视频和 3D 模型的质量

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦


🚀 快速阅读

  1. VQAScore 是一种基于视觉问答(VQA)模型的评估方法,用于衡量文本到视觉图像生成的质量。
  2. 提供了自动化评估方案,无需人工评分,适用于图像、视频和 3D 模型的生成任务。
  3. 支持多种生成任务,并在多个项目中得到应用,如 Imagen3。

正文(附运行示例)

VQAScore 是什么

在这里插入图片描述

VQAScore 是卡内基梅隆大学(CMU)和 Meta 联合推出的一种评估方法,基于视觉问答(VQA)模型衡量由文本提示生成的图像质量。VQAScore 通过计算模型对“Does this figure show {text}?”这一问题回答“是”的概率,评估图像与文本提示的对齐程度。其核心优势在于无需额外人类标注,直接利用现有的 VQA 模型,提供更精确的评估结果,超越传统评估指标如 CLIPScore。VQAScore 已被应用于多个项目中,如 Imagen3,用于自动评估和优化最新的生成式模型。

VQAScore 的主要功能

  • 评估图像与文本提示的对齐程度:VQAScore 基于计算一个“是”答案的概率,衡量生成的图像是否符合给定的文本提示。
  • 自动化评估:提供自动化的方法评估图像生成模型,无需人工评分,有助于大规模和快速评估。
  • 提高评估的准确性:解决现有评估方法在处理复杂文本提示时的不足,提供更准确的评估结果。
  • 支持多种生成任务:VQAScore 能评估视频和 3D 模型的文本到视觉生成任务。
  • 基准测试与模型改进:基于 GenAI-Bench 基准测试集,VQAScore 帮助研究人员识别模型的局限性,指导模型的改进。

VQAScore 的技术原理

  • 问题模板化:将文本提示转换成一个简单的是非问题,例如:“Does this figure show {text}? 请回答是或否。”
  • 图像和文本的联合编码:用 VQA 模型将图像和问题(已转换成 token 序列)作为输入,进行联合编码。
  • 预测答案的概率:VQA 模型的解码器输出预测答案(“是”或“否”)的概率分布。
  • 计算对齐得分:VQAScore 定义为模型预测“是”答案的概率,概率反映图像与文本提示的对齐程度。
  • 双向编码器-解码器架构:VQAScore 用的 CLIP-FlanT5 模型基于双向编码器-解码器架构,支持图像嵌入依赖于问题内容,反之亦然,有助于更好地理解和处理复杂的文本提示。
  • 无需额外数据微调:VQAScore 在训练时用图像和问题的答案对,评估时无需针对特定数据集进行额外的微调。

如何运行 VQAScore

安装依赖

首先,克隆仓库并安装必要的依赖:

git clone https://github.com/linzhiqiu/t2v_metrics
cd t2v_metrics

conda create -n t2v python=3.10 -y
conda activate t2v
conda install pip -y

pip install torch torchvision torchaudio
pip install git+https://github.com/openai/CLIP.git
pip install -e . # local pip install

或者直接通过 pip 安装:

pip install t2v-metrics

计算 VQAScore

使用以下 Python 代码计算单个图像-文本对的 VQAScore:

import t2v_metrics
clip_flant5_score = t2v_metrics.VQAScore(model='clip-flant5-xxl') # 推荐的评分模型

### 对单个(图像,文本)对进行评分
image = "images/0.png" # 图像路径
text = "someone talks on the phone angrily while another person sits happily"
score = clip_flant5_score(images=[image], texts=[text])

### 或者计算 M 个图像和 N 个文本之间的配对相似度分数
images = ["images/0.png", "images/1.png"]
texts = ["someone talks on the phone angrily while another person sits happily",
         "someone talks on the phone happily while another person sits angrily"]
scores = clip_flant5_score(images=images, texts=texts) # scores[i][j] 表示图像 i 和文本 j 之间的分数

批处理更多图像-文本对

使用 batch_forward() 函数处理大量图像-文本对:

import t2v_metrics
clip_flant5_score = t2v_metrics.VQAScore(model='clip-flant5-xxl')

# 数据集示例
dataset = [
  {'images': ["images/0/DALLE3.png", "images/0/Midjourney.jpg", "images/0/SDXL.jpg", "images/0/DeepFloyd.jpg"], 'texts': ["The brown dog chases the black dog around the tree."]},
  {'images': ["images/1/DALLE3.png", "images/1/Midjourney.jpg", "images/1/SDXL.jpg", "images/1/DeepFloyd.jpg"], 'texts': ["Two cats sit at the window, the blue one intently watching the rain, the red one curled up asleep."]},
  # ...
]
scores = clip_flant5_score.batch_forward(dataset=dataset, batch_size=16) # (n_sample, 4, 1) tensor

资源

  1. 项目官网:https://linzhiqiu.github.io/papers/vqascore
  2. GitHub 仓库:https://github.com/linzhiqiu/t2v_metrics
  3. arXiv 技术论文:https://arxiv.org/pdf/2404.01291
  4. 在线体验 Demo:https://huggingface.co/spaces/zhiqiulin/VQAScore

❤️ 如果你也关注大模型与 AI 的发展现状,且对大模型应用开发非常感兴趣,我会快速跟你分享最新的感兴趣的 AI 应用和热点信息,也会不定期分享自己的想法和开源实例,欢迎关注我哦!

🥦 微信公众号|搜一搜:蚝油菜花 🥦

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值