数据集:

conceptual_captions

任务:

图生文

语言:

en

计算机处理:

monolingual

大小:

1M<n<10M

语言创建人:

found

批注创建人:

found

源数据集:

original

许可:

other
英文

Conceptual Captions 数据集卡片

数据集摘要

Conceptual Captions 数据集包含约3.3M张图像,并附带标题注释。与其他图像标题注释的精心策划风格不同,Conceptual Caption 图像及其原始描述是从网络中收集的,因此代表了更多样的风格。更具体地说,原始描述是从与网络图像相关联的 Alt-text HTML 属性中收集的。为了得到当前版本的标题,我们开发了一个自动流水线,从候选图像/标题对中提取、过滤和转换,以实现得到清晰、信息量大、流利和易学习的标题的平衡。

数据预处理

默认情况下,此数据集不会将图像下载到本地。而是提供图像的URL。要获取图像,请使用以下代码:

from concurrent.futures import ThreadPoolExecutor
from functools import partial
import io
import urllib

import PIL.Image

from datasets import load_dataset
from datasets.utils.file_utils import get_datasets_user_agent


USER_AGENT = get_datasets_user_agent()


def fetch_single_image(image_url, timeout=None, retries=0):
    for _ in range(retries + 1):
        try:
            request = urllib.request.Request(
                image_url,
                data=None,
                headers={"user-agent": USER_AGENT},
            )
            with urllib.request.urlopen(request, timeout=timeout) as req:
                image = PIL.Image.open(io.BytesIO(req.read()))
            break
        except Exception:
            image = None
    return image


def fetch_images(batch, num_threads, timeout=None, retries=0):
    fetch_single_image_with_args = partial(fetch_single_image, timeout=timeout, retries=retries)
    with ThreadPoolExecutor(max_workers=num_threads) as executor:
        batch["image"] = list(executor.map(fetch_single_image_with_args, batch["image_url"]))
    return batch


num_threads = 20
dset = load_dataset("conceptual_captions")
dset = dset.map(fetch_images, batched=True, batch_size=100, fn_kwargs={"num_threads": num_threads})

支持的任务和排行榜

  • 图像字幕生成:此数据集可用于训练图像字幕生成模型。该任务的排行榜位于 here 。官方提交的输出字幕使用 CIDEr(主要),ROUGE-L和SPICE 指标的 this 实现与隐藏测试集中的参考字幕进行评分。

语言

所有标题均为英文。

数据集结构

数据实例

无标签

此配置中的每个实例代表一张带标题的图像:

{
  'image_url': 'http://lh6.ggpht.com/-IvRtNLNcG8o/TpFyrudaT6I/AAAAAAAAM6o/_11MuAAKalQ/IMG_3422.JPG?imgmax=800',
  'caption': 'a very typical bus station'
}
带标签

此配置中的每个实例代表一张带标题的图像,还附带机器生成的图像标签和置信度得分:

{
  'image_url': 'https://thumb1.shutterstock.com/display_pic_with_logo/261388/223876810/stock-vector-christmas-tree-on-a-black-background-vector-223876810.jpg',
  'caption': 'christmas tree on a black background .',
  'labels': ['christmas tree', 'christmas decoration', 'font', 'text', 'graphic design', 'illustration','interior design', 'tree', 'christmas eve', 'ornament', 'fir', 'plant', 'pine', 'pine family', 'graphics'],
  'MIDs': ['/m/025nd', '/m/05fc9mj', '/m/03gq5hm', '/m/07s6nbt', '/m/03c31', '/m/01kr8f', '/m/0h8nzzj', '/m/07j7r', '/m/014r1s', '/m/05ykl4', '/m/016x4z', '/m/05s2s', '/m/09t57', '/m/01tfm0', '/m/021sdg'],
  'confidence_scores': [0.9818305373191833, 0.952756941318512, 0.9227379560470581, 0.8524878621101379, 0.7597672343254089, 0.7493422031402588, 0.7332468628883362, 0.6869218349456787, 0.6552258133888245, 0.6357356309890747, 0.5992692708969116, 0.585474967956543, 0.5222904086112976, 0.5113164782524109, 0.5036579966545105]
}

数据字段

无标签
  • image_url:与帖子关联的用于下载图像的静态URL。
  • caption:图像的文本描述。
带标签
  • image_url:与帖子关联的用于下载图像的静态URL。
  • caption:图像的文本描述。
  • labels:使用 Google Cloud Vision API 获得的一系列机器生成的标签。
  • MIDs:对应标签的 Google Knowledge Graph 条目的一系列机器生成的标识符(MID)。
  • confidence_scores:一系列置信度得分,表示相应的标签在图像上的可能性有多高。

数据拆分

无标签

基本版本的数据集被拆分为训练集和验证集。训练集包含3,318,333个图像URL/标题对,验证集包含15,840个图像URL/标题对。

带标签

带标签的数据集版本仅有一个。整个数据包含在训练集中,该训练集是 无标签 配置的训练集中的2,007,090个图像URL/标题对的子集。

数据集创建

策划理由

来自论文:

在本论文中,我们对数据和建模两个方面进行了贡献。首先,我们提出了一个新的标题注释数据集Conceptual Captions(图1),其图像数量比COCO数据集多一个数量级。Conceptual Captions 包含约3.3M个图像和描述对。与COCO图像的策划风格相比,Conceptual Captions 图像及其原始描述是从网络上收集的,因此代表了更多样的风格。

数据源

初始数据收集和规范化

来自主页:

对于 Conceptual Captions,我们开发了一个完全自动化的流水线,用于提取、过滤和转换候选的图像/标题对,以实现得到标题的清晰、信息量大、流利且易学习的平衡。由于没有人类注释员参与,Conceptual Captions 数据集生成过程具有高度的可扩展性。

为了生成此数据集,我们使用一个 Flume 流水线处理数十亿个互联网网页,提取、过滤和处理候选的图像和标题对,并保留通过多个过滤器的候选对。

我们首先筛选出一些属性,如大小、长宽比、成人内容分数。这些过滤器舍弃了超过65%的候选对。接下来,我们使用 Alt-Text 进行基于文本的过滤,删除非描述性文本的标题(例如 SEO 标签或标签),我们还舍弃情感极性或成人内容分数较高的文本,结果是只有3%的候选对通过了这些过滤器。

在下一步中,我们筛选出那些没有文本标记与图像内容相对应的候选对。我们使用图像分类器(例如 Google Cloud Vision API)将图像分配给类标签,并将这些标签与候选文本进行匹配(允许形态学转化),舍弃了达到此阶段的候选对中的约60%。

通过上述过滤器的候选对往往是好的 Alt-Text 图像描述。然而,这些描述中大部分使用专有名词(如人物、场所、地点等)、品牌、日期、引语等。这造成了两个问题。首先,其中一些描述无法仅依靠图像像素本身来推断。这是有问题的,因为除非图像具有必要的视觉信息,否则对于训练来说是没有用的。其次,即使能从图像推断出专有名词,模型也极其难以同时学习细粒度的分类和自然语言描述。我们认为,如果需要自动确定名称、位置、品牌等,则应将其作为单独的任务完成,可以利用图像元信息(例如 GPS 信息)或其他辅助技术,如 OCR。

我们通过以下洞察力来解决上述问题:专有名词应该被表示相同一般概念的词替换,即用其概念代替。例如,我们删除了地点(“在洛杉矶的音乐会上的人群”变为“音乐会上的人群”),名字(例如,“前世界小姐Priyanka Chopra 在红毯上”变为“演员在红毯上”),专有名词修饰语(例如,“意大利美食”仅变为“美食”)和名词短语(例如,“男演员和女演员”变为“演员”)。在此转换过程中,约有20%的样本被丢弃,因为可能导致句子过短或不一致。

最后,我们执行另一轮过滤,以识别低计数的概念。我们对所有已解决的实体(例如“演员”、“狗”、“社区”等)进行聚类,并仅保留具有100个以上提及次数的候选类型。这样保留了约16K个实体概念,例如:“人”,“演员”,“艺术家”,“选手”和“插图”。我们删除了那些较不频繁的实体概念,如“法棍面包”,“缰绳”,“截止日期”,“部”和“漏斗”。

用作数据源的语言生产者是谁?

未指明。

注释

注释过程

注释是使用自动化流水线与图像一起提取的。

注释者是谁?

未指明。

个人和敏感信息

【需要更多信息】

使用数据的注意事项

数据的社会影响

【需要更多信息】

偏见讨论

【需要更多信息】

其他已知限制

【需要更多信息】

其他信息

数据集维护者

Piyush Sharma,Nan Ding,Sebastian Goodman 和 Radu Soricut。

许可信息

可以自由使用该数据集,但如果能够识别Google LLC(“Google”)作为数据源则表示感谢。数据集按原样提供,不附带任何明示或暗示的保证。谷歌对使用数据集所产生的任何直接或间接损害不承担任何责任。

引用信息

@inproceedings{sharma2018conceptual,
  title = {Conceptual Captions: A Cleaned, Hypernymed, Image Alt-text Dataset For Automatic Image Captioning},
  author = {Sharma, Piyush and Ding, Nan and Goodman, Sebastian and Soricut, Radu},
  booktitle = {Proceedings of ACL},
  year = {2018},
}

贡献者

感谢 @abhishekkrthakur @mariosasko 添加了此数据集。