10分钟上手Grounded-SAM:文本驱动图像分割入门指南
【免费下载链接】Grounded-Segment-AnythingGrounded SAM: Marrying Grounding DINO with Segment Anything & Stable Diffusion & Recognize Anything - Automatically Detect , Segment and Generate Anything项目地址: https://gitcode.com/gh_mirrors/gr/Grounded-Segment-Anything
手工标注一批图片,动辄折腾好几天。Grounded-SAM把目标检测和图像分割拼成一条流水线,你只需要输入一句文字,比如"horse",它就会自动框出图中的马并生成对应的掩码。想给上千张图批量打标签时,这套开源图像分割工具能省掉大部分重复劳动。
⚙️ 它是怎么工作的
Grounded-SAM本身不训练新模型,而是把两个开源模型串起来:先由检测模型Grounding DINO读懂你的文本提示,找出目标的位置;再把框喂给分割模型Segment Anything,生成像素级掩码。理解成"先找位置、再描轮廓"的两步接力就够了。
🚀 从0到1跑起来
第一步,拿到代码并装依赖:
git clone https://gitcode.com/gh_mirrors/gr/Grounded-Segment-Anything && cd Grounded-Segment-Anything && pip install -r requirements.txt第二步,把两个权重文件放到项目根目录:groundingdino_swint_ogc.pth和sam_vit_h_4b8939.pth。下载命令直接照抄根目录 README.md 里的 Grounded-SAM 一节,也可以直接用仓库自带的 Dockerfile 跳过本地编译。
第三步,执行入口脚本:
python grounded_sam_simple_demo.pygrounded_sam_simple_demo.py 把输入图、文本提示、权重路径都写死成了默认值,什么都不用改。跑完后你会在当前目录得到 grounded_sam_annotated_image.jpg 这样的结果图,上面画着目标框和彩色掩码。
🎯 用一个真实场景走一遍
仓库里还留了原版的 grounded_sam_demo.py,参数更完整,拿它演示最直观:指定 assets/demo7.jpg 这张草原照片作输入,文本提示写Horse. Clouds. Grasses. Sky. Hill,跑完输出目录里就是这张结果图——马匹被逐个框出,框内填上对应掩码,云和草地也一并标了出来。
🕳️ 容易踩的坑
GroundingDINO 安装卡住:它要现场编译 CUDA 算子,README 里给的命令必须带--no-build-isolation,编译报 CUDA 版本错误时优先用 Docker 方式绕过去。
权重下载慢:两个权重文件各约几个 GB,网络慢可以先从 Hugging Face 或网盘渠道拉到根目录,文件名和路径保持一致就行。
没有 GPU:原版 demo 的--device参数可以设为cpu,能跑但明显慢;建议先用 CUDA 环境体验,再考虑降级。
📌 下一步
- 想让标注更省事:看 automatic_label_demo.py,它接上 BLIP 自动读图打标签,不用手写提示词;
- 想体验分割后再生成:grounded_sam_inpainting_demo.py 展示了用 Stable Diffusion 替换目标物体的完整链路;
- 想换个操作方式:运行
python gradio_app.py,用 gradio_app.py 打开网页版界面,检测、分割、修复在页面上直接点。
【免费下载链接】Grounded-Segment-AnythingGrounded SAM: Marrying Grounding DINO with Segment Anything & Stable Diffusion & Recognize Anything - Automatically Detect , Segment and Generate Anything项目地址: https://gitcode.com/gh_mirrors/gr/Grounded-Segment-Anything
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考