BLIP-2+SAM+ChatGPT,把图片变文本段落! 8G显存即可

Image2Paragraph_人工智能

8G GPU显存即可以运行

Image2Paragraph_数据集_02

 代码链接

https://github.com/showlab/Image2Paragraph

动机:

怎么把图片表示成高质量文本一直是个热门的问题。传统的思路Show,and Tell 等 Image Caption和Dense Caption 等都是依赖大量的人工标注。首先依靠诸如亚马逊AMT( 亚非拉大兄弟们)等标注平台给每张图一人写一段描述。其中添加了一系列规则,诸如名词数目,颜色等等。通常用一句简短的话来描述一张图。

然而,这种朴素的标记思路造成了严重的One-to-many问题。如一张图对应很多文本。由于图片和文本之间信息的不对称性,在这类数据上训练的结果很容易陷入平凡解。(Pretrain中也经常遇到的问题)

而LLM(大语言模型)尤其是ChatGPT展现出来的逻辑能力让人望尘莫及。我们惊讶发现, 把Bounding Box 和 Object信息给到GPT4, GPT4很自然的能推理出物体之间的位置关系,甚至想像出物体之间的联系。

因此一个很自然的想法就是, 用GPT4对每张图生成高信息量的段落,From One-to-many to one-to-one

做法:

低阶语义抽取:

Image Caption, Dense Caption, Object Detection, Segement Anything 等等统一当成视觉理解组件。

Image2Paragraph_人工智能_03

如图所示,首先用BLIP2 得到一张图的Coars-grained Caption信息。再用 GRIT得到Dense Caption信息,最终用Segment Anything 去得到Fine- grained Region-level Semantic.

高阶推理:

把金字塔视觉语义给到ChatGPT,让ChatGPT去推理物体之间的关系和物体的物质信息等,最终生成一个高质量Unique的文本段落。

可视化:

最后对生成的段落,放进Control Net生成一张重构的图。

实验:

最后是一些运行结果:

对生成的段落用ControlNet生成新图片。

Image2Paragraph_数据集_04

Image2Paragraph_Image_05

 

Image2Paragraph_人工智能_06

 

Image2Paragraph_人工智能_07

最后有意思的是:

当我们把图片变成文本之后。不需要训练的情况下,检索效果竟然好与在COCO上 Train的结果。

Image2Paragraph_数据_08

一些呼之欲出的问题即将到来:

现有Vision- language Pretrain需不需要新的 Data collection 范式?

现有的Image- Text 数据集尤其是Caption数据需不需要Refine?