3D结构光相机的技术原理可分为时间码和空间码。上次我们讨论了时间码,今天我们要学习空间码。
(3D视觉)
空间编码
为了满足动态场景的要求,可以使用空间编码结构光,也就是上面提到的随机结构光,即不需要编码信息就可以投射出随机纹理。本文讨论的空间编码结构光是指投射到测量空间的数学编码,在一定范围内不具有可重复性。因此,可以通过邻域获得该点的编码值。这里重建的精度是包含整个空间编码的像素数量(窗口大小)。当然可以。
德布鲁因序列
德布鲁因序列(维基百科)B(k,)是k的符号(比如二进制,k=2是有长度的循环码,是编码值的长度。
例如,在最简单的情况下,使用k=2中的二进制符号(0,1),使用编码值n=2的长度,我们可以得到循环序列[0,0,1,1]。这时我们可以得到四种不同的代码:[0,0],[0,1],[1],[1]。
因此,您可以根据Debruin序列对结构光进行编码。在结构光图像中,上述四个像素的编码为[0,0,1,1],假设结构光斑或光束的宽度为一个像素,大小为2,通过滑动窗口可以得到每个像素的编码值。如果使用极线校正双目图像,只需搜索该线。现在不需要重复编码,只需要在轴上编码即可。此时,结构光是一条直线。
当然,为了提高编码效率,也可以采用投影法对数值进行编码,如灰度图像和彩色图像,而不是0-1编码。例如,对于RGB图像,如果使用二进制代码(即一种颜色和两种状态),则使用颜色组合(0,0,0)。有七种颜色。因此,k=7和k =3可以获得长度为343的带序列。这种顺序的唯一限制是相邻的尺寸条不能是相同的颜色。否则解码算法容易出错。下图显示了五种颜色(k=5,=3)。仅显示使用的结构光序列。
二维空间码
因为Deburin序列是一维码,可以扩展到二维空间,所以对于x * y大小的二维空间,只有w*大小的子窗口中包含的码值才能出现在这个二维码序列中,比如上面的4*6 M数组序列,每个2*2窗口中包含一个唯一的码值。2D码也可以使用RGB信息,并且一些伪随机2D码可以通过相关算法产生。如下图所示,左边显示一个大小为6*6的2D矩阵,每个窗口的大小为3*3。
通过以上对空间编码的讨论,我们也可以看出空间编码结构光的一些优缺点。
优势:
不需要更多的照片,只需要一对图像就可以进行三维重建q .满足动态环境下实时处理的要求。
缺点:
易受噪声干扰:由于反射、光照等原因,部分成像区域的编码信息可能会丢失。
对空间阻隔敏感;
光学精度低于定时编码结构的光学精度。