点击“一键抠图”时,服务器上的 GPU 正在进行数十亿次浮点运算。本文将带你像算法工程师一样,拆解从 像素计算 到 深度学习 的完整技术栈。
阶段一:色键技术 (Chroma Key)
传统的“绿幕”原理:基于颜色差异的简单数学判定。
核心算法
IF (Green > Red + Tol
AND Green > Blue + Tol)
THEN
Alpha = 0
ELSE Alpha = 1
像素探针
移动鼠标到画面上
Canvas 实时渲染
阶段二:深度学习模型 (U²-Net)
现代 AI 如何通过“嵌套 U 型结构”理解复杂的语义和细节。
U²-Net 架构示意图
输入图像
Encoder (编码)
Decoder (解码)
RSU-1
RSU-2
RSU-3
RSU-1
RSU-2
RSU-3
Alpha Mask
RSU块 (嵌套U结构)
上采样融合
语义分割 (Semantic Segmentation)
不同于绿幕,AI 并不关心具体的颜色值。它通过 卷积神经网络 (CNN) 对每个像素进行分类:"这是人脸" vs "这是树叶"。即使颜色相近,也能根据形状、纹理和上下文区分它们。
训练数据
模型在 COCO, DUTS, ADE20K 等包含数万张标注图片的数据集上训练。它“看”过成千上万种光照条件下的人像,具有极强泛化能力。
为什么是 U²-Net?
普通网络越深越容易丢失细节。U²-Net 采用嵌套 U 型结构,既能捕捉全局语义,又能保留局部细节(如发丝)。这是 remove.bg 等工具背后的核心流派。
阶段三:Alpha Matting 与未知区域
对于半透明边缘(如发丝),AI 需要解一个复杂的数学方程。
语义分割生成的 Mask 通常是非黑即白的。对于实心物体没问题,但对于头发、烟雾、婚纱等半透明物体,我们需要 Alpha 通道(0.0 - 1.0 的灰度)。
核心概念:Trimap (三分图)
前景 (Foreground): 绝对保留 (Alpha=1)
背景 (Background): 绝对移除 (Alpha=0)
未知区域 (Unknown): 需要解算 Alpha
模型仅在“未知区域”的像素上应用高成本的 Matting 算法,通过周围像素的颜色相关性,推算出每个像素的前景占比。
最终 Alpha Matte
二值掩码 (0/1)
拖动对比
核心 AI 模型
U²
U²-Net
SOTA 显著性检测,remove.bg 核心变体
高精度 人像
MO
MODNet
专为实时人像 Matting 设计,无需 Trimap
实时 视频会议
De
DeepLabV3+
Google 开发的通用语义分割模型
通用 稳定
工业界应用流程
Step 1: 粗略分割 (Segmentation)
输入原图,通过 CNN 生成低分辨率掩码 (Mask)。确定大概的人体轮廓。
Step 2: 边缘精修 (Refinement)
识别“未知区域”(如发丝边缘),生成 Trimap。
Step 3: Alpha Matting
解算透明度,并在合成时进行色彩溢出修正 (De-spill)。