复杂结构元件的偏折测量技术
结构光三维测量
目前对于三维视觉来说,有很多种技术,例如双目/多目视觉法、TOF法、散斑法、结构光等等,不同的方法有着各自不同的应用场景和范围。对于工业的产品测量、识别,检测来说,结构光方法是目前比较主流的方法。结构光方法拥有高精度、高密集点云、高速的优点,适用于三维重建、缺陷检测、智能抓取、人脸识别、视觉导航等一系列工作。
结构光主要分为点、线、面三类测量结构,本博客主要从面结构光(数字光栅投影测量)阐述其测量原理和重建效果,面结构光主要投影光栅图像到测量物体表面,然后光栅经过物体面型调制之后被相机采集,通过一系列解相位,然后经过系统标定好的参数,将相位转换为三维点云。
单目测量系统
单目测量系统,就是一个相机+一个投影仪的测量结构,该方法需要对投影仪进行标定,首先对光栅进行投影,然后求解相位信息,再把相位转换到三维点云。对于求解相位信息有很多种成熟的方法:例如(1)格雷码方法(2)多频外差方法(3)倍频法(4)phase-coding法等等。将相位转化为三维点云也有很多经典的方法,例如(1)相位差法(2)东南大学达飞鹏老师的8参数方法(3)反向相机方法。后两种方法最为灵活,应用相对也更为广泛,下面会具体进行描述。
双目测量系统
双目测量系统,就是双目相机+一个投影仪的测量系统,该方法主要利用相位信息进行双目匹配,然后实现三维重建。该方法的好处就是对投影仪无需进行标定,且现有双目测量有很多优秀的库函数可以调用,例如Opencv中包含很多标定、匹配、畸变校正、立体校正的代码。
单目系统测量实例
下面结合具体的测量实例进行详细介绍,包含光栅生成,相位解包,和三维点云转换。
光栅生成
本次我们采用四步相移+格雷码(在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code))的方法进行物体测量,四步相移为了求解包裹相位,但是包裹相位是一个一对多的映射函数,因此需要利用格雷码将包裹相位展开,求取一个一对一映射函数的绝对相位。四步相移的光栅的形式如下:
格雷码
在一组数的编码中,若任意两个相邻的代码只有一位二进制数不同,则称这种编码为格雷码(Gray Code),另外由于最大数与最小数之间也仅一位数不同,即“首尾相连”,因此又称循环码或反射码。格雷码(Gray Code)又称Grey Code、葛莱码、格莱码、戈莱码、循环码、反射二进制码、最小差错码等。
格雷码有多种编码形式
十进制数 | 4位自然二进制码 | 4位典型格雷码 | 十进制余三格雷码 | 十进制空六格雷码 | 十进制跳六格雷码 | 步进码 |
0 | 0000 | 0000 | 0010 | 0000 | 0000 | 00000 |
1 | 0001 | 0001 | 0110 | 0001 | 0001 | 00001 |
2 | 0010 | 0011 | 0111 | 0011 | 0011 | 00011 |
表中典型格雷码具有代表性。若不作特别说明,格雷码就是指典型格雷码,它可从自然二进制码转换而来。
为什么要使用格雷码?
格雷码是一种具有反射特性和循环特性的单步自补码,其循环和单步特性消除了随机取数时出现重大错误的可能,其反射和自补特性使得对其进行求反操作也非常方便,所以,格雷码属于一种可靠性编码,是一种错误最小化的编码方式,因此格雷码在通信和测量技术中得到广泛应用。
格雷码属于可靠性编码,是一种错误最小化的编码方式。因为,虽然自然二进制码可以直接由数/模转换器转换成模拟信号,但在某些情况,例如从十进制的3转换为4时二进制码的每一位都要变,能使数字电路产生很大的尖峰电流脉冲。而格雷码则没有这一缺点,它在相邻位间转换时,只有一位产生变化。它大大地减少了由一个状态到下一个状态时逻辑的混淆。由于这种编码相邻的两个码组之间只有一位不同,因而在用于方向的转角位移量-数字量的转换中,当方向的转角位移量发生微小变化(而可能引起数字量发生变化时,格雷码仅改变一位,这样与其它编码同时改变两位或多位的情况相比更为可靠,即可减少出错的可能性。
在数字系统中,常要求代码按一定顺序变化。例如,按自然数递增计数,若采用8421码,则数0111变到1000时四位均要变化,而在实际电路中,4位的变化不可能绝对同时发生,则计数中可能出现短暂的其它代码(1100、1111等)。在特定情况下可能导致电路状态错误或输入错误。使用格雷码可以避免这种错误。
格雷码是一种绝对编码方式,典型格雷码是一种具有反射特性和循环特性的单步自补码,它的循环、单步特性消除了随机取数时出现重大误差的可能,它的反射、自补特性使得求非常方便。由于格雷码是一种变权码,每一位码没有固定的大小,很难直接进行比较大小和算术运算,也不能直接转换成液位信号,要经过一次码变换,变成自然二进制码,再由上位机读取。典型格雷码是一种采用绝对编码方式的准权码,其权的绝对值为2^i-1(设最低位i=1)。格雷码的十进制数奇偶性与其码字中1的个数的奇偶性相同。
应用
格雷氏编码与相位移在三维曲面量测:利用格雷码投射在微型曲面做量测 一个非接触式、投影的方法光学测量。
在化简逻辑函数时,可以通过按格雷码排列的卡诺图来完成。
角度传感器:汽车制动系统有时需要传感器产生的数字值来指示机械位置。如图是编码盘和一些触点的概念图,根据盘转的位置,触点产生一个3位二进制编码,共有8个这样的编码。盘中暗的区域与对应的逻辑1的信号源相连;亮的区域没有连接,触点将其解释为逻辑0。使用格雷码对编码盘上的亮暗区域编码,使得其连续的码字之间只有一个数位变化。这样就不会因为器件制造的精确度有限,而使得触点转到边界位置而出现错误编码。
九连环问题:中国的古老益智玩具九连环有着和格雷码完全相同的数学模式,外国一款名为spin out的玩具也是运用相同的数学模式。智力玩具九连环的状态 变化符合格雷码的编码规律,汉诺塔的解法也与格雷码有关。九连环中的每个环都有上下两种状态,如果把这两种状态用0/1来表示的话,这个状态序列就会形成一种循环二进制编码(格雷码)的序列。所以解决九连环问题所需要的状态变化数就是格雷码111111111所对应的十进制数341。
二进制格雷码的生成
问题:产生n位元的所有格雷码字符串表示。
格雷码(Gray Code)是一个数列集合,每个数使用二进位来表示,假设使用n位元来表示每个数字,任两个数之间只有一个位元值不同。
例如以下为3位元的格雷码: 000 001 011 010 110 111 101 100 。
如果要产生n位元的格雷码,那么格雷码的个数为2^n。
直接排列
生成二进制格雷码方式1:以二进制为0值的格雷码为第零项,第一项改变最右边的位元,第二项改变右起第一个为1的位元的左边位元,第三、四项方法同第一、二项,如此反复,即可排列出n个位元的格雷码。
假设原始的值从0开始,格雷码产生的规律是:
第一步,改变最右边的位元值;
第二步,改变右起第一个为1的位元的左边位元;
第三步,第四步重复第一步和第二步,直到所有的格雷码产生完毕(换句话说,已经走了(2^n) - 1 步)。
用一个例子来说明:
假设产生3位元的格雷码,原始值位 000
第一步:改变最右边的位元值: 001
第二步:改变右起第一个为1的位元的左边位元: 011
第三步:改变最右边的位元值: 010
第四步:改变右起第一个为1的位元的左边位元: 110
第五步:改变最右边的位元值: 111
第六步:改变右起第一个为1的位元的左边位元: 101
第七步:改变最右边的位元值: 100
镜射排列
生成二进制格雷码方式2:n位元的格雷码可以从n-1位元的格雷码以上下镜射后加上新位元的方式快速的得到,如图所示。
如果按照直接排列规则来生成格雷码,是没有问题的,但是这样做太复杂了。如果仔细观察格雷码的结构,我们会有以下发现:
1、除了最高位(左边第一位),格雷码的位元完全上下对称(看下面列表)。比如第一个格雷码与最后一个格雷码对称(除了第一位),第二个格雷码与倒数第二个对称,以此类推。
2、最小的重复单元是 0 , 1。
000
001
011
010
110
111
101
100
所以,在实现的时候,我们完全可以利用递归,在每一层前面加上0或者1,然后就可以列出所有的格雷码。
比如:
第一步:产生 0, 1 两个字符串。
第二步:在第一步的基础上,正向每一个字符串都分别加上0,然后反向迭代每一个字符串都加上1,但是每次只能加一个,所以得做两次。这样就变成了 00,01,11,10 (注意对称)。
第三步:在第二步的基础上,再给每个字符串都加上0和1,同样,每次只能加一个,这样就变成了 000,001,011,010,110,111,101,100。这样就把3位元格雷码生成好了。
如果要生成4位元格雷码,我们只需要在3位元格雷码上再加一层0,1就可以了: 0000,0001,0011,0010,0110,0111,0101,0100,1100,1101,1110,1010,0111,1001,1000.
也就是说,n位元格雷码是基于n-1位元格雷码产生的。
格雷码和二进制码的转换
自然二进制码与格雷码的对照表:
十进制数 | 自然二进制数 | 格雷码 | 十进制数 | 自然二进制数 | 格雷码 |
0 | 0000 | 0000 | 8 | 1000 | 1100 |
1 | 0001 | 0001 | 9 | 1001 | 1101 |
2 | 0010 | 0011 | 10 | 1010 | 1111 |
3 | 0011 | 0010 | 11 | 1011 | 1110 |
4 | 0100 | 0110 | 12 | 1100 | 1010 |
5 | 0101 | 0111 | 13 | 1101 | 1011 |
6 | 0110 | 0101 | 14 | 1110 | 1001 |
7 | 0111 | 0100 | 15 | 1111 | 1000 |
二进制码转换成二进制格雷码
自然二进制码与格雷码的对照表:
十进制数 | 自然二进制数 | 格雷码 | 十进制数 | 自然二进制数 | 格雷码 |
0 | 0000 | 0000 | 8 | 1000 | 1100 |
1 | 0001 | 0001 | 9 | 1001 | 1101 |
2 | 0010 | 0011 | 10 | 1010 | 1111 |
3 | 0011 | 0010 | 11 | 1011 | 1110 |
4 | 0100 | 0110 | 12 | 1100 | 1010 |
5 | 0101 | 0111 | 13 | 1101 | 1011 |
6 | 0110 | 0101 | 14 | 1110 | 1001 |
7 | 0111 | 0100 | 15 | 1111 | 1000 |
二进制码转换成二进制格雷码
二进制码转换成二进制格雷码,其法则是保留二进制码的最高位作为格雷码的最高位,而次高位格雷码为二进制码的高位与次高位相异或,而格雷码其余各位与次高位的求法相类似。
二进制码 ----> 格雷码(编码):从最右边一位起,依次将每一位与左边一位异或(XOR),作为对应格雷码该位的值,最左边一位不变(相当于左边是0)。
Note: 这样做可行的原因,是因为二进制码每次+1时最多只有一个相邻的两个bit对的异或值会发生改变。
三维点云重建
三维重建(3D Reconstruction)是指利用二维投影恢复物体三维信息的数学过程和计算机技术,包括数据获取、预处理、点云拼接和特征分析等步骤。三维重建过程:图像获取、摄像机标定、特征提取、立体匹配和三维重建。
三维数据测量即对物体的三维数据进行测量,根据三维数据测量采用的原理或媒介的不同可以将其分为两大类:接触式测量和非接触式测量。接触式测量是在测量时与被测物体相接触的测量方法;非接触式测量则指在测量时与被测物体不接触的测量方法。
光学三维测量
光学三维测量主要分为被动三维测量(无结构光)和主动三维测量(有结构光)两种:
主动三维测量
- 结构光的作用:增加三维物体的纹理信息;
- 双目视觉系统:将投影仪当作一个逆向的相机,通过建立投影仪图像和相机图像的对应关系,将投影仪标定转换为成熟的相机标定,从而将单相机结构光三维测量系统转换为经典的双目视觉系统;
- 主要测量方法:激光扫描法(LS)、傅立叶变换轮廓术(FTP)、相位测量轮廓术(PMP)、彩色编码条纹投影法(CFP)等。
基于PMP的结构光三维测量技术
本文所讲的三维测量方法用的是主动三维测量中的相位测量轮廓术(PMP)。测量时,投影仪将一幅或一组正弦光栅条纹投影到空间中,形成投影条纹,摄像机拍摄到被测物体表面,得到条纹图像,根据图像获得相位分布情况进行三维重建。整体架构参见附录《结构光三维测量原理图》
结构光生成与投射
- 水平方向光栅条纹图像12幅:不同频率3组,每组不同相移的4幅图像
- 竖直方向光栅条纹图像12幅:不同频率3组,每组不同相移的4幅图像
结构光生成
光栅非正弦性
由于环境光的影响,投影光栅在波峰和波谷处出现平台现象。
相位计算
相位主值计算:相位主值即相对相位值,本文采用标准的四步相移法计算光栅图像的相位主值。利用频率相同四幅光栅图像计算出一幅相位主值图像,四幅光栅图像的光强表达式为:
相位展开
相位展开,又称解包裹,计算其绝对相位值。本文利用 三频外差原理 计算其绝对相位值。最终,根据上步计算出的3幅水平相位主值图像计算出1幅水平绝对相位值图像,根据上步计算出的3幅竖直相位主值图像计算出1幅竖直绝对相位值图像。
DMD图像坐标计算
根据一个方向的绝对相位值,可以确定DMD图像中的一条垂直线或水平线;则根据水平和垂直两个方向的绝对相位值,可以确定DMD图像中的一个点。
添加彩色纹理
利用预先计算出的 白平衡参数 和 R、G、B灰度图像,根据三原色加法原理,得到彩色图像,再使用该彩色图像渲染三维点云。
三维点云处理
利用PCL(Point Cloud Library)库对三维点云进行处理。
系统精度评估
标定精度评估
使用标定出的参数计算出所有标定点的三维坐标,然后计算其与实际坐标的距离。
测量精度评估
- 平面测量误差
- 球体空间误差:球心距、单个球的球面误差
被动三维测量
主要过程:多幅二维图像–>计算出特征点–>重建三维特征点–>特征点滤波–>得到三维模型。
如果是采用反向相机法将相位信息转化为三维点云,首先对圆形标定板进行了重建,其效果如下图所示,
利用50w分辨率相机对瓶盖进行三维重建,其纹理信息清晰可见
然后采用500w高分辨率相机对雕像进行三维重建
3D成像方法 汇总--- 双目视觉、激光三角、结构光、ToF、光场、全息
主要常用有:
1、双目立体视觉法(Stereo Vision)
2、激光三角法(Laser triangulation)
3、结构光3D成像(Structured light 3D imaging)
4、飞行时间法ToF(Time of flight)
5、光场成像法(Light field of imaging)
6、全息投影技术(Front-projected holographic display)
1、双目立体视觉法:
就和人的两个眼睛一样,各种两个摄像头的手机大都会用这种方法来获得深度信息,从而得到三维图像。但深度受到两个摄像头之间距离的限制。
视差图:双目立体视觉融合两只眼睛获得的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作视差(Disparity)图像。对于视差的理解可以自己体验一下:将手指头放在离眼睛不同距离的位置,并轮换睁、闭左右眼,可以发现手指在不同距离的位置,视觉差也不同,且距离越近,视差越大。
提到视差图,就有深度图,深度图像也叫距离影像,是指将从图像采集器到场景中各点的距离(深度)值作为像素值的图像。
深度图与点云的区别,点云:当一束激光照射到物体表面时,所反射的激光会携带方位、距离等信息。若将激光束按照某种轨迹进行扫描,便会边扫描边记录到反射的激光点信息,由于扫描极为精细,则能够得到大量的激光点,因而就可形成激光点云。深度图像经过坐标转换可以计算为点云数据;有规则及必要信息的点云数据可以反算为深度图像。 两者在一定条件下是可以相互转化的。
双目立体视觉由三角法原理进行三维信息的获取,即由两个摄像机的图像平面和被测物体之间构成一个三角形。已知两个摄像机之间的位置关系和物体在左右图像中的坐标,便可以获得两摄像机公共视场内物体的三维尺寸及空间物体特征点的三维坐标。所以,双目视觉系统一般由两个摄像机构成。
深度和视差成反比
2、激光三角法
单点激光测距原理:(同属于下面结构光原理)单点激光测距原理图如下图
激光头Laser与摄像头在同一水平线(称为基准线)上,其距离为s,摄像头焦距为f,激光头与基准线的夹角为β。激光头Laser与摄像头在同一水平线(称为基准线)上,其距离为s,摄像头焦距为f,激光头与基准线的夹角为β。假设目标物体Object在点状激光器的照射下,反射回摄像头成像平面的位置为点P。假设目标物体Object在点状激光器的照射下,反射回摄像头成像平面的位置为点P。
线状激光三角测距原理:(同属于下面结构光原理)
将激光光条的中心点P1、成像点P1′、摄像头、激光头作为基准面,中心点P1就符合单点结构光测距。对于任一点(该点不在基准面上),也可由三角测距得出。将激光光条的中心点P1、成像点P1′、摄像头、激光头作为基准面,中心点P1就符合单点结构光测距。对于任一点(该点不在基准面上),也可由三角测距得出。
如上图所示,将成像平面镜像到另一侧。其中P1′,P2′和分别是P1和P2的成像位置,对于点P2、成像点P2′、摄像头、激光头所形成的平面,与基准面存在夹角θ,也符合单点结构光测距。此时的焦距为f′,x的几何意义同单点激光测距原理。如上图所示,将成像平面镜像到另一侧。其中P1′,P2′和分别是P1和P2的成像位置,对于点P2、成像点P2′、摄像头、激光头所形成的平面,与基准面存在夹角θ,也符合单点结构光测距。此时的焦距为f′,x的几何意义同单点激光测距原理。
3、结构光3D成像法
OPPO Find X和IphoneX等手机的前置摄像头纷纷搭载。单从光源本身理解什么是结构光:就是带有一定结构的,而且我们自己是知道光源的这种结构的。
结构光三维视觉是基于光学三角测量原理。光学投射器将一定模式的结构光透射于物体表面,在表面上形成由被测物体表面形状所调制的光条三维图像。该三维图像由处于另一位置的摄像机探测,从而获得光条二维畸变图像。光条的畸变程度取决于光学投射器与摄像机之间的相对位置和物体表面形状轮廓(高度)。直观上,沿着光条显示出的位移(或者偏移)与物体表面高度成比例,扭结表示了平面的变化,不连续显示了表面的物理间隙。当光学投射器与摄像机之间的相对位置一定时,由畸变的二维光条图像坐标便可重现物体表面三维形状轮廓。由光学投射器、摄像机、计算机系统即构成了结构光三维视觉系统。
根据光学投射器所投射的光束模式的不同,结构光模式又可分为点结构光模式、线结构光模式、多线结构光模式、面结构光模式、相位法等。
点结构光模式:(和上面介绍的三角测距一样)如图所示,激光器发出的光束投射到物体上产生一个光点,光点经摄像机的镜头成像在摄像机的像平面上,形成一个二维点。摄像机的视线和光束在空间中于光点处相交,形成一种简单的三角几何关系。通过一定的标定可以得到这种三角几何约束关系,并由其可以唯一确定光点在某一已知世界坐标系中的空间位置。
线结构光模式:(和上面介绍的三角测距一样)线结构光模式是向物体投射一条光束,光条由于物体表面深度的变化以及可能的间隙而受到调制,表现在图像中则是光条发生了畸变和不连续,畸变的程度与深度成正比,不连续则显示出了物体表面的物理间隙。任务就是从畸变的光条图像信息中获取物体表面的三维信息;实际上,线结构光模式也可以说是点结构模式的扩展。过相机光心的视线束在空间中与激光平面相交产生很多交点,在物体表面处的交点则是光条上众多的光点,因而便形成了点结构光模式中类似的众多的三角几何约束。很明显,与点结构光模式相比较,线结构光模式的测量信息量大大增加,而其实现的复杂性并没有增加,因而得到广泛应用。
多线结构光模式:多线结构光模式是光带模式的扩展。如图,由光学投射器向物体表面投射了多条光条,其目的的一方面是为了在一幅图像中可以处理多条光条,提高图像的处理效率,另一方面是为了实现物体表面的多光条覆盖从而增加测量的信息量,以获得物体表面更大范围的深度信息。也就是所谓的“光栅结构模式”,多光条可以采用投影仪投影产生一光栅图样,也可以利用激光扫描器来实现。
面结构光模式:当采用面结构光时,将二维的结构光图案投射到物体表面上,这样不需要进行扫描就可以实现三维轮廓测量,测量速度很快,光面结构光中最常用的方法是投影光栅条纹到物体表面。当投影的结构光图案比较复杂时,为了确定物体表面点与其图像像素点之间的对应关系,需要对投射的图案进行编码,因而这类方法又称为编码结构光测量法。图案编码分为空域编码和时域编码。空域编码方法只需要一次投射就可获得物体深度图,适合于动态测量,但是目前分辨率和处理速度还无法满足实时三维测量要求,而且对译码要求很高。时域编码需要将多个不同的投射编码图案组合起来解码,这样比较容易实现解码。主要的编码方法有二进制编码、二维网格图案编码、随机图案编码、彩色编码、灰度编码、邻域编码、相位编码以及混合编码。
相位法:近年来基于相位的光栅投影三维轮廓测童技术有了很大的发展,将光栅图案投射到被测物表面,受物体高度的调制,光栅条纹发生形变,这种变形条纹可解释为相位和振幅均被调制的空间载波信号。采集变形条纹并且对其进行解调可以得到包含高度信息的相位变化,最后根据三角法原理计算出高度,这类方法又称为相位法。基于相位测量的三维轮廓测量技术的理论依据也是光学三角法,但与光学三角法的轮廓术有所不同,它不直接去寻找和判断由于物体高度变动后的像点,而是通过相位测量间接地实现,由于相位信息的参与,使得这类方法与单纯光学三角法有很大区别。
4、飞行时间法ToF
飞行时间是从Time of Flight直译过来的,简称TOF。其基本原理是通过连续发射光脉冲(一般为不可见光)到被观测物体上,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。TOF法根据调制方法的不同,一般可以分为两种:脉冲调制(Pulsed Modulation)和连续波调制(Continuous Wave Modulation)。脉冲调制:脉冲调制方案的原理比较简单,如下图所示。它直接根据脉冲发射和接收的时间差来测算距离。
连续波调制:实际应用中,通常采用的是正弦波调制。由于接收端和发射端正弦波的相位偏移和物体距离摄像头的距离成正比,因此可以利用相位偏移来测量距离。
目前的消费级TOF深度相机主要有:微软的Kinect 2、MESA的SR4000 、Google Project Tango 中使用的PMD Tech 的TOF深度相机等。这些产品已经在体感识别、手势识别、环境建模等方面取得了较多的应用,最典型的就是微软的Kinect 2。
TOF深度相机对时间测量的精度要求较高,即使采用最高精度的电子元器件,也很难达到毫米级的精度。因此,在近距离测量领域,尤其是1m范围内,TOF深度相机的精度与其他深度相机相比还具有较大的差距,这限制它在近距离高精度领域的应用。
但是,TOF深度相机可以通过调节发射脉冲的频率改变相机测量距离;TOF深度相机与基于特征匹配原理的深度相机不同,其测量精度不会随着测量距离的增大而降低,其测量误差在整个测量范围内基本上是固定的;TOF深度相机抗干扰能力也较强。因此,在测量距离要求比较远的场合(如无人驾驶),TOF深度相机具有非常明显的优势。
5、光场成像法(Light field of imaging)
光场就是光辐射在空间各个位置各个方向的传播。
全光函数:全光函数包含7个变量。
空间位置(3D)、特定方向(2D)、特定时刻(1D)、特定波长(1D)
L=p(x, y, z, θ, φ ,t, λ)
若一条光线通过两个平面UV和ST所产生的交点坐标分别为(u,v)和(s,t),此时就可以通过光场函数L(u,v,s,t)来表示这条光线的分布。L代表光线的强度,而(u,v)和(s,t)共同确定了光线在空间中分布的位置和方向。在四维(u,v,s,t)空间中:一条光线对应光场的一个采样点。
为什么要用这种双平面的方式来确定光场的分布呢?这是因为常规的相机一般都可以简化成两个互相平行的平面——镜头的光瞳面和图像传感器所在的像平面。对于常规的相机来说,每个像素记录了整个镜头所出射光线会聚在一个位置上的强度。
所以,传统的相机只能获取一个像平面的图像。而如果能够获取到整个相机内的光场分布情况,我们就可以将光线重新投影到一个虚拟的像平面上,计算出这个新的像平面上所产生的图像。光场相机的目的就在于对相机的光场分布进行记录。
光场相机工作原理:光场相机由镜头、微透镜阵列和图像传感器组成,其中微透镜阵列是多个微透镜单元所组成的二维阵列。镜头的光瞳面(UV面)和图像传感器的光敏面(XY面)关于微透镜阵列(ST)成共轭关系,也就是说,镜头经过每个微透镜单元都会投影到图像传感器上形成一个小的微透镜子图像。每个微透镜子图像包含了若干个像素,此时各像素所记录的光线强度就来自于一个微透镜和镜头的一个子孔径区域之间所限制的细光束,如下图。
这里的细光束也就是光场的离散采样形式,通过微透镜单元的坐标ST和镜头子孔径的坐标UV即能够确定每个细光束的位置和方向,获得L(u,v,s,t)的分布。
如下图:每个宏像素对应于光场的一个位置采样。宏像素内的每一点对应于光场在该位置的一个方向采样。光场的位置分辨率由采样问隔决定。光场的方向分辨率由每个宏像素内所包含的像元数所决定的。
怎么实现数字对焦:正如前面所说,获得相机内的光场分布后,就可以重新选择一个虚拟的像平面,如上图。
可以选择更远或更近的像面位置,计算出所有的光线在这个平面上的交点位置和能量分布,从而就得到了一幅新像面上的图像。这个过程等价于传统相机的调焦过程,只不过是通过数字计算来实现,因而被称为数字调焦。
利用光场相机的数字调焦能力,只需要一次曝光就可以计算出不同像平面位置的图像,能够实现大光圈条件下的快速对焦。更进一步,利用不同深度平面的图像序列,可以完成全景深图像合成、三维深度估计等功能。
6、全息投影技术
全息投影技术是利用干涉和衍射原理记录并再现物体真实的三维图像的记录和再现的技术。
其第一步是利用干涉原理记录物体光波信息,此即拍摄过程:被摄物体在激光辐照下形成漫射式的物光束;另一部分激光作为参考光束射到全息底片上,和物光束叠加产生干涉,把物体光波上各点的位相和振幅转换成在空间上变化的强度,从而利用干涉条纹间的反差和间隔将物体光波的全部信息记录下来。记录着干涉条纹的底片经过显影、定影等处理程序后,便成为一张诺利德全息图,或称全息照片。
其第二步是利用衍射原理再现物体光波信息,这是成象过程:全息图犹如一个复杂的光栅,在相干激光照射下,一张线性记录的正弦型全息图的衍射光波一般可给出两个象,即原始象(又称初始象)和共轭象。再现的图像立体感强,具有真实的视觉效应。全息图的每一部分都记录了物体上各点的光信息,故原则上它的每一部分都能再现原物的整个图像,通过多次曝光还可以在同一张底片上记录多个不同的图像,而且能互不干扰地分别显示出来。
如下图。离轴全息和同轴全息。
7、其他补充
这里要解释一下,人们看到的舞台上的立体的效果,不是真正的全息,一般来说,只是一层介质膜,被商家炒概念为全息,只是伪全息。
电影院的3D眼镜和全息更是半毛钱关系也没有,原理是利用了人眼的视差。3D眼镜有:互补色、偏振光、时分式。
AR、VR技术和全息关系也不大。
VR虚拟现实就不说了,只是前期把各个位置各个角度的内容录制合成,后期通过传感器探测人的动作来对应的切换内容。
AR增强现实,如下图分两步,先获取周围世界的三维信息
AR增强现实,如下图分两步,先获取周围世界的三维信息,再把虚拟的物体添加到上面,获取三维世界的方法一般是:双目、TOF、结构光。
各种3D眼镜也没有真全息成像技术。
Google Glass:核心器件是:偏振分光棱镜PBS ,和舞台上的效果类似。一层偏振膜来给人三维的感觉。
灵犀科技AR、magic leap 、lumus等核心器件使用:阵列波导,一种光波导,把和偏振分光棱镜类似,增大了视角。
微软HoloLens的核心器件是:全息波导。注意这里的全息波导只是一种导波器件,不是全息技术。光栅是在波导的表面:光栅衍射导光。
难点在哪里?
图像的预处理的问题?
相机标定精度的问题?
特征提取问题?
立体匹配问题?
三维重建算法问题?
改进和优化的地方?
图像的预处理的问题?
- 图像预处理的的问题在哪里?
相机标定精度的问题?
- 相机标定的处理的问题在哪里?
特征提取问题?
- 特征提取的算法的常见问题和优化和改进在哪里?
立体匹配问题?
- 匹配算目前常用的算法和改进的优化的地方在哪里?
三维重建算法问题?
- 三维重建算法和改进的优化的地方在哪里?