00:20
Hello,大家好,欢迎来到基于结构光投影三维重建系列课程之格雷玛编码和解码,我是今天的主讲人舒涵。今天的课程将会分为如下几个方面,首先因为我们这是一个系列课程,所以我会对我们这个系列课程的作者进行一个简单的介绍。然后我会和大家聊一聊我们为什么要对弹幕结构光进行编码。然后就进入我们今天最重要的一个主题,就是格雷玛的编码和解码,以及和它相关的图片二值化的方法。
01:02
嗯,最后我会扩展性的聊一聊,就是除了格雷玛这种编码之外的一些,就是和格雷玛还挺像的离散型编码,他们比格雷玛会更加适用于一些特殊的场景。然后大家有需要的话也可以使用,就是他们作为格雷玛的替代。嗯,我们这个系列课程是由我和另外两个小伙伴一起制作的,然后在上期的绪论中,大家已经就是见过吴周杰博士了,吴周杰博士是四川大学的一名博士研究生。它的研究方向为便携式三维测量、高速三维形貌以及形变测量。它在结构光方面也是发表了非常多的文章。然后在接下来的课程中呢,你们还将呃认识邓级博士,邓级博士是天津大学的一名博士研究生,主要研究方向是结构光的传统与信息应用。
02:11
以及无需三维重建的计算深度分割技术。它在结构光方面也是发表了比较多的文章。嗯,这两位博士生都是在,嗯,学术界就是对结构光嗯有比较深入的研究,我自己的话就是主要在企业,我是一名结构光算法工程师,然后主要就是结构光的三维重建,相机标定的视觉算法的实现和优化。嗯,在讲格雷玛的编码和简码之前,我想跟大家聊一聊我们为什么要对单目结构光进行编码。嗯,说到单目结构光系统,我们就其实也挺容易想到双目成像系统的。嗯,所谓双目成像系统,就是说,嗯,我知道空间中的一点在左右相机的位置,我就可以计算出它在空间中的坐标。原因很简单,就是如果我们只有一个相机的话,比如说假设这个物体在P上成像。
03:18
那么。光星OL和PL这条射线上的无数个点都可以在PL上成像,也就是说,光靠PL这个点,我们是没有办法确定物体的具体深度的。但是,如果我们同时知道这个物体。在P成像的同时,在右相机成像的位置的话,我们就可以。知道它的实际位置,因为两条直线相交于一点。一个很简单的道理就是两条直线相交于一点,比如说在这儿,我们如果说嗯,这个物体在P,嗯,左相机成像置是PL,右相机成像位置是这里的话,那它的实际深度是P3。
04:07
如果它沉现在PR这的话,那实际深度就是P。就是说,对于双木沉香来说,最重要的一点就是找出物体。就是同一物体在左右两个相机的实际成像位置。但是对单幕结构光系统来说,我们是没有右相机这个东这个事情的,就是但是我们有一个投影仪,它虽然不能像相机那样捕获物体的图像。但是他可以投影光。也就是说,如果我们知道这个投影仪发出来的光打在物体上是从哪个像素发出来的话。我们就等价的知道了,哦,这个物体在投影仪上的成像位置。所以在弹幕结构光系统中,我们可以把投影仪看成一个逆向机,然后通过结构光编码的形式,知道打在物体表面的光是由投影仪哪一个像素发出来的。
05:14
从而就可以利用双目成像的一系列原理都可以用来算出它的实际位置。嗯,单木结构光的这个成像原理,其实不仅仅是说一定要类比双目成像,还有很多就是形变原理什么的,但是双目成像无疑是非趁理解,就是我们为什么要对结构光进行编码的。好,我们来讲讲今天的主题,格雷玛。格雷玛本身是一种二进制嘛,只是和我们常见的二进制嘛有所不同。它最大的特点就是相邻格雷玛编码只有一位不同。
06:03
我们可以看到这里,这里是一个三位的格雷玛。任意两个相邻的十进制数,格雷玛只会有一位不同。看这。三和四它唯一的不同就是它最高位。六和七它唯一的不同就是最低位就是相邻编码,它只有一位不同这个特点。就给我们带来了它的很大的一个优点,就是在解码的时候,它会比我们常见的二进制码更稳定,更不容易出错。嗯,怎么理解这个事情呢?我们来看我们的编码图片。在这里我把这个十进制,就是这里两个格雷玛编码和二进制编码做成了我们实际的投影图片。嗯,我们可以看,就是对二进制编码来说,我们可以这样看,因为我们是要对投影仪的实际像素列进行编码。
07:04
所以我们第一张图片其实。在第一列,它代表的是这一列的最高位。也就是说000它编码了零列,它是一种时序编码,就是你要投三张图片,然后分别解出对应的位,然后最终解出啊这个对应的实际列数。我们要这么看啊,001就对应的第一列,格玛也是这样,就是000对应的第零列,然后001对应的是第一列。然后以此类推。有了这两个图,我们其实就很容易看出来格雷玛比二进制的一个优势。首先我们知道。对于。格雷玛。来说的话。它的明暗交界处变化更少,什么叫明暗交界处,交界处变化更少,就是说我们看二进制嘛。
08:04
他。这我们看就看这两张图片吧,二进制嘛,它的这个黑白诶。他的。它的黑白交界的地方。是有1234567,而格雷玛只有1234,也就是说很明显在这张图片里面,二进制编码的黑白交界处是比格雷玛多不少,这张图片也是比这张图片要多的。黑白交界处带来什么影响呢?主要是在解码的时候。我们知道我们是最终是要把这个编码光投影到实际的场景中,然后捕捉到场景中的结构光。然后对。图片进行解码的,解码有一个很重要的环节就是二值化。
09:01
一般的场景下。在这种就是。全黑或者全全亮的这个地方是不太容易解码出错的。而在这种黑白边界的地方。是。会比较容易出错,因为我们在黑白边界的地方,它不像我们这种标准图一样,一下就从黑跳变到白,它可能就是会有一个渐变的状态,而且这个渐变就是说相对来说阈值是很难去判定的,因为它可能就是处在那个黑。比如说它就处在一个灰度为127,这种很中间的这种灰度值,你很难去判断这个这个边界处的这个地方,它到底是属于黑还是属于白。然后还有物体纹理本身的影响也会导致就是边界处就更难辨认。所以如果明暗交界处。越少。
10:00
我们解码出错的概率就越小。然后呢,还第二个优点,就是说最细的条纹宽度更宽。怎么理解这个事情,还是看到我们这个图。比如说二进制嘛,它其实条纹宽度是非常稳定的,如果说这是一个像素列的话,这个条纹宽度就是一个像素列,对吧?但是对格雷玛来说,显然它是大部分都是占两个像素列的,只有在这种最边缘的时候,它才占一个像素链。这意味着什么呢?这意味着其实是在应用中,也是在应用中的一个优势,我们的物体,它本身的深度不是说唯一的,它离投影是有近有远的。在可能在某一个位置,它是投影仪对焦对的最好的,非常的清晰。
我来说两句