一种基于跳跃连接式生成对抗网络的相位展开方法
技术领域
本发明属于光学三维测量领域,具体涉及一种基于跳跃连接式生成对抗网络的相位展开方法。
背景技术
近年来,三维重建一直是机器视觉中的一个热点话题,广泛应用于机器智能、自动驾驶、虚拟现实、三维制造与3D打印等领域中。在包含大面积弱纹理区域的目标以及建模精度要求高的场景中,使用传统的被动立体匹配进行三维重建的效果不够理想。为此,一般使用增加投影“特征信息”到待测物体,以便于提高弱纹理区域三维建模精度。目前常用的投影方法主要包括条纹投影和散斑投影,其中,条纹投影三维成像具有非接触式、高普适性、高精度、高速等优点,目前已成为一种主流的三维传感技术。条纹投影成像是将条纹结构光投影到待测目标表面,同步采用相机采集被待测曲面表面调制的变形图像,并从中计算相位信息,最终恢复出三维信息。但从变形图像的条纹中计算得到的相位,其空间分布是截断的,某些地方存在相位跳变。必须首先相位展开,确定条纹的正确对应级次,才能计算出真实的连续相位,再经过匹配的三维坐标转换,就能获取待测目标的表面三维信息。相位展开问题较为复杂,相位展开的精度对整个测量系统的测量精度都有很大影响。
传统的相位展开主要有空间相位展开和时间相位展开两种方式,其中,基于空间相位展开的三维测量方法,步骤复杂、耗时较多,尤其是在非光滑连续表面,复杂表面,欠采样区域或存在干扰噪声时,相位展开较为困难,容易造成较大误差。基于时间相位展开的三维测量系统,需要投影拍摄待测物体静态条件下的多幅条纹图协同处理,才能计算出连续相位。近年来,不少学者开始关注到基于神经网络的相位展开方法,但大多使用分类的方法,需要标注大量的相位级次信息,尤其是条纹分类较多时,标注工作较为繁琐,分类时间较长且难以达到较好的效果。同时由于人脸面形复杂,存在空间孤立,阴影,相位跳变等区域,目前与之对应的相位展开研究较少,缺少兼顾精度与效率的相位展开方法,在处理人脸时,就会导致重要信息的缺失,并且相位展开效果不好。如公开号为CN 109448083A,其公开了一种从单幅图像生成人脸动画的方法,但是其使用的神经网络在网络层数较深的情况下存在梯度消失的问题,不利于梯度的反向传播。
发明内容
本发明的目的在于克服现有技术中所存在的上述不足,提供一种兼顾了精度与效率,同时具有良好梯度反向传播特性的生成对抗网络,并通过该网络得到生成相位图。
为了实现上述发明目的,本发明提供了以下技术方案:
本发明提供一种基于跳跃连接式生成对抗网络的相位展开方法,包括如下步骤
S1建立生成对抗网络,所述生成对抗网络包括生成模型和对抗模型;所述生成模型包括编码器和解码器;所述编码器与所述解码器跳跃式连接;
S2获取训练集对所述生成对抗网络进行训练,当生成对抗网络的损失函数的结果收敛时,训练结束;
S3将待解析的截断相位图输入到经过步骤S2训练完成后的生成对抗网络,输出生成相位图。
进一步的是,所述编码器包括n个下采样模块,所述n个下采样模块顺序连接;所述解码器包括n个上采样模块,所述n个上采样模块顺序连接;所述编码器中每个下采样模块与所述解码器中相应层级的上采样模块跳跃连接。
作为优选的,所述编码器表层的上采样模块和下采样模块之间连接有BEF模块,BEF模块将下采样模块输出的特征图变换到频域并提取高频和低频部分,并将其注入对应层级的上采样模块。
进一步的是,所述编码器的第一个下采样模块包括一个卷积层;编码器的第2至n-1个下采样模块包括依次连接的线性整流层、卷积层和标准化层;编码器的第n个下采样模块包括线性整流层和卷积层;
所述解码器的每个上采样模块中的特征图与编码器对应层中尺寸相同的特征图跳跃连接,经过一个线性整流层、反卷积层和标准化层,最底层的三个上采样模块还包括一个dropout层防止过拟合,最表层的一个上采样模块用激活函数替换标准化层,输出生成相位图。
进一步的是,所述对抗模型包括m个下采样模块,其中前m-1个下采样模块依次增加特征通道数,同时缩小特征图的尺寸,最后一个下采样模块,将通道数减小到1、同时减小特征图尺寸,输出概率矩阵。
进一步的是,所述编码器包括8个下采样模块,所述8个下采样模块依次连接,用于改变特征图;所述解码器包括8个上采样模块,所述8个上采样模块依次连接;所述编码器中每个下采样模块与所述解码器中相应层级的上采样模块跳跃连接。
进一步的是,所述编码器的第一个下采样模块包括一个Conv 4*4卷积层,用于缩小图像宽高并增加特征图的通道数,第二至第七个下采样模块,包括依次连接的LeakReLU层、Conv 4*4层和BatchNorm层,所述LeakReLU层用于线性整流、所述BatchNorm层用于标准化,第八个下采样模块包括依次连接的LeakReLU层和Conv 4*4层。
所述解码器的第一至第三个上采样模块均包括依次连接的Relu层、ConvTranspose 4*4层、BatchNorm层和Dropout层;其中所述Conv Transpose 4*4层用于反卷积,所述Dropout层用于防止过拟合,所述Relu层用于线性整流;第四至第七个上采样模块均包括依次连接的,Relu层、Conv Transpose 4*4层、BatchNorm层;第八个上采样模块包括依次连接的Relu层、ConvTranspose 4*4层和Tanh层,其中所述Tanh层为激活函数,用于输出生成相位图。
进一步的是,所述对抗模型包括5个下采样模块,第一个下采样模块包括依次连接的Conv 4*4层和LeakyReLU层;第二至第四个下采样模块均包括依次连接的Conv 4*4层、Batch Norm层和LeakyReLU层;第五个下采样模块包括依次连接的Conv 4*4层和Sigmoid层,所述Sigmoid层为激活函数,用于输出30*30的概率矩阵。
同时本发明还提供一种三维重建方法,包括:采用上述相位展开方法得到生成相位图,并通过所述生成相位图进行三维重建。
同时本发明还提供一种可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述一种基于跳跃连接式生成对抗网络的相位展开方法。
同时,本发明还提供一种基于跳跃连接式生成对抗网络的相位展开装置,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的相位展开方法。
与现有技术相比,本发明的有益效果:
1.神经网络学习到的是一种映射关系,在空间孤立时,误差不累积传递,也就是说一点的误差不会对其他点造成影响;传统相位展开方法是依次展开,在计算过程中误差尤其是阴影、相位跳变区域的误差会累积传递下去,一点的误差还会影响周边各点,导致误差传递和扩散;同时因为本发明采用跳跃连接式生成对抗网络,将编码器与解码器跳跃连接,有利于梯度的反向传播,可以加快生成对抗网络的训练过程,并且可以减少下采样过程中带来的空间信息损失,同时使上采样恢复的特征图中包含更多low-level的语义信息,可以提高结果的精细程度,使解码器拥有更多图像细节信息,从而恢复出更好的图像。
2.本发明生成模型中的表层上采样和下采样模块之间连接有BEF模块,可以将上采样模块图片中的低频和高频部分传递至上采样模块,进一步的加强了生成模型生成的图片的质量;尤其是在处理戴眼镜、阴影较多的图片时生成模型生成的图片具有更多的细节信息,可以使生成的相位展开图更利于后期进行人脸识别。
3.本发明提出的方法与传统的三频四步相移法(需要投影三套共12幅条纹图)相比,引入了神经网络进行图像域转换的思想,从截断相位图直接得到连续生成相位图,需要的投影条纹图像数大大减少(只需要投影3幅条纹图),降低了系统复杂度,提高了系统运行速度;同时减少由于待测物体运动而产生的误差,可满足动态或静态目标的高速高精度三维成像;与传统的空间相位展开方法相比,能够减少误差扩散和误差累积,受相位跳变等区域的影响较小。
附图说明
:图1为本发明示例性实施例提出的一种基于跳跃连接式生成对抗网络的相位展开方法的流程图;
图2为本发明示例性实施例提出的跳跃连接式生成对抗网络的整体结构图;
图3为本发明示例性实施例提出的跳跃连接式生成对抗网络的生成模型结构图;
图4为本发明示例性实施例提出的跳跃式生成对抗网络的对抗模型结构图;
图5为本发明示例性实施例提出的跳跃连接式生成对抗网络经100轮训练的SmoothL1 Loss下降曲线;
图6是为采用本发明示例性实施例提出的跳跃连接式生成对抗网络生成的相位生成图与截断相位图、相位图真值的对比图。
图7为本发明示例性实施例中使用BEF模块与未使用BEF模块的生成相位图的对比图。
具体实施方式
下面结合试验例及具体实施方式对本发明作进一步的详细描述。但不应将此理解为本发明上述主题的范围仅限于以下的实施例,凡基于本发明内容所实现的技术均属于本发明的范围。
实施例1
图1示出了本发明示例性实施例提出的一种基于跳跃连接式生成对抗网络的相位展开方法的流程图,包括
S1建立生成对抗网络,所述生成对抗网络包括生成模型和对抗模型;所述生成模型包括编码器和解码器;所述编码器与所述解码器跳跃式连接;
作为优选的,所述编码器可以包括n个下采样模块,所述n个下采样模块顺序连接;所述解码器包括n个上采样模块,所述n个上采样模块顺序连接;所述编码器中每个下采样模块与所述解码器中相应层级的上采样模块跳跃连接。
作为优选的,所述编码器的第一个下采样模块包括一个卷积层;编码器的第2至n-1个下采样模块包括依次连接的线性整流层、卷积层和标准化层;编码器的第n个下采样模块包括线性整流层和卷积层;所述解码器的每个上采样模块中的特征图与编码器对应层中尺寸相同的特征图跳跃连接,经过一个线性整流层、反卷积层和标准化层,最底层的三个上采样模块还包括一个dropout层防止过拟合,最表层的一个上采样模块用激活函数替换标准化层,输出生成相位图。
为使生成模型生成的相位展开图中具备更有效的信息,同时强化关键区域处的信息特征(如,相位不连续,阴影,跳变点等),所述编码器表层的上采样模块和下采样模块之间可以连接有BEF模块。BEF模块可以将含有图片基础信息的低频部分和含有图片关键区域处信息的高频信息,从上采样模块提取后注入下采样模块。通过BEF模块可以有效的增强生成模型生成的生成相位图中有效内容,并且弱化对图片产生干扰的噪声。
作为优选的,所述对抗模型包括m个下采样模块,其中前m-1个下采样模块依次增加特征通道数,同时缩小特征图的尺寸,最后一个下采样模块,将通道数减小到1、同时减小特征图尺寸,输出概率矩阵。
需要说明的是,生成模型的上采样模块和下采样模块的个数n和对抗模型下采样模块的个数m均可以依据实际训练图片大小和/或带解析图片大小灵活设置,例如在处理三通道256*256像素的图片(即3*256*256的图片)时,可以选择n=8、m=5或n=7、m=5;在处理3*512*512的图片时可以选择n=8、m=5,或者n=9、m=6等;具体的设置情况,可以根据实际计算机的算力、精度需求、处理时间需求灵活设置。
S2获取训练集对所述生成对抗网络进行训练,当生成对抗网络的损失函数的结果收敛时,训练结束;
S3将待解析的截断相位图输入到经过步骤S2训练完成后的生成对抗网络,输出生成相位图。
同时本实施例还提供一种三维重建方法,包括:采用上述相位展开方法得到生成相位图,并通过所述生成相位图进行三维重建。
同时本实施例还提供一种可读存储介质,其上存储有计算机程序,所述程序被处理器执行实现上述一种基于跳跃连接式生成对抗网络的相位展开方法。
同时本实施例还提供一种基于跳跃连接式生成对抗网络的相位展开装置,包括至少一个处理器,以及与所述至少一个处理器通信连接的存储器;所述存储器存储有可被所述至少一个处理器执行的指令,所述指令被所述至少一个处理器执行,以使所述至少一个处理器能够执行上述的相位展开方法。
实施例2
在实施例1的基础上,本实施例采用如图2所示的生成模型,和图3所示的对抗模型。
图2示出了本实施例提出的跳跃连接式生成对抗网络的生成模型结构图;
该生成模型中的编码器的八个下采样模块依次连接,每个下采样模块利用卷积层增加特征图的通道数,同时将特征图的宽高各缩小至二分之一,生成模型的编码器中八个下采样模块依次输出的特征图宽和高分别为:1/2H*1/2W,1/4H*1/4W,1/8H*1/8W,1/16H*1/16W,1/32H*1/32W,1/64H*1/64W,1/128H*1/128W,和1/256H*1/256W,第一个下采样模块包括1个4*4的卷积层,缩小图像宽高的同时增加了特征图的通道数,第二个至第七个下采样模块由依次连接的下述各层构成,首先,线性整流层将输入小于0的值幅值为零,输入大于0的值不变,可以使网络训练得更快,增加网络的非线性,同时防止梯度消失,并且由于其对原值进行计算,可以节省运算内存;其次,1个4*4的卷积层用于缩小图像宽高,增加特征图的通道数;最后,采用BatchNorm2d层对数据进行标准化,以防止梯度消失和梯度爆炸。在第八个下采样模块,只采用了线性整流层和卷积层,去掉了BatchNorm2d层。
生成模型中的解码器的八个上采样模块依次连接,每个上采样模块利用反卷积层从下而上依次恢复特征图的通道数和特征图的尺寸,输出恢复特征图,经每个上采样模块上采样以后,输出的特征图分辨率依次恢复为1/256H*1/256W,1/128H*1/128W,1/64H*1/64W,1/32H*1/32W,1/16H*1/16W,1/8H*1/8W,1/4H*1/4W,1/2H*1/2W,H*W;每个上采样模块中特征图首先与编码器对应层中相同尺寸的特征图跳跃连接,经过一个线性整流层,和一个4*4的反卷积层,再标准化,最下面三个上采样模块还要再各加上一个dropout以防止过拟合,最上面一个上采样模块将标准化替换为激活函数Tanh,最终输出生成相位图。
对抗模型和生成模型目标相反,对抗模型尽量区分相位图真值和生成相位图,生成模型尽量生成和连续相位展开图相似的连续两位生成图,在训练过程中两者相互对抗,以督促双方的优化。对抗模型包括依次连接的五个下采样模块,前四个下采样模块依次增加特征图的通道数,同时缩小特征图的尺寸,最后一个下采样模块将通道数减小到一,并同时减小了特征图尺寸,最后输出一个30*30的概率矩阵。对抗模型中5个下采样模块依次输出的特征图宽和高分别为:1/2H*1/2W,1/4H*1/4W,1/8H*1/8W,(1/8H-1)*(1/8W-1)和(1/8H-2)*(1/8W-2),第一个下采样模块由一个4*4的卷积层和线性整流层组成,第二个至第四个下采样模块由依次连接的卷积层,标准化层和线性整流层构成,其中,4*4的卷积函数conv2d用于来改变特征图的通道数及其大小;并用nn.BatchNorm2d层对数据进行标准化,以防止梯度消失和梯度爆炸;线性整流单元使网络训练得更快,增加网络的非线性,同时防止梯度消失,并且由于其对原值进行计算,可以节省运算内存,提升运行速度。最后一个下采样模块通过卷积层后,直接通过一个激活函数输出最后结果。
作为优选的,所述编码器表层的上采样模块和下采样模块之间还可以连接有BEF模块,BEF模块可以为带阻滤波器,并将下采样模块输出的特征图变换到频域并提取高频和低频部分,并将其注入对应层级的上采样模块。经过下采样模块的卷积层后的特征图片中低频部分携带的是图片的基础信息,而高频部分携带的是图片的关键点信息(阴影、跳变点),为了加强生成相位图中的基础信息和关键点信息,便于后期对生成相位图进行处理。BEF模块的阻带范围为整个频率区间的1/8到7/8其阻带内增益为0,阻带外增益为0.1,并且随着BEF模块所处编码器的层数不断深入,其阻带外增益也可以不断下降。
对上述生成对抗网络还可以采用如下方法进行训练:
1)将相移条纹图像投影到被测人脸对象,被测人脸对象面型调制出变形条纹,使用相机同步拍摄,再移动相移条纹,得到三张不同相移的条纹图,由此计算出截断相位图,采用传统的三频四步相移法得到同一个被测人脸对象的相位图真值(视为ground truth),与截断相位图作为一对成对图像,二者组成训练集。
将相移条纹投影到被测目标人脸表面,相移条纹在2π周期内均匀移动N次,N≥3,每次相移量为2π/N;任意一组N步相移条纹的图案表示为:
式中,Ii(x,y)表示条纹图中的光强,为已知量,a(x,y)表示条纹图中的背景光强,b(x,y)表示条纹图中的调制光强,i=1,…,N表示第i步相移条纹的序号,为相移,f0为正弦条纹的频率。上式有三个未知量,至少需要三个独立方程,所以至少需要三张相移图像才能求解出
基于相移法,将条纹图像转换为截断相位图时,截断相位计算公式为:
其中,i=1,…,N表示第i步相移(N≥3)。Ii(x,y)表示所拍摄的第i个变形条纹图的光强。
2)针对多张不同的人脸面型,重复步骤1),生成多对截断相位图和相位图真值。
3)将第一对成对图像中的截断相位图输入生成对抗网络的生成模型,输出对应的生成相位图。
4)将第一对成对图像中的截断相位图与第一对成对图像中的相位图真值,合并后输入对抗模型,计算其输出与真标签(全1)的BCELoss,目的是为了让判别器尽量将相位图真值判别为真;将第一对成对图像的截断相位图与对应的生成相位图合并输入对抗模型,计算其输出与假标签(全0)的BCELoss,目的是为了让判别器尽量将生成相位图判别为假,将上述两个BCELoss的均值作为判别网路的损失函数errD,对对抗模型进行训练。
5)将第一对成对图像的截断相位图与生成器输出的对应的生成相位图合并输入对抗模型,计算其输出与同尺寸真标签(全1)的BCELoss作为errG1,目的是为了让生成器尽量让生成相位图判别为真,以尽量生成“以假乱真”的相位图。
计算相位图真值与对应的生成相位图之间的SmoothL1Loss和simmLoss,后者为两图片的结构相似指数与1的差值,将上述errG1,SmoothL1Loss及SimmLoss加权后求和作为生成器的损失函数。
本实施例采用0.5*errG1+20*SmoothL1Loss+5*Simm_loss,作为生成器的损失函数errG,对生成模型进行训练。
6)第一对成对图像训练完成后,继续加载下一对成对图像进行训练,对抗模型和生成模型的训练如上交替进行,直到所述损失函数的结果收敛(errD和errG1近似相等,SmoothL1Loss和simmLoss近似为0)。
7)每加载一对截断相位图和相位图真值,生成对抗网络的生成模型和对抗模型各进行一次如上训练,称为一轮,当损失函数的结果收敛时,训练结束。参见图5,为本发明示例性实施例提出的跳跃连接式生成对抗网络训练100轮的SmoothL1 Loss的下降曲线,从图中可知,SmoothL1 Loss的值随着训练过程不断减小到接近为零,即生成网络生成的生成相位图与相位图真值的差异在不断减小。在对本示例性实施例提出的生成对抗网络进行训练时,为使生成对抗网络的结构更加稳定,本实施例在SmoothL1 Loss收敛后又额外进行了约900轮训练,总计训练约1000轮。
在生成对抗网络训练结束后还可以将截断相位图输入训练好的跳跃连接式生成对抗网络的生成模型中得到生成相位图;并由生成相位图计算得出三维面形深度,得到被测人脸对象的三维点云数据。
将截断相位图输入到训练完成的跳跃连接式生成对抗网络中,得到的生成相位图如图6所示,其中图6中的(a)为本实施例提出的生成对抗网络输入的截断相位图、图6中的(b)为本实施例提出的生成对抗网络输出的生成相位图,图6中的(c)为传统方法得到的相位图真值。从图中可见生成相位图与相位图真值具有高结构相似性(SSIM),并且生成相位图的精度更高,在细节的展现更好。
实施例3
在实施例2的基础上,为验证BEF模块的功效在生成对抗网络中起到的作用,本实施例分别相同参数配置的具有BEF模块和不具有BEF模块的两种生成对抗网络,采用相同的训练集进行训练;训练结束后输入同一幅截断相位图,得到生成相位图的对比如图7所示。图中可以看出,采用了BEF模块的生成相位图,在该图片的相位跳变区域(如鼻孔、因眼睛遮挡而导致的阴影区域)时其具有更多的细节,而未采用BEF模块的生成相位图其在相位跳变区域细节有所缺失,相位展开效果不佳;并通过软件分析使用BEF模块得到的生成相位图和未使用BEF模块得到的生成相位图二者的相位图误差,从图中可见使用了BEF模块的相位图误差相比未使用BEF模块的相位图误差大大降低。
本领域技术人员可以理解:实现上述方法实施例的全部或部分步骤可以通过程序指令相关的硬件来完成,前述的程序可以存储于计算机可读取存储介质中,该程序在执行时,执行包括上述方法实施例的步骤;而前述的存储介质包括:移动存储设备、只读存储器(Read Only Memory,ROM)、磁碟或者光盘等各种可以存储程序代码的介质。
当本发明上述集成的单元以软件功能单元的形式实现并作为独立的产品销售或使用时,也可以存储在一个计算机可读取存储介质中。基于这样的理解,本发明实施例的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在一个存储介质中,包括若干指令用以使得一台计算机设备(可以是个人计算机、服务器、或者网络设备等)执行本发明各个实施例所述方法的全部或部分。而前述的存储介质包括:移动存储设备、ROM、磁碟或者光盘等各种可以存储程序代码的介质。
以上所述,仅为本发明具体实施方式的详细说明,而非对本发明的限制。相关技术领域的技术人员在不脱离本发明的原则和范围的情况下,做出的各种替换、变型以及改进均应包含在本发明的保护范围之内。
- 上一篇:石墨接头机器人自动装卡簧、装栓机
- 下一篇:图像处理方法、装置和设备