使用pycocoeval进行ImageCaption任务评测

1. 场景:

ImageCaption任务是CV以及mllm研究中的基础任务。在这个blog中,我们介绍如何使用pycocoevalcap这个package评测模型的captioning能力。

2. 评测指标

在ImageCaption任务中,我们通常参考bleu, meteor, rouge_L, CIDEr, SPICE等semantic matching指标。其中CIDEr和 SPICE是用来评测ImageCaption的专门指标,而bleu, meteor, rouge_L也广泛应用于NMT和summarization等NLG任务。这里对于metric的原理不进行赘述,感兴趣的小伙伴可以参考如资料:

3. pycocoevalcap 安装与配置

pycocoevalcap是微软开发的专门用于评测MS COCO数据集ImageCaption任务的工具包, 它几乎集成了所有caption evaluation指标。但是由于pycocoevalcap开发的比较早,SPICE的计算还需依赖JAVA1.8环境,安装起来并不是一帆风顺的。But,让我们一步一步来~
在这里插入图片描述

3.1 安装pycocoevalcap

在用户的conda虚拟环境中,直接用pip安装即可。国内的小伙伴可以基于国内镜像,这里使用清华源。

pip install pycocoevalcap -i https://pypi.tuna.tsinghua.edu.cn/simple

3.2 安装JAVA Version 8

首先访问JAVA官网。我用的是M1芯片的Macbook,于是要在这里下载
在这里插入图片描述
如果使用其他的设备,可以在官网里面找到符合自己设备的安装包,再进行下载。ubuntu用户可以参考这里。下载下来的是一个Java 8 Updata 431的安装向导,直接双击点开并Install即可。
在这里插入图片描述

随着进度条走完,JAVA Version 8 已经安装完毕,我们可以在terminal中check一下.

#查看java版本
(MLBD) xxx@xxx-MacBook-Pro ~ % java -version
java version "1.8.0_431"
Java(TM) SE Runtime Environment (build 1.8.0_431-b10)
Java HotSpot(TM) 64-Bit Server VM (build 25.431-b10, mixed mode)
#查看java 路径
(MLBD) xxx@xxx-MacBook-Pro ~ % /usr/libexec/java_home -V
Matching Java Virtual Machines (1):
    1.8.431.10 (arm64) "Oracle Corporation" - "Java" /Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home # 就是这个路径‘/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home’
/Library/Internet Plug-Ins/JavaAppletPlugin.plugin/Contents/Home

在这里,我们就把JAVA version 8安装好了。

3.3 注释SPICE.py 中的cache

若直接进行SPICE指标的评测,有时会报如下错误:

---------------------------------------------------------------------------
CalledProcessError                        Traceback (most recent call last)
Cell In[1], line 25
     22     coco_eval.evaluate()
     24     return coco_eval.eval
---> 25 compute_cider(result_path, annotation_path)

Cell In[1], line 22
     20 coco_eval = COCOEvalCap(coco, coco_result)
     21 coco_eval.params["image_id"] = coco_result.getImgIds()
---> 22 coco_eval.evaluate()
     24 return coco_eval.eval

File /opt/miniconda3/envs/MLBD/lib/python3.10/site-packages/pycocoevalcap/eval.py:53, in COCOEvalCap.evaluate(self)
     51 for scorer, method in scorers:
     52     print
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值