基于多模态提示的图像分割模型
SEEM是一种新型图像分割模型,支持多种交互方式如点击、框选、涂鸦、文本和音频提示。该模型可接受任意组合的提示输入,精确分割图像中的目标对象并赋予语义标签。SEEM采用统一架构,具备多模态交互、语义理解和泛化能力,为图像分割任务提供了灵活通用的解决方案。
:grapes: [阅读我们的arXiv论文] :apple: [体验我们的演示]
我们介绍了SEEM,它可以使用多模态提示一次性Segment Everything Everywhere with Multi-modal prompts(分割任何地方的任何事物)。SEEM允许用户使用不同类型的提示轻松分割图像,包括视觉提示(点、标记、框、涂鸦和图像分割)和语言提示(文本和音频)等。它还可以与任何组合的提示一起使用,或扩展到自定义提示!
作者:Xueyan Zou*、Jianwei Yang*、Hao Zhang*、Feng Li*、Linjie Li、Jianfeng Wang、Lijuan Wang、Jianfeng Gao^、Yong Jae Lee^,发表于 NeurIPS 2023。
简要介绍我们可以执行的所有通用和交互式分割任务!
我们为SEEM和X-Decoder发布以下内容:exclamation:
:point_right: Linux下的一键SEEM演示:
git clone git@github.com:UX-Decoder/Segment-Everything-Everywhere-All-At-Once.git && sh assets/scripts/run_demo.sh
:round_pushpin: [新] 入门指南:
SEEM_v0: 支持单一交互对象的训练和推理 SEEM_v1: 支持多个交互对象的训练和推理
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/78551c4e-d96b-4a3c-83fb-ef604a2011b5.gif" width="400" /> <img src="https://yellow-cdn.veclightyear.com/835a84d5/252f56e7-be64-41da-b7a0-7d24fd1f40a1.gif" width="400" /> </div>:fire: 相关项目:
:fire: 其他你可能感兴趣的项目:
受到大语言模型中通用接口的启发,我们倡导单一模型实现任何类型分割的通用、交互式多模态接口。我们强调SEEM的4个重要特征如下。
一个变形金刚的例子。参考图像是擎天柱的卡车形态。无论擎天柱是什么形态,我们的模型都能在目标图像中分割出擎天柱。感谢Hongyang Li提供这个有趣的例子。
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/dee60b45-b01e-4a4e-9709-b60100fca57f.png" width = "700" alt="assets/images/transformers_gh.png" align=center /> </div>用户只需简单点击或涂抹,我们就能生成相应的遮罩及其类别标签。
SEEM可以根据用户的文本输入生成遮罩,实现与人类的多模态交互。
在参考图像上简单点击或涂抹,模型就能在目标图像上分割出具有相似语义的物体。
SEEM对空间关系的理解非常出色。看看这三只斑马!分割出的斑马与参考斑马的位置相似。例如,当上排最左边的斑马被指定时,下排最左边的斑马就被分割出来。
无需在视频数据上训练,SEEM可以完美地根据您指定的任何查询为视频分割!
我们使用Whisper将音频转换为文本提示来分割物体。在我们的演示 中试试吧!
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/7e58b3e1-fb72-4c54-938f-eaec08184fae.png" width = "900" alt="assets/images/audio.png" align=center /> </div>分割表情包的示例。
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/72fb5f2a-2328-47d7-b74b-f554fd839b83.png" width = "500" alt="assets/images/emoj.png" align=center /> </div>分割卡通风格树木的示例。
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/7a801832-9b43-49d8-a58c-a2d2a95c4b46.png" width = "700" alt="assets/images/trees_text.png" align=center /> </div>分割Minecraft图像的示例。
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/db16c018-f923-4831-b006-43fda2c7175d.png" width = "700" alt="assets/images/minecraft.png" align=center /> </div>在流行的泰迪熊上使用参考图像的示例。
在下图中,我们比较了三种分割任务(边缘检测、开放集和交互式分割)的交互和语义水平。开放集分割通常需要较高的语义水平,但不需要交互。与SAM相比,SEEM涵盖了更广泛的交互和语义水平。例如,SAM仅支持有限的交互类型,如点和框,而由于它本身不输出语义标签,因此缺少高语义任 务。原因如下:首先,SEEM有一个统一的提示编码器,将所有视觉和语言提示编码到一个联合表示空间中。因此,SEEM可以支持更广泛的用途。它有潜力扩展到自定义提示。其次,SEEM在文本到遮罩(基于定位的分割)方面表现出色,并输出具有语义意识的预测。
<div align="center"> <img src="https://yellow-cdn.veclightyear.com/835a84d5/69999e91-f363-4e20-94d9-2d43449b88d7.jpg" width = "500" alt="assets/images/compare.jpg" align=center /> </div>