- 07/31
- 2025
-
QQ扫一扫
-
Vision小助手
(CMVU)
立体深度估计在机器人技术、AR/VR和工业检测中至关重要,它为诸如箱体拾取、自动导航和质量控制等任务提供了精确的3D感知。Teledyne IIS的Bumblebee X立体相机既具备高精度,又能够提供实时性能,能够在1024×768分辨率下以38帧每秒(FPS)的速度生成详细的视差图。
Bumblebee X基于半全局块匹配(SGBM)算法,在纹理丰富的场景中表现稳定。然而,像许多传统立体方法一样,在低纹理或反射表面上,特别是没有图像投影仪的情况下,Bumblebee X可能会出现视差缺失或深度数据不完整的情况。
近期,深度学习(DL)技术的进展为提高视差精度、准确性和完整性提供了有力的解决方案。本文将通过实际测试,探讨这些方法的优势、局限性,并分析它们在嵌入式系统中的适用性。
在评估这些方法之前,我们首先需要了解传统立体技术所面临的实际挑战。
立体深度估计:挑战与局限性
传统的立体算法,如内置SGBM,提供了快速高效的视差估计,非常适合嵌入式和实时应用。这些方法在表面纹理良好的场景中表现稳定,不需要GPU加速或训练数据。
然而,在更复杂的环境中,尤其是具有反射或低纹理表面的场景中,它们可能会生成不完整或不准确的深度图。
以下的仓库场景说明了这些挑战。长且重复的货架减少了视差线索,而光滑的环氧地板反射了周围光线,顶灯的镜面高光则引入了匹配错误。
场景左右两侧出现空白区域是因为SGBM算法的MinDisparity被设置为0,并结合256级视差范围,导致系统无法测量超出可测深度窗口的物体,特别是距离大约1.6米以内的物体。为了捕捉这些近场物体,用户可以选择增加最小视差值(Scan3D坐标偏移)或切换到四分之一分辨率模式。
如以上视差图像所示,SGBM在内置视差引擎方面的缺陷十分明显。
为了解决这些问题,在立体视觉应用中常用两种互补的深度学习方法:
混合深度学习方法:这种方法通过轻量化神经网络模型增强SGBM生成的初始视差图。CVLAB-Unibo的神经视差细化模型就是一个例子,通过利用空间和颜色线索来提高深度完整性,减少匹配伪影。作为一种混合方法,它在提高精度的同时保持了计算效率,特别适合实时或嵌入式系统。
端到端深度学习方法:这种方法采用端到端的深度学习模型(如 Selective-Stereo 和 FoundationStereo),直接从立体图像对中计算视差,而不依赖传统的SGBM算法。这些网络从大规模数据集中学习语义和上下文特征,使其即使在复杂的场景中(如遮挡或反射表面)也能生成密集、准确的视差图。这一方法的缺点是对GPU要求较高,因此可能限制其在实时或资源受限环境中的使用。
接下来的章节将深入分析每种方法,评估它们在实际场景中的精度、运行表现和覆盖效果。
混合深度学习方法(神经视差细化模型)
· 方法描述
CVLAB-Unibo的神经视差细化方法通过传统方法(如SGBM)提升生成的现有视差图质量。该方法使用带有VGG-13骨架的深度卷积神经网络(CNN),并采用U-Net架构,旨在:根据空间和色彩一致性填补视差空白、通过学习的空间背景信息锐化边缘、减少常见的立体匹配伪影,如条纹。
· 网络架构
神经细化网络处理两个输入:来自立体相机的左侧RGB图像、Bumblebee X生成的原始视差图。
U-Net架构利用跳跃连接有效地将粗略的视差估计与来自RGB输入的细节融合,显著提高深度图的完整性。
· 性能
NVIDIA RTX 3060 GPU上神经视差细化的推理速度约为3FPS,适用于异步实时增强。
在同一个仓库场景中,我们通过将从内置视差引擎获得的输出与左侧校正图像一起输入到神经视差细化模型中,以优化视差。结果如下所示:
从视差图像中可以看出,应用该网络后,仓库场景中的空洞减少,地面匹配误差也得到了修正。然而,由于细化依赖于SGBM的先验数据,在SGBM没有数据的区域(如场景的左右边缘),仍然可以观察到一些空洞。
若要重现这些结果,请访问GitHub上的深度学习示例。
端到端深度学习方法(Selective-Stereo)
· 方法描述
Selective-Stereo和Foundation-Stereo是两种先进的深度学习框架,直接从立体图像对计算视差图,无需依赖传统的匹配算法(如SGBM)。它们在架构中采用了自适应频率选择,将高频边缘与低频平滑区域区分开,从而优化了不同区域的处理。
· 网络架构
Selective-Stereo基于IGEV-Stereo架构,并结合门控递归单元(GRU)进行迭代细化。该方法根据图像频率特征动态调整计算重点:高频分支增强边缘和细节、低频分支维持平滑区域轮廓并避免过拟合。
· 性能
尽管这种方法具有高精度和完整性,但计算量大,基于NVIDIA RTX 3060 GPU的帧率约为0.5FPS。
基于以下所示结果,端到端深度学习方法提供了较为广泛的视差覆盖范围,并且能保持精细的结构细节:例如,清晰渲染的天花板灯具,同时避免了由灯具反射引起的斑点伪影。
总体而言,完全端到端的视差估计网络在视差覆盖和结构细节保留方面优于原始内置SGBM输出和神经细化系统流程,尽管其运行时间较长,且对更强大的GPU有一定要求。
其他考虑因素
与内置视差结果类似,距离小于1.6米的表面(超出0-256视差范围)无法准确处理。右下角的储物箱就展示了这一问题:由于它距离相机非常近,应该位于极红范围内,但网络为其分配了较小的视差,导致其被置于比实际更远的位置。这种局部误差会破坏深度图,在该区域生成不准确的点云。
某些深度学习模型提供了调整最小视差的选项,从而正确捕捉近距离物体,而其他模型则不支持此功能。如果所选的深度学习模型不允许调整最小视差,可以将右图像向左平移所需的最小视差像素,再将该值加回每个输出视差中。
另外,有些深度学习模型会限制其操作的视差范围。在这种情况下,需要调整输入的校正图像大小,以适应相同的可测深度范围,但这会牺牲一些深度精度。
许多深度学习模型还需要根据特定场景进行微调(尽管高级的“基础”立体网络可以实现零样本泛化),而SGBM和基于SGBM的混合模型则无需任何调优,并能在各种场景中提供可靠的即用型性能。
比较实验分析
我们使用已知距离为5米的随机图案进行了实验基准测试。相机以1024×768分辨率(四分之一模式)运行。在精度测试中,定义了感兴趣区域(ROI),确保它完全位于纹理清晰的图案部分,只有明确定义的特征才会影响深度统计。覆盖评估分为两个阶段:首先评估纹理区域,然后评估相邻的无纹理光滑白色表面。下图展示了所得到的视差图。
测试结果包括:
观察结果
神经细化方法显著提高了视差的完整性,略微增加了中间误差。Selective-Stereo提供了出色的完整性和较小的偏差,表明其在精度要求较高的应用中表现良好。
实际应用指南
针对特定应用场景的建议:高速实时应用(≥30FPS):使用Bumblebee X内置的SGBM算法,必要时结合图案投影仪,以提高完整性。平衡覆盖与延迟:将神经视差细化与内置SGBM异步结合,增强覆盖范围。出色精度与完整性:当低帧率可接受且高精度至关重要时,选择Selective-Stereo。
结论
深度学习方法在复杂环境中显著提升了Bumblebee X内置SGBM的表现。轻量级细化方法能够在普通硬件上进行实时改善,而端到端网络则在速度要求较低时提供更高的质量。与许多受限于固定系统流畅或缺乏内置处理的立体相机不同,Bumblebee X同时支持这两种方法,赋予用户在精度、速度和计算能力之间优化的灵活性,适用于各种应用场景。