用 MultiMatte 抠图终于能通过文字指定要保留哪个物体了
只要在提示词里写上想保留的物体名称,MultiMatte 就能把该物体之外的所有背景(包括其他前景物体)全部删掉。它基于 SAM 3 改进,把二进制掩码换成了 Alpha Matte 透明度通道,处理头发丝、动物毛发这种模糊边缘比纯掩码模型干净得多。
为什么不用传统的背景去除模型
以前用那种一键抠图工具,最头疼的是图片里有多个主体时它分不清谁是谁。比如照片里有个模特拿着个包,你只想留模特,结果包也被留下来了。MultiMatte 解决了这个问题,因为它支持 Promptable(可提示),你输入 "dog",它就只留狗,把旁边的饭碗全部抠掉。
我在对比测试时发现,它在处理边缘细节上的提升很明显。看数据的话,在 DIS5K 这种专业数据集上,S-measure 从 SAM 3 的 0.674 提升到了 0.908,提升幅度大概 34.6%。这意味着在实际操作中,你不需要再手动用橡皮擦去修那些抠不干净的毛边。
怎么在本地跑起来
这个模型是开源的,官方提供了一个叫 nobg 的库,安装和调用逻辑比较简单。如果你想在自己的项目里集成,可以参考下面的步骤。
首先安装依赖库:
pip install nobg
然后通过以下 Python 代码调用模型进行抠图:
from nobg import MultiMatte
# 初始化模型
model = MultiMatte.from_pretrained("feyninc/multimatte")
# 加载图片并指定要保留的物体
# 比如图片里有猫和球,只想保留猫
image = model.load_image("path/to/your/image.jpg")
result = model.remove_background(image, prompt="cat")
# 保存结果,输出的是带透明通道的 PNG
result.save("output.png")
实际操作中的坑和注意事项
在试用过程中,有几点需要注意,否则很容易觉得效果不好:
- 提示词的精准度: 虽然它支持自然语言,但建议使用具体的名词。比如 "golden retriever" 比起 "dog" 识别率更高,尤其是在背景复杂的情况下。
- 显存占用: 它是基于 SAM 3 架构的,虽然抠图速度很快,但加载模型时还是需要一定的显存。如果是在低显存设备上跑,建议检查是否触发了 OOM。
- 对比判断: 如果你的图片只有单一主体,用普通的
rembg这种轻量级工具就够了,速度更快。但只要涉及到“多物体选其一”的场景,MultiMatte 是目前最方便的选择,省去了手动画 Mask 的时间。
性能提升的具体细节
为了证明它比 SAM 3 强,官方给出了两个关键指标的对比(案例数据,仅供参考):
- DIS5K 数据集: S-measure 从 0.674 → 0.908(提升 34.6%)。
- DUT-OMRON 数据集: 从 0.792 → 0.901(提升 13.7%)。
这种提升直接体现在对“半透明”区域的处理上。传统的二值化掩码(Binary Mask)要么是 0 要么是 1,导致边缘像锯齿;而 MultiMatte 采用的 Alpha Matte 给每个像素分配透明度值,所以处理运动模糊或者细碎的发丝时,过渡非常自然。
事件追踪 · 相关报道
Meta 那个能帮人砍价和填表的 Muse 助手到底能不能把 AI
3天前
Meta内部那个「合规领域AI专家」到底是怎么搭出来的
9天前
纽约州长强推 AI 监管新政,数据中心暂停令背后的技术博弈
11天前
Instagram 怎么看待那些伪装成真人的 AI 账号?这次清理行动释放了什么信号
11天前
这事儿要是发生在普通用户身上估计得崩溃
11天前
Meta 的 Project OT 计划:AI Agent 正在接管大厂的业务中台
13天前
免费 AI 工具箱 · 全部完全免费
这想法绝了,要是能直接喂两张图给 ControlNet 跑,效率起码翻三倍吧?