OpenGVLab团队建立光标指令的多模态交互系统,让ChatGPT更懂视觉任务

2023-06-12 19:30 520 阅读 ID:1143
将门
将门

视觉任务中,如何减少与AI的沟通成本?

We're going to use the best pointing device in the world. We’re going to use a pointing device that we’re all born with — born with ten of them. We’re going to use our fingers. We’re going to touch this with our fingers.                                                                            — Steve Jobs

还在打字和ChatGPT聊天吗,如何精准告诉它我想达到的图片编辑效果?不用学习提示工程的八大技巧,试试用鼠标点一点,让AI帮你做7种视觉任务。

视觉任务中,常常需要在复杂的画面上进行物体编辑,AI如何能够精准感知用户的意图尤为重要。

以使用Visual ChatGPT为例,假设想把其中一个葫芦娃抠掉,你可能会打字输入,“把穿绿裤子的男孩去掉(Remove the boy in green pants)”。

                                                                                 没有成功

换个更精确的指令?有点词穷。

为了进一步降低人与AI的沟通成本,OpenGVLab团队建立了光标指令的多模态交互系统InternGPT,用户无须输入语言,通过操作鼠标就可以与系统进行交互。有了InternGPT,鼠标点一点,直接在图片上和ChatGPT互动!点击葫芦娃,输入 remove it,轻松完成抠图!

InternGPT

通用视觉团队(OpenGVLab)做了一次大胆的尝试,我们建立了光标指令的多模态交互系统InternGPT。不同于 Visual ChatGPT、MM-REACT、HuggingGPT 等仅支持语言指令的传统多模态交互系统,InternGPT在基于语言的交互方式的基础上进一步引入了基于光标的交互方式,使得用户可以通过点击、框选、拖动等方式与系统进行交互,结合了诸多当下一线API,例如Stable Diffusion,miniGPT4,LLaVA,Husky等等,实现一键抠图,一键识别图中文字进行问答,一句话P图等七大功能,InternGPT具有丰富的对话和生成能力,把人机互动模式创新性的提高到了新的水平,让AI视觉功能不再高深,成为万千大众都能使用的日常工具。

论文链接:

https://arxiv.org/abs/2305.05662

DEMO(适配PC端):

https://igpt.opengvlab.com/

开源链接:

https://github.com/OpenGVLab/InternGPT

一、功能描述

InternGPT集成了七大功能,鼠标点一点,随手画一画,视觉问答、一键抠图、物体替换、风格迁移、图像生成、图片上的文字交互,视频截取文案撰写都能做!

功能1:视觉问答

先来看一项传统的视觉任务--视觉问答。

示例图片中有狗,椅子,电扇,远处似乎还有山和水系,有点复杂,交给InternGPT来看图:

输出结果:
图片描绘了一只白色的狗趴在铝制折叠露营椅上,旁边有一个散热器。这条狗系着狗带,它似乎在树荫下。这个场景在一片水域(可能是湖泊或河流)前面的草地上, 背景是山, 椅子有靠背和扶手,附近的地上有一个散热器。(The image depicts a white dog laying on an aluminum folding camping chair with a cooler next to it. The dog is wearing a leash, and it appears to be in the shade of a tree. The scene is set in a grassy area in front of a body of water, likely a lake or river. with mountains in the background.The chair has a backrest and armrest, and there is a cooler on the ground nearby)  

小彩蛋:

VQA采用了OpenGVLab全新独立研发的Husky,无需复杂的prompt设定,即可完成多轮对话。LLM部分基于llama,使用alpaca_gpt4_data以及sharegpt数据进行了指令微调。多模态框架为blip2, 支持图片描述,多轮对话,复杂推理等功能,相关代码已开源到https://github.com/OpenGVLab/InternGPT。

参考LLaVA的评测方案,我们调用ChatGPT-turbo对Husky的输出和GPT-4的输出分别进行打分,然后计算Husky得分与GPT-4得分的比值发现,Husky仅通过7B的参数量便取得了GPT-4的93.89%的性能,其中复杂推理能力甚至略优于GPT-4,而在对话和图像描述任务上,Husky也分别达到了GPT-4的96.13%和83.87%的性能。

我们随手拍了一张工位的照片,让目前的我们的Husky模型、LLaVA和MiniGPT4给出答案,可以明显看出Husky的输出更加贴切。

功能2:一键抠图

想抠图,点一点,轻松又无痕。

或者在目标区域上随手画条线,抠图效果同样好。

功能3:一句话替换物体

替换图中物体,点一点,灯塔变成埃菲尔塔(指令:Replace it with the Eiffel Tower)。

同一张图物体很多的复杂情况,没问题,想改哪里点哪里 (指令 Repace it with a yellow dog)。

功能4:风格迁移 图像生成

把打篮球的男孩图片P成奥特曼,只要拖拽奥特曼素材到相应位置,就可以生成图片并且下载了。再换个风格:背带裤,平底锅(指令:An Ultraman wear in overalls is holding a pan in his hand ),虽然离谱但正是我们想要的(误)。

功能5:图片中的文字识别和交互

再也不担心妈妈出国旅游看不懂菜单了,上传菜单图片,点一点菜名查看解释,还可以输入要求,问问InternGPT 的点菜建议。

功能6:交互创作

在白板功能上随手画一座山、树、太阳,点击save,然后告诉chatgpt你想生成什么,就可以得到一张大片级别的山川瀑布图了。

功能7:一句话剪辑视频生成文案

上传一个男生打篮球的片段,输入“剪辑出运球的画面”,即生成可下载的视频片段,并自动配解说“注意看,这个帅气的男孩叫小帅,他不但是一个很好的舞者,还是一个很棒的篮球运动员”。

三 、效果对比

在本次体验中,我们对比了我们的InternGPT和使用键盘交互的agent。

物体编辑的任务时,但以往都是使用键盘交互的agent,Visual ChatGPT是在这个领域中很有代表性的一个工作,但这种方式未必能够精准感知用户的意图。它和InternGPT一样,任务是接收用户的指令,根据指令编辑给定的图片,如添加、删除和替换物体等等,但是在用户测试的特定的情况下,InternGPT表现得更出色。

在单个物体的场景中,InternGPT和Visual ChatGPT都可以非常准确地识别并抹去图片中的狗。然而,在更复杂的场景中,InternGPT似乎更善于掌握现有物体的特征,以及准确地完成更换物体的操作,替换的内容能够维持现有的。在两个物体的图片上,移除物体时,Visual ChatGPT需要更长的指令来明确指定要删除的物体,而InternGPT仅需轻点一下就能完成。在更多物体的图片中,InternGPT的优势更加明显。例如,InternGPT可以精确地修改多辆车中的某一辆,或者修改指定的杯子,而Visual ChatGPT则会将图中的所有物体都抹去。

尽管在更复杂的场景中,InternGPT也会面临一些挑战,但它仍能够正确分割和移除对应的物体。然而,Visual Chat GPT似乎无法在此类场景中都正常运行;在难度较高的复杂图上,Visual ChatGPT无法准确地识别出指令。

综上所述,虽然在物体编辑任务中,InternGPT和Visual Chat GPT都表现得非常出色,但在复杂场景中,InternGPT的表现更佳。这说明了InternGPT在处理更复杂的用户交互时的能力。

四、方法介绍

InternGPT主要由三个模块构成:作为控制器的大型语言模型,作为光标指令感知单元的视觉基础模型以及作为后端的其他视觉基础模型和工具。下图展示了InternGPT的整体工作流程。

具体而言,用户在对话开始时传入一张图片。随后在每一轮的对话过程中,用户可以传入点击、框选和拖动等光标形式的指令和语言形式的指令。针对光标形式的指令,InternGPT通过SAM模型对物体进行分割提取,通过OCR模型对选中区域的文本内容进行提取。对于生成任务,还会将用户的光标指令作为笔画输入给后端的AIGC模型。针对语言形式的指令,由大型语言模型对进行语义理解和任务拆分。随后系统根据拆分得到的各个子任务来调度后端模型,将用户上传的图片和光标信号感知单元的解析结果作为输入,逐个完成全部子任务后,将结果响应给用户。

在实践的过程中,我们注意到尽管大型语言模型具有很强的任务拆分能力,但是模型的输出是自然语言的形式,难以解析成格式化的形式,这就对后续的API调度造成了困难。

为了解决这一问题,本文提出了“辅助控制”的调度方案。具体而言,在执行API前,InternGPT首先从大型语言模型的输出中提取出所有的动词和名词,从而判断需要调用的API,然后从过去的对话历史中去抽取当前API所需要的参数,最后基于这些参数来调用API。

五 、未来展望

InternGPT一次创新性的尝试,希望能够将人工智能视觉任务的使用门槛不断降低,让所有人都可以通过点击等简单操作,轻松完成视觉问答、抠图、物体替换、风格迁移生成、文字识别交互、视频编辑等等多种传统复杂任务。人工智能作为全民生产工具的时代已经到来,欢迎大家试用,或者来到github社区,和我们一起创造更有想象力的工作吧!

作者:书生OpenGVLab

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