背景移除将主体与其周围环境分离开来,这样你就可以将其放置在 透明背景上、更换场景或将其合成为新设计。在底层,你正在估算一个 alpha 遮罩——一个从 0 到 1 的每像素不透明度——然后将前景alpha 合成到 其他东西上。这是 Porter–Duff 的数学原理,也是“边缘”和 直接 alpha 与预乘 alpha 等常见陷阱的起因。有关预乘和线性颜色的实用指南,请参阅 微软的 Win2D 笔记、 Søren Sandmann 和 Lomont 关于线性混合的文章。
如果你能控制拍摄,将背景涂成纯色(通常是绿色),然后抠掉该色调。 这种方法速度快,在电影和广播中经过实战检验,非常适合视频。权衡之处在于灯光和服装: 彩色光会溢出到边缘(尤其是头发),所以你需要使用去溢工具来中和污染。 好的入门资料包括 Nuke 的文档、 Mixing Light 和一个实践性的 Fusion 演示。
对于背景杂乱的单张图片,交互式算法需要用户提供一些提示——例如,一个宽松的 矩形或涂鸦——然后收敛到一个清晰的蒙版。经典方法是 GrabCut (书籍章节),它学习前景/背景的颜色模型,并迭代使用图割来分离它们。 你会在 GIMP 的前景选择中看到类似的想法,它基于 SIOX (ImageJ 插件)。
抠图解决在纤细边界(头发、毛皮、烟雾、玻璃)处的部分透明度问题。经典的 闭式抠图 接受一个三元图(绝对前景/绝对背景/未知),并求解一个具有强边缘保真度的 alpha 线性系统。现代的 深度图像抠图 在 Adobe Composition-1K 数据集上训练神经网络(MMEditing 文档),并使用 SAD、MSE、梯度和连通性等指标进行评估(基准解释器)。
相关的分割工作也很有用: DeepLabv3+ 使用编码器-解码器和空洞卷积来细化边界 (PDF); Mask R-CNN 提供每个实例的蒙版 (PDF);以及 SAM (Segment Anything) 是一个 可提示的基础模型,可在不熟悉的图像上进行零样本蒙版生成。
学术著作报告了在 Composition-1K 上的 SAD、MSE、梯度和连通性错误。如果你正在选择一个模型,请查找这些指标 (指标定义; 背景抠图指标部分)。 对于人像/视频,MODNet 和 背景抠图 V2 很强大;对于一般的“显著物体”图像, U2-Net 是一个坚实的基线;对于棘手的透明度, FBA 可能更干净。
YCbCrA 是一种色彩空间和图像格式,通常用于数字视频和图像压缩。它将亮度(明暗)信息与色度(颜色)信息分离,允许它们独立压缩以实现更有效的编码。YCbCrA 色彩空间是 YCbCr 色彩空间的一种变体,它添加了一个用于透明度的 Alpha 通道。
在 YCbCrA 色彩空间中,Y 表示亮度分量,即像素的明暗或强度。它是根据人眼如何感知亮度来计算的,是红色、绿色和蓝色分量的加权和。权重被选为近似于亮度函数,该函数描述了人类视觉感知的平均光谱灵敏度。亮度分量决定了像素的感知亮度。
Cb 和 Cr 分别是蓝差和红差色度分量。它们表示图像中的颜色信息。Cb 是通过从蓝色分量中减去亮度来计算的,而 Cr 是通过从红色分量中减去亮度来计算的。通过将颜色信息分离到这些色差分量中,YCbCrA 允许颜色信息比在 RGB 中更有效地压缩。
YCbCrA 中的 Alpha (A) 通道表示每个像素的透明度或不透明度。它指定在渲染图像时,像素的多少颜色应与背景混合。Alpha 值为 0 表示像素完全透明,而 Alpha 值为 1(或在 8 位表示中为 255)表示像素完全不透明。0 到 1 之间的 Alpha 值会导致部分透明的像素,这些像素以不同程度与背景混合。
YCbCrA 色彩空间的主要优点之一是,与 RGB 相比,它允许更有效的压缩。人类视觉系统对亮度变化比对颜色变化更敏感。通过分离亮度和色度信息,YCbCrA 使编码器能够为亮度分量分配更多位,该分量承载着最重要的感知信息,同时更激进地压缩色度分量。
在压缩期间,亮度和色度分量可以以不同的速率进行子采样。子采样降低了色度分量的空间分辨率,同时保留了亮度分量的完整分辨率。常见的子采样方案包括 4:4:4(无子采样)、4:2:2(色度水平子采样因子为 2)和 4:2:0(色度水平和垂直子采样因子为 2)。子采样利用了人类视觉系统对颜色细节的较低敏感性,允许更高的压缩比而不会造成明显的感知质量损失。
YCbCrA 图像格式广泛用于视频和图 像压缩标准,如 JPEG、MPEG 和 H.264/AVC。这些标准采用各种技术来压缩 YCbCrA 数据,包括色度子采样、离散余弦变换 (DCT)、量化和熵编码。
在压缩图像或视频帧时,YCbCrA 数据会经历一系列变换和压缩步骤。图像首先从 RGB 转换为 YCbCrA 色彩空间。然后将亮度和色度分量分成块,通常大小为 8x8 或 16x16 像素。每个块都经过离散余弦变换 (DCT),该变换将空间像素值转换为频率系数。
然后对 DCT 系数进行量化,即用量化步长除以每个系数,并将结果四舍五入到最接近的整数。量化通过丢弃感知重要性较低的高频信息来引入有损压缩。量化步长可以调整以控制压缩比和图像质量之间的权衡。
量化后,系数以锯齿形图案重新排序,以将低频系数(往往具有较大的幅度)分组在一起。然后使用哈夫曼编码或算术编码等技术对重新排序的系数进行熵编码。熵编码为更频繁出现的系数分配更短的码字,从而进一步减小压缩数据的尺寸。
要解压缩 YCbCrA 图像,则应用逆过程。对熵编码数据进行解码以检索量化的 DCT 系数。然后通过将系数乘以相应的量化步长来对系数进行反量化。对反量化的系数执行逆 DCT 以重建 YCbCrA 块。最后,将 YCbCrA 数据转换回 RGB 色彩空间以进行显示或进一步处理。
YCbCrA 中的 Alpha 通道通常与亮度和色度分量分开压缩。它可以使用各种方法进行编码,例如游程长度编码或基于块的压缩。Alpha 通道允许透明效果,例如以可变不透明度将图像或视频叠加在一起。
YCbCrA 比其他色彩空间和图像格式具有几个优势。它分离亮度和色度信息,从而实现更有效的压缩,因为人类视觉系统对亮度变化比对颜色变化更敏感。色度分量的子采样进一步减少了要压缩的数据量,而不会显着影响感知质量。
此外,YCbCrA 与 JPEG 和 MPEG 等流行压缩标准的兼容性使其在不同平台和设备上得到广泛支持。它能够为透明度合并 Alpha 通道,也使其适用于需要图像合成或混合的应用程序。
然而,YCbCrA 并非没有局限性。从 RGB 到 YCbCrA 再到 RGB 的转换可能会引入一些颜色失真,尤其是当色度分量被严重压缩时。色度分量的子采样还可能导致颜色溢出或在颜色转换尖锐的区域产生伪影。
尽管存在这些限制,但 YCbCrA 由于其效率和广泛的支持,仍然是图像和视频压缩的流行选择。它在压缩性能和视觉质量之间取得了平衡,使其适用于广泛的应用程序,从数码相机和视频流到图形和游戏。
随着技术的进步,新的压缩技术和格式可能会出现,以解决 YCbCrA 的局限性并提供更好的压缩效率和视觉质量。然而,分离亮度和色度信息、子采样和变换编码的基本原理可能会在未来的图像和视频压缩标准中仍然相关。
总之,YCbCrA 是一种色彩空间和图像格式,通过分离亮度和色度信息并允许色度子采样来提供有效的压缩。它包含用于透明度的 Alpha 通道,使其适用于各种应用程序。虽然它有一些限制,但 YCbCrA 与流行压缩标准的兼容性以及它在压缩性能和视觉质量之间的平衡使其成为图像和视频压缩领域中广泛使用的选择。