这项由德国莱布尼茨汉诺威大学摄影测量与地理信息研究所主导的研究,以arXiv预印本形式发布于2025年4月,论文编号为arXiv:2511.16428v2,感兴趣的读者可通过该编号查询完整原文。
你坐过这样的车吗——车身四周装了六个摄像头,号称能"看见"360度的周围环境。这套系统在自动驾驶汽车和高级辅助驾驶系统中极为常见。理论上,六个眼睛同时工作,应该能把周围的一切都看得清清楚楚。然而现实是,这六个摄像头各自为政,对同一个路人、同一根电线杆,可能给出六个不同的"距离判断"。好比你问六个朋友同一棵树离你多远,每个人都掏出不同型号的测距仪,最终给出六个互相矛盾的答案——哪个才对?
这正是自动驾驶领域长期存在的一个棘手问题:多摄像头系统的深度估计不一致。所谓深度估计,就是让摄像头像人眼一样感知远近,判断前方物体到底有多远。汉诺威大学的研究团队发布了他们的新方法——CylinderDepth,用一个极为巧妙的"圆柱体地图"思路,让多个摄像头终于能协调一致地描述同一个世界。
一、为什么摄像头们会"众口不一"
要理解这个问题,先得明白这套全景摄像头系统是怎么工作的。自动驾驶车辆通常在车身各个方向安装六个摄像头,形成一个"全景摄像头组"(surround camera rig),合力覆盖车辆360度的视野。每个摄像头各自拍摄自己负责的那一片区域,相邻摄像头的视野之间只有很小的重叠部分。
深度估计的任务,就是让每个摄像头不仅"看到"画面,还要"猜出"画面中每个点距离摄像头有多远——生成一张"深度图"。这件事本身已经很难,因为单张照片本质上是二维的,要从中恢复三维距离信息,既需要丰富的视觉线索,也需要强大的数学推算能力。
现有的大多数方法,是训练一个神经网络(可以理解为一套极其复杂的"经验公式"),让它对每张图片单独处理,各自输出一张深度图。这就带来了核心问题:六个摄像头的网络是相互独立的,它们对同一个路边邮筒的距离估算,可能相差几十厘米甚至几米。当你把六张深度图拼合成一幅完整的场景时,邮筒会出现两个、三个甚至更多"幽灵"版本,彼此错位漂移,像一张拍糊了的全景合影。
这种"多摄像头深度不一致"的问题,研究团队认为主要来自两个根源。其一,当一个摄像头试图判断画面边缘区域的深度时,它所能"看到"的周边信息非常有限——就像你用手遮住视野的大半部分,只留一个小缝缝来判断距离,自然不准。其二,相邻摄像头的重叠区域虽然拍的是同一片景物,但两个摄像头的视角不同,如何找到"对应关系"——即两张图里哪个像素对应同一个现实中的点——本身就是个困难的匹配问题。
此前的研究也意识到了这个问题,但解决方式大多是"间接施压"——在训练时加一些约束条件,鼓励网络输出更一致的结果,但并不从根本上利用摄像头之间已知的几何关系。汉诺威团队的思路则截然不同:既然我们明确知道每个摄像头的位置和朝向,为什么不直接用这个几何关系来协调它们的判断?
二、把六个摄像头的视野"卷"进同一个圆柱体
CylinderDepth的核心创意,可以用这样一个比喻来理解:把车辆周围的整个世界"印"到一张围绕车辆的圆柱形画卷上。无论原始信息来自哪个摄像头,只要它们对准的是现实世界中同一个位置,就会被"印"到这个圆柱画卷上的同一个点。这样一来,六个摄像头的视角就被统一到了同一套坐标语言里。
具体的实现过程分为两轮处理。第一轮,网络先独立处理六张图片,用编码器(可以理解为"特征提取机器")从每张图里提取出一套抽象的特征图,再通过解码器("特征翻译机器")初步估算出一张深度图。这张初步深度图不需要很准确,只是作为后续步骤的"粗略参考"。
有了初步深度后,研究团队就能把每张图里每个像素点对应的空间位置算出来——每个像素不再只是一个平面坐标,而是对应现实三维空间中一个具体的点。接下来,所有这些三维点被投影到一个共享的"单位圆柱体"上。这个圆柱体以车辆为中心轴,所有摄像头的特征点都按照它们在真实空间中的位置,映射到这个圆柱体的表面。每个点在圆柱体上的位置由两个参数描述:水平方向的角度(方位角),以及垂直方向的高度,合称"柱面坐标"。
为什么选择圆柱体而不是更常见的球体?研究团队给出了明确解释。球体在两极附近会产生严重的变形(就像世界地图在南北极附近被拉伸变形一样),而圆柱体则避免了这种极点问题。更重要的是,对于水平环绕安装的车载摄像头来说,圆柱体天然就是一个最合适的统一坐标系——视野本就是水平旋转一圈,圆柱体恰好匹配这种"绕一圈"的拓扑结构。
这里还有一个重要的技术细节值得说明。传统的"柱面图像拼接"技术(比如生成360度全景照片)通常假设所有摄像头都位于同一个点,只是朝向不同。然而现实中,车辆上的摄像头是分散安装的,彼此之间有一定距离,这会造成"视差"——同一个物体在不同摄像头的照片里位于稍微不同的位置。传统拼接方法会因此出现"鬼影"(同一物体出现两个错位的影像)。CylinderDepth的做法是先用初步深度图在三维空间里重建场景,然后再投影到圆柱体上,从而绕开了这个问题——它投影的不是像素颜色值,而是每个像素的三维空间坐标。
三、用"邻近度"代替"猜测"的注意力机制
有了圆柱体坐标之后,真正的"魔法"就在于接下来如何利用它。研究团队设计了一套特殊的"注意力机制"(attention mechanism)。
注意力机制是深度学习中的一个重要概念,可以这样理解:当网络处理某个像素时,它不仅仅看这个像素本身,还会"回头看"其他相关像素,并根据相关程度给它们分配不同的权重——越相关的像素,贡献越大。这就像你在人群中寻找朋友,你会优先关注与朋友体型、发色相似的人,而不是对所有人一视同仁。
CylinderDepth的注意力机制有一个关键的不同之处:权重不是由网络学习得到的,而是根据圆柱体坐标上的几何距离直接计算得出的。具体来说,两个像素点在圆柱体表面上的"测地距离"(可以理解为沿着圆柱体表面走的最短距离)越近,它们在注意力机制里的相互影响就越大;距离超过一定阈值,影响就直接降为零。这种距离权重的形状是一个截断的二维高斯分布——可以类比成一盏以目标像素为中心的聚光灯,离中心越近越亮,超过一定范围就完全黑暗。
这种设计的好处是显而易见的。首先,它充分利用了已知的摄像头几何关系,而不是让网络在黑暗中瞎猜哪些像素应该相互关注。其次,通过限制注意力的范围(只关注圆柱体表面的近邻),它避免了让图像边缘区域的像素去错误地参考另一端毫不相关的像素——这既节省了计算量,也减少了干扰。第三,由于映射到圆柱体上的坐标本身就对齐了不同摄像头的视角,这套机制能够自然地跨越摄像头边界,让一个摄像头视野边缘的像素"借用"相邻摄像头对应位置的特征信息,从而弥补了单摄像头边缘区域感知不足的缺陷。
为了保证计算效率,研究团队只在最低分辨率的特征图上应用这套圆柱体注意力机制,而对更高分辨率的特征图则保留原始信息,通过"跳跃连接"(skip connections,类似于给高分辨率信息提供一条直通道路,让它跳过注意力处理环节直接传递给解码器)来保留细节。这种设计的依据也很直观:注意力机制本质上是一种"平滑化"操作,在低分辨率层面做跨视角的全局一致性对齐,而高分辨率层面则专注于边缘和细节的精确重建。
第二轮处理就是把这套经过注意力调制的特征图,连同各尺度的高分辨率特征,一起送入解码器,最终输出六张精细的深度图——每张图对应一个摄像头,而且这次六张图在重叠区域的深度估计高度一致。
四、如何在没有激光雷达的情况下"自学"深度
CylinderDepth采用的是"自监督训练"方式,这意味着它在训练时不需要依赖昂贵的激光雷达设备来提供精确的距离标注数据。那它靠什么来学习?靠的是"光度一致性"原则——简单说,如果你知道两台相机的相对位置,又知道每个点的距离,就应该能从一台相机的图像"预测"出另一台相机应该看到什么。如果预测出来的图像和真实图像越像,说明距离估算越准确。
训练信号来自三种来源,它们相互补充,共同驱动网络学习准确的深度估算。
第一种是空间监督:同一时刻,相邻摄像头拍摄的有重叠部分的图像之间,用预测的深度和已知的相对位置,把一张图"变换"到另一张图的视角下,然后比较变换后的图和真实图的差异。由于相机之间的距离是精确已知的,这种监督信号天然携带了绝对尺度信息,使网络能直接输出以米为单位的真实深度值,而不只是相对远近关系。
第二种是时间监督:同一个摄像头在相邻时刻(前一帧或后一帧)拍摄的图像之间,结合车辆的运动估计,进行类似的"视角变换比较"。由于相邻摄像头的重叠区域很小,仅靠空间监督不足以覆盖所有图像区域,时间监督则弥补了这个缺口。
第三种是时空联合监督:不同摄像头、不同时刻的图像之间进行交叉比较,进一步增加了监督信号的覆盖范围,帮助网络学习到更多三维场景的一致性约束。
为了估算车辆在时序帧之间的运动,研究团队还设计了一个轻量级的姿态网络(pose network)。它只处理前置摄像头的两帧图像,预测出前置摄像头的运动变换,再根据已知的各摄像头相对位置,推算出其余摄像头的运动——这样既节省了计算资源,又保证了所有摄像头共享同一套车体运动模型(因为它们是刚性固定在一起的)。
除了光度一致性损失,训练过程还加入了几个辅助约束:边缘感知的深度平滑损失(让深度图在纹理平滑区域也保持平滑,而在真实边缘处允许突变)、密集深度一致性损失(直接惩罚相邻摄像头重叠区域的深度不一致),以及多视角光度重建一致性损失(确保空间和时空重建的光度预测也相互吻合)。这套组合拳式的损失函数设计,从多个角度向网络施加了"自洽一致"的压力。
五、和同行比较:数字背后的实际差距有多大
研究团队在两个主流自动驾驶数据集上进行了评测。DDAD数据集来自Waymo等机构,提供高质量的六摄像头全景图像和激光雷达深度标注,深度评估范围到200米。nuScenes数据集则来自Motional,同样是六摄像头全景设置,深度评估范围到80米。两个数据集都将图像调整到约384×640像素的分辨率作为输入。
更值得关注的是多视角深度一致性这个专项指标。研究团队专门设计了一个全新的"深度一致性评估指标":在相邻摄像头的重叠区域,找出对应同一现实三维点的像素对,分别把两个摄像头给出的深度值换算成在公共参考坐标系下的三维坐标,然后计算这两个三维坐标之间的距离误差。这个指标直接衡量"两个摄像头对同一个点的三维定位是否吻合"。
在这个指标上,CylinderDepth在nuScenes数据集上以2.69米的一致性误差大幅领先所有2D方法(SurroundDepth为6.33米,CVCDepth为3.02米),甚至超越了VFDepth(3.57米)这个在三维特征空间中处理数据的方法。在DDAD上,CylinderDepth以5.68米领先2D方法(SurroundDepth 7.86米,CVCDepth 6.35米),但略逊于VFDepth的4.82米——后者通过直接在3D体素空间中建立特征表示,在某些场景下能达到更高的三维一致性,代价是约4倍的推理显存占用(VFDepth需要3.3GB,CylinderDepth只需0.7GB)。
内存占用的比较也非常有说服力。训练阶段,CylinderDepth需要约8GB显存,推理阶段只需0.7GB。VFDepth则分别需要11GB和3.3GB,SurroundDepth需要12.6GB和1.4GB。这意味着CylinderDepth在实际部署时对硬件要求更低,更适合在车载计算平台上运行。
从直观的可视化结果来看,CylinderDepth生成的深度图在物体边界处保留了更清晰的轮廓,而不是像其他方法那样在边缘区域产生模糊或异常。在重叠区域的深度一致性误差图上,CylinderDepth呈现的是大面积的深色(低误差),而对比方法则在重叠区域边界附近有明显的亮色高误差区域——正是那些摄像头"各说各话"导致三维重建错位的地方。
六、拆开来验证:每个设计决策的贡献有多少
为了确认各个设计选择确实发挥了作用,研究团队做了一系列精心设计的消融实验——通俗地说,就是"把某个零件拆掉,看整体性能如何变化"。
第一组实验验证圆柱体空间注意力机制本身的价值。研究团队保持网络架构不变,把注意力权重替换成"单位矩阵"——也就是每个像素只看自己,完全不跨视角交换信息。结果有两种情形:一是用这种"自顾自"的方式从头训练,得到的深度一致性明显更差;二是用完整模型训好之后,在推理时临时关闭跨视角注意力,性能同样下降。这证明了注意力机制的贡献不仅仅体现在训练时,在实际推理时对每个新场景的处理同样至关重要——它是一个真正的"实时几何约束",而不只是一个训练技巧。
第二组实验验证"只在最低分辨率特征层应用注意力"这一设计的合理性。对照实验在所有分辨率的特征图上都应用注意力(这也是SurroundDepth的做法),结果是深度图的细节变得模糊,边缘不够锐利,整体精度反而略有下降,而多视角一致性并没有显著提升。这验证了"只在低分辨率全局层面做一致性对齐,高分辨率层面保留原始细节"的设计理念。
第三组实验检验一个更根本的假设:深度不一致的根源是否真的与编码器的架构无关。研究团队把ResNet-18编码器换成了更先进的MambaVision-T编码器,后者在单纯的深度精度上有提升(绝对相对误差降至0.200,明显优于ResNet-18的0.207)。然而,在没有圆柱体注意力机制的情况下,MambaVision版本的深度一致性同样不佳(深度一致性误差6.05米);而一旦加上圆柱体注意力,一致性误差降至5.87米。这个实验有力地说明:换一个更强的编码器,确实能提升整体深度精度,但无法根本解决多视角不一致问题——后者的根源在于缺乏跨视角的信息共享,而不在于编码器本身的能力高低。
说到底,CylinderDepth做的事情可以用一句话来形容:它教会了六个各自为政的摄像头,通过一张"圆柱形地图"找到共同语言,让它们对同一片世界给出协调一致的描述。
这项研究的意义不只停留在技术层面。对于任何依赖多摄像头全景感知的系统——无论是自动驾驶汽车、送货机器人,还是仓库中的无人叉车——深度估计的一致性直接影响到系统对三维场景的理解质量。如果不同摄像头对同一根路灯柱子给出的距离信息互相矛盾,那么后续的避障决策、路径规划乃至三维地图构建都会受到影响。CylinderDepth提供了一种计算效率合理、几何原理清晰的解决路径,且不依赖昂贵的激光雷达标注数据,使其在实际应用中具备较强的落地可行性。
当然,这项研究也坦诚地指出了目前的局限。注意力机制仅在最低分辨率特征层应用,这意味着像素级别的细粒度一致性还有提升空间;研究团队计划在未来工作中探索更精细尺度的距离计算方案。此外,nuScenes数据集中各摄像头拍摄时间并不完全同步(最多相差40毫秒),对于运动中的车辆来说,这意味着不同摄像头捕捉的实际上不是同一时刻的场景,这对依赖"同步多视角"假设的所有方法都构成挑战。研究团队也计划通过将车辆轨迹建模为连续时间函数来改善这一问题,而非像现在这样只处理离散的时间帧。
这项研究以arXiv:2511.16428v2的编号公开,代码也已在论文主页上开源,有兴趣深入了解技术细节的读者可以直接查阅原文和代码库。
---
Q&A
Q1:CylinderDepth和普通多摄像头深度估计有什么区别?
A:普通方法让每个摄像头独立判断深度,导致不同摄像头对同一物体给出不同的距离结果。CylinderDepth把所有摄像头的特征点投影到一个共享的圆柱体坐标系上,让相邻摄像头能按照真实几何距离互相"借鉴"信息,从而让多个摄像头对同一物体的深度估计保持一致。
Q2:CylinderDepth的注意力权重为什么不用网络学习,而是直接用几何距离计算?
A:用学习得到的注意力权重,网络不一定会按照真实的几何关系来分配注意力,可能学到错误的对应关系。而圆柱体坐标上的距离是由已知的摄像头参数精确计算出来的,能保证两个在现实空间中相邻的点在特征交换时也相互影响,不依赖训练数据的质量,在推理时依然有效。
Q3:CylinderDepth需要激光雷达才能训练吗?
A:不需要。CylinderDepth采用自监督训练方式,靠不同摄像头和不同时刻图像之间的"光度一致性"来学习深度——如果深度估算正确,从一个视角变换到另一个视角后的图像应该和真实图像高度吻合。激光雷达数据只在评估阶段用于验证精度,不参与训练过程。