Depth Bleeding
深度渗漏是一种深度图伪影,表现为距离信息在物体边界处扩散,导致点云和 AR 场景中出现悬浮像素和光晕。
深度渗漏是深度图中的一种伪影,指深度值越过前景物体与背景之间的边界溢出,使边缘像素获得另一个表面的深度或两者的混合值。它出现在深度不连续处,也就是一个表面结束、另一个距离远得多的表面开始的遮挡边界;所有深度来源都会受到影响,包括立体视觉、飞行时间和 LiDAR 传感器,以及基于学习的深度估计。边缘的重要性远超其像素数量所显示的程度。将像素反投影到 3D 点云后,发生渗漏的像素会变成飞点,在物体与其后方墙壁之间的空中悬浮。在增强现实中,它们会让虚拟物体穿透真实边缘或漂浮在真实边缘前方;在新视角合成中,它们会像橡皮膜一样拉伸边缘;对机器人技术和自动驾驶汽车而言,它们会使物体看起来比实际更宽,从而导致机器人抓取位置错误,并拉伸3D 目标检测框。
深度渗漏的成因#
在立体匹配中,每个像素的匹配结果是通过比较周围邻域窗口确定的,而在边缘附近,该窗口会同时覆盖两个表面。窗口中的前景像素可能主导匹配代价,因此前景深度会扩散到旁边的背景像素上;立体视觉文献将这种现象称为前景膨胀。只被一个摄像头看到的像素根本没有正确的匹配对象,只能取得邻近像素的深度。
用于单目深度估计的神经网络会以两种方式产生渗漏。其编码器会将图像下采样为粗糙的特征图,因此许多解码器会以低于输入分辨率的尺度预测深度,再通过插值放大,从而在每条边缘处混合两个表面。此外,当一个边界像素可能属于任一表面时,平方误差损失函数在预测两个深度的平均值时达到最小,而这个数值并不属于任一表面。Ultralytics YOLO26 深度模型会以输入分辨率的四分之一预测对数深度,预测器再通过双线性插值将深度图放大至原始图像尺寸,因此输出中两个表面之间的深度突变会变成宽达数个像素的斜坡。
传感器会产生物理层面的渗漏。飞行时间像素或足迹跨越边缘的 LiDAR 光束会同时接收到两个表面的光,并报告介于两者之间的深度,这是深度相机点云中飞点的典型来源。RGB-D 相机还会产生对齐偏差,因为深度测量位置与颜色测量位置略有不同,将其中一种数据重新投影到另一种数据上时,边缘就会发生偏移。
下面的示例将一个四分之一分辨率的深度图放大。图中人物距离墙壁 1.5 米,墙壁距离相机 4 米;许多深度网络也会通过这种方式将深度图恢复到全分辨率。示例会统计深度既不属于人物表面也不属于墙面的像素:
import torch
import torch.nn.functional as F
# A depth map predicted at 1/4 resolution: a person 1.5 m away in front of a wall 4 m away
low = torch.full((1, 1, 120, 160), 4.0)
low[..., 30:, 60:100] = 1.5
for mode in ["bilinear", "nearest"]:
# Upsample 4x to the 480 x 640 image
depth = F.interpolate(low, size=(480, 640), mode=mode)[0, 0]
# Bleeding pixels hold depths that belong to neither surface
bleeding = (depth > 1.6) & (depth < 3.9)
print(f"{mode}: {bleeding.sum().item()} bleeding pixels, row 300 across the edge: {depth[300, 394:404].tolist()}")双线性放大会产生 3,518 个渗漏像素,沿着轮廓形成深度分别为 1.81、2.44、3.06 和 3.69 米的斜坡,这些像素在点云中都会悬浮在半空中。最近邻放大不会产生渗漏,因为它不会创造新值;但在真实图像中,实际边缘会落在粗粒度像素内部,所以最近邻输出可能使边缘偏移最多两个像素,并将对角边缘变成阶梯状。
减少并衡量深度渗漏#
边缘感知放大是一种有引导的深度超分辨率方法,它使用全分辨率彩色图像作为引导。Johannes Kopf 及其同事于 2007 年提出联合双边放大;该方法和引导滤波器都会根据颜色相似度为邻域赋予权重,因此深度会止于图像边缘。相反的错误是纹理复制:如果彩色边缘并无深度变化(例如盒子上的印刷图案),它们就会在深度图中形成凹痕。网络可以通过提高输出分辨率、使用边界感知训练损失,以及利用图像分割进行引导式细化来减少渗漏;Apple 的 Depth Pro则专门针对锐利边界进行设计和评估。对于立体视觉,左右一致性检查会标记两个方向的匹配结果不一致的像素;对于任何深度来源,都可以通过剔除深度在邻近像素间剧烈跳变,或表面几乎平行于视线方向的点来去除飞点。
标准指标几乎无法反映渗漏,因为边缘像素只占图像很小一部分,绝对相对误差等平均误差的变化也微乎其微。iBims-1 基准由慕尼黑工业大学的 Tobias Koch 及其同事于 2018 年发布,它通过深度边界误差直接评估深度边缘:准确度衡量预测边缘与人工标注边缘之间的距离,完整度则衡量预测漏掉了多少真实边缘。










