基于立体视觉的3D数据

1. 摘要

本白皮书概述了使用立体相机获取深度感知的主要处理步骤。在了解常规技术后,我们将学习Ensenso立体相机特性,以优化传统立体视觉流程。

2. 立体视觉原理

立体视觉的深度感知基于三角测量原理。我们将两台搭载投影光学系统的相机并排放置,使两台相机的视野在所需物距发生重叠。我们通过这两台相机的拍摄,可以获得两个不同角度下的场景图。此设置如图1所示。

图1

在3D空间内,两幅图像中的每一个可见表面点通过两条射线连接至每台相机的投影中心。为获取拍摄场景的3D位置,我们需主要完成两项任务:第一,确定左侧图像中每一个可见表面点在右侧图像中的位置。第二,精确了解相机的成像几何模型,以计算射线交叉点,获得左右相机的关联像素点。我们现假设两台相机彼此紧密连接,所以在校正期间,只需进行一次成像几何模型计算。

图1:示例来源:Middlebury Stereo Dataset(圆锥筒)内含纸质圆锥筒的场景由视觉相机捕获。标记出的投影射线(连接两个圆锥筒和两幅相机图像)作示例用途。

3. 相机标定

在立体标定过程中,首先计算出两台相机的成像几何模型。首先,我们需要一个标定对象,通常为棋盘格或圆点平面标定板(已知大小)。接着我们捕获同步图像对,这些图像对显示两台相机中同一图案的不同位置、方位和距离。之后,我们通过每组图像对中图案圆点的像素位置和其在标定板上的已知位置,计算出所有观察图案的3D姿态和立体相机的精确模型。该模型由每台相机的内参数(如相机的焦距和畸变)和外部参数(即左右相机间的三维旋转和平移)构成。我们可以使用此标定数据对两幅图像中已识别的对应点进行三角测量,并恢复其相对于相机的公制3D坐标。

图2:由搜索对应点的空间匹配出的图像位置仅为一维。第一组图像对:在畸变原始图像中,极线呈曲线状。第二组图像对:消除图像畸变后,极线呈直线状。第三组图像对:校正后,极线与图像轴对齐。可沿图像扫描线求解视差。

4. 深度计算处理步骤

下文三个部分描述了计算图像对中每个像素点的3D位置所需的处理步骤。对于捕获的每个立体图像,这些步骤必须实时执行以获取场景的3D点云或3D表面。

4.1 校正

为对成像点进行三角测量,我们需要确定左右图像中的对应图像部分。考虑左侧图像有一小块图像块,我们可以通过简单搜索整幅右侧图像实现完美匹配。然而这种做法耗时久,无法实时匹配。考虑图3中的示例图像对,在左侧图像顶部可以看到圆锥尖顶。当两台相机并排放置时,我们直觉无需在右侧图像的下半部分搜索该圆锥尖顶。事实上,两台投影相机的成像几何模型将搜索区域限制在右侧图像的一维直线上,即我们所说的极线。

图3:一组立体图像对。我们需要在右侧图像哪个位置搜索该圆锥尖顶?

图2(第一组图像对)显示了部分手动标记点视差以及其极线。在原始相机图像中,极线由于相机光学系统造成的畸变而呈曲线状。沿曲线状极线求解视差不仅耗时久,而且复杂,但我们可以反向应用标定过程中习得的畸变,以此消除图像畸变。得出的无畸变图像便拥有直线状极线(如图2第二组图像对所示)。

尽管极线呈直线状,但在每幅图像中,不同部分的极线却有着不同方向。该现象因图像平面(即相机传感器)既不完全共面又不具相同方向而引起。为进一步加快求解视差,我们可以利用标定过程计算的相机成像几何模型,并对图像进行其他透视转换,从而将极线与图像扫描线2对齐。此步骤称为校正。现在,我们只需简单地在右侧图像相同扫描线上确定最佳匹配位置,即可找到白色圆锥尖顶。仅在校正图像后(如图2第三组图像对所示),执行所有后续处理步骤。

4.2 立体匹配

对于左侧图像中的每个像素点,我们现可在右侧图像(捕获相同对象点)相同扫描线上搜索匹配的像素点。单个像素值一般辨识度不足,无法准确找到对应像素点。因此,我们通常尝试利用像素点周围的小窗格(如像素7x7)与右侧图像同一行中所有可能对应的窗格进行匹配。随着进一步配准,我们无需搜索一整行,只需确定左侧图像像素x坐标左侧的少数像素点,相当于眼睛在聚焦较近物体时,需轻微的视线交叉。这不仅加速匹配过程,而且能限定可进行三角测量的像素点的深度范围。如果匹配结果正确且具有唯一性,则我们将左侧图像的像素点和右侧图像对应像素点关联起来,并以像素点在X轴上的坐标位置偏移量的形式,将关联信息存储在视差图中。

图4

图4图像匹配结果视差图利用左右图像之间像素点偏移量显示深度信息。特定视差值(此处以黑色标记)表明像素点无法在右侧图像中识别。若物体存在遮挡或反射区域,则会出现视差;遮挡或反射区域在两台相机中显示的位置不同。

由于该匹配技术仅使用每个像素点周围的局部信息,因此被称为局部立体匹配。显然,只有当某图像部分与同一扫描线上的其他图像部分差异较大时,我们才能够匹配左右图像的相应区域。因此,局部立体匹配不适用于弱纹理区域或重复纹理区域。另一种技术称为全局立体匹配,同样可以利用邻域信息。该技术不只是通过单独考虑每个像素点(或图像块)来寻找匹配目标,而是试图为左右图像中所有像素点迅速找到像素分配方案。全局分配还考虑到大部分图像表面是光滑的,因此相邻像素点通常具有相似深度。对比局部立体匹配技术,全局立体匹配技术更为复杂,需要更高的处理能力,但其所需的表面纹理较少,且结果更为精准(尤其在物体边界处)。

4.3 重新投影

无论使用哪一种匹配技术,左右图像像素点之间都存在关联,并且该关联信息将存储于视差图中。像素偏移量经过编码,转换为视差图中的视差值,其匹配像素点见右侧图像对应位置。图4阐明了视差概念。接着,我们可以利用标定过程中获取的成像几何模型,将基于像素的视差值转换为每个像素的实际公制X、Y和Z轴坐标。这一转换过程称为重新投影。左右图像中每个关联的像素点组成的两条射线可简单相交(如图1所示)。转换得出的XYZ坐标称为点云。点云通常存储为三通道图像,以防止将某像素点的邻域信息传播给图像像素网格。图5展示了点云可视化。

图5:由视差图和相机标定数据生成的3D表面视图。该3D表面根据左侧相机的图像形成纹理(此处转化为灰度图)。

5. 基于应用的特定处理

必须对立体图像对执行上述三个处理步骤,以便获取场景的完整3D点云。然后,需要对点云进行下一步处理,以实现特定应用。可以利用之前习得的点云或CAD模型将场景表面与已知对象进行匹配。如果能够在场景表面图像中定位某零部件的独特位置,则可以计算出该零部件完整的位置信息和旋转度,并且可以利用机器人取件。

6. Ensenso立体相机

如前所述,所有立体匹配技术均需要依靠表面有纹理结构的物体,才能可靠地求解左右图像间的视差。纹理感知直接取决于场景中的照明条件和物体表面纹理,因此,弱纹理表面或反射表面将直接影响生成的3D点云质量。Ensenso通过特殊技术优化传统立体视觉处理,从而获得更优质的深度信息和更为精确的测量结果。

纹理投影

Ensenso立体相机因此额外集成了一个纹理投影单元。在图像捕捉过程中,纹理投影单元通过高度结构化图案增强对象本身的纹理,降低立体匹配造成的模糊效果。即使对象为纯色或纹理模糊的表面,Ensenso相机也能生成稠密型3D点云,这就是所谓的“投影纹理立体视觉”。通过硬件触发信号,投影仪和摄像机实现同步,确保在捕捉移动物体图像时,图像对具有一致性。

FlexView

利用压电驱动器,图案掩模在投影射线中的位置可以较小的步进线性移动。场景物体表面的投影纹理最终也会随之移动,在光亮、深色或光散射的表面生成其他时变信息。在静态场景中,FlexView技术支持捕捉多组具有不同纹理的图像对,获取更多像素点。较高分辨率可以计算精度更高的视差图像和点云,这一点也可以从成像困难的表面采集的3D数据具有更高鲁棒性中得以体现。

NxLib Stereo处理库

NxLib处理库连接多台相机,并实现包括标定在内的整个立体处理流水线。该库融合了纹理投影和全局匹配技术,提供高质量稠密型点云。严格并行的全局匹配算法可使用全部处理器内核来实现实时性能。