跳到主要内容

抠图、图像分割

在计算机视觉领域,“抠图”和“图像分割”虽然经常被混为一谈,但在底层算法原理和输出结果上,它们是两个完全不同的任务

  • 图像分割 (Image Segmentation): 核心是“分类”。它把图片里的每个像素打上标签(这是猫、那是树)。它的输出是硬边缘(Hard Mask),非黑即白(0 或 1)。
  • 抠图/抠像 (Image Matting): 核心是“透明度估计”。它不仅要知道什么是前景什么是背景,还要计算边缘的软透明度(Alpha 通道),值在 0 到 1 之间。这是处理毛发、婚纱、玻璃杯等半透明物体的唯一解法。

以下是目前开源社区和工业界最流行的专用模型分类:


一、 顶级“抠图”模型(Matting:主攻发丝、透明度与完美背景去除)

这些模型专门为了“完美去除背景”而生,是目前电商修图、海报制作和 ComfyUI 流程中的绝对主力。

1. BiRefNet (Bilateral Reference Network)

  • 地位: 目前开源界最高清、边缘最锐利的去背景模型(2024年爆火)。
  • 特点: 它通过极其复杂的双边参考架构,彻底解决了以前抠图模型在处理极高分辨率图像时“边缘糊成一团”的问题。对复杂背景下的发丝和半透明物体处理极为惊艳,目前在 ComfyUI 节点中几乎取代了以前的所有老模型。

2. BRIA RMBG (v1.4)

  • 地位: 目前应用最广泛、最稳如老狗的工业级去背景模型。
  • 特点: 也就是著名的开源工具 Rembg 目前背后经常挂载的模型之一。它经过了极其庞大和高质量的商业数据集训练,适应性极强,不论是人像、商品还是二次元插画,抠出来的边缘都非常干净。

3. RVM (Robust Video Matting) - 字节跳动开源

  • 地位: 视频和实时流媒体抠像的王者。
  • 特点: 它不需要绿幕!而且因为它引入了时序循环神经网络(RNN),它在抠视频时,毛发边缘极其稳定,不会像单张抠图模型那样在视频里产生“边缘闪烁”。

4. MODNet (Mobile-size Objective-Driven Network)

  • 地位: 轻量级人像抠图的祖师爷。
  • 特点: 采用极其精妙的“粗细结合”架构,在极小的参数量下(甚至能在手机端实时运行)实现了极高精度的发丝抠像。

二、 顶级“图像分割”模型(Segmentation:主攻万物识别与遮罩)

如果你不是为了去背景,而是为了**“选中画面里的特定物体”**(比如只选中画面里的那辆汽车,或者只选中人的衣服进行局部重绘),你需要的是分割模型。

1. SAM 2 (Segment Anything Model 2) - Meta 开源

  • 地位: 分割领域的“秦始皇”,真正的视觉基础大模型
  • 特点: 它改变了游戏规则。你不需要提前告诉它要找什么,你只需要给它一个提示(Prompt)
    • 点提示: 在画面里的猫身上点一下鼠标,它瞬间算出猫的完美遮罩。
    • 框提示: 画个框,它自动贴合框内物体的边缘。
    • 视频追踪: SAM 2 史诗级进化,在视频第一帧点一下那个人,后续所有帧它都能死死咬住那个人的轮廓。

2. YOLO 系列 (如 YOLOv11-seg)

  • 地位: 工业界与自动驾驶的绝对标准。
  • 特点: 极速!SAM 2 虽然强大但运算较慢,而 YOLO-seg 可以做到每秒处理上百帧画面。它同时输出物体的检测框(Bounding Box)和分割遮罩(Mask),适合需要极其快速且明确知道类别的工程项目。

三、 终极“多模态”组合怪兽

目前的最新趋势,是将大语言模型(LLM)的理解能力,与上述视觉模型的提取能力结合起来:

1. Grounded-SAM (Grounding DINO + SAM)

  • 玩法: 真正意义上的**“语言控制视觉”**。
  • 应用场景: 你不需要拿鼠标去点。你直接输入文字提示词:"the blue hat on the girl's head"(女孩头上的蓝帽子)。
    • 第一步:Grounding DINO 凭借强大的图文理解能力,在图片里找到那顶蓝帽子,并画个框。
    • 第二步:SAM 接收到这个框,瞬间生成蓝帽子的完美像素级遮罩。
  • 结合点: 这是目前 AI 图像局部重绘(Inpainting)工作流中最强大的一环。用这句话就能精准定位并替换任何物体,完全实现了自动化。

总结建议

在你的 AI 图像编辑工作流中:

  • 如果你的目的是把人物抠出来换个背景 $\rightarrow$ 优先使用 BiRefNetRMBG
  • 如果你的目的是只提取画面里的某个杯子、某件衣服来进行局部改色或重绘 $\rightarrow$ 优先使用 SAM 2Grounded-SAM