JA EN ZH

背景去除技术详解 - 分割与抠图处理的工作原理

· 10 分钟阅读

背景去除概述 - 需求与技术挑战

背景去除是从图像中提取前景主体并使背景透明的处理技术。在电商产品图片、证件照、演示文稿、社交媒体内容和视频会议虚拟背景等场景中需求广泛。根据 Adobe 的研究,超过 75% 的电商产品图片使用白色或透明背景,使得背景去除成为最常执行的图像操作之一。

从技术角度来看,这是一个判断每个像素属于前景还是背景的分类问题。虽然概念简单,但实际面临以下挑战:

  • 边界模糊性:头发、毛皮、半透明物体(玻璃、烟雾、面纱)等边界不清晰的情况。处理同时包含前景和背景的"混合像素"是最大的技术难题
  • 颜色相似性:当前景和背景颜色相近时(白色衬衫 + 白色墙壁),简单的色差无法实现分离,需要对形状和上下文的理解
  • 复杂形状:准确检测手指间隙、首饰缝隙、自行车辐条等前景内部透出的背景区域
  • 阴影和高光:判断是将主体阴影作为前景保留还是作为背景去除,正确答案因用途而异
  • 主体多样性:需要对人物、动物、商品、建筑等各类主体具有通用性

目前主要有三种方法来应对这些挑战:色度键(基于颜色)、语义分割(深度学习)和抠图处理(Alpha 估计)。实用工具通常采用组合流水线。

语义分割 - 利用深度学习进行背景去除

语义分割使用深度学习为图像中的每个像素分配类别标签。在背景去除中,将像素分为前景类(人物、动物、物体)和背景类。通过从大量标注数据集中学习特征,能够对未见过的图像实现高精度分离。

代表性架构:

  • U-Net:带有跳跃连接的编码器-解码器结构。2015 年为医学图像分割提出,现已广泛应用。编码器提取特征,解码器恢复原始分辨率。跳跃连接保留了低级空间信息(边缘、纹理),使边界精度较高。相对轻量(7-30M 参数),适合实时处理
  • DeepLab v3+:使用空洞卷积和 ASPP 捕获多尺度特征。同时在不同感受野大小下提取特征,能准确分割从小到大的各种物体。精度高但计算开销大(40-60M 参数)
  • Segment Anything (SAM):Meta 于 2023 年发布的通用分割模型。通过提示(点、框、文本)指定目标。基于 11 亿张图像训练的基础模型,可零样本处理未知类别
  • IS-Net / U2-Net:专为背景去除优化的轻量模型。U2-Net 采用嵌套 U-Net 结构,仅 4.7M 参数即可实现高精度,适合浏览器端执行

分割输出通常是二值掩码(0 或 1),容易产生锯齿状边界。因此,通过抠图处理对分割结果进行精细化的两阶段流水线是常见做法。

Alpha 抠图的工作原理 - 通过连续值实现精确边界

Alpha 抠图将每个像素的透明度估计为 0.0 到 1.0 之间的连续值。与分割的二值判断不同,抠图估计的是每个像素"有多少前景成分",从而能自然地表现单根头发丝和半透明物体。

数学上,每个像素 I 遵循合成方程:

I = alpha * F + (1 - alpha) * B

其中 F 是前景色(RGB 3 通道),B 是背景色(RGB 3 通道),alpha 是需要估计的透明度。一个方程中有 7 个未知数,需要额外约束条件,这就是所谓的"不适定问题"。

  • 基于三值图:用户指定三个区域(确定前景/白色、确定背景/黑色、未知/灰色),对未知区域估计 Alpha 值。经典算法包括 Closed-Form Matting(2008)和 KNN Matting(2012)。精度高但手动创建三值图阻碍了自动化
  • 基于深度学习:无需三值图直接估计 Alpha 图。代表性模型有 MODNet(2020)、RVM(2021)、ViTMatte(2023)。支持实时和视频处理,使用合成数据(前景 + 随机背景)进行训练
  • 引导滤波:对分割掩码边界进行平滑的轻量方法。精度不及深度学习但速度极快(毫秒级),作为后处理步骤成本很低

头发和半透明物体的处理 - 最困难的挑战

背景去除中最具挑战性的是处理头发和半透明物体(玻璃、烟雾、面纱、水花)。这些区域存在大量前景与背景混合的像素,二值掩码无法产生自然的结果。即使是专业图像编辑人员,头发抠图也需要数十分钟到数小时。

头发处理技术:

  • 高分辨率处理:以全分辨率(2048px 以上)处理以检测单根发丝。低分辨率下头发会变成亚像素级别而无法检测。计算成本较高但精度显著提升
  • 多尺度估计:在粗分辨率(256px)捕获整体形状,在高分辨率(1024px 以上)精细化边界。Cascade Image Matting (CIM) 采用此方法
  • 边缘感知损失函数:训练时对边界区域的损失进行加权。将梯度损失和拉普拉斯损失与标准 L1/L2 结合,保持边界锐度
  • 自动三值图生成:从分割结果自动生成三值图,仅对未知区域(边界附近)应用抠图处理,构建高效流水线

半透明物体处理:

  • 连续 Alpha 估计:玻璃和烟雾具有 alpha = 0.3-0.7 等中间值。准确的连续值估计能实现自然的透视效果
  • 颜色去污染:在半透明区域,前景色和背景色发生混合,需要估计并分离两者。去除颜色渗透(背景色渗入前景)的后处理也很重要

浏览器端背景去除 - 客户端 AI 的实现

随着 ONNX Runtime Web 和 TensorFlow.js 的发展,现在可以直接在浏览器中执行背景去除处理。无需将图像上传到服务器,对个人照片或机密图像的隐私保护具有重大意义。

  • ONNX Runtime Web:将训练好的模型导出为 ONNX 格式,通过 WebAssembly (WASM) 或 WebGL 后端运行推理。可使用 U2-Net、MODNet、IS-Net 等轻量模型。WASM 后端在 CPU 上运行稳定性高;WebGL 后端利用 GPU 加速
  • TensorFlow.js:通过 WebGL 运行 BodyPix、MediaPipe Selfie Segmentation、BlazePose。MediaPipe 是 Google 优化的轻量模型,支持实时视频背景去除
  • WebGPU:下一代 GPU API,比 WebGL 提供更底层的 GPU 访问,实现更快的推理速度。自 2024 年起在 Chrome 和 Edge 中作为稳定版提供

浏览器执行的限制与解决方案:模型大小限制要求使用轻量模型(5-30MB),通过 IndexedDB 缓存可实现后续即时加载。处理速度:GPU 设备上 100-500ms,纯 CPU 需 1-5 秒,使用 Web Worker 可防止 UI 冻结。内存限制:4000px 以上的图像可能导致崩溃,先缩放到 1024-2048px 处理,再将结果掩码放大到原始分辨率。

后处理与输出 - 实现自然的效果

从 Alpha 掩码到最终透明图像输出的后处理步骤。后处理质量在很大程度上决定了最终效果。

边缘精细化:

  • 羽化:对掩码边界应用轻微高斯模糊(半径 1-2px)以减少锯齿。过度模糊会使主体轮廓变得模糊,因此应控制在最小程度
  • 颜色去污染:去除边界像素处残留的背景色渗透。将前景色向边界方向扩展(膨胀)以抵消背景色影响。相当于 Photoshop 的"去除杂色"功能
  • 边缘收缩:将掩码向内收缩 1-2px 以去除边界处的背景边缘残留。通过腐蚀操作实现,但需注意不要消除细小特征(头发)

输出格式选择:

  • PNG-32:带 8 位 Alpha 通道的标准输出格式。支持 256 级半透明。文件最大但兼容性最高
  • WebP(带 Alpha):比 PNG 小 30-50%,透明质量相当。最适合 Web 分发
  • SVG(矢量化):将掩码轮廓转换为矢量路径作为 SVG 裁剪路径。不受缩放影响但不适合复杂边界(头发)

Canvas API 实现:getImageData() 获取的像素数据的 Alpha 通道(第 4 字节)设置为掩码值,通过 putImageData() 写回。使用 canvas.toBlob('image/png') 输出为带 Alpha 通道的 PNG 图像文件。WebP 输出使用 canvas.toBlob('image/webp', 0.9)

Related Articles

浏览器图像处理的工作原理 - Canvas API、ImageData 与 Web Workers 指南

技术详解浏览器中的客户端图像处理。学习使用 Canvas API 进行像素操作、ImageData 结构、Web Workers 离线程处理以及 OffscreenCanvas 的使用方法。

图像格式对比 - JPEG/PNG/WebP/AVIF/GIF/BMP 的特性与适用场景

全面对比主流图像格式的特性、压缩效率和适用场景。从传统格式到新一代格式,提供基于用途的最佳选择指南。

图像分割基础 - 理解区域划分原理与应用

系统介绍图像分割技术,从经典阈值法到深度学习方法 (U-Net、DeepLab、SAM),涵盖评估指标和浏览器端实现。

Alpha 抠图技术详解 - 从自然图像中实现精确前景提取

全面解析 Alpha 抠图技术,从三值图输入设计到闭式抠图、深度学习抠图方法。涵盖头发丝级别的精确前景提取原理与实践工作流程。

语义分割入门 - 理解 U-Net 和 DeepLab 架构

详解语义分割的核心架构,从 FCN 开创性工作到 U-Net 的编码器-解码器结构和 DeepLab 的空洞卷积,涵盖训练数据准备和部署。

透明图像指南 - 使用 PNG、WebP 和 SVG 创建透明背景

透明图像的创建与使用完全指南。涵盖 Alpha 通道原理、PNG/WebP/SVG 透明实现、背景去除技巧及 Web 设计应用模式。

Related Terms