图像理解训练数据分析
图像理解数据集基于开源数据集进行构建,常用到的相关数据集有:COCO,VG(Visual Genome),SBU,CC,
既然涉及到图像理解,那每一个图片必定含有描述文本,而各个数据集是如何构建描述的呢?
VG:(下载地址:https://orion.hyper.ai/tracker/download?torrent=9379)
- Region Description:图片被划分成一个个region,每个region都有与其对应的一句自然语言描述。
- Region Graph:每个region中的object、attribute、relationship被提取出来,构成局部的“Scene Graph”
- Scene Graph:把一张图片中的所有Region Graph合并成一个全局的Scene Graph。
COCO:
- 它包含超过330k张图像,其中包括2.5 million个目标实例
- 每张图像都有5个不同的图像描述
CC3M:(下载地址:https://github.com/rom1504/img2dataset/blob/main/dataset_examples/cc3m.md)
- 训练集由 3,318,333 个图像 URL /标题对组成,标题中 token 类型(即词汇量)总数为 51,201。每个标题平均包含 10.3 个 token
SBU:(下载地址:https://github.com/rom1504/img2dataset/blob/main/dataset_examples/SBUcaptions.md)
- 一个用于图像标注的数据集,包含约1万张图片和每张图片5个描述。
- 这个数据集中的描述是通过Amazon Mechanical Turk(一个众包平台)上的工人来收集的,可以用于图像标注、多模态数据集的训练等任务。
说起图像理解,这项工作的训练数据,主要是图像+图像的文本描述,那这些图片主要来自哪些开源数据集呢,以ram++为例,包括:
| DataSet | Size | Images | Texts | Tags |
|---|---|---|---|---|
| COCO | 168 MB | 113K | 680K | 3.2M |
| VG | 55 MB | 100K | 923K | 2.7M |
| SBU | 234 MB | 849K | 1.7M | 7.6M |
| CC3M | 766 MB | 2.8M | 5.6M | 28.2M |
| CC3M-val | 3.5 MB | 12K | 26K | 132K |
| 总计 | 3.9M | 8.93M | 41.8M |
以CC3M-val为例,我们提取出一个训练图像数据格式:
{"image_path": "conceptual-captions/val/imgs/15837_1430762376",
"caption": ["the general circulation of the atmosphere", "the earth is made up of planets"],
"union_label_id": [1892, 4549, 168, 4008, 3090],
"parse_label_id": [[168], [3090, 1892]]};
其中image_path表示图片路径,caption表示图片的描述,union_label_id表示解析标签和伪标签, parse_label_id表示使用理解后的标签(union_label_id对应的tag为[glider,workshop,atm,surf,plan],parse_label_id对应的tag为[[atm], [plan, glider]])。在训练代码中,union_label_id的tag成为image_tag,parse_label_id称为parse_tag;在ram_plus训练中,仅使用了union_label_id计算损失;在ram的训练中,union_label_id和parse_label_id都使用了;在tag2text训练中,仅使用了parse_label_id。
以数据集VG为例,我们提取一个训练图像数据格式:
{"image_path": "visual-genome/VG_100K/2362216.jpg",
"caption": ["a bread knife on a cutting board", "a wooden cutting board", "a loaf of brown bread", "a wooden table holding apples and bread", "a brown loaf of bread", "a light brown cutting board", "a long bread cutting knife", "a brown bread on a board", "a red cloth", "a loaf of bread on a cutting board sitting next to some apples"],
"union_label_id": [1796, 3336, 905, 788, 1301, 3733, 2332, 562, 564, 4533, 571, 1998, 593, 978, 1238, 2655, 101, 487, 3690, 1262, 3698],
"parse_label_id": [[905], [905], [593, 562], [562, 1301, 788, 101], [593, 562], [593, 905], [2332, 1238], [593, 562, 487], [3336, 978], [905, 562, 101, 3698]]},
我们可以看出,caption中有很多条文本描述,这是因为vg数据集的描述组成是比较多的。
以数据集COCO为例,我们提取一个训练图像数据格式:
{"image_path": "coco/val2014/COCO_val2014_000000029852.jpg",
"parse_label_id": [[3944, 3404]],
"caption": ["A street sign that is on a street."],
"union_label_id": [480, 613, 2951, 3944, 937, 2155, 3404, 4253, 2461]}
关于训练成本问题
CLIP用了大量的训练数据以及训练资源,大力出奇迹。CLIP用了400million的image-text pair对进行训练,对于image backbone,CLIP尝试了两种结构,DN50x64 和 vit-L,分别用了592 个 V100 + 18天 的时间 和 256 个 V100 + 12天 的时间,非大公司直接劝退。
本文来自博客园,作者:海_纳百川,转载请注明原文链接:https://www.cnblogs.com/chentiao/p/17958592,如有侵权联系删除

浙公网安备 33010602011771号