Image captioning评价方法之Meteor

2023-05-16

项目地址:http://www.cs.cmu.edu/~alavie/METEOR/

代码地址(非官方实现,实现的是项目地址中的1.5版本):https://github.com/tylin/coco-caption

项目由CMU提供,项目地址包含了代码和最新版本以及之前老版本的meteor评价算法。

下面记录一下最初版也就是《The Meteor Metri for Automatic Evaluation of Machine Translation》的计算思路。

首先说明一下常用的BLEU的缺点,BLEU评价方法的缺点有如下几点:

  1. 没有采用recall指标,虽然引入了brevity penalty因子来约束生成句子的长度,但是还是没法弥补缺失recall的缺陷
  2. 使用高阶的n元组(即采用较大的n)来判断句子的语法和流畅性。文章猜想,只要采用合适的匹配方式,只使用unigram也可以很好的体现句子语法和流畅性。
  3. 采用n元组的几何平均数来计算。几何平均数中只要有一个值为0,那么结果就为0,所以这种计算方式不太可靠。

文章从常用的BLEU评价指标入手,解决BLEU的缺点。

一、Meteor的单词匹配规则

文章简单的将hypothesis和reference translation进行单词与单词之间的匹配,如果reference存在多个,那么就取匹配结果最好的那个。

对于Meteor的匹配,文章有下面几个规则说明:

1. 如果单词与单词完全相同,那么两个单词就是匹配上了
2. 如果两个单词的词根(即不包含时态和单复数情况)相同,那么两个单词就算匹配上了
3. 如果两个单词是同义词(对于英语来说,同义词有WordNet提供),那么两个单词就算匹配上了

匹配过程中,一个单词最多与另一个单词匹配,不能同时匹配两个单词。如果匹配过程中存在多种匹配结果,那么选择匹配图中交叉数较少的那个。拿wiki上的例子来说,如下图所示:

在这里插入图片描述

在这里插入图片描述

可以看出结果是选择交叉数较小的那个,即上面那个匹配结果。

由于匹配与否有三个规则来判断,且匹配过程中已匹配的单词不能与其他单词进行匹配,所以匹配规则的执行是有顺序的,文章就是采用上述的1,2,3的顺序执行的,即先匹配完全相同的单词,然后是词根相同的,最后是同义词。

二、Meteor的计算方式

定义m为hypothesis和reference匹配到的总对数,hypothesis的长度为t,reference的长度为r,那么准确率计算方式为 P = m / t P=m/t P=m/t,召回率计算方式为 R = m / r R=m/r R=m/r,F值的计算方式为 F m e a n = P ⋅ R α ⋅ P + ( 1 − α ) ⋅ R F_{mean}=\frac{P\cdot R}{\alpha\cdot P +(1-\alpha)\cdot R} Fmean=αP+(1α)RPR

上式中只利用了单词之间的匹配,为了考虑到词与词之间的顺序,文章引入了fragmentation penalty。如果两句子中,互相匹配的单词都是相邻的,那么它们就定义为同一块(chunk),计算总的块的个数ch。将frag定义为 f r a g = c h / m frag=ch/m frag=ch/m。那么fragmentation penalty定义为 P e n = γ ⋅ f r a g β Pen=\gamma\cdot frag^\beta Pen=γfragβ

γ \gamma γ为惩罚的力度,是一个超参数,取值范围为 0 ≤ γ ≤ 1 0\leq \gamma\leq 1 0γ1 β \beta β也是一个超参数。

最终的Meteor计算方式为:

s c o r e = ( 1 − P e n ) ⋅ F m e a n score=(1-Pen)\cdot F_{mean} score=(1Pen)Fmean

wiki列举了几个计算的例子,如下图所示
在这里插入图片描述

对于一个数据集的Meteor的计算,上述的 m 、 t 、 r 、 c h m、t、r、ch mtrch是从所有的测试数据统计得到的。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Image captioning评价方法之Meteor 的相关文章

  • 如何在Android中没有Intent且没有任何视图窗口的情况下拍照

    大家好 我正在尝试弄清楚如何通过按下按钮来拍照 而不显示任何预览 我的想法是 我想要拍摄并保存照片 但之前或之后没有照片的视觉预览 到目前为止 我能够获取拍照并将其保存到磁盘的代码 没有任何问题 但如果没有表面视图或预览 我似乎无法做到这一
  • 在 PowerShell 中提取 EXIF 数据的简单方法?

    我一直在研究使用 PowerShell 提取 EXIF 数据的各种方法 但到目前为止我发现它相当复杂 一些here http blog cincura net 233463 renaming files based on exif data
  • 用于更新视图的 Meteor 异步代码

    所以我想做的是发出一个 HTTP get 请求 然后用响应更新视图 由于某种原因它不起作用 这是我所拥有的 我一直遵循这个要点 https gist github com 3443021 https gist github com 3443
  • UIEdgeInsets 定位文本/图像问题

    我尝试做一个UIButton图像位于文本上方 所以我使用以下代码 UIButton btn UIButton buttonWithType UIButtonTypeCustom btn frame CGRectMake x y 140 14
  • 将图像保存和检索到数据库的最佳方法

    寻求上述建议 希望创建一个 SQLite 数据库 其中每行数据主要是字符串 但我也想保存从手机拍摄的图像 是否建议或可能保存位图图像的编码 Base 64 字符串并在调用数据行时将其转换回图像 我还在某处读到有一个 blob 列类型可以保存
  • 使用 CSS3 在屏幕上移动图像

    我浏览网页已经有一段时间了 试图找到一种方法 让图标在加载页面时移动到屏幕上 从左侧移动到 body div 的中心 如何才能做到这一点 这是我到目前为止所拥有的 CSS3 a rotator text decoration none pa
  • 有没有办法为 CSS3 边框图像的每一侧使用不同的图像?

    在 Firefox 和 Safari 上 我可以通过以下 CSS 使用图像作为边框 moz border image url shadow left png 0 7 0 7 round round webkit border image u
  • Javascript 像素操作:这些不是我的颜色

    我知道类似的问题已经被问过好几次了 但我还没有找到我想要的东西 我正在将图像读入画布对象 在 JavaScript 中 并尝试操作一些特定的像素 例如 我正在寻找颜色 RGB 224 64 102 并尝试将其更改为其他颜色 我可以将灰度应用
  • PHP imagettftext 返回的边界框与渲染的边界框不同

    我正在使用 imagettftext 渲染 PNG 文件 对 imagettftext 的调用返回渲染文本的边界框 但仔细检查后发现 文本的渲染稍微超出了它自己的边界框 边界框是正确的 我检查了图像的像素坐标 但文本位置不正确 它输出这个
  • 以编程方式在 iPhone 上使用彩信发送图像?

    搜遍全网都没有解决这个问题 我想用 iPhone 相机拍照 然后能够通过彩信 电子邮件发送出去 这不一定发生在我的应用程序中 但至少我希望能够调用彩信 电子邮件应用程序并使其选择拍摄 和存储 的图片 当我使用内置相册应用程序时 每张照片的左
  • Go 中的 WebP 编码器/解码器

    是否有一个完整的 WebP 编码器和解码器与当前每周 或可分叉 兼容 它的速度与标准 png 相当吗 这个人在 GitHub 上有一个包 其中包含 WebP 的编码器和解码器 https github com chai2010 webp h
  • 在上传过程中调整网页中的图像大小和优化图像的最佳类是什么?

    我正在寻找一个类 使用 C 来检查我的图像尺寸 宽度和高度 或以 kb 为单位的图像尺寸 如果它们与我最喜欢的尺寸不匹配 请调整它们的大小 意味着使用 Constrain 和相对宽度和高度 new大小就像 Photoshop 中的图像大小
  • .php 随机图像在外部站点上作为 .jpg

    我发布的论坛只允许从外部 URL 加载 jpg png 和 gif 图像 我想解决这个问题 并从服务器上的目录中随机选择一个动态头像 但我无法使其正常工作 可能是由于在外部站点上执行了额外的检查 或者我的代码中存在错误 到目前为止 我已经在
  • 使用 Angular JS ng-src 的后备(默认)图像

    我正在尝试使用从模式返回的数据设置图像源 这是在 ng repeat 循环内 div div span table tr td class imgContainer img td tr table span div div
  • ABSMIDDLE 在 Firefox 和 Chrome 上的工作方式不同吗?

    我有一个图标图像和文本 如下所示 一切的代码来源是 img src align left My Title Here 问题在于 与 Firefox 相比 Chrome 中的图标没有与标题垂直对齐 我觉得absmiddle根本不起作用 有什么
  • BIRT 不显示 base64 编码的图像

    我想将图像包含到 BIRT 报告中 图像应由 XML 数据源 base64 编码 给出 但XML数据源不支持Blob数据类型 我找到了一个很好的答案这个 BIRT 问题 https stackoverflow com questions 2
  • 检测植物图片中的所有分支

    我想知道有什么可以检测下图中的所有绿色树枝 目前我开始应用 Frangi 过滤器 options struct FrangiScaleRange 5 5 FrangiScaleRatio 1 FrangiBetaOne 1 FrangiBe
  • PHP - 获取base64图像字符串解码并保存为jpg(生成空图像)

    嗨 我实际上是通过 ajax 发送一个 base64 图像字符串到一个 php 脚本 该脚本只是解码字符串并将内容保存为 jpg 文件 但结果是一张空图像 这怎么可能 PHP脚本 uploadedPhotos array photo 1 p
  • 如何使用Android opencv使图像的白色部分透明

    我无法链接超过 2 个网址 因此我将我的照片发布到此博客 请在这里查看我的问题 http blog naver com mail1001 220650041897 http blog naver com mail1001 220650041
  • 使用 CSS 的响应式图像

    我发现调整图像大小以使其具有响应能力很棘手 我正在开发一个 php 应用程序来自动将网站转换为响应式版本 我有点被图像困住了 我已经成功地为网站上的每个图像添加了一个包装类 并且可以很好地调整图像的大小 我的问题在于自然小于窗口的图像 例如

随机推荐