2021-07-10日志及想法
昨天整理了所有看过的论文的过程,发现了重大问题。论文《Fringe Pattern analysis using deep learning》是通过神经网络从实拍条纹图来直接获得包裹相位的。 I ( x , y ) → A ( x , y ) → M ( x , y ) , D ( x , y ) → ϕ ( x , y ) I(x,y)\to A(x,y)\to M(x,y),D(x,y)\to \phi(x,y) I(x,y)→A(x,y)→M(x,y),D(x,y)→ϕ(x,y)《PhaseNet: A Deep Convolutional Neural Network for Two-Dimensional Phase Unwrapping》是将相位展开看作一个语义分割问题,基于SegNet设计了编码器-解码器的PhaseNet,其输入数据是包裹相位,输出数据是包裹计数/光栅条纹的级数
ϕ ( x , y ) → k ( x , y ) \phi(x,y)\to k(x,y) ϕ(x,y)→k(x,y)
根据公式 Φ ( x , y ) = ϕ ( x , y ) + 2 π k ( x , y ) \Phi(x,y)=\phi(x,y)+2\pi k(x,y) Φ(x,y)=ϕ(x,y)+2πk(x,y)可以得到解包裹相位/真实相位 Φ \Phi Φ。这样就完成解包裹的过程,后续即可根据结构光系统结构恢复目标物体高度。
关于数据集的制作问题
现在看来标定问题比较困难。
如果采用MATLAB设计程序,利用各种立体函数制作各种条纹图,比如说用随机函数设置立体函数的各种参数,获得各种经过变形的条纹。
第一个获得包裹相位的神经网络所需要输入数据是实拍的条纹投影到目标物体的图片(单帧条纹)而标签数据是未投影条纹的目标物体图片。
第二个获得条纹级次/包裹数的神经网络所需要的是包裹相位图,然后利用一种传统解包裹的算法来得到真实相位,再反算出条纹级次/包裹数。通过随机变换高斯函数的均值和方差,并反复进行加减运算,以生成任意形状。再用matlab生成条纹获得变形条纹再计算得到包裹相位。
初学者的一些弱智顿悟
训练集中的输入和标签是一起传进模型中的!