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。