能看图、会聊天,还会跨模态推理和定位,能落地复杂场景的DetGPT来了
一直以来,人类梦想着机器人能够辅助人类处理生活和工作的事情。“请帮我调低空调的温度”,甚至 “请帮我写一个商城网站” 都在近年来的家居助手和 OpenAI 发布的 Copilot 上得以实现。
GPT-4 的出现,进一步为我们展示了多模态大模型在视觉理解上的潜力。开源中小模型方面,LLAVA、minigpt-4 表现不俗,可以看图聊天,还可以为人类猜测美食图片中的菜谱。然而,这些模型在实际落地中仍然面临重要的挑战:没有精准的定位能力,不能给出某物体在图片中的具体位置,也不能理解人类的复杂指令来检测具体物体,因此很多时候无法执行人类的具体任务。在实际场景中,人们遇到复杂问题,如果能通过拍一张照来询问智能助手得到正确答案,这样的 “拍照问问” 功能简直炫酷。
要实现 “拍照问问” 这一功能,需要机器人具备多项能力:
1. 语言理解能力:能够听懂并理解人类的意图
2. 视觉理解能力:能够理解看到的画面中的物体
3. 常识推理能力:能够将复杂的人类意图转换为可定位的精确目标
4. 物体定位能力:能够从画面中定位和检测出对应物体
这四大能力,目前仅有少数的大模型(比如谷歌的 PaLM-E)同时具备。然而,来自港科大 & 港大的研究人员提出了一个全开源模型 DetGPT (全名 DetectionGPT),只需微调三百万参数量,让模型轻松拥有了复杂推理和局部物体定位能力,可以泛化到大多数场景。这意味着模型能够通过自身知识的推理来理解人类抽象指令,轻松识别图片中的人类感兴趣的物体!他们已经将模型做成 “拍照问问” demo,欢迎在线体验:https://detgpt.github.io/
DetGPT 可以让用户用自然语言操作一切,不需要繁琐的命令或者界面。同时,DetGPT 还具备智能推理和目标检测能力,可以准确地理解用户的需求和意图。例如人类发一个语言指令 “我想喝冷饮”,机器人首先在场景里搜索冷饮,但是没有找到。于是开始思考 “场景里没有冷饮,我应该去哪里找”。通过强大的常识推理能力模型想到了冰箱,于是扫描场景画面发现了冰箱,成功锁定饮料位置!
- 开源代码:https://github.com/OptimalScale/DetGPT
- Demo 在线试玩:https://detgpt.github.io/
夏天口渴,图片里哪里会有冰饮料?DetGPT 轻松理解找到冰箱:
明天要早起?DetGPT 轻松 pick 电子闹钟:
高血压、容易累?去到水果市场,不清楚买什么水果能缓解高血压?DetGPT 充当你的营养学老师:
塞尔达游戏不会通关?DetGPT 助你变装通过女儿国关卡:
图片的视野范围内有什么危险事物?DetGPT 成为保护你的安全员:
图片里有什么物品对小孩来说很危险?DetGPT 依然没问题:
DetGPT 有什么特性?
- 对图片中具体物体的理解能力大幅提升。相比于以往的图文对话多模态模型,我们能够通过理解用户指令从图片中检索并定位出目标物体,而不是单纯对整张图做出描述。
- 能理解人类复杂指令,降低用户的提问门槛。比如,模型可以理解问题 “找到图中能够缓解高血压的食物”。而传统目标检测需要人类已知答案,提前预设检测类别 “香蕉”。
- DetGPT 能根据已有 LLM 知识进行推理,从而精确定位到图中能解决复杂任务的对应物体。对于复杂的任务,比如 “缓解高血压的食物”。DetGPT 可以对这一复杂任务逐步推理:缓解高血压 -> 钾元素能够缓解高血压 -> 香蕉富含钾元素 -> 香蕉可以缓解高血压 -> 需要识别物体香蕉
- 提供人类常识范围之外的答案。对一些不常见的问题,比如人类不了解哪些水果富含钾,模型能根据已有知识进行解答。
值得关注的新方向:利用常识推理实现更精准开集目标检测
传统检测任务要求预设可能的物体类别,从而进行检测。但是精确且全面描述要检测的物体,对人类来说是不友好的,甚至是不现实的。具体而言,(1)受到有限记忆 / 知识的限制,人并不总能精确表述自己想要检测的目标物体。比如,医生建议有高血压的人多吃水果补充钾元素,但不了解哪些水果富含钾,就无法给出具体的水果名称让模型去检测;如果能直接把问题 “把能缓解高血压的水果识别出来” 抛给检测模型,人类只需要拍一张照片,模型自身去思考、推理、和检测富含钾的水果,这个问题就简单许多。(2)人类能举例物体类别是不全面的。比如,如果相对公共场所不符合公共秩序的行为进行监控,人类或许能只能简单列出几个场景如持刀、吸烟;但如果直接把问题 “检测不符合公共秩序的行为” 交给检测模型,模型自己进行思考、根据自己的知识进行推理,则能捕捉到更多的不良行为和泛化到更多需要检测的相关类别。毕竟普通人类所了解的知识是有限的,能够举出来的物体类别也是有限的,但如果有一个类似 ChatGPT 的大脑进行辅助和推理,人类所需要给出的指令就简单多了,所获的答案也能精确、全面许多。
基于人类指令的抽象性和局限性,港科大 & 港大的研究人员提出 “推理型目标检测 ” 这一新方向。简单来说,就是人类给出一些抽象的任务,模型能自己去理解、推理图片里的哪些物体可能完成这一任务,并将其检测出来。举个简单的例子,人类描述 “我想喝一杯冷饮,在哪里可以找到它”,模型看到的是一张厨房的照片,它能够把 “冰箱” 检测出来。这一课题要求将多模态模型的图像理解能力与语言大模型储藏的丰富知识完美结合、用于细粒度的检测任务场景中:利用语言模型的大脑来理解人类的抽象指令,精确地定位图片中人类感兴趣的物体,而不需要预设物体类别。
方法介绍
“推理型目标检测 ” 是一个困难的问题,因为检测器不仅需要对用户的粗粒度 / 抽象的指令进行理解和推理,更要分析当前所看到的视觉信息,从而定位出目标物体。在这一方向上,港科大 & 港大的研究人员进行了一些初步的探索。具体而言,他们利用预训练好的视觉编码器 (BLIP-2) 来获取图片视觉特征,通过一个对齐函数 (alignment function) 将视觉特征对齐到文本空间。利用大规模语言模型 (Robin/Vicuna) 来理解用户问题,结合看到的视觉信息,对用户真正感兴趣的物体进行推理。然后将物体名称提供给预训练好的检测器 (Grouding-DINO) 进行具体位置的预测。这样一来,模型可以根据用户的任何指令分析图片,精准地预测出用户感兴趣物体的位置。
值得注意的是这里的难点主要在于,针对不同具体任务,模型要能够实现特定格式(task-specific)的输出,而尽可能不损害模型原本的能力。为指导语言模型遵循特定的模式,在理解图像和用户指令的前提下进行推理和生成符合目标检测格式的输出,研究团队利用 ChatGPT 生成跨模态 instruction data 来微调模型。具体而言,基于 5000 个 coco 图片,他们利用 ChatGPT 创建了 3w 个跨模态图像 – 文本微调数据集。为了提高训练的效率,他们固定住其他模型参数,只学习跨模态线性映射。实验效果证明,即使只有线性层被微调,语言模型也能够理解细粒度的图像特征,并遵循特定的模式来执行基于推理的图像检测任务、表现出优异的性能。
这一研究课题具有非常大的潜力。基于这一技术,家庭机器人领域将进一步大放异彩:家庭中的人们可以通过抽象或者粗粒度的语音指令,让机器人理解、识别、并定位需要的物品,提供相关服务。在工业机器人领域,这种技术更将焕发出无尽的活力:工业机器人可以与人类工作人员更加自然地协作,准确理解他们的指令和需求,实现智能化的决策和操作。在生产线上,人类工作人员可以通过粗粒度的语音指令或文字输入,让机器人自动理解、识别并定位需要加工的物品,从而提高生产效率和质量。
基于自带推理能力的目标检测模型,我们可以开发出更加智能化、自然化、高效化的机器人,为人类提供更加便捷、高效和人性化的服务。这是一个具有广阔前景的领域。也值得更多研究者的进行关注和进一步探索。
值得一提的是,DetGPT 支持多种语言模型,目前已经基于 Robin-13B 和 Vicuna-13B 两个语言模型进行验证。Robin 系列语言模型是港科大 LMFlow 团队(https://github.com/OptimalScale/LMFlow)训练的对话模型,在多项语言能力测评基准上达到了和 Vicuna 相当的效果(模型下载: https://github.com/OptimalScale/LMFlow#model-zoo)。之前机器之心报道过 LMFlow 团队在消费级显卡 3090 上只需 5 小时训练专属 ChatGPT,今天这一团队联合港大 NLP 实验室又给我们带来了多模态的惊喜。