Text2Image评价指标——CLIP Score

本文介绍了如何使用CLIP模型在文本到图像(Text2Image)和图像到图像(Image2Image)任务中计算相似度,包括环境配置、代码实现以及具体函数的功能,如获取文件夹中的图像、计算图像与文本的关联度和类别间的平均相似度。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

一、引言

CLIP score是一种用于评估 text2img 或者 img2img,模型生成的图像与原文本(prompt text)或者原图关联度大小的指标。

大多是Text2Image论文中都会用到CLIP Score,今天这篇博客主要是实现了text2image-similary和image2image-similary。

二、环境配置

首先你需要安装好最基本的pytroch环境,这里就不过多叙述。

代码实现中用到了Clip模型,这里我用的是openai/clip-vit-large-patch14 · Hugging Face,大家下载好放到项目文件夹中即可(每个文件都要下载别漏了哈)。

 三、Text2Image-similary

稍微讲解一下代码:

        首先,加载了预训练的CLIP模型和数据处理器,然后,这里定义了几个函数来处理图像和文本数据。

        get_all_folders函数用于获取指定文件夹下的所有子文件夹,get_all_images函数用于获取指定文件夹下的所有图像文件,get_clip_score函数用于计算图像和文本之间的CLIP得分。  
calculate_clip_scores_for_all_categories函数是主要的处理函数,它遍历指定的图像文件夹,对每个子文件夹(即类别)下的所有图像计算CLIP得分,并计算每个类别的平均得分。  
最后,我们从文件中读取文本提示,然后调用calculate_clip_scores_for_all_categories函数计算所有类别的CLIP得分和平均得分,并打印出结果。


from tqdm import tqdm
from PIL import Image
import torch
import os
import numpy as np

from transformers import CLIPProcessor, CLIPModel

# 设置GPU
device = torch.device("cuda" if torch.cuda.is_available() else "cpu")

torch.cuda.set_device(6)
# 加载模型
model = CLIPModel.from_pretrained("openai/clip-vit-large-patch14").to(device)
# 加载数据处理器
processor = CLIPProcessor.from_pretrained("openai/clip-vit-large-patch14")


def get_all_folders(folder_path):
    # 获取文件夹中的所有文件和文件夹
    all_files = os.listdir(folder_path)
    # 过滤所有的文件夹
    folder_files = [file for file in all_files if os.path.isdir(os.pat
### 图像描述质量评估指标 在IT领域,图像描述质量的评估是一个多维度的任务,涉及多个不同的方面。为了全面衡量生成的图像描述是否准确、详尽以及自然流畅,通常会采用多种评估标准。 #### 客观度量指标 对于图像描述的质量评估,CLIPScore是一种不依赖于参考文本的方法,它通过计算给定图片和对应描述之间的相似度得分来进行评价[^1]。这种方法能够有效地捕捉到视觉内容与文字表达之间的一致性,而不需要预先设定的标准答案作为对比依据。 此外,在机器学习驱动下的图像质量评价体系中也存在一些其他重要的客观度量方式: - **BLEU (Bilingual Evaluation Understudy)**: 原本用于翻译任务中的评分机制被引入到了图像字幕生成效果评测当中;该分数基于n元语法重合率来判断模型输出语句同人工撰写的参照版本间的匹配程度。 - **ROUGE-L**: 另一种常用的自动文本摘要及对话系统性能测量工具,特别适合用来检验较长篇幅的文字材料间的信息覆盖情况;其原理在于寻找两个序列中最长公共子串并据此打分。 这些自动化算法可以快速提供量化反馈,帮助研究者们更好地理解所开发系统的优劣之处。 #### 主观感知测试 除了上述技术手段外,还有一类侧重用户体验感受方面的主观评判流程不可忽视——即邀请真实用户参与进来完成问卷调查或者直接给出直观印象评级。这类做法虽然耗时费力但却能更贴近实际应用场景需求,从而确保最终产品具备良好的可用性和吸引力。 ```python def evaluate_image_caption(image_path, caption_text): """ 使用CLIPScore评估单张图片及其对应的描述文本 参数: image_path (str): 输入图片路径 caption_text (str): 对应的描述文本 返回: float: CLIPScore得分 """ from clip_score import compute_clip_score # 假设有一个名为clip_score.py文件实现了此功能 score = compute_clip_score(image_path=image_path, text=caption_text) return round(score * 100, 2) # 将结果转换成百分制形式返回 ```
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

我是浮夸

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值