论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用

文章目录

  • 01 基本原理
    • 1.1 条纹分析
    • 1.2 相位展开
    • 1.3 相位与三维坐标转换
  • 02 基于深度学习的条纹分析
    • 2.1 单幅条纹分析(深度学习)
    • 2.2 基于区域分块和标签增强的单幅条纹分析(深度学习)
    • 2.3 条纹图像去噪
  • 03 基于深度学习的相位展开
    • 3.1 空域相位展开
      • (1)条纹级次+后优化
      • (2)一次预测
    • 3.2 时域相位展开
  • 04 基于深度学习的深度计算
  • 05 基于深度学习的系统误差标定
  • 06 基于深度学习的超快三维成像
  • 07 挑战与未来研究方向
  • 08 结论

标题:深度学习技术在条纹投影三维成像中的应用

作者:冯世杰,左超,尹维,陈钱

期刊:红外与激光工程

年份:2020.03

注:以后再补充,目前仅仅是作为一份论文阅读笔记。这块方法还有很多,另外还需要结合最新的3D深度学习论文找想法,打算先读大量论文,再做整个整理!

推荐读博心得:「博士期间导师教会我最重要的五件事」超爱我导师~

01 基本原理

核心:通过将立体视觉中的相机替换成光源发生器(如结构光中的投影仪,偏折术中的屏幕),主动投射特征点来实现重建功能。

系统原理示意图如下,变形的条纹即我们的特征点:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第1张图片
图1 条纹投影三维成像原理

大致的步骤如下:

  • 条纹分析:解出相位跳变的包裹相位
  • 相位展开:将跳变的包裹相位展开为连续的绝对相位
  • 相位与三维坐标转换标定:标定相位与三维坐标的转换关系,经过这步之后,我们得到绝对相位,即可根据绝对相位直接获取三维高度信息

下面我们来仔细讲一下每个阶段的具体细节。

1.1 条纹分析

参考链接:结构光相移法-多频外差原理+实践(上篇)

以投射的 N N N步相移图案为例,其表达式:
I n ( x , y ) = a + b cos ⁡ [ φ ( x , y ) + 2 π ⋅ n N ] {I_n}\left( {x,y} \right) = a + b\cos \left[ {\varphi \left( {x,y} \right) + \frac{{2\pi \cdot n}}{N}} \right] In(x,y)=a+bcos[φ(x,y)+N2πn]

注:通常,每次我们仅在一个方向上进行编码,比如编码 x x x 方向,那么 y y y 方向是完全一致的,如图1所示。

其中:

  • a a a:平均光强(固定值)
  • b b b:调制赋值(固定值)
  • φ ( x , y ) \varphi(x,y) φ(x,y):相位值
  • n = 0 , 2 , . . . , N − 1 n=0,2,...,N-1 n=0,2,...,N1,为相移的步数

计算包裹相位 φ \varphi φ 的公式如下:

φ ( x , y ) = arctan ⁡ ∑ n = 1 N I n sin ⁡ ( 2 π n N ) ∑ n = 1 N I n cos ⁡ ( 2 π n N ) \varphi \left( {x,y} \right) = \arctan \frac{{\sum\limits_{n = 1}^N {{I_n}\sin \left( {\frac{{2\pi n}}{N}} \right)} }}{{\sum\limits_{n = 1}^N {{I_n}\cos \left( {\frac{{2\pi n}}{N}} \right)} }} φ(x,y)=arctann=1NIncos(N2πn)n=1NInsin(N2πn)

1.2 相位展开

参考链接:结构光相移法-多频外差原理+实践(上篇)

解得的相位是包裹着的,存在 2 π 2 \pi 2π 相位跳变,为了获得连续的绝对相位,需要对其进行相位展开:
ϕ ( x , y ) = φ ( x , y ) + 2 π ⋅ k ( x , y ) \phi \left( {x,y} \right) = \varphi \left( {x,y} \right) + 2\pi \cdot k\left( {x,y} \right) ϕ(x,y)=φ(x,y)+2πk(x,y)
其中:

  • ϕ \phi ϕ:展开相位
  • φ \varphi φ:包裹相位
  • k ( x , y ) k(x,y) k(x,y):光栅级数(第几周期的条纹)

相位展开算法的目的在于确定光栅条纹的级数,得到级数,我们就可以获得连续的绝对相位。根据求取光栅级数的原理不同,可以分为两种:

  • 空域相位展开
    • 原理:利用相邻像素的相位值锁提供的约束来计算绝对相位值
    • 缺点:该方法依赖物体表面连续假设,如果被测场景中包含多个孤立物体,或者被测物存在不连续表面边界的相邻像素的相位差值超过 2 π 2\pi 2π,则容易出现条纹级次歧义现象
  • 时域相位展开
    • 优点:任意复杂形状表面的包裹相位值
    • 缺点:至少需要额外的一幅参考相位图

1.3 相位与三维坐标转换

参考链接:Zhang Song, GPU-assisted high-resolution, real-time 3-D shape measurement[J]. Opt. Express, 2006

TODO:后面补充这部分内容

有一种方法是,直接将“投影仪”当做“逆相机”处理。

02 基于深度学习的条纹分析

2.1 单幅条纹分析(深度学习)

单幅条纹,即空域相位解调法,传统的方法有:

  • 傅里叶分析法
  • 加窗傅里叶法
  • 小波分析法

传统方法:

  • 只适合处理表面高度变化平滑的物体,对轮廓陡变、不连续以及物体细节丰富的区域较为敏感,针对轮廓复杂物体,难以实现高精度、高分辨率的相位测量
  • 需要操作者手动地设定、调节算法参数,难以完全实现自动化操作

为克服这些问题,Feng等人[40] 提出基于深度学习框架的单帧光栅条纹分析法,具体地:

TODO:细节不清楚,去看原理,估计是傅里叶。

一般而言,条纹图像可以表示为:
I ( x , y ) = A ( x , y ) + B ( x , y ) c o s [ φ ( x , y ) ] I(x,y)=A(x,y)+B(x,y)cos[\varphi(x,y)] I(x,y)=A(x,y)+B(x,y)cos[φ(x,y)]
论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第2张图片

如图2所示,结合条纹公式,构建了2个卷积神经网络:CNN1和CNN2:

  • CNN1:从输入的条纹图像(I)中提取背景信息(A)
  • CNN2:利用提取的背景图像(A)和原始输入图像(I),生成所需相位的正弦(M)和余弦(D)部分

最终代入反正切函数,即可得到最终的相位分布。该方法用标准12步相移算法作为标签,通过对大量样本的学习,它即可利用单幅条纹图像输出对应的高精度相位分布。

实验表明:相比较传统傅里叶方法,该方法误差降低50%以上,能够有效保持物体边界与轮廓的细节,总体测量效果接近12步相移法,实现了“高精度、高效率、全自动”。效果如图3所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第3张图片

2.2 基于区域分块和标签增强的单幅条纹分析(深度学习)

Shi等人[41]提出:

  • 将原始大小为( 512 × 512 512 \times 512 512×512)图片,划分成更小,且具有领域交叠( 40 × 40 40 \times 40 40×40)的小图片作为输入
  • 利用深度学习模型对进行相位计算的中间变量(光栅条纹的余弦信息)进行提取
  • 对中间变量进行 H i b e r t Hibert Hibert 变换与反正切计算,计算最终相位

标签:四步像移+Shearlet变换法滤波,实现噪声抑制,如下:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第4张图片

2.3 条纹图像去噪

噪声存在会降低图像信噪比,进而影响相位恢复准确性,Yan[42]提出了方法,原理如下图所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第5张图片

构建一个20层卷积神经网络:

  • 输入:有噪声光栅图像
  • 输出:抑制的光栅图像
  • 标签:仿真的无噪声光栅图像

效果:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第6张图片

数据来自仿真。

03 基于深度学习的相位展开

基于深度学习的相位展开方法,同样分为两类:空域法和时域法。

3.1 空域相位展开

(1)条纹级次+后优化

Spoorthi G.E. 提出了PhaseNet,原理如下图所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第7张图片

输入:包裹相位,通过构建的神经网络 D C N N DCNN DCNN,使其输出条纹级次。该网络由一个编码器、解码器,和一个像素级的“分类层”组成。

另外,由于深度学习网络预测的条纹级次在 包裹相位跳变 和 存在相位陡变 区域容易发生错误进而提出 基于聚类的条纹级次后处理方法,通过合并互补的方式来增强相位空间分布的平滑度。

原始包裹相位+优化后的条纹级次,可计算最终的展开相位。效果如下所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第8张图片

训练和测试数据来自仿真,而实际的包裹相位情况往往比仿真更复杂。

(2)一次预测

PhaseNet:预测条纹级次,再结合包裹相位,计算展开后的相位。

U-Net[44]:直接预测包裹相位对应的去包裹相位。

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第9张图片

结果:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第10张图片

3.2 时域相位展开

传统方法:多频相位展开、多波长(外差)相位和数论方法。

为了提升测量效率,使用尽可能少的光栅图案,一种方法是:获取低频和高频两种频率的包裹相位。具体地:

  • 低频光栅:频率为1,即投影光栅只包含一个正弦分布,帮助展开高频相位;
  • 高频光栅:尽可能提升高频光栅的空间分辨率,最终三维数据的来源;

文献[45]:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第11张图片

  • 利用三步相移法,得到两个不同频率光栅对应的包裹相位
  • 将它们作为输入,送入构建的一个四路径的卷积网络,网络经过训练,输出高频光栅包裹相位对应的条纹级次
  • 结合高频包裹相位,进行相位展开,获得三维数据

功能和多频外差是一样的,但是去包裹误差更小,如下图所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第12张图片

采用深度学习辅助后,时域多频相位展开的正确率可得到大幅提升。

04 基于深度学习的深度计算

基于单幅图像的测量方法在测量速度、运动伪影的鲁棒性等方面,均优于基于多副图像的结构光技术。

Sam Vam [46] 提出完全基于深度学习的单帧光栅解调方法:从单幅变形的光栅中直接解调出表面的高度信息,结构如下图所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第13张图片

使用了仿真数据,真实数据,精度还有很大提升空间。

05 基于深度学习的系统误差标定

条纹投影将双目相机中一个相机替换成投影仪,构建了一种主动式的“双目”三维成像系统,但是投影仪的镜头与相机镜头,其在设计与功能上还是存在很大差异的,因此,简单的套用相机标定的模型,很难准确标定投影仪的畸变,进而造成三维轮廓出现失真。


文献[47]提出,如图16所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第14张图片

  1. 采用传统标定方法,对投影仪和相机的畸变进行校正
  2. 利用深度学习方法,校正剩余的投影仪畸变对三维轮廓造成的影响

LV等人,提出全连接网络:

  • 输入:存在畸变残差的三维空间坐标 [ x , y , z ] T [x,y,z]^T [x,y,z]T
  • 输出:该空间位置处的深度误差 Δ z \Delta z Δz

该方法用来补偿剩余畸变对三维重构造成影响。研究人员利用训练好的模型对平板测量进行验证,结果如下图所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第15张图片

需要一种精确的方式来确定不同姿态下平板表面真实三维数据。

06 基于深度学习的超快三维成像

这个方法,其实可以归位于时域相位展开,但是可以算作一个新的方向。

尽管目前 C M O S CMOS CMOS 可以实现每秒万帧、甚至百万帧的拍摄,但是由于运动模糊的关系,如何有效从拍摄到的二维图片获取三维深度图像,依然是个挑战。

文献[49],提出了微频深度轮廓术,原理如下所示:

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第16张图片

使用三种不同频率中的相位信息,其中一幅用于重构三维轮廓,另外两幅用来辅助相位展开,最后根据标定的系统参数,重构光栅图像中包含的三维轮廓信息。

为了测试有效性,Feng设置了一个瞬态场景,包含一个静态的石膏像和一个下落的乒乓球,相机拍摄速度为20,000帧/s,记录了乒乓球落地、反弹的全过程。需要说明的是,两个物体均未在网络的训练过程中出现。

论文阅读笔记01:深度学习技术在条纹投影三维成像中的应用_第17张图片

其中:

  • 第一行:不同时刻拍摄的光栅图像
  • 第二行:该时刻对应的重构三维模型

根据结果可知,效果还不错。

07 挑战与未来研究方向

  1. 学习到什么:深度学习,对研究人员来说,到底学习到了什么?
  2. 架构设计及优化:具体条纹应用,如计算包裹相位、相位展开、高动态范围程序等,到底什么样的神经网络合适,调参困难!
  3. 数据获取、标注成本高
  4. 神经网络泛化能力思考
  5. 数据驱动引入物理模型

08 结论

优势:

  1. 测量效率提升
  2. 测量精度提高
  3. 成像稳定性提升

缺点:

  1. 学习到什么
  2. 数据标注成本
  3. 泛化性能

极具发展前景!

你可能感兴趣的:(结构光,深度学习,结构光)