《玩转3D视界——3D机器视觉及其应用》, 刘佩林,应忍冬

一个典型的3D相机通常有一个2D相机和一个光源组成,光源的种类由其设计原理决定。3D相机的获取方式有很多种:单目立体视觉,双目立体视觉,三角测量法,结构光,TOF等等。因此它可能是白光、激光、投影仪,振镜等。

1. 双目相机

双目相机的原理:空间中某一点的双目视差为该点在左右图像中位置的差别。通过立体匹配获得空间中的点在两幅图像中的对应点,进而得到空间点的视差。

1.1. 立体匹配算法

知乎: 立体匹配成像算法BM,SGBM,GC,SAD一览

主动双目成像方案可以基于低成本的硬件,获得高分辨率、高精度的深度图像,但是立体匹配算法(stereo matching)复杂,对计算资源消耗很大。

双目立体视觉系统中,深度信息的获得是分如下两步进行的:

  1. 在双目立体图象间建立点点对应
  2. 根据对应点的视差计算出深度

双目立体视觉模型中,双摄像机彼此参数一致,光轴平行且垂直于基线,构成一共极性 (epipolar) 结构,这样做是为了缩小对应的搜索空间,只有水平方向的视差,简化了对应过程。

  • 局部(Local)立体匹配

    简单的将相似度作为匹配的唯一准则,而为考虑相邻像素视差的平滑问题。所以计算量小,运行速度快,但精度较低。

    常用的相似度测量准则:

    • 灰度差的绝对值和(Sum of Absolute Differences, SAD)
    • 灰度差的平方和(Sum of Sequared Differences, SSD)
    • 归一化交叉相关(Normalized Cross Correlation, NCC)
  • 全局(Global)立体匹配法

    相比于局部立体匹配算法,全局立体匹配算法引入了相邻像素视差之间的约束关系,保证了相邻像素之间视差的变化较平缓。这就是“全局”的含义。

    保证了像素视差与周围像素的平滑变化,使得各个点视差不再孤立。但这也导致了视差无法独立求解,需要进行全局假设和迭代。

  • 半全局立体匹配法(Semi-Global Matching, SGM)

    结合了上述两种方式的优点。使用若干次以为平滑来代替全局平滑,而数据项的计算与全局匹配算法类似。

    该算法的复杂度与局部匹配算法为同一量级,所以是目前商业软件中使用最多的立体匹配算法。

匹配陷阱

  1. 光学失真和噪声(亮度、色调、饱和度等失衡)

  2. 平滑表面的镜面反射

    高光处无细节,无特征点。

  3. 投影缩减(Foreshortening)

    摄影测量学中的一个概念,指物体近大远小。由于相对左右照相机距离的不同,看到的同一个物体在左右视图中的投影尺寸也会不同,造成匹配障碍。

  4. 透视失真(Perspective distortions)

    由于镜头畸变造成的被摄物体失真。譬如画面中的鼻子被拉长。

  5. 低纹理(Low texture)

    无细节。主动纹理光可以解决这一问题。

  6. 重复纹理(Repetitive/ambiguous patterns)

    高度相似的特征点描述向量接近,行扫描时难以判断哪一个是对应的特征点。

  7. 透明物体

  8. 重叠和非连续

    纹理中断,不利于行查找。

2. 结构光

cnblog: 三种主流深度相机介绍

知乎: 结构光简史

结构光,英文叫做 Structured light,其原理是基本原理是,通过近红外激光器,将具有一定结构特征的光线投射到被拍摄物体上,再由专门的红外摄像头进行采集。这种具备一定结构的光线,会因被摄物体的不同深度区域,而采集不同的图像相位信息,然后通过运算单元将这种结构的变化换算成深度信息,以此来获得三维结构。简单来说就是,通过光学手段获取被拍摄物体的三维结构,再将获取到的信息进行更深入的应用。通常采用特定波长的不可见的红外激光作为光源,它发射出来的光经过 一定的编码投影在物体上,通过一定算法来计算返回的编码图案的畸变来得到物体的位置和深度信息。根据编码图案不同一般有:

  • 条纹结构光,代表传感器 enshape,
  • 编码结构光,代表传感器 Mantis Vision, Realsense(F200),
  • 散斑结构光,代表传感器 apple(primesense), 奥比中光。

目前结构光技术有如下几种变种:一种是单目IR+投影红外点阵,另外一种是双目IR+投影红外点阵,这样相当于结构光+双目立体融合了,深度测量效果会比前者好一些,比如Intel RealSense R200采用的就是双目IR+投影红外点阵,不足之处就是体积较大。而单目IR+投影红外点阵的方案虽然体积较小,但是效果会差一点。

2.1. 测量原理

激光测距原理与方法

激光的测量方法大致有三种,脉冲法(激光回波法),相位法,三角反射法。脉冲法测量距离的精度一般是在 +/-1 米左右。另外,此类测距仪的测量盲区一般是15米左右。三角法用来测量2000mm以下短程距离(行业称之为位移)时,精度最高可达1um。相位式激光测距一般应用在精密测距中,精度一般为毫米级。激光回波分析法则用于远距离测量。

激光位移传感器能够利用激光的高方向性、高单色性和高亮度等特点可实现无接触远距离测量。激光位移传感器(磁致伸缩位移传感器)就是利用激光的这些优点制成的新型测量仪表,它的出现,使位移测量的精度、可靠性得到极大的提高,也为非接触位移测量提供了有效的测量方法。

按照测量原理,激光位移传感器原理分为激光三角测量法和激光回波分析法,激光三角测量法一般适用于高精度、短距离的测量,而激光回波分析法则用于远距离测量。

2.1.1. 激光三角测距法

脉冲法和相干光法对激光雷达的硬件要求高,但测量精度比激光三角法要高得多,故多用于军事领域。而激光三角测距法因其成本低,精度满足大部分商用及民用要求,故得到了广泛关注。

激光三角测距法主要是通过一束激光以一定的入射角度照射被测目标,激光在目标表面发生反射和散射,在另一角度利用透镜对反射激光汇聚成像,光斑成像在CCD(Charge-coupled Device,感光耦合组件)位置传感器上。当被测物体沿激光方向发生移动时,位置传感器上的光斑将产生移动,其位移大小对应被测物体的移动距离,因此可通过算法设计,由光斑位移距离计算出被测物体与基线的距离值。由于入射光和反射光构成一个三角形,对光斑位移的计算运用了几何三角定理,故该测量法被称为激光三角测距法。

“激光测距传感器”作为市场新宠,其中最具代表的就是“激光位移传感器”,采用的就是“激光三角法”的原理,最大的特点就是精度高、频响快、量程适中。凭借其优异的性能,激光位移传感器越来越广泛地应用于工业现场的在线实时精密测量。

2.2. 结构光的标定与匹配

标定原理与方法

  • 线性变换法
  • 两部标定法
  • 张正友: 平面标定法

测量误差的分析

  • 镜头非线性畸变
  • 相移误差
  • 非正弦波形误差

匹配与编码

  • 直接编码

    连续采集一副编码投影图像 + 一副均匀光照图像。

    由于需要投影两幅图像,不适用于动态场景。

  • 时间编码

    投影多幅不同编码的图像,形成图案序列以获得编码值,从而得到3D信息。

    除了使用二进制的0-1编码之外,还可以使用更多颜色层级的编码。假设使用了M种不同的灰度层级进行编码,则拍摄n张影像可以得到包含 M^n 个条带的影响。

    不适用于动态场景。

  • 空间编码

    与时间编码比,该方法分辨率和测量精度较低,可以用于动态场景。

    1. 德布鲁因序列 (De Bruijn) 序列

    2. 二维空间编码

3. TOF相机

原理:通过发射特定频率的红外信号,测量发射的红外信号与反射的红外信号的相位差,从而得到物体的深度值。

3.1. TOF测距原理

利用入射光信号与反射光信号的变化来进行距离的测量。ToF相比于普通相机的区别在于,其需要手机特定波长的光线,即只有相机LED主动发射的特定波长的光才能进入,其他波长的环境光不能进入。这要求在镜头上减伤一个带通滤光片。

ToF像素芯片的制作工艺较为复杂,需要两个以上的快门采集不同时间的反射光,然后利用多次的采样结果计算出相位差以实现测距功能。复杂的工艺导致在相同成本的产品中,其深度图分辨率比较低,目前最高分辨率只能达到VGA(640×480)。

ToF相机可以根据测距脉冲分成两类:

  1. P-ToF: 基于光学快门的脉冲调制方法进行测距

    简单,不需要计算振幅。但精度较低,未考虑环境光。

  2. CW-ToF: 基于连续波调制测距

    设计更复杂,测量精度较高,帧率相比P-ToF低,但目前也能达到60fps,能够满足常规需求。

    • AMCW-ToF: 调幅连续波
    • FMCW-ToF: 调频连续波
    • GI-ToF: 基于门信号

版权声明:本文为brt2原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/brt2/p/14453407.html