Grounded-Segment-Anything
将自然语言与像素级分割结合,实现「说哪打哪」的开放词汇图像感知
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
将自然语言与像素级分割结合,实现「说哪打哪」的开放词汇图像感知
加载项目详情…
本应用为开源项目,仅供学习研究,请遵守其开源协议。
图1:Grounded-SAM 官方 Logo
答案是:能——但前提是你得先告诉它「猫」是什么、什么叫「草地」。传统目标检测模型就像一个背了固定词典的学生,只能识别训练时见过的词汇。而 Grounded-Segment-Anything(Grounded SAM) 想做的事,是打破这个限制:给AI一句话,它就能把图片里对应的物体精准地「抠」出来,不管是常见的狗和车,还是从未见过的「赛博朋克风格霓虹灯牌」。
这个项目由 IDEA-Research 团队推出,将目标检测界的明星模型 Grounding DINO 和 Meta 的图像分割神器 Segment Anything Model(SAM) 强强联合,再辅以图像生成和文字识别能力,形成了从文本理解→物体检测→像素级分割→内容生成的全链路视觉AI流水线。截至目前已在 GitHub 累计获得超过 1.7 万颗星,是视觉AI领域最具影响力的开源项目之一。
图2:Grounded SAM 完整处理流程(文本→检测→分割→生成)
Grounded SAM 诞生于2023年初,由国内顶尖AI研究机构 IDEA-OpenExplorer(IDEA-Research)主导开发。IDEA 团队此前在目标检测领域已有深厚积累——他们的 Grounding DINO 是首个实现开放词汇目标检测的开源方案,能够仅凭文本描述定位图像中的任意物体。
2023年4月,Meta 发布 SAM 后,IDEA 团队迅速意识到:Grounding DINO 的语言理解能力与 SAM 的精确分割能力天然互补。两者结合可以形成一个完整的「开放词汇感知→精准分割」闭环。团队在极短时间内完成了模型集成,并开源了包含 Web UI、数据标注工具、多模态聊天机器人在内的完整工具链。
项目作者之一曾在访谈中表示:「我们希望降低视觉AI的使用门槛,让研究者和开发者不需要成为计算机视觉专家,也能快速构建自己的图像理解应用。」这一理念贯穿了整个项目设计——从 Colab 一键运行到 Gradio 可视化界面,处处体现着对用户体验的重视。
如果说传统的目标检测模型是一把「大锤」——把图片分成几个固定类别,那么 Grounded SAM 就是一把「手术刀」:你说切哪里,它就精准地切到哪里,而且切得边缘光滑、毫不含糊。
打个更生活化的比方:想象你要在一张照片里找「穿红衣服的人」,传统模型会说「第3个区域有个人」,而 Grounded SAM 会告诉你「第3个区域有一个穿红色夹克的男人,占图片的12.3%,精确到像素」。它不仅定位准确,还能输出物体的精确轮廓mask(遮罩),下游应用可以直接用这些mask做图像编辑、AR叠加或3D重建。
这是 Grounded SAM 的核心能力。基于 Grounding DINO,用户可以用任意自然语言短语描述目标,例如「穿蓝衬衫正在打电话的人」「背景中模糊的自行车」。模型会返回所有匹配物体的边界框(bounding box),支持组合语义(AND/OR逻辑)和否定语义(NOT)。这项技术在自动驾驶数据标注、医学影像识别、工业缺陷检测等领域有广泛应用。
检测到的目标会交由 SAM 模型进行像素级分割,生成高质量的实例掩码(instance mask)。与原生 SAM 需要用户点击提示不同,Grounded SAM 的检测框会自动作为 SAM 的提示(prompt),实现端到端的零样本分割。这使得批量处理图像数据集成为可能,极大提升了自动化标注效率。
图3:Grounded SAM 分割效果示例——输入文本描述,输出精确mask
这是 Grounded SAM 在实际生产中最受欢迎的功能。项目提供了多个自动标注脚本(automatic_label_demo.py 等),支持批量处理图像,自动生成 COCO/VOC 格式的标注文件。标注人员只需在 Web UI 中输入类别列表,系统即可在数分钟内完成数千张图像的标注,质量接近人工水平。对于需要构建大规模训练数据集的团队,这能节省数周的人力成本。
图4:Gradio 自动标注界面,支持交互式预览标注结果
项目还提供了完整的生成管线:chatbot.py 结合 Whisper 语音识别和 Gradio 聊天界面,实现「语音输入→图像分析→文字/图像回复」的完整交互体验。结合 Stable Diffusion 的图像修复(Inpainting)功能,用户可以在分割结果基础上进行局部内容替换——比如把图片中的人物换成另一个形象,或在背景中添加元素。
图5:多模态聊天机器人的生成效果示意
项目采用 Python + Jupyter Notebook 为主的技术栈,核心依赖包括:
项目采用模块化设计,核心结构如下:
Grounded-Segment-Anything/
├── GroundingDINO/ # Grounding DINO 检测模型(含训练代码)
│ ├── groundingdino/ # 核心模型实现
│ ├── demo/ # 检测示例
│ └── pyproject.toml # 构建配置
├── segment_anything/ # SAM 模型集成(git submodule)
├── EfficientSAM/ # 高效分割模型变体
├── VISAM/ # 视频实例分割扩展
├── gradio_app.py # Web UI 主入口
├── chatbot.py # 多模态聊天机器人
├── automatic_label_*.py # 数据标注脚本(多个版本)
├── assets/ # 演示图片和输出样例
└── Dockerfile # GPU 容器化部署
值得注意的是,GroundingDINO 和 segment_anything 均通过 git submodule 引入,这种方式保证了版本一致性,但也增加了初始克隆的复杂度(需要 git clone --recursive)。
项目提供官方 Dockerfile,基于 pytorch/pytorch:1.13.1-cuda11.6-cudnn8-devel 镜像,内置 CUDA 11.6 支持。镜像已预装 FFmpeg、OpenCV 等系统依赖,克隆代码后执行 docker build 即可在 GPU 环境下运行。对于需要定制化的场景,可参考 Makefile 中的 CUDA 版本检测逻辑进行适配。
综合评估,该项目在以下方面表现出色:
非常适合:
门槛较高的情况:
图6:自动标注与图像编辑效果展示——左侧原图,右侧带mask标注的输出
Grounded SAM 并非完美,主要局限包括:
计算资源需求高:完整的处理管线需要至少 8GB VRAM 的 NVIDIA GPU,纯 CPU 环境下处理速度令人沮丧。官方虽提供优化版本(如 EfficientSAM),但精度有所下降。
长尾物体检测不稳定:对于罕见或组合语义复杂的描述(如「背景中反光的玻璃窗上的倒影」),模型容易出现漏检或误检。这是因为 Grounding DINO 的语言-视觉对齐能力在开放词汇场景下仍有局限。
实时性不足:虽然单张图像处理时间可接受(GPU 下约 2-5 秒),但在批量处理大规模数据集时效率仍是瓶颈。有用户反馈处理 1000 张图像的标注任务需要数小时。
视频支持尚在探索:项目包含 VISAM(视频实例分割)模块,但成熟度不如图像分割管线,不建议直接用于生产级视频分析任务。
Grounded SAM 的出现,标志着视觉 AI 从「封闭分类」向「开放理解」的重大跨越。在它之前,构建一个能识别 100 种物体的检测器需要:收集数据→人工标注→训练模型→迭代优化,整个流程耗时数周。Grounded SAM 将这个周期压缩到几分钟。
这一能力迅速被社区采纳和延伸:Roboflow、Label Studio 等主流数据标注平台先后集成了 Grounded SAM;阿里云、腾讯云等国内云厂商将其作为视觉智能 API 的底层能力;无数开发者基于它构建了自动监控、人体姿态估计、工业质检等垂直应用。
从更宏观的视角看,Grounded SAM 是「视觉基础模型」(Vision Foundation Model)理念的成功实践——用大模型的能力撬动无数下游任务。它与 GPT-4V 等多模态大模型形成互补:后者擅长理解图像「是什么」,Grounded SAM 擅长告诉你「在哪里」和「形状如何」。两者结合构成了完整的视觉认知体系。
Grounded-Segment-Anything 是一个将前沿研究成果成功工程化落地的标杆项目。它用开源的方式,把顶级研究机构的最新成果——Grounding DINO 的语言理解 + SAM 的精准分割 + Stable Diffusion 的生成能力——打包成了一套普通开发者也能快速上手的工具链。
如果你正在从事数据标注、图像分割、开放词汇检测相关的开发工作,或希望在自己的应用中快速集成视觉感知能力,Grounded SAM 是目前最值得优先考虑的开源方案之一。尽管部署门槛(GPU)存在,但 Docker 容器化和 Gradio Web UI 已经将工程复杂度降到了最低。
项目目前保持活跃维护,IDEA-Research 团队持续更新模型权重和文档。未来随着 SAM2 的发布,Grounded SAM 的视频分析和3D感知能力预计将得到进一步强化。