格雷码结构光简介

01

 时域编码

即编码一系列的结构光图案,依次投射到目标物体上。首先需要生成一系列编码图案。编码图案随着投射时间的推进而变化,并且这一系列的图案需要全部依次投影,以确保每一个像素对应的码是唯一的。

时域图案编码信息的方式有很多,常见的包括二进制码(binary code)和格雷码(gray code)。两种方法都需要分别编码X轴、Y轴方向。

02

二进制码(Binary Code)

上面说到时域结构光编码需要对行、列分别进行。对某一个像素点来说,二进制码即,将该像素点所在的行数m,列数n转换成二进制,二进制的每一位编码到每一幅pattern中该像素点对应的位置。(即,m转换成二进制数,该二进制数最终的位数等于行的pattern数)。以像素点(209,660)为例,其转换成二进制为(0011010001,1010010100)

该像素点的编码为:图表示在一系列的pattern中,该像素点处的值。

上面的是以单个像素点举例,整个pattern系列长什么样呢,以分辨率为32*32的投影仪为例,按照上述编码方式,得到一系列pattern:

将以上编码图案依次投射到被测物体上,使得每一个像素点最终的码值都是唯一的。

03

格雷码(Gray Code)

格雷码与二进制码最大的不同是:格雷码相邻的两个像素点的码值,只有一位是不同的。以8*8分辨率为例,以列为例:(a)代表二进制码(b)代表格雷码

格雷码可以通过下述方法得到:首先通过之前的办法得到二进制码,后根据下图的异或运算得到

格雷码相对于二进制码的优势在于:在最后的pattern中,二进制码的最大频率(或者说是最小颜色变化间隔)是每一个像素,而格雷码的频率是每两个像素,我们希望最大频率时,最小颜色变化间隔尽可能大一些,这对投影和采图都是有好处的。

04

 双目匹配

本文以介绍格雷码为主,故不在此详细讲述双目原理。

匹配原则:根据双目视差法,找到左右目拍摄到的同一个点,即可获得深度信息。

我们通过投射结构光,对于每一个投影仪像素点,其最终的码值是唯一的。这便使得双目匹配成为可能。

05

 结构光编码

投影仪编码结构光,使得每个像素具有独特的码值,两相机拍摄,需要解码,确定每个像素的信息,进而完成匹配。

解码是编码的逆序。包括三步:

1)根据灰度值得到当前像素点的格雷码;

2)格雷码转换成二进制码;

3)二进制码转换成十进制码(即当前像素所在的行数或者列数)。

06

格雷码编码图案示例

投影仪分辨率:2014*768

NpatternsCol=ceilf(log1024/log2)=10;

NpatternsRow=ceilf(log768/log2)=10;

水平、垂直各生成十张pattern。

下面展示几张垂直图案

资源

大场景三维点云的语义分割综述

PCL中outofcore模块---基于核外八叉树的大规模点云的显示

基于局部凹凸性进行目标分割

基于三维卷积神经网络的点云标记

点云的超体素(SuperVoxel)

基于超点图的大规模点云分割

基于鱼眼相机的SLAM方法介绍

点云学习历史文章大汇总

(0)

相关推荐