去背景技术演进:从传统抠图到 Segment Anything,AI 怎么理解前景和背景的边界

第一次用 Photoshop 的快速选择工具抠我家猫的照片时,我盯着屏幕上狗啃一样的毛边看了十分钟。人扫一眼就能说出"猫在这",计算机怎么就做不到?

AI technology illustration

这个问题困扰了我很久,直到我搞明白一件在图像处理圈人尽皆知、圈外人却极少意识到的事:在像素的世界里,前景和背景的边界,压根就不存在。

一个方程,三个未知数:为什么像素自己说不清边界

把任何一张照片放大到像素级,你会发现边缘处的像素都不干净。猫耳朵尖上的那个像素,颜色既像毛又像沙发——运动模糊和相机采样,早已把前景和背景的光混在了一起。

1996 年,Smith 和 Blinn 在蓝幕抠图论文里把这个现象写成了一个方程,它后来成了所有抠图技术的基石:

I = αF + (1−α)B

I 是相机最终拍到的颜色;F 是前景纯色,B 是背景纯色;α 表示这个像素里前景占的比例,范围是 0 到 1。抠图要算的核心就是 α——把所有像素的 α 拼在一起,就是传说中的 alpha matte,也就是你导出 PNG 时看到的透明通道。

举个例子你就明白为什么难了:一个像素的 RGB 值是 (120, 130, 140)。它是深灰色的头发,还是浅灰色背景上叠了四成黑色阴影?只靠这一个数值,你永远无法区分。

问题在于:一个方程,三个未知数。F、B、α 全都不知道,单凭一个像素的颜色值,数学上无解。这就是欠定问题。

说人话:计算机从照片这个成品里,永远无法反推出配料表。所以整部抠图技术史,本质上就是一部想办法往方程里塞额外信息的历史。

传统工具的挣扎:绿幕、画框和涂涂画画

最直接的塞法,是让背景变成已知数。绿幕抠像就是这个思路——皮肤和头发里几乎没有绿色分量,把绿幕颜色当已知的 B 塞进方程,剩下的就好解了。这也是为什么影视剧组要搭绿幕,而不是随便找面白墙。

但普通人没有绿幕。Photoshop 魔棒和快速选择的思路是颜色相近就是一类。这个假设在纯色背景上确实好用,可一旦遇到猫毛这种一根毛上同时反射环境和自身颜色的场景,就直接崩溃。

2004 年的GrabCut往前迈了一步:用户画一个框把物体框住,算法用图割迭代区分框内的前景和背景。它比魔棒聪明得多,但本质上还是把前景颜色分布比背景更紧凑当成假设——背景一复杂,照样翻车。

看出共同点了吗?传统方法全部需要某种形式的人工干预。绿幕需要搭场景,GrabCut 需要画框,专业级抠图更需要画三色图 trimap(确定前景、确定背景、中间未知区域)。设计师不是想偷懒,是方程不给面子——额外信息不够,谁来都白搭。

深度学习走了一条野路子:不解方程,改认事物

2017 年的Deep Image Matting是分水岭。它第一次把深度网络当作抠图的核心工具,学习原图到 alpha matte 的映射,彻底抛弃了手工设计的特征。

这和前人有本质区别。传统方法在算,深度模型在认——看过几十万张照片加精确标注的训练对之后,模型认识猫。认识猫,就能推测猫毛覆盖的边缘该长什么样。

但前期的深度抠图还离不开 trimap,因为未知区域太大会让计算量和误差同时爆炸。

MODNet(2021,ICCV)把这个限制打破了:实时、不需要 trimap、直接把一张人像照片变成干净的 alpha matte。它的秘密是任务特化——我只做人像,别的一概不管。用起来是真的爽,但换个非人像场景立刻拉胯。

用人话说:MODNet 让你忘了抠图难,是因为它把万物偷偷换成了人像。

SAM 的革命:从图里有什么到你想抠什么

2023 年 4 月,Meta 发布Segment Anything Model(SAM)。我第一次玩的时候,真的有一种跟图片聊天的感觉:你点一下猫,它就给你猫的完整蒙版;画一个框,它就分割框里的物体。官方的提示方式是点和框,文字提示要交给Grounded-SAM这类组合方案。

SAM 的架构本身不复杂:一个 ViT 图像编码器、一个提示编码器、一个轻量蒙版解码器。真正的护城河是它背后的数据集 SA-1B:

为了造出这个数据集,Meta 设计了一套数据引擎,分三个阶段循环:

  1. 模型辅助人工标注:标注者用 SAM 初版辅助画蒙版,人工修正误差;
  2. 半自动标注:模型自动生成候选蒙版,人工只负责挑选和修正低质量的;
  3. 全自动标注:模型自主生成蒙版,再用置信度和重影检测过滤垃圾结果。

六轮迭代下来,模型能处理的物体种类像滚雪球一样增长。

但我觉得 SAM 最聪明的设计是提示机制。传统分割模型回答的问题是图里有什么,SAM 回答的是你想让我分割什么。

别小看这个区别。前者要求模型认识全世界的所有物体——这是无限任务,永远做不完;后者只要求模型理解被指到的东西和周围的东西在视觉上构成一个独立整体——这是有限操作,学得会。所以 SAM 能零样本分割它从没见过的动物和物体。不是因为它认识企鹅,而是因为它理解你指的那个区域,和周边不一样。

还有一个细节很妙:当提示存在歧义时,SAM 会一次输出三个合理的蒙版,把最终决定权交给你。这是论文里专门设计的多重掩码机制。

把猫胡子放大后,我发现 SAM 的边界在这里

我最早以为 SAM 就是万能抠图机。直到我拿它对着一张猫胡须的特写照片,放大一看——边缘全是锯齿。

那一刻我才意识到,分割和抠图,是两个层面的问题

语义分割 抠图(matting)
输出 二值蒙版(0 或 1) alpha matte(0~1 连续值)
边缘精度 像素级 亚像素级
核心能力 理解这是什么 估算混合物比例
头发丝场景 锯齿状 半透明过渡

分割回答哪些像素属于物体,抠图回答每个边缘像素里物体占多少。头发丝在像素层面本来就是前景和背景的混合物,二值蒙版在这里只能一刀切。

2023 年的Matting Anything Model把这个差距暴露得明明白白。它的方案是:先用 SAM 生成 trimap,再交给专门的 matting 网络在未知区域算精细 alpha。

你发现了吗——绕了一大圈,最先进的 AI 抠图方案又用回了 trimap。只不过画 trimap 的人,从设计师变成了 AI 自己。

边界问题,最终是一个语义问题

回头看这条技术线,一个关键事实是:抠图方程的数学本质(欠定问题)三十年来从未改变。改变的是计算机获取额外信息的方式。

  • 早期:靠场景搭建(绿幕),把背景变成已知数;
  • 中期:靠人工交互(GrabCut、trimap),缩小未知区域;
  • 深度时代:靠数据里学到的先验,用语义猜边界;
  • SAM 时代:靠基础模型理解你想分割什么,零样本指向任何物体。

每一代技术都在做同一件事:把边界从像素层面的模糊问题,升维成语义层面的清楚问题

SAM 把这件事做到了极致,但它止步于二值蒙版。SAM 2把能力扩展到了视频,依然没有碰 alpha matte——因为语义理解要的是宏观,亚像素估算要的是细致,在当前架构下,把这两个目标塞进同一个模型,会互相拖累。

所以我的判断是:接下来成熟的去背景产品,会走向通用分割加专用 matting 的组合架构。SAM 负责指路,matting 模型负责精修。想用一个模型既包办万物分割、又搞定毛发级抠图,至少在现在的技术框架下,还不现实。

原创文章,作者:guanweilu,如若转载,请注明出处:https://guanweilu.cn/article/407.html

(0)
上一篇 4天前
下一篇 4天前

相关推荐