AI · AI绘画
AI抠图的原理是什么?
简短回答
AI抠图工具会运行一个分割网络,给每个像素打 0(背景)到 1(主体)的分数。这张分数图就成为图像的 Alpha 通道:主体处不透明,其他地方透明,头发等柔和边缘则是半透明。结果必须存成带 Alpha 的格式,通常是 PNG,否则背景会重新冒出来。
打开AI 抠图简单说:蒙版变成 Alpha 通道
一张照片有红、绿、蓝三个颜色通道。抠图需要再加第四个通道,叫 Alpha,用来表示每个像素有多不透明。自动抠图,就是自动把这个 Alpha 通道填好。
模型不会画新背景,也不会挪动像素,它只对每个像素回答一个问题:这个像素有多大比例属于主体?照片的颜色值原样保留。把结果放在棋盘格或新背景上时,由 Alpha 值决定哪些地方透出来。
- 照片先被缩放到模型的工作尺寸。很多模型使用固定的正方形输入,例如 BiRefNet 就是在 1024 × 1024 下训练和测试的。
- 网络给每个像素输出一个数,最后再经过一步 sigmoid,把它压缩到 0 到 1 的范围。
- 分数图被放大回原照片的尺寸。
- 分数变成 Alpha 通道(8 位图像中为 0 到 255),文件按带 Alpha 的格式编码保存。
由于第 3 步是把较小尺寸算出的蒙版放大,超大照片上的细小边缘永远只是估计值。这也是为什么 6000 像素的商品图中间看着很清晰,轮廓却略显发虚。
分割与抠像(Matting)的区别
背景去除汇集了两个研究方向,两者的差别解释了大多数边缘问题。
| 分割(Segmentation) | 抠像(Matting) | |
|---|---|---|
| 回答的问题 | 这个像素是主体还是背景? | 这个像素有多大比例是主体? |
| 典型输出 | 基本只有 0 或 1 的蒙版 | 0 到 1 连续变化的 Alpha 蒙版 |
| 额外输入 | 通常不需要 | 传统方法需要三分图(trimap):确定的主体、确定的背景、未知过渡带 |
| 擅长 | 完整物体、商品、轮廓干净的对象 | 头发、毛发、烟雾、运动模糊、头纱 |
| 典型缺点 | 边缘生硬,像剪纸 | 速度慢,需要先有比较准的形状初稿 |
分割决定物体在哪里,抠像决定边缘如何融合。一根发丝尖端的像素可能 30% 是头发、70% 是天空,正确的 Alpha 约为 0.3,而不是 0 或 1。经典的深度学习抠像方法 Deep Image Matting,输入图像加一张手绘的三分图,在未知带内预测这个小数值。
一键抠图工具省掉了三分图。IS-Net、BiRefNet 这类二分图像分割(dichotomous image segmentation)系列的模型,是用带有极精细轮廓的高分辨率图像训练的,所以不需要用户输入就能跟住细小结构。它们的输出依然是分割分数,而不是真正物理意义上的抠像蒙版,但因为分数是连续的,在多数照片上给出的柔和边缘与抠像相差无几。
为什么输出必须是 PNG(或 WebP)
JPEG 没有 Alpha 通道。把抠图存成 JPEG 的话,每个透明像素都得有一个颜色,工具会填上白色或黑色。你刚刚去掉的背景,就被一块纯色背景取代了。
| 格式 | Alpha 通道 | 压缩方式 | 适合用于 |
|---|---|---|---|
| PNG | 有,8 位或 16 位 | 无损 | 要继续编辑、印刷、设计文件的抠图 |
| WebP | 有 | 有损或无损 | 网页上体积更小的抠图 |
| JPEG | 无 | 有损 | 已经合成了纯色背景的最终图片 |
| AVIF | 有 | 有损或无损 | 支持该格式的网页分发 |
PNG 规范存储的是非关联(非预乘)Alpha:半透明像素的颜色保持完整强度,Alpha 单独存放。这使 PNG 成为安全的母版。以后放到任何背景上,都不会因为之前混合过而出现暗边。
如果电商平台要求白底 JPEG,先在工具里加上白色背景,再导出 JPEG,同时保留 PNG 作为母版。
疑难情况:头发、毛发、玻璃、阴影
- 头发和毛发。在模型的工作尺寸下,单根发丝比一个像素还细,所以在模型看到之前就已经丢了一部分。成团的头发能保留,飘出来的碎发会淡掉。拍摄时选一面素净、反差大的墙,比任何设置都管用。
- 颜色相近。黑狗坐在黑沙发上,或白衬衫靠着白墙,网络几乎找不到边缘,只能依靠对形状的先验知识,可能会切进主体里面。
- 玻璃、水和薄纱。酒杯大部分是透过它看到的背景。分割模型只能二选一:保留玻璃(连同里面的旧背景),或者丢掉它。两种都不符合物理事实;真正的透明需要一张蒙版再加上玻璃的真实颜色,而单张照片给不出这些。
- 阴影和倒影。商品的接触阴影属于地面,所以大多数抠图工具会把它删掉,商品看上去就像悬在空中。很多店铺图在事后补上一层柔和的阴影会更好看。
- 镂空。手臂与身体之间的缝隙、把手内部或自行车轮辐里的空隙,都是背景。高分辨率的好模型能抠出来,较弱的则会把它们填实。
- 颜色溢出。反射到主体边缘上的绿色或其他彩色光,在背景去掉之后仍留在 RGB 值里。换到新背景上,就表现为一圈彩边。
怎样得到更干净的抠图
质量主要取决于照片,而不是工具。几点速查清单:
- 拍摄时让主体和背景在颜色和亮度上都有明显反差。
- 保持主体清晰。边缘处的运动模糊和浅景深,会变成不确定的 Alpha。
- 让主体充满画面。主体占画面的比例越大,缩放到模型输入尺寸后保留的细节越多。
- 把结果分别放在深色和浅色背景上检查。白底上看不出的光晕,放到黑底上会现形,反过来也一样。
- 顽固的部分在编辑器里用柔边橡皮或蒙版画笔手动修,在 PNG 母版上操作。
- 必须完美的发丝人像,自动抠完之后再用带三分图的抠像工具或“调整边缘”画笔处理。
具体工具怎么点,请看去除照片背景的分步教程。例如 cv.cm 的抠图工具在浏览器里运行 BiRefNet,照片不会上传,可以导出透明 PNG,也可以把主体放在白色、纯色或原图虚化的背景上。
局限与合理预期
自动抠图现在已经能满足大多数商品图、头像和幻灯片的需要。但在广告和影视工作里,它替代不了精细的手工蒙版。模型只懂训练数据里见过的东西:罕见的物体、相互重叠的人物,或者主体不明确的画面(三个人里谁是主体?),都可能产生出人意料的蒙版。
模型也不知道你想留下什么。如果你只想要杯子而不要握杯子的手,自动抠图通常会把两者都留下,因为训练数据把手和杯子视为同一个前景。可以先裁剪,或者事后擦掉多余的部分。
最后,去掉背景并不会去掉其他信息。原文件里可能仍有 GPS 位置等 EXIF 数据。如果要公开分享抠图,请导出新文件,必要时清除元数据。
常见问题
抠出来的图为什么带白边或灰边?
边缘像素里还留着一部分旧背景的颜色,而且那里的 Alpha 是半透明的。先把抠图放在深色背景上检查,然后在编辑器里把边缘略微收缩或柔化,或者重新拍一张背景颜色更接近新背景的照片。
保存之后背景变成了黑色或白色,是怎么回事?
文件保存成了没有 Alpha 通道的格式,通常是 JPEG。存成 PNG 或 WebP 才能保留透明。
AI能把透明玻璃杯或瓶子抠出来吗?
只能做到大致可用。单张照片没有告诉模型玻璃有多透明,所以它要么保留玻璃并露出里面的旧背景,要么抠掉太多。做商品图时,建议把玻璃放在素净的浅色背景前拍,再手动修图。
AI抠图和绿幕抠像是一回事吗?
不是。绿幕(色度键)去掉的是一种已知的颜色,光线均匀时很可靠。AI抠图没有已知颜色,必须识别主体,所以任何背景都能用,但在细小边缘处更难预测。
去掉背景后图片画质会下降吗?
导出 PNG 的话,主体像素保持原来的颜色,变化的只有 Alpha。画质损失出现在边缘(蒙版是在较小尺寸上算出再放大的),以及导出成有损格式的时候。