从Blip2到Segment Anything视觉语义金字塔+ChatGPT= 把图片变文本段落

2023-05-13 11:09 692 阅读 ID:1052
磐创AI
磐创AI

8G GPU显存即可以运行

Twitter链接:https://twitter.com/awinyimgprocess/status/1646225454599372800?s=46&t=HvOe9T2n35iFuCHP5aIHpQ

代码链接:https://github.com/showlab/Image2Paragraph https://

动机 

怎么把图片表示成高质量文本一直是个热门的问题。传统的思路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 等等统一当成视觉理解组件。

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

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

可视化:

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

实验

最后是一些运行结果:

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

Region-level Semantic:

最后有意思的是:

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

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

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

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

参考:

Show,And Tell.

GRIT.

ChatGPT.

Segment Anything.

ControlNet.

Blip2.

本文为粉丝投稿。投稿邮箱 amos@52cv.net。

免责声明:作者保留权利,不代表本站立场。如想了解更多和作者有关的信息可以查看页面右侧作者信息卡片。
反馈
to-top--btn