3D成像方法 汇总(原理解析)--- 双目视觉、激光三角、结构光、ToF、光场、全息...

点击上方“小白学视觉”,选择加"星标"或“置顶

重磅干货,第一时间送达

3D成像方法汇总介绍:

这里要介绍的是真正的3D成像,得到物体三维的图形,是立体的图像。

而不是利用人眼视觉差异的特点,错误感知到的假三维信息。

原理上分类:主要常用有:

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)

7、补充:戳穿假全息

上面原理之间可能会有交叉。

而激光雷达不是3D成像原理上的一个分类,而是一种具体方法。

激光雷达的3D成像原理有:三角测距法、飞行时间ToF法等。

激光雷达按照实现方式分类有:机械式、混合固态、基于光学相控阵固态 、基于MEMS式混合固态、基于FLASH式固态等。

1、双目立体视觉法:

就和人的两个眼睛一样,各种两个摄像头的手机大都会用这种方法来获得深度信息,从而得到三维图像。但深度受到两个摄像头之间距离的限制。

视差图:双目立体视觉融合两只眼睛获得的图像并观察它们之间的差别,使我们可以获得明显的深度感,建立特征间的对应关系,将同一空间物理点在不同图像中的映像点对应起来,这个差别,我们称作视差(Disparity)图像。对于视差的理解可以自己体验一下:将手指头放在离眼睛不同距离的位置,并轮换睁、闭左右眼,可以发现手指在不同距离的位置,视觉差也不同,且距离越近,视差越大。

提到视差图,就有深度图,深度图像也叫距离影像,是指将从图像采集器到场景中各点的距离(深度)值作为像素值的图像。

深度图与点云的区别,点云:当一束激光照射到物体表面时,所反射的激光会携带方位、距离等信息。若将激光束按照某种轨迹进行扫描,便会边扫描边记录到反射的激光点信息,由于扫描极为精细,则能够得到大量的激光点,因而就可形成激光点云。深度图像经过坐标转换可以计算为点云数据;有规则及必要信息的点云数据可以反算为深度图像。两者在一定条件下是可以相互转化的。

双目立体视觉由三角法原理进行三维信息的获取,即由两个摄像机的图像平面和被测物体之间构成一个三角形。已知两个摄像机之间的位置关系和物体在左右图像中的坐标,便可以获得两摄像机公共视场内物体的三维尺寸及空间物体特征点的三维坐标。所以,双目视觉系统一般由两个摄像机构成。

深度和视差成反比。

3f97f5213bb75258d06774cfefea21f5.png

5c0fce19ef92bda96eaf7845f6759b70.png

8c32934fd7549b265dbb350741d039e7.png

e20269b85102dc1d0c59ebe093b56fda.png

2、激光三角法

单点激光测距原理:(同属于下面结构光原理)

单点激光测距原理图如下图。

d902b5980ea18f7702141ea266acad38.png

激光头Laser与摄像头在同一水平线(称为基准线)上,其距离为s,摄像头焦距为f,激光头与基准线的夹角为β。激光头Laser与摄像头在同一水平线(称为基准线)上,其距离为s,摄像头焦距为f,激光头与基准线的夹角为β。假设目标物体Object在点状激光器的照射下,反射回摄像头成像平面的位置为点P。假设目标物体Object在点状激光器的照射下,反射回摄像头成像平面的位置为点P。 

由几何知识可作相似三角形,激光头、摄像头与目标物体组成的三角形,相似于摄像头、成像点P与辅助点P′。P与辅助点P′。 

设 PP′=x,q、d如图所示,则由相似三角形可得:PP′=x,q、d如图所示,则 由相似三角形可得:f/x=q/s  ==>  q=fs/x    

 X可分为两部分计算:X=x1+x2= f/tanβ + pixelSize* position

其中pixelSize是像素单位大小, position是成像的像素坐标相对于成像中心的位置。

最后,可求得距离d:   d=q/sinβ

线状激光三角测距原理:(同属于下面结构光原理)

将激光光条的中心点P1、成像点P1′、摄像头、激光头作为基准面,中心点P1就符合单点结构光测距。对于任一点(该点不在基准面上),也可由三角测距得出。将激光光条的中心点P1、成像点P1′、摄像头、激光头作为基准面,中心点P1就符合单点结构光测距。对于任一点(该点不在基准面上),也可由三角测距得出。

868516e5821b9442a243b88b8438629b.png

如上图所示,将成像平面镜像到另一侧。其中P1′,P2′和分别是P1和P2的成像位置,对于点P2、成像点P2′、摄像头、激光头所形成的平面,与基准面存在夹角θ,也符合单点结构光测距。此时的焦距为f′,x的几何意义同单点激光测距原理。如上图所示,将成像平面镜像到另一侧。其中P1′,P2′和分别是P1和P2的成像位置,对于点P2、成像点P2′、摄像头、激光头所形成的平面,与基准面存在夹角θ,也符合单点结构光测距。此时的焦距为f′,x的几何意义同单点激光测距原理。

   d'/baseline=f'/x

d′是P2与baseline所成平面上P2到底边的高(类比于单点激光测距原理中的q)。同样x可分为两部分计算d′是P2与baseline所成平面上P2到底边的高(类比于单点激光测距原理中的q)。同样x可分为两部分计算:

  x=f'/tanβ + pixelSize* position

上述中的平面与基准面的夹角为θ上述中的平面与基准面的夹角为θ:

     f'/f=cosθ        tanθ=(|P2'.y-P1'.y|)/f

可求得f′:可求得f′:f'=f/cos(arctan((P2'.y-P1'.y)/f))   

3、结构光3D成像法

OPPO Find X和IphoneX等手机的前置摄像头纷纷搭载。

单从光源本身理解什么是结构光:就是带有一定结构的,而且我们自己是知道光源的这种结构的。

结构光三维视觉是基于光学三角测量原理。光学投射器将一定模式的结构光透射于物体表面,在表面上形成由被测物体表面形状所调制的光条三维图像。该三维图像由处于另一位置的摄像机探测,从而获得光条二维畸变图像。光条的畸变程度取决于光学投射器与摄像机之间的相对位置和物体表面形状轮廓(高度)。直观上,沿着光条显示出的位移(或者偏移)与物体表面高度成比例,扭结表示了平面的变化,不连续显示了表面的物理间隙。当光学投射器与摄像机之间的相对位置一定时,由畸变的二维光条图像坐标便可重现物体表面三维形状轮廓。由光学投射器、摄像机、计算机系统即构成了结构光三维视觉系统。

344155d7bc97dee077ec57205a187dec.png

根据光学投射器所投射的光束模式的不同,结构光模式又可分为点结构光模式、线结构光模式、多线结构光模式、面结构光模式、相位法等。

点结构光模式:(和上面介绍的三角测距一样)如图所示,激光器发出的光束投射到物体上产生一个光点,光点经摄像机的镜头成像在摄像机的像平面上,形成一个二维点。摄像机的视线和光束在空间中于光点处相交,形成一种简单的三角几何关系。通过一定的标定可以得到这种三角几何约束关系,并由其可以唯一确定光点在某一已知世界坐标系中的空间位置。

 a60e495749e1806a0b8da97164b34cd8.png

 线结构光模式:(和上面介绍的三角测距一样)线结构光模式是向物体投射一条光束,光条由于物体表面深度的变化以及可能的间隙而受到调制,表现在图像中则是光条发生了畸变和不连续,畸变的程度与深度成正比,不连续则显示出了物体表面的物理间隙。任务就是从畸变的光条图像信息中获取物体表面的三维信息;实际上,线结构光模式也可以说是点结构模式的扩展。过相机光心的视线束在空间中与激光平面相交产生很多交点,在物体表面处的交点则是光条上众多的光点,因而便形成了点结构光模式中类似的众多的三角几何约束。很明显,与点结构光模式相比较,线结构光模式的测量信息量大大增加,而其实现的复杂性并没有增加,因而得到广泛应用。

ff799f9d035c157b8740554bfba9be77.png

多线结构光模式:多线结构光模式是光带模式的扩展。如图,由光学投射器向物体表面投射了多条光条,其目的的一方面是为了在一幅图像中可以处理多条光条,提高图像的处理效率,另一方面是为了实现物体表面的多光条覆盖从而增加测量的信息量,以获得物体表面更大范围的深度信息。也就是所谓的“光栅结构模式”,多光条可以采用投影仪投影产生一光栅图样,也可以利用激光扫描器来实现。

c14a706795a42ab10c560ec5fd0ad292.png

面结构光模式:当采用面结构光时,将二维的结构光图案投射到物体表面上,这样不需要进行扫描就可以实现三维轮廓测量,测量速度很快,光面结构光中最常用的方法是投影光栅条纹到物体表面。当投影的结构光图案比较复杂时,为了确定物体表面点与其图像像素点之间的对应关系,需要对投射的图案进行编码,因而这类方法又称为编码结构光测量法。图案编码分为空域编码和时域编码。空域编码方法只需要一次投射就可获得物体深度图,适合于动态测量,但是目前分辨率和处理速度还无法满足实时三维测量要求,而且对译码要求很高。时域编码需要将多个不同的投射编码图案组合起来解码,这样比较容易实现解码。主要的编码方法有二进制编码、二维网格图案编码、随机图案编码、彩色编码、灰度编码、邻域编码、相位编码以及混合编码。

9d5136fa6cd8f4071ffd12113b3ffa95.png

8ed5c3e50ce3e59b3c9ebb5a9c14663f.png

相位法:近年来基于相位的光栅投影三维轮廓测童技术有了很大的发展,将光栅图案投射到被测物表面,受物体高度的调制,光栅条纹发生形变,这种变形条纹可解释为相位和振幅均被调制的空间载波信号。采集变形条纹并且对其进行解调可以得到包含高度信息的相位变化,最后根据三角法原理计算出高度,这类方法又称为相位法。基于相位测量的三维轮廓测量技术的理论依据也是光学三角法,但与光学三角法的轮廓术有所不同,它不直接去寻找和判断由于物体高度变动后的像点,而是通过相位测量间接地实现,由于相位信息的参与,使得这类方法与单纯光学三角法有很大区别。

d6141e8dbb3455aeb54ec94ed4bd788d.png

4、飞行时间法ToF

飞行时间是从Time of Flight直译过来的,简称TOF。其基本原理是通过连续发射光脉冲(一般为不可见光)到被观测物体上,然后用传感器接收从物体返回的光,通过探测光脉冲的飞行(往返)时间来得到目标物距离。

TOF法根据调制方法的不同,一般可以分为两种:脉冲调制(Pulsed Modulation)和连续波调制(Continuous Wave Modulation)。

脉冲调制:脉冲调制方案的原理比较简单,如下图所示。它直接根据脉冲发射和接收的时间差来测算距离。

01cc2bca5bc12d69ba544304227e4384.png

连续波调制:实际应用中,通常采用的是正弦波调制。由于接收端和发射端正弦波的相位偏移和物体距离摄像头的距离成正比,因此可以利用相位偏移来测量距离。

bf0cf60d908239793b5adda3705fe49a.png

目前的消费级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, λ)

如图所示:

06a11bf53e8e4703210e736127dd082d.png

若一条光线通过两个平面UV和ST所产生的交点坐标分别为(u,v)和(s,t),此时就可以通过光场函数L(u,v,s,t)来表示这条光线的分布。L代表光线的强度,而(u,v)和(s,t)共同确定了光线在空间中分布的位置和方向。在四维(u,v,s,t)空间中:一条光线对应光场的一个采样点。

为什么要用这种双平面的方式来确定光场的分布呢?这是因为常规的相机一般都可以简化成两个互相平行的平面——镜头的光瞳面和图像传感器所在的像平面。对于常规的相机来说,每个像素记录了整个镜头所出射光线会聚在一个位置上的强度。

所以,传统的相机只能获取一个像平面的图像。而如果能够获取到整个相机内的光场分布情况,我们就可以将光线重新投影到一个虚拟的像平面上,计算出这个新的像平面上所产生的图像。光场相机的目的就在于对相机的光场分布进行记录。

光场相机工作原理:光场相机由镜头、微透镜阵列和图像传感器组成,其中微透镜阵列是多个微透镜单元所组成的二维阵列。镜头的光瞳面(UV面)和图像传感器的光敏面(XY面)关于微透镜阵列(ST)成共轭关系,也就是说,镜头经过每个微透镜单元都会投影到图像传感器上形成一个小的微透镜子图像。每个微透镜子图像包含了若干个像素,此时各像素所记录的光线强度就来自于一个微透镜和镜头的一个子孔径区域之间所限制的细光束,如下图。

76d47b9c7ae38e876e3141992ea3773a.png

这里的细光束也就是光场的离散采样形式,通过微透镜单元的坐标ST和镜头子孔径的坐标UV即能够确定每个细光束的位置和方向,获得L(u,v,s,t)的分布。

如下图:每个宏像素对应于光场的一个位置采样。宏像素内的每一点对应于光场在该位置的一个方向采样。光场的位置分辨率由采样问隔决定。光场的方向分辨率由每个宏像素内所包含的像元数所决定的。

704ba926047c5201a31f26138aecb8f1.png

怎么实现数字对焦:正如前面所说,获得相机内的光场分布后,就可以重新选择一个虚拟的像平面,如上图。

可以选择更远或更近的像面位置,计算出所有的光线在这个平面上的交点位置和能量分布,从而就得到了一幅新像面上的图像。这个过程等价于传统相机的调焦过程,只不过是通过数字计算来实现,因而被称为数字调焦。

利用光场相机的数字调焦能力,只需要一次曝光就可以计算出不同像平面位置的图像,能够实现大光圈条件下的快速对焦。更进一步,利用不同深度平面的图像序列,可以完成全景深图像合成、三维深度估计等功能。

6、全息投影技术

全息投影技术是利用干涉和衍射原理记录并再现物体真实的三维图像的记录和再现的技术。

其第一步是利用干涉原理记录物体光波信息,此即拍摄过程:被摄物体在激光辐照下形成漫射式的物光束;另一部分激光作为参考光束射到全息底片上,和物光束叠加产生干涉,把物体光波上各点的位相和振幅转换成在空间上变化的强度,从而利用干涉条纹间的反差和间隔将物体光波的全部信息记录下来。记录着干涉条纹的底片经过显影、定影等处理程序后,便成为一张诺利德全息图,或称全息照片。

其第二步是利用衍射原理再现物体光波信息,这是成象过程:全息图犹如一个复杂的光栅,在相干激光照射下,一张线性记录的正弦型全息图的衍射光波一般可给出两个象,即原始象(又称初始象)和共轭象。再现的图像立体感强,具有真实的视觉效应。全息图的每一部分都记录了物体上各点的光信息,故原则上它的每一部分都能再现原物的整个图像,通过多次曝光还可以在同一张底片上记录多个不同的图像,而且能互不干扰地分别显示出来。

如下图。离轴全息和同轴全息。

55950f8743f9728718b0cc15b6f3ac5e.png

531e5ed0f3e3e01a96852e2924c4e90a.png

6b3042402209a3f7369d4e4890c65f68.png

7、其他补充

这里要解释一下,人们看到的舞台上的立体的效果,不是真正的全息,一般来说,只是一层介质膜,被商家炒概念为全息,只是伪全息。

2c50c16e93b119e6a2a7185ef96dc0f6.png

电影院的3D眼镜和全息更是半毛钱关系也没有,原理是利用了人眼的视差。3D眼镜有:互补色、偏振光、时分式。

6ecc9cf7f2a73a0d9e112dd88cd26dad.png

AR、VR技术和全息关系也不大。

VR虚拟现实就不说了,只是前期把各个位置各个角度的内容录制合成,后期通过传感器探测人的动作来对应的切换内容。

AR增强现实,如下图分两步,先获取周围世界的三维信息,

f67ef8aba4b7d46bd7baf4913d87ea7e.png

AR增强现实,如下图分两步,先获取周围世界的三维信息,再把虚拟的物体添加到上面,获取三维世界的方法一般是:双目、TOF、结构光。

de9ed128531d78f547a5631b8a20a2d5.png

各种3D眼镜也没有真全息成像技术。

Google Glass:核心器件是:偏振分光棱镜PBS ,和舞台上的效果类似。一层偏振膜来给人三维的感觉。

7b86f2dc358b35511c13b425ffee95e5.png

灵犀科技AR、magic leap 、lumus等核心器件使用:阵列波导,一种光波导,把和偏振分光棱镜类似,增大了视角。

553cb9626177b9574a1d5b1045ebb114.png

微软HoloLens的核心器件是:全息波导。注意这里的全息波导只是一种导波器件,不是全息技术。光栅是在波导的表面:光栅衍射导光。

0927ef1fb20cf8bda9e4d731724ee67d.png

好,就到这里。

上面都是本人学习了解过重中整理记录的,水平有限,难免有些不足疏漏错误,还望大佬多多指正。

好消息!

小白学视觉知识星球

开始面向外开放啦👇👇👇

 
 

12d0a7fcde5e4b3d2b08f862365e615e.jpeg

下载1:OpenCV-Contrib扩展模块中文版教程

在「小白学视觉」公众号后台回复:扩展模块中文教程,即可下载全网第一份OpenCV扩展模块教程中文版,涵盖扩展模块安装、SFM算法、立体视觉、目标跟踪、生物视觉、超分辨率处理等二十多章内容。


下载2:Python视觉实战项目52讲
在「小白学视觉」公众号后台回复:Python视觉实战项目,即可下载包括图像分割、口罩检测、车道线检测、车辆计数、添加眼线、车牌识别、字符识别、情绪检测、文本内容提取、面部识别等31个视觉实战项目,助力快速学校计算机视觉。


下载3:OpenCV实战项目20讲
在「小白学视觉」公众号后台回复:OpenCV实战项目20讲,即可下载含有20个基于OpenCV实现20个实战项目,实现OpenCV学习进阶。


交流群

欢迎加入公众号读者群一起和同行交流,目前有SLAM、三维视觉、传感器、自动驾驶、计算摄影、检测、分割、识别、医学影像、GAN、算法竞赛等微信群(以后会逐渐细分),请扫描下面微信号加群,备注:”昵称+学校/公司+研究方向“,例如:”张三 + 上海交大 + 视觉SLAM“。请按照格式备注,否则不予通过。添加成功后会根据研究方向邀请进入相关微信群。请勿在群内发送广告,否则会请出群,谢谢理解~
  • 1
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值